Математическое программирование
Математическое программирование
1. Общая
задача линейного программирования (ЗЛП):
Здесь (1) называется
системой ограничений , ее матрица имеет ранг r £ n, (2) - функцией цели (целевой функцией).
Неотрицательное решение (х10, x20, ... , xn0)
системы (1) называется допустимым
решением (планом) ЗЛП. Допустимое решение называется оптимальным, если оно
обращает целевую функцию (2) в min или max (оптимум).
2. Симплексная
форма ЗЛП. Для решения ЗЛП симплекс - методом необходимо ее привести к
определенной (симплексной) форме:
(2`)
f+cr+1xr+1 + ... + csxs + ... + cnxn
= b0 ® min
Здесь считаем r < n (система
имеет бесчисленное множество решений), случай r = n неинтересен: в
этом случае система имеет единственное решение и если оно допустимое, то автоматически
становится оптимальным.
В системе (1`)
неизвестные х1, х2, ... , хr
называются базисными (каждое из них входит в одно и только одно уравнение с
коэффициентом +1), остальные хr+1, ... , xn - свободными. Допустимое решение (1`)
называется базисным (опорным планом), если все свободные неизвестные равны 0, а
соответствующее ему значение целевой функции f(x10, ... , xr0,0, ... ,0) называется базисным.
В силу важности
особенностей симплексной формы выразим их и словами:
а) система (1`)
удовлетворяет условиям :
1) все
ограничения - в виде уравнений;
2) все
свободные члены неотрицательны, т.е. bi
³ 0;
3) имеет
базисные неизвестные;
б) целевая функция (2`)
удовлетворяет условиям :
1) содержит
только свободные неизвестные;
2) все
члены перенесены влево, кроме свободного члена b0;
3) обязательна
минимизация (случай max сводится к min по формуле max f = - min(-f)).
3) Матричная
форма симплекс-метода. Симплексной форме ЗЛП соответствует симплекс -
матрица :
1 0 ... 0 ... 0 a1,r+1 ... a1s ... a1n
b1
0 1 ... 0 ... 0 a2,r+1 ... a2s ... a2n b2
.................................................................
0 0 ... 1 ... 0 ai,r+1 ... ais ... ain bi
.................................................................
0 0 ... 0 ... 1 ar,r+1 ... ars ... arn br
0 0 ... 0 ... 0 cr+1 ... cs ... cn b0
Заметим, что каждому базису (системе базисных неизвестных ) соответствует
своя симплекс - матрица , базисное решение х = (b1,b2, ... ,br, 0,
... ,0) и базисное значение
целевой функции f(b1,b2,
... ,br, 0, ... ,0) = b0 (см. Последний столбец !).
Критерий
оптимальности плана . Если в
последней (целевой) строке симплекс-матрицы все элементы неположительны, без
учета последнего b0, то соответствующий этой матрице план
оптимален,
т.е.
сj £ 0 (j = r+1, n) => min f (b1,
... ,b2,0, ... ,0) = b0.
Критерий
отсутствия оптимальности.
Если в симплекс-матрице имеется столбец (S-й), в котором последний элемент сs > 0,
a все остальные элементы
неположительны, то ЗЛП не имеет оптимального плана, т.е. сs > 0, ais
£ 0 ( i= 1,r ) => min f = -¥.
Если в
симплекс-матрице не выполняются оба критерия, то в поисках оптимума надо переходить
к следующей матрице с помощью некоторого элемента ais > 0 и следующих преобразований (симплексных):
1) все элементы
i-й строки делим на элемент a+is;
2) все
элементы S-го столбца, кроме ais=1, заменяем нулями;
3) все
остальные элементы матрицы преобразуем по правилу прямоугольника, что схематично
показано на фрагменте матрицы и дано в формулах:
akl` = akbais
- ailaks = akl - ailaks;
ais
ais
bk` = bkais
- biaks; cl` = clais
- csail
ais
ais
Определение. Элемент ais+ называется
разрешающим, если преобразование матрицы с его помощью обеспечивает уменьшение
(невозрастание) значения, целевой функции; строка и столбец, на пересечении которых
находится разрешающий элемент, также называются разрешающими.
Критерий выбора
разрешающего элемента. Если
элемент ais+ удовлетворяет
условию
bi =
min bk
ais0 aks0+
где s0 - номер выбранного разрешающего столбца, то он является разрешающим.
4. Алгоритм
симплекс-метода (по минимизации).
1) систему
ограничений и целевую функцию ЗЛП приводим к симплексной форме;
2) составим
симплекс-матрицу из коэффициентов системы и целевой функции в симплексной форме;
3) проверка
матрицы на выполнение критерия оптимальности; если он выполняется, то решение закончено;
4) при
невыполнении критерия оптимальности проверяем выполнение критерия отсутствия
оптимальности; в случае выполнения последнего решение закончено -
нет оптимального плана;
5) в
случае невыполнения обоих критериев находим разрешающий элемент для перехода к
следующей матрице, для чего :
а) выбираем разрешающий столбец по наибольшему из положи
тельных элементов целевой строки;
б) выбираем разрешающую строку по критерию выбора разрешающего
элемента; на их пересечении находится разрешающий элемент;
6) c помощью разрешающего элемента и
симплекс-преобразований переходим к следующей матрице;
7) вновь
полученную симплекс-матрицу проверяем описанным выше способом (см. п. 3)
Через конечное число шагов, как правило получаем оптимальный план ЗЛП
или его отсутствие
Замечания.
1) Если
в разрешающей строке (столбце) имеется нуль, то в соответствующем ему столбце
(строке) элементы остаются без изменения при симплекс-преобразованиях.
2) преобразования
- вычисления удобно начинать с целевой строки; если при этом окажется,
что выполняется критерий оптимальности, то можно ограничиться вычислением
элементов последнего столбца.
3) при
переходе от одной матрицы к другой свободные члены уравнений остаются неотрицательными;
появление отрицатель
ного члена сигнализирует о допущенной ошибке в предыдущих вычислениях.
4) правильность
полученного ответа - оптимального плана - проверяется путем подстановки
значений базисных неизвестных в целевую функцию; ответы должны совпасть.
5. Геометрическая
интерпретация ЗЛП и графический метод решения (при двух неизвестных)
Система
ограничений ЗЛП геометрически представляет собой многоугольник или многоугольную
область как пересечение полуплоскостей - геометрических образов неравенств
системы. Целевая функция f = c1x1
+ c2x2 геометрически
изображает семейство параллельных прямых, перпендикулярных вектору n (с1,с2).
Теорема. При перемещении прямой целевой функции
направлении вектора n значения целевой функции возрастают, в
противоположном направлении - убывают.
На этих утверждениях
основан графический метод решения ЗЛП.
6. Алгоритм графического
метода решения ЗЛП.
1)
В системе координат
построить прямые по уравнениям, соответствующим каждому неравенству системы
ограничений;
2)
найти полуплоскости
решения каждого неравенства системы (обозначить стрелками);
3)
найти многоугольник
(многоугольную область) решений системы ограничений как пересечение
полуплоскостей;
5)
в семействе параллельных
прямых целевой функции выделить одну, например, через начало координат;
6)
перемещать прямую целевой
функции параллельно самой себе по области решения, достигая max f
при движении вектора n и min f при движении в противоположном направлении.
7)
найти координаты точек max и min по
чертежу и вычислить значения функции в этих точках (ответы).
7. Постановка
транспортной задачи.
Приведем
экономическую формулировку транспортной задачи по критерию стоимости:
Однородный груз,
имеющийся в m пунктах отправления (производства) А1, А2,
..., Аm
соответственно в количествах а1, а2, ..., аm единиц, требуется доставить в каждый из n пунктов
назначения (потребления) В1, В2, ..., Вn соответственно
в количествах b1, b2,
..., bn единиц.
Стоимость перевозки (тариф) единицы продукта из Ai в Bj известна для всех маршрутов AiBj
и равна Cij (i=1,m; j=1,n). Требуется составить такой план перевозок, при котором весь груз из
пунктов отправления вывозиться и запросы всех пунктов потребления
удовлетворяются (закрытая модель), а суммарные транспортные расходы минимальны.
Условия задачи удобно
располагать в таблицу, вписывая в клетки количество перевозимого груза из Ai в Bj груза
Xij > 0, а в маленькие клетки - соответствующие тарифы Cij:
8. Математическая
модель транспортной задачи.
Из предыдущей таблицы
легко усматривается и составляется математическая модель транспортной задачи
для закрытой модели
Число r = m + n - 1, равное рангу системы (1), называется рангом транспортной задачи. Если
число заполненных клеток (Xij ¹ 0) в таблице равно r, то план называется
невырожденным, а если это число меньше r, то план вырожденный - в этом случае в
некоторые клетки вписывается столько нулей (условно заполненные клетки), чтобы
общее число заполненных клеток было равно r.
Случай открытой
модели Σаi ¹ Σbj легко сводится к закрытой модели путем
введения фиктивного потребителя Bn+1 c потребностью
bn+1=Σai-Σbj,
либо - фиктивного поставщика Аm+1 c запасом am+1=Σbj-Σai ; при этом тарифы фиктивных участников принимаются
равными 0.
9. Способы
составления 1-таблицы (опорного плана).
I. Способ северо-западного угла (диагональный). Сущность способа заключается
в том, что на каждом шаге заполняется левая верхняя клетка (северо-западная)
оставшейся части таблицы, причем максимально возможным числом: либо полностью
вывозиться груз из Аi, либо полностью удовлетворяется потребность Bj. Процедура продолжается до тех пор, пока на
каком-то шаге не исчерпаются запасы ai
и не удовлетворяются потребности bj . В заключение проверяют, что найденные
компоненты плана Xij
удовлетворяют горизонтальным и вертикальным уравнениям и что выполняется
условие невырожденности плана.
II. Способ
наименьшего тарифа. Сущность
способа в том, что на каждом шаге заполняется та клетка оставшейся части
таблицы, которая имеет наименьший тариф; в случае наличия нескольких таких
равных тарифов заполняется любая из них. В остальном действуют аналогично
предыдущему способу.
10. Метод
потенциалов решения транспортной задачи.
Определение: потенциалами решения называются числа ai®Ai, bj®Bj, удовлетворяющие условию ai+bj=Cij (*) для
всех заполненных клеток (i,j).
Соотношения (*)
определяют систему из m+n-1 линейных уравнений с m+n
неизвестными, имеющую бесчисленное множество решений; для ее определенности
одному неизвестному придают любое число (обычно a1=0), тогда все остальные неизвестные определяются
однозначно.
Критерий
оптимальности. Если известны
потенциалы решения X0 транспортной задачи и для всех незаполненных
клеток выполняются условия ai+bj £ Ci j, то X0 является оптимальным планом транспортной задачи.
Если план не
оптимален, то необходимо перейти к следующему плану (таблице) так, чтобы
транспортные расходы не увеличились.
Определение: циклом пересчета таблицы называется последовательность
клеток, удовлетворяющая условиям:
1) одна
клетка пустая, все остальные занятые;
2) любые
две соседние клетки находятся в одной строке или в одном столбце;
3) никакие
3 соседние клетки не могут быть в одной строке или в одном столбце .
Пустой клетке
присваивают знак « + », остальным - поочередно знаки « - » и « + ».
Для перераспределения
плана перевозок с помощью цикла перерасчета сначала находят незаполненную
клетку (r, s), в которой ar+bs>Crs, и строят соответствующий цикл; затем в
минусовых клетках находят число X=min{Xij}. Далее составляют
новую таблицу по следующему правилу:
1) в
плюсовые клетки добавляем X;
2) из минусовых
клеток отнимаем Х;
3) все
остальные клетки вне цикла остаются без изменения.
Получим новую
таблицу, дающее новое решение X, такое, что f(X1) £ f(X0); оно
снова проверяется на оптимальность через конечное число шагов обязательно
найдем оптимальный план транспортной задачи, ибо он всегда существует.
11. Алгоритм
метода потенциалов.
1) проверяем
тип модели транспортной задачи и в случае открытой модели сводим ее к закрытой;
2) находим
опорный план перевозок путем составления 1-й таблицы одним из способов - северо-западного
угла или наименьшего тарифа;
3) проверяем
план (таблицу) на удовлетворение системе уравнений и на невыражденность; в
случае вырождения плана добавляем условно заполненные клетки с помощью « 0 »;
4) проверяем
опорный план на оптимальность, для чего:
а) составляем систему
уравнений потенциалов по заполненным клеткам;
б) находим одно из ее
решений при a1=0;
в) находим суммы ai+bj=C¢ij («косвенные тарифы») для всех пустых клеток;
г) сравниваем
косвенные тарифы с истинными: если косвенные тарифы не превосходят соответствующих
истинных(C¢ij £ Cij) во всех пустых клетках, то план оптимален
(критерий оптимальности). Решение закончено: ответ дается в виде плана
перевозок последней таблицы и значения min
f.
Если критерий
оптимальности не выполняется, то переходим к следующему шагу.
5) Для
перехода к следующей таблице (плану):
а) выбираем одну из
пустых клеток, где косвенный тариф больше истинного (C¢ij= ai+bj > Cij );
б) составляем цикл
пересчета для этой клетки и расставляем знаки « + », « - » в вершинах цикла путем
их чередования, приписывая пустой клетке « + »;
в) находим число
перерасчета по циклу: число X=min{Xij}, где Xij - числа в заполненных клетках со знаком « - »;
г) составляем новую
таблицу, добавляя X в плюсовые клетки и отнимая X из
минусовых клеток цикла
6) См.
п. 3 и т.д.
Через конечное число
шагов (циклов) обязательно приходим к ответу, ибо транспортная задача всегда
имеет решение.