Математическое программирование (работа 1)

Математическое программирование

Общая задача линейного программирования (ЗЛП):

Здесь (1) называется системой ограничений , ее матрица имеет ранг r  n, (2) - функцией цели (целевой функцией). Неотрицательное решение (х>1>0, x>2>0, ... , x>n>0) системы (1) называется допустимым решением (планом) ЗЛП. Допустимое решение называется оптимальным, если оно обращает целевую функцию (2) в min или max (оптимум).

Симплексная форма ЗЛП. Для решения ЗЛП симплекс - методом необходимо ее привести к определенной (симплексной) форме:

(2`) f+c>r+1>x>r+1> + ... + c>s>x>s> + ... + c>n>x>n> = b>0>  min

Здесь считаем r < n (система имеет бесчисленное множество решений), случай r = n неинтересен: в этом случае система имеет единственное решение и если оно допустимое, то автоматически становится оптимальным.

В системе (1`) неизвестные х>1>, х>2>, ... , х>r> называются базисными (каждое из них входит в одно и только одно уравнение с коэффициентом +1), остальные х>r+1>, ... , x>n> - свободными. Допустимое решение (1`) называется базисным (опорным планом), если все свободные неизвестные равны 0, а соответствующее ему значение целевой функции f(x>1>0, ... , x>r>0,0, ... ,0) называется базисным.

В силу важности особенностей симплексной формы выразим их и словами:

а) система (1`) удовлетворяет условиям :

все ограничения - в виде уравнений;

все свободные члены неотрицательны, т.е. b>i>  0;

имеет базисные неизвестные;

б) целевая функция (2`) удовлетворяет условиям :

содержит только свободные неизвестные;

все члены перенесены влево, кроме свободного члена b>0>;

обязательна минимизация (случай max сводится к min по формуле max f = - min(-f)).

Матричная форма симплекс-метода. Симплексной форме ЗЛП соответствует симплекс - матрица :

Заметим, что каждому базису (системе базисных неизвестных ) соответствует своя симплекс - матрица , базисное решение х = (b>1>,b>2>, ... ,b>r>, 0, ... ,0) и базисное значение целевой функции f(b>1>,b>2>, ... ,b>r>, 0, ... ,0) = b>0> (см. Последний столбец !).

Критерий оптимальности плана . Если в последней (целевой) строке симплекс-матрицы все элементы неположительны, без учета последнего b>0>, то соответствующий этой матрице план оптимален,

т.е. с>j>  0 (j = r+1, n) => min f (b>1>, ... ,b>2>,0, ... ,0) = b>0>.

Критерий отсутствия оптимальности. Если в симплекс-матрице имеется столбец (S-й), в котором последний элемент с>s> > 0, a все остальные элементы неположительны, то ЗЛП не имеет оптимального плана, т.е. с>s> > 0, a>is>  0 ( i= 1,r ) => min f = -.

Если в симплекс-матрице не выполняются оба критерия, то в поисках оптимума надо переходить к следующей матрице с помощью некоторого элемента a>is> > 0 и следующих преобразований (симплексных):

все элементы i-й строки делим на элемент a+>is>;

все элементы S-го столбца, кроме a>is>=1, заменяем нулями;

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

a>kl>` = a>kb>a>is> - a>il>a>ks >= a>kl> - a>il>a>ks>;

a>is >a>is>

b>k>` = b>k>a>is> - b>i>a>ks>; c>l>` = c>l>a>is> - c>s>a>il>

a>is >a>is>

Определение. Элемент a>is>+ называется разрешающим, если преобразование матрицы с его помощью обеспечивает уменьшение (невозрастание) значения, целевой функции; строка и столбец, на пересечении которых находится разрешающий элемент, также называются разрешающими.

Критерий выбора разрешающего элемента. Если элемент a>is>+ удовлетворяет условию

b>i >= min b>k>

a>is0 >a>ks0>+

где s>0> - номер выбранного разрешающего столбца, то он является разрешающим.

Алгоритм симплекс-метода (по минимизации).

систему ограничений и целевую функцию ЗЛП приводим к симплексной форме;

составим симплекс-матрицу из коэффициентов системы и целевой функции в симплексной форме;

проверка матрицы на выполнение критерия оптимальности; если он выполняется, то решение закончено;

при невыполнении критерия оптимальности проверяем выполнение критерия отсутствия оптимальности; в случае выполнения последнего решение закончено - нет оптимального плана;

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

а) выбираем разрешающий столбец по наибольшему из положи тельных элементов целевой строки;

