Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Исследование операций. Лабораторный практикум
.pdf
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. Алгоритм решения задач ЛП симплекс-методом?
Литература: 1–5.
Интернет-ресурсы: 1–3.
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
