
- •Методические указания по изучению методов математического программирования содержание
- •Общие рекомендации к использованию программного обеспечения
- •Элементарные преобразования матриц. Метод гаусса
- •Задача линейного программирования. Симплекс-метод Постановка задачи линейного программирования в стандартной форме (сзлп).
- •Задача линейного программирования. Модифицирован симплекс-метод.
- •Задача линейного программирования. Двойственный симплекс-метод
- •Транспортная задача. Метод потенциалов
- •Транспортная задача с ограниченными пропускными
- •Способностями. Метод потенциалов
- •Постановка транспортной задачи с ограниченными
- •Пропускными способностями (тзо).
- •Задача о кратчайшем пути на сети. Метод минти
- •Задача о максимальном потоке на сети. Метод форда-фалкерсона
- •Задача целочисленного линейного программирования. Метод гомори-1
- •Задача частично целочисленного линейного программирования. Метод гомори-2 Постановка частично целочисленной задачи линейного программирования (чцзлп).
- •Задача целочисленного линейного програмування. Метод гомори-3
- •Задача частично дискретного линейного программирования. Метод дальтона-ллевелина Постановка частично дискретной задачи линейного программирования (чдзлп).
- •Задача целочисленного линейного программирования. Метод ветвей и границ.
- •Лабораторная работа 14. Задача о назначении. Венгерский метод
- •Лабораторная работа 15. Задача о назначении. Метод мака Постановка задачи такая же самая, как и в предыдущем разделе (14.1–14.4).
- •6. Если каждый столбец матрицы расходов имеет элемент с отметкой *, тогда задача об оптимальных назначениях решена. Иначе переходим к следующему пункту.
- •Матричные игры. Связь с задачей линейного программирования. Метод брауна-робiнсон
- •Лабораторная работа 17. Методы одномерной оптимiзации
- •Лабораторная работа 18. Задача выпуклого квадратичного программирования. Квадратичный симплекс-метод
- •Задача безусловной оптимизации. Метод самого быстрого спуску
- •Лiтература
Задача частично целочисленного линейного программирования. Метод гомори-2 Постановка частично целочисленной задачи линейного программирования (чцзлп).
Найти вектор x=(x1...,xn), что минимизирует целевую функцию
L(x)= c1x1 + ... + cnxn (10.1)
и удовлетворяет систему ограничений
a11x1 + . . . + a1n xn = a10
. . . . . . . . . . . . . . . . . . . . . . . (10.2)
am1x1 + . . . + amnxn = am0
xj0, j=1...,n (10.3)
xj — цели, j=1...,p (pn). (10.4)
Изложение метода Гомори-2.
Метод Гомори-2, как и метод Гомори-1, является одним из методов отсечения и заключается в следующем.
Решается вспомогательная ЗЛП (10.1)–(10.3), которую получают из исходной ЗЛП (10.1)–(10.4) отбрасыванием условия целочисленности переменных (10.4). Если ее решение удовлетворяет условие (10.4), то он же является и решением исходной ЧЦЗЛП. Иначе от решения ЗЛП переходят к новой вспомогательной ЗЛП присоединением линейного ограничения, которое удовлетворяют целочисленные (в понимании условий (10.4)) развязки исходной ЧЦЗЛП, но не удовлетворяет полученное нецелочисленное решение исходной ЗЛП. Упомянутое дополнительное ограничение определяет некоторую отрезающую плоскость и называется правильным відтином. Присоединение новых правильных відтинів осуществляется до тех пор, пока на некотором шаге не будет получено целочисленное (в понимании условий (10.4)) решение вспомогательной задачи, которое и является оптимальным решением исходной ЧЦЗЛП. В методе Гомори-2 правильный відтин строится так.
Пусть на последней итерации симплекс-метода при решении вспомогательной ЗЛП ее непрямые ограничения приобрели вид:
xi + Qi,m+1 xm+1 +...+ Qin xn = Qi0, i=1...,m
и, значит, решением вспомогательной ЗЛП является вектор
x = ( Q10...,Qm0,0,...,0 ).
Пусть существует номер r (rp) такой, что Qr0 — нецелое, и {z} — дробная часть z. Тогда правильный відтин методу Гомори-2 имеет вид:
xn+1 – Dr,m+1xm+1 –...– Drn xn = – {Qr0} (10.5)
где xn+1 0 — дополнительная переменная, и
(10.6)
Алгоритм метода Гомори-2.
1. Решаем вспомогательную ЗЛП (10.1)–(10.3). Пусть x(0) — ее оптимальное решение. Если эта задача не имеет решения, то исходная ЧЦЗЛП также не имеет решения.
2. Пусть на s-й итерации решена вспомогательная ЗЛП, что имеет M ограничений и N переменных, x(s) — ее оптимальное решение. Допустим, что x(s) определяется каноничными ограничениями последней итерации, а именно:
xi + Qi,M+1 xM+1 +...+ QiN xN = Qi0, i=1...,M
откуда выплывает, что
x(s)= ( Q10...,QM0,0,...,0 ).
3. Если Qi0 (i=1...,p) — цели, то конец: x(s) является оптимальным решением исходной ЧЦЗЛП. Если существует хотя бы одно и такое, что Qi0 — нецелое (i=1...,p), то переход к пункту 4.
4. Находим r=min{i} по всем и (i=1...,p) таким, что Qi0 — нецелое и строим дополнительное ограничение за формулами (10.5)(10.6) при m=M и n=N.
5. Расширяем симплекс-таблицу за счет (M+1) -ой строки (дополнительное ограничение) и (N+1) -го столбца, что отвечает дополнительной переменной xN+1.
6. Решаем расширенную ЗЛП с помощью двойственного симплекс-метода (ДСМ) и переходим к пункту 2 с заменой s на s+1, M на M+1, N на N+1. Если на некоторой итерации ДСМ одна из дополнительных переменных задачи опять становится базисной, то из последующего рассмотрения исключаются соответствующие ей строка и столбец и при переходе к пункту 2 заменяется лишь s на s+1.
Программное обеспечение.
Обучающий модуль, с помощью которого частично целочисленная задача линейного программирования Решается в диалоге с пользователем за выложенным алгоритмом, вызывается из раздела «ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ» главного меню пакета ПО–МО.
Задание.
Решить методом Гомори-2 задачи частично целочисленного линейного программирования, условия которых задаются модулем с помощью команды «Данные» главного меню (задачи №1–№9), а также следующие задачи.
1) |
x1 + 8 x2 max |
2) |
– 6 x1 – x2 min |
|
3 x1 + x2 9 |
|
– 2.9 x1 + 6 x2 17.4 |
|
0.16 x1 + x2 1.9 |
|
3 x1 – x2 1 |
|
xj 0, xj — целое, j = 1,2; |
|
xj 0, xj — целое, j = 1,2; |
3) |
0.25 x1 + x2 max |
4) |
– 2 x1 – 4 x2 min |
|
0.5 x1 + x2 1.75 |
|
2 x1 + x2 19.33 |
|
x1 + 0.3 x2 1.5 |
|
x1 + 3 x2 10 |
|
xj 0, xj — целое, j = 1,2; |
|
xj 0, xj — целое, j = 1,2; |
5) |
x1 + x2 max |
6) |
x1 + x2 max |
|
2 x1 + 11 x2 38 |
|
2 x1 + 11 x2 38 |
|
x1 + x2 7 |
|
x1 + x2 7 |
|
4 x1 – 5 x2 5 |
|
4 x1 – 5 x2 5 |
|
xj 0, j = 1,2, x2 — целое; |
|
xj 0, j = 1,2, x1 — целое; |
7)) |
x1 max |
8) |
– 8 x1 – 6 x2 min |
|
x1 + 3 x2 12 |
|
3 x1 + 5 x2 + x3 = 11 |
|
3 x1 – 8 x2 24 |
|
4 x1 + x2 + x4 = 8 |
|
xj 0, j = 1,2, x1 — целое; |
|
xj 0, j = 1,2, x1 — целое. |
Ответы:
1) x* = (2; 1), L(x*)= 10.
2) x* = (1; 3), L(x*)= –9.
3) x* = (1; 1), L(x*)= 1.25.
4) x* = (7; 1), L(x*)= –18.
5) x* = (3.75; 2), L(x*)= 5.75.
6) x* = (4; 2.73), L(x*)= 6.73.
7) x* = (9; 0.38), L(x*)= 9.
8) x* = (1; 1.6; 0; 2.41), L(x*)= –17.6.
Лабораторная работа 11.