28) Первый алгоритм Гомори.
Все алгоритмы Гомори представляют собой реализацию метода отсечений. Дают правила построения отсечений.
Пусть (Lц, C) — некоторая
задача целочисленного программирования и опорный оптимальный план
соответствующей задачи линейного
программирования не удовлетворяет условию целочисленности
.
Опр. Неравенство
(¬)
или
![]()
называется правильным отсечением, если оно удовлетворяет следующим условиям:
I.
Условие отсечения.
не
удовлетворяет правилу (¬), т.е.
.
II.
Условие правильности.
— план задачи
(Lц, C),
то
удовлетворяет неравенству (¬), т.е.
![]()
Первый алгоритм Гомори предназначен для решения полностью целочисленных задач линейного программирования
(1) 
(2)
, i = 0, 1, 2, …, m,
(3) xj ³ 0, j = 0, 1, 2, …, n,
(4) xj ‑ целые, j = 0, 1, 2, …, n.
Пусть
— оптимальный опорный план задачи (L, C) (1‑3). Выразим
целевую функцию L 0 и все переменные xj (jÎN),
соответствующие оптимальному опорному плану
.
(5)
,
i = 0, 1, 2, …, n.
Пусть x — вещественное число. Целой частью x называется наибольшее целое число, не превышающее x. Целая часть x обозначается [x]. Дробной частью x называется число
{x} = x ‑ [x].
Пример.
,
,
.
Теорема. Пусть
(6) 1)
, i = 0, 1, 2, …, n;
2)
— план
задачи (Lц, C) (1‑4).
Тогда
(7) zi – целое
(8) zi ³ 0.
Замечание. Если все cj целые числа, то условия теоремы распространяются на случай i = 0.
![]()
Следствие. Пусть
не удовлетворяет условию
целочисленности (4), так что для некоторого i (1 £ i £ n).
xi0 — нецелое.
Тогда соотношения (6), (8) задают правильное отсечение.
,
zi ³ 0.
Схема метода отсечений выглядит следующим образом. Имеется задача (1‑4) (Lц, C).
На 0ом этапе отыскивается оптимальный план задачи
(L0, C),
которая получается отбрасыванием условия целочисленности
.
Если этот план не является решением (Lц, C), то строится правильное отсечение, отбрасывающее этот план
и решается задача (L1, C), на втором этапе (L2, C) и т.д. … (Lr, C). Оптимальный
план вспомогательной задачи линейного программирования (Lr, C) определяются неоднозначно,
т.к. (Lr, C) может иметь много решений. Поэтому Гомори предложил вместо
задачи (Lr, C) решать l‑задачу
. l‑оптимальный
план
определяется единственным образом.
Вычисления в методе Гомори проводятся в соответствии с l‑методом.
Основной проблемой при использовании методов отсечений является рост числа ограничений. Гомори предложил приём, ограничивающий размеры расширенных симплексных таблиц до
(n + 2)´(k + 1)
где n — количество переменных в (L0, C), а k — число небазисных переменных в ней.
Этот приём основан на том, что дополнительные ограничения (прав. отсечения)
![]()
интересует нас не сами по себе, а только как способ
отсечения нецелочисленного оптимума
и
перехода от задачи (Lr, C) к задаче (Lr+1, C).
Переменная xn+r+1 (r ³ 0) выводится из базиса сразу же после введения ограничения
xn+r+1 ³ 0
.
Идея Гомори заключается в следующем:
а) сразу же после вывода xn+r+1 ³ 0 из базиса соответствующая строка вычёркивается из расширенной симплексной таблицы.
б) Если в ходе дальнейших вычислений xn+r+1 снова попадает в базис, то соответствующая строка в симплексной таблице не восстанавливается и в дальнейших вычислениях xn+r+1 не участвует.
Таким образом число столбцов в таблице не превышает k+1 (равно), а число строк — n+2, где n+1 строка соответствует x0, x1, …, xn и одна xn+r+1 в момент её включения.
Необходимо отметить, что алгоритм Гомори неприменим в следующих случаях:
Если задача (L, C) имеет решение, но
не имеет решения l‑задача
, т.е.
множество оптимальных планов (L, C) не пусто, то и не ограничено.
![]() |
Начальная итерация.
Решаем l‑задачу
. Если она неразрешима, то и неразрешима и
задача
. Если
разрешима
и l‑оптимальный план
удовлетворяет
условию целочисленности,
является оптимальным
планом задачи
. Если
не
удовлетворяет условию целочисленности, то переходим к общей итерации.
nая общая итерация (r³0).
Пусть
не
удовлетворяет условию целочисленности. /Мы ищем нормальную и допустимую
симплексную таблицу Tr = ||xij||,
iÎQn,
.
Выберем наименьшую (по номеру) строку, которой соответствует нецелочисленная компонента
![]()
/Если целочисленность целевой функции гарантирована, то i = 1, 2, …, n/
и строится соответствующее правильное отсечение
(¬)
xn+r+1 ³ 0 xn+r+1 — целое.
Строка приписывается снизу к таблице Tr. Получается недопустимая (только по строке xn+r+1!) и l‑нормальная таблица, к которой применим l‑метод. Причём после вывода xn+r+1 из базиса соответствующая строка вычёркивается, а после введения в базис
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.