б) выбираем разрешающую строку по критерию выбора разрешающего элемента; на их пересечении находится разрешающий элемент;

c помощью разрешающего элемента и симплекс-преобразований переходим к следующей матрице;

вновь полученную симплекс-матрицу проверяем описанным выше способом (см. п. 3)

Через конечное число шагов, как правило получаем оптимальный план ЗЛП или его отсутствие

Замечания.

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

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

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

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

5. Геометрическая интерпретация ЗЛП и графический метод решения (при двух неизвестных)

Система ограничений ЗЛП геометрически представляет собой многоугольник или многоугольную область как пересечение полуплоскостей - геометрических образов неравенств системы. Целевая функция f = c>1>x>1> + c>2>x>2> геометрически изображает семейство параллельных прямых, перпендикулярных вектору n (с>1>,с>2>).

Теорема. При перемещении прямой целевой функции направлении вектора n значения целевой функции возрастают, в противоположном направлении - убывают.

На этих утверждениях основан графический метод решения ЗЛП.

Алгоритм графического метода решения ЗЛП.

    В системе координат построить прямые по уравнениям, соответствующим каждому неравенству системы ограничений;

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

    найти многоугольник (многоугольную область) решений системы ограничений как пересечение полуплоскостей;

    построить вектор n (с>1>,с>2>) по коэффициентам целевой функции f = c>1>x>1> + c>2>x>2>;

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

    перемещать прямую целевой функции параллельно самой себе по области решения, достигая max f при движении вектора n и min f при движении в противоположном направлении.

    найти координаты точек max и min по чертежу и вычислить значения функции в этих точках (ответы).

Постановка транспортной задачи.

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

Однородный груз, имеющийся в m пунктах отправления (производства) А>1>, А>2>, ..., А>m> соответственно в количествах а>1>, а>2>, ..., а>m>> >единиц, требуется доставить в каждый из n пунктов назначения (потребления) В>1>, В>2>, ..., В>n> соответственно в количествах b>1>, b>2>, ..., b>n> единиц. Стоимость перевозки (тариф) единицы продукта из A>i> в B>j> известна для всех маршрутов A>i>B>j> и равна C>ij> (i=1,m; j=1,n). Требуется составить такой план перевозок, при котором весь груз из пунктов отправления вывозиться и запросы всех пунктов потребления удовлетворяются (закрытая модель), а суммарные транспортные расходы минимальны.

Условия задачи удобно располагать в таблицу, вписывая в клетки количество перевозимого груза из A>i> в B>j>> >груза X>ij> > 0, а в маленькие клетки - соответствующие тарифы C>ij>:

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

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

Число r = m + n - 1, равное рангу системы (1), называется рангом транспортной задачи. Если число заполненных клеток (X>ij ><>0) в таблице равно r, то план называется невырожденным, а если это число меньше r, то план вырожденный - в этом случае в некоторые клетки вписывается столько нулей (условно заполненные клетки), чтобы общее число заполненных клеток было равно r.

Случай открытой модели легко сводится к закрытой модели путем введения фиктивного потребителя B>n+1> c потребностью b>n+1>=Σa>i>-Σb>j>, либо - фиктивного поставщика А>m+1 >c запасом a>m+1>=Σb>j>-Σa>i> ; при этом тарифы фиктивных участников принимаются равными 0.

Способы составления 1-таблицы (опорного плана).

