
- •Киевский университет имени Тараса Шевченко
- •Общие рекомендации к использованию программного обеспечения
- •Элементарные преобразования матриц. Метод гаусса
- •Задача линейного программирования. Симплекс-метод Постановка задачи линейного программирования в стандартной форме (сзлп).
- •Задача линейного программирования. Модифицирован симплекс-метод.
- •Задача линейного программирования. Двойственный симплекс-метод
- •Транспортная задача. Метод потенциалов
- •Транспортная задача с ограниченными пропускными
- •Способностями. Метод потенциалов
- •Постановка транспортной задачи с ограниченными
- •Пропускными способностями (тзо).
- •Задача о кратчайшем пути на сети. Метод минти
- •Задача о максимальном потоке на сети. Метод форда-фалкерсона
- •Задача целочисленного линейного программирования. Метод гомори-1
- •Задача частично целочисленного линейного программирования. Метод гомори-2 Постановка частично целочисленной задачи линейного программирования (чцзлп).
- •Задача целочисленного линейного програмування. Метод гомори-3
- •Задача частично дискретного линейного программирования. Метод дальтона-ллевелина Постановка частично дискретной задачи линейного программирования (чдзлп).
- •Задача целочисленного линейного программирования. Метод ветвей и границ.
- •Лабораторная работа 14. Задача о назначении. Венгерский метод
- •Лабораторная работа 15. Задача о назначении. Метод мака Постановка задачи такая же самая, как и в предыдущем разделе (14.1–14.4).
- •6. Если каждый столбец матрицы расходов имеет элемент с отметкой *, тогда задача об оптимальных назначениях решена. Иначе переходим к следующему пункту.
- •Матричные игры. Связь с задачей линейного программирования. Метод брауна-робiнсон
- •Лабораторная работа 17. Методы одномерной оптимiзации
- •Лабораторная работа 18. Задача выпуклого квадратичного программирования. Квадратичный симплекс-метод
- •Задача безусловной оптимизации. Метод самого быстрого спуску
- •Лiтература
Задача целочисленного линейного програмування. Метод гомори-3
Постановка целочисленной задачи линейного программирования (ЦЗЛП).
Найти вектор x=(x1...,xn), что минимизирует целевую функцию
L(x)= c1x1 + ... + cnxn (11.1)
и удовлетворяет систему ограничений
a11x1 + . . . + a1n xn = a10
. . . . . . . . . . . . . . . . . . . . . . . (11.2)
am1x1 + . . . + amnxn = am0
xj0, j=1...,n (11.3)
xj — цели, j=1...,n. (11.4)
Изложение метода Гомори-3.
Метод Гомори-3заключается в следующем.
Пусть ограничение (11.2) ЗЛП (11.1)–(11.3) приведены к почти каноничному виду:
xi +і,m+1 xm+1 +...+in xn =i0, i=1...,m (11.5)
где ij, i=1...,m, j=0,m+1...,n — цели и симплекс - разницы j0, j=1...,n.
Если i00, i=1...,m, то ограничения (11.5) определяют оптимальное решение ЦЗЛП (11.1)–(11.4), иначе определяется некоторое целочисленное почти допустимое базисное решение (МДБР) исходной ЗЛП. Можно бы было, конечно, выбрать один из индексов и, для которого i0<0, и выполнить итерацию двойственного симплекс-метода. Однако в этом случае целочисленность новых параметров была бы, вообще говоря, нарушенная через необходимость деления на ведущий элемент превращения. Этого можно избежать лишь тогда, когда ведущий элемент равняется –1. Оказывается, что можно построить дополнительное ограничение, которому удовлетворяют все целочисленные развязки ЦЗЛП и которое вместе с тем определяет ведущий строка превращения, что имеет ведущий элемент –1. Строится оно за l-м ограничением системы (11.5), для которого i0минимальное среди отрицательных i0, и имеет вид:
xn+1 +m+1,m+1xm+1+...+m+1,nxn =m+1,0
где xn+1 0 — дополнительная переменная
m+1,j = [lj], j=0,m+1...,n
= max { –lj }, j=m+1...,n.
Следовательно, имеющаяся симплекс-таблица расширяется за счет (m+1) -ой строки с элементами m+1,j (m+1,j=0при j=1...,m) но единичного столбца An+1, что отвечает дополнительной переменной xn+1. Потом выполняется итерация двойственного симплекс-метода с (m+1) -м ведущим рядком.
Алгоритм метода Гомори-3.
1. Приводим исходную ЗЛП (11.1)–(11.3) к почти каноничной ЗЛП (МКЗЛП) с целочисленными коэффициентами, что определяет целочисленный МДБР x(0), для которого j0, j=1...,n.
2. Пусть на s-й итерации полученная полностью целочисленная МКЗЛП
xi +і,M+1 xM+1 +...+iN xN =i0, i=1...,M
что определяет целочисленный N-мерный МДБР
x(s)= (10..M0,0..,0).
3. Если i00, i=1...,M, то конец: x(s) — оптимальное решение ЦЗЛП. Иначе
4. Если для некоторого и такого, что i0<0 ij0, j=1...,N, то конец: исходная ЦЗЛП не имеет допустимых решений. Если таких и нет, то
5. Находим l=argmin{i0},где и: i0<0. Определяем =max{–lj}, j=M+1...,N, и строим дополнительное ограничение
xN+1 +M+1,M+1xM+1+...+M+1,NxN =M+1,0
где xN+10 — дополнительная переменная M+1,j — целая часть отношения lj, j=0,M+1...,N.
Расширяем симплекс-таблицу за счет (M+1) -ой строки (дополнительное ограничение) и (N+1) -го столбца, что отвечает дополнительной переменной xN+1.
Задание.
Решить методом Гомори-3 задачи целочисленного линейного программирования, условия которых задаются модулем с помощью команды «Данные» главного меню (задачи №1–№9), а также следующие задачи.
Во всех задачах, которые предлагаются ниже, все переменные неотъемлемые и целые.
1) |
– x1 – 5 x2 max |
2) |
3 x1 + 2 x2 min |
3) |
x1 + 3x2 min |
|
12 x1 – 3 x2 8 |
|
– 3 x2 2 |
|
x1 + 6x2 5 |
|
– 3 x1 + 9 x2 8 |
|
– 2 x1 + 2 x2 2 |
|
– 5x1 + 19x2 13 |
|
– x1 + 3 x2 3; |
|
2 x1 – x2 1; |
|
– 3x1 + 6x2 2; |
4) |
7x1 + 12x2 min |
5) |
–3x1 – 8x2 max |
6) |
10x1 + 7x2 min |
|
4x1 – 23x2 –14 |
|
–2x1 + 10x2 4 |
|
2x1 – 12x2 –9 |
|
–12x1 + 2x2 –9 |
|
–3x1 – 5x2 –10 |
|
x1 + 4x2 10 |
|
–13x1 – x2 –10; |
|
2x1 – x2 2; |
|
4x1 – 2x2 14; |
7) |
– 3 x4 – 2 x5 max |
8) |
3 x2 + x5 min |
|
x1 – 5 x4 + x5 = –15 |
|
– 2 x2 + x3 – 18 x5 = –20 |
|
x3 + x4 – 8 x5 = – 9 |
|
x1 + x2 – 15 x5 = – 7 |
|
x2 – x4 – 10 x5 = –19; |
|
– 5 x2 + x4 + x5 = – 9. |
Ответы:
1) x* = (2; 2), L(x*)= –12.
2) x* = (1; 0), L(x*)= 3.
3) x* = (0; 1), L(x*)= 3.
4) x* = (1; 1), L(x*)= 19.
5) x* = (2; 1), L(x*)= –14.
6) x* = (5; 2), L(x*)= 64.
7) x* = (3; 5; 3; 4; 2), L(x*)= –16.
8) x* = (6; 2; 2; 0; 1), L(x*)= 7.
Лабораторная работа 12.