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

книги из ГПНТБ / Тихомиров В.И. Линейное программирование в организации и планировании путевого хозяйства конспект лекций для студентов специальности Стр-во ж. д., путь и путевое хоз-во учеб. пособие

.pdf
Скачиваний:
14
Добавлен:
23.10.2023
Размер:
3.99 Mб
Скачать

прямую линию /, которая называется линией уровня функции

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

\—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

1+ л'2—Л'з Д55

1—2х2—-Зл'зГ-;0

х2> 0 ; х3> 0

и целевая функция

Z = 2х\—3x2 -{- Х3.

4—9SI

49

Соседние файлы в папке книги из ГПНТБ