- •1.Использование вычислительной техники в современной связи
- •2. Исследование операций как наука
- •4. Задача о раскрое
- •Количество форматных стекол, получаемых при возможных способах раскроя одного листа
- •5.Формирование задачи линейного программирования(лп)
- •6. Симплекс-метод
- •7. Частные случаи симплекс-метода
- •8. Метод больших штрафов
- •9. Тз линейного программирования. Постановка задачи
- •10. Построение опорной задачи: метод северо-западного угла и наименьших стоимостей
- •12. Метод потенциалов
- •11. Метод Фогеля
- •13. Вырожденные матрицы и способы борьбы
- •14. Несбалансированная тз
- •15. Тз с промежуточными пунктами
- •16. Нахождение кратчайшего пути на пути связи с помощью тз (маршрутизации)
- •17. Использование линейного программирования на производстве. График смен
- •18. Составление графика отпусков
- •19. Оптимальная расстановка силы на предприятиях
- •20. Нелинейное программирование. Постановка задачи
- •21. Метод дихотомии
- •22. Метод золотого сечения
- •23. Метод Фибоначчи
- •24. Метод многомерного поиска
- •25. Градиентные методы
- •26. Метод квадратичной аппроксимации
- •27. Метод кубической аппроксимации
- •28. Динамическое программирование
8. Метод больших штрафов
На этом шаге мы рассмотрим М-метод решения задач линейного программирования.
Пусть задача линейного программирования записана в стандартной форме. Для любого равенства i в котором не содержится дополнительная остаточная переменная, введем искусственную переменную Ri, которая далее войдет в начальное базисное решение. Но поскольку эта переменная искусственная (другими словами, не имеет никакого "физического смысла" в данной задаче), необходимо сделать так, чтобы на последующих итерациях она обратилась в нуль. Для этого в выражение целевой функции вводят штраф.
Переменная Ri, с помощью достаточно большого положительного числа М, штрафуется путем ввода в целевую функцию выражения –MRi в случае максимизации целевой функции и выражения +MRi — в случае минимизации. Вследствие этого штрафа естественно предположить, что процесс оптимизации симплекс-метода приведет к нулевому значению переменной Ri. Далее следует применить симплекс-метод.
При использовании М-метода следует обратить внимание на следующие два обстоятельства.
Использование штрафа М может и не привести к исключению искусственной переменной в конечной симплекс-итерации. Если исходная задача линейного программирования не имеет допустимого решения (например, система ограничений несовместна), тогда в конечной симплекс-итерации, по крайней мере, одна искусственная переменная будет иметь положительное значение. Это "индикатор" того, что задача не имеет допустимого решения.
Теоретически применение М-метода требует, чтобы М → ∞. Однако с точки зрения компьютерных вычислений величина М должна быть конечной и, вместе с тем, достаточно большой. Величина М должна быть настолько большой, чтобы выполнять роль "штрафа", но не слишком большой, чтобы не уменьшить точность вычислений. На практике вы должны помнить о возможных ошибках машинного округления при выполнении вычислений, в которых совместно участвуют как большие, так и малые числа.
На следующем шаге рассмотрим решение задачи линейного программирования М-методом.
9. Тз линейного программирования. Постановка задачи
Транспортная задача линейного программирования формулируется следующим образом.
Имеется m пунктов отправления (ПО): A1, A2, …, Am, в которых сосредоточены запасы какого-то однородного груза в количестве соответственно a1, a2, …, am единиц. Кроме того, имеется пунктов назначения (ПН): B1, B2, …, Bn подавших заявки соответственно на b1, b2, …, bn, единиц груза.
Предполагается, что сумма всех заявок равна сумме всех запасов:
ai =bj (3.1)
Известна стоимость Сij перевозки единицы груза от каждого пункта отправления Ai до каждого пункта назначения Вj. Таблица (матрица) стоимостей перевозки Сij задана:
Требуется составить такой план перевозок, при котором все заявки были бы выполнены, и при этом общая стоимость всех перевозок была минимальна.
При такой постановке задачи показателем эффективности плана перевозок является стоимость; поэтому поставленную задачу точнее называют транспортной задачей по критерию стоимости.
Дадим этой задаче математическую формулировку. Обозначим xij- количество груза, отправляемого из i-го пункта отправления в j-й пункт назначения Bj .
Неотрицательные переменные, число которых равно m*n, должны удовлетворять следующим условиям.
I. Суммарное количество груза, направляемое из каждого пункта отправления во все пункты назначения, должно быть равно запасу груза в данном пункте. Это дает т условий-равенств:
x1j =a1,
x2j =a2, (3.2)
………….
xmj =am,
2. Суммарное количество груза, доставляемое в каждый пункт назначения изо всех пунктов отправления, должно быть равно заявке, поданной данным пунктом. Это дает n условий-равенств:
xi1=b1,
xi2=b2, (3.3)
…………
xin=bn,
Условия (3.2), (3.3) называются "балансовыми условиями".
3. Суммарная стоимость всех перевозок, т.е. сумма величин xij, умноженных на соответствующие стоимости Сij, должна быть минимальной:
L= Сij xij = min (3.4)
Функции (3.4), являющаяся целевой функцией линейна, ограничения-равенства (3.2), (3.3) также линейны. Перед нами – типичная задача линейного программирования с ограничениями - равенствами, называемая основной задачей линейного программирования (ОЗЛП).
Данная задача имеет некоторые особенности, позволяющие ре шить ее вручную простыми табличными методами. Во-первых, все коэффициенты при переменных в уравнениях (3.2), (3.3) равны единице. Во-вторых, не все m+n уравнений задачи являются независимыми. Действительно, складывая между собой все уравнения (3.2) и все уравнения (3.3), мы должны получить одно и то же в силу условия (3.1). Таким образом, условия (3.2), (3.3) связаны одной линейной зависимостью и фактически из этих уравнений только m , а не n являются линейно независимыми. Значит, ранг r системы уравнений (3.2), (3.3) равен
r=m+n-1
а, следовательно, можно разрешить эти уравнения относительно m+n-1 базисных переменных, выразив их через остальные, свободные, количество которых равно
K=mn-(m+n-1) = (m-1) (n-1)
Как известно, в задаче линейного программирования оптимальное решение достигается в одной из вершин области допустимых решений (ОДР), где, по крайней мере, K переменных обращаются в нуль. Значит, в нашем случае для оптимального плана перевозок, по крайней мере (m-1)(n-1) значений xij должны быть равны нулю.
Условимся о терминологии. Значения xij количества единиц груза, направляемых из пункта Ai в пункт Bj, будем называть перевозками.
Любую совокупность значений xij (i=1,m; j=1,k) будем называть планом перевозок или просто планом.
План xij будем называть допустимым, если он удовлетворяет условиям (3.2), (3.3): все заявки удовлетворены, все запасы исчерпаны.
Допустимый план будем называть опорным, если в нем отличны от нуля не более r=m+n-1 базисных перевозок xij, а остальные перевозки равны нулю.
План xij будем называть оптимальным, если он, среди всех допустимых планов, приводит к наименьшей стоимости всех перевозок.
Перейдем к изложению табличных методов решения транспортной задачи (ТЗ), которые сводятся к более простым операциям с так называемой транспортной таблицей, где в определенном порядке записаны все исходные условия ТЗ.
Образец транспортной таблицы дан в табл. 3.1, где стоимости перевозок единицы груза из ПО Ai в ПН Bj помещаются в правом верхнем углу каждой клетки таблицы, о тем, чтобы в самой клетке при составлении плана помещать перевозки xij. Таблица 3.1
ПО ПН |
B1 |
B2 |
… |
Bn |
Запасы |
A1 |
C11 |
C12 |
… |
C1n |
a1 |
A2 |
C21 |
C22 |
… |
C2n |
a2 |
|
… |
… |
… |
… |
|
Am |
Cm1 |
Cm2 |
… |
Cmn |
a |
заявки |
b1 |
b2 |
… |
bn |
ai bj |
В правом столбце помещены запасы товара в каждом ПО, в нижней строке - заявки, поданные каждым ПН. В правой нижней клетке таблицы записывается сумма запасов, равная сумме заявок.
Как показано выше, в каждом опорном плане, включая оптимальный, будут отличны от нуля не более чем m+n-1 перевозок. Клетки таблицы, в которых записываются эти отличные от нуля перевозки, условимся называть базисными, а остальные (пустые) - свободными.
Таким образом, решение ТЗ свелось к следующему. Найти такие значения положительных перевозок, которые, будучи проставлены в базисных клетках транспортной таблицы, удовлетворяли бы следующим условиям:
- сумма перевозок в каждой отроке таблицы должна быть равна запасу данного ПО;
- сумма перевозок в каждом столбце должна быть равна заявке данного ПН;
- общая стоимость перевозок - минимальная.
В дальнейшем все действия по нахождению решения ТЗ будут сводиться к преобразованию транспортной табл. 3.1. При описании этих преобразований будем пользоваться нумерацией клеток таблицы, подобной нумерации клеток шахматной доски. Клеткой AiBj или, короче, клеткой (i, j) будем называть клетку, стоящую в i-й строке и j-м столбце транспортной таблицы.
Решение транспортной задачи, как и воякой задачи линейного программирования, начинается о нахождения опорного решения (опорного плана). Существуют различные способы построения опорного плана, из которых мы остановимся на простейшем, так называемом "способе северо-западного угла". Пояснить его проще всего будет на конкретном примере.
Частные случаи транспортной задачи
В рассмотренных выше случаях число заявок равнялось числу запасов. Чаще всего бывает не так.
1) Число запасов превышает число заявок. В этом случае необходимо ввести дополнительный фиктивный пункт потребления с нулевыми стоимостями перевозок (т.е. везти никуда не надо). Далее задача решается обычным способом, но часть запасов окажется не востребованной.
2) Число заявок превышает число запасов. В этом случае вводится фиктивный пункт производства с нулевыми стоимостями перевозки. Задача решается также обычно, только некоторые пункты потребления не дополучат требуемое, но стоимость всей операции все равно получится минимальной.