Способ северо-западного угла (диагональный). Сущность способа заключается в том, что на каждом шаге заполняется левая верхняя клетка (северо-западная) оставшейся части таблицы, причем максимально возможным числом: либо полностью вывозиться груз из А>i>, либо полностью удовлетворяется потребность B>j>. Процедура продолжается до тех пор, пока на каком-то шаге не исчерпаются запасы a>i> и не удовлетворяются потребности b>j>> >. В заключение проверяют, что найденные компоненты плана X>ij> удовлетворяют горизонтальным и вертикальным уравнениям и что выполняется условие невырожденности плана.

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

Метод потенциалов решения транспортной задачи.

Определение: потенциалами решения называются числа >i>A>i>, >j>B>j>, удовлетворяющие условию >i>+>j>=C>ij> (*) для всех заполненных клеток (i,j).

Соотношения (*) определяют систему из m+n-1 линейных уравнений с m+n неизвестными, имеющую бесчисленное множество решений; для ее определенности одному неизвестному придают любое число (обычно >1>=0), тогда все остальные неизвестные определяются однозначно.

Критерий оптимальности. Если известны потенциалы решения X>0> транспортной задачи и для всех незаполненных клеток выполняются условия>i>+>j> C>i j>, то X>0> является оптимальным планом транспортной задачи.

Если план не оптимален, то необходимо перейти к следующему плану (таблице) так, чтобы транспортные расходы не увеличились.

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

    одна клетка пустая, все остальные занятые;

    любые две соседние клетки находятся в одной строке или в одном столбце;

    никакие 3 соседние клетки не могут быть в одной строке или в одном столбце .

Пустой клетке присваивают знак “ + ”, остальным - поочередно знаки “ - ” и “ + ”.

Для перераспределения плана перевозок с помощью цикла перерасчета сначала находят незаполненную клетку (r, s), в которой >r>+>s>C>rs>, и строят соответствующий цикл; затем в минусовых клетках находят число X=min{X>ij>}.> >Далее составляют новую таблицу по следующему правилу:

    в плюсовые клетки добавляем X;

    из минусовых клеток отнимаем Х;

    все остальные клетки вне цикла остаются без изменения.

Получим новую таблицу, дающее новое решение X, такое, что f(X>1>) f(X>0>); оно снова проверяется на оптимальность через конечное число шагов обязательно найдем оптимальный план транспортной задачи, ибо он всегда существует.

Алгоритм метода потенциалов.

    проверяем тип модели транспортной задачи и в случае открытой модели сводим ее к закрытой;

    находим опорный план перевозок путем составления 1-й таблицы одним из способов - северо-западного угла или наименьшего тарифа;

    проверяем план (таблицу) на удовлетворение системе уравнений и на не вырожденность; в случае вырождения плана добавляем условно заполненные клетки с помощью “ 0 ”;

    проверяем опорный план на оптимальность, для чего:

    а) составляем систему уравнений потенциалов по заполненным клеткам;

    б) находим одно из ее решений при >1>=0;

    в) находим суммы>i>+>j>=C>ij> (“косвенные тарифы”) для всех пустых клеток;

    г) сравниваем косвенные тарифы с истинными: если косвенные тарифы не превосходят соответствующих истинных(C>ij> C>ij>) во всех пустых клетках, то план оптимален (критерий оптимальности). Решение закончено: ответ дается в виде плана перевозок последней таблицы и значения min f.

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

Для перехода к следующей таблице (плану):

    а) выбираем одну из пустых клеток, где косвенный тариф больше истинного (C>ij>=>i>+>j >> C>ij> );

    б) составляем цикл пересчета для этой клетки и расставляем знаки “ + ”, “ - ” в вершинах цикла путем их чередования, приписывая пустой клетке “ + ”;

    в) находим число перерасчета по циклу: число X=min{X>ij>}, где X>ij>> >- числа в заполненных клетках со знаком “ - ”;

    г) составляем новую таблицу, добавляя X в плюсовые клетки и отнимая X из минусовых клеток цикла

    См. п. 3 и т.д.

Через конечное число шагов (циклов) обязательно приходим к ответу, ибо транспортная задача всегда имеет решение.