
- •Линейное программирование. Введение.
- •Примеры задач линейного программирования.
- •1.Задача об использовании ресурсов.
- •Задача составления рациона (задача о диете, задача о смесях).
- •Задания:
- •.Общая задача линейного программирования.
- •Графический метод решения злп.
- •Алгоритм решения злп графическим методом.
- •Не единственность оптимального решения.
- •Основы симплекс - метода линейного программирования
- •Задачи.
- •Особые случаи симплексного метода Не единственность оптимального решения (альтернативный оптимум).
- •Появление вырожденного базисного решения
- •Отсутствие конечного оптимума.
- •Метод искусственных переменных (м-метод).
- •Задания.
- •Двойственные задачи
- •Свойства взаимно двойственных задач.
- •Алгоритм составления двойственных задач.
- •Объективно обусловленные оценки и их смысл.
- •Задания.
- •Модели целочисленного линейного программирования.
- •Методы отсечения.
- •Метод Гомори.
- •Алгоритм метода Гомори.
- •Задания
- •Понятие о методе ветвей и границ.
- •Транспортная модель.
- •Определение транспортной модели
- •Пример транспортной модели
- •Приведение любой транспортная модель к сбалансированной.
- •Решение транспортной задачи
- •Нахождение первоначального допустимого базисного решения.
- •I. Метод северо-западного угла
- •II.Метод минимальной стоимости.
- •Критерий оптимальности и нахождение переменной вводимой в базис. Метод потенциалов.
- •Нахождение переменной, выводимой из базиса.
- •Распределительный метод (построение замкнутого цикла).
- •Примеры задач транспортной модели. Модель производства за запасами
Основы симплекс - метода линейного программирования
Симплекс - метод представляет собой итеративную процедуру решения задач ЛП, в каноническом виде (любую задачу ЛП можно привести к каноническому виду:
(1)
Переменные, входящие с единичными коэффициентами только в одно уравнение системы и с нулевыми - в остальные, называются базисными. В канонической системе каждому уравнению соответствует ровно одна базисная переменная. Остальные n-m переменных называются небазисными переменными.
Будем считать, что решается задача на максимум (задачу на минимум можно свести к задаче на максимум, умножив целевую функцию на (-1))
Алгоритм симплекс - метода:
После введения добавочных переменных, система уравнений записывается в виде, который называется расширенной системой (1). Предполагается, что все добавочные переменные имеют тот же знак, что и свободные члены.
Исходную расширенную систему заносим в первую симплекс таблицу. Последняя строка в которой приведено уравнение для линейной функции цели, называется оценочной. В ней указываются коэффициенты функции цели с противоположным знаком. В левом столбце таблицы записываем базисные переменные (на первом шаге за базисные переменные берутся дополнительные переменные), в первой строке – все переменные, во втором столбце – свободные члены расширенной системы b1,…,bm. Последний столбец подготовлен для оценочных отношений, необходимый при расчете. В рабочую часть таблицы, начиная с третьего столбца и второй строки, занесены коэффициенты при переменных aij расширенной системы. Далее таблица преобразуется по определенным правилам.
Проверяем выполнение критерия оптимальности (при решении задачи на максимум критерий оптимальности состоит в отсутствии отрицательных коэффициентов в оценочной строке). Если критерий оптимальности выполнен, то следовательно, максимум достигнут и оптимальное значение z равно с0 (в левом нижнем углу таблицы). Базисные переменные принимают значения bi, остальные переменные равны 0. Если критерий оптимальности не выполнен, переходим к следующему шагу.
По оценочной строке выбираем переменную вводимую в базис. Находим наибольший по модулю отрицательный коэффициент в оценочной строке. Соответствующая этому столбцу переменная хs будет вводимой в базис, а сам столбец называется разрешающим.
Находим переменную, выводимую из базиса. Для этого составляем оценочные отношения (они заносятся в столбец для оценочных отношений) по следующим правилам:
, если bi и ais имеют разные знаки;
, если bi=0 и ais<0;
, если ais=0;
0, если bi=0 и ais>0;
, если bi и ais имеют одинаковые знаки.
Определяем
.
Если конечного минимума нет, то задача
не имеет конечного оптимума (zmax=).
Если минимум конечен, то выбираем строку
q,
на которой он достигается (если их
несколько, то любую), и называем ее
разрешающей строкой. На пересечении
разрешающей строки и разрешающего
столбца находится разрешающий элемент
aqs.
Переходим к следующей таблице по правилам (преобразования Гаусса-Жордана):
в левом столбце записываем новый базис: вместо основной переменной xq – переменную xs;
в столбцах, соответствующих базисным переменным, проставляем нули и единицы: 1- на пересечении строки и столбца, соответствующих одной и той же базисной переменной; 0 – во всех других позициях столбцов базисных переменных;
Новую строку q получаем из старой делением на разрешающий элемент aqs;
все остальные элементы аij' вычисляем по правилу:
(2)
Далее переходим к шагу III.
Пример 6.
Решим задачу:
Приведем систему ограничений к каноническому виду. Получим расширенную систему:
Целевую функцию представим в виде z-2x1-3x2=0.
Базисными переменными будут являться дополнительные переменные x3, x4, x5, x6.
Заполним первую симплекс-таблицу:
Базис |
Свобод-ный член |
Переменные |
Оценоч-ные отношения |
|||||
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|||
x3 |
18 |
1 |
3 |
1 |
0 |
0 |
0 |
18/3 |
x4 |
16 |
2 |
1 |
0 |
1 |
0 |
0 |
16 |
x5 |
5 |
0 |
1 |
0 |
0 |
1 |
0 |
5 |
x6 |
21 |
3 |
0 |
0 |
0 |
0 |
1 |
|
z |
0 |
-2 |
-3 |
0 |
0 |
0 |
0 |
|
Проверяем критерий оптимальности задачи. В последней оценочной строке имеются отрицательные коэффициенты. Выбираем из них наибольший по модулю – (-3). Следовательно s=2, переменная х2 является выводимой из базиса, а соответствующий ей столбец – разрешающим.
Находим оценочные отношения и выбираем из них минимальное (=5). Следовательно, q=3, переменная х5 является вводимой в базис, а соответствующая ей строка – разрешающей.
Переходим к новой симплекс-таблице:
в новом базисе основные переменные x3, x4, x2, x6;
расставляем 0 и1; например, на пересечении столбца и строки, соответсвущих переменной х3 ставим 1, а остальные элементы столбца х3 равны 0 и т.д. Третья строка получается делением на разрешающий элемент а33=1. Остальные клетки таблицы заполняем по формулам (2). Например:
Получаем вторую симплекс таблицу:
Базис |
Свобод-ный член |
Переменные |
Оценоч-ные отношения |
|||||
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|||
x3 |
3 |
1 |
0 |
1 |
0 |
-3 |
0 |
3 |
x4 |
11 |
2 |
0 |
0 |
1 |
-1 |
0 |
11/2 |
x2 |
5 |
0 |
1 |
0 |
0 |
1 |
0 |
|
x6 |
21 |
3 |
0 |
0 |
0 |
0 |
1 |
7 |
z |
15 |
-2 |
0 |
0 |
0 |
3 |
0 |
|
Критерий оптимальности вновь не выполнен. Теперь разрешающий первый столбец и х1 – вводимая переменная. Считаем оценочные отношения и находим разрешающую строку – первая и выводимую из базиса переменную – х3. Разрешающий элемент а11.
Переходим к новой симплекс-таблице:
Базис |
Свобод-ный член |
Переменные |
Оценоч-ные отношения |
|||||
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|||
x1 |
3 |
1 |
0 |
1 |
0 |
-3 |
0 |
|
x4 |
5 |
0 |
0 |
-2 |
1 |
5 |
0 |
5/5 |
x2 |
5 |
0 |
1 |
0 |
0 |
1 |
0 |
5/1 |
x6 |
12 |
0 |
0 |
-3 |
0 |
9 |
1 |
12/9 |
z |
21 |
0 |
0 |
2 |
0 |
-3 |
0 |
|
И на этот раз критерий оптимальности не выполнен.
Выводимая переменная х4; вводимая х5. Переходим к новой таблице.
Базис |
Свобод-ный член |
Переменные |
Оценоч-ные отношения |
|||||
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
|||
x3 |
6 |
1 |
0 |
-1/5 |
3/5 |
|
0 |
|
x5 |
1 |
0 |
0 |
-2/5 |
1/5 |
1 |
0 |
|
x2 |
4 |
0 |
1 |
2/5 |
-1/5 |
0 |
0 |
|
x6 |
3 |
0 |
0 |
3/5 |
-9/5 |
0 |
1 |
|
z |
24 |
0 |
0 |
4/5 |
3/5 |
0 |
0 |
|
Критерий оптимальности выполнен, значит zmax=24. Оптимальное решение (6; 4; 0; 0; 1; 3).