Файл: 5.1. Математическая постановка и методы решения задач линейного программирования.docx

Добавлен: 19.11.2018

Просмотров: 693

Скачиваний: 12

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Математическая поставновка задачи линейного программирования

Определение 1.

Общей задачей линейного программирования называется задача, которая состоит в определении максимального (минимального) значения функции

(8)

при условиях

(9)

(10)

(11)

где  - заданные постоянные величины и  .

Определение 2.

Функция (8) называется целевой функцией (или линейной формой) задачи (8) – (11), а условия (9) – (11) – ограничениями данной задачи.

Определение 3.

Стандартной (или симметричной} задачей линейного программирования называется задача, которая состоит в определении максимального значения функции (8) при выполнении условий (9) и (11), где k =m и n.

Определение 4.

Канонической (или основной) задачей линейного программирования называется задача, которая состоит в определении максимального значения функции (8) при выполнении условий (10) и (11), где k = 0 и l = п.

Определение 5.

Совокупность чисел  , удовлетворяющих ограничениям задачи (9) – (11), называется допустимым решением (или планом).

Определение 6.

План  , при котором целевая функция задачи (8) принимает свое максимальное (минимальное) значение, называетсяоптимальным.

Значение целевой функции (8) при плане Х будем обозначать через . Следовательно, X* – оптимальный план задачи, если для любого Хвыполняется неравенство  [соответственно  ].

Указанные выше три формы задачи линейного программирования эквивалентны в том смысле, что каждая из них с помощью несложных преобразований может быть переписана в форме другой задачи. Это означает, что если имеется способ нахождения решения одной из указанных задач, то тем самым может быть определен оптимальный план любой из трех задач.

Чтобы перейти от одной формы записи задачи линейного программирования к другой, нужно уметь, во-первых, сводить задачу минимизации функции к задаче максимизации; во-вторых, переходить от ограничений-неравенств к ограничениям-равенствам и наоборот; в-третьих, заменять переменные, которые не подчинены условию неотрицательности.

В том случае, когда требуется найти минимум функции  , можно перейти к нахождению максимума функции  , поскольку  .

Ограничение-неравенство исходной задачи линейного программирования, имеющее вид “ ”, можно преобразовать в ограничение-равенство добавлением к его левой части дополнительной неотрицательной переменной, а ограничение-неравенство вида “ ” – в ограничение-равенство вычитанием из его левой части дополнительной неотрицательной переменной. Таким образом, ограничение-неравенство

преобразуется в ограничение-равенство

(12)

а ограничение-неравенство

 в ограничение-равенство

(13)

В то же время каждое уравнение системы ограничений

можно записать в виде неравенств:

(14)

Число вводимых дополнительных неотрицательных переменных при преобразовании ограничений-неравенств в ограничения-равенства равно числу преобразуемых неравенств.


Вводимые дополнительные переменные имеют вполне определенный экономический смысл. Так, если в ограничениях исходной задачи линейного программирования отражается расход и наличие производственных ресурсов, то числовое значение дополнительной переменной в плане задачи, записанной в форме основной, равно объему неиспользуемого соответствующего ресурса.

Отметим, наконец, что если переменная  , не подчинена условию неотрицательности, то ее следует заменить двумя неотрицательными переменными  и  , приняв .

Пример 4.

Записать в форме основной задачи линейного программирования следующую задачу: найти максимум функции  при условиях

Решение. В данной задаче требуется найти максимум функции, а система ограничений содержит четыре неравенства. Следовательно, чтобы записать ее в форме основной задачи, нужно перейти от ограничений-неравенств к ограничениям-равенствам. Так как число неравенств, входящих в систему ограничений задачи, равно четырем, то этот переход может быть осуществлен введением четырех дополнительных неотрицательных переменных. При этом к левым частям каждого из неравенств вида“ “ соответствующая дополнительная переменная прибавляется, а из левых частей каждого из неравенств вида “  ” вычитается. В результате ограничения принимают вид уравнений:

Следовательно, данная задача может быть записана в форме основной задачи таким образом: максимизировать функцию при условиях

Пример 5.

Записать задачу, состоящую в минимизации функции  при условиях

в форме основной задачи линейного программирования.

Решение. В данной задаче требуется найти минимум целевой функции, а система ограничений содержит три неравенства. Следовательно, чтобы записать ее в форме основной задачи, вместо нахождения минимума функции F нужно найти максимум функции F1 = -F при ограничениях, получающихся из ограничений исходной задачи добавлением к левым частям каждого из ограничений-неравенств вида “ ” дополнительной неотрицательной переменной и вычитанием дополнительных переменных из левых частей каждого из ограничений-неравенств вида “ ”.

