- •Глава 4. Линейное программирование
- •4.1. Постановка задачи
- •В общем случае модель задачи лп имеет вид
- •4.2. Примеры задач линейного программирования
- •Задача составления рациона или как экономно питаться
- •4.2.2. Задача оптимального планирования
- •4.2.3. Сбалансированная транспортная задача
- •4.2.4. Общая распределительная задача
- •4.2.5. Задача планирования работы оборудования
- •4.2.6. Игра двух лиц с нулевой суммой как задача линейного программирования
- •4.2.7. Резюме
- •4.3. Формы записи задач линейного программирования и способы приведения к ним
- •4.3.1. Каноническая форма задач лп
- •4.3.2. Стандартная форма задачи лп
- •4.4. Упрощение модели
- •4.5. Основные понятия лп. Свойства задач лп
- •4.6. Геометрия задач лп
- •4.7. Выделение вершин допустимого множества
- •4.8. Методы решения задач лп
- •4.9. Симплекс-метод
- •4.9.1. Харатеристика метода
- •4.9.2. Переход от одного базисного решения к другому
- •4.9.3. Признак оптимальности. Основные этапы симплекс-метода
- •4.9.4. Построение начального базисного решения
- •4.9.5. Связь между параметрами последовательных итераций
- •4.9.6. Алгоритм симплекс-метода
- •4.9.7. Примеры
- •4.9.8. Учет двусторонних ограничений
- •4.10. Модифицированный алгоритм
- •4.11. Двойственность задач лп
- •4.11.1. Запись двойственной задачи в симметричном случае
- •4.11.2. Интерпретация двойственной задачи
- •4.11.3. Запись двойственной задачи в общем случае
- •4.11.4. Теоремы двойственности
- •4.11.5. Двойственный симплекс-метод
- •4.12. Параметрический анализ
- •4.12.1. Параметрирование вектора ограничениий
- •4.12.2. Параметрирование коэффициентов линейной формы
- •4.13. Задания для самостоятельной работы
4.9.7. Примеры
Пример 4.2. Для иллюстрации работы алгоритма применим его к задаче планирования, решенной графически в разд. 4.6.
-
Исходная модель
L=7x1+5x2→max,
1) 2x1+3x219,
2) 2x1+x213,
3) 3x212,
4) 3x117,
5) x10,
6) x20.
Каноническая модель
L=7x1+5x2→max,
2x1+3x2+x3=19,
2x1+x2+ x4=13,
3x2+x5=12,
3x1+x6=17,
xj0.
Исходная модель соответствует первому случаю построения начального базисного решения (см. разд. 4.9.4). Следовательно, базисными переменными в начальном решении будут дополнительные переменные x3, x4, x5 и x6, а базисными векторами А3, А4, А5 и А6. Очевидно, что такое базисное решение является допустимым (опорным планом), а в геометрическом представлении это вершина в начале координат.
Имея начальное решение, заполняем начальную симплекс-таблицу. В столбцы A1 - A6 заносятся коэффициенты при переменных x1-x6 в канонической модели, а в A0 – свободные члены. Так как C3, C4, C5 и C6 равны нулю, то согласно (4.14) и все zj=0. Следовательно, в этом случае Δj= zj Cj = Cj.
-
Таблица 0
0
7
5
0
0
0
0
i
Csi
Баз.
A0
A1
A2
A3
A4
A5
A6
1
0
A3
19
2
3
1
0
0
0
19/2
2
0
A4
13
2
1
0
1
0
0
13/2
3
0
A5
12
0
3
0
0
1
0
--
4
0
A6
17
3
0
0
0
0
1
17/3
5
Δj
0
7
5
0
0
0
0
6
zj
0
0
0
0
0
0
0
Анализируем таблицу. Признак оптимальности не выполняется и при этом в столбцах с отрицательными Δj есть положительные элементы, значит, решение можно улучшить. По минимальному значению Δj определяем направляющий столбец - A1. Вычисляем делением элементов столбца A0 на положительные элементы направляющего столбца. По минимальному значению находим направляющую строку – строка 2. Направляющий столбец и направляющая строка выделены в таблице серым цветом. Таким образом, из базиса выходит вектор A6 и на его место встает A1. Аналогичная смена происходит в базисном решении: x1 заменяет x6.
Переходим к вычислению элементов новой таблицы. Новые значения в строке 4 получаем делением элементов этой строки в начальной таблице на направляющий элемент. Остальные элементы в небазисных столбцах, столбце A0 и новые значения Δj вычисляются по правилу прямоугольника. Для примера в начальной таблице показаны 2 прямоугольника, которые построены на элементах 16 и Δ2. Они позволяют вычислить новые значения этих элементов:
16 = 0 (2*1)/3= 2/3; Δ2= 5 (7*0)/3= 5.
В результате получаем симплекс-таблицу 1.
-
Таблица 1
0
7
5
0
0
0
0
i
Csi
Баз.
A0
A1
A2
A3
A4
A5
A6
1
0
A3
23/3
0
3
1
0
0
2/3
23/9
2
0
A4
5/3
0
1
0
1
0
2/3
5/3
3
0
A5
12
0
3
0
0
1
0
4
4
7
A1
17/3
1
0
0
0
0
1/3
--
5
Δj
119/3
0
5
0
0
0
7/3
6
zj
119/3
7
0
0
0
0
7/3
В ней также показаны вспомогательные строки (верхняя и нижняя) и вспомогательный столбец Csi. Они предназначены для контроля вычислений оценок (непосредственно по формулам (4.14) и (4.15)), а значит, и всей таблицы. Легко проверить, что в нашем случае эти формулы дают те же значения оценок.
Следующая итерация начинается с проверок на оптимальность и разрешимость задачи, выбора направляющего элемента и заканчивается заполнением симплекс-таблицы 2.
-
Таблица 2
0
7
5
0
0
0
0
i
Csi
Баз.
A0
A1
A2
A3
A4
A5
A6
1
0
A3
8/3
0
0
1
3
0
4/3
2
2
5
A2
5/3
0
1
0
1
0
2/3
--
3
0
A5
7
0
0
0
3
1
2
7/2
4
7
A1
17/3
1
0
0
0
0
1/3
17
5
Δj
48
0
0
0
5
0
1
6
zj
48
7
5
0
5
0
1
Так как оптимальное решение не достигнуто, проводим 3-ю итерацию, результаты которой представлены в табл. 3.
В этой таблице нет отрицательных оценок, что свидетельствует о достижении оптимального решения. Максимальная прибыль составляет L*=50 при значениях переменных х*1 =5, х*2 =3, х*3 =х*4 =0, х*5 =3, х*6 =2, что полностью совпадает с результатами графического решения в разд. 4.6.
-
Таблица 3
0
7
5
0
0
0
0
i
Csi
Баз.
A0
A1
A2
A3
A4
A5
A6
1
0
A6
2
0
0
3/4
9/4
0
1
2
5
A2
3
0
1
1/2
1/2
0
0
3
0
A5
3
0
0
3/2
3/2
1
0
4
7
A1
5
1
0
1/4
3/4
0
0
5
Δj
50
0
0
3/4
11/4
0
0
6
zj
50
7
5
3/4
11/4
0
0
Пример 4.3. Рассмотрим задачу с разными видами ограничений и покажем только отличие от предыдущего примера.
-
Исходная модель
L= 4x1 - x2→max,
1) 3x1+2x2 10,
2) 2x1+x2 8,
3) x1 - 3x2 =12,
4) x10,
5) x20.
Каноническая модель
L= 4x1 - x2→max,
3x1+2x2+x3 = 10,
2x1+x2 - x4 = 8,
x1 - 3x2 = 12,
xj0.
Для построения начального базисного решения по 4-му варианту введем искусственные переменные x5 и x6. Тогда модель примет вид
L= 4x1 - x2→max,
3x1+2x2+x3 = 10,
2x1+x2 - x4+x5 = 8,
x1 - 3x2+x6 = 12,
xj0.
Из нее получаем искусственное (недопустимое) базисное решение: x3=10, x5 = 8, x6 = 12 (остальные переменные равны нулю). Соответственно базис состоит из одноименных векторов условий.
Далее можно выбрать один из способов решения:
решение в один этап;
решение в два этапа.
В первом случае критерий модифицируется введением искусственных переменных с большим весом: L’= 4x1 - x2 - M(x5+x6). Вместо символа большого числаM можно взять конкретное значение, например положить M= 100, что много больше С1 = 4. Дальше решение проводится согласно описанному алгоритму.
При использовании второго варианта на первом этапе решается задача минимизации искусственного критерия: Lи= x5 + x6→min. Если оптимальное значение этого критерия окажется отличным от нуля, исходная задача неразрешима из-за противоречивости условий. Нулевое значениебудет свидетельствовать о достижении допустимого базисного решения, которое принимается за начальное для второго этапа. На нем решается задача по исходному критериюL. При этом в последней таблице первого этапа относительные оценки по критериюLи заменяются оценками по критерию L. Они вычисляются так же, как в начальной таблице.