Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Симплекс- метод






Основным численным методом решения ЗЛП является так называемый симплекс-метод. В настоящее время теоретические и вычислительные аспекты этого метода хорошо разработаны. Симплекс-метод находит широкое применение при решении разнообразных задач линейного программирования. Наряду с этим он используется в численных методах нелинейной и дискретной оптимизации как вспомогательный инструмент для решения возникающих задач линейного программирования.

Следует отметить, что сам термин “симплекс-метод” не отражает существа этой вычислительной процедуры. Он связан с тем историческим обстоятельством, что первоначально метод был разработан применительно к ЗЛП, допустимое множество которой имело вид Х = { x Î R n | x 1 + x 2 + … + xn = 1, xi ³ 0, i = 1, …, n } (это множество именуется стандартным симплексом). В литературе данный метод называют также методом последовательного улучшения плана.

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

f (x) = c 1 x 1 + c 2 x 2 +... + cn xn ® min, (3.8)

ai 1 x 1 + ai 2 x 2 ++ ain xn = bi, i = 1, 2, , m, (3.9)

xj ³ 0, j = 1, …, n. (3.10)

1. Базис опорной точки допустимого множества. В этом пункте мы введем основные понятия, подводящие к главной идее симплекс-метода и необходимые для описания алгоритма.

Запишем систему равенств (3.9) в матричной форме

Ax = B, (3.11)

полагая, что

Обозначим через А 1, …, Аn столбцы матрицы А, т. е.

Тогда систему (3.11) можно записать в виде

А 1 x 1 + A 2 x 2 + … + An xn = b. (3.12)

В дальнейшем без ограничения общности мы можем полагать, что число уравнений задающих множество Х, меньше или равно числу переменных задачи (m £ n). Действительно, если это не так, то либо система уравнений Ах = b несовместна (и, значит, множество Х пусто), либо содержит избыточные (линейно зависимые) уравнения. Соотношение (3.12) является ни чем иным, как разложением вектора b по векторам Аi, i = 1, 2, …, n, а xi – коэффициентами этого разложения. Такое разложение получило название второй геометрической интерпретации ЗЛП. Если некоторые m столбцов Аj 1, Aj 2, …, Ajm матрицы А линейно независимы, то они образуют базис в пространстве R m, и вектор b представим в виде их линейной комбинации.

Определение 3.7. Точка x (0) = (x 1(0), …, xn (0)) называется опорной точкой допустимого множества Х, если существуют номера j 1, …, jm, 1 £ jk £ n, такие, что система векторов Aj 1, …, Ajm линейно независима и

xjk (0) ³ 0, k = 1, 2, …, m, xs (0) = 0, если s ¹ jk.

Система векторов { Aj 1, …, А jm} называется базисом опорной точки (х (0)), а переменные xj 1, …, xjm - базисными переменными.

Переменные, которые не входят в список базисных переменных, называются небазисными или свободными.

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

Теорема 3.2. Каждая опорная точка является угловой точкой допустимого множества Х.

Если среди базисных переменных нет равных нулю, то опорная точка x (0) называется невырожденной, в противном случае - вырожденной опорной точкой. Соответственно, если среди опорных точек ЗЛП нет вырожденных, то она называется невырожденной, в противном случае – вырожденной задачей линейного программирования.

Основная идея и алгоритм симплекс-метода. Исходя из свойства ЗЛП, рассмотренных в предыдущем параграфе, можно заключить, что на принципиальном уровне поиск ее решений сводится к последовательному перебору угловых точек допустимого множества или, что тоже самое, перебору соответствующих опорных точек. Следует подчеркнуть, что такой перебор для реальных многомерных задач крайне не эффективен даже при условии использования мощной вычислительной техники, ибо при больших n и m он требует огромной вычислительной работы.

