Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Исследование операций. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
3. СИМПЛЕКСНЫЙ МЕТОД РЕШЕНИЯ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Цель работы – научится решать задачи ЛП симплекс-
методом.
Формируемые компетенции или их части: ПК-18 – способность использовать соответствующий математический аппарат и инструментальные средства для обработки, анализа и систематизации информации по теме исследования.
Теоретическая часть
Симплексный метод – это метод целенаправленного пере­бора опорных решений задачи линейного программирования. Он позволяет за конечное число шагов расчета найти опти­мальное решение, либо установить, что оптимального решения не существует.
Основное содержание метода состоит в следующем:
1) указать способ нахождения начального опорного решения;
2) указать способ перехода от одного опорного решения
к другому, на котором значение целевой функции ближе к оптимальному;
3) задать критерии, которые позволяют своевременно
прекратить перебор решений на оптимальном решении или сделать заключение об отсутствии решения.
Метод называется симплексным, т. к. области допустимых решений задач, которые рассматривались на начальном этапе развития метода, имели простейший (simple) вид.
Метод является универсальным, так как позволяет решить практически любую задачу линейного программирования. Ма­тематическая модель задачи приводится к каноническому (стандартному) виду. Заполняется опорная симплекс-таблица с использованием коэффициентов целевой функции и системы ограничений. Решается задача по алгоритму.
Идея симплексного метода заключается в том, что с некото­рого исходного опорного решения осуществляется последователь­но направленное перемещение по допустимым решениям к опти­мальному. Значение целевой функции для задач на максимум не убывает. Так как число допустимых решений конечно, то через конечное число шагов получим оптимальное решение.
21
Алгоритм симплексного метода
1. Математическую модель задачи привести к канониче-
скому (стандартному) виду.
2. Построить начальную симплекс-таблицу исходя из стан-
дартного вида.
3. Найти разрешающий столбец. В строке коэффициентов ЦФ найти значение с самим маленьким отрицательным чис­лом. Этот столбец и будет разрешающим.
4. Вычислить разрешающую строку и ведущий элемент (Почленно разделить столбец свободных членов на элементы
разрешающего столбца, за исключением строки ЦФ. Выбрать наименьшее из частных. Эта строка будет разрешающей. Ве­дущий элемент будет на пересечении разрешающего столбца и разрешающей строки).
5. Второй шаг – построить новую симплекс-таблицу.
При построении новой таблицы убрать из базиса строку с переменной разрешающей строки в предыдущей таблице. Вве­сти в базис строку с названием разрешающего столбца предыдущей таблицы.
˗ Построение ведущей строки в новой таблице. Почленно
поделить всю разрешающую строку на разрешающий элемент.
˗ Построение других строк в новой таблице. Почленно
умножить ведущую строку на соответствующие этим строкам элементы разрешающего столбца из предыдущей таблицы и прибавить к соответствующим строкам в старой таблице.
6. Проверяем таблицу второго шага на оптимальность. Если в строке целевой функции нет отрицательных элементов, тогда таблица имеет оптимальный план, записать ответ. Если в строке ЦФ есть отрицательный элемент (элементы), тогда переходят к следующему (третьему) шагу, строят новую сим­плекс-таблицу в соответствии п. 5 и затем проверяют ее на оптимальность. Построение таблиц заканчивается с нахождени­ем оптимального плана.
Прямая задача на минимум решается следующим образом:
написать математическую модель двойственной задачи в
стандартном виде;
решить двойственную модель симплекс-методом;
22
записать ответ.
Связь между задачами двойственной пары в том, что, ре­шая симплексным методом одну из них, автоматически полу­чаем решение другой.
Для этого достаточно воспользоваться соответствием пе­ременных прямой и двойственной задач в симплекс-таблице.
Особые случаи применения симплекс-метода
1. Когда прямая (если рассматривается двухмерная задача линейного программирования, а в общем случае гиперплоскость), представляющая целевую функцию параллельна прямой (гипер­плоскости), соответствующей одному из неравенств-ограничений (которое в точке оптимума выполняется, как точное равенство) целевая функция принимает одно и то же оптимальное значение на некотором множестве точек границы области допустимых ре­шений. Эти решения называются альтернативными оптималь- ными решениями. Наличие альтернативных решений можно опре- делить по оптимальной симплекс-таблице. Если в z-строке опти­мальной таблицы есть нулевые коэффициенты небазисных пере­менных, то есть альтернативные решения.
2. Если в разрешающем столбце симплекс-таблицы все ко­эффициенты меньше или равны нулю, то нельзя выбрать разре­шающую строку, в этом случае решение неограниченно.
3. Если ограничения задачи линейного программирования несовместны (т. е. они не могут выполняться одновременно), то задача не имеет допустимых решений. Такая ситуация не может возникнуть, если все неравенства, составляющие систему ограни­чений, имеют тип «≤» с неотрицательными правыми частями, т. к. в этом случае дополнительные переменные могут составить допустимое решение. Для других типов ограничений используют­ся искусственные переменные. Если задача имеет решение, то в оптимальной таблице в базисе нет искусственных переменных (Ri). Если они там есть, то задача не имеет решений.
Оборудование и материалы (перечень используемого
оборудования) – соответствующее программное обеспечение.
Задания
Симплекс-метод, решение задачи с начальным базисом
23
Симплекс-метод для задачи с начальным базисом (все
2,1,0
20
723
642
max64
1
2
21
21
21
 
 
ix
x
xx
xx
xxz
.3,2,1,0;2,1,0
20
723
642
064
11
32
221
121
21
 
 
isix
sx
sxx
sxx
xxz
знаки неравенств-ограничений «≤»).
Задание 1. Решить задачу.
Решение
Запишем задачу в канонической форме, т. е. ограничения­неравенства перепишем в виде равенств, добавляя балансовые переменные:
Эта система является системой с базисом (базис s1, s2, s3, каждая из них входит только в одно уравнение системы с коэффициентом 1) x1 и x2 – свободные переменные. Задачи, при решении которых применяется симплекс-метод, должны обладать следующими двумя свойствами:
1) система ограничений должна быть системой уравнений
с базисом;
2) свободные члены всех уравнений в системе должны
быть неотрицательны.
Полученная система – система с базисом и ее свободные члены неотрицательны, поэтому можно применить симплекс­метод. Составим первую симплекс-таблицу (табл. 1), т. е. таб­лицу коэффициентов целевой функции и системы уравнений при соответствующих переменных. Здесь «БП» означает стол­бец базисных переменных, «Решение» – столбец правых ча­стей уравнений системы. Решение не является оптимальным, т. к. в z-строке есть отрицательные коэффициенты.
24
Для улучшения решения перейдем к следующей итерации,
БП
x1
x2
s1
s2
s3
Решение
Отношение
z
-4
-6 0 0 0 0
-
s1 2 1 1 0 0 64
64/1=64
s2 1 3 0 1 0 72
72/3=24
s3 0 1 0 0 1 20
20/1=20
получим следующую симплекс-таблицу. Для этого надо вы­брать разрешающий столбец, т. е. переменную, которая войдет в базис на следующей итерации. Он выбирается по наиболь­шему по модулю отрицательному коэффициенту в z-строке (в задаче на максимум) – в начальной итерации это столбец x2 (коэффициент 6).
Затем выбирается разрешающая строка, т. е. переменная, которая выйдет из базиса на следующей итерации. Она выби­рается по наименьшему отношению столбца «Решение» к со­ответствующим положительным элементам разрешающего столбца (столбец «Отношение») – в начальной итерации это строка s3 (коэффициент 20).
Таблица 1
Итерация 0
Разрешающий элемент находится на пересечении разре­шающего столбца и разрешающей строки, он равен 1. Следо­вательно, на следующей итерации переменная x2 заменит в базисе s3. Заметим, что в z-строке отношение не ищется, там ставится прочерк «–». В случае если есть одинаковые мини­мальные отношения, то выбирается любое из них. Если в раз-
решающем столбце все коэффициенты меньше или равны 0, то решение задачи бесконечно.
Заполним следующую таблицу «Итерация 1» (табл. 2). Её мы получим из таблицы «Итерация 0». Цель дальнейших пре­образований – превратить разрешающий столбец х2 в единич­ный (с единицей вместо разрешающего элемента и нулями вместо остальных элементов).
Вычисление строки х2 таблицы «Итерация 1». Сначала де­лим все члены разрешающей строки s3 таблицы «Итерация 0» на разрешающий элемент (он равен 1 в данном случае) этой таблицы, получим строку x2 в таблице «Итерации 1». Т. к. разрешающий элемент в данном случае равен 1, то строка s3
25
таблицы «Итерация 0» будет совпадать со строкой х2 таблицы «Итерация 1». Строку x2 таблицы «Итерации 1» мы получили 0 1 0 0 1 20, остальные строки таблицы «Итерация 1» будут получены из этой строки и строк таблицы «Итерация 0» сле­дующим образом:
Вычисление z-строки таблицы «Итерация 1». На месте –6 в первой строке (z-строке) в столбце х2 таблицы «Итерация 0» должен быть 0 в первой строке таблицы «Итерация 1». Для этого все элементы строки х2 таблицы «Итерация 1» 0 1 0 0 1 20 умножим на 6, получим 0 6 0 0 6 120 и сложим эту строку с первой строкой (z-строкой) таблицы «Итерация 0» –4 –6 0 0 0 0, получим –4 0 0 0 6 120. В столбце x2 появился 0, цель достигнута. Элементы разрешающего столбца х2 выде­лены красным цветом.
Вычисление строки s1 таблицы «Итерация 1». На месте 1 в s1-строке таблицы «Итерация 0» должен быть 0 в таблице «Итерация 1». Для этого все элементы строки х2 таблицы «Итерация 1» 0 1 0 0 1 20 умножим на –1, получим 0 –1 0 0 –1 –20 и сложим эту строку с s1-строкой таблицы «Итера­ция 0» 2 1 1 0 0 64, получим строку 2 0 1 0 –1 44. В столбце х2 получен необходимый 0.
Вычисление строки s2 таблицы «Итерация 1». На месте 3 в s2-строке таблицы «Итерация 0» должен быть 0 в таблице «Итерация 1». Для этого все элементы строки х2 таблицы «Итерация 1» 0 1 0 0 1 20 умножим на -3, получим 0 –3 0 0 –3 –60 и сложим эту строку с s2-строкой таблицы «Итера­ция 0» 1 3 0 1 0 72, получим строку 1 0 0 1 –3 12. В столбце х2 получен нужный 0. Столбец х2 в таблице «Итера­ция 1» стал единичным, он содержит одну 1 и остальные 0.
Строки таблицы «Итерация 1» получаем по следующему правилу.
Новая строка = Старая строка – (Коэффициент разрешающего
столбца старой строки) × (Новая разрешающая строка).
Например для z-строки имеем:
Старая z-строка (-4 -6 0 0 0 0) – (-6) ×
× Новая разрешающая строка –
(0 -6 0 0 -6 -120) = Новая z-строка (-4 0 0 0 6 120).
26
Для следующих таблиц пересчет элементов таблицы дела-
БП
x1
x2
s1
s2
s3
Решение
Отношение
z
-4 0 0 0 6
120
-
s1 2 0 1 0
-1
44
44/2=22
s2 1 0 0 1
-3
12
12/1=12
x2 0 1 0 0 1 20
-
БП
x1
x2
s1
s2
s3
Решение
Отношение
z 0 0 0 4
–6
168
-
s1 0 0 1 –2 5 20
20/5=4
x1 1 0 0 1
–3
12
-
x2 0 1 0 0 1 20
20/1=20
БП
x1
x2
s1
s2
s3
Решение
Отношение
z 0 0
6/5
8/5 0 192
-
s3 0 0
1/5
–2/5 1 4
-
x1 1 0
3/5
–1/5 0 24
-
x2 0 1
–1/5
2/5 0 16
-
321
956 xxxF
ется аналогично, поэтому мы его опускаем.
Таблица 2
Итерация 1
Разрешающий столбец х1, разрешающая строка s2, s2 вы­ходит из базиса, х1 входит в базис. Совершенно аналогично получим остальные симплекс-таблицы, пока не будет получена таблица со всеми положительными коэффициентами в z­строке. Это признак оптимальной таблицы.
Таблица 3
Итерация 2
Разрешающий столбец s3, разрешающая строка s1, s1 вы­ходит из базиса, s3 входит в базис.
Таблица 4
Итерация 3
получено оптимальное решение x1 = 24, x2 = 16, z
при следующих ограничениях:
В z-строке все коэффициенты неотрицательны, следовательно,
= 192.
max
Задание 2. Решить задачу
Найти наибольшее значение функции
27
 
 
1834
2026
25325
31
321
321
xx
xxx
xxx
321
5710 xxxF
 
 
4282
21164214
96156
321
321
321
xxx
xxx
xxx
x1 0 x2 0 x3 0.
Задание 3. Решить задачу
Найти наименьшее значение функции
при следующих ограничениях:
x1 0 x2 0 x3 0.
Контрольные вопросы
1. Задачи линейного программирования.
2. Алгоритм решения задач ЛП симплекс-методом?
Литература: 15.
Интернет-ресурсы: 13.
28
4. МЕТОД ИСКУССТВЕННОГО БАЗИСА
Цель работы – научится решать задачи методом искус-
ственного базиса.
Формируемые компетенции или их части: ПК-18 – способность использовать соответствующий математический аппарат и инструментальные средства для обработки, анализа и систематизации информации по теме исследования
Теоретическая часть
Метод искусственного базиса применяется к решению задач линейного программирования в общем случае, когда си­стема ограничений не имеет предпочитаемого вида.
Займемся исследованием такой задачи, записав ее в виде основной задачи линейного программирования. Пусть требуется найти максимум функции
    (4.1)
