Математическое программирование, базы данных, ПО

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