Итак, метод полного перебора опорных точек практической ценности не имеет. Но он естественным образом подводит к основной идее симплекс-метода: полный перебор заменяется упорядоченным, при котором осуществляется переход от текущей опорной точки только к тем опорным точкам, в которых значение целевой функции меньше, чем в текущей. В самом деле, если уже вычислена некоторая опорная точка х, то нет необходимости просматривать те опорные точки, в которых целевая функция принимает большее значение, чем в х: они заведомо не могут быть решением задачи. Несмотря на то что при таком переборе возврат к однажды просмотренным опорным точкам уже невозможен, теоретически не исключается (и такие примеры существуют), что в процессе решения будут пройдены все опорные точки допустимого множества Х. Однако большой практический опыт показал, что для подавляющего числа канонических ЗЛП количество итераций находится в пределах от m до 2 m.

Приступим к более детальному описанию симплекс-метода применительно к невырожденной канонической ЗЛП.

Пусть известна некоторая опорная точка х (0) = (х 1(0),..., хn (0)) допустимого множества задачи (3.8)-(3.10). Предположим, что столбцы матрицы А образуют базис угловой точки x (0), а переменные являются базисными переменными. Решая систему уравнений (3.9) относительно переменных и исключая базисные переменные из целевой функции, приходим к следующей ЗЛП, эквивалентной первоначальной задаче: минимизировать функцию

(3.13)

при условиях

(3.14)

............................

xi ³ 0, i = 1, 2,..., n.

Так как x (0) - невырожденная опорная точка, то k = 1, 2,..., m. Функцию f 1(x), будем называть приведенным (к небазисным переменным) выражением для целевой функции f (x), а коэффициенты - оценками соответствующих свободных переменных k = m+ 1, …, n.

Дальнейшая стратегия определяется основной теоремой симплекс-метода, которую мы приведем без доказательства.

Теорема 3.3. Если после выполнения очередной итерации в опорной точке x (0):

1) все оценки окажутся неотрицательными, т. е. для всех k = m+ 1, …, n, то x (0) - решение задачи (3.8)-(3.10);

2) существует номер jr, m+ 1 £ r £ n такой, что и все i = 1, 2, …, m, то целевая функция f (x) неограниченно убывает на допустимом множестве (3.9), (3.10), то есть задача (3.8)-(3.10) не имеет решения;

3) найдется номер jr, m+ 1 £ r £ n, такой, что , но среди коэффициентов есть положительные числа то можно перейти к другой опорной точке x (1), в которой f (x (1)) £ f (x (0)).

Третий случай означает, что решение ещё не достигнуто и необходимо выполнить следующую итерацию. Действительно, так как x (0) - опорная точка, то k = m+ 1, …, n, и f 1(x (0)) = f (x (0)) (см.(3.13)). Структура допустимого множества задачи (3.8)-(3.10) такова, что оно обязательно содержит хотя бы одну точку x, у которой jr -я координата строго положительна, а координаты при k = m +1, …, n, k ¹ r, равны нулю. Тогда из (3.13) вытекает, что f (x) = f 1(x) £ f (x (0)). Значит f (х (0))не является минимумом f (x) на допустимом множестве (3.9), (3.10).

Следующая итерация включает в себя переход от х (0) к новой опорной точке х (1) и проверку последней на оптимальность. Для такого перехода мы вводим в список базисных переменных в точке х (0) новую базисную переменную m+ 1 £ r £ n, выбирая ее из тех свободных переменных, которые входят в приведенное выражение f 1(x) с отрицательным коэффициентом, и выводим из списка переменную определяя номер jl с помощью положительных коэффициентов при в (3.14). А именно, выбираем номер jl из условия

(3.15)

По условию, рассматриваемая задача невырожденная, а поэтому условие (3.15) определяет единственное число jl. Переменные будут новыми базисными переменными. Элемент называют разрешающим элементом, а jl – e уравнение системы (3.14) - разрешающим уравнением. Исключим с помощью разрешающего уравнения переменную из функции f 1(x) и всех других уравнений системы (3.14).

