- •Содержание
- •7. Задача об оптимальном назначении 38
- •Методы оптимизации
- •1. Основные понятия линейного программирования
- •Рассмотрим правила перехода от одной модели к другой.
- •1.1 Переход от стандартной модели злп к канонической
- •1.2. Переход от канонической модели задачи лп к стандартной
- •1.3. Переход от основной модели задачи лп к канонической
- •2. Геометрическая иллюстрация решения задач лп
- •3. Двойственность в задачах линейного программирования
- •3.1. Построение двойственных моделей
- •Правило построения двойственной модели:
- •3.2. Теоремы двойственности
- •3.3. Экономическая интерпретация переменных двойственной задачи
- •4. Симплекс-метод в задачах лп
- •4.1. Основные положения симплекс-метода
- •4.2. Правило преобразования симплекс-таблиц
- •4.3. Геометрическая интерпретация симплекс-метода
- •5. Метод искусственного базиса
- •5.1. Постановка задачи
- •5.2. Теоремы метода
- •Замечания к теоремам
- •5.3. Примеры решения задач
- •Индивидуальные задания Задание 1
- •6. Транспортная задача линейного программирования
- •6.1. Транспортная задача линейного программирования
- •6.1.1. Постановка задачи
- •6.1.2. Математическая модель
- •Функция цели задачи по критерию минимума суммарных затрат –
- •6.2. Методы определения начального опорного плана
- •6.2.1. Метод северо-западного угла
- •6.2.2. Метод наименьшей стоимости
- •6.2.3. Метод двойного предпочтения
- •6.3. Метод потенциалов
- •6.4. Построение цикла и определение величины перераспределения груза
- •6.5. Открытая транспортная задача
- •6.6. Проблема вырожденного плана задачи
- •Индивидуальные задания
- •7. Задача об оптимальном назначении
- •7.1. Постановка задачи
- •7.2. Математическая модель
- •7.3. Решение задачи о назначениях венгерским методом
- •7.4. Решение задачи максимизации
- •Индивидуальные задания
- •Библиографический список
- •Линейное программирование
- •620034 ,Екатеринбург, ул. Колмогорова 66, УрГупс
4.2. Правило преобразования симплекс-таблиц
Мы в пункте (4.1) увидели, что переход от одного опорного решения к другому начинается с исследования коэффициентов целевой функции и затем вычисляются коэффициенты новой модели задачи ЛП. Запишем требования к исходной модели задачи.
1. Задача линейного программирования должна быть представлена в виде канонической модели.
2. Целевая функция должна минимизироваться.
3. При занесении в таблицу у целевой функции меняются на противоположные знаки коэффициентов при свободных переменных.
Запишем полученную каноническую задачу:
а 11х1 + a12x2 + х3 = b1,
а 21х1 + a22x2 + х4 = b2,
а31х1 +a32x2 + х5 = b3,
f(X) = с0 – (с1х1 +с2х2) → min.
В задаче Хопор1 = (0, 0, b1, b2, b3), f1 = f (Х) = с0. Внесем коэффициенты этой модели в симплекс-таблицу (см. табл. 4.1).
Таблица 4.1
Базис |
В |
х1 |
х2 |
х3 |
х4 |
х5 |
х3 |
b1 |
а11 |
al2 |
1 |
0 |
0 |
х4 |
b2 |
а21 |
a22 |
0 |
1 |
0 |
х5 |
b3 |
а31 |
a32 |
0 |
0 |
1 |
f(х) |
с0 |
с1 |
с2 |
0 |
0 |
0 |
4. Рассмотрим последнюю строку таблицы 4.1 (коэффициенты целевой функции). Нас интересуют знаки с1 и с2.
а) если хотя бы один из коэффициентов положителен, например с1 > 0, то отмечаем стрелкой столбец таблицы, где находится с1. Этот столбец назовем ключевым. Если положительны оба коэффициента, то выберем наибольший из них;
б) если с1 ≤ 0 и с2 ≤ 0, то таблицу не надо преобразовывать. Из таблицы находится оптимальное решение.
5. Выберем ту базисную переменную, которая будет свободной вместо х1, для этого выберем положительные из коэффициентов аi1, i = 1, 2, 3.
Пусть для определенности у нас а11 > 0, а21 > 0, a3l ≤ 0. Если все аi1 отрицательны или равны нулю, то задача решений не имеет, т.к. целевая функция не ограничена. Пусть, кроме того, .
6. У нас a11 >0, a21 >0, тогда выберем . Это означает, что х1 будет базисной переменной, а х3 свободной. Переходим к следующей таблице:
Таблица 4.2
Базис |
В |
х1 |
х2 |
х3 |
х4 |
х5 |
х1 |
β1 |
1 |
al2* |
al3* |
0 |
0 |
х4 |
β2 |
0 |
a22* |
a23* |
1 |
0 |
х5 |
β3 |
0 |
a32* |
a33* |
0 |
1 |
f(х) |
d0 |
0 |
d2 |
d3 |
0 |
0 |
7. Сначала заполняем первую строку таблицы 4.2, эта строка соответствует базисной переменной х3 в таблице 4.1. Все коэффициенты 1-ой строки таблицы 4.1. делим на разрешающий элемент а11, результат запишем в первую строку таблицы 4.2. Эта строка называется разрешающей.
, , .
С помощью разрешающей строки, делая простые вычисления, мы должны получить в остальных строках ключевого столбца нули.
8. Умножим разрешающую строку последовательно на (а21), (а31), (–с1). Полученные строки чисел прибавим ко второй, потом к третьей, затем к последней строке таблицы 4.1, а результаты вычислений поставим во вторую, третью и последнюю строку таблицы 4.2, где:
; ; ;
; ; ;
; ; .
9. Мы получили новую таблицу, а следовательно, новый опорный план: Хопор2 = (β1, 0, 0, β2, β3), f1 = f (Хопор2) = d0.
10. Если d1 ≤0, d2 ≤0, то решение оптимально. Если среди них есть положительные, то процесс преобразования таблиц надо продолжать.
Пример. Решим симплекс-методом пример из п.2. Модель задачи ЛП в этом примере стандартная:
12х1 + 4х2 ≤300,
4х1 + 4х2 ≤120,
3х1 + 12х2 ≤252, х1 ≥0, х2 0;
f(х) = 30х1 +40х2 mах.
1 ) Перейдем к канонической модели. Для этого подберем х3, х4, х5, уравнивающие левые и правые части системы ограничений. Затем перейдем к задаче минимизации: f(x) max, тогда f1(х) = – f(х) min. Запишем каноническую модель:
12х1 +4х2 + х3 =300,
4х1 +4х2+х4 =120,
3х1 +12х2+х5 =252, хj ≥0, j = 1,…5;
f1(х) = – (30х1 +40х2) min.
2) Внесем коэффициенты в таблицу:
Таблица 4.3
Базис |
В |
х1 |
х2 |
х3 |
х4 |
х5 |
х3 |
300 |
12 |
4 |
1 |
0 |
0 |
х4 |
120 |
4 |
4 |
0 |
1 |
0 |
х 5 |
252 |
3 |
12 |
0 |
0 |
1 |
f1(х) |
0 |
30 |
40 |
0 |
0 |
0 |
В таблице 4.3 с1 = 30; с2 = 40; 40 = max{30;40}, неизвестная х2 – перейдет в базисную. Столбец ее коэффициентов будет ключевым. Все элементы ключевого столбца положительны.
2) Найдем разрешающую строку и разрешающий элемент в таблице:
Третья строка в таблице является разрешающей. Эта строка базисной переменной х5, поэтому х5 будет свободной переменной. Элемент, находящийся в таблице 4.3 на пересечении выделенных строки и столбца будет разрешающим элементом, равным 12. Замена базисной переменной х5 на свободную х2 в таблице 4.3 показаны стрелками.
3) Разделим все элементы третьей (разрешающей) строки таблицы 4.3 на 12. Далее все полученные элементы строки умножим последовательно на (– 4), (– 4), (– 40) и сложим с первой, второй и последней строкой таблицы 4.3. Составим новую симплекс-таблицу:
Таблица 4.4.
Базис |
В |
х1 |
х2 |
х3 |
х4 |
х5 |
х3 |
216 |
11 |
0 |
1 |
0 |
-1/3 |
х 4 |
36 |
3 |
0 |
0 |
1 |
-1/3 |
x2 |
21 |
1/4 |
1 |
0 |
0 |
1/12 |
f1(х) |
-840 |
20 |
0 |
0 |
0 |
-10/3 |
4) Снова изучим последнюю строку таблицы 4.4. Там есть положительный коэффициент 20. Отметим ключевой столбец, выберем в нем элемент а21. Тогда:
.
Будем работать с таблицей 4.4. так же, как и с таблицей 4.3. Делим вторую строку на 3. Затем получаем в столбце для переменной х1 нули в остальных строках, умножая элементы разрешающей строки последовательно на (11), , (–20). Результаты поместим в таблицу 4.5:
Таблица 4.5.
Базис |
В |
х1 |
х2 |
х3 |
х4 |
х5 |
х3 |
84 |
0 |
0 |
1 |
-11/3 |
8/9 |
х1 |
12 |
1 |
0 |
0 |
4/3 |
-1/9 |
х2 |
18 |
0 |
1 |
0 |
-1/12 |
1/9 |
f1(х) |
-1080 |
0 |
0 |
0 |
-20/3 |
-10/9 |
В последней строке таблицы 4.5 нет положительных чисел, решение оптимально.
Ответ: Хmin = (12, 18, 84, 0, 0); f1 (Хmin) = 1080.
Ответ исходной задачи: Хmах = (12, 18, 84, 0, 0); f (Хmах) = 1080.