2 Линейное программирование

advertisement
2. Линейное программирование
Задание:
Предприятие имеет три типа металлообрабатывающих станков А, В, и С, на
которых изготавливаются изделия вида 1 и 2. Изделия первого вида изготавливаются
только на станках А и С, а изделия второго вида изготавливаются на всех станках (А, В,
С).
Производственная мощность станков такова (тысяч в год):
Тип станка
А
Производительная мощность
(тыс.штук в год)
6 изделий вида 1 или 6 изделий вида 2
В
4 изделия вида 2
С
5 изделий вида 1 или 10 изделий вида 2.
Прибыль на единицу изделия 1 составляет 2 усл.ед., на изделие 2 - 4 усл.ед.
Определить такие объемы производства чтоб прибыль была максимальной.
1. Составить математическую модель задачи.
2. Решить задачу графически.
3. Решить задачу симплекс-методом.
Решение:
1.
Составить математическую модель.
Пусть х1 – количество изготовленных за год изделий вида 1.
Пусть х2 – количество изготовленных за год изделий вида 2.
По условию задачи целевая функция выглядит так:
Z  2x1  4x2  max (общая прибыль в год)
Составим ограничения функции. В нашем случает кол-во
изделий  производительной мощиности станков.
Для станка А: х1  6; х2  6;
Для станка В: х 2  4;
Для станка С: х1  5; х2  10;
Включая условие неотрицательности х1 , х2  0 получаем систему ограничений:
 х1  6; х2  6;
 х  4;
 2

 х1  5; х2  10;
 х1 , х2  0
Математическая модель задачи имеет вид:
 х1  6; х2  6;
 х  4;
 2

 х1  5; х2  10;
 х1 , х2  0
Z  2 x1  4 x2  max
7
2.
Графическое решение.
Строим многоугольник решений (рис.5):
 х1  6; х2  6;
 х  4;
 2

 х1  5; х2  10;
 х1 , х2  0
Рис. 5. АВСО – многоугольник решений.
Находим координаты вершин области (х1;х2).
Для точки А координаты вершины (5;0);
Для точки В координаты вершины (5;4);
Для точки С координаты вершины (0;4);
Координаты точки О(0;0) совпадают с началом координат.
Целевая функция Z  2x1  4x2  max определяет на плоскости семейство
параллельных прямых, каждой из которых соответствует определенное значение.
Вектор N (2;4) с координатами с1=1, с2=4 и выходящий из начала координат,
перпендикулярный к этим прямым, указывает направление наискорейшего возрастания
функции, а противоположный вектор – направление убывания.
8
Рис.6. Вектор N (2;4)
Для определения Z max построим линию уровня Z  2х1  4х2  0
перпендикулярную вектору N ( 2;4) , и будем передвигать ее в направлении вектора
N (2;4) до тех пор, пока она не коснется последней крайней (угловой) точки
многоугольника решений. Координаты этой точки точки и определяет Z max .
Рис. 7. Графическое нахождение f max
Из рисунка 7 видно, что Z max находится в точке В(5;4).
9
Z max  2 x1  4 x2  2  5  4  4  26
Ответ: Максимальная прибыль предприятия 26 тыс. условных единиц в год, для
получения такой прибыли предприятие должно выпустить 5 тыс. деталей вида 1 и 4
тыс.деталей вида 2.
3.
Симплекс-метод.
 х1  6; х2  6;
 х  4;
 2

 х1  5; х2  10;
 х1 , х2  0
Z  2x1  4x2  max
Запишем задачу в канонической форме, т.е. ограничения-неравенства перепишем
в виде равенств, добавляя балансовые переменные:
Z  2 x1  4 x2  0
 х1  0 х2  s1  6;
0 х  х  s  6;
2
2
 1
0 х1  х2  s3  4; ;
 х  0 х  s  5;
2
4
 1
0 х1  х2  s5  10;
х1 , х2  0
Эта система является системой с базисом (базис s1, s2, s3, s4, s5, каждая из них
входит только в одно уравнение системы с коэффициентом 1), x1 и x2 - свободные
переменные. Задачи, при решении которых применяется симплекс-метод, должны
обладать следующими двумя свойствами:
-система ограничений должна быть системой уравнений с базисом;
-свободные члены всех уравнений в системе должны быть неотрицательны.
Полученная система - система с базисом и ее свободные члены неотрицательны,
поэтому можно применить симплекс-метод. Составим первую симплекс-таблицу
(Таблица 1) для решения задачи на симплекс-метод, т.е. таблицу коэффициентов целевой
функции и системы уравнений при соответствующих переменных. Здесь «БП» означает
столбец базисных переменных, «Решение» - столбец правых частей уравнений системы.
Решение не является оптимальным, т.к. в z – строке есть отрицательные коэффициенты.
Таблица 1
БП x1 x2 s1
s2
s3
s4
s5 Решение Отношение
z
-2 -4
0
0
0
0
0 0
-
s1
1
0
1
0
0
0
0 6
-
s2
0
1
0
1
0
0
0 6
6/1=6
s3
0
1
0
0
1
0
0 4
4/1=4
s4
1
0
0
0
0
1
0 5
-
s5
0
1
0
0
0
0
1 10
10/1=10
Для улучшения решения перейдем к следующей симплекс-таблице (таблица 2). Для
этого надо в таблице 1 выбрать разрешающий столбец, т.е. переменную, которая войдет
10
в базис на следующей итерации симплекс-метода. Он выбирается по наибольшему по
модулю отрицательному коэффициенту в z-строке (в задаче на максимум) – в начальной
итерации симплекс-метода это столбец x2 (коэффициент -4).
Затем выбирается разрешающая строка, т.е. переменная, которая выйдет из
базиса на следующей итерации симплекс-метода. Она выбирается по наименьшему
отношению столбца "Решение" к соответствующим положительным элементам
разрешающего столбца (столбец «Отношение») – в начальной итерации это строка s3
(коэффициент 4).
Разрешающий элемент находится на пересечении разрешающего столбца и
разрешающей строки, его ячейка выделена цветом, он равен 1. Следовательно, на
следующей итерации симплекс-метода переменная x2 заменит в базисе s1. Заметим, что в
z-строке отношение не ищется, там ставится прочерк " - ". В случае если есть одинаковые
минимальные отношения, то выбирается любое из них. Если в разрешающем столбце все
коэффициенты меньше или равны 0, то решение задачи бесконечно.
Заполняем таблицу 2.
1)Вычисление строки х2 таблицы 2. Сначала делим все члены разрешающей строки
s3 таблицы 1 на разрешающий элемент (он равен 1 в данном случае) этой таблицы,
получим строку x2 в таблице 2. Т.к. разрешающий элемент в данном случае равен 1, то
строка s3 таблицы 1 будет совпадать со строкой х2 таблицы 2. Строку x2 таблицы 2 мы
получили 0 1 0 0 1 20, остальные строки таблицы 2 будут получены из этой строки и строк
таблицы 1 следующим образом:
2) Вычисление z-строки таблицы 2. На месте -4 в первой строке (z-строке) в
столбце х2 таблицы 1 должен быть 0 в первой строке таблицы 2. Для этого все элементы
строки х2 таблицы 2 (0 1 0 0 1 0 0 4) умножим на 4, получим (0 4 0 0 4 0 0 16) и сложим эту
строку с первой строкой (z - строкой) таблицы 1 (-2 -4 0 0 0 0 0 0), получим (-2 0 0 0 4 0 0
16). В столбце x2 появился ноль 0, цель достигнута. Элементы разрешающего столбца х2
выделены красным цветом.
3) Строку s1 оставляем без изменений.
4) Вычисление строки s2 таблицы 2. На месте 1 в s2 строке таблицы 1 должен быть
0 в таблице 2. Для этого все элементы строки х2 таблицы 2 (0 1 0 0 1 0 0 4) умножим на -1,
получим 0 -1 0 0 -1 0 0 -4 и сложим эту строку с s2 - строкой таблицы 1 (0 1 0 1 0 0 0 6),
получим строку (0 0 0 1 -1 0 0 2). В столбце х2 получен необходимый 0.
5) Вычисление строки s5 таблицы 2. На месте 1 в s5 строке таблицы 1 должен быть
0 в таблице 2. Для этого все элементы строки х2 таблицы 2 (0 1 0 0 1 0 0 4) умножим на -1,
получим 0 -1 0 0 -1 0 0 -4 и сложим эту строку с s5 - строкой таблицы 1 (0 1 0 0 0 0 1 10),
получим строку 0 0 0 0 -1 0 1 6. В столбце х2 получен нужный 0. Столбец х2 в таблице 2
стал единичным, он содержит одну 1 и остальные 0.
Таблица 2
БП x1 x2 s1
s2
s3
s4
s5 Решение Отношение
z
-2
0
0
0
4
0
0 16
-
s1
1
0
1
0
0
0
0 6
6/1=6
s2
0
0
0
1
-1
0
0 2
-
х2
0
1
0
0
1
0
0 4
-
s4
1
0
0
0
0
1
0 5
5/1=5
s5
0
0
0
0
-1
0
1 6
-
В этой таблице берем столбец х1 и строку s4. Пересчет элементов таблицы делаем
аналогично и получаем:
11
Таблица 3
БП x1
x2
s1
s2
s3
s4
s5 Решение Отношение
z
0
0
0
0
4
2
0 26
-
s1
0
0
1
0
0
-1
0 1
s2
0
0
0
1
-1
0
0 2
-
х2
0
1
0
0
1
0
0 4
-
x1
1
0
0
0
0
1
0 5
-
s5
0
0
0
0
-1
0
1 6
-
Разрешающий столбец х1, разрешающая строка s4, s4 выходит из базиса, х1 входит в
базис (таблица 3).
В z-строке все коэффициенты неотрицательны, следовательно, получено
оптимальное решение x1 = 5, x2 = 4, zmax = 26.
Ответ: Максимальная прибыль предприятия 26 тыс. условных единиц в год, для
получения такой прибыли предприятие должно выпустить 5 тыс. деталей вида 1 и 4
тыс.деталей вида 2.
12
Download