
книги из ГПНТБ / Тихомиров В.И. Линейное программирование в организации и планировании путевого хозяйства конспект лекций для студентов специальности Стр-во ж. д., путь и путевое хоз-во учеб. пособие
.pdfпрямую линию /, которая называется линией уровня функции
Z = С \ Х 1~Ь С2%2'
Ci.Vi+ C2A'2= Const.
Если эту константу будем увеличивать (или уменьшать), то прямая / будет перемещаться параллельно самой себе и в
каком-то определенном направлении, |
так как у прямых |
61,v1+ c2.V2= /i и CjjCi + с2х2 = /о один и тот |
же угловой коэффи- |
Q
циент К = ---- 1 . Как узнать, в каком направлении надо пе-
редвигать прямую /, изображающую линию уровня |
целевой |
|||
функции, чтобы она увеличивалась (уменьшалась). |
||||
Для этого |
достаточно зафиксировать |
значение |
константы |
|
в уравнении |
Z = const |
(СуХ\ + с2х2 = const). |
Тогда |
получится |
какая-то определенная |
прямая I и, чтобы ответить на постав |
ленный вопрос, достаточно по предыдущему правилу узнать, с какой стороны от прямой / целевая функция Z —clx I + c2x2 больше или меньше фиксированной константы.
Теперь имеется все, чтобы дать геометрическое истолко вание задачи линейного программирования. Итак, каждое не равенство
у ^ - а ^ х , - . . — О
системы (32) определяет в евклидовом л-мерном простран стве полупространство, состоящее из точек.'с (х,........ хп), расположенных «по одну сторону» от плоскости yt = — ап ху—
— . .. — а1пхп — 0 и на самой этой плоскости. Точки же, при надлежащие всем полупространствам (32), т. е. множество всех решений системы (32) как пересечение выпуклых мно жеств, образует некоторый выпуклый многогранник й.
Значение функции 2(д:)= с,л'1*-...+ спх„ в точке ;с'(х\,... ,х'п) можно рассматривать как уклонение точки х '(х ',,. . . , х'п) от плоскости с , х, + . .. я- спхп = 0 (а).
При этом под уклонением данной точки от этой плоскости понимается число, которое получим, подставив в левую часть уравнения (а) вместо хь ..., л+ координаты х',, . . . , х'п этой точки. Так например, уклонение точки х(2,—3, 7) от пло скости 2xi—х2 + Зх3 = 0 .равно 2-2—1(—3)+3-7=28.
Уклонение точки х от плоскости (а) пропорционально рас стоянию от точки х до этой плоскости.
Таким образом, геометрический смысл задачи линейного программирования заключается в отыскании в многогранни ке Q точки, которая наиболее (или наименее) уклонена от плоскости (а). В случае двухмерного пространства имеем кар тину, изображенную на рис. 8.
40
Здесь многогранником й является многоугольник, плос костями у 1гг — ап лу — ап хг + at—О— прямые, полупространс твами у, > 0 — полуплоскости (на рисунках они отмечены штриховкой). Совершенно ясно, что решением задачи линей ного программирования будет какая-то вершина многогранни ка Q. На рис. 8 решение задачи максимизации целевой функ-
Рис. 8
Рис. 9
41
ции (31) даст вершина С2, а задачи минимизации этой функ ции — вершина Сь причем эти решения единственные. На рис. 9 приведен случай существования бесчисленного мно жества решений, так как прямые Z = 0 и г/5 = 0 параллельны.
На рис. 10 представлен случай неограниченности функ ции Z на Q, а на рис. 11—случай отсутствия решения, так как отсутствует область Q допустимого решения задачи.
42
5. Методы решения основной задачи линейного программирования
Основные задачи линейного программирования могут быть решены графическим или аналитическим методами.
Графический метод решения задач, о сущности которого ■было сказано выше, применяется тогда, когда число перемен ных, входящих в систему ограничений и целевую функцию, не превышает двух.
При большем числе переменных образуется пространствен ная фигура (рис. 12), где количество вершин может исчис ляться многими миллиардами. Это значит, что неупорядочен ный перебор вершин с целью выявления точки, в которой линейная форма (целевая функция) достигает своего наиболь шего (или наименьшего) значения, является практически не выполнимой задачей, даже для самих быстродействующих со временных вычислительных машин.
Рис. 12
Чтобы оценить трудоемкость вычислений, связанных с не упорядоченным перебором вершин, сошлемся на одну из клас сических задач линейного программирования, а именно — на проблему выбора, для которой легко подсчитывается число вершин соответствующего многогранного множества. Суть проблемы выбора в следующем. Задается квадратная матрица с п строками и п столбцами, требуется выбрать по одному элементу в каждой строке и в каждом столбце так, чтобы сумма их оказалась максимальной. Количество вершин соот ветствующего многогранника равно п\. Таким образом, не посредственное решение проблемы выбора связано со сравне нием л! вершин. Для вычисления значения линейной формы в каждой из вершин многогранника задачи необходимо произ вести п сложений. При п> 15 количество операций, необходи-
43
мое для решения задачи, нельзя провести за обозримый срок, ни на современных, ни на перспективных вычислительных: машинах.
По формуле Стирлинга
(33)
При п = 20 число вершин многогранника условии задачи превышает 2 • 1018.
Машине, выполняющей 10 миллионов операций в секунду,, потребуется более 5000 лет, чтобы перебрать вершины много гранника, определяемого этой относительно простой задачи. Практика требует решение задачи типа проблемы выбора для значений п, значительно превышающих 20.
Приведенные примеры дают ясное представление о необ ходимости специальных методов решения задач линейного программирования, при которых перебор вершин многогран ника. для отыскания оптимального решения, производился бы не беспорядочно, а целеустремленно, т. е. чтобы при каждом новом шаге решения функции цели, Z увеличивалась пли уменьшалась в зависимости от условий задачи. При таком подходе число анализируемых вершин многогранника можнорезко сократить.
\
\
\
\
\
\
\
\
\
Рнс. 13
44
Практически оказывается, что при упорядоченном перебо ре число испытуемых вершин примерно соответствует рангу ■системы уравнений.
Поясним сказанное на графическом примере. Пусть об ласть допустимых .решений задачи изображается одиннадца тиугольником (рис. 13). Допустим, что мы определили исход
ное решение х0 (в дальнейшем исходное решение будем назы вать опорным решением).
При беспорядочном переборе нам пришлось бы испытать 11 опорных решений, соответствующих 11 вершинам многоуголь ника. Между тем, как видно из чертежа, целесообразно после
решения х0 перейти к решению х и далее к л'г и, наконец, от него к исходному оптимальному решению. В результате всего приходится испытать только 4 опорных решения вместо 11.
Такая идея упорядоченного перебора опорных решении, или идея последовательного улучшения плана заложена в основном вычислительном методе решения задач линейного программирования, получившим название симплексного ме тода. Такое название метода возникло от термина «симплекс», что означает простейший многогранник «-мерного простран ства, имеющий' «4-1 вершину.
Вычислительный симплекс-метод содержит в себе три ос новных элемента:
1.Способ определения опорного плана.
2.Правило перехода к следующему, лучшему, опорному плану.
3.Критерий, по которому устанавливается оптимальность найденного решения или необходимость его дальнейшего улучшения.
Алгоритмы метода позволяют также в процессе вычисле ний установить, является ли задача линейного программиро вания разрешимой. Это значит, что в ходе расчетов можно уже определить, не оказываются ли условия задачи противо речивыми и обеспечивают ли они ограниченность ее линейной
•формы.
§ 2. Симплекс-метод решения задач линейного программирования
Симплексный ;метод относится к числу наиболее распрос траненных вычислительных методов, реализующих идею пос ледовательного улучшения плана. Этот метод является уни версальным, т. е. может быть предложен при решении любой задачи линейного программирования. Метод позволяет вести расчеты как вручную, так и на ЭВМ.
Математической основой симплекс-метода, как уже гово рилось выше, являются Жордановы исключения.
45
Решение задач линейного программирования с примене нием симплекс-метода имеет следующую последовательность:
1)отыскивается опорный план (опорное решение);
2)полученное опорное решение проверяется на оптималь
ность;
3)в случае неоптимальности первого опорного решения отыскивается новое опорное решение, которое также проверя ется на оптимальность.
Этот цикл повторяется до тех пор, пока не будет получено-
отпимальное опорное решение.
1. Нахождение опорного решения
Разберем решение этого вопроса на примере. Пусть задана система ограничений
X 1— Х-2 + А'з^ 4
2a'i+ Хч—л'з 5
2Х\—2A'g—3.1'з Та1
Х'2 > 0, А'з>0.
Запишем условие задачи с помощью дополнительных пе ременных:
УI = 1(—-*ч) —1(—х2) + 1(—*з) + 4 ^ 0 р2 = —2(—х,) —1(—х2) + 1(—Аз)—5 ^ 0 У з — — 2(— А[) +2 (—х%) + 3 (—Аз) — 1> 0 .
Такая запись системы ограничений, во-первых, соответству ет схеме модифицированных Жордановых исключений, вовторых, приводит систему к одному виду неравенств, в-треть их, облегчает устанавливать разрешимость системы на стадии нахождения опорного плана.
От полученной |
системы |
неравенств переходим к следую |
||
щей таблице: |
|
|
|
|
|
— Х\ — x-i — х 3 |
1 |
||
У\= |
1 |
- 1 |
+1 |
4 |
Уз— |
- 2 |
- 1 |
+1 |
- 5 |
Уз= |
- 2 |
+ 2 |
+ 3 |
- 1 |
Просматривая столбец свободных членов, видим, что сре ди свободных членов есть отрицательные. Это значит, что ис ходная таблица не имеет опорного решения.
46

Геометрически |
это |
означает, что |
точка |
(вершина)! |
У1 = У2 = Уз=0 лежит |
вне |
многогранника. |
Кроме |
того, необхо* |
димо посмотреть, имеются ли в строке с отрицательным сво бодным членом отрицательные коэффициенты. Если их нет, то, задача .решения не имеет (система ограничений противо речива).
В данном случае система разрешима. После того, как установлено, что система разрешима, но еще не имеет опор ного решения, приступаем к нахождению первого опорного, решения, придерживаясь следующего правила:
Просматриваем строку, в которой свободный член (в дальнейшем будем его называть заключительный элемент, как элемент заключительного столбца) отрицательный. Берем один из отрицательных коэффициентов и столбец с этим ко эффициентом принимаем в качестве разрешающего.
В рассматриваемом примере мы остановились на третьей строке. В ней в заключительном столбце имеется отрицатель ный элемент—1 и в первом столбце отрицательный коэффи циент —2. Этот столбец принимаем в качестве резрешающего (ведущего). Остается установить, какую строку принять, за разрешающую.
Выбор разрешающей строки производится так: вычисляем, все неотрицательные отношения свободных членов к соответ ствующим отличным от нуля коэффициентам разрешающего, столбца и находим среди них наименьшее. Строка, в которой получено это наименьшее отношение, будет разрешающей, а элемент на пересечении этой строки с разрешающим столб цом— разрешающим элементом.
С правой стороны таблицы рассматриваемого примера проставлены эти отношения. Наименьшее из них 0,5 находится в третьей строке. Следовательно, разрешающим элементом будет —2, находящийся в первом, разрешающем столбце. Ко эффициент —2 заключается в рамку. Производим один шаг Жордановых исключений с выделенным элементом и получим новую таблицу:
|
-У з |
— х 3 |
—*3 |
1 |
|
У1 = |
1 |
0 |
5/2 |
7/2 |
|
2 |
|||||
|
|
|
|
||
У з — |
^ |
| - 3 |
- 2 |
- 4 |
|
Л'1 — |
1 |
— 1 |
__ 3_ |
1 |
|
2 |
2 |
2 |
|||
|
|
47Г
Свободный член разрешающей строки стал положитель ным, но вторая строка еще содержит отрицательный свобод ный член —4. В ней все коэффициенты отрицательны; будем ра ботать с первым элементом —1, т. е. возьмем первый столбец ведущим. Составляем те отношения свободных членов к эле
ментам |
выбранного столбца, которые неотрицательны: |
||
7 |
1 |
|
—4 |
— :— = 7; |
---- = 4; наименьшее пз них находится во второй |
||
2 |
2 |
|
— 1 |
строке. Эту строку берем ведущей, а ведущим элементом бу дет —1 (взят в рамку).
Производим новый шаг Жордановых исключений. Полу чаем новую таблицу
~ У 2 |
— * 1! |
*3 |
|
1 |
3 |
5 |
3 |
2 |
2 |
|
2 |
—1 |
3 |
2 |
4 |
1 |
1 |
1 |
В |
~ 2 |
2 |
2 |
2 |
Теперь все элементы заключительного столбца неотрица тельны, и, следовательно, исходное опорное решение найдено:
*1 = 5/2; *2=0; |
*3 = 0; |
уо= 0; г/t = 3/2; г/3 = 4 |
(исходный опорный |
||
5 |
*2 = |
*, = 0). |
|
|
|
план: *i = — ; |
|
|
|
||
Геометрически это означает, что мыпопали в одну из вер |
|||||
шин многогранника допустимых решений. |
|
|
|||
2. |
Нахождение оптимального решения |
||||
После того как найдено опорное решение задачи, необхо |
|||||
димо обратить внимание на заключительную |
строку. |
||||
В зависимости от знаков коэффициентов z-той строки раз |
|||||
личают два возможных случая. |
Первый |
случай — когда все |
|||
коэффициенты 2-той строки неотрицательные. |
|||||
Второй случай — когда среди |
коэффициентов z-той строки |
||||
есть отрицательные. |
|
|
|
|
|
В первом случае, следовательно, получено не только опор |
|||||
ное решение, но и оптимальное. |
Вовтором |
случае опорный |
|||
план еще не оптимальный, его |
можно улучшить. |
48
Симплекс-метод для отыскания оптимального решения да ет специальное правило перехода от полученной вершины мно гогранника Q к той соседней вершине этого многогранника, в которой z принимает большее значение. Этот процесс продол жается до тех пор, пока не будет найдена вершина, в которой значение z максимально, т. е. для которой все коэффициенты z-той строки будут неотрицательны.
Геометрически это означает, что прямая z= const вышла полностью из многогранника Q и соприкасается с ним только в одной точке (в одной вершине). Чтобы осуществить переход от вершины г/, = . . . = £/„== О к упомянутой соседней вершине, делаем один шаг модифицированного Жорданова исключения со следующим правилом выбора разрешающего элемента.
1. В качестве разрешающего берем столбец, содержащий отрицательный элемент z-той строки.
2. Отбираем все положительные коэффициенты этого столб ца (если такие имеются), делим на них соответствующие сво бодные члены; сравниваем полученные отношения и в качест ве разрешающего берем тот из коэффициентов, для которого отношение имеет наименьшее значение (если их окажется больше одного, то берем любой из них).
После шага модифицированного Жорданова исключения с разрешающим элементом, выбранным по только что сформу лированному правилу, знак элемента разрешающего столбца строки изменится на противоположный. Если все остальные новые коэффициенты z-строки неотрицательны, то задача ре шена— получено оптимальное решение. Если же среди остальных коэффициентов новой z-строки есть отрицательные, то расчет продолжается, и после конечного числа шагов при дем либо к случаю, когда в z-строке не окажется отрицатель ных коэффициентов (задача решена), либо к случаю отсут ствия положительных коэффициентов в некотором столбце, содержащем отрицательный коэффициент z-строки, что озна чает неограниченность сверху функции Z (рис. 10).
Поясним применение симплекс-метода для отыскания оп тимального решения на примерах.
Пример 1. Примем систему ограничений туж е, что и для отыскания опорного решения. Итак, даны система ограни чении:
Х\—Хо+ х3^ 4
2х 1+ л'2—Л'з Д55
2х 1—2х2—-Зл'зГ-;0
х2> 0 ; х3> 0
и целевая функция
Z = 2х\—3x2 -{- Х3.
4—9SI |
49 |