Для этого применяется простой приём - преобразование Жордана-Гаусса (или метод полного исключения). В данном случае он состоит в том, что мы должны “заработать” единицу на месте разрешающего элемента и нули на месте коэффициентов при в остальных уравнениях. Первое достигается посредством деления разрешающего уравнения на , второе - путём прибавления вновь полученного jl -го уравнения, умноженного на подходящий коэффициент, к остальным уравнениям (3.14). Правые части получившейся при этом системы уравнений определяют положительные координаты новой опорной точки х (1). Приведённое выражение для функции f (x) примет вид:

Используя теорему 3.3, проверяем точку х (1) на оптимальность по оценкам и при необходимости делаем следующую итерацию по той же схеме применительно к вновь полученной задаче для f 2(x).

Замечание 1. Вообще говоря, индекс jr в третьей части теоремы 3.3. определяется неоднозначно. Другими словами, приведённое выражение (3.13) для функции f (x) может содержать несколько отрицательных оценок На практике обычно выбирают наименьшую из них.

Замечание 2. В условии (3.15) возможны два случая: a = 0 или a > 0. При a = 0 имеем х (0) = х (1), т. е. происходит лишь замена одного базиса точки х (0) другим. При a > 0 заведомо х (0) ¹ х (1)и f (х (1)) < f (х (0)). Если точка х (0) невырожденная, то обязательно a > 0. Но для вырожденной точки х (0) случай a = 0 не исключается. Таким образом, для вырожденной задачи возможна ситуация, когда итерации описанной процедуры сведутся к перебору базисов одной и той же опорной точки, не являющейся решением; причем с некоторого момента эти базисы начнут повторяться, так как число их конечно. В таком случае говорят, что произошло зацикливание симплекс-метода. Это явление возможно, когда в системе (3.2)-(3.3) имеются несущественные ограничения. Однако большой практический опыт показал, что при решении реальных ЗЛП, многие из которых вырождены, зацикливание встречается крайне редко: если даже в процессе вычислений некоторая опорная точка повторяется, то, как правило, рано или поздно обнаруживается такой ее базис, который позволяет перейти к новой опорной точке.

3. Пример решения ЗЛП симплекс-методом. Рассмотрим на конкретном примере процесс решения канонической ЗЛП симплекс-методом. Пусть дана задача

f (x) = 4 x 1 - 5 x 2 - x 3 - 3 x 4 - 5 x 5® min; (3.16)

X: -x 1 + 3 x 2 + 2 x 4 + x 5 = 5,

-x 1 +3 x 2 + x 3 + 3 x 4 + 2 x 5 = 9, (3.17)

-3 x 1 + 2 x 2 + x 3 + 2 x 4 + x 5 = 6,

xi ³ 0, i = 1, …, 5.

Начнем поиск решения с точки х (0) = (0, 0, 1, 2, 1). Убедимся в том, что х (0) - опорная точка допустимого множества Х. Для этого проверим, являются ли столбцы матрицы системы (3.17)

линейно независимыми. Как известно из аналитической геометрии, три вектора в R3 линейно независимы, если составленный из них определитель не равен нулю. В нашем случае

Итак, х (0)действительно является опорной точкой. Ее базис - А 3, А 4, А 5, а базисные переменные - х 3, х 4, х 5.

Первая итерация. Решая систему уравнений (3.17) относительно базисных переменных и исключая их из функции f (x), получим задачу:

f 1(x) = -12 + 18 x 1 - 5 x 2 ® min

при условиях

-2 х 1 - х 2 + х 3 = 1,

-3 х 1 + 2 х 2 + х 4 = 2, (3.18)

5 х 1 - х 2 + х 5 = 1.

Как видно, в приведенном выражении f 1(x) имеется одна отрицательная оценка ­­-5 при переменной х 2.Последнее означает согласно теореме 3.3, что опорная точка х (0) не является решением задачи (3.16)-(3.17). Среди коэффициентов при переменной х2 в системе (3.18) есть один положительный. Он находится в уравнении, содержащем базисную переменную х 4. Значит, можно перейти к другой опорной точке.

