Математическое программирование
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. Алгоритм симплекс-метода (по минимизации).
5) систему ограничений и целевую функцию ЗЛП приводим к симплексной форме;
6) составим симплекс-матрицу из коэффициентов системы и целевой функции в
симплексной форме;
7) проверка матрицы на выполнение критерия оптимальности; если он выполняется, то решение закончено;
8) при невыполнении критерия оптимальности проверяем выполнение критерия
отсутствия оптимальности; в случае
выполнения последнего решение закончено - нет оптимального плана;
9) в случае невыполнения обоих критериев находим разрешающий элемент для
перехода к следующей матрице, для чего :
а) выбираем разрешающий столбец по
наибольшему из положи тельных элементов целевой
строки;
б) выбираем разрешающую строку по критерию
выбора разрешающего элемента; на их пересечении
находится разрешающий элемент;
6) c помощью разрешающего элемента и симплекс-преобразований переходим к следующей
матрице;
7) вновь полученную симплекс-матрицу проверяем описанным выше способом (см.
п. 3)
Через конечное
число шагов, как правило получаем оптимальный план ЗЛП или его отсутствие
Замечания.
1) Если в разрешающей строке (столбце) имеется нуль, то в соответствующем
ему столбце (строке) элементы остаются без изменения при
симплекс-преобразованиях.
2) преобразования - вычисления удобно начинать с целевой строки; если при этом окажется, что выполняется критерий оптимальности, то можно
ограничиться вычислением элементов последнего столбца.
3) при переходе от одной матрицы к другой свободные члены уравнений
остаются неотрицательными; появление
отрицательного члена сигнализирует о допущенной ошибке в предыдущих
вычислениях.
4) правильность полученного ответа - оптимального плана - проверяется путем
подстановки значений базисных неизвестных в целевую функцию; ответы должны совпасть.
5. Геометрическая
интерпретация ЗЛП и графический метод решения (при двух неизвестных)
Система ограничений ЗЛП геометрически представляет собой
многоугольник или многоугольную область как пересечение полуплоскостей -
геометрических образов неравенств системы. Целевая функция f = c1x1 + c2x2 геометрически
изображает семейство параллельных прямых, перпендикулярных вектору n (с1,с2).
Теорема. При перемещении прямой целевой функции
направлении вектора n значения целевой функции
возрастают, в противоположном направлении - убывают.
На этих утверждениях основан графический метод решения
ЗЛП.
6. Алгоритм графического метода решения ЗЛП.
7)В системе координат построить прямые по уравнениям, соответствующим
каждому неравенству системы ограничений;
8)найти полуплоскости решения каждого неравенства системы (обозначить
стрелками);
9)найти многоугольник (многоугольную область) решений системы ограничений
как пересечение полуплоскостей;
10)построить вектор n (с1,с2) по
коэффициентам целевой функции
f = c1x1 + c2x2;
11)в семействе параллельных прямых целевой функции выделить одну, например,
через начало координат;
12)перемещать прямую целевой функции параллельно самой себе по области
решения, достигая max f при движении
вектора n и min
f при движении в противоположном направлении.
13)найти координаты точек max и min по чертежу и вычислить значения функции в этих точках (ответы).
14. Постановка транспортной задачи.
Приведем экономическую формулировку транспортной задачи
по критерию стоимости:
Однородный груз, имеющийся в 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-таблицы (опорного плана).
X. Способ северо-западного угла (диагональный). Сущность способа заключается в том, что на каждом шаге
заполняется левая верхняя клетка (северо-западная) оставшейся части таблицы,
причем максимально возможным числом: либо полностью вывозиться груз из Аi, либо полностью удовлетворяется потребность Bj. Процедура продолжается до тех пор, пока на каком-то шаге не исчерпаются
запасы ai и не удовлетворяются потребности bj . В
заключение проверяют, что найденные компоненты плана Xij удовлетворяют горизонтальным и вертикальным уравнениям и что выполняется
условие невырожденности плана.
XI. Способ наименьшего тарифа. Сущность способа в том, что на каждом шаге заполняется та клетка
оставшейся части таблицы, которая имеет наименьший тариф; в случае наличия
нескольких таких равных тарифов заполняется любая из них. В остальном действуют
аналогично предыдущему способу.
12. Метод потенциалов решения транспортной задачи.
Определение: потенциалами решения называются числа 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. Алгоритм метода потенциалов.
12) проверяем тип модели транспортной задачи и в случае
открытой модели сводим ее к закрытой;
13) находим опорный план перевозок путем составления 1-й
таблицы одним из способов - северо-западного угла или наименьшего тарифа;
14) проверяем план (таблицу) на удовлетворение системе
уравнений и на невыражденность; в случае вырождения плана добавляем условно
заполненные клетки с помощью « 0 »;
15) проверяем опорный план на оптимальность, для чего:
а) составляем систему
уравнений потенциалов по заполненным клеткам;
б) находим одно из
ее решений при 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 и т.д.
Через конечное
число шагов (циклов) обязательно приходим к ответу, ибо транспортная задача
всегда имеет решение.