Следовательно, исходная задача может быть записана в форме основной задачи линейного программирования так: найти максимум функции  при условиях

Пример 6.

Записать в форме стандартной задачи линейного программирования следующую задачу: найти максимум функции  при условиях

Решение. Методом последовательного исключения неизвестных сведем данную задачу к следующей: найти максимум функции  при условиях

Последняя задача записана в форме основной для задачи, состоящей в нахождении максимального значения функции  при условиях

Целевая функция задачи преобразована с помощью подстановки вместо  и  их значений в соответствии с уравнениями системы ограничений задачи.


Свойства основной задачи линейного программирования. Геометрическое истолкование задачи линейного программирования

Рассмотрим основную задачу линейного программирования. Она состоит в определении максимального значения функции  при условиях 

Перепишем эту задачу в векторной форме: найти максимум функции

F=CX (15)

при условиях

(16)

(17)

где  ,  CX – скалярное произведение;  и  – m-мерные вектор-столбцы, составленные из коэффициентов при неизвестных и свободных членах системы уравнений задачи:

Определение 7.

План  называется опорным планом, основной задачи линейного программирования, если система векторов  , входящих в разложение (16) с положительными коэффициентами  линейно независима.

Так как векторы  являются m-мерными, то из определения опорного плана следует, что число его положительных компонент не может быть больше, чем т.

Определение 8.

Опорный план называется невырожденным, если он содержит ровно т положительных компонент, в противном случае он называется вырожденным.

Свойства основной задачи линейного программирования (15) – (17) тесным образом связаны со свойствами выпуклых множеств.

Определение 9.

Пусть  – произвольные точки евклидова пространства  . Выпуклой линейной комбинацией этих точек называется сумма  где  – произвольные неотрицательные числа, сумма которых равна 1: 

Определение 10.

Множество называется выпуклым, если вместе с любыми двумя своими точками оно содержит и их произвольную выпуклую линейную комбинацию.

Определение 11.

Точка Х выпуклого множества называется угловой, если она не может быть представлена в виде выпуклой линейной комбинации каких-нибудь двух других различных точек данного множества.

Теорема 1.

Множество планов основной задачи линейного программирования является выпуклым (если оно не пусто).

Определение 12.

Непустое множество планов основной задачи линейного программирования называется многогранником решений, а всякая угловая точка многогранника решений – вершиной.

Теорема 2.

Если основная задача линейного программирования имеет оптимальный план, то максимальное значение целевая функция задачи принимает в одной из вершин многогранника решений. Если максимальное значение целевая функция задачи принимает более чем в одной вершине, то она принимает его во всякой точке, являющейся выпуклой линейной комбинацией этих вершин.

Теорема 3.

Если система векторов  в разложении (16) линейно независима и такова, что

(18)

где все то точка  является вершиной многогранника решений.

Теорема 4.

Если – вершина многогранника решений, то векторы  ,  соответствующие положительным  в разложении (16), линейно независимы.

Сформулированные теоремы позволяют сделать следующие выводы.

Непустое множество планов основной задачи линейного программирования образует выпуклый многогранник. Каждая вершина этого многогранника определяет опорный план. В одной из вершин многогранника решений (т. е. для одного из опорных планов) значение целевой функции является максимальным (при условии, что функция ограничена сверху на множестве планов). Если максимальное значение функция принимает более чем в одной вершине, то это же значение она принимает в любой точке, являющейся выпуклой линейной комбинацией данных вершин.


Вершину многогранника решений, в которой целевая функция принимает максимальное значение, найти сравнительно просто, если задача, записанная в форме стандартной, содержит не более двух переменных или задача, записанная в форме основной, содержит не более двух свободных переменных, т. е.  , где n – число переменных, r – ранг матрицы, составленной из коэффициентов в системе ограничений задачи.

Найдем решение задачи, состоящей в определении максимального значения функции

(19)

при условиях

(20)

(21)

Каждое из неравенств (20), (21) системы ограничений задачи геометрически определяет полуплоскость соответственно с граничнымипрямыми  и В том случае, если система неравенств (20), (21) совместна, область ее решений есть множество точек, принадлежащих всем указанным полуплоскостям. Так как множество точек пересечения данных полуплоскостей – выпуклое, то областью допустимых решений задачи (19) – (21) является выпуклое множество, которое называется многоугольником решений(введенный ранее термин “многогранник решений” обычно употребляется, если  ). Стороны этого многоугольника лежат на прямых, уравнения которых получаются из исходной системы ограничений заменой знаков неравенств на знаки точных равенств.

Таким образом, исходная задача линейного программирования состоит в нахождении такой точки многоугольника решений, в которой целевая функция F принимает максимальное значение. Эта точка существует тогда, когда многоугольник решений не пуст и на нем целевая функция ограничена сверху. При указанных условиях в одной из вершин многоугольника решений целевая функция принимает максимальное значение. Для определения данной вершины построим линию уровня  (где h – некоторая постоянная), проходящую через многоугольник решений, и будем передвигать ее в направлении вектора  до тех пор, пока она не пройдет через ее последнюю общую точку с многоугольником решений. Координаты указанной точки и определяют оптимальный план данной задачи.

Заканчивая рассмотрение геометрической интерпретации задачи (19) – (21), отметим, что при нахождении ее решения могут встретиться случаи, изображенные на рис. 1 - 4. Рис. 1 характеризует такой случай, когда целевая функция принимает максимальное значение в единственной точке А. Из рис. 2 видно, что максимальное значение целевая функция принимает в любой точке отрезка АВ. На рис. 3 изображен случай, когда целевая функция не ограничена сверху на множестве допустимых решений, а на рис. 4 – случай, когда система ограничений задачи несовместна.

Отметим, что нахождение минимального значения линейной функции при данной системе ограничений отличается от нахождения ее максимального значения при тех же ограничениях лишь тем, что линия уровня  передвигается не в направлении вектора  а в противоположном направлении. Таким образом, отмеченные выше случаи, встречающиеся при нахождении максимального значения целевой функции, имеют место и при определении ее минимального значения.


Итак, нахождение решения задачи линейного программирования (19) – (21) на основе ее геометрической интерпретации включает следующие этапы:

1. Строят прямые, уравнения которых получаются в результате замены в ограничениях (20) и (21) знаков неравенств на знаки точных равенств.

2. Находят полуплоскости, определяемые каждым из ограничений задачи.

3. Находят многоугольник решений.

4. Строят вектор .

5. Строят прямую  , проходящую через многоугольник решений.

6. Передвигают прямую  в направлении вектора  , в результате чего-либо находят точку (точки), в которой целевая функция принимает максимальное значение, либо устанавливают неограниченность сверху функции на множестве планов.

7. Определяют координаты точки максимума функции и вычисляют значение целевой функции в этой точке.

Пример 7.

Для производства двух видов изделий А и В предприятие использует три вида сырья. Нормы расхода сырья каждого вида на изготовление единицы продукции данного вида приведены в табл. 2. В ней же указаны прибыль от реализации одного изделия каждого вида и общее количество сырья данного вида, которое может быть использовано предприятием.

Таблица 2

Вид сырья

Нормы расхода сырья (кг) на одно изделие

Общее количество сырья (кг)

 

А

В

I

II

III

12

4

3

4

4

12

300

120

252

Прибыль от реализации одного изделия (руб.)

 

30

 

40

 

Учитывая, что изделия А и В могут производиться в любых соотношениях (сбыт обеспечен), требуется составить такой план их выпуска, при котором прибыль предприятия от реализации всех изделий является максимальной,

Решение. Предположим, что предприятие изготовит x1 изделий вида А и  изделий вида В. Поскольку производство продукции ограничено имеющимся в распоряжении предприятия сырьем каждого вида и количество изготовляемых изделий не может быть отрицательным, должны выполняться неравенства

Общая прибыль от реализации x1 изделий вида А и  изделий вида В составит 

Таким образом, мы приходим к следующей математической задаче: среди всех неотрицательных решений данной системы линейных неравенств требуется найти такое, при котором функция F принимает максимальное значение.

Найдем решение сформулированной задачи, используя ее геометрическую интерпретацию. Сначала определим многоугольник решений. Для этого в неравенствах системы ограничений и условиях неотрицательности переменных знаки неравенств заменим на знаки точных равенств и найдем соответствующие прямые:

Эти прямые изображены на рис. 5. Каждая из построенных прямых делит плоскость на две полуплоскости. Координаты точек одной полуплоскости удовлетворяют исходному неравенству, а другой – нет. Чтобы определить искомую полуплоскость, нужно взять какую-нибудь точку, принадлежащую одной из полуплоскостей, и проверить, удовлетворяют ли ее координаты данному неравенству. Если координаты взятой точки удовлетворяют данному неравенству, то искомой является та полуплоскость, которой принадлежит эта точка, в противном случае – другая полуплоскость.