Вторая итерация. Мы вводим в список базисных переменных новую переменную х 2, а выводим из него – х 4. Теперь базисными являются переменные х 2, х 3, х 5. Второе уравнение системы (3.18) будет разрешающим уравнением системы. Исключим с помощью преобразования Жордана-Гаусса переменную х2 из других уравнений системы. На этом этапе удобнее оперировать не с самой системой (3.18), а с ее расширенной матрицей

Разделим вторую строку матрицы на 2. Это даст

Прибавим вторую строку к первой, затем - к третьей. Будем иметь

Итак, мы приходим к системе уравнений

-3, 5 x 1 + x 3 + 0, 5 x 4 = 2,

-1, 5 x 1 + x 2 + 0, 5 x 4 = 1, (3, 19)

3, 5 x 1 + x 4 + x 5 = 2,

и новой опорной точке х (1) = (0, 1, 2, 0, 2).

Теперь исключим базисную переменную х 2 из функции f 1(x). Для этого выразим из второго уравнения системы (3.19) переменную х 2 и подставим в f 1(x), после чего приведенное выражение для f (x) примет вид

f 2(x) = -17 + 10, 5 x 1 + 2, 5 x 4.

Так как все коэффициенты функции f 2(x)неотрицательны, то точка х (1) является решением задачи (3.16)-(3.17).

Ответ: х * = (0, 1, 2, 0, 2), f min = -17.

4. Нахождение начальной опорной точки и М -метод. Одним из достоинств симплекс-метода является возможность его применения для определения начальной опорной точки х (0) = (х 1(0), …, хn (0)) многогранного множества Х, заданного условиями (3.9), (3.10). Соответствующий алгоритм носит название метода искусственного базиса. Рассмотрим вспомогательную задачу: минимизировать функцию

g (x) = xn +1 + xn +2 + … + xn+m

при ограничениях

ai 1 x 1 + … + ainxn + xn+i = bi, i = 1, …, m, (3.17)

xk ³ 0, k = 1, …, n + m, (3.18)

где bi, aik, i = 1, …, m, k = 1, …, n, те же что и в условиях (3.9), (3.10). Так как g (x) ограничена снизу, эта задача всегда имеет решение. По условию все bi ³ 0, поэтому переменные xn +1, …, xn+m можно принять за базисные переменные, точка (0, …, 0, b 1, …, bm) является угловой точкой многогранного множества (3.17), (3.18). Применяя симплекс-метод, находим точку ` х (0) = (х 1(0), …, хn (0), хn +1(0), …, хn+m (0)), минимизирующую функцию g (x) при ограничениях (3.17), (3.18). Положим g min=a. Справедлива

Лемма 3.4. Если a = 0, то х (0) = (х 1(0), …, хn (0)) - опорная точка множества Х. Если a > 0, то допустимое множество Х пусто.

Для того чтобы не отделять решение канонической задачи от поиска начальной угловой точки, используется так называемый М - метод, в котором минимизируется симплекс-методом функция

h (x) = c 1 x 1 + … + cnxn + M (xn+ 1 + … + xn+m) (3.19)

при ограничениях (3.17), (3.18) и начальной угловой точке (0, …, 0, b 1, …, bm). Решение задачи (3.8)-(3.10) этим методом опирается на следующее утверждение.

Лемма 3.5. Если разрешима каноническа задача (3.8)-(3.10), то существует такое число М 0 > 0, что для всех М ³ М 0 в любом решении ` х* = (х 1*, …, хn *, x * n +1, …, x * n+m) задачи (3.17)-(3.19) точка х* = (х 1*, …, хn *) будет решением задачи (3.8)-(3.10), причем f (x*) = h (` x*).

На практике достаточно взять за М произвольное число, превышающее абсолютную величину любого коэффициента функции (3.8) и условий (3.9).






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.