При ограничениях
         
(4.2)
    
     (4.3)
К данной задаче линейного программирования непо­средственно нельзя применить симплексный метод, рассмот­ренный в предыдущей теме, так как система (4.2) не имеет предпочитаемого вида, хотя правые части всех ее уравнений можно считать неотрицательными. Поэтому к левой части каждого уравнения системы (4.2) добавим по одной искус­ственной неотрицательной неизвестной и образуем следующую систему m линейных уравнений с n, m неизвестными:
    
    
    





 
(4.4)
где
    
    (4.5)

29
Очевидно, в системе (4.4) неизвестные
12
, ...
n n n m
S S S

 

  

образуют базисный набор, который принято называть искус­ственным базисом.
Кроме того, образуем линейную функцию


 

  
(4.6)

и сформулируем следующую вспомогательную задачу линей­ного программирования: максимизировать линейную функцию (4.6) при линейных ограничениях (4.4) и (4.5).
Для решения вспомогательной задачи (4.4)–(4.6) мы можем
применить симплексный метод, так как система (4.4) имеет предпочитаемый вид, искусственные неизвестные
являются базисными, а правые части всех уравнений неотрица­тельны по предположению относительно системы (4.2). В про­цессе решения задачи (4.4)–(4.6) система уравнений (4.4) будет подвергаться симплексным преобразованиям, в результате кото­рых искусственные базисные неизвестные будут переходить в число свободных, а в базисный набор будут постепенно вклю­чаться исходные неизвестные. На некотором этапе процесса ре­шения вспомогательной задачи (4.4)–(4.6) система уравнений (4.4) примет такой предпочитаемый вид, что соответствующее базис­ное решение будет оптимальным решением этой задачи. При этом максимальное значение целевой функции может быть или отрицательным, или равным нулю, так как функция t представ­ляет собой линейную комбинацию неотрицательных переменных с отрицательными коэффициентами.
Критерий неразрешимости исходной системы
линейных уравнений
Если максимальное значение функции t окажется строго меньше нуля, то исходная задача (4.1)–(4.3) не имеет реше­ния, ввиду противоречивости условий (4.2)–(4.3).
Доказательство. Действительно, если допустить, что систе-
ма уравнений (4.2) имеет неотрицательное решение 󰇛
󰇜, то вспомогательная задача будет иметь решение 󰇛
 󰇜, для которого  , что противоречит
предположению.
Если же
 , то оптимальное решение задачи (4.4)–

(4.6) должно иметь вид 󰇛󰇜, так как
из условия t = 0 следует



 
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]