/
Author: Корбут А.А. Финкельштейн Ю.Ю.
Tags: алгебра программирование монография дискретная математика комбинаторика компьютерные технологии
Year: 1969
Text
II КОРБУТ
Ю.Ю.ФННКЕЛЫИТЕЙН
Дискретное
программирование
ЭКОНОМИКО-МАТЕМАТИЧЕСКАЯ
БИБЛИОТЕКА
А. А. КОРБУТ,
Ю. Ю. ФИНКЕЛЬШТЕЙН
Дискретное
программирование
Под редакцией
Д. Б. ЮДИНА
ИЗДАТЕЛЬСТВО «НАУКА>
ГЛАВНАЯ РЕДАКЦИЯ
ФИЗИКО-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ
МОСКВА 1969
517.1
К 66
УДК 512.25
Дискретное программирование, А. А. Корбут и
Ю. Ю. Финкельштейн. Серия «Экономико-матема-
тическая библиотека».
Монография посвящена дискретному программированию (часто
называемому также целочисленным и комбинаторным программиро-
ванием). Задачи дискретного программирования, заключающиеся в
нахождении условных экстремумов на конечных множествах (или
на целочисленных решетках), являются источником интересных тео-
ретических исследований. С другой стороны, в терминах дискретного
программирования формализовано много важных прикладных задач
оптимизации, связанных с наличием неделимых факторов, стандар-
тов при проектировании, условий «логического» типа, фиксирован-
ных доплат и т. п.
Книга состоит из пяти частей (подразделенных на главы), в
которых излагаются основные разделы дискретного программирова-
ния. I. Общая характеристика предмета, модели, прикладные за-
дачи. II. Методы отсечения (метод Гомори и др.). III. Комбина-
торные методы. IV. Приближенные методы. V. Некоторые теорети-
ческие вопросы.
Книга предназначена для математиков, экономистов, инженеров,
специалистов в области управления и военного дела. Она может
быть также полезна студентам и аспирантам соответствующих спе-
циальностей. Желательно, чтобы читатель владел основными поня-
тиями математического программирования. Однако все необходимые
сведения сообщаются в тексте. В монографии 27 рис., 51 табл.,
библ. 129 названий.
Александр Антонович Корбут, Юлий Юльевич Финкельштейн
Дискретное программирование
(Серия: «Экономико-математическая библиотека»)
М., 1969 г., 368 стр. с илл.
Редакторы В. М. Гринберг и Н. П, Рябенькая,
Те*н. редактор Л. Л. Пыжова Корректор Т. С. Вайсберг
Сдано в набор 29/Х 1968 г. Подписано к печати 27/V 1969 г. Бумага 84X108732.
Физ. печ. л. 11,5. Условн. печ. л. 19.32. Уч.-изд. л. 17,04. Тираж 12 000 экз.
Т-06944. Цена книги 1 р. 27 к. Заказ № 1501.
Издательство «Наука»
Главная редакция физико-математической литературы
Москва, В-71, Ленинский проспект, 15.
Ленинградская типография № 2 имени Евгении Соколовой Главполиграфпрома
Комитета по печати при Совете Министров СССР. Измайловский проспект, 29.
2-2-2
99-69
ОГЛАВЛЕНИЕ
Предисловие редактора......................................7
Предисловие авторов.......................................11
ЧАСТЬ I
\ ПРЕДМЕТ И МОДЕЛИ
ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ
Г л а в а 1
Введение................................................ 13
§ 1. Предмет дискретного программирования ................13
§ 2. Классификация математических моделей.................18
§ 3. Классификация прикладных задач . ....................21
§ 4. Классификация численных методов......................22
Глава 2
Математические модели дискретного программирования . ... 27
§ 1. Транспортная задача.................................27
§ 2. Задачи с неделимостями..............................31
§ 3. Задачи комбинаторного типа..........................35
§ 4. Задачи на невыпуклых и несвязных областях...........44
§ 5. Задачи с разрывной целевой функцией.................51
§ 6. Некоторые многоэкстремальные задачи.................55
Г л а в а 3
Прикладные задачи дискретного программирования.............61
§ 1. Задачи планирования перевозов.........................61
§ 2. Задачи размещения и специализации...................69
§ 3. Задачи логического проектирования...................79
§ 4. Задачи теории расписаний ...........................89
§ 5. Другие прикладные задачи.......................... 92
1*
4
ОГЛАВЛЕНИЕ
Ч А С Т Ь II
МЕТОД ОТСЕЧЕНИЯ
Глава 4
Некоторые предварительные сведения.........................98
§ 1. Основные понятия линейного программирования..........98
§ 2. Выпуклые множества...................................102
§ 3. Выпуклые многогранные множества и линейное програм-
мирование . ... .........................................103
§ 4. Лексикография........................................108
§ 5. Симплексные таблицы, планы и псевдопланы............110
§ 6. Метод последовательного улучшения плана (прямой симп-
л^кс-метод)..........................................112
§ 7. Метод последовательного уточнения оценок (двойственный
симплекс-метод)....................................... . 114
§ 8. Задача целочисленного линейного программирования . . .116
Г л а в а 5
Идея метода отсечения. Первый алгоритм Гомори.............118
§ 1. Идея метода отсечения...............................118
§ 2. Первый алгоритм Гомори..............................126
§ 3. Доказательство конечности первого алгоритма Гомори . . 136
Глава 6
Второй алгоритм Гомори и другие обобщения первого алгоритма 139
§ 1. Логическая схема первого алгоритма Гомори...........140
§ 2. Второй алгоритм Гомори..............................142
§ 3. Алгоритм Дальтона и Ллевелина.......................150
§ 4. В-алгоритм для решения задач целочисленного линейного
программирования с булевыми переменными..................157
§ 5. Алгоритм Данцига.............................* . . 160
Глава 7
Третий алгоритм Гомори и его модификация.................166
§ 1. О влиянии ошибок округления. Идея третьего алгоритма
Гомори...................................................166
§ 2. Построение целочисленного правильного отсечения. Третий
алгоритм Гомори..........................................170
§ 3. Доказательство конечности третьего алгоритма Гомори . . 182
§ 4. Модификация третьего алгоритма Гомори...............184
Г л а в а 8
О решении целочисленных задач линейного программирования
с произвольными дополнительными условиями................ 186
§ 1. Постановка задачи и идея метода решения.............187
ОГЛАВЛЕНИЕ
5
§ 2. Построение отсечений для выпуклых и некоторых невыпук-
лых задач................................................
§ 3. Применение третьего алгоритма Гомори................
Г л а в а 9
Об эффективности алгоритмов метода отсечения.............198
§ 1. Проблема эффективности..............................198
§ 2. Результаты вычислительных экспериментов.............200
§ 3. Некоторые выводы....................................208
ч а с т ь HI
КОМБИНАТОРНЫЕ МЕТОДЫ
Глава 10
Метод ветвей и границ....................................213
§ 1. Идея метода ветвей и границ . . ...................213
§ 2. Метод Лэнд и Дойг................................. 219
k § 3. Алгоритм Литтла, Мурти, Суини и Кэрел для задачи ком-
мивояжера ................................................. ..... 224
Г л а в а 11
Аддитивный алгоритм......................................231
§ 1. Постановка задачи и идея метода....................231
(§ 2. Общая схема метода..........................................234
§ 3. Описание алгоритма.................................236
§ 4. Пример и заключительные замечания .................244
Г л а в а 12
Применение динамического программирования................251
г, § 1. Обобщенная задача о ранце...........................251
§ 2. Задача о коммивояжере..............................258
' § 3. Задача теории расписаний для случая двух машин (алго-
; ритм Джонсона)......................................264
Глава 13
I Локальный подход к задачам дискретного программирования . 273
§ 1. Предварительные рассмотрения.......................274
I § 2. Алгоритм ...........................................278
Г л а в а 14
| Некоторые другие методы..................................282
§ 1. Метод Фора и Мальгранжа.......................... 282
h § 2. Метод последовательных расчетов.....................287
ОГЛАВЛЕНИЕ
ЧАСТЬ IV
ПРИБЛИЖЕННЫЕ МЕТОДЫ
Г л а в а 15
Методы случайного поиска...............................290
§ 1. Случайный поиск . ...............................291
§ 2. Случайный поиск с локальной оптимизацией..........293
Глава 16
Детерминированные методы...............................300
§ 1. Приближенные методы для транспортной задачи с фикси-
рованными доплатами....................................300
§ 2. Некоторые обобщения...............................313
ч а с т ь V
НЕКОТОРЫЕ ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ
Глава 17
Целочисленные многогранные множества......................320
§ 1. Условие целочисленности многогранных множеств . . . .321
§ 2. Задачи транспортного типа...........................327
Г л а в а 18
Целочисленное линейное программирование и двойственные
оценки....................................................340
§ 1. Постановка задачи и некоторые предварительные сведения 341
§ 2. Теорема Гомори и Баумоля............................345
Литература ...............................................358
Предметный указатель......................................367
ПРЕДИСЛОВИЕ РЕДАКТОРА
Новое направление в науке завоевывает признание
лишь тогда, когда оно отвечает назревшим потребностям
и представляет собой достаточно общую теорию, прило-
жимую без существенных изменений к проблемам раз-
личного характера. С этой точки зрения предмет. моно-
графии А. А. Корбута и Ю. Ю. Финкельштейна «Ди-
скретное программирование» может быть с полным
правом назван новым направлением в математическом
программировании. Можно перечислить большое коли-
чество разнообразных задач планирования экономики,
управления отраслью, организации производства и про-
ектирования техники, которые формально сводятся к
выбору лучших в каком-то смысле значений параметров
из некоторой дискретной совокупности заданных величин
(удовлетворяющих, помимо того, определенным фикси-
рованным условиям). Перечень дисциплин, для которых
представляют интерес условные экстремальные задачи
с дискретными переменными, можно было бы значитель-
но расширить. К ним следует отнести экстремальные
комбинаторные задачи, возникающие в различных раз-
делах дискретной математики, многочисленные задачи,
связанные с исследованием конфликтных ситуаций и
организацией боевых действий, задачи синтеза схем авто-
матического регулирования и проблемы бионики — дис-
циплины, развивающейся на грани биологии и техники.
Формальные модели, отвечающие всем этим раз-
нообразным по своему содержанию задачам, мало
8
ПРЕДИСЛОВИЕ РЕДАКТОРА
различаются между собой. Естественно, что и большинст-
во математических методов анализа таких моделей не свя-
зано с конкретными постановками породивших их задач.
Задачи и методы, относящиеся к перечисленному
кругу вопросов, различные авторы именуют по-разному.
Наибольшее распространение получил термин целочис-
ленное программирование. По-видимому, это связано с
большим впечатлением, которое произвела фундамен-
тальная работа Аомори. В литературе встречаются, од-
нако, и другие термины: дискретное программирование
и реже комбинаторное или диофантово программиро-
вание.
Авторы приняли менее распространенное, но, по-ви-
димому, более соответствующее существу проблематики
название монографии — «Дискретное программирова-
ние». Дело в том, что не все дискретные задачи мате-
матического программирования могут быть сведены
к конечномерному целочисленному программированию.
Имеются и дискретные задачи, для которых сведение к
целочисленному линейному программированию — не
кратчайший путь к решению (например, известная за-
дача коммивояжера).
Несмотря на кажущуюся простоту постановки задач
дискретного программирования, математические трудно-
сти, возникающие при их анализе, могут быть весьма
значительны. Чтобы дать представление о сложности тео-
ретических и вычислительных проблем дискретного про-
граммирования, достаточно указать, что так называемая
«великая теорема Ферма» может быть сформулирована
как следующая задача целочисленного программирова-
ния:
(xf‘ + х£ — х*)2 -> min,
Х!>1, х2>1, х3>1, х4>3,
Xj — целое, / = 1, 2, 3, 4.
ПРЕДИСЛОВИЕ РЕДАКТОРА
9
Любой метод дискретного программирования, позво-
ляющий решить эту задачу за обозримое время, будет
конструктивным методом доказательства теоремы Фер-
ма, если минимальное значение целевой функции задачи
окажется положительным, или опровергнет утверждение
Ферма, если целевая функция достигнет нуля на планах
задачи.
Методы дискретного программирования разработаны
слабее, чем методы линейного и выпуклого программиро-
вания. Однако теория дискретного программирования
непрерывно совершенствуется, а ее методы интенсивно
развиваются. В различных журналах, сборниках, фир-
менных отчетах во все возрастающем количестве по-
являются публикации по дискретному программирова-
нию. Математики и специалисты по приложениям мате-
матических методов управления проявляют значительный
интерес к этим публикациям. Между тем ориентиро-
ваться в нарастающем потоке литературы становится
все труднее. Потребность в сводном изложении основ-
ных вопросов дискретного программирования совершен-
но недостаточно удовлетворяется опубликованными в
последние годы обзорами и отдельными главами в кни-
гах, посвященных более широкой тематике.
Предлагаемая вниманию читателя монография
А. А. Корбута (Ленинград) и Ю. Ю. Финкельштейна
(Москва) «Дискретное программирование» является пер-
вым в отечественной и, по-видимому, в мировой литера-
туре сводным и достаточно полным изложением пред-
мета.
Собственные научные интересы авторов, в течение
ряда лет связанные с задачами и методами дискретного
программирования (им принадлежат два обзора и зна-
чительное количество оригинальных работ в этой об-
ласти), оказали заметное влияние на содержание и
10
ПРЕДИСЛОВИЕ РЕДАКТОРА
структуру монографии. Материал, опубликованный в
периодической литературе или в обзорах, по-новому
классифицирован и в соответствии с общим замыслом
книги оригинально изложен. Авторы привели подробные
доказательства утверждений, которые в ряде случаев
весьма лаконично и неполно изложены в оригинальных
публикациях.
Авторы лично участвовали в постановке и решении
многих практических задач дискретного программирова-
ния. Приобретенный ими опыт численного решения задач
сказался на форме изложения и на акцентировании
методологических и вычислительных трудностей, с кото-
рыми может встретиться читатель при практическом при-
ложении рекомендаций монографии. Изложение мате-
риала рассчитано на читателей разного уровня и с раз-
ными запросами — начиная от лиц, желающих получить
лишь первоначальное представление о предмете, и кон-
чая специалистами по дискретному программированию.
Опыт и знания, накопленные авторами за ряд лет
работы по дискретному программированию, и резуль-
таты, полученные ими в этой области, позволили им на-
писать оригинальную и безусловно полезную книгу.
Можно ожидать, что монография А. А. Корбута и
Ю; Ю. Финкельштейна будет с удовлетворением встре-
чена математиками, экономистами, инженерами, науч-
ными работниками, аспирантами и студентами многих
специальностей, связанных с вычислительными мето-
дами, вычислительной техникой и различными задачами
регулирования и управления.
Д. Юдин
Май 1968 г.
ПРЕДИСЛОВИЕ АВТОРОВ
Предметом настоящей книги является изложение ма-
тематических моделей и численных методов дискретного
программирования, а также некоторых связанных с ним
теоретических вопросов.
Дискретное программирование — один из наиболее
молодых, перспективных и бурно развивающихся разде-
лов математического программирования. Количество и
разнообразие публикаций в этом направлении за послед-
ние годы резко возросли. Существенно расширился и
круг специалистов, занимающихся практическими при-
ложениями моделей дискретного программирования. За-
просы этой аудитории лишь частично удовлетворяются
имеющимися обзорными статьями и отдельными главами
в монографиях по математическому программированию.
Еще труднее ориентироваться в современном состоянии
предмета по разрозненным (а зачастую и труднодоступ-
ным) журнальным публикациям. Поэтому авторы пред-
приняли попытку дать сводное изложение основных до-
стижений в области дискретного программирования. Об
успешности этой попытки пусть судит читатель.
Книга состоит из пяти частей. Каждая часть делится
на главы; главы делятся на параграфы, а параграфы
обычно разбиваются на пункты. Часть I является ввод-
ной; в ней дается общая характеристика предмета ди-
скретного программирования (включая численные ме-
тоды) и формулируются наиболее типичные математиче-
12
ПРЕДИСЛОВИЕ АВТОРОВ
ские модели. Части II, III, IV посвящены численным
методам. В них рассмотрены соответственно методы от-
сечения, комбинаторные методы и приближенные ме-
тоды. В части V излагаются вопросы, представляющие
значительный теоретический интерес, но непосредственно
не относящиеся к численным методам (характеризация
целочисленных многогранников, роль двойственных оце-
нок в целочисленных линейных задачах).
Часть материала (например, гл. 8, § 1 из гл. 12,
алгоритм проверки Т-матриц на унимодулярность из
гл. 17) публикуется здесь впервые.
Приложенный к книге список литературы отнюдь не
претендует на полноту и ограничивается в основном ци-
тированными источниками. Более подробный список ли-
тературы (225 названий), а также некоторые дополни-
тельные исторические сведения можно найти в обзорной
статье авторов [15].
Для читателя весьма желательным является свобод-
ное владение основными понятиями математического
программирования. Необходимые сведения из линейного
программирования (систематически используемые в ча-
сти II, а также в гл. 17) суммированы в гл. 4. .
Авторы выражают искреннюю признательность про-
фессору Д. Б. Юдину, взявшему на себя нелегкий труд
редактирования этой книги.
Авторы
Апрель 1968 г.
ЧАСТЬ I
ПРЕДМЕТ И МОДЕЛИ ДИСКРЕТНОГО
ПРОГРАММИРОВАНИЯ
Эта часть играет роль развернутого введения. В гл. 1 дается
общая характеристика предмета дискретного программирования и
разъясняются идеи, лежащие в основе важнейших численных мето-
дов этой дисциплины. Указывается схематическая классификация ма-
тематических моделей и прикладных задач дискретного программи-
рования. На основе этой классификации в гл. 2 и 3 приводятся ма-
тематические формулировки наиболее типичных задач.
Читатель, не ставящий перед собой целью активно овладеть ме-
тодами дискретного программирования, а желающий получить лишь
первоначальное представление о предмете и освоить технику фор-
мулирования задач, может ограничиться изучением только этой
части книги.
ГЛАВА 1
ВВЕДЕНИЕ
§ 1. Предмет дискретного программирования
1.1. Настоящая книга посвящена дискретным зада-
чам математического программирования. Наиболее изу-
ченными задачами этого класса являются целочисленные
задачи линейного программирования, т. е. задачи ли-
нейного программирования, в которых на все перемен-
ные (либо на их часть) наложено дополнительное тре-
бование целочисленности. В первом из этих случаев
обычно говорят о полностью целочисленных, а во вто-
ром — о частично целочисленных задачах. Разумеется,
аналогичным образом можно определить целочисленные
(частично целочисленные) варианты и для более общих
задач оптимального программирования — можно гово-
рить, например, о задачах выпуклого целочисленного
программирования и т. п.
От целочисленных задач принято отличать так назы-
ваемые дискретные задачи математического программи-
рования, в которых областью допустимого изменения
14
ВВЕДЕНИЕ
[ГЛ. 1
каждой переменной является не множество целых неот-
рицательных чисел, а некоторое заданное конечное мно-
жество. Как будет показано ниже (см. гл. 2), такие
задачи (на конечных множествах) могут быть формаль-
но сведены к целочисленным.
Исследования в этом направлении, начатые менее
15 лет тому назад, к настоящему времени продвинуты
настолько далеко, что сейчас мы уже вправе говорить
о самостоятельном разделе математического программи-
рования— дискретном программировании. В литературе
употребляется также термин «целочисленное програм-
мирование» и реже — «комбинаторное программирова-
ние». Однако нам представляется, что термин «ди-
скретное программирование» наиболее полно отражает
специфику вопроса, хотя при его использовании и возни-
кает некоторая опасность смешения дискретного про-
граммирования и, скажем, дискретного анализа. Впро-
чем, далее мы увидим, что связь этих двух дисциплин
является не только терминологической.
1.2. Опишем теперь предмет в более формальных
терминах.
Под общей задачей математического программиро-
вания мы, как обычно, будем понимать задачу макси-
мизации скалярной функции
при условиях
и
f(Xi, х2, ...» х„)
gi(*i. х2......х„)<0,
g2(*i, х2, .... х„)<0,
£т(*ь х2, .... х„)<0
X = (xh х2, хл)еО.
(1.1)
(1.2)
(1.3)
Здесь D — некоторая область n-мерного евклидова про-
странства Rn (в подавляющем большинстве случаев в
качестве D рассматривается неотрицательный ортант
пространства /?п, так что (1.3) представляет собой, по-
просту условие неотрицательности всех переменных).
Область, определяемую условиями (1.2) и (1.3), мы бу-
дем обозначать через G.
§ I] ПРЕДМЕТ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ 15
В целях лучшего уяснения места дискретных задач
среди задач математического программирования сделаем
здесь небольшое отступление.
Среди задач (1.1) — (1.3) можно выделить класс за-
дач, которые мы назовем регулярными. Эти задачи ха-
рактеризуются следующими условиями.
1. Для каждой точки X<=G можно определить неко-
торым образом понятие непустой окрестности G^cG.
2. Можно указать достаточно эффективно проверяе-
мые необходимые и достаточные условия локальной оп-
тимальности. На основе этих условий локальный опти-
мум целевой функции (1.1) на множестве G может быть
найден при помощи некоторого конечного (или беско-
нечного сходящегося) процесса.
3. Локальный оптимум целевой функции совпадает
с глобальным.
К регулярным задачам относятся, например, задачи
выпуклого программирования (функция f вогнута, функ-
ции gi, i— 1, 2, .... т, выпуклы) и их частный случай —
задачи линейного программирования (функции f и gi,
i=l, 2, .... tn, линейны, D есть неотрицательный
ортант).
К задачам, не являющимся регулярными, относятся,
в частности, так называемые многоэкстремальные зада-
чи, в которых глобальный экстремум может не совпадать
с локальным. Многоэкстремальным задачам уделено
значительное место в обзоре Д. Б. Юдина [42], [43].
Дискретные задачи математического программирова-
ния образуют другой обширный класс нерегулярных за-
дач. Формально их можно охарактеризовать как задачи
типа (1.1) — (1.3), в которых множество D не является
связным. Например, D может быть конечным (счетным)
множеством либо декартовым произведением конечного
(счетного) *) множества на множество мощности кон-
тинуума. В этом случае условия (1.3) естественно на-
зывать условиями дискретности (частичной дискрет-
ности).
*) Говоря о счетных множествах, мы всегда будем иметь в виду
счетные множества без предельных точек (множества типа «нату-
рального ряда»).
16
ВВЕДЕНИЕ
[ГЛ. 1
Отсюда ясно, что в дискретных задачах область допу-
стимых решений G является невыпуклой и несвязной.
Эта область определяется условиями двух типов: «ре-
гулярными» условиями (1.2) и условиями дискретности
(частичной дискретности) (1.3). Характерно, что чаще
всего условия дискретности (частичной дискретности)
отделены от других условий и, кроме того, «отсепариро-
ваны» по отдельным переменным, так что их можно за-
писать следующим образом:
j=l, 2, (1.4)
Здесь а каждое Dj— либо конечное множе-
ство, содержащее не менее двух элементов, либо счет-
ное*) множество. Случаю ni = n отвечает полностью
дискретная задача, а случаю ni<n— частично дискрет-
ная задача.
В простейшем случае, когда ni=n, а все Dj —конеч-
ные множества, задача дискретного программирования
представляет собой задачу нахождения условного экс-
тремума на конечном множестве.
1.3. Если в решении регулярных (прежде всего ли-
нейных, а также выпуклых) задач математического про-
граммирования достигнуты значительные успехи, то ре-
шение дискретных задач наталкивается на ряд суще-
ственных и специфических затруднений. Эти затруднения
носят не только технический, но и принципиальный ха-
рактер. Дело в том, что отмечавшиеся выше невы-
пуклость и несвязность области допустимых решений
дискретной задачи делают невозможным применение
стандартных приемов «регулярного» математического
программирования (продвижение из одной вершины
многогранника в другую, перемещение по градиенту в
окрестности данной точки и т. п.).
«Наивные» подходы к дискретным задачам также
оказываются несостоятельными. Так, идея прямого пере-
бора для задач с конечным множеством допустимых ре-
шений не может быть практически реализована, так как
в случае конечности всех множеств Dj количество точек
) См сноску на стр. 15.
§ I]
ПРЕДМЕТ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ
17
(xi, х2, ...» хп), удовлетворяющих условию (1.4) (при
П]=п), равно*)
п
П1 D} |>2";
7=1
иначе говоря, с увеличением числа переменных объем
вычислительной работы растет весьма быстро. То, что
при этом подсчете мы не учитывали ограничений (1.2),
дела практически не меняет.
Другой напрашивающийся подход к дискретным
(точнее, целочисленным) задачам заключается в их
«регуляризации», т. е. в отбрасывании условий дискрет-
ности и решении соответствующей непрерывной задачи
с последующим округлением нецелочисленных компонент
решения до ближайших целых чисел. Однако можно по-
строить простые примеры задач целочисленного линей-
ного программирования, показывающие неприемлемость
этого подхода. Рассмотрим, например, задачу максими-
зации линейной формы
Xi — Зх2+Зх3
при условиях
2xt + х2 — х3 < 4,
4xi ~ Зх2 < 2,
— Зх} +2х2 + х3<3;
Xi, х2, х3>0; Xj — целые числа, /==1, 2, 3.
Игнорируя условие целочисленности, мы можем легко
найти оптимальный план соответствующей задачи ли-
нейного программирования:
*1 = 4’ *2 = 0» хз = 4у-
Легко убедиться, что никакие варианты округления ком-
понент этого нецелочисленного плана здесь не дают даже
допустимого решения! Оптимальное же целочисленное
решение этой задачи имеет вид
*1=2, х2=2, х3=5.
*) Через |Л| мы обозначаем число элементов данного (конеч-
ного) множества А.
2 А. А, Корбут, Ю. Ю. Финкельштейн
18
ВВЕДЕНИЕ
[ГЛ. I
Сразу же отметим, что приведенный пример порочит
не саму идею регуляризации, а лишь ее чересчур прямо-
линейное использование. Идея регуляризации задачи ле-
жит в основе широкого класса численных методов ди-
скретного программирования — так называемых «мето-
дов отсечения» (см. § 4).
Все сказанное показывает, что для решения дискрет-
ных задач оптимизации необходимо создание совершен-
но новых методов. Классификации и краткий обзор этих
методов будут приведены в § 4.
§ 2. Классификация математических моделей
2.1. Дискретные (целочисленные) задачи математиче-
ского программирования могут возникать различными
путями. Прежде всего отметим, что существуют задачи
линейного программирования, которые формально к це-
лочисленным не относятся (требование целочисленности
переменных в них в явном виде не накладывается), но
которые при целочисленных исходных данных всегда об-
ладают целочисленным планом. Этим свойством обла-
дает транспортная задача и различные ее варианты
(задача о назначениях, задачи о потоках в сетях). Ука-
занное обстоятельство легко понять, вспомнив, что чис-
ленные методы решения транспортной задачи требуют
применения к исходным данным лишь действий сложе-
ния и вычитания. Внутренние же причины его гораздо
глубже; они заключаются в некоторых специфических
свойствах матрицы ограничений транспортной задачи.
Здесь мы не будем более останавливаться на этом во-
просе, отложив изучение соответствующего класса задач
(так называемых «унимодулярных задач») до гл. 17.
2.2. Первоначальным и наиболее естественным стиму-
лом к изучению целочисленных и дискретных задач в
собственном смысле слова явилось рассмотрение задач
линейного программирования, в которых переменные
представляли физически неделимые величины (скажем,
количества единиц продукции разных видов). Ясно, что
это требование возникает во многих прикладных моде-
лях; первая известная по литературе модель такого рода
будет описана в § 2 гл. 2. Для характеристики этого
§ 2] КЛАССИФИКАЦИЯ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ 19
класса моделей мы будем употреблять термин задачи
с неделимостями.
2.3. Другим важным толчком к построению теории ди«
скретного программирования явился новый подход к
некоторым экстремальным комбинаторным задачам,
разработанный в середине 50-х годов и основанный на
использовании линейного программирования. В этих за-
дачах требовалось найти экстремум целочисленной ли-
нейной функции, заданной на конечном множестве эле-
ментов, либо же сами элементы этого конечного множе-
ства, обладающие указанным экстремальным свойством.
Для «погружения» подобной задачи в задачу линейного
программирования элементы конечного множества ин-
терпретировались как целочисленные точки евклидова
пространства, а затем искался экстремум линейной
функции на выпуклой оболочке этих точек (или на более
широком выпуклом многограннике). Из самого построе-
ния ясно, что решение полученной таким образом задачи
линейного программирования имеет комбинаторный
смысл только в случае его целочисленности. Однако в
первых изученных таким способом задачах последний
момент не имел самостоятельного значения: доказатель-
ство целочисленности здесь было либо излишне, либо
проводилось без труда, так как эти задачи сводились в
конечном счете к транспортной.
Тем самым эти исследования еще не вызвали необхо-
димости разработки методов собственно дискретного
программирования; однако они привлекли интерес к об-
щей характеризации класса задач, обладающих опти-
мальными целочисленными решениями, и, что еще более
важно, открыли путь к трактовке комбинаторных задач
более общего вида методами линейного программиро-
вания. Здесь сама природа дискретности часто бывает
несколько иной. Именно, нередко приходится вводить
булевы *) переменные, носящие логический характер
(«положим Xj=l, если выполняется условней, и х,=0
в противном случае...»).
*) То есть принимающие два значения: 0 и 1. Отметим, что
условие х= | можно записать как 1, х— целое. Это си-
стематически используется в дальнейшем.
2*
20
ВВЕДЕНИЕ
(ГЛ. I
2.4. К целочисленным (точнее, частично целочислен-
ным) задачам линейного программирования удается
свести также ряд задач, в которых явное требование
целочисленности отсутствует, но зато имеются некоторые
особенности, выводящие их из рамок линейного про-
граммирования. Эти особенности могут относиться либо:
а) к целевой функции, либо б) к области допустимых
решений.
К задачам типа а) относятся задачи минимизации
неоднородной функции на выпуклом многограннике. Под
неоднородной разрывной линейной функцией мы пони-
маем функцию
п
ГДе Г 0 при Х; = 0,
—| CjXj + dj при Х;>0.
Задачи типа б) представляют собой задачи нахождения
экстремума обычной линейной формы на области, зада-
ваемой, помимо линейных неравенств, еще и логиче-
скими условиями вида «либо — либо». Подобные обла-
сти оказываются либо невыпуклыми, либо несвязными
(они, как правило, представляют собой теоретико-мно-
жественное объединение нескольких выпуклых много-
гранников).
Подобные «неклассические» задачи будут рассмат-
риваться в §§ 4—5 гл. 2. Сейчас мы отметим лишь, что
введением дополнительных целочисленных переменных
они сводятся к задачам целочисленного линейного про-
граммирования.
2.5. Итак, мы можем выделить следующие основные
классы задач дискретного программирования:
1. Задачи с неделимостями.
2. Экстремальные комбинаторные задачи.
3. Задачи с неоднородной разрывной целевой функ-
цией.
4. Задачи на неклассических областях.
5. Некоторые многоэкстремальные задачи.
6. Дискретные задачи в узком смысле слова (на-
хождение экстремумов на конечных множествах).
§ 3] КЛАССИФИКАЦИЯ ПРИКЛАДНЫХ ЗАДАЧ 21
§ 3. Классификация прикладных задач
3.1. В отношении классификации прикладных задач
дискретного программирования в значительной мере
можно было бы повторить сказанное в предыдущем па-
раграфе по поводу классификации математических мо-
делей. Прежде всего, задачи с неделимостями — это ма-
тематические модели многих реальных задач, описываю-
щих планирование выпуска неделимых видов продукции,
либо использования неделимых производственных фак-
торов. В роли таких неделимых факторов нередко вы-
ступают, например, транспортные единицы, так что к
дискретным моделям сводятся многие задачи о перевоз-
ках, отличные от классической транспортной задачи.
Таковы, например, задачи об оптимизации комплекса
средств доставки грузов, о нахождении минимального
количества судов, необходимых для осуществления дан-
ного графика перевозок, о нахождении минимального
порожнего пробега автомобилей при выполнении задан-
ного плана перевозок и т. п.
3.2. Из комбинаторных задач, сводящихся к моделям
дискретного программирования и имеющих большое
прикладное значение, отметим прежде всего задачу о
коммивояжере (бродячем торговце) и задачу теории рас-
писаний. Обе эти задачи являются предметом обширной
литературы; однако детальное их рассмотрение выходит
за рамки настоящей книги. Мы ограничимся поэтому
описанием соответствующих дискретных моделей.
Задача о коммивояжере описывает класс моделей
нахождения маршрутов развозки груза, минимизирую-
щих суммарный пробег. Что же касается задачи теории
расписаний, то она является моделью основной массы
задач организации производства.
3.3. К числу других комбинаторных задач, важных
в прикладном отношении, относятся также задачи о по-
крытии, привлекшие к себе большое внимание в самые
последние годы. Эти задачи касаются нахождения мини-
мального подмножества множества ребер данного графа,
содержащего все вершины графа. Они находят приме-
нение в вопросах синтеза логических сетей и в других
близких задачах.
22
ВВЕДЕНИЕ
[ГЛ. 1
К указанным задачам примыкают также задачи типа
задач о двойном назначении (минимальные связи на
радиотехнических платах, кратчайшие технологические
маршруты).
3.4. Упомянем также о весьма важном и широком
классе задач оптимального размещения производства,
специализации, кооперирования и пр., в которых раз-
личными путями возникает дискретность.
3.5. Итак, мы можем выделить следующие основные
типы прикладных задач дискретного программирования:
1. Задачи с неделимостями.
2. Комбинаторные задачи.
3. Задачи о покрытии и другие задачи дискретной
оптимизации сетей.
4. Задачи размещения.
Отметим, что всякая классификация прикладных за-
дач дискретного программирования неизбежно оказы-
вается неполной, ибо среди этих моделей мы находим
и задачи сельскохозяйственного производства, и задачу
оптимальной синхронизации сигналов при регулирова-
нии уличного движения и пр.
§ 4. Классификация численных методов
Теория дискретного математического программиро-
вания на сегодняшний день состоит в основном из тео-
рии численных методов решения дискретных задач. Да-
вая их общую характеристику, можно прежде всего
выделить три основные группы методов, принципиально
разнящихся по подходу к проблеме.
4.1. Для методов первой группы характерна прежде
всего «регуляризация» задачи, достигаемая погружением
ее исходной области допустимых решений (1.2), (1.4)
в объемлющую ее выпуклую область (иными словами,
временным отбрасыванием условий дискретности (1.4)).
Затем к получившейся регулярной задаче применяются
стандартные методы оптимизации. Если получившееся
в результате решение уже удовлетворяет требуемым
условиям дискретности, задача решена. Если же это не
так, то требуется дальнейший переход к целочисленному
решению. Еще раз подчеркнем, что этот переход не мо-
§ 4) КЛАССИФИКАЦИЯ ЧИСЛЕННЫХ МЕТОДОВ 23
жет, вообще говоря, быть достигнут простым округле-
нием компонент полученного нецелочисленного решения.
Соответствующий пример был приведен в § 1.
Таким образом, указанный переход и составляет са-
мую сущность методов этой группы. Впервые идея та-
кого перехода была указана в работе Данцига, Фулкер-
сона и Джонсона [68] применительно к задаче о бродя-
чем торговце; позднее аналогичная идея использовалась
для другой конкретной задачи Марковицем и Манном
[115]. Для общей целочисленной задачи линейного про-
граммирования соответствующая идея была высказана
Данцигом [65]. Она заключается в следующем. Если в
результате первого шага (решение задачи без учета тре-
бования целочисленности) получен не целочисленный
план, то к ограничениям исходной задачи добавляется
новое линейное ограничение, обладающее двумя свой-
ствами:
1) полученный нецелочисленный план ему не удов-
летворяет;
2) любой целочисленный план'ему заведомо удовлет-
воряет.
Затем решается полученная расширенная задача, в
случае необходимости добавляется еще одно ограниче-
ние и т. д. Процесс повторяется до получения решения,
обладающего нужными свойствами целочисленности. Та-
ким образом, решение полностью или частично целочис-
ленной задачи линейного программирования сводится к
решению некоторой последовательности обычных задач
линейного программирования.
Геометрически добавление каждого такого линейного
ограничения отвечает проведению гиперплоскости, отсе-
кающей от многогранника решений «регуляризованной»
задачи старую оптимальную точку с дробными коорди-
натами, но не затрагивающей ни одной из целочисленных
точек этого многогранника. Поэтому методы, опираю-
щиеся на эту идею, получили в литературе название
«методов отсекающих плоскостей» или «методов отсе-
чения».
Идея отсечения естественным образом приводит к
трем проблемам:
24
ВВЕДЕНИЕ
(ГЛ. I
1) нахождение универсального правила формирова-
ния дополнительных ограничений;
2) доказательство конечности соответствующего про-
цесса отсечения;
3) борьба с чрезмерным «разрастанием» задачи при
добавлении дополнительных ограничений.
Только решение этих проблем может привести к уни-
версальному и реализуемому в вычислительном отноше-
нии алгоритму. Впервые это было проделано Р. Гомори
в 1958 г. (первая публикация алгоритма [88]; см. также
[83],. [84]). Именно с этого момента начинается развитие
общих методов отсечения; как отмечает Данциг [65],
предыдущие реализации отсекающих плоскостей были
сугубо неформальными, представляя собой скорее искус-
ство, чем науку.
В дальнейшем Гомори обобщил идею формирования
дополнительных ограничений и получил другую форму
алгоритма для полностью целочисленных задач [85а],
[86]. Этот метод особенно удобен в вычислительном
отношении, ибо он требует лишь выполнения действий
сложения и вычитания. В литературе [120] эти методы
иногда называются соответственно «циклическим» и «ди-
скретным» алгоритмами Гомори. Кроме того, Гомори
распространил первый из своих алгоритмов на частично
целочисленные задачи линейного программирования
(первая публикация [85]). Важно отметить, что при опре-
деленных условиях доказана также конечность этих трех
алгоритмов.
Нетривиальность проблемы отсечения состоит, в ча-
стности, в том, что далеко не любое правило формиро-
вания дополнительных ограничений, удовлетворяющих
требованиям 1) и 2) (см. стр. 23), приводит к конеч-
ному вычислительному алгоритму. Этот вопрос будет
рассмотрен в § 5 гл. 6 на примере одного правила фор-
мирования дополнительных ограничений, предложенного
Данцигом вскоре после первой работы Гомори.
Развитие методов отсечения в последние годы шло
как по пути их детализации, так и по пути их распро-
странения с линейных на более общие задачи. Так,
Кюнци и Этли [107], [108] предложили метод минимиза-
ции положительно определенной квадратичной формы
$ 4] КЛАССИФИКАЦИЯ ЧИСЛЕННЫХ МЕТОДОВ 25
при линейных ограничениях и ограничениях целочислен-
ности на ее переменные.
В работах [29], [30] был предложен алгоритм, исполь-
зующий специфику задачи линейного программирования
с булевыми переменными (см. § 4 гл. 6).
Витцгалл [127] перенес идею второго алгоритма Го-
мори на задачи с линейной целевой функцией (с требо-
ванием целочисленности переменных) и «параболиче-
скими» ограничениями, т. е. ограничениями вида
аоо - io W - M^i W)2 - • - - *а U* (X))2 > 0,
п
где LS(X) = Ti aSjXj— линейно независимые формы,
s=0, 1, .... t.‘
4.2. Вторая из указанных выше групп методов отли-
чается от первой тем, что в ней, напротив, максимально
используется конечность проблемы, ее комбинаторный
характер. Естественно, что методы этой группы по свое-
му характеру довольно разнородны; все они в какой-то
степени используют идею перебора. Впервые метод та-
кого рода был предложен в работе Лэнд и Дойг [109]
в 1960 г. Позднее Литтл и др. авторы использовали весь-
ма близкую идею для решения задачи о бродячем тор-
говце; их подход оказался весьма перспективным. На-
званный авторами «методом ветвей и границ», этот алго-
ритм породил ряд вариантов («метод последовательного
отделения и оценивания» [57] и др.), а главное — при-
влек внимание к самой идее «ветвей и границ», не оце-
ненной после работы Лэнд и Дойг. Тем самым он сти-
мулировал разработки в этом направлении, которые
в настоящее время ведутся весьма интенсивно (см. об-
зор Лаулера и Вуда [111]).
По существу на близких к идеям «ветвей и границ»
приемах основан «аддитивный» алгоритм Балаша [47]
и его модификации; основному варианту этого метода
будет посвящена гл. 11. Томпсон [125] предложил алго-
ритм для решения линейных целочисленных задач
(«симплекс-метод с остановками»), близкий к алгоритму
Лэнд и Дойг, но существенно более экономный в смысле
требований к памяти.
26
ВВЕДЕНИЕ
[ГЛ. )
Более простые эвристические соображения лежат в
основе «булевого» метода, предложенного Фором и
Мальгранжем [74] для решения целочисленных задач
линейного программирования (см. § 1 гл. 14).
Здесь заслуживает также упоминания аппарат так
называемого «псевдобулевого» программирования, раз-
работанный Ивэнеску, Розенбергом и Рудеану. Предме-
том псевдобулевого программирования является решение
систем уравнений или неравенств с переменными, при-
нимающими значения 0 или 1, а также изучение соответ-
ствующих задач оптимизации — как линейных, так и не-
линейных. Будучи ограничены объемом книги, мы не имеем
возможности остановиться на псевдобулевом программи-
ровании, тем более, что этот подход по своему духу ле-
жит несколько в стороне от общего направления настоя-
щей книги. Интересующегося этими вопросами читателя
отошлем к монографии [99] или к обзорной статье [100].
Локальный подход, зародившийся в дискретном ана-
лизе, был затем развит прийенительно к задачам дис-
кретного программирования [8], [34], [31] (см. гл. 13).
Несколько особняком стоит оригинальный метод
В. П. Черенина для решения одного класса комбинатор-
ных задач; он будет вкратце описан в § 2 гл. 14.
4.3. Третья группа методов — это методы случайного
поиска и другие приближенные методы. Возникновение
приближенных методов стимулировалось разными при-
чинами. Среди них отметим прежде всего сложность
существующих точных методов и трудности в их реа-
лизации для задач больших размеров. Далее, для мно-
гих прикладных задач точные решения в значительной
мере обесцениваются из-за недостаточной достоверности
исходного материала. Кроме того, специфическая струк-
тура многих задач позволяет разработать достаточно
мотивированные эвристические подходы, ценные своей
простотой и тем самым приложимые к решению опера-
тивных задач.
В наиболее «чистом» виде метод случайного поиска
применительно к задачам целочисленного линейного про-
граммирования с булевыми переменными был развит в
работе Пятецкого-Шапиро, Волконского, Левиной и
Поманского [25] (см. § 1 гл. 15).
§ 1]
ТРАНСПОРТНАЯ ЗАДАЧА
27
Нередко случайный поиск сочетается с так называе-
мой локальной оптимизацией. В общих чертах эти ме-
тоды можно охарактеризовать следующим образом.
Производится случайный выбор некоторого допустимого
плана. Определяется «окрестность» этого допустимого
решения, состоящая из точек, в определенном смысле
близких к исходной. Имеющееся допустимое решение
улучшается на точках этой окрестности до получения
«локального» оптимума. Вся эта процедура повторяется
многократно, и из полученных «локальных» оптимумов
выбирается наилучший по значению целевой функции.
Разумеется, идея такого подхода является весьма общей
и применима в принципе к любым задачам оптимального
программирования. Более формальное описание мы да-
дим в § 2 гл. 15.
Отметим наконец, что для некоторых частных задач
построены приближенные методы, вовсе не использую-
щие случайного поиска, а учитывающие лишь специфику
модели. Один такой метод, предназначенный для реше-
ния транспортной задачи с фиксированными доплатами
(см. § 5 гл. 2), описан в § 1 гл. 16 (см. [И], [14]).
ГЛАВА 2
МАТЕМАТИЧЕСКИЕ МОДЕЛИ ДИСКРЕТНОГО
ПРОГРАММИРОВАНИЯ
§ 1. Транспортная задача
При классификации математических моделей ди-
скретного программирования (гл. 1, § 2) отмечалось, что
некоторые задачи, формально не являющиеся целочис-
ленными, на деле всегда имеют целочисленные решения
при любых целочисленных исходных данных. Это обстоя-
тельство было впервые подмечено Данцигом еще в
1951 г. при конкретизации метода последовательного
улучшения плана (симплекс-метода) применительно к
транспортной задаче. Тем самым последнюю можно счи-
тать в определенном смысле прародителем всех дискрет-
ных задач математического программирования.
1.1. Постановка транспортной задачи заключается в
следующем. Имеется т пунктов производства («постав-
28 МАТЕМАТИЧЕСКИЕ МОДЕЛИ [ГЛ. 2
щиков») некоторого однородного продукта и п пунктов
его потребления. Для каждого пункта производства
i=l, 2, ..., т и для каждого пункта потребления
/=1, 2, п заданы величины:
at — объем производства в пункте производства i,
bj — объем потребления в пункте потребления /,
ctj — затраты на перевозку единицы продукта от пунк-
та производства i до пункта потребления /.
При этом чаще всего предполагается, что суммарное
производство и суммарное потребление сбалансированы,
т. е:
т п
(1.1)
*=i i=i
Требуется составить план перевозок: а) не выводя-
щий за пределы производительности поставщиков,
б) полностью обеспечивающий всех потребителей и
в) дающий минимум суммарных затрат на перевозку.
Введем переменные представляющие собой объе-
мы перевозок от каждого поставщика i до каждого
потребителя /. Естественно, что
i = 1, 2, ..., т, j = 1, 2, ..., п. (1.2)
Очевидно, что требование а) отражается условием
п
= Z = 1, 2, ..., пг,
а требование б) —условием
S Xij^bj, j=* 1, 2, ..., п.
Наконец, суммарные затраты при этом равны
т п
(1-3)
(1.4)
(1.5)
Таким образом, формально транспортная задача за-
ключается в минимизации (1.5) при условиях (1.2)(1.4).
1.2. В явном виде требование целочисленности на
переменные Хц в задаче (1.2) —(1.5) не наложено. Од-
нако имеет место следующая важная теорема, устанав-
§и ТРАНСПОРТНАЯ ЗАДАЧА 29
ливающая связь транспортных задач и задач целочис-
ленного линейного программирования.
Теорема 1.1. При любых целых значениях а{,
а2, • • • > ат и bi, b2, .... Ьп транспортная задача всегда
имеет целочисленный оптимальный план — независимо
от коэффициентов линейной формы сц.
Этот важный факт можно установить непосредствен-
но, как следствие известных методов решения транспорт-
ной задачи. Здесь будет дан эскиз доказательства; для
его проведения фактически нужно лишь осмыслить не-
которые детали вычислительного процесса.
Очевидно, что для доказательства теоремы достаточ-
но убедиться в справедливости следующих двух простых
предложений:
1°. Существует исходный опорный целочисленный
план.
2°. При переходе от одного опорного плана к дру-
гому целочисленность сохраняется.
Действительно, из 1° и 2° сразу следует целочислен-
ность всех опорных планов трансцортной задачи, а это
как раз то, что нам и нужно.
Целочисленный опорный план, существование кото-
рого утверждается в предложении 1°, будет указан пу-
тем прямого построения. Процесс заключается в сле-
дующем: !
1) Рассмотреть матрицу ||с,3|| и найти min с^. Пусть
этот минимум достигается в клетке (i0, /о).
2) Положить в качестве первой базисной переменной
3') Если минимум в (1.6) есть а^, то вычеркнуть
строку io и заменить bj„ на
3") Если минимум в (1.6) есть то вычеркнуть
столбец /о и заменить ац на ац — Ь^.
3"') Если ai„ — Ь^, то вычеркнуть либо строку t0.
либо столбец /о (но не оба одновременно).
4) Повторить шаги 1)—3) для уменьшенной матри-
цы (имеющей либо на одну строку, либо на один стол-
бец меньше, чем исходная матрица).
30
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
(ГЛ. 2
Отметим, что если при применении правила 3'") со-
кращенная матрица будет иметь одну строку и несколь-
ко столбцов, то следует вычеркнуть столбец /о; если же
она имеет один столбец и несколько строк, то вычерки-
вается строка to.
Всего необходимо проделать т+п— 1 шагов этого
процесса (ибо на последнем шаге получается матрица
1X1, в которой вычеркиваются и строка, и столбец).
Тем самым в результате получается некоторый опорный
план. Легко видеть, что он целочислен, ибо составляю-
щие описанный процесс операции не нарушают целочис-
ленности исходных данных at и Ь}, по которым строится
план. Поэтому предложение Г справедливо.
Фактически здесь дано формальное описание метода
минимального элемента для построения начального при-
ближения в транспортной задаче. Легко видеть, что к
тому же выводу можно было бы прийти, анализируя
любой другой прием построения исходного плана (на-
пример, метод северо-западного угла).
Рассмотрим теперь переход от одного опорного плана
к другому. Пусть найден некоторый опорный целочис-
ленный план, не являющийся оптимальным. Пусть обна-
ружено, что для его улучшения в базис следует ввести
переменную х^, и найден цикл, по которому надлежит
провести перераспределение поставок. Ограничимся рас-
смотрением четырехзвенного цикла (в любом общем
случае ситуация принципиально не меняется). Имеем
следующую схему перераспределения:
Как видим, значения переменных при этом изменяются
на целое число 0 — min {х/,/„ Xit/,}. Ввиду целочисленно-
сти предыдущего плана улучшенный план также будет
целочисленным, Таким образом, установлено и предло-
жение 2°,
s 2) ЗАДАЧИ С НЕДЕЛИМОСТЯМИ 31
Более подробное изложение этого вопроса можно
найти, например, в монографии Данцига [66].
1.3. Установленная сейчас целочисленность планов
транспортной задачи имеет место и для любых ее ча-
стных случаев. Важнейшими из них являются задача о
назначениях (задача выбора), рассматриваемая в § 3
настоящей главы, и задача о потоке в сети. При всем
большом самостоятельном значении теории потоков в
сети эти вопросы лежат в стороне от предмета данной
работы. Читателю, интересующемуся специально пото-
ками в сетях, можно рекомендовать монографию Фор-
да и Фалкерсона [75]. Отметим лишь, что целочислен-
ность решений для задачи о назначениях и задачи о
потоке можно не только вывести из соответствующего
свойства транспортной задачи, но и доказать непосред-
ственно.
1.4. Целочисленность планов транспортной задачи, в
которой мы убедились при анализе хода ее решения, в
действительности не связана с конкретными вычисли-
тельным методами, а имеет гораздо более глубокие при-
чины. Дело в том, что если ограничения транспортной
задачи (1.3), (1.4) записать в форме ограничений общей
задачи линейного программирования (т. е. привести их
к виду АХ^СВ), то получающаяся при этом матрица А
будет иметь весьма специфическую структуру. Эта про-
блема имеет большой принципиальный интерес; ее пол-
ное рассмотрение будет пока отложено до гл. 17.
§ 2. Задачи с неделимостями
2.1. Изучение дискретных моделей математического
программирования началось с анализа целочисленных
задач линейного программирования, т. е. задач линей-
ного программирования, в которых на все переменные
или на их часть наложено дополнительное требование
целочисленности.
Говоря формально, целочисленная задача линейного
программирования заключается в максимизации
+ с2х2 + ... + спхп
(2.1)
32
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
при условиях
anXi + а12х2 + ... + alnxn < bif
«21х1 + а22*2 + ... + а2пхп < Ь2,
amlXt + am2x2+ ... +amnxn^bm,
xt 0, х2 > О, ..., хп О,
X] — целые числа, / е /,
(2.2)
(2.3)
(2.4)
где / — некоторое подмножество множества индексов
Af=(l, 2, ..п]. Если J = N (т. е. требование целочис-
ленности наложено на все переменные), то задачу назы-
вают полностью целочисленной-, если же Jj=N, она назы-
вается частично целочисленной.
Модель (2.1) — (2.4) естественно интерпретировать,
например, в следующих терминах. Пусть через i—
= 1,2, ..., т обозначены производственные факторы,
через / = 1,2, ..., п — виды конечной продукции. Обо-
значим далее:
aij — количество фактора i, необходимое для произ-
водства единицы продукта /,
Ь{ — наличные ресурсы фактора i,
Cj — прибыль, получаемая от единицы продукта j.
Пусть продукты / для /е/ являются неделимыми,
т. е. физический смысл имеют лишь целые неотрицатель-
ные количества их («штуки»). Предположим, что целью
является составление производственной программы,
обеспечивающей максимум суммарной прибыли и не вы-
водящей за пределы данных ресурсов. Обозначая через
Xj искомые объемы выпуска продукции, мы сводим эту
задачу к модели (2.1) — (2.4).
Дадим теперь другую интерпретацию для полностью
целочисленной модели (2.1) — (2.4). Пусть теперь через
1=1,2, ..., т обозначены типы работ, подлежащих вы-
полнению, а через / = 1, 2, ..., п — типы оборудования.
Пусть
a,j— себестоимость использования единицы оборудо-
вания типа / на работе i,
bi — ограничения по суммарной себестоимости для
работы i.
§ 2] ЗАДАЧИ С НЕДЕЛИМОСТЯМИ 33
Cj — эффект от использования единицы оборудова-
ния /.
Пусть все типы оборудования являются неделимыми,
т. е. могут быть использованы лишь в целых неотрица-
тельных количествах. Целью является составление про-
граммы использования оборудования, удовлетворяющей
ограничениям по себестоимости и дающей максимальный
суммарный эффект. Обозначим через искомые коли-
чества единиц оборудования типа /. Тогда задача све-
дется к модели (2.1) — (2.4).
Отметим еще, что в последней интерпретации могут
присутствовать также и ограничения сверху на количе-
ства единиц оборудования каждого типа. Иными сло-
вами, могут быть заданы также целые неотрицательные
числа kjt ./=1,2, ..., п\ в этом случае к условиям
(2.1) — (2.4) следует добавить еще ограничения
х;<&7, 1» 2, ..п. (2.5)
Указанные две интерпретации задач с неделимостями
(планирование выпуска неделимых видов продукции и
планирование использования неделимых производствен-
ных факторов) являются в определенном смысле универ-
сальными.
2.2. Опишем теперь одну конкретную целочисленную
модель, явившуюся первой опубликованной моделью це-
лочисленной задачи линейного программирования [63].
Речь идет об оптимальной загрузке бомбардировщиков
различных типов бомбовым запасом с целью максими-
зации суммарного эффекта данной системы боевых
операций. Обозначим через Z=l,2, ..., т типы бомб,
через j = 1, 2, ..., и’—типы бомбардировщиков, через
£=1,2, ...» р —боевые операции. Введем также сле-
дующие величины:
bi — имеющийся запас бомб типа
aik ~ эффективность бомбы типа i на операции £,
tij — планируемое число боевых вылетов бомбарди-
ровщика /,
wk — «вес», приписываемый командованием опера-
ции k.
3 А. А. Корбут, Ю. Ю. Финкельштейн
34
МаТёмАтичёскиё модёлй
(ГЛ. 2
Искомыми величинами здесь являются:
Хцк — количество бомб типа i, подлежащее загрузке
в боковой бомбодержатель бомбардировщика
/ при его использовании в операции Л,
yijk — аналогичная величина для центрального бомбо*
держателя.
Задача, таким образом, сводится к максимизации
суммарного эффекта
т п р
2 2 i ^ikwknj (2xijk + УЦк) (2-6)
i = l / = 1 fc=i
при ограничениях
п р
^’^nj^Xijk + yijkX.bi, i=l, 2, .... т, (2.7)
x«fc>0, Xijk, уцк — целые числа. (2.8)
Разумеется, к ограничениям (2.7) могут быть присоеди-
нены и другие реально возникающие ограничения.
Не вдаваясь в критику этой весьма упрощенной мо-
дели, отметим, что во время ее опубликования (1955 г.)
основным препятствием для ее решения и использования
было именно требование целочисленности всех перемен-
ных.
2.3. Приведем теперь один важный и наиболее про-
стой вариант линейной модели с неделимостями, ши-
роко известный под названием задачи о ранце. Имеется
п предметов; заданы величины:
а} — вес предмета /,
Cj — ценность предмета /.
Требуется загрузить ранец, «грузоподъемность» которого
равна Д, набором предметов с максимальной суммарной
ценностью. Если ввести переменные /=1, 2, ..., п,
имеющие следующий смысл:
| 1, если j-й предмет подлежит загрузке,
( 0 в противном случае,
то задача о ранце сведется к максимизации
CiX2 + с2х2 -г ... Т Спхп (2.10)
ЗАДАЧИ КОМБИНАТОРНОГО ТИПА
35
§ 3]
при условиях
г о,
Xj = j j / = 1, 2, ..., n,
+ a2x2 + ... + anxn < A.
(2.П)
(2.12)
В других вариантах этой модели может фигурировать
несколько ограничений вида (2.12) (например, ограни-
ченным может быть не только суммарный вес загружае-
мых предметов, но и их суммарный объем и т. п.). Та-
кие задачи довольно естественно называть многомер-
ными задачами о ранце. Если, кроме того, предположить,
что каждый предмет может загружаться не в одном, а
в нескольких экземплярах, то ограничение (2.11) заме-
нится условием неотрицательности и целочисленности
всех переменных. Легко понять, что в последнем случае
многомерная задача о ранце эквивалентна общей пол-
ностью целочисленной задаче линейного программиро-
вания с неотрицательной матрицей ограничений.
§ 3. Задачи комбинаторного типа
3.1. В середине 50-х годов была обнаружена возмож-
ность применения методов линейного программирования
к некоторым экстремальным задачам комбинаторного
характера. В подобных задачах ищется экстремальное
значение некоторой целочисленной функции, заданной
на конечном множестве, либо сами элементы конечного
множества, доставляющие экстремум этой функции. Для
того чтобы «погрузить» подобную задачу в задачу ли-
нейного программирования, элементы конечного множе-
ства интерпретируют как точки евклидова пространства;
таким образом, наша «целевая» функция становится
линейной формой. После этого естественно рассматри-
вать задачу нахождения экстремума этой целевой функ-
ции на выпуклой оболочке заданных точек (иногда ока-
зывается удобным вводить даже более широкий выпук-
лый многогранник). Действительно, экстремум линейной
формы на многограннике достигается в одной из вершин,
а вершины входят в множество всех рассматриваемых
5*
36
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
элементов. Последняя задача является задачей линей-
ного программирования.
Разумеется, указанная интерпретация элементов рас-
сматриваемого множества (а тем самым и постановка
соответствующей задачи линейного программирования)
может быть выполнена, вообще говоря, самыми различ-
ными способами. Этот выбор пытаются провести так,
чтобы при нахождении решения ограничиться лишь точ-
ками с целочисленными координатами; в этом случае
задача допускает комбинаторную интерпретацию.
В первых рассмотренных таким образом задачах це-
лочисленность решения автоматически следовала из
того, что соответствующие задачи линейного программи-
рования оказывались частными случаями транспортной
задачи; впрочем, эта целочисленность легко устанавли-
валась и непосредственно.
Отметим еще, что при таком подходе часто оказы-
вается нужным переход к двойственной задаче, которая
во многих случаях также имеет непосредственный ком-
бинаторный смысл.
В нескольких статьях сборника «Линейные неравен-
ства и смежные вопросы» [112] эти идеи применялись
к задаче о системе различных представителей, к доказа-
тельству теоремы Дилворта о разбиении конечных ча-
стично упорядоченных множеств на цепи и к задаче о
максимальном потоке и минимальном разрезе в сети.
Последняя работа послужила одним из источников са-
мостоятельной изящной теории потоков в сетях, наи-
более полно изложенной в монографии Форда и Фал-
керсона [75] (см. также книгу Гейла [76], гл. V).
Несколько отступая от истории развития предмета,
проиллюстрируем описанный подход не на перечислен-
ных задачах (требующих введения некоторых вспомога-
тельных понятий), а на более простой комбинаторной
задаче, известной под названием задачи о назначениях
(задачи выбора).
Эта задача состоит в следующем. Пусть имеется п
работ и п кандидатов для выполнения этих работ. На-
значение кандидата i на работу / связано с затратами
Cij (i, /=1,2, ..., п). Требуется найти назначение кан-
дидатов на все работы, дающее минимальные суммар-
ЗАДАЧИ КОМБИНАТОРНОГО ТИПА
37
§ 3]
ные затраты; при этом каждого кандидата можно на-
значить только на одну работу и каждая работа может
быть занята только одним кандидатом.
Иначе говоря, решение этой задачи представляет
собой перестановку (рь р2, рп) чисел (1, 2, и);
каждое из производимых назначений описывается соот-
ветствием i —► Pi (i=l, 2, п). Указанные условия
единственности при этом автоматически выполняются,
и нашей целью является минимизация суммы
п
ЪаР1 (3.1)
по всем перестановкам (pi, р2, ...» рп).
Перед нами типичная экстремальная комбинаторная
задача. Ее решение путем прямого перебора, т. е. вы-
числения значений функции (3.1) на всех перестанов-
ках и сравнения, практически невозможно при сколько-
нибудь больших п, поскольку число перестановок равно
п\ = 1 • 2 • 3 • • *(п — 1)п. Попытаемся свести дело к ли-
нейному программированию.
Конечное множество, на котором задана целевая
функция (3.1), представляет собой множество всех пе-
рестановок чисел (1, 2, ..., п). Как известно, каждая
такая перестановка может быть описана точкой в
п2-мерном евклидовом пространстве; эту точку удобнее
всего представить в виде nXn-матрицы Х=||х^||. Эле-
менты Xjj естественно интерпретировать следующим об-
разом:
х ( 1» если кандидат назначается на /-ю работу,
lJ I 0 в противном случае.
(3.2)
Элементы матрицы X должны быть подчинены двум
условиям:
1=1,2,..., И (3.3)
и /~1
xij — 1, j — I, 2, ..., п. (3.4)
38
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
Условия (3.3) и (3.4) говорят о том, что в каждой
строке и в каждом столбце матрицы X имеется ровно
по одной единице. Говоря неформально, условие (3.3)
означает, что каждый кандидат может быть назначен
только на одну работу, а условие (3.4) — что каждая
работа предназначена только для одного кандидата.
(Матрицу перестановок можно получить из единичной
матрицы путем некоторой перестановки ее строк.)
Теперь задача заключается в нахождении чисел
удовлетворяющих условиям (3.2), (3.3), (3,4) и мини-
мизирующих суммарные затраты (3.1), которые теперь
можно переписать в виде
п п
2 2'^. (3.5)
Казалось бы, что к полученной задаче методы линей-
ного программирования непосредственно применить
нельзя, ибо в силу условий (3.2) она формально яв-
ляется целочисленной. Заменим условие (3.2) на усло-
вие неотрицательности переменных
(3.2')
Тем самым мы получаем обычную задачу линейного
программирования. Подчеркнем, что хотя явное требо-
вание целочисленности мы сняли, нашей целью яв-
ляется все же получение решения из нулей и единиц,
ибо только такое решение имеет комбинаторный смысл.
Но в нашем случае требование целочисленности (3.2)
будет выполняться автоматически, ибо задача о назна-
чениях представляет собой частный случай транспортной
задачи (в котором m==n, = &j = 1).
Впрочем, как часто бывает в подобных задачах, целочисленность
решения можно установить специально для задачи о назначениях,
без ссылки на транспортную задачу. Для этого введем одно опреде-
ление. Квадратная матрица с неотрицательными элементами, суммы
которых по строкам и столбцам равны единице, называется бисто-
хастической. Иначе говоря, бистохастические матрицы описываются
условиями (3.2'), (3.3), (3.4). Известная теорема Г. Биркгофа [59]
устанавливает, что выпуклая оболочка множества бистохастических
матриц (в п2-мерном пространстве) имеет в качестве своих крайних
точек множество матриц перестановок. Наша же задача как раз и
состоит в минимизации линейной формы (3.5) на множестве всех
§ 3j ЗАДАЧИ КОМБИНАТОРНОГО ТИПА 39
бистохастических матриц. Ясно, что этот минимум достигается *1 од-
ной из крайних точек соответствующего выпуклого многогранника.
Поскольку же, согласно теореме Биркгофа, этими крайними точками
являются матрицы перестановок, то наша цель целочисленность
решения — достигается автоматически.
Теперь мы перейдем к рассмотрению более общих
комбинаторных задач, уже не сводящихся к транспорт-
ной.
3.2. Мы начнем с рассмотрения известной задачи о
бродячем торговце (задачи коммивояжера). Она со-
стоит в следующем. Имеется п+1 город; задана мат-
рица C=lkijll расстояний между этими городами. Выез-
жая из исходного города (будем приписывать ему
номер 0), коммивояжер должен побывать во всех осталь-
ных городах ровно по одному разу и вернуться в го-
род 0. В каком порядке следует объезжать города, что-
бы пройденное суммарное расстояние было минималь-
ным?
Эта задача несколько напоминает описанную в
п. 3. 1. задачу о назначениях; действительно, речь идет
о минимизации суммарного расстояния, которое имеет
вид (3.5), но уже не по всем матрицам перестановок,
а лишь по матрицам циклических перестановок. Послед-
нее обстоятельство резко усложняет задачу. Ее формаль-
ную постановку удобно дать в терминах целочисленного
линейного программирования. Из известных формули-
ровок мы опишем здесь лишь одну (см. [117]), наиболее
экономную в смысле количества переменных и ограни-
чений и допускающую различные обобщения.
Введем переменные
[ 1, если коммивояжер из города i
xtj = < переезжает в город /, 6)
[ 0 в противном случае,
где Z, / = 0, 1, 2, ..., п. Рассмотрим задачу минимизации
п п
2 (3.7)
М /=0
40
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
(ГЛ. 2
при условиях
2^=1, /=1, 2, (3.8)
i=O J
2 %ii = 1 , I — 1, 2, .... n, (3.9)
l-o
Ui — Uj + nXij^n — i, j=l, 2, ..., n; i=£j. (3.10)
Здесь переменные в (3.10) принимают произвольные
вещественные значения (впрочем, ниже будет показано,
что,' не умаляя общности, их можно считать и целыми
неотрицательными). Легко убедиться, что задача (3.6) —
(3.10) эквивалентна задаче коммивояжера. Действи-
тельно, условия (3.8) говорят о том, что коммивояжер
выезжает из каждого города (кроме начального) ровно
один раз; аналогично (3.9) показывает, что коммивоя-
жер въезжает в каждый город (кроме начального)
ровно один раз.
Если бы мы ограничились условиями (3.8) и (3.9),
то наша задача была бы попросту задачей о назначе-
ниях, решение которой не обязано быть цикличным.
Иначе говоря, путь коммивояжера может распасться на
несколько не связанных между собой подциклов. Для
устранения этой возможности служит условие (3.10).
Действительно, если бы мы получили решение, содер-
жащее более одного подцикла, то нашелся бы подцикл т
с k < п звеньями, не проходящий через город 0. Склады-
вая все неравенства (3.10) при хц=1 вдоль подцикла т,
мы получили бы бессмысленное неравенство nk^~(n—1)&
(все разности щ—щ при этом взаимно уничтожаются).
Таким образом, любой путь коммивояжера состоит из
одного цикла.
Осталось еще показать, что для любого цикла, на-
чинающегося из пункта i=0, можно найти и{, удовлет-
воряющие (3.10). С этой целью положим ut=p, если го-
род i посещается коммивояжером на р-м шаге объезда,
р = 1, 2, ..., п. Из этого построения следует, что
щ — Uj^.n — I для всех i и /; таким образом, условия
(3.10) выполняются для всех х«=0. При Хц = 1 эти уело-
ЗАДАЧИ КОМБИНАТОРНОГО ТИПА 41
§ 3]
вия превращаются в равенства: в силу (3.6) и опреде-
ления Ui мы имеем
Ut — Uj + nXjj = p — (р+1) +п = п— 1.
Описанная модель имеет и прикладное значение:
различные ее варианты могут возникать, например, в
задачах, связанных с определением маршрутов развозки
готовой продукции потребителям и т. п.
3.3. Интересный класс комбинаторных задач состав-
ляют так называемые задачи о покрытии, привлекшие к
себе за последние годы большое внимание. Типичная
задача о покрытии состоит в следующем. Пусть дан
граф Г. Требуется найти его минимальное покрытие,
т. е минимальный набор ребер графа, такой, что любая
вершина графа инцидентна некоторому ребру, входя-
щему в покрытие.
Поставим задачу формально. Будем обозначать вер-
шины графа через i (i=l, 2, ..., m), а его ребра — че-
рез / (/=1, 2, ..., п). Граф характеризуется матрицей
инциденций вершин и ребер, т. .е. /пХп-матрицей
Д = ||а0||, где
( 1, если вершина i инцидентна ребру /,
~ ( л (3.11)
1 0 в противном случае.
Введем булевы переменные Xj, /=1,2, ..., п, имеющие
следующий смысл:
f 1, если ребро / войдет в покрытие,
Xj ( 0 в противном случае. (3-12)
Нахождение минимального покрытия эквивалентно ми-
нимизации
п
2ху. (3.13)
/-1
Поскольку набор х,- должен описывать покрытие, сле-
дует наложить дополнительное требование, чтобы каж-
дая вершина была инцидентна хотя бы одному ребру
42
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
покрытия. Соответствующие условия, очевидно, имеют
вид
f=l, 2, (3.14)
Таким образом, комбинаторная задача о покрытии гра-
фа сведена к линейной дискретной задаче (3.12) — (3.14).
Более общая постановка вопроса может заключаться
в следующем. Пусть имеется конечное множество
S={oi, о2, ...» от} и некоторое конечное семейство его
подмножеств Sj, /=1, 2, ..., п. Требуется найти мини-
мальное покрытие множества S, т. е. минимальный на-
бор подмножеств Sj, обладающий тем свойством, что
любой элемент множества S принадлежит хотя бы од-
ному из выделяемых подмножеств.
Эта задача трактуется аналогично: введем матрицу
«инциденций» llaijll, где аг;=1, если ог<5;, и 0 в про-
тивном случае. Определим переменные х,, равные 1, если
Sj войдет в покрытие, и 0, если Sj в него не войдет. Та-
ким образом, мы приходим к задаче (3.12) — (3.14).
Иногда рассматривается также так называемая
взвешенная задача о покрытии. Она заключается в ми-
нимизации-
^iCjXj (3.13')
при условиях (3.12) и (3.14). Здесь q, /=1,2, ..., п,
представляют собой «веса», приписанные различным
элементам покрытия.
Прикладные аспекты моделей покрытия будут рас-
смотрены в § 3 гл. 3.
Отметим также, что трактовке с помощью моделей
дискретного программирования поддаются и многие дру-
гие экстремальные задачи на графах. Например, Бессьер
[58] указал способ нахождения хроматического числа
графа с помощью целочисленной задачи линейного про-
граммирования.
3.4. В заключение этого параграфа опишем еще один
класс задач, которые выше были охарактеризованы как
задачи на конечных множествах. В идейном отношении
ЗАДАЧИ КОМБИНАТОРНОГО ТИПА
43
§ 3]
они примыкают к комбинаторным задачам; более того,
их можно считать наиболее общим случаем экстремаль-
ных комбинаторных задач.
Рассмотрим общую задачу математического програм-
мирования (для краткости мы не будем выписывать ее
формулировки), в которой некоторая переменная х/„
подчинена дополнительному требованию дискретности.
Это значит, что может принять значение только из
некоторого заданного конечного множества:
xla<={k}t, kl, .... kft. (3.15)
Задачу с условием дискретности (3.15) можно свести к
частично целочисленной задаче математического про-
граммирования. Именно, введем дополнительные булевы
переменные yi,yz, •••> Ур и заменим (3.15) двумя усло-
виями:
хь = £/о!Л + ^У2 + ... + kfyp (3.16)
и
= { /=1, 2, ...,р; yt+y2+ ... +уР=\. (3.17)
Легко видеть, что (3.16) и (3.17) эквивалентны (3.15).
Действительно, согласно (3.17) лишь одно из будет
равно единице, а тогда из (3.16) мы получаем нужное
условие.
Разумеется, если условия дискретности вида (3.15)
наложены на несколько переменных (или на все пере-
менные), то указанную конструкцию следует воспроиз-
вести для каждого такого условия.
Рекомендуем читателю сравнить приведенное по-
строение с проводимым в § 4. Параллель станет ясной,
если мы отметим, что условие дискретности (3.15) по
сути дела представляет собой р-кратную альтернативу
вида «х/о = k}09 или х/о = k\9 или ... х/о = &?0».
Отметим, что описанный прием сведения дискретных
задач к целочисленным имеет в основном теоретический
интерес, ибо в настоящее время методы отсечения рас-
пространены непосредственно на дискретные задачи.
44
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
§ 4. Задачи на невыпуклых и несвязных областях
В этом параграфе описываются некоторые модели, в
которых к обычным условиям задачи линейного програм-
мирования присоединены некоторые дополнительные
условия, превращающие область допустимых решений
в невыпуклую или несвязную. Будут указаны приемы,
позволяющие путем введения дополнительных целочис-
ленных переменных сводить подобные «задачи линей-
ного программирования на неклассических областях» к
частично целочисленным задачам линейного программи-
рования. Для сокращения записи не будем выписывать
стандартные условия задачи, приводя лишь необходимые
дополнительные ограничения. Отметим, что целочислен-
ность основных переменных здесь не предполагается.
4.1. Рассмотрим дихотомические задачи. Предполо-
жим, что к задаче линейного программирования присое-
динены условия вида XfoxZti+i = 0 или ограничения более
р
общего вида = O (р^.п — 1). В силу неотрица-
тельности переменных задачи это означает, что в любом
допустимом плане задачи линейного программирования
по крайней мере одна переменная
2>' из каждой отмеченной пары должна
равняться нулю. На первый взгляд
кажется, что добавление к задаче
j линейного программирования по-
добных условий превращает ее в
задачу нелинейного программирова-
------- > ния. В действительности же по-
0 / добные условия могут настолько
Рис. 2.4.1. изменить характер задачи, что при-
менение каких бы то ни было стан-
дартных методов приведет в лучшем случае лишь к
локальному оптимуму.
Приведем простейший пример. Присоединяя к усло-
виям неотрицательности переменных xj, х2 условия
Х1Х2==0, Xi + X2^ 1,
получаем несвязную область, изображенную на рис. 2.4.1
жирными линиями. Если в условия входит равенство
§4]
ЗАДАЧИ НА НЕВЫПУКЛЫХ И НЕСВЯЗНЫХ ОБЛАСТЯХ
45
нулю для р попарных произведений переменных, можно
получить несвязную область, состоящую из 2? частей.
Задачи математического программирования с допол-
нительными условиями типа «либо — либо» (альтерна-
тивными условиями) будем называть дихотомическими.
Оказывается, что подобные задачи могут быть сведены
к частично целочисленным. Проиллюстрируем несколько
наиболее типичных приемов, используемых при подоб-
ном сведении.
Пусть некоторая переменная х^ задачи математиче-
ского программирования ограничена сверху:
О<х/о<й/о (4.1)
и, кроме того, на нее наложено ограничение
либо Х/„^а, либо Xj^b, (4.2)
где 0^а<Введем дополнительную целочислен-
ную переменную у^, принимающую два значения: 0 и 1.
Заменим ограничения (4.1), (4.2) следующими:
f о.
М 1.
(4.3)
Отметим, что дополнительная переменная у^ в целевую
функцию не включается. Легко видеть, что система не-
равенств (4.3) относительно х/о и дополнительной цело-
численной переменной у^ эквивалентна (4.1) и альтер-
нативному условию (4.2). В самом деле, если у^ при-
мет в решении значение 1, то (4.3) сведется к Х/о^О,
при *//о = О будем иметь x^^b, x^^k^.
В случае нескольких ограничений типа (4.2) нера-
венства (4.3) выписываются для каждого из них.
Рассмотрим теперь более общий случай. Пусть в за-
даче математического программирования с областью G
допустимых значений переменных хь х2, .... хп нало-
жено дополнительное альтернативное условие
либо h (xh х2,..., х„) > 0, либо k (хь х2,..., х„) 0, (4.4)
46
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
(ГЛ. 2
где й(хь х2, ..хп) и й(хь х2, ...» хп)—заданные
функции.
Предположим, что нам известны числа й*, й*,
представляющие собой нижние границы функций
й(хь х2, ..хп) и й(хь х2, хп) на множестве G.
(Интерес представляет случай, когда й* и й* отрица-
тельны.) Если числа й* и й* неизвестны, то их можно
определить, решая задачи минимизации й(хь х2, ..., хп)
и й(хь х2, ..., хп) на области G.
Введем теперь вспомогательную целочисленную пере-
менную у, принимающую значения 0 и 1, и рассмотрим
систему неравенств
ft(xh х2, .... х„)-й^>0, |
k(xXt х2, x„)-fe,(l-у)>0. f
Дополнительная переменная у в целевую функцию не
входит. Система неравенств (4.5) эквивалентна альтер-
нативному условию (4.4); действительно, если у примет
значение 1, то (4.5) сведется к автоматически выпол-
няющемуся соотношению /i(xb х2....xn)> h* и желае-
мому неравенству &(xi,x2, ..., хп)^>0; при у=0 мы по-
лучим соответственно Л(хьх2....хп)>0 и /г(Х],х2, ...
• • ч %п)
В дальнейшем мы еще встретимся с применением
описанного приема (см. § 4 гл. 3).
4.2. Рассмотрим задачу математического программи-
рования с системой ограничений
gi(xi, х2, ..., х„)>0,1
g2(xt, х2, ..., х„)>0, ( (4б)
-'•2> •••> -U0. 1
Обозначим определяемую ими область через G. Тре-
буется найти решение, в котором будут выполняться по
меньшей мере k из этих условий *). Пусть, как и выше,
известны (или вычислены) числа g*i— нижние границы
функций gi(xltx2, ..., xn), i=l, 2, ..., т, на множе-
стве G. Введем дополнительные целочисленные перемен-
*) Задача с многократными альтернативами,
J
ЗАДАЧИ НА НЕВЫПУКЛЫХ И НЕСВЯЗНЫХ ОБЛАСТЯХ 47
ные уь /=1> 2, ...» т, принимающие значения 0 и
рассмотрим систему ограничений
gi(xh х2, ...» хп) — g^yi >0,
g^Xj, х2, .... х„)- g*2y2 >0, .
1, и
(4.7)
gm(xi, х2, .... x„)-g4.„r/ra>0,
где переменные yt подчинены условию
yi = l I i=l, 2, • т‘, У1 + У2+ •+Ут<т-к. (4.8)
Условия (4.7), (4.8) обеспечивают требуемое; это уста-
навливается рассуждением, которое уже можно считать
стандартным.
Если в решении требуется выполнение ровно k из
условий (4.6), то неравенство в (4.8) следует заменить
равенством.
Одна конкретизация такой модели, представляющая
самостоятельный интерес, указана Динкельбахом и
Стеффенсом [70]. Пусть в обычной задаче линейного про-
граммирования наложено дополнительное требование
следующего типа: в окончательном решении отличными
от нуля должны быть не более k компонент (разумеется,
k<m). Предположим, что для всех переменных известны
(или могут быть найдены) верхние границы (4.1). Вве-
дем целочисленные переменные 4/j, /=1,2, ..., п, при-
нимающие значения 0 и 1. Тогда сформулированное
выше требование реализуется следующей системой до-
полнительных условий:
( о,
Xj<kjyj, *// = •! J /= 1, 2.......п, (4.9) •••
••• + Уп^к- (4.10)
Другой вариант подобных задач с ограничением на
число применяемых способов заключается в следующем.
Пусть множество индексов переменных Л^={1, 2, ..., п]
разбито на два непересекающихся подмножества:
^=Ni\jN2, причем в окончательном решении отличными
от нуля могут быть либо переменные из TVj, либо
48
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
переменные из Снова предполагается наличие верх-
них границ (4.1). Здесь нужно ввести две целочисленные
переменные у2. Нужные нам условия принимают вид
Xj^kjih, j^Nf, Xj^kjy2, j^N2, (4.11)
У2 = | j’ У\ + У2= 1- (4-12)
4.3. Рассмотрим некоторые задачи с невыпуклыми
областями. Введение дополнительных целочисленных
/7 a, kj
Рис. 2.4.2.
граммирования
переменных x/t,
переменных позволяет рассма-
тривать в рамках дискретного
программирования задачи оп-
тимизации на невыпуклых
областях, представляющих со-
бой объединение выпуклых
многогранников. Эти области
также описываются некото-
----рыми альтернативными усло-
виями.
Рассмотрим в качестве при-
мера задачу линейного про-
с дополнительными условиями на пару
X/t^£H X/.^fe2,
либо Х/1^л1, либо
(4.13)
где ai<kly az<k2. В плоскости X/,, Х/2 условия (4.13)
описывают L-образную область, изображенную на
рис. 2.4.2.
Вводя дополнительную целочисленную переменную у,
мы можем охарактеризовать эту область системой не-
равенств
0<х/, <aI +(fc, — at)y, 0^xl2^k2-(k2-a2)y, (4.14)
где у = 0 или 1. При у=] неравенства (4.14) сводятся
к 0^х/2^а2, а при z/ = 0 мы имеем
0^xh^.ab 0<х/2<&2.
Ограничения (4.13) можно интерпретировать также
несколько иным образом. Именно, они равносильны
тому, что искомая точка должна принадлежать одному
из двух прямоугольников; либо прямоугольнику
§ 4)
ЗАДАЧИ НА НЕВЫПУКЛЫХ И НЕСВЯЗНЫХ ОБЛАСТЯХ
49
0<Х/,<&1> 0С^/2^а2, либо прямоугольнику 0^Х/,^а<,
0^ Xj2 k2. В более общем случае мы можем встре-
титься с системой пар областей (Г|, Ti), (Т2, Т2), ...
(Тр, т'р), причем решение должно принадлежать
р р
либо fl Th либо fl Т'{. Пусть для каждой пары(7\, Ti)
i=i «=|
область Ti описывается системой неравенств
g'(xP х2.....
^(х,, х2, ..., х„)>0,
(4.15)
g'(x|t х2, .... х„)>0,
а область Т/— системой
/г[(хь х2, ..х„)>0,
h2(xlt х2, .... х„)> 0,
(4.16)
hr (Хь Х2, . . ., Хц) 0.
Пусть, кроме того, известны числа g[{ — нижние гра-
ницы для функций g/(xp х2, ..., хД /=1, 2, .... k, и
h[s— нижние границы для функций Aj(xp х2, х„),
s=l,2.....г. Введем дополнительную целочисленную
переменную у, принимающую значения 0 и 1. Тогда наше
требование сведется к системе (i= 1, 2,..., р)
£1(хо х2...
g'(xp х2, .... xJ-g'2y>0,
^(*Р *2- •••- Xn)-gl*ky>^
hl,(xlt х2, ..., Хп)-Й^(1 -г/)>0,
А«(хр х2, .... хп)-й»2(1 -у)>0,
(4.17)
hr(.Xl' Х2..Xn)-h*r(l
У =
0,
1.
4 А. А. Корбут, Ю. Ю. Финкельштейн
50
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
Если теперь г/ = 0, то первая серия неравенств из
(4.17) превращается в неравенства gli (xj, х2> ...» хп)>0,
/=1,2, k, Z=l,2, ..., р (т. е. (хьх2, ...» хп)<=
р
<= П 7\), а вторая серия выполняется автоматически;
i—1
при у=\ ситуация будет обратной.
Рекомендуем читателю в качестве упражнения опи-
сать область, представляющую собой объединение двух
треугольников (рис. 2.4.3).
4.4. Описанная выше трактовка альтернативных усло-
вий может быть использована для рассмотрения услов-
ных, или логических ограничений. Именно, пусть в не-
которой задаче математического программирования, по-
мимо обычных ограничений, имеется еще условие вида
если h(xlt х2, ..., х„)>0, то k(x{, х2, ..., xrt)>0, (4.18)
где h(xlt х2,..., хп) и k(xh х2,... ,хп)— заданные функ-
ции. Здесь предполагается также, что для функции
h(xi,x2, ..., хп) известна ее верхняя граница h*, а для
функций h (xi, х2,..., хп) и &(Х],х2..хп)—их ниж-
ние границы й.» и й.х„ Условное ограничение (4.18) мож-
но, очевидно, переписать в виде альтернативного усло-
вия
либо й(х,, х2, ..., х„)>0, й(хр х2, ..., х„)>0,
либо й(хр х2, ..., хп) <0. \ /
ЗАДАЧИ С РАЗРЫВНОЙ ЦЕЛЕВОЙ ФУНКЦИЕЙ
51
Теперь используем уже известный нам прием: после вве-
дения дополнительной переменной у, принимающей зна-
чения 0 или 1, (4.19) перепишется в виде системы нера-
венств
h(x}, х2....xn)^hty,
k(xu х2, xn)^k*y,
/i(Xi, х2, ..., xn)^.h (I — у).
(4.20)
Отметим попутно, что первое из неравенств (4.20)
записано со знаком вместо знака >, ибо при
/г(хь х2,... ,хп) =0 условие k(xit х2,..., хп)Х) будет
выполняться автоматически при у=Л.
Этот прием несложно перенести, например, на случай,
когда логическое ограничение имеет более сложный вид:
если A(xt, х2, .... х„)>0,
ТО k{X\, х2, ..., хп)1>0,
если /i(xlt х2, .... хп)<0,
то /(хь х2........................х„)^0.
(4.21)
Вводя три дополнительные переменн&е у\, уг, уз, прини-
мающие значения 0 или 1, мы можем переписать (4.21)
в виде системы (обозначения не требуют пояснений)
х2, .... х„)</г*(1 -у3),
h»yt<h(xi, х2, .... х„)</г*«/2,
fc(xt, х2, ...» х„)>^1(
/(х„ х2, .... х„)>/^2, {4<22)
1 °-
У( = { j У\ + У2 = 1 + Уз-
Проверку эквивалентности (4.21) и (4.22) предоставим
читателю.
§ 5. Задачи с разрывной целевой функцией
5.1. Из задач этого типа наиболее важной и изучен-
ной является так называемая транспортная задача с
фиксированными доплатами. Пусть, как в обычной
транспортной задаче, через 1, 2,..., т обозначены
4*
52
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
пункты производства некоторого однородного груза, че-
рез /=1, 2, ..., п — пункты его потребления. Даны вели-
чины
сц — объем производства в пункте производства f,
bj — объем потребления в пункте потребления /.
Ищутся величины хц (объемы перевозок из пункта i
в пункт /), удовлетворяющие естественным транспорт-
ным ограничениям
п т
хи>0, ^Хи=й1, ^Xij = bj, р
i=l, 2, .... т, j = 1, 2, .... п,
и минимизирующие функцию
т п
S S (5.2)
Каждое Cijixtj) в (5.2) имеет вид
с (х„)= . (5.3)
' ( CijXij + di), хи>0.
Числа Сц естественно интерпретировать как затраты
на перевозку единицы груза из i в /. Под da можно под-
разумевать, например, плату за аренду транспортных
средств, не зависящую от их загрузки, либо затраты на
строительство магистрали от каждого пункта i до каж-
дого пункта /, не зависящие от будущих грузопотоков.
Естественно считать все ci} и da неотрицательными.
Задачу (5.1) — (5.3) называют транспортной задачей
с фиксированными доплатами, или неоднородной транс-
портной задачей. Ясно, что если все она превра-
щается в обычную транспортную задачу. В противном
же случае эта задача из-за разрывности каждого сла-
гаемого (5.3) в нуле вообще выпадает из рамок линей-
ного программирования; однако путем введения допол-
нительных целочисленных переменных ее удается свести
к частично целочисленной задаче линейного программи-
рования.
Способ такого сведения был указан Балинским [49].
Он состоит в следующем. Найдем величины
Mij = min bj}, i = 1, 2, ..., m, j = 1, 2, ..., n. (5.4)
§ SJ
ЗАДАЧИ С РАЗРЫВНОЙ ЦЕЛЕВОЙ ФУНКЦИЕЙ
53
Рассмотрим задачу минимизации
(5.5)
при условиях (5.1) и дополнительном условии
( О,
= | । (5.6)
Частично целочисленная задача (5.5), (5.1), (5.6) ока-
зывается эквивалентной исходной задаче (5.1)—(5.3).
Действительно, при уц—О в силу (5.6) автоматически
будет и Xij=0, а при уц= \ неравенства (.5.6) становятся
излишними, так как в любом допустимом плане транс-
портной задачи условия Хц^-Мц выполнены всегда. На-
оборот, если в некотором оптимальном плане задачи
(5.5), (5.1), (5.6) будет хц=0, то соответствующее уц
должно быть нулем (если оно окажется положительным,
то план не будет оптимальным, ибо, уменьшив это y{j,
мы не нарушим ограничений и придадим целевой функ-
ции (5.5) меньшее значение). Наконец, если %ц>0, то в
силу условий (5.6) уц может быть только единицей.
Таким образом, целочисленные переменные уц в этой
постановке согласуют строительство магистралей между
i и / (или, в зависимости от интерпретации, аренду
транспорта для этой магистрали) и осуществление пере-
возок между i и /.
Основанный на этом сведении приближенный метод
решения транспортной задачи с фиксированными допла-
тами будет описан в § 1 гл. 16.
5.2. Рассмотрим теперь более общую модель с неод-
нородной разрывной целевой функцией. Ее удобно будет
сформулировать в терминах, близких к задаче о смесях,
хотя такая интерпретация не является единственно воз-
можной. Обозначим через /= 1, 2,.... л компоненты сме-
си, а через /=1,2, ...,т — интересующие нас элементы
в этих компонентах. Заданы следующие величины:
Дц — содержание элемента i в единице компоненты /,
^—ограничения снизу на содержание каждого эле-
мента в смеси,
54
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
Cj — стоимость закупки единицы компоненты /,
dj — фиксированная стоимость заказа компоненты /,
не зависящая от заказываемого количества.
Требуется составить наиболее дешевую смесь, удов-
летворяющую заданным ограничениям. Обозначим иско-
мые количества компонент через Xj. Тогда задача сведет-
ся к минимизации
п
(5.7)
при условиях
п
' хуО0, /=1, 2, ..., т, (5.8)
/=1
где
/ \ f = О’ /х о)
Г/(х7) = { . . . n
7 J I CjXj + dj, X;>0.
Подчеркнем, что требование целочисленности на пере-
менные xj не накладывается.
Эту задачу можно свести к общей частично целочис-
ленной задаче линейного программирования посредством
приема, описанного в п. 5.1. Предположим, что в допол-
нение к условиям (5.8) заданы еще верхние границы для
переменных:
Xj^kj, /=1, 2, п (5.10)
(или же эти границы могут быть определены из физиче-
ской сущности задачи хотя бы грубым образом). Рас-
смотрим задачу минимизации
п
'Zcjx. + djyj (5.11)
/-1
при условиях (5.8) и дополнительном условии
Эквивалентность частично целочисленной задачи (5.11),
(5.8), (5.12) и исходной задачи устанавливается рассуж-
дениями, совершенно аналогичными проведенным в
п. 5.1; их можно предоставить читателю.
55
НЕКОТОРЫЕ МНОГОЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ
§ б]
Отметим, что возможность сведения задач с разрыв-
ной целевой функцией к частично целочисленным бази-
руется на наличии верхних границ для переменных.
Этот прием вообще является характерным для целочис-
ленного программирования; ср., например, построения,
проводившиеся в § 4. В транспортной задаче эти грани-
цы определяются внутренним образом (см. (5.4)); в об-
щей задаче их нужно постулировать или определять
особым образом. В некоторых случаях границы вычис-
ляются просто; например, если все а^>0, то в качестве
kj можно взять
= j=l, 2, п, (5.13)
где минимум берется по всем I, для которых аг5>0.
§ 6. Некоторые многоэкстремальные задачи
6.1. В гл. 1 мы выделили класс так называемых регу-
лярных задач математического программирования. Грубо
говоря, в этот класс входят задачи, для которых любой
локальный оптимум целевой функции на множестве до-
пустимых планов является одновременно и глобальным
оптимумом. Таковы, например, задачи линейного про-
граммирования. В нелинейном программировании регу-
лярными являются задачи, в которых на выпуклом мно-
жестве допустимых планов минимизируется выпуклая
функция (или максимизируется вогнутая функция). По-
добные задачи обычно объединяются под названием за-
дач выпуклого программирования. В настоящее время
решение задач линейного и выпуклого программирова-
ния принципиальных затруднений уже не вызывает.
Положение резко усложняется при переходе к нерегу-
лярным задачам. Среди них мы выделили особо дискрет-
ные задачи математического программирования, кото-
рым и посвящена настоящая книга. С другой стороны,
нерегулярность характерна для задач математического
программирования (далее в этом параграфе мы для оп-
ределенности будем говорить только о задачах мини-
мизации), в которых условие выпуклости нарушается
либо для целевой функции, либо для множества допу-
56 МАТЕМАТИЧЕСКИЕ МОДЕЛИ [ГЛ. 2
стимых планов. В этом случае целевая функция будет
иметь много локальных оптимумов, не совпадающих с
глобальным. Из-за наличия многих локальных экстрему-
мов за подобными нерегулярными задачами в нашей ли-
тературе закрепилось название многоэкстремальных.
Какой бы то ни было единой теории многоэкстре-
мальных задач пока не существует; равным образом, в
зачаточном состоянии находятся и вычислительные ме-
тоды. Однако многоэкстремальные задачи, вообще го-
воря, могут быть сведены к частично целочисленным.
Для задач экстремизации на невыпуклых областях это
фактически уже было продемонстрировано в § 4 настоя-
щей главы. Содержанием настоящего параграфа будет
изучение связи задач с невыпуклыми целевыми функ-
циями и целочисленных задач. Подобное сведение пред-
ставляет немалый теоретический интерес, ибо оно пока-
зывает родство и взаимосвязь двух на первый взгляд
совершенно различных видов «нерегулярности» в мате-
матическом программировании. Кроме того, поскольку
численные методы целочисленного программирования
уже достаточно освоены, оно открывает один из реаль-
ных путей фактического решения многоэкстремальных
задач.
Сейчас мы перейдем к изучению указанной взаимо-
связи. Отметим, что возможность сведения нелинейной
невыпуклой задачи к частично целочисленной была впер-
вые отмечена в 1957 г. (т. е. еще до создания общих ме-
тодов целочисленного программирования) Марковицем
и Манном [115].
6.2. Рассмотрим задачу минимизации функции
f(xb х2, • • •, *п) на некотором выпуклом множестве G
(конкретный способ задания G для нас сейчас безраз-
личен). Будем предполагать, что f представима в виде
суммы функций от одной переменной *), т. е.
f(xlt Х2, .... Xn)=^fj(Xj). (6.1)
Для того чтобы лучше уяснить проводимую кон-
струкцию, изучим сначала регулярный случай. Именно,
*) Такие целевые функции иногда называют сепарабельными.
НЕКОТОРЫЕ МНОГОЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ
57
§ 6)
пусть каждое слагаемое fj(xj) в (6.1) представляет со-
бой выпуклую *) функцию от Xj (тогда и f (хь х2.х„),
будучи суммой выпуклых функций, также является вы-
пуклой) .
Рассмотрим любую функцию fj(xj) из (6.1). Далее
для упрощения записи мы будем опускать индекс j и
писать просто f(x). Попытаемся свести дело к линей-
ному программированию, аппроксимируя для этого каж-
дую функцию f(x) кусочно-линейной функцией. Пусть
f(x) имеет вид, изображенный на ’рис. 2.6.1. Разобьем
область определения f(x) на несколько частей (быть мо-
жет, неравных) точками do(=O), dt, di,..., dp и на каж-
дом отрезке Ай=[^а-ь dk] заменим f(x) линейной функ-
цией. Аналитически это удобно выразить следующим об-
разом. Для любого х определим переменные
i/* = mes{[0, х] П Ал); (6.2)
иначе говоря, yh представляет собой длину пересечения
отрезка [0, х] с отрезком Д*.* Обозначим длину отрезка Д&
через йд, т. е. hh = dk — d^-i. Тогда в силу самого опре-
деления yk мы должны иметь
k=it 2, р. (6.3)
Далее, очевидно,
х=‘У1 + У2 + ••• +УР> (6-4)
*) Функция f называется выпуклой, если АДг.) 4- (1 — X)J (z2)^
>/(Лг, + (1-Х)г2), где 0<А<1.
53 МАТЕМАТИЧЕСКИЕ МОДЕЛИ (ГЛ. 2
а кусочно-линейную аппроксимацию ф(%) функции f(x)
можно записать в виде
<р(х) = с0 + с1г/1 + с21/2+ ... +срур. (6.5)
Отметим, что в силу выпуклости f(x) угловые коэффи-
циенты cki &= 1, 2,..., р, образуют монотонно неубы-
вающую последовательность
Ci < с2 < ... < ср, (6.6)
Таким образом, мы можем заменить х согласно (6.4)
(учитывая, что переменные уь ограничены сверху — см.
(6.3)) и взять вместо f(x) его приближенное представ-
ление (6.5). Задача минимизации (6.5) при условиях
(6.3) и (6.4) представляет собой уже задачу линейного
программирования.
Весьма важно отметить здесь, что оптимальное реше-
ние последней задачи будет иметь следующую струк-
туру:
Х* = У\+У‘>.+ ... +yka, k0^p,
где г/, = й„ у2 = h2, ..., ykH = , 0 < yk* < hko, причем
все уъ, для k>kQ равны нулю. Иначе говоря, в этом ре-
шении г/i берется максимально возможным; при этом
значении у^ берется максимально возможное у2 и т. д.
до тех пор, пока не встретится такое £0, что, взяв yk*
максимально возможным, мы уже превысим значение х.
Тогда yk* уменьшается до выполнения равенства (6.4),
а все последующие значения ук полагаются равными
нулю. Это обстоятельство сразу следует из выпуклости
аппроксимирующей ломаной ср(х), выражаемой аналити-
чески неравенствами (6.6). Действительно, в силу (6.6)
переменная у& оказывается «более экономичной», чем
следующая переменная ук+ь и пока ук не достигла своей
верхней границы, нет смысла брать отличное от нуля
значение
Более формально это можно высказать, наложив сле-
дующее требование:
либо yk-hk = Q, либо z/ft+l = 0. (6.7)
§ 6]
НЕКОТОРЫЕ МНОГОЭКСТРЕМАЛЬНЫЕ ЗАДАЧИ
59
Условие (6.7) говорит о том, что если yk не достигло
своей верхней границы, то = а если достигло ее,
то допускается и yft+i>0.
Подчеркнем, что в рассматриваемом нами пока регу-
лярном случае (6.7) не является дополнительным огра-
ничением в задаче (6.3) — (6.5); для оптимального реше-
ния последней оно выпол-
няется автоматически. Та-
ким образом, здесь это аль-
тернативное условие не внот
сит дополнительных услож-
нений.
6.3. Положение сущест-
венно изменится, если мини-
мизируемая функция f (х) яв-
ляется вогнутой (рис. 2.6.2).
В этом случае (мы сохра-
няем прежние обозначения)
угловые коэффициенты Ck в
(6.5) будут образовывать
уже монотонно невозрастающую последовательность
Ср.
(6.6')
Поэтому с точки зрения проведенной выше конструкции
теперь было бы оптимальным выбирать «в обратном
порядке» (т. е. сначала берется максимальное значение
ур, затем максимальное значение ур^ и т. д.). При этом,
если yk не достигло своей верхней границы, то должно
быть z/fe_! = 0. Вспоминая определение yk, видим, что в
этом случае само представление х в виде (6.4) и <р(х)
в виде (6.5) перестало бы быть справедливым.
В наиболее общем случае (рис. 2.6.3) последователь-
ность угловых коэффициентов ch в (6.5) вообще не будет
монотонной. Нам нужно было бы первой довести до
верхней границы переменную f/л, отвечающую наимень-
шему cki затем переменную, отвечающую следующему
по величине chi и т. д. А это привело бы к несвязности
системы отрезков, из которых мы должны «набирать»
оптимальное х.
Таким образом, в случае невыпуклости f(x) требова-
ние (6.7) начинает играть ключевую роль, и нам следует
60
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
[ГЛ. 2
явным образом учесть его в нашей формулировке. Аль-
тернативное условие (6.7) можно, как мы уже знаем
(см. § 4), выразить в рамках частично целочисленного
программирования. В данном случае это особенно про-
сто, так как для переменных у& известны верхние гра-
ницы. Введем дополнительные переменные
( о,
I 1 ^=1, 2, ..., р, (6.8)
и заменим (6.7) системой неравенств
yk > hkzk,
УМ
k= 1, 2, ..., р- 1. (6.^)
Мы видим, что если zk примет значение 0, то неравенства
(6.9) сведутся к тому, что yk 0, у&+1 0 (т. е. попросту
уя+1 = 0). Если же zk=l, получаем yh> hk (т. е. yk = hk)
и тривиальное неравенство уь+i^hk+i- Таким образом,
выясняется и смысл введенных нами дополнительных пе-
ременных: если переменная yk достигла своей
верхней границы, и zk = 0 в противном случае.
Окончательно задача минимизации невыпуклой функ-
ции f(x) на выпуклом множестве G сводится к миними-
зации (6.5) при условиях (6.3), (6.4), (6.8) и (6.9)
(и, разумеется, при условиях, определяющих G). Замечая,
что ограничения сверху на уь в (6.3) уже фигурируют
ЗАДАЧИ ПЛАНИРОВАНИЯ ПЕРЕВОЗОК
61
в неравенствах (6.9) (кроме ограничения на «л), мы мо-
жем заменить (6.3) и (6.9) на
^>0, 6=1, 2, .... р, (6.3')
Ук > hkzkt
Ук+\
(6.9')
Ы, 2, р-1.
Как и всегда при подобных сведениях к частично цело-
численным задачам, мы приходим к существенному уве-
личению числа переменных и ограничений.
Отметим, что фактически мы уже сталкивались с при-
менением этого приема при сведении транспортной за-
дачи с фиксированными доплатами (см. § 5) к частично
целочисленной задаче (поясним, что целевая функция
транспортной задачи с фиксированными доплатами пред-
ставляет собой именно сумму вогнутых функций). Дру-
гой пример применения этого круга идей мы встретим
в § 2 гл. 3 при рассмотрении нелинейной задачи разме-
щения.
ГЛАВА 3
ПРИКЛАДНЫЕ ЗАДАЧИ
ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ
§ 1. Задачи планирования перевозок
1.1. Простейшей и наиболее популярной задачей пла-
нирования перевозок является транспортная задача. По-
становка ее заключается в следующем. Пусть имеется т
пунктов производства (поставщиков) некоторого одно-
родного продукта и п пунктов его потребления. Для
каждого пункта производства i известен объем произ-
водства £=1, 2,..., т, а для каждого пункта потреб-
ления / — объем потребления /= 1, 2,..., п. При этом
чаще всего предполагается, что суммарное производство
и суммарное потребление сбалансированы, т. е.
т п
2 == 2 bj. (1.1)
< = 1 1 = 1
62
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
Заданы затраты сц на перевозку единицы продукта от
каждого пункта производства i до каждого пункта по-
требления /. Требуется составить план перевозок, обеспе-
чивающий всех потребителей, не выводящий за пределы
производительности поставщиков и обеспечивающий ми-
нимум суммарных затрат на перевозку.
Введением переменных Хц, представляющих собой
объемы перевозок от каждого поставщика i к каждому
потребителю /, эта задача приводится к минимизации
т п
(1.2)
при условиях
= %lj = bjt (J «J)
i=l, 2, ..., m, /=1, 2, ..., n.
Требование целочисленности на переменные здесь не
накладывается. Однако мы хотим напомнить (см. § 1
гл. 2), что транспортная задача (1.2) — (1.3) является
представителем класса задач, всегда обладающих цело-
численными планами при целочисленных исходных дан-
ных а], а2, ...» ат и &i, Ь2, ...» Ьп\ именно по этой при-
чине мы начинаем с нее наш перечень дискретных задач
о перевозках.
Примером собственно дискретной задачи о перевоз-
ках является транспортная задача с фиксированными
доплатами (см. § 5 гл. 2). Напомним, что в этой задаче
требуется при обычных «транспортных» ограничениях
(1.3) минимизировать разрывную целевую функцию
т п
(1.4)
где каждая функция Cij(xa) имеет вид
, л ( 0, xzy = 0,
17 I CijXij + dij,
(1.5)
Фиксированные доплаты йц естественно интерпретируют-
ся здесь как арендные платежи за наем однородных
транспортных средств, не зависящие от их загрузкц.
(j ЗАДАЧИ ПЛАНИРОВАНИЯ ПЁЯЕВОЗОК 63
Широкий класс дискретных моделей возникает при
формулировке задач о перевозках, связанных с исполь-
зованием неделимых транспортных единиц. К рассмо-
трению некоторых моделей такого рода мы сейчас и
перейдем.
1.2. Рассмотрим распределительную задачу. Эта ма-
тематическая модель широко освещалась в литературе
под самыми различными названиями (обобщенная транс-
портная задача, задача о взвешенном распределении,
Л-задача, задача о расстановке флота и др.). Опишем ее
в следующей интерпретации. Пусть имеется п транс-
портных линий (скажем, пассажирских); по /-й линии
нужно выполнить bj рейсов (/=1,2, ...,п). В наличии
имеются транспортные единицы т типов. Резервы по-
лезного времени транспортной единицы типа i состав-
ляют (i = l,2, ..., т). На выполнение транспортной
единицей типа i рейса / требуется время /<3-, а затраты
на рейс составляют сц. Требуется указать наиболее эко-
номную расстановку транспортных единиц по линиям.
Обозначая через количество рейсов, которое транс-
портная единица i должна выполнить по линии /, прихо-
дим к следующей задаче. Требуется'минимизировать
т п
2 (1.6)
i = l /=1
при условиях
Xij—целые, i = 1, 2, ..., tn\ j= 1, 2, ..., п, (1.7)
п
i = l,2....т, (1.8)
т
^Xtj^bj, /=1, 2, ...,и. (1.9)
Здесь условия (1.8) выражают ограничения по фондам
времени каждой транспортной единицы, а условия (1.9)
говорят о том, что все рейсы должны быть выполнены.
К совершенно аналогичной модели приводит близкая
к описанной задача о выборе средств доставки груза.
Пусть через i — 1, 2,..., т обозначены грузообразующие
пункты с объемами груза в них аг*. Имеется п средств
доставки груза (видов транспорта); грузоподъемность
64
ПРИКЛАДНЫЕ ЗАДАЧИ
(ГЛ. 3
/-го средства доставки составляет а наличный его
парк равен Nj, /=1,2,..., п. Грузы подлежат доставке
в один центральный пункт (склад); затраты при осу-
ществлении одной единицей средства доставки / рейса
от пункта i до склада равны с^. Требуется составить
наиболее экономный план доставки.
Через Хц обозначим количество средств доставки
типа /, отправляющееся из пункта Z. Тогда задача све-
дется к минимизации целевой функции вида (1.6) при
условиях (1.7) и
п
р jXtj^ а{ г = 1, 2, т, (1-8')
т
/=1, 2, п, (1.9')
/=1
Распределительная задача имеет весьма разнообраз-
ные приложения. Большое число практических ее интер-
претаций читатель может найти в монографии Д. Б. Юди-
на и Е. Г. Гольштейна [44]. Здесь мы остановимся
только на одной из них, уже не связанной с вопросами
транспортировки, но имеющей важное значение в вопро-
сах распределения производственной программы.
Пусть требуется распределить изготовление деталей
между станками. Индексом /=1,2, ...,п будем обозна-
чать детали, индексом / = 1,2,..., т — станки с резер-
вами рабочего времени аг*. Пусть плановое задание по
деталям задается числами штучные нормы времени
по обработке i-м станком /-й детали равны а себе-
стоимость при этом составляет сг7. Требуется составить
план распределения работ по станкам, обеспечивающий
выполнение задания, не выводящий за пределы резервов
времени по каждому станку и минимизирующий суммар-
ную себестоимость.
Обозначим через х^ количество деталей типа /, кото-
рое следует обработать на станке I. Тогда описанная за-
дача распределения программы сведется к модели
(1.6) —(1.9).
Отметим, что во многих интерпретациях распредели-
тельной задачи требование целочисленности на перемен-
ные может и не накладываться.
ЗАДАЧИ ПЛАНИРОВАНИЯ ПЕРЕВОЗОК
65
1.3. Рассмотрим распределительную задачу с фикси-
рованными доплатами*). Пусть в дополнение к перечис-
ленным выше данным (см. п. 1.2) выпуск транспортной
единицы типа i на линию / связан с подготовительными
работами, требующими времени хц (это время не зави-
сит от числа рейсов, которое предстоит выполнить дан-
ной транспортной единице). Денежные затраты на про-
ведение этих подготовительных работ составляют dy.
Для отыскания наиболее экономной расстановки
транспортных единиц по линиям, как и выше, введем
целочисленные переменные хц. Тогда суммарные затраты
составят
т п
(1.10)
z=i /-1
где
| 0, xt / = 0,
с х '' (1.11)
I CijXij г di],
Ограничения по фонду времени каждой транспортной
единицы будут теперь иметь вид
^4 ttj(xtj)^ai, z=l, 2, ..., т, (1-12)
где
[ 0, xt ,• = 0,
'"М ^>0. ("3)
Ограничения по рейсам (1.9), равно как и очевидные
ограничения (1.7), при этом сохраняются. Таким обра-
зом, задача заключается в минимизации (1.10) при ус-
ловиях (1.7), (1.9) и (1.12).
Из (1.10) и (1.11) легко усмотреть, что перед нами
задача с фиксированными доплатами (см. § 5 гл. 2); ее
отличие от рассматривавшихся ранее задач этого рода
состоит в том, что здесь фиксированные доплаты входят
не только в целевую функцию, но и в ограничения (1.12).
Однако и этот вариант задачи можно свести к целочис-
ленной задаче линейного программирования.
*) Эта задача рассматривалась в дипломной работе Г. И. Озор-
ного (экономический факультет ЛГУ, 1968 г.),
5 А. А. Корбут, Ю, Ю. Финкельштейн
66
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
В основе аналогичного сведения, описанного в § 5
гл. 2, лежало наличие верхних границ Мц для перемен-
ных Xij. Здесь эти границы также удастся найти при
естественном предположении, что все /у>0 и ту>0. Дей-
ствительно, из (1.9) мы имеем для всех i, /
С учетом (1.12) и (1.13) (иХц+ти^а,, так что
_______________________«г —ту
Таким образом,
= (1.14)
Введем теперь вспомогательные переменные
( о>
*//; = ) 1 /—1, 2, ..., /п; /—1,2,..., л. (1.15)
Рассмотрим задачу минимизации
3 Ct jXt j + dtjytj (1.16)
при условиях (1.7), (1.9), (1.15) и
2 + /—1,2.......т, (1.17)
xtJ^M{}yif, /=1, 2, ..., т; /=1, 2...........п. (1.18)
Ее эквивалентность исходной задаче (1.10), (1.7), (1.9),
(1.12) устанавливается точно теми же приемами, кото-
рые были применены в § 5 гл. 2 для транспортной за-
дачи с фиксированными доплатами.
Для рассмотренной сейчас задачи также можно дать
производственное истолкование, как это было сделано
для распределительной задачи в конце предыдущего
пункта. Действительно, рассматривая распределение про-
изводственной программы, можно интерпретировать тц
как подготовительно-заключительное время при обра-
ботке детали j на станке /, a dy — как связанную с этим
ЗАДАЧИ ПЛАНИРОВАНИЯ ПЕРЕВОЗОК
67
§ П
временем себестоимость. Такие задачи весьма харак-
терны для машиностроительного производства.
1.4. Рассмотрим задачу о выборе средств доставки
грузов. Пусть грузовой флот имеет в своем составе суда
п типов. Количество судов типа / равно qjt а затраты
при использовании одного судна типа / в планируемом
периоде составляют Cj, / = 1, 2, .... п. Каждое судно об-
ладает грузовыми емкостями т типов (трюмы, танки,
палубы и т. п.); грузоподъемность емкости i на судне
типа / равна d^. Подлежат перевозке р видов грузов.
Груз вида k имеется в количестве ак, /г=1, 2, ..., р. Тре-
буется выбрать наиболее экономичный комплекс средств
доставки этих грузов, совместимый с грузовыми возмож-
ностями судов.
Учитывая неделимость транспортных единиц, введем
целочисленные переменные х3-, /=1, 2, ..., п, означаю-
щие количество судов типа /, выделяемое для перевозки.
Кроме того, введем переменные означающие количе-
ство груза вида k, подлежащее загрузке в емкость i
(i=l, 2, ..., m; k—\, 2, ..., p). Тогда мы придем к за-
даче минимизации
п
^cjX} (1.19)
при условиях
X; —целые; у1к > 0, (1.20)
S dtjXj— S I = 1, 2, ..., /п, (1.21)
/=i fe=i
= 1, 2, ..., р. (1.22)
г = 1
Здесь ограничения (1.21) показывают, что общее ко-
личество груза, загружаемое в емкости каждого типа,
не должно превышать суммарной грузоподъемности
этих емкостей по всем судам, а ограничения (1.22) гово-
рят о том, что перевозки по всем грузам должны быть
полностью осуществлены. Отметим, что на переменные
yik требование целочисленности, вообще говоря, не на-
кладывается, так что здесь мы имеем дело с частично
Целочисленной задачей.
5*
68
ПРИКЛАДНЫЕ ЗАДАЧИ
(ГЛ. 3
1.5. Рассмотрим теперь простую модель развозки [51].
Пусть некоторая центральная база снабжает продук-
цией (ее можно считать однородной) т складов. Раз-
возка продукции на склады осуществляется одним грузо-
виком, причем каждый склад получает свой заказ пол-
ностью в один прием — грузоподъемность грузовика для
этого достаточна. Вообще же грузовик может одновре-
менно взять груз, соответствующий не более чем k за-
казам. Грузовик может объезжать склады по определен-
ным г маршрутам. Разумеется, один и тот же склад
может находиться на разных маршрутах.
Пусть для каждого склада известна функция затрат
по доставке в зависимости, скажем, от размера заказа.
Требуется составить график развозки, обеспечивающий
всех клиентов и минимизирующий суммарные затраты.
Подчеркнем, что время доставки здесь никак не учиты;
вается; предполагается, что все операции по доставке
заведомо могут быть осуществлены в течение некоторого
периода времени, устраивающего всех заказчиков.
Под способом развозки будем понимать любую допу-
стимую комбинацию выполнения заказов. Говоря точнее,
способ развозки представляет собой m-мерный столбец,
f-я компонента которого равна единице, если f-й заказ
в этом способе удовлетворяется, и равна нулю в против-
ном случае. Для любой реальной задачи при неболь-
ших значениях m, k и г можно фактически выписать все
такие способы развозки. Число п этих способов будет
зависеть не только от этих параметров, но и, например,
от числа складов на каждом маршруте, объема заказов
и т. д. Кроме того, каждому способу развозки / легко
сопоставить связанные с ним затраты с$ (учитывающие,
помимо упомянутых выше затрат по доставке, также
стоимость работ по выгрузке и т. п.).
Итак, пусть при данных конкретных условиях задачи
составлена матрица /4 = ||<MI всевозможных способов
развозки, состоящая из нулей и единиц. Столбцы этой
матрицы представляют собой описанные выше способы
развозки, т. е. аг;=1, если в способе / заказ i удовлет-
воряется, и ац—Q в противном случае. Кроме того, пусть
для каждого способа / найдены соответствующие ему
затраты cj, /^1, 2, ..., п. Теперь задача состоит в вы-
. ЗАДАЧИ РАЗМЕЩЕНИЯ И СПЕЦИАЛИЗАЦИИ 69
§ Л
боре наиболее экономичной комбинации этих спо-
собов.
Введем переменные ,
( 1, если /-й способ развозки реализуется,
= | 0 в противном случае. (1-23)
Теперь мы естественным образом получаем задачу ми-
нимизации суммарных затрат
п
^cjXj (1.24)
при условиях (1.23) и
21, i=l, 2...............tn. (1.25)
Условия (1.25) означают, что все заказы должны быть
удовлетворены.
Обращаем внимание читателя на то, что модель
(1.23) — (1.25) фактически совпадает со взвешенной за-
дачей о покрытии, рассмотренной в § 3,гл. 2.
§ 2. Задачи размещения и специализации
Задачи размещения и специализации производства
за последние годы привлекли к себе большое внимание.
Ввиду огромного объема капиталовложений, стоящего за
любой реальной задачей этого типа, даже небольшие
улучшения первоначальных плановых наметок на деле
приводят к большому народнохозяйственному эффекту.
В связи с важной ролью, которую играет в задачах
размещения и специализации пространственный фактор,
большинство соответствующих моделей представляет со-
бой варианты и обобщения классической транспортной
задачи, хотя, разумеется, проблема отнюдь не исчерпы-
вается одним лишь установлением схемы рациональных
грузопотоков. Типичное для этих задач наличие недели-
мостей естественным образом влечет дискретность мно-
гих моделей. В этом параграфе мы опишем некоторые
наиболее типичные модели, начав с модели общего ха-
рактера и перейдя затем к задачам типа транспортной.
70
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
2.1. Опишем сначала один довольно общий класс мо-
делей, которые могут быть названы «моделями рекон-
струкции», но имеют непосредственное отношение к
рассматриваемым в этом параграфе вопросам. Пусть
имеется п способов реконструкции уже имеющихся пред-
приятий и строительства новых (речь идет об одной от-
расли). Предприятия должны производить т продуктов.
При каждом способе реконструкции / (/ = 1, 2, ..., п)
выпуск продукта i (i=l, 2, ..., т) за единицу времени
(промежуток планирования) составляет ац, а приведен-
ные затраты по реализации этого способа равны Cj.
Вопрос о реконструкции и новом строительстве рас-
сматривается для р предприятий; при этом множество
номеров способов реконструкции Af={l, 2,.... и) разбито
на непересекающиеся подмножества: N=Nt U N2 U ... U NPi
так что j e Nk означает, что способ j относится к пред-
приятию k (fe = l,2, ..., р). Все эти способы являются
в определенном смысле взаимно исключающими: для
каждого предприятия может быть реализован один
и только один способ реконструкции (строительства).
Требуется выбрать способы реконструкции таким обра-
зом, чтобы суммарный выпуск каждого продукта i всеми
предприятиями был не менее заданной величины Ь{, а
суммарные затраты на реконструкцию и строительство
были минимальными.
Введем переменные
( 1, если /-й способ реализуется,
Xj I 0 в противном случае.
Тогда наша задача сведется к минимизации
3jCjXj (2.2)
при условиях
г=1, 2.....т (2.3)
и
2хг1, Ы, 2............р. (2.4)
. ,1 ЗАДАЧИ РАЗМЕЩЕНИЯ И СПЕЦИАЛИЗАЦИИ 71
S ‘I
Здесь условия (2.4) очевидным образом выражают един-
ственность реализации способа реконструкции (строи-
тельства) для каждого из предприятий. Действительно,
из (2.1) и (2.4) сразу следует, что в пределах каждого
N все Xj равны нулю, за исключением одного, равного
единице.
Связь модели (2.1) — (2.4) с задачами размещения
является довольно прозрачной. Действительно, можно
считать, что некоторые (или все) предприятия k яв-
ляются не действующими, а лишь проектируемыми, при-
чем для каждого из них возможно осуществление не
более одного способа строительства (т. е. некоторые
предприятия могут вообще не строиться). Тогда для
индексов k, отвечающих проектируемым предприятиям,
можно заменить условия (2.4) неравенствами
2 (2.4х)
Теперь для некоторых Nk в оптимальном плане могут
оказаться равными нулю все Xj, т. е. ни один способ
строительства соответствующих предприятий не будет
реализован. Тем самым мы получим план размещения
новых предприятий.
Описанная модель является достаточно общей; од-
нако она не учитывает потребителей продукции и не
отражает затрат на транспортировку продукции от по-
ставщиков к потребителям. Во многих же реальных
проблемах размещения именно этот момент является
наиболее существенным. Поэтому мы перейдем к опи-
санию моделей, учитывающих транспортный фактор в
явном виде.
2.2. Простейшей моделью размещения является так
называемая открытая транспортная задача. Она состоит
в следующем. Пусть имеются пункты потенциального
производства i с возможными объемами производства
ai («=1, 2, ..., пг) и пункты потребления j с объемами
потребления bj (j = 1, 2, ..., и). Отметим, что здесь речь
идет о производстве и потреблении некоторого однород-
ного продукта; поэтому будем отождествлять пункты
производства с предприятиями по производству этого
продукта, которые могут быть там построены. При этом
72
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
суммарный объем потенциального производства всех по-
ставщиков превышает суммарный объем потребления,
т. е.
т п
S at > 2 bj.
z=i /-1
(2.5)
Как и в обычной транспортной задаче, дана матрица за-
трат на перевозки ||с«||; требуется определить план по-
ставок ||x,j||, удовлетворяющий условиям
(2.6)
и минимизирующий суммарные затраты
т п
2 2^. (2.7)
Эта задача отличается от классической транспортной за-
дачи лишь тем, что вместо обычного баланса производ-
ства и потребления мы имеем неравенство (2.5). В силу
п
этого в условии (2.6) вместо равенств = фигури-
руют неравенства.
Решение задачи (2.6) — (2.7) никаких затруднений не
вызывает, ибо при помощи общеизвестного приема (вве-
дение фиктивного потребителя) она сводится к транс-
портной. Оптимальный план этой задачи |х^|| дает сле-
дующую информацию:
1) список реальных поставщиков (множество всех
тех I, для которых величины
п
(2.8)
отличны от нуля);
2) плановые мощности этих поставщиков (отличные
от нуля а* в (2.8));
3) схему прикрепления поставщиков к потребителям
(сами числа х’Д
В ряде случаев к условиям (2.6) — (2.7) могут при-
соединяться дополнительные ограничения, не меняющие
_ 01 ЗАДАЧИ РАЗМЕЩЕНИЯ И СПЕЦИАЛИЗАЦИИ 73
§ Я
«транспортного» характера задачи. Так, для некоторых
i может требоваться еще выполнение неравенства
п
(объем производства в данном пункте не должен быть
ниже заданного) и т. п.
Задача (2.6) — (2.7) включена в наш перечень ди-
скретных моделей по чисто формальным причинам, кото-
рые были подробно объяснены в § 1 гл. 2 (целочислен-
ность оптимальных планов транспортной задачи). Од-
нако некоторые дальнейшие обобщения этой схемы уже
приводят к дискретным задачам в собственном смысле
слова. Одним из наиболее непосредственных обобщений
такого рода является описывавшаяся ранее транспорт-
ная задача с фиксированными доплатами (см. § 5 гл. 2).
Напомним, что она заключается в минимизации функции
т п
2 (2.9)
где
[ О, Х// = 0,
си(хи) = \ , . ' (2.10)
I CijXij -t- dij, xij^Q
при условиях (2.6). Экономически модель (2.9), (2.10),
(2.6) естественно интерпретировать, например, как «раз-
мещение в условиях бездорожья»; под сц в этих усло-
виях можно понимать стоимости перевозок, а под с1ц —
стоимости строительства дорог между производителями i
и потребителями /. Сведение этой задачи к целочислен-
ной демонстрировалось в § 5 гл. 2.
2.3. В предыдущем пункте были рассмотрены модели,
в которых плановый объем производства а* (см. (2.8))
каждого предприятия-поставщика мог принимать любые
значения в данных пределах. Однако довольно типич-
ным является случай, когда проектируемое в некотором
пункте производства предприятие может быть построено
в одном из нескольких вариантов, причем каждому
варианту отвечает свой объем производства. Скажем,
при проектировании угольного карьера можно поставить
74
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
в забой один, два, три и т. д. экскаватора, чем и
будут определяться варианты производительности этого
карьера. В этом случае мы приходим к следующей
модели [18].
Пусть, как и ранее, даны пункты возможного произ-
водства i=l, 2, ..., т и пункты потребления j с фикси-
рованными объемами потребления (/=1. 2..........п).
Задана также матрица ||с^|| себестоимостей перевозок
(франко-потребитель). Для каждого пункта производ-
ства i возможно pi проектных вариантов, которым отве-
чают объемы производства (А=1, 2.........р^. Введем,
наряду с обычными «транспортными» переменными
Xij, дополнительные переменные ytk (i = l, 2, т,
k=l, 2, .... pi), имеющие следующий смысл:
1, если в пункте I принимается объем
производства а^, (2.11)
О в противном случае.
Vik
Тогда наша цель будет заключаться в минимизации це-
левой функции вида (2.7) при условиях
( 0.
xi}>0, yik = [ j, (2.12)
п Pi
JjXij < S /=1,2......m, (2.13)
^ylk=\, i = l, 2, .... m. (2.14)
£-1
Здесь из (2.11) и (2.14) сразу следует, что для каждого i
только одно yik равно единице, а остальные равны нулю.
Номер k, соответствующий этому yik, указывает проект-
ный вариант мощности, принимаемый для данного пунк-
та производства /; условие (2.13) здесь является прямым
п
аналогом обычного условия 2 Xij^.ai в открытой транс-
портной задаче. ,
Отметим, что эта задача сходна с задачей рекон-
струкции, описанной в п. 2.1; в частности, условие (2.14)
здесь играет роль условия (2.4) задачи реконструкции.
§ 2) ЗАДАЧИ РАЗМЕЩЕНИЯ И СПЕЦИАЛИЗАЦИИ 75
Как и там, в этой модели условия (2.14) могут быть
(для некоторых или для всех i) заменены неравенствами
pi
Ziyik^l-, (2.14')
экономический смысл последних ясен непосредственно.
2.4. Подчеркнем, что в последней модели размещения
мы ограничились сравнительно простым случаем: сум-
марные затраты линейно зависят от объемов поставок от
производителей к потребителям. На деле это предполо-
жение выполняется далеко не всегда, ибо в состав сум-
марных затрат входят еще затраты на строительство
предприятий-поставщиков; эти затраты зависят уже толь-
ко от плановой мощности поставщика, но не от рас-
пределения его поставок. Говоря формально, суммарные
затраты в этом случае имеют вид *
т п т / п \
2 2 cijxi} + 2 ft 2 xi) у, (2.15)
где функции /<(«) описывают затраты на строительство
пункта производства i при объеме производства и. Сна-
чала рассмотрим случай неоднородных зависимостей
вида
[ 0, и = О,
'-<“> = ( A,u + Bt. „>0. <2Л6>
Экономический смысл (2.16) довольно прозрачен. Будем
предполагать, что структура затрат (2.15) имеет место
в условиях обычной открытой транспортной модели раз-
мещения, описанной в п. 2.2. Применим уже известный
нам прием, использованный при рассмотрении транспорт-
ной задачи с фиксированными доплатами (§ 5 гл. 2).
Легко убедиться, что минимизация целевой функции
(2.15), где fi имеет вид (2.16), при условиях (2.6) экви-
валентна минимизации
S cijXij + 5 А S xij + BiUi (2.17)
76
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
при условиях
{О, т
lj’ ^xi} = b} (2.18)
и
i=l, 2, т. (2.19)
Ясно, что здесь уг—\, если в плане предусматривается
открытие поставщика i с положительной мощностью, и
yt=O в противном случае. Условия (2.19) при t/z=l пере-
ходят в условия обычной открытой транспортной задачи,
а при Уг = 0 показывают, что все xtJ- для данного i равны
нулю (i-й поставщик не открывается).
2.5. Можно еще усложнить последнюю модель, пред^
положив (как и в п. 2.3), что для каждого i имеется pt
вариантов строительства с производительностями
(£=.1, 2, ..., р,). Пусть теперь затраты на строи-
тельство поставщика i описываются функциями fj, за-
висящими также от номера проектного варианта k, при-
чем эта зависимость имеет вид
( 0, и = О,
«<“>-{ V + B*. а>о <2-2°>
(иначе говоря, здесь от номера k зависят только фикси-
рованные доплаты на строительство, а пропорциональ-
ная часть одна и та же для всех вариантов). Тогда, вво-
дя, согласно (2.11), дополнительные переменные yik, мы
будем иметь ограничения (2.12), (2 13) и (2.14), а целе-
вая функция примет вид
2 2<v„ + 2
/=1 J fc=l\ /=1 1 /
-22 + 2 л, 2 2 ци + 2 2 в^,
z=i /=1 1 i-i i-i k-i z=i k=i 1
что в силу (2.14) равно
т п т п т Pl
2 2 cljxlj + 21 Al S xlj + 3 23 (2.21)
§2]
ЗАДАЧИ РАЗМЕЩЕНИЯ И СПЕЦИАЛИЗАЦИИ
77
2.6. Перенесем теперь описанную в п. 2.3 модель на
случай нелинейной целевой функции общего вида. Пусть
суммарные затраты имеют следующую структуру:
xi}.
(2.22)
Речь идет о минимизации (2.22) при условиях (2.12) —
(2.14). В практических задачах функция вида (2.22)
обычно оказывается вогнутой. С экономической точки
зрения это означает, что с ростом объема производства
удельные затраты на его дальнейшее увеличение сокра-
щаются. Поэтому задача (2.22), (2.12) — (2.14) выпадает
из рамок выпуклого целочисленного программирования
и становится многоэкстремальной задачей. В данном
случае ввиду того, что объемы производства в каждом
пункте i могут принимать лишь конечное число значе-
ний at, ее рассмотрение оказывается весьма простым.
Именно, для каждого пункта производства i найдем зна-
чение затрат при /?-м объеме производства:
= *
после чего целевую функцию (2.22) можно будет выра-
зить в виде
т п т Pl
2 2 Ci jXi j + 22 Siklhk- (2.22')
/-I /=i i=i fe-i
Окончательно задача сводится к минимизации (2.22') при
условиях (2.12) — (2.14).
2.7. В заключение этого параграфа продемонстрируем
сведение общей нелинейной задачи размещения к частич-
но целочисленной. Предположим, что суммарные за-
траты снова описываются невыпуклой функцией вида
(2.22); требуется минимизировать эту функцию при
обычных транспортных условиях (2.6). Тем самым
объем производства для каждого поставщика I может
теперь принимать любые значения из [0, aj.
Конкретизируем общую схему рассмотрения много-
экстремальных задач, описанную в § 6 гл. 2. Прежде
всего рассмотрим функции
gi («) = uft (и)
78
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
и аппроксимируем их кусочно-линейными функциями
ф,(ы), разбив для этого область определения [0, сц] на
отрезки Дгй=[а^-1, а£], /г = 1, 2,..., р, (подразумевается,
что а° = 0, ар1 = а^. Длину отрезка Дгл обозначим через
hik , т. е. hik = — а|-1. Введем дополнительные пере-
менные ytk, полагая их равными длине пересечения от-
резка Д,а с отрезком [0, а,]. Получаем
*= 1, 2, ..т, /г=1, 2.......ph (2.23)
п Pi
^хч=^У1к, 1=1,2......т. (2.24)
/=i fe-i
Введем обозначения
Ф» = gi(ai) = aifi(.a^
Тогда целевую функцию (2.22) можно приближенно
представить формулой
т п т Pi
2 2 CijXij + 2 X tytkyik- (2.25)
i=i /=i /=i k-i
При этом в силу невыпуклости исходной целевой функ-
ции переменные должны быть подчинены еще некото-
рым дополнительным условиям, смысл которых был по-
дробно объяснен в § 6 гл. 2. Именно, следует ввести
еще один набор дополнительных переменных
( О,
г1к = { 1 k=l,2,...,p{
и наложить дополнительные ограничения
^*>0;
Ун < hib
yik>hlkzik, /=1,2............т, (2.26)
Уцй+1 hitk+lZik, fe=l, 2, ..., pt.
Окончательно нелинейная невыпуклая задача размеще-
ния приближенно сведена к минимизации (2.25) при
условиях (2.24), (2.26) и
т
х,7>0, ^xij^bj, j=l, 2,
/“1
n. (2.27)
J 3] ЗАДАЧИ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ 79
§ 3. Задачи логического проектирования
В самые последние годы для моделей дискретного
программирования наметилось одно совершенно новое
поле приложений. Речь идет о довольно разнообразном
круге задач оптимизации, связанных, с одной стороны,
с вопросами проектирования логических и вычислитель-
ных устройств, а с другой — примыкающих к некоторым
современным проблемам теоретической кибернетики
(прежде всего — дискретного анализа). В этом пара-
графе списаны некоторые характерные постановки задач
такого рода.
3.1. Рассмотрим задачу о расположении производ-
ственных единиц. Пусть имеется m неделимых производ-
ственных единиц, которые в дальнейшем мы для крат-
кости будем называть центрами', каждую из этих произ-
водственных единиц требуется расположить в одном из
п возможных мест. Затраты, связанные непосредственно
с помещением центра i на место / («затраты на уста-
новку»), равны Сц (i=l, 2,..., tn; /=1,2,... , л). Изве-
стны «расстояния» дц от места I до места / (числа d^
ворсе не обязаны равняться соответствующим геометри-
ческим расстояниям; они являются лишь оценкой за-
трат, связанных с перемещением из t в /). Заданы, кро-
ме того, производственные «потоки» ftj из центра i в
центр /.
Отметим, что, не умаляя общности, можно положить
ш=п. Действительно, в случае лг<и введем дополни-
тельные фиктивные центры лг+1, пг+2, ...,п, положив
для них сц=0 при г^лг + 1 и fij=O при или
/>/п + 1.
Нашей целью является назначение (закрепление)
центров по местам, минимизирующее суммарные затра-
ты. Каждое такое назначение представляет собой пере-
становку (ри р2,..., рп) чисел (1, 2,..., л); при этом
любое из проводимых закреплений центра i за местом pi
описывается соответствием (-‘•pi, 1=1,2,..., л. Для лю-
бого назначения мы имеем, во-первых, «непосредствен-
ные» затраты, равные CiPi, и, во-вторых, затраты на
взаимосвязь между парами центров; мы будем пред-
полагать, что эти затраты при помещении центра i
80
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
в место Pi и центра / в место pj равны произведению ве-
личины потока между i и j на расстояние между Pi и р,,
проходимое этим потоком, т. е. составляют fijdPjPl. Та-
ким образом, требуется найти перестановку рь Рг, • • •, Рп
чисел 1,2,..., п, минимизирующую суммарные затраты
п п п
S cipi + 2 fijdpiPj • (3.1)
Иногда в подобных задачах накладывается следую-
щее дополнительное требование: каждый центр i может
быть помещен не в любое место, а лишь в одно из мест
из данного списка S(t) (скажем, по соображениям веса,
габаритов и т. п.). Тогда следует присоединить к задаче
условие
pt е S (г), i — 1, 2,..., п. (3.2)
В случае независимости производственных центров
Bcefij=d, и задача минимизации (3.1) по всем перестанов-
кам превращается в задачу о назначениях, описанную
в § 2 гл. 3. В этом случае CiPi можно интерпрети-
ровать как своеобразую «меру нежелательности» назна-
чения i-^pi или, попросту говоря, как убытки, связан-
ные с таким назначением. Наоборот, в других задачах
можно пренебречь затратами на установку ctPl (или
считать все эти затраты одинаковыми), так что речь
будет идти только о минимизации суммарных «затрат
по взаимодействию», т. е. второго слагаемого в (3.1).
Модель (3.1) — (3.2) имеет весьма широкие практи-
ческие приложения, отражая существенные черты многих
современных задач проектирования. Так, она может
быть использована в вопросах планирования расстановки
оборудования в цехах машиностроительных или химиче-
ских предприятий. С другой стороны, она же может най-
ти применения для задач о проектировании расположе-
ния деталей в ячейках вычислительных и управляющих
устройств (например, при нахождении схем монтажа
платы, минимизирующих суммарную длину соединений).
Здесь эта модель описана в нарочито общих терминах в
надежде, что различные более конкретные интерпрета-
ции читатель найдет сам.
. ,, ЗАДАЧИ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ 81
§ JJ
Уже обращалось внимание на родство модели (3.1) —
(3.2) с задачей о назначениях; действительно, целевая
функция (3.1) отличается от целевой функции задачи
о назначениях наличием дополнительного слагаемого, за-
висящего уже не от всевозможных назначений, а от все-
возможных пар назначений. Сформулируем одну ди-
скретную модель, известную под названием квадратич-
ной задачи о назначениях, и продемонстрируем сведение
к ней модели (3.1) —(3.2).
Квадратичная задача о назначениях заключается в
следующем. Даны числа ацЫ (i, j, k, 1=1,2,... ,п). Тре-
буется найти набор переменных Хц, принимающих зна-
чения 0 и 1, минимизирующий
3 2 3 S aijkixtjxki (3.3)
при условиях
Sx0 = l, /=1, 2, .п, (3.4)
2хн=1, /=1, 2, ...,п. (3.5)
Для сведения модели (3.1) — (3.2) к квадратичной за-
даче о назначениях введем* как и в обычной задаче о
назначениях, переменные
( 1, если центр i назначается на место /,
хи = \ о (3.6)
‘ I 0 в противном случае. ' '
Положим теперь
| сч + fHd/j, если i = k и / = /,
aiJkl I fikdji, если i^k или
Очевидно, что каждое слагаемое ацмХцХм в (3.3) будет
равно aijM в том и только в том случае, когда x,j = l и
*А1=1; в противном случае оно равно нулю. Соотношения
6 А. А. Корбут, Ю. Ю. Финкельштейн
82
ПРИКЛАДНЫЕ ЗАДАЧИ
(ГЛ. 3
же хц=1 и Хы=1 в терминах перестановок равно-
сильны Pi=j и ph—l- Получаем
п п п п п п
S 2j S aljklxijXkl = S 21 —
n n n n n n
“ z?iClPl + /?i ^lkdpipk = 2 Cipi + 2 S iijdpiPl.
Таким образом, целевая функция квадратичной задачи
о назначениях преобразована к виду (3.1). Условия
(3.4) — (3.5) этой задачи очевидны и интерпретируются
точно так же, как и в обычной задаче о назначениях.
Наконец, если необходимо учесть еще ограничения
типа (3.2), то проще всего это сделать, положив Сц—оо
для /^S(z); тогда соответствующие пары i, j не войдут
в оптимальный план (разумеется, при условии существо-
вания допустимого плана).
Решение квадратичной задачи о назначениях являет-
ся с вычислительной точки зрения нелегким делом. В на-
стоящее время для нее создано несколько точных и при-
ближенных методов; правда, точные методы реализуемы
лишь для задач сравнительно небольших размеров. Опи-
сание и сравнение (по результатам численных экспери-
ментов) нескольких приближенных методов дано в
статье Хиллиера и Коннорса [96]; там же приведена би-
блиография по данному вопросу.
3.2. Рассмотрим под несколько иным углом зрения описанные
выше модели задач о покрытии (см. § 3 гл. 2). Напомним, что за-
дача о покрытии заключается в минимизации
S X) (3.7)
/-1
при условиях
{о
/•1,2,..., л, /-1, 2, т, (3.8)
1, /=1
причем все коэффициенты сщ равны 0 или 1.
Наряду с задачей о покрытии часто рассматривается взвешен-
ная задача о покрытии, заключающаяся в минимизации
S CfX, (3.7')
/=|
при условиях (3.8). Здесь Су —заданные вещественные числа.
§ 3]
ЗАДАЧИ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ
83
Комбинаторная интерпретация этих моделей, оправдывающая
их название, также была дана в § 3 гл. 2. Однако сейчас нас будет
интересовать совершенно иной круг их приложений, примыкающий к
вопросам дискретного анализа, математической логики и синтеза схем.
Сначала дадим общее описание вопроса в терминах синтеза
схем. Задачу синтеза схем можно представить следующим образом.
Под схемой понимается некоторое устройство с р булевыми вхо-
дами и одним булевым выходом. Требования к этой схеме предъ-
являются в виде списка, сопоставляющего каждой из 2? возможных
комбинаций нулей или единиц на входе соответствующее значение
(О или 1) на выходе. Тем самым указанный список (таблица) за-
дает некоторую булеву функцию, т. е. функцию, заданную на мно-
жестве р-мерных векторов с компонентами 0 и 1 и принимающую
значения 0 и 1 (см. [9а]). Это обстоятельство дает возможность
параллельной интерпретации вопросов синтеза на логическом языке;
однако мы будем проводить соответствующие аналогии лишь ми-
моходом.
Задачей синтеза является: 1) построение схемы, реализующей
данную булеву функцию, 2) нахождение среди всех таких схем
наиболее экономной в . определенном смысле. Этим двум проблемам
соответствует поиск допустимого и оптимального плана в задачах
математического программирования. Способы решения первой из этих
проблем известны достаточно давно; один из конструктивных под-
ходов ко второй может быть указан в терминах целочисленного ли-
нейного программирования.
Схема синтезируется из элементов, которые могут представлять
собой реле, электронные лампы, полупроводниковые приборы и т. п.
Однако техническая реализация этих элементов (и схем в целом)
для нас сейчас совершенно безразлична. Важно лишь, что каждый
элемент может находиться в одном из двух состояний (например,
реле замкнуто — реле разомкнуто). Состоянию элемента «выключе-
но» мы будем сопоставлять 0, состоянию «включено» — 1. Элементы
можно соединять в блоки (цепи) двух типов: а) блоки, дающие на
выходе 1 только в том случае, если все входы равны 1, б) блоки,
дающие на выходе 1, если хотя бы один из входов равен 1. Блоки
типа а) представляют собой' последовательное соединение элемен-
тов, а блоки типа б) — параллельное соединение. Можно ограни-
читься рассмотрением схем, состоящих из нескольких блоков типа
а) (входы которых являются входами схемы), соединенных в один
блок типа б); выход последнего и является выходом схемы.
Этим понятиям можно дать и чисто алгебраическую трактовку.
Действительно, придавая символам 0 и 1 указанный выше смысл,
можно сопоставить соединению элементов в блоки типа а) опера-
цию «умножения», подчиняющуюся таблице умножения
X 0 1
0 0 0
1 0 1
(3.9)
6*
84
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
а соединению их в блоки типа б) — операцию «сложения» с пра-
вилами
(3.10)
Определенные этими таблицами операции умножения и сложе-
ния называются булевыми операциями-, полученная нами система с
этими операциями представляет собой простейший случай так на-
зываемых булевых алгебр. Мы видим, что «булева арифметика» от-
личается от обычной лишь тождеством 1 + 1 = 1.
Далее, булевы операции предполагаются ассоциативными:
abc = (ab) с = a (be), 1
a + d + c = (a + 6) + c = а + (b + c) J
и дистрибутивными:
а (Ь + с) = ab + ас. (3.12)
Кроме того, для любого элемента а единственным образом опреде-
лено его дополнение а', обладающее свойством
аа'=0, а+а'=1.
Здесь под а, 6, с понимаются любые элементы булевой алгебры
(в нашем случае — нули и единицы). Дополнением нуля является
единица, дополнением единицы — нуль. Дополнение а часто обозна-
чают через 1 — а.
Отметим, что в логике булеву умножению отвечает конъюнкция,
булеву сложению — дизъюнкция, дополнению — отрицание.
Из сказанного вытекает, что задача синтеза схемы с данными
свойствами эквивалентна задаче аналитического представления буле-
вой функции (заданной посредством таблицы) в виде суперпозиции
булевых операций над ее переменными. Поскольку мы ограничи-
ваемся схемами описанного выше вида, это аналитическое выраже-
ние должно представлять собой булеву сумму членов, каждый из
которых является произведением булевых переменных (и их допол-
нений).
Итак, пусть нам задана таблица значений *) булевой функции
F=F(ti, £2, • • •> £р)» т- е. таблица, в которой каждому из 2? век-
торов размерности р, состоящих из нулей и единиц, сопоставляется
нуль или единица. Будем искать аналитическое выражение этой
функции. Известный способ его построения заключается в следую-
*) Такую таблицу часто называют «таблицей истинности».
§ 3] ЗАДАЧИ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ 85
щем. Отметим в таблице булевой функции F все строки Z, в кото-
рых F—1, Пусть (|р ^2» •••> ёр)~ некоторый (i-й) набор, для ко-
торого ёг» •••* ёр)я1- Образуем для этого набора произве-
дение
Р/ = ПЬ, (3.13)
fe=l
где
{lk, если l°k = 1,
1 - gft> если %°к = 0.
Произведения вида (3.13) называются фундаментальными про-
изведениями. Составим теперь фундаменталэное произведение Pi
для каждой строки Z, в которой F—\ (количество таких строк обо-
значим через пг) и образуем булеву сумму этих
ш
(3.14)
2 — 1
Формула (3.14) и дает нам аналитическое выражение требуемого
вида. Теперь можно перейти ко второй проблеме синтеза — нахо-
ждению «простейшего», или «наиболее экономного» в определенном
смысле аналитического выражения; сами эти понятия будут уточ-
нены далее.
Введем еще одно важное понятие. Импликантом функции F на-
зывается произведение вида
/- П Ik, (3.15)
k^S
где S — некоторое подмножество множества индексов {1, 2, ..р},
обладающее тем свойством, что из /=1 следует Г=1 и такое, что
при любом S'czS произведение
п ь
fees'
(т. е. любой собственный подмножитель (3.15)) этим свойством уже
не обладает. Иначе говоря, импликант есть произведение перемен-
ных и их дополнений, составленное из минимального числа сомно-
жителей и равное 1 только в случае Г=1. Наиболее экономное
представление мы будем искать в виде булевой суммы импликантов,
содержащей минимальное число слагаемых.
Таким образом, нам нужно знать способ построения всех им-
пликантов функции F. Для этого исходят из представления (3.14)
и пытаются упростить его путем применения следующих двух
правил,
86
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
Правило I. Если представление (3.14) содержит выражение I
вида +Р}2, где слагаемое входит множителем в Pi2, то I
вычеркнуть из суммы Pi2.
Правило II. Если представление содержит выражение вида ]
то приживить к сумме выражение РцР^ *) при |
условии, что: а) РцР^ не содержит произведений вида £/(1 — %i) |
(ибо в этом случае ®0) и б) РцР^ не содержит подмно-
жителя, уже фигурирующего в сумме в качестве отдельного сла-
гаемого.
Формирование импликантов происходит следующим образом.
К (3.14) последовательно применяют правило I; если его примене-
ние невозможно — правило II. Если невозможным становится при-
менение обоих правил, процесс окончен, полученная в результате
сумма -состоит из всех импликантов.
Только теперь мы, наконец, подготовлены к формулировке за-
дачи оптимального синтеза схемы в виде задачи о покрытии. Пусть
Pi, Рг, ...» Рт фундаментальные произведения функции г, а
71, /г, ..., 1п — ее импликанты. Положим
(1, если // является подмножителем Р/,
(3.16)
О в противном случае.
Иначе говоря, ац=Л означает, что из Pj = l следует 7j = l.
Введем теперь переменные
{1, если импликант j войдет в представление,
л (3.17)
О в противном случае.
Требуется найти набор с минимальным количеством импликантов.
Это значит, что следует минимизировать функцию (3.7) (мы пере-
ходим теперь от булевого сложения к обычному!) при условии, что
все единичные значения функции F будут при этом обеспечены.
Очевидно, что последнее требование как раз и выражается неравен-
ствами, фигурирующими в (3.8). Таким образом, мы действительно
пришли к задаче о покрытии.
Можно считать также, что каждому импликанту 7j приписан
«вес» Cj (который может отражать, скажем, затраты на техниче-
скую реализацию соответствующего этому импликанту блока).
В этом случае можно говорить о нахождении схемы с минималь-
ным суммарным «весом». Ясно, что это требование описывается
взвешенной задачей о покрытии (3.7'), (3.8).
Обилие и новизна введенных в этом пункте понятий делают
желательным иллюстративный пример. Пусть функция F от четырех
♦) При этом следует помнить, что
§ 3] ЗАДАЧИ ЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ 87
булевых переменных (р=4) описывается приводимой ниже
таблицей.
СЛгС Вз ь F
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
♦ 0 1 0 1 1
0 1 1 0 0
♦ 0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
* 1 1 0 0 1
• 1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Здесь т=4 (соответствующие строки отмечены слева звездоч-
ками), так что представление (3.14) будет иметь вид
F «(1 - 51) Ь (1 - Ь) &4 + (1 - 51) Ыз|4 +
+(I - Ь) (1 - Ь) + (1 - 5з) 54. (3.149
Теперь приступим к поиску импликантов. Рассмотрим первые два
слагаемых (3.14') и применим к ним правило II. Тогда к этим сла-
гаемым добавится произведение (1 — 50 (1 ~ 50 т. е.
(1 — 61)6264; после этого двукратное применение правила I вычерк-
нет первые два слагаемых, и мы получим
- (1 - 51) Ы4 + 6162 (I ~ 5з) (1 - 50 + 6162 (1 - 5з) 64. (3.14")
Применяя теперь правило II к первому и третьему слагаемым по-
лученного выражения, добавим к нему произведение 5г (1 — 63)64»
а затем, согласно правилу I, вычеркнем последнее слагаемое (3.14").
Таким образом,
Р “ (1 - 51) Ы* + 52 (I - 5з) 14 + 61^2 (1 - 5з) (1 - 50- (3.14"')
Еще раз применяем правило II ко второму и третьему слагаемым
(3.14'"), пользуемся затем правилом I и окончательно получаем
представление
р =*(1 ~ 50 6264 + 52 (I - Ы 54 + 5152 (1 - 5з),
88
ПРИКЛАДНЫЕ ЗАДАЧИ
1ГЛ. 3
к которому правила I и II уже неприменимы. Таким образом, и=3,
и мы получили импликанты
/з = и2(1-Ы.
Теперь можно составить 4хЗ-матрицу по правилу (3.16). Пер-
вый импликант входит в первое и второе фундаментальные произ-
ведения, второй — в первое и четвертое, третий — в третье и чет-
вертое. Тем самым
\\ац\\ ~
1
1
О
О
1
О
о
1
о
о
1
1
(3.16')
и наша задача о покрытии приобретает вид: минимизировать
xi + х2 + х3
при условиях
*1 + х2 >1,
> I,
Хз 1,
*2 + *з> 1,
Xit *2, Х3 —
Но оптимальное решение этой задачи выписывается сразу, так как
из ограничений следует, что Х1®=1 и хз==1, после чего нужно поло-
жить Г2=0. Таким образом, в минимальное представление функции
F войдут первый и третий импликанты, т. е.
^=(1 - - Ь).
Из приведенного примера видно, что решение задач о покрытии
часто облегчается учетом специфической структуры матрицы огра-
ничений. Действительно, имеется ряд простых приемов сокращения
матриц задач о покрытии; они основаны на идеях, близких к идеям
доминирования стратегий в матричных играх. По этому поводу см.,
например, обзорную статью Балинского [50].
Отметим, что в логике и дискретном анализе описанной про-
блеме отвечает проблема минимизации дизъюнктивных нормальных
форм.
В заключение обратим внимание на возможность еще одной,
чисто комбинаторной интерпретации задачи о покрытии. Именно,
пусть дана матрица, состоящая из нулей и единиц. Требуется вы-
делить в ней такой минимальный набор столбцов, что стоящие в
этих столбцах единицы фигурируют в каждой строке матрицы, хотя
бы по одному разу. В этом смысле можно сказать, что выделяемые
столбцы образуют «покрытие» строк матрицы.
ЗАДАЧИ ТЕОРИИ РАСПИСАНИИ
89
§ 4)
§ 4. Задачи теории расписаний
4.1. Весьма важной в прикладном отношении являет-
ся так называемая общая задача теории расписаний.
В отечественной литературе эту задачу обычно назы-
вают задачей календарного планирования. Общую ее
схему можно описать следующим образом. Имеется m
станков и п деталей, каждая из которых должна пройти
обработку на всех станках в определенном порядке. Этот
порядок может быть одинаковым для всех деталей,
либо различным для разных их групп. При этом произ-
водственные операции считаются неделимыми (начав
обработку детали / на станке i, мы должны довести эту
обработку до конца, не имея права прерывать ее).
Задана матрица Л = ||а^||, где atj>0— время, необ-
ходимое для обработки /-й детали на i-м станке (atj=O
для тех деталей /, которые не требуют обработки на стан,
ке 0- Требуется указать такой порядок запуска деталей
в обработку, который минимизировал бы общее время вы-
полнения всех работ (длину производственного цикла).
Непосредственному решению (путем перебора всех
вариантов) эта задача не поддается, так как при этом
уже в простейшем случае одинакового порядка прохо-
ждения деталей пришлось бы выбирать наименьшую
из га! величин. При больших п это практически неосу-
ществимо даже с использованием быстродействующих
электронных машин. Несмотря на огромное прикладное
значение этой задачи (описанная модель или ее вариан-
ты являются схемами основной массы задач по органи-
зации производства), пока удалось получить ее решение
только для случая*) т = 2. Вместе с тем случай т>2
до сих пор доставлял весьма серьезные теоретические и
вычислительные затруднения. Постановка задач этого
класса в виде целочисленных задач линейного програм-
мирования является одним из перспективных способов
продвижения в этом направлении.
4.2. Известно несколько формулировок задачи теории
расписаний в виде целочисленных задач линейного
программирования. Опишем одну из возможных поста-
*) См § 3 гл. 12,
90
ПРИКЛАДНЫЕ ЗАДАЧИ
(ГЛ. 3
новок, основой для которой является идея А. Манна [114];
см. также [98], гл. 12.
Не умаляя общности, можно считать ац целыми чис-
лами. Составление графика обработки деталей будем
связывать с «календарем», «дни» которого занумерованы
целыми числами 0, 1,..., Т, где Т настолько велико, что-
бы заведомо обеспечить возможность обработки всей
партии.
Введем неотрицательные целочисленные переменные
xi}, принимающие значения 0, 1,..., Т. Здесь хц указы-
вает «дату» начала обработки i-м станком /-й детали.
Рассмотрим условия, которым должны удовлетворять Хц.
1) Прежде всего нужно наложить ограничение, не до-
пускающее одновременной обработки на одном станке
двух деталей. Для этого моменты начала обработки лю-
бых двух деталей /, k должны отстоять по «календарю»
не менее чем на длительность обработки той из них, ко-
торая запускается первой, т. е.
Хц-х1к>а1к или xih-xi^atj. (4.1)
В обычную задачу линейного программирования альтер-
нативное условие типа (4.1) ввести нельзя. Мы конкрети-
зируем прием обработки альтернативных условий, опи-
санный в § 4 гл. 2. Определим целочисленные перемен-
ные уцк, принимающие значения 0 или 1. Тогда (4.1)
можно переписать в виде
(T + auJyijk + fxij-Xi^aib, (4.2)
(7' + а/у)(1 — yijk) + (xtk — ХцУ^ац. (4.3)
Отметим очевидное неравенство выте-
кающее из определения Т. Ясно, что случай хц — xiA=0
невозможен (т. е. обработка двух разных деталей не мо-
жет начаться на одном станке одновременно), ибо в этом
случае неравенства (4.2) удовлетворялись бы только при
Уцк=\, а неравенства (4.3) —только при Если
хц — Xik>0, то уцк в (4.2) может быть равен нулю или
единице, а в (4.3) — только нулю, так что единственным
возможным значением здесь будет уцк=0. Если же
Хц—Xih < 0, то yijk в (4.2) может быть равен только еди-
нице, а в (4.3) — и нулю и единице, так что в этом случае
возможно ЛИШЬ ^=1.
§41
ЗАДАЧИ ТЕОРИИ РАСПИСАНИИ
91
Отсюда ясно, что уць=0, если на i-м станке обра-
ботка /г-й детали предшествует обработке /-й детали и
= l в противном случае.
2) Теперь следует отразить условия на заданный
технологический порядок прохождения деталями обра-
ботки на станках. В данной формулировке в принципе
безразлично, является ли этот порядок одинаковым для
всех деталей или нет. Именно, если деталь / должна
быть обработана сначала на станке i, затем на станке /,
то мы должны иметь
xij~xij^ aij- (4-4)
Отсюда ясно, что случай х/} — x{j=0 (т. е. одновре-
менное начало обработки одной детали на двух станках)
возможен лишь при а^=0, т. е. тогда, когда данная де-
таль на одном из этих станков вообще не должна обра-
батываться.
Для некоторых деталей условие упорядочения может
налагаться лишь в следующей ослабленной форме: де-
таль / должна пройти сначала обработку на станках it
и i2 (в любом порядке), затем на станке I. Тогда усло-
вие (4.4) заменится следующими двумя условиями:
хи - xi.l > ai,j, Хц - xtll alal. (4.4а)
Можно дать еще вариант условий этого типа, считая, что
деталь / между обработкой на станках i и I должна про-
лежать время х<и (целое число). В этом случае
хц~ хц~ац + х,и- (4.46)
3) Могут быть наложены дополнительные условия
«на отправку» (т. е. на сроки окончания отдельных ра-
бот). Так, если‘обработка детали / на станке i должна
быть закончена к сроку d^, то
ха + а{)^а1}. (4.5)
4) В качестве критерия оптимальности принимается
минимизация общего времени обработки партии. Пусть
Ц^Т)— дата полного завершения работ. Нужно мини-
мизировать t при условиях
xij + aij^t, /—1,2......т; j = 1, 2, ..п (4.6)
92
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
и при условиях (4.2), (4.3), (4.4) (или его вариантах) и,
возможно, еще при условиях (4.5).
Всего в этой модели приходится вводить р = тп+
+ mCn — mn{l + переменных (не считая t и свобод-
ных переменных). Эти переменные, кроме того, должны
быть целочисленными. Для реальных задач даже самых
скромных размеров это приводит к весьма громоздким
моделям (так, при т = 5 и п=10 мы получаем р=275).
Однако описанная модель, по-видимому, является одной
из наиболее экономных в смысле размеров получающей-
ся целочисленной задачи.
Здесь мы не будем более подробно останавливаться
на задаче теории расписаний, поскольку нашей непосред-
ственной целью было лишь описание соответствующей
дискретной модели. Разумеется, подобное сведение да-
леко не исчерпывает всех аспектов проблемы — прежде
всего по той причине, что оно приводит к серьезным вы-
числительным трудностям. Поэтому большую роль в ре-
шении задач теории расписаний играют различного
рода приближенные и эвристические методы.
Читатель, интересующийся теорией расписаний, мо-
жет получить довольно полное представление о совре-
менном состоянии вопроса, ознакомившись со сборником
переводов «Календарное планирование» [98]. Отметим
также книгу [41].
§ 5. Другие прикладные задачи
Мы уже отмечали, что в настоящий момент вряд ли
возможно дать исчерпывающую классификацию при-
кладных задач дискретного программирования. Здесь бу-
дет описано еще несколько моделей, различных по своему
характеру, но базирующихся в основном на уже извест-
ных читателю идеях.
5.1. Рассмотрим следующую упрощенную задачу о
наилучшем распределении памяти вычислительной ма-
шины. Пусть Щ, — /-я стандартная подпрограмма для
вычисления функции i в библиотеке подпрограмм
‘(/=1,2, ...,т; /=1, 2,..., п). Подпрограмма зани-
мает pij ячеек памяти и требует для счета ty сек. Тре-
$ 5J ДРУГИЕ ПРИКЛАДНЫЕ ЗАДАЧИ 93
буется составить «программу» П, которая определяется
заданием некоторого набора I индексов is т. е. функций,
подлежащих вычислению (наличием иных команд пре-
небрегаем). При этом следует для составления програм-
мы П указать такой набор подпрограмм П«, чтобы длина
всей программы не превосходила М ячеек, а время счета
по ней было минимальным.
Как обычно в подобных случаях, вводим переменные
( 1, если Пг, включается в П,
Хц = ] п (5.1)
1 ( 0 в противном случае.
Тогда наша задача сведется к минимизации
(5.2)
при условиях
п п
S Xl} = 1, i s Г, 2 PljXij < М. (5.3)
5.2. Некоторые задачи рационального раскроя мате-
риалов могут; быть естественным образом описаны цело-
численными моделями. В качестве примера приведем
следующий вариант задачи линейного (одномерного}
раскроя. Пусть имеется большое (практически неогра-
ниченное) число одномерных заготовок одинаковой дли-
ны L. Это могут быть трубы, прутки и т. п. Заготовки
следует разрезать на полосы (детали) т типов; длина
полосы типа i равна Ц, i=l,2,..., т. По данным чис-
лам L и Ц можно составить матрицу всевозможных спо-
собов раскроя Л = ||а^||, где каждое указывает коли-
чество полос типа I, получающееся из одной заготовки
при раскрое ее по способу /, /=1,2, ...,п. Таким обра-
зом, каждый способ раскроя / изображается столбцом
матрицы А; он характеризуется набором целых чисел
подчиненных лишь условию
- (5.4)
г = 1
(суммарная длина выкраиваемых из заготовки полос
не превосходит длины заготовки). Важно отметить, что
94
ПРИКЛАДНЫЕ ЗАДАЧИ
[ГЛ. 3
матрица А этой задачи не задана изначально, а строится, |
быть может, уже в ходе решения задачи. 1
Число способов раскроя даже в задачах с небольшим I
количеством полос может быть весьма внушительным.
Так, например, при £ = 70, /п = 2, /1 = 20, /2=15 мы полу- «
чим следующую матрицу:
/0 123221 1 1 0 0 0 0\
Л = \0 00012123123 4}‘
Здесь, например, 5-й столбец означает, что из одной за-
готовки можно выкроить 2 полосы по 20 и 1 полосу
по 15. Всего мы имеем 13 способов раскроя.
Пусть, кроме того, заданы потребности н =
= 1, 2,..., т в полосах типа I. Требуется выполнить это
плановое задание, раскроив минимальное число заго-
товок.
Если ввести переменные X/, означающие количество за-
готовок, подлежащее раскрою по способу /(/=1,2,..., п),
то эта задача сведется к минимизации
п
3 X, . (5.5)
/=1
при условиях
Xj^Q, Ху —целые числа, / = 1, 2...п, (5.6)
5 aijXj"^ bi, /=1, 2, ..., т. (5.7)
Постановку этой задачи можно несколько видоизме-
нить, приняв в качестве критерия оптимальности мини-
мизацию суммарной величины отходов при раскрое. Если
обозначить отходы от одной полосы при способе рас-
кроя j через Cj, то целевая функция (5.5) заменится на
п
2 с)Х}. (5.5')
Отметим, что при заданной матрице А отходы легко вы-
числяются как разности между левой и правой частями
(5.4).
5.3. Рассмотрим финансирование исследовательских
проектов. Пусть на протяжении Т лет возможно осуще-
ДРУГИЕ ПРИКЛАДНЫЕ ЗАДАЧИ
95
§ 51
ствление п исследовательских проектов. Ожидаемый эф-
фект проекта /, выражейный в «сегодняшних» единицах
полезности, составляет с}, /=1,2, ...,л. Затраты в год i
на осуществление проекта / составляют а общий ли-
мит капиталовложений на исследования в году i равен bi,
i = l, 2,.... Г. Требуется указать максимально эффектив-
ный набор проектов, не выводящий за пределы отпу-
скаемых вложений.
Формализация этой задачи очевидна: если обычным
образом ввести переменные
( 1, если проект / осуществляется,
Х}~I 0 в противном случае, ^-8)
то мы придем к задаче максимизации
п
при условиях
2 b{, 1=1, 2, Т.
(5.9)
(5.10)
5.4. Многие задачи из области экономики сельского
хозяйства приводят к целочисленным моделям. Рассмо-
трим, например, следующую упрощенную статическую
модель распределения тракторных работ [12].
Имеется п типов сельскохозяйственных машин и ш
видов работ, подлежащих выполнению в объемах bi,
i=l,2.....m (будем считать, что все эти объемы выра-
жены в гектарах). Заданы производительность /-й ма-
шины на i-й работе ац, а также себестоимость Лц обра-
ботки 1 га работы i машиной j. Себестоимость самих
машин (скажем, стоимость их покупки или аренды, взя-
тая с некоторым коэффициентом приведения) составляет
Cj, /=1,2, ...,п. Следует найти оптимальный машинный
парк для данного комплекса работ и указать его рас-
пределение по работам, чтобы выполнить задание и до-
биться минимальной суммарной себестоимости.
Обозначим через х, количество машин каждого типа,
а через уц— количество машин типа j, которое будет
96
ПРИКЛАДНЫЕ ЗАДАЧИ
(ГЛ. 3
выделено на работу L Тогда наша задача сведется к ми-
нимизации
п т п 2 CjXj + 2 bl 2 d{jyt) /=1 J i=\ У=1 (5.H)
при условиях Ху^О, Ху —целые; г//у^О, ytj — целые, (5.12)
Xj-^yij>0, /=1, 2, n; п (5.13)
Ijaijyij^bi, z= 1, 2, ...» m.
Отметим, что накладывать условие целочисленности
на уц не обязательно, так как нецелые у и здесь вполне
поддаются разумной интерпретации.
Таким образом, перед нами еще один пример задачи
с неделимостями. Модель эта существенно усложнится,
если дополнительно потребовать выполнения каждой ра-
боты в отведенные для нее агротехнические сроки; здесь
мы не будем на этом останавливаться.
Дискретность в сельскохозяйственных задачах может
возникать и другими путями. Так, например, в рамках
некоторой модели организации сельскохозяйственных
работ для отдельных технологических процессов может
оказаться разумным — в случае включения их в план —
осуществлять их с интенсивностью не ниже заданной
(скажем, посев некоторой культуры, если он будет осу-
ществлен, целесообразно производить на площади не
менее 5 га). Другой вариант: возделывание некоторой
культуры требует соответствующего объема затрат труда
и техники, а без этих затрат она возделываться не может.
Читатель, по-видимому, уже заметил, что первый из
этих примеров должен рассматриваться в рамках аль-
тернативных условий (п. 4.1 гл. 2), а второй — путем
введения фиксированных доплат (§ 5 гл. 2). Деталей мы
приводить здесь не будем, ибо они будут повторять ра*
нее сказанное.
ЧАСТЬ II
МЕТОД ОТСЕЧЕНИЯ
Этот раздел книги посвящен применению аппарата линейного
программирования для решения целочисленной задачи линейного
программирования, целочисленной задачи выпуклого программирова-
ния и некоторых других задач. Все излагаемые здесь алгоритмы в
той или иной форме используют идею постепенного введения допол-
нительных линейных ограничений — правильных отсечений.
В гл. 4 кратко изложены необходимые предварительные сведе-
ния из теории выпуклых множеств и линейного программиро-
вания.
Главы 5—8 посвящены различным алгоритмам метода отсе-
чения.
В гл. 5 излагается идея метода и первый алгоритм, реализую-
щий эту идею, — алгоритм Гомори для полностью целочисленной
задачи линейного программирования [88], [84].
В гл. 6 собран ряд алгоритмов, построенных по той же логи-
ческой схеме, что и первый алгоритм Гомори^ но отличающихся от
него способом построения правильных отсечений. Это второй алго- '
ритм Гомори [85] для частично целочисленной задачи линейного
программирования, алгоритм Дальтона и Ллевелина [62] для ча-
стично дискретной задачи линейного программирования, В-алгоритм
Финкельштейна [29] для частично целочисленной задачи линейного
программирования с булевыми переменными и упрощенный алго-
ритм Данцига [67].
В гл. 7 излагается третий алгоритм Гомори [86] для полностью
целочисленной задачи линейного программирования (дискретный
или полностью целочисленный алгоритм, как его называют в лите-
ратуре) и его исследование и модификация, данные Финкельштей-
ном [32].
В гл. 8 излагаются некоторые новые приемы, позволяющие пе-
ренести изложенные в предыдущих главах алгоритмы целочислен-
ного линейного программирования на значительно более широкий
класс задач.
Гл. 9 посвящена анализу эффективности алгоритмов метода
отсечения; здесь приведены некоторые результаты вычислительных
экспериментов.
Во второй части книги изложены не все алгоритмы метода от-
сечения. Например, не излагается здесь алгоритм Мартина [116],
являющийся, судя по литературе (см., например, [50]), наиболее
эффективной модификацией 1-го алгоритма Гомори. Этот алго-
ритм не рассмотрен здесь потому, что в литературе отсутствует
достаточно полное его изложение. В работе Мартина [116] не только
7 А. А. Корбут, Ю. Ю. Финкельштейн
98 НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ [ГЛ. 4
отсутствует доказательство конечности, но и опущены некоторые
существенные детали алгоритма.
Не изложены здесь также некоторые работы по выпуклому це-
лочисленному программированию (см. начало гл. 8), эффективность
которых пока неясна. Следует отметить, что новые приемы, изло-
женные в гл. 8, применимы к значительно более широкому классу
задач.
Из-за недостатка места здесь не изложен и ряд других работ
по методу отсечения, в частности работа Юнга [128] и некоторые
другие работы, посвященные (практически пока мало испытанным)
прямым алгоритмам метода отсечения. Прямые алгоритмы метода
отсечения являются в некотором смысле переносом метода после-
довательного улучшения плана (прямого симплекс-метода) на за-
дачи целочисленного линейного программирования, в то время как
изложенные нами алгоритмы могут быть названы двойственными —
в них к задачам целочисленного линейного программирования при-
спосабливается метод последовательного уточнения оценок (двой-
ственный симплекс-метод).
ГЛАВА 4
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ
СВЕДЕНИЯ
В этой главе сообщаются в весьма сжатой форме не-
обходимые сведения из теории выпуклых множеств и
линейного программирования. Введены основные поня-
тия, сформулированы некоторые теоремы. Изложение в
максимальной степени согласовано с книгой Д. Б. Юди-
на и Е. Г. Гольштейна [45] (вышедшей ранее в серии
«Экономико-математическая библиотека»),к которой чи-
тателю и следует обратиться при необходимости за более
подробными сведениями.
В этой же главе дана формальная постановка задачи
целочисленного линейного программирования.
§ 1. Основные понятия линейного программирования
1.1. Задача линейного программирования формули-
руется следующим образом.
Максимизировать
Хо SS С{Х{ + С2Х2 + ... +cn-v
(1.1)
§ I] ОСНОВНЫЕ ПОНЯТИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 99
при условиях
ап*1 4-<ii2x2 4- ... + aInxn = bh )
anXf + aZ2x2 + ... + az„x„ = bh |
0M.lXl "I" ^Z+l.2^2 4* • •• 4" Cll+i,nXn &t+I,
&mlXi 4" Gm2X2 4” ... 4" атпХл bm,
Xj^Q, 2, ..n
или, в более лаконичной записи:
Максимизировать
Хо = 2 CjX)
при условиях
п
'^ciijXj^bt,
п
^atlXf^bt, i = l+\.......... т,
Xj^O, j= 1, 2, ..n.
(1.2)
(1.3)
(1.4)
(1.1')
(1.2Э
(1.3')
(1.4')
Множество наборов (xj,..., xn), удовлетворяющих усло-
виям (1.2) — (1.4), называется областью определения за-
дачи линейного программирования (1.1) —(1.4). Вектор
Х= (хь ..., хп), удовлетворяющий условиям (1.2) — (1.4),
называется планом (или допустимым решением} задачи
(1.1) —(1.4). Расширенным планом задачи (1.1) — (1.4)
п
называют набор Х= (х0, хь ..., хп), где x0='^iCjXj и
(*ь..., хп) — план задачи (1.1) — (1.4).
План Л” = (х*...х*), обращающий в максимум ли<
нейную форму (1.1), называется оптимальным планом
(или решением) задачи (1.1) — (1-4). Расширенный план
л* называется оптимальным расширенным планом, если
план X* оптимальный.
Иногда бывает удобно ввести следующие обозначв'
—область определения задачи (1.1) — (1.4);
к , С) задача (1.1) — (1.4); Х(«5’, С) — оптимальный
7*
100
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
[ГЛ. 4
план задачи (1.1) —(1.4), X(J?, С) —оптимальный рас-
ширенный план. Через -З"2 обозначим множество опти-
мальных планов задачи («23, С).
Матрично-векторная запись задачи линейного про-
граммирования:
Максимизировать
СХ (1.5)
при условиях
А'Х = Ь', (1.6)
А"Х^Ь", (1.7)
Х>0.
(1.8)
Ясно, что задача минимизации линейной формы СХ при
условиях (1.6)— (1.8) сводится к задаче максимизации
линейной формы (—СХ) при тех же условиях.
Задача линейного программирования называется раз-
решимой, если существует оптимальный план(Хр .... х*).
1.2. Часто оказывается удобной каноническая форма
задачи линейного программирования.
Максимизировать
(1.9)
/=i
при условиях
п
^aijXj = bh (1.10)
х7>0, /=1......п. (1.11)
Задача (1.Г)— (1.4') легко сводится к задаче (1.9) —
(1.11) введением новых неотрицательных переменных
Xn-i+i (1=1+1,т) и заменой неравенств (1.3') урав-
нениями
S aijXj + хп.м = bh i = l+l,...,m, (1.12)
хп_/+<>0, / = /+1.....т. (1.13)
$IJ ОСНОВНЫЕ ПОНЯТИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ 101
Вектор-столбец А} = I •
\ amj
называется /-м вектором
условий задачи (1.9) —(1.11). Вектор-столбец В =
называется вектором ограничений задачи (1.9) — (1.11).
1.3. Геометрическая интерпретация задачи линейного
программирования иллюстрирует исходные понятия (и
методы решения). Приведем пример.
Максимизировать
Хо = + х2
при условиях
2 "Ь х2 1,
4" Х1 "Ь Х2
Х1 0, х2 0.
Геометрическая интерпретация приведена на рис. 4.1.1.
102
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
[ГЛ. 4
Область определения задачи заштрихована. Точке М
соответствует оптимальный план (х*, Xg) = (4/3, 4/3). На-
правляющий вектор С прямой PQ определяет направле-
ние, в котором растет линейная форма х0.
§ 2. Выпуклые множества
2.1. Рассмотрим множество G, лежащее в п-мерном
евклидовом пространстве Еп, Множество G называется
выпуклым, если вместе с любыми своими точками А и В
оно содержит соединяющий их отрезок
рД + (1 — ц)В,
Если G — выпуклое множество и точки Рь ... ,Р8 со-
держатся в G, то в G содержится и их выпуклая линей-
ная комбинация
S S
^(LiPi, а/0, / = 1, ..s; £af = l.
z=i i=i
Общая часть произвольного числа выпуклых множеств
есть выпуклое множество.
п
2.2. Говорят, что гиперплоскость Х) = с
разделяет множества Gt и б2, если (Л, Х)^.с для всех
X<=Gr и (Л, Х)>с для всех XeG2. Если все неравен-
ства, входящие в определение, будут строгими, то гово-
рят, что гиперплоскость (Л, Х)=с строго разделяет мно-
жества Gt и О2.
Теорема 2.1 (теорема о строго разделяю-
щей гиперплоскости). Пусть G\ и G2 — произволь-
ные выпуклые замкнутые множества без общих точек, из
которых хотя бы одно ограничено. В этих предположе-
ниях существует гиперплоскость, строго разделяющая
множества Gt и G2.
2.3. Точка Р множества G называется крайней, если
не существует двух различных точек Р\ и Р2 из G таких,
что
P = piPi + (l — р)Р2.
где
0<р<1.
ВЫПУКЛЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА
103
§ 31
Будем говорить, что множество G является выпуклой
оболочкой V(Gi) множества Gb если оно состоит из все-
возможных выпуклых линейных комбинаций
n
i= 1, ..N; 2цг = 1-
г-i <=1
Здесь Pi,.. •. Pn—произвольная конечная система то-
чек из (?ь
Теорема 2.2. Если Р и Q<— некоторые множества,
PzQ, то V(P)^V(Q).
Теорема 2.3 (теорема о представлении}.
Пусть G — выпуклое замкнутое ограниченное множество
и G* — совокупность его крайних точек. Тогда G яв-
ляется выпуклой оболочкой множества G*.
Теорема 2.4. Всякое непустое выпуклое замкнутое
ограниченное множество содержит хотя бы одну край-
нюю точку.
§ 3. Выпуклые многогранные множества
и линейное программирование
3.1. Множество .3?, задаваемое конечной системой ли-
нейных уравнений и неравенств, будем называть вы-
пуклым многогранным множеством.
Это определение (охватывающее и область определе-
ния задачи линейного программирования) оправды-
вается следующей теоремой.
Теорема 3.1. Множество 3? является выпуклым
замкнутым множеством.
3.2. Выпуклым многогранником называется ограни-
ченное выпуклое многогранное множество. Область опре-
деления задачи линейного программирования часто бу-
дем называть также многогранным множеством (или
многогранником) планов, опуская слово выпуклое (вы-
пуклый) .
3.3. Подмножество G выпуклого многогранного мно-
жества З’ называется «/-мерной гранью 3?, если:
а) размерность G равна
v, б> из условий Х = аХ'+ (1 — a)X"&G, 0 < а < 1, и
л > л следует, что X',X"^G.
104
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
(ГЛ. 4
При q=0 это определение превращается в ©пределе-
ние крайней точки множества -2’.
Крайняя точка выпуклого многогранного множества
•S’ называется вершиной (опорным планом).
Ребро выпуклого многогранного множества — это
одномерная грань.
3.4. Теорема 3.2 (теорема о представле-
нии выпуклого многогранника). Произволь-
ный выпуклый многогранник J? совпадает с совокупно-
стью точек X вида
N
X=^atXi, (3.1)
i-i
где Xit i = 1, ..., N — вершины многогранника,
N
2а/ = 1, azJ>0, «=1, .... N.
i-i
Другими словами, содержание теоремы 3.2 можно вы-
разить следующим образом: если & — выпуклый много-
гранник и-г*— множество его вершин (опорных пла-
нов), то
V (-?*) =-S’.
Теорема 3.2' (теорема о представлении
выпуклого многогранного множества).
Произвольное многогранное множество & совпадает с
совокупностью точек X вида
N, Ni
X=SazXz+ 2 (3.1')
/Vi
где = a^O, »=1, ...» ₽^0, 1-1......N^,
i-i
Xi — вершины .S’, Pt — направляющие векторы неогра-
ниченных ребер Sf.
Теорема 3.3. Множество Т, состоящее из точек,
представимых в виде (3.1) (где Xi,...,XN—произволь-
ная конечная система точек), является выпуклым много-
гранником.
Теорема 3.3'. Множество S’, состоящее из точек,
представимых в виде (З.Г) (где Xj,...,Xы,—произволе-
$ 3] ВЫПУКЛЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА 105
ная конечная система точек), является выпуклым много-
гранным множеством.
3.5. Теорема 3.4. Если множество планов задачи
цд) — (1.4) не пусто, то среди ее планов имеется хотя бы
один опорный план.
Теорема 3.5. Всякая разрешимая задача линейного
программирования имеет хотя бы одно опорное решение
(опорный оптимальный план).
Теорема 3.6. Если множество & планов задачи ли-
нейного программирования не пусто и линейная форма
задачи ограничена сверху на^, то рассматриваемая за-
дача разрешима, т. е. обладает хотя бы одним реше-
нием.
Множество вершин (опорных планов) многогранного
множества будем обозначать через «2’*.
3.6. Определение опорного плана для канонической
задачи можно записать следующим образом: план Х=
= (х],...,хп) задачи (1.9) — (1.11) называется опорным,
если векторы условий, отвечающие его положительным
составляющим, линейно независимы.
Систему линейно независимых векторов условий,
включающую все те А}, для которых х}>0, принято на-
зывать базисом опорного плана X— (хь ..., хп). Компо-
ненты опорного плана, связанные с векторами базиса,
иногда называют базисными компонентами (а соответ-
ствующие переменные — базисными переменными), а
остальные компоненты небазисными компонентами (а со-
ответствующие переменные небазисными переменными).
Если
Х = (хь ... , Хп)
— опорный план задачи линейного программирования
(заданной в каноническом виде), Ац, .... А/к— базис
опорного плана X,
£={/i.....М>
и
ЛГ={1, ..., п}\В,
то целевую функцию х0 и все переменные Х\, ..., хп
можно линейно выразить через небазисные переменные
106
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
[ГЛ. 4
(взятые со знаком минус)
Xi!=‘Xi0+ 2 Хи(— Xi), i — 0, 1, .... n.
i<=n
Здесь
xto=Xi, i=0,1, ..., n.
Введем следующие обозначения:
{0, 1....n}=Qn; {0}UB=B°; {0}UA/=№.
Таблицу
“ II XIJ II/ e q"; / s №
будем называть симплексной таблицей (полной). Слово
«симплексная» часто будем опускать, но это не вызовет
каких-либо недоразумений.
Таблицу
Те “ II xij ||г s во. j s No
будем называть сокращенной симплексной таблицей.
Следует отметить, что полная симплексная таблица ино-
гда более удобна в теоретических вопросах, сокращен-
ная же симплексная таблица занимает меньше места и
поэтому более удобна при практических расчетах.
3.7. Опорный план задачи линейного программирова-
ния (1.9)—(1.Н) называется невырожденным, если чис-
ло соотношений системы (1.10) — (1.11), которым он удо-
влетворяет как равенствам, равно п (естественно, эти
соотношения должны быть линейно независимыми).
В противном случае опорный план называется вырожден-
ным (вырожденный опорный план обращает в равенство
более чем п соотношений (1.10) — (1.11)).
Задача линейного программирования называется не-
вырожденной, если все ее опорные планы не вырождены.
В противном случае задача линейного программирования
называется вырожденной.
Определение невырожденного опорного плана задачи
линейного программирования, записанной в канониче-
ской форме, можно сформулировать следующим образом.
$ 3]
ВЫПУКЛЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА
107
Опорный план X задачи (1.9) —(1.11) называется не-
вырожденным, если все его базисные компоненты поло-
жительны. Базис невырожденного опорного плана опре-
деляется однозначно. Вырожденному опорному плану
может соответствовать несколько базисов.
3.8. Теорема 3.7. Для того чтобы расширенный
опорный план X' = (x'Q, x'v х'п) был оптимальным, не-
обходимо и достаточно, чтобы нашелся такой базис В
(W={1 п}\ Я), что
xi~x't + г==0, !>•••> п» (3.2)
xOj^O, j^N. (3.3)
3.9. Пусть линейные ограничения (1.10) задачи
(1.9) — (1.И) записаны в виде
Xi = x{0+^Хц(-Xj), i = 0, 1, ..., п, (3.4)
Т - II хч ||, s е No (3.5)
соответствующая симплексная таблица,
X (х„ .... хп) = (х10, ..., хп0), (3.6)
и
X SS (х0> xlt . . ., Хп) = ( 2 CjXj, xt.хп) . (3.6')
\/«“1 /
Если
хго>О, 1=1, п, (3.7)
то симплексная таблица Т называется допустимой, а век-
тор X является опорным планом задачи (-2’, С).
Если
хоу>О для всех j^N, (3.8)
то симплексная таблица Т называется нормальной*),
вектор X называется псевдопланом задачи (.S’, С), а
вектор X — расширенным псевдопланом задачи (~2’, С).
*) В литературе часто употребляется также термин двойствен-
но-аопустимая таблица. Происхождение этого названия связано с
теориек двойственности для задач линейного программирования, с
гаТич?Й читатель может ознакомиться по уже упоминавшейся кни-
108
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
[ГЛ. 4
§ 4. Лексикография
4.1. Говорят, что вектор А= (xj,..., х„) лексикогра-
фически положителен,
А>0, (4.1)
если
А #=(0,0....................0)^0 (4.2)
и
xk>0, (4.3)
где
k — min {/1 ху #= 0}. (4.4)
Говорят, что вектор X лексикографически неотрицателен,
если имеет место одна из двух возможностей
X > 0, (4.5)
или
X = 0. (4.6)
Введем лексикографическое упорядоче-
ние векторов. Говорят, что вектор X лексикографически
больше вектора У,
А> Y,
если
(А-У)>0. (4.7)
Говорят, что вектор X лексикографически не меньше
вектора Y,
Х> Y,
если
(А-У)>0.
Далее, говорят, что вектор X лексикографически
отрицателен
А<0,
если
— А>0.
Аналогично определяются и другие понятия — лексико-
графическая неположительность АХО; А-<У; A У-
4.2. План А* (расширенный план X*) задачи линей-
ного программирования (1,9) — (1.11) называется лекси-
§ 41
ЛЕКСИКОГРАФИЯ
109
кографически оптимальным (или лексикографическим
оптимумом), если для всех расширенных планов X зада-
чи (j 9)_(1.11) имеет место соотношение
(4 4 ..., хп) = X" > X - (х0, х„ ..., х„). (4.8)
Сокращенное название: l-оптимальный план.
Теорема 4.1. Если множество оптимальных планов
задачи линейного программирования (1.9) — (1.11) не
пусто и ограничено, то существует лексикографический
оптимум X* задачи (1.9) —(1.11).
Теорема 4.2. Если X* — лексикографически опти-
мальный план задачи (1.9) — (1.11), то X* — опорный
план.
Симплексная таблица
II XIJ II/ <= Qn-, 1 <= №
называется лексикографически нормальной*), если
xOf
х1}
>• 0 для всех j^N.
Сокращенное название: l-нормальная симплексная таб-
лица.
Теорема 4.3. Для того чтобы опорный план А* за-
дачи (1.9) — (1.Н) был l-оптимальным, необходимо и до-
статочно, чтобы нашелся такой базис В (N={1>... ,п}\В),
что симплексная таблица
II Хи II; е Qn-t)е№
является 1-нормальной.
Псевдоплан X (расширенный псевдоплан X) задачи
линейного программирования (1.9) — (1.11) называется
*) В литературе также встречается название лексикографически
двойственно-допустимая симплексная таблица (см. выше замечание
на стр. Ю7).
110
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
[ГЛ. 4
лексикографически положительным, если соответствую*
щая симплексная таблица является /-нормальной. Сокра*
щенное название: l-псевдоплан (расширенный 1-псевдо-
план) .
§ 5. Симплексные таблицы, планы и псевдопланы
5.1. Пусть условия (1.10) задачи линейного програм-
мирования (^, С) (1.9) — (1.11) записаны в виде сим-
плексной таблицы
~ II *1} II; <= Qn; / <= № (5-1)
И
X = (Х|,..., хп) = (Хю, ..., xng). (5.2)
Сведем воедино в табл. 5.1 связь между свойствами
таблицы Т и свойствами вектора X.
Таблица 5.1
Таблица Т Вектор X
план псевдо- план /-псев- доплан опти- маль- ный план 1 опти- маль- ный план
1 2 3 4 5
Допустимая Нормальная /•нормальная + + (+) + + + (+) +
Каждому столбцу табл. 5.1 соответствует утверждение
типа «Если таблица обладает свойствами (перечисляют-
ся свойства, соответствующие строкам, в которых стоит
знак « + » без скобок), то вектор X есть (название
столбца)».
Например, 5-му столбцу соответствует следующее
утверждение: если таблица Т является допустимой и
«-нормальной, то вектор X есть /-оптимальный план.
Знаки ( + ), стоящие в 3-м и 5-м столбцах, напоми-
нают о том, что /-нормальная таблица обязательно Яв-
ляется и нормальной таблицей.
СИМПЛЕКСНЫЕ ТАБЛИЦЫ, ПЛАНЫ И ПСЕВДОПЛАНЫ 1Ц
5 5]
5.2. В дальнейшем неоднократно будет нужно вычис-
лять симплексную таблицу Т*, которая получается из
исходной таблицы после элементарного преобразования.
Элементарное преобразование — это вывод из базиса В
некоторой переменной xh и ввод в базис некоторой пе-
ременной Xi. Элемент Хм симплексной таблицы Т назы-
вается направляющим элементом элементарного преоб-
разования.
Пусть
Г ~ II %1] II/ е рп\ j е дг° (5.3)
— симплексная таблица с базисом B(N={1,... ,п}\В),
причем и kf=B.
Допустим, что
хы о. (5.4)
Тогда, как известно из линейной алгебры, переменные
х0, Xi ..., хп (выраженные через переменные из N в таб-
лице Т) можно выразить и через переменные из N*, где
N* = (NU{k})\{l}, (5.5)
(т. е. N* получается удалением H3JV индекса I и добав-
лением индекса k), так что получится новая таблица Т*
Г--1ИД <5-6>
и новый базис В*
В* = (В11{/})\{Я (5.7)
Если обозначить столбец таблицы Т, соответствую-
щий индексу /, через Rj (а для таблицы Г* — через #J),
то имеют место следующие формулы пересчета:
^=-^7’ (5-8)
R Xkl
R'^R^'—Rt для всех j е= (tf\{/J) U {0}, (5.9)
или, в координатной записи,
‘'-О. 1....". <5-10)
х'и = xil - хи Аля всех i ЯА U (0); (=0,1..п.
(5.11)
112
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
(ГЛ. 4
В практических вычислениях часто приходится иметь
дело с сокращенными симплексными таблицами Тс и Т*с
тс=11М> (5.12)
лс=|1411‘ <5ЛЗ)
Для сокращенных таблиц формулы пересчета имеют еле-
дующий вид:
Ik ~ 1 Xkl ’ (5.14)
•* — ik хц Xkl ’ (5.15)
7/ = Xkl хП // Xkl il i e (B\{k)) u {0}, /<=(AZ\{Z))U{0}. (5.16)
§ 6. Метод последовательного улучшения плана
(прямой симплекс-метод)
6.1. Метод последовательного улучшения плана по-
зволяет построить конечную последовательность опорных
планов
Х°, Х\ ..Х\
последний из которых является оптимальным планом за-
дачи (1.9)— (l-И)- Целевая функция х0=х0(Хг) возрас-
тает (точнее, не убывает) с ростом г. В геометрической
интерпретации Xf и Хг+1 — это соседние вершины много-
гранника планов. Каждому из опорных планов Хг соот-
ветствуют: симплексная таблица Тг и множества Вг и
Nr (индексов, нумерующих соответственно базисные и
небазисные переменные).
Процесс решения состоит из начальной итерации (по-
строение исходного опорного плана Х°) и последователь-
ности общих итераций.
6.2. Общая (r-я, г 0) итерация. Имеется опор-
ный план Хг и соответствующие ему Tr, Br, Nr.
Проверяем, является ли таблица Тг нормальной (т. е.
выполнено ли условие Xoj > 0 для всех j^NT). Если
$ 6]
МЕТОД ПОСЛЕДОВАТЕЛЬНОГО УЛУЧШЕНИЯ ПЛАНА
113
является, то план Хт оптимальный. Если не является, то
ищем переменную Хц вводимую в базис, по правилу
Затем ищем переменную xh, выводимую из базиса, по
правилу
-g- = min{^.|i= 1, 2, ..., п; х„>о}. (6.2)
Если среди чисел Хц, i=l, 2, .... п, нет положительных,
то задача неразрешима.
Если такие числа есть, то производим пересчет по
формулам § 5. Получаем Xr+l, Tr+i, Вг+Ь Nr+i. Здесь
в,+1-(в,и{/»\М 1
tfr+1 = (AMW)\{0. J (6,3)
6.3. Чтобы найти исходный опорный план Х°, пре-
образуем исходную задачу (1.9) — (1.11) таким образом,
чтобы правые части всех уравнений были неотрицатель-
ными (bi 0, i= 1, ..., tn). Для этого следует те из урав-
нений (1.Г0), для которых bi^.0, переписать в виде
п
S a'lfXj — bp
где
aij~ ~ ац> Щ — — bt.
Рассмотрим вспомогательную задачу:
Максимизировать
f (Xj, . .., Xn+m) — 2 Xj (6.4)
/-n+1
при условиях
2 a{jXj + xn+i = bh 1=1......tn, (6.5)
*;>0, /=1.......n + m. (6.6)
Опорный план этой задачи
п
(xj, ..., хп+т) = (0, 0, ..., 0, by ...,
8 А. А. Корбут, Ю. Ю. Финкельштейн
114
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
[ГЛ. 4
выписывается непосредственно. Решаем по методу после-
довательного улучшения плана вспомогательную за-
дачу. Если оптимальное значение целевой функции
/«•••-<+т) = °- то <+/ = °> » = гп и вектор
(х*, .... х*) является искомым опорным планом Х°. Если
же/(х;.....<+от)<0. т0 исходная задача неразрешима.
§ 7. Метод последовательного уточнения оценок
(двойственный симплекс-метод)
7.1. Метод последовательного уточнения оценок .по-
зволяет построить конечную последовательность псевдо-
планов
JO, X1.......А’\
последний из которых является планом (а следовательно,
и оптимальным планом) задачи (1.9) —(1.11). Целевая
функция х0=х0(Хг) убывает (точнее, не возрастает) с
ростом г. Геометрическую интерпретацию метода после-
довательного уточнения оценок читатель найдет в книге
[45]. Каждому из псевдопланов Хг соответствуют: симп-
лексная таблица Тт и множества Вг и Nr.
Процесс решения состоит из начальной итерации
(построение исходного псевдоплана Х°) и последователь-
ности общих итераций.
7.2. Более точно, нам понадобится так называемая
лексикографическая модификация метода последователь-
ного уточнения оценок (лексикографический двойствен-
ный симплекс-метод), позволяющая вместо исходной за-
дачи (1.9) — (1.П) решать ее лексикографический ва-
риант. Найти лексикографический максимум расширен-
ного плана
(п \
2 Cj%ji f • • • , %tl / (1 «9 )
/»1 /
при условиях
^taijXj = bi, (1.10')
х>0, /-1.......n.j (1.11')
5 7] МЕТОД ПОСЛЕДОВАТЕЛЬНОГО УТОЧНЕНИЯ ОЦЕНОК 115
Задачу лексикографической максимизации расширенного
плана (1.9') на многограннике 3? (1.10') —(1.11') будем
обозначать через (J?, С) и будем для краткости назы-
вать ее 1-задачей.
Здесь и в дальнейшем будем для краткости лексико-
графическую модификацию метода последовательного
уточнения оценок называть I-методом.
7.3. Общая (r-я, г > 0) итерация. Имеется I-
псевдоплан Хг и соответствующие ему Tr, Nr, Вг. Столбцы
Тг обозначаем через R'i (/ е Nr). Проверяем, является ли
таблица Тг допустимой (т. е. выполнено ли условие
xrio^0, i—i, ...» п). Если является, то Хг—/-опти-
мальный план. Если не является, то ищем переменную
хк, выводимую из базиса, по правилу
& = min{/|i=l, п; хго<О}. (7.1)
Затем ищем переменную Хц вводимую в базис, по пра-
вилу
тйг “lex min {TS7TI'е N" х“ < 01 <7-2)
Если среди чисел xk)(j^Nr) нет отрицательных, то за-
дача неразрешима. Если такие числа есть, то произво-
дим пересчет по формулам § 5. Получаем /-псевдоплан
Хг+* и Гг+1, Br+i, Nr+i. Здесь
Br+i = (BrU{/))\{*}, (7.3)
А^г+1 = (#, и {&}) \ {/}. (7.4)
7.4. Способы построения исходного /-псевдоплана Х°
указаны в книге [45]. Укажем здесь лишь один прием
для нахождения Х°. Пусть построена симплексная таб-
лица Т, соответствующая задаче (1.9) — (1.11) и не яв-
ляющаяся /-нормальной. Ей соответствуют множества
индексов В и N. Пусть функция 2 х< ограничена на
/ s N
множестве (1.10) — (1.11).
Тогда (например, с помощью метода последователь-
ного улучшения плана, а часто и непосредственно) мож-
но найти такое число М, что
2 Xj^M. (7.5)
8*
116
НЕКОТОРЫЕ ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
[ГЛ. 4
Введем новую переменную
xn+1 = M + 2 1 •(-*/), (7.6)
х„+1>0. (7.7)
Припишем строку (7.6) снизу к таблице Т и выберем
переменную Xk, выводимую из базиса, по правилу
k=n+\.
Выберем переменную Xi, вводимую в базис, по пра-
вилу
Ri=lex min{fy | j^N}.
Произведем пересчет по формулам § 5 и получим
Z-нормальную таблицу То и соответствующие ей Во и No-
Здесь
Bo=(BU{/}),
No= (NU{n+1})\{/}
§ 8. Задача целочисленного линейного
программирования
8.1. Рассмотрим задачу линейного программирования
с дополнительным условием целочисленности — задачу
целочисленного линейного программирования.
Максимизировать
Xo^'SiCjXj (8.1)
/=1
при условиях
п
^aijXj^bi, (8.2)
%у>0, /= 1, ..., л, (8.3)
Ху—целое, (л^л). (8.4)
§ 8j ЗАДАЧА ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ 117
Если tii=n, то задача (8.1) — (8.4) называется полностью
целочисленной задачей линейного программирования,
если п\<п—частично целочисленной задачей линейного
программирования. Иногда условие (8.4) записывают в
более общем виде:
Xj — целое, /е/.
Здесь ,п}.
8.2. Введем для задачи целочисленного линейного
программирования ряд понятий, аналогичных введенным
выше для задачи линейного программирования. Напо-
мним, что область определения задачи линейного про-
граммирования (8.1) — (8.3) была обозначена выше че-
рез .З5, сама задача — через (.S’, С), а ее оптимальный
план —через Х(=2’, С). Множество наборов (хь ..., хп),
удовлетворяющих условиям (8.2) — (8.4), называется об-
ластью определения задачи целочисленного линейного
программирования (8.1) — (8.4).
Вектор Х=(хь ..., хп), удовлетворяющий условиям
(8.2) — (8.4), называется планом (или допустимым ре-
шением) задачи целочисленного линейного программи-
рования (8.1) — (8.4).
План Х* = (х*, ..., х*), обращающий в максимум ли-
нейную форму (8.1), называется оптимальным планом
(или решением) задачи целочисленного линейного про-
граммирования (8.1) — (8.4).
Если Х=(хь ..., хп)—план (оптимальный план) и
п
х0“ 2 CjXj, то вектор Х~ (хо, xt.хп) называется рас-
ширенным планом (расширенным оптимальным планом)
задачи целочисленного линейного программирования
(8.1)-(8.4).
Иногда бывает удобно ввести следующие обозначе-
ния: .S’4— область определения задачи (8.1) — (8.4);
(•S’4, С) —задача (8.1) —(8.4); X(-S’4, С) — оптимальный
план и Х(^4, С) — расширенный оптимальный план за-
дачи (8.1) — (8.4). Задача целочисленного линейного
программирования называется разрешимой, если суще-
ствует оптимальный план Х\ .
118
МЕТОД ОТСЕЧЕНИЯ ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. 5
8.3. Многогранник все опорные планы (вершины)
которого целочисленные (т. е. все компоненты каждого
из опорных планов целые), называется целочисленным
многогранником.
8.4. Симплексная таблица Т = || xZy||;sQn. fsNo, все эле»
менты которой — целые числа, называется целочисленной
симплексной таблицей.
ГЛАВА 5
ИДЕЯ МЕТОДА ОТСЕЧЕНИЯ.
ПЕРВЫЙ АЛГОРИТМ ГОМОРИ
В этой главе излагается идея метода отсечения и
первый алгоритм, реализующий эту идею, — алгоритм
Гомори [88, 84].
§ 1. Идея метода отсечения
В § 1 гл. I отмечались принципиальные трудности,
возникающие при решении задач дискретного програм»
мирования и, в частности, при решении задач целочис-
ленного линейного программирования. С другой стороны
(и об этом также говорилось выше), при решении задач
линейного программирования принципиальных трудно-
стей в настоящее время нет. Нельзя ли аппарат линей-
ного программирования каким-то образом применить
для решения задач целочисленного линейного програм-
мирования?
1.1. Сформулируем вопрос более конкретно. Нельзя
ли по задаче целочисленного линейного программирова-
ния (.S’4, С) найти такую задачу линейного программи-
рования (Л, С), чтобы решение l-?*4, С) сводилось кре-
щению (Л, С)?
Ответ на этот вопрос оказывается положительным.
Принципиальную возможность применения аппарата ли-
нейного программирования для решения задач целочис-
ленного линейного программирования подтверждает еле-
дующая
§ 1]
ИДЕЯ МЕТОДА ОТСЕЧЕНИЯ
119
Теорема 1.1. Пусть J? — многогранник, — мно-
жество его целых точек, /?=У(^ч) — выпуклая линей-
ная оболочка множества J?*. Тогда:
1) R = V(^>1i)—целочисленный многогранник.
2) (1.1)
3) Множество R* опорных планов многогранника R
содержится во множестве R\
R*^RU. (1.2)
Прежде чем доказывать теорему, заметим, что из
(1.2) сразу получается
Следствие 1.1. Пусть X(R, С)—оптимальный
опорный план задачи (R, С). Тогда X(R, С) является
также оптимальным планом задачи (^ц, С).
Поэтому оптимальный план задачи целочисленного
линейного программирования (~2?ц, С) можно получить,
решая задачу линейного программирования с помощью
любого из методов, гарантирующих получение опорного
оптимального плана (например, с помощью метода по-
следовательного улучшения плана или метода последо-
вательного уточнения оценок).
Доказательство теоремы 1.1.
а) Докажем, что R — целочисленный многогранник.
Так как —многогранник, т. е. ограниченное множе-
ство, то.?’4 — конечное множество, т. е. /?=)/(.?’«) яв-
ляется выпуклой линейной оболочкой конечного множе-
ства точек. Следовательно, R — многогранник, причем
множество R* опорных планов многогранника R удов-
летворяет условию
= (1.3)
т. е. многогранник R целочисленный.
б) Из определения выпуклой линейной оболочки сле-
дует, что
а следовательно,
(1.4)
в) Докажем, что
/?ц = ^ц. (1.5)
120
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. 5
Пусть
X<=R\ (1.6)
Заметим, что так как то
/? = У(^’ц)еУ(-2’) = -2’.
Следовательно,
X е /?ц s R G (1.7)
Из (1.6) и (1.7) получаем
откуда и следует (1.5).
г) Сравнивая (1.4) и (1.5), получаем
/?ц = -2’ц. (1.8)
д) Из (1.3) и (1.8) следует (1.2).
Теорема 1.1 доказана.
1.2. Покажем, что —единственный цело-
численный многогранник, для которого множество его
целочисленных точек совпадает с -24
Теорема 1.2. Пусть <S? — многогранник, U — цело-
численный многогранник и
ии = ^. (1.9)
Тогда
U = R^V(^\ (1.10)
Доказательство теоремы 1.2.
а) Из (1.9) непосредственно следует, что
R^U. (1.11)
б) Покажем, что
U^R. (1.12)
Так как многогранник U целочисленный, т. е. все его
опорные планы целочисленные, то
(/stA (1.13)
Из (1.9) и (1.13) следует, что
ИДЕЯ МЕТОДА ОТСЕЧЕНИЯ
121
§ 11
откуда получаем
U =
в) Сравнивая (1.11) и (1.12), заключаем, что
U = R = V (»^ц).
Теорема 1.2 доказана.
1.3. Приведем простой пример.
Задача (J?, С) Задача (#ц, С) Задача (И Cs?4), с)
Максимизировать Xi + х2 при условиях 2xj+ 11*2 <38 Xi + х2 <7 4xi — 5х2 < 5 *1>0, х2>0 Максимизировать Xi + х2 при условиях 2х1 + 11х2<38 *1 + х2 <7 4x1 — 5х2 < 5 > 0, х2 >0 хи х2 — целые * Максимизировать *i + x2 при условиях х2 < 3 Х!+Х2<5 *1 — х2 < 1 Xi > 0, х2>0
На рис. 5.1.1 многогранник (многоугольник) вы-
делен штриховкой, а точки целочисленной решетки, вхо-
дящие в множество^4, выделены черным цветом. Опти-
мальное значение целевой функции для задачи («2’, С)
равно 7. Оптимум достигается во всех точках грани (от-
резка) Х]+Х2=7, т. е. в точках отрезка, соединяющего
два опорных плана (вершины) многогранника-S’: (13/3,
8/3) и (40/9, 23/9). Оптимальное значение целевой функ-
ции для задачи (=5’ц, С) равно 5; оптимум достигается
в точках (2,3) и (3,2). На рис. 5.1.2 отдельно показано
множество-?711 (его точки выделены черным цветом). На
рис. 5.1.3 многогранник (многоугольник) V(-2711) выделен
штриховкой. Оптимальное значение целевой функции
для задачи (V (^ч), С) равно 5, оптимум достигается во
всех точках грани (отрезка) Х]Ч-Х2=5, т. е. в точках
отрезка, соединяющего два опорных плана (вершины)
многогранника У(-?’ц): (2, 3) и (3, 2).
122
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. 5
1.4. Следствие 1.1 из теоремы 1.1 доказывает воз-
можность точной линейной аппроксимации целочислен-
ной задачи линейного программирования (-24 С) с по-
мощью задачи линейного программирования (У(^ц), С),
но не дает практического способа для определения
Возникает новая проблема: по заданному много-
граннику найти выпук-
лую линейную оболочку
V(^’a) его целочисленных
точек. Эта проблема в общем
случае, по-видимому, не ме-
нее сложна, чем исходная
задача целочисленного ли-
нейного программирования
J?4, С), и в настоящее вре-
мя неизвестны эффективные
алгоритмы для ее решения.
1.5. Заметим, что при по-
строении V (-S’4) не исполь-
зовалась информация о це-
левой функции СХ исходной
задачи целочисленного линейного программирования
(^ц, С), и задача линейного программирования (К(^ц), С)
дает (в указанном выше смысле) точную линейную
аппроксимацию задачи (-S’4, С) при любом С. Можно
предположить, что построение линейной аппроксимации
ИДЕЯ МЕТОДА ОТСЕЧЕНИЯ
123
« ч
для (-S’®, С) удается облегчить, разумным образом ис-
пользуя информацию о целевой функции СХ. Иначе го-
воря, вопрос, сформулированный в начале п. 1.1, можно
теперь уточнить следующим образом.
Нельзя ли по задаче целочисленного линейного про-
граммирования (-S’4, С) найти такую задачу линейного
программирования (А, С), что:
1) Оптимальные значения целевых функций для за-
дач (-S4 С) и (Л, С) совпадают:
СХ(^Ц, С) = СХ(А, С). (1.14)
2) Множество целочисленных точек многогранника
А совпадает с множеством целочисленных точек много-
гранника -S’:
Лц = -2’ц. (1.15)
3) Все оптимальные опорные планы задачи (Л, С}
удовлетворяют условию целочисленности
Лс()Л*еЛц. . (1.16)
Напомним, что через Лс обозначается множество
оптимальных планов задачи (Л, С), а через Л* — мно-
жество вершин (опорных планов) многогранника Л.
Задачу (Л, С) построить можно, но мы не останав-
ливаемся на этом более подробно, поскольку проблема
построения многогранника Л, удовлетворяющего усло-
виям (1.14) — (1.16), так же как и проблема построения
многогранника У(-хв), оказывается достаточно сложной,
и в настоящее время неизвестны эффективные алго-
ритмы ее решения.
Заметим лишь, что многогранник Л, удовлетворяющий
условиям (1.14) — (1.16), определяется, вообще говоря,
не единственным образом. В то же время, основываясь
на теоремах 1.1 и 1.2, легко показать, что вмногогранник
V (.S’11) является (для данного -S’) единственным много-
гранником, удовлетворяющим следующим условиям, на-
ложенным на искомый многогранник А':
I. При любом С оптимальные значения целевых функ-
ций для задач (-S’11, С) и (Л', С) совпадают.
124
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. 5
II. Множество целочисленных точек многогранника
А' совпадает с множеством целочисленных точек много-
гранника S’.
III. При любом
С
Рис. 5.1.4.
\ -Z) + хг~5
все оптимальные опорные планы
задачи (А', С) удовлетворя-
ют условию целочисленности.
На рис. 5.1.4 штриховкой
выделен один из многогран-
ников А, удовлетворяющих
условиям (1.14) —(1.16) для
задачи (Sa, С) п. 1.3.
1.6. Две неудачные по-
становки проблемы линей-
ной аппроксимации задачи
(«S’4, С), рассмотренные вы-
ше, имели между собой мно-
го общего.
I. Множество целочис-
ленных точек Ач многогран-
ника А аппроксимирующей задачи (А, С) должно было
совпадать с множеством целочисленных точек «2*4 исход-
ной задачи («S’4, С)
Ач=«2’ч.
II. Каждый оптимальный опорный план аппрокси-
мирующей задачи (А, С) должен был удовлетворять
условию целочисленности
Ас П A* <= Ац.
III. Предполагалось, что задача («S’4, С) будет ре-
шаться в два этапа: 1) Построение аппроксимирующей
линейной задачи (А, С). 2) Нахождение оптимального
опорного плана задачи (А, С) (который заведомо ока-
жется и оптимальным планом задачи («S’4, С)).
По-видимому, неудачными оказались условия II и
ИГ. Условие же I фигурирует во всех известных реали-
зациях метода отсечения.
1.7. Введем понятие правильного отсечения, которое
систематически используется в дальнейшем.
Пусть («S’4 С) — некоторая задача целочисленного
линейного программирования и опорный оптимальный
л п ИДЕЯ МЕТОДА ОТСЕЧЕНИЯ 125
§ И
план Х(=5?, С) соответствующей задачи линейного про-
граммирования не удовлетворяет условию целочислен-
ности
Неравенство
(1.17)
(или в векторной записи аХ р) называется правиль-
ным отсечением, если оно удовлетворяет следующим
двум условиям:
I. Условие отсечения. X(J?, С) не удовлетво-
ряет неравенству (1.17), т. е.
аХ(^, С)>р. (1.18)
II. Условие правильности. Если X — план
задачи («S’4, С), то X удовлетворяет неравенству
(1.17), т. е.
Тс{Х)аКр}. . (1.19)
1.8. Изложим теперь идею метода отсечения в том
виде, в котором она впервые была предложена (см. Дан-
циг, Фулкерсон, Джонсон [68] и Данциг [65]).
I. Предлагается решать задачу («2”, С) с помощью
не двухэтапного, а, вообще говоря, многоэтапного про-
цесса, причем
1-1) На г-м этапе решается вспомогательная задача
линейного программирования
(«2’г, С), r = 0, 1, 2, ...
Здесь
1-2) Множество целочисленных точек — одно и то же
для всех многогранников
О?Ц _ О?Ц _ GPU, __
0 *“ 1 2 ““ • • • >
а следовательно, если оптимальный план X(^r, С) зада-
Чи («2*г, С) удовлетворяет условию целочисленности, то он
126
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. 5
оказывается также и оптимальным планом X (-S’o, С) ис-
ходной задачи (=2*0, С), и процесс решения завершается.
1-3) Если X (^r, С) не удовлетворяет условию цело-
численности, то Х[^г, С) не является планом задачи
(^г+1, С)
Х(^г, С)ф^.
II. Переход от r-го этапа к (г+1)-му этапу, т. е. пе-
реход от задачи С) к задаче (S^r+i, С) (с соблю-
дением условий 1-2), 1-3)) в случае нецелочисленности
Х(^г, С) осуществляется с помощью правильного
отсечения
агХ рг,
добавление которого к линейным условиям задачи (.S?r,C)
превращает многогранник в многогранник -З’г+ь
1.9. Итак, в основе метода отсечения лежат две ос-
новные идеи: I. Многоэтапная линейная аппроксимация
задачи С). II. Переход от этапа к этапу с помощью
правильного отсечения.
Однако эти идеи нельзя реализовать, пока не будет
указан способ построения правильных отсечений, обеспе-
чивающий конечность процесса решения.
Один из таких способов будет изложен в следующем
параграфе.
Менее принципиальной, но практически важной пред-
ставляется проблема чрезмерного увеличения количе-
ства правильных отсечений в случае, если процесс реше-
ния окажется достаточно продолжительным. Следует
предусмотреть какие-то меры для уменьшения размера
задач (-S’r, С).
§ 2. Первый алгоритм Гомори
В этом параграфе будет изложен алгоритм Гомори
[88], дающий исторически первую реализацию метода
отсечения, для которой:
1) построение правильных отсечений проводится ал-
горитмически (без использования интуитивных сообра-
жений),
2) доказана конечность алгоритма.
§2]
ПЕРВЫЙ АЛГОРИТМ ГОМОРИ
127
2.1. Изложим способ построения правильных отсече-
ний предложенный Гомори. Рассматривается полностью
целочисленная задача линейного программирования:
Максимизировать
Xo^^CjXj (2.1)
при условиях
^jdux^bi, (2.2)
/=i
х7>0, /=1, .... п, (2.3)
Xj — целое, /=1, .... «• (2.4)
Пусть Х(^, С)—оптимальный опорный план задачи
(Д?, С) ((2.1)—-(2.3)). Выразим целевую функцию х0 и
все переменные хц .... хп через небазисные переменные
Xj , соответствующие оптимальному опорному пла-
ну Х(^, С)
Xi — xl0+ 2 XiA—Xi), i — 0, 1, .... п. (2.5)
i^N
Пусть х — вещественное число. Целой частью х на-
зывается наибольшее целое число, не превышающее х.
Целая часть х обозначается через [х].
Дробной частью числа х (обозначение {х}) называется
число
{х}=х — [х].
Теорема 2.1. Пусть
1) г<«гДХ)--{х/0}+ 2 (-{ха})(-хД (2.6)
/е#
1—1, .... п;
2) X —план задачи («2’« С) ((2.1) —(2.4)).
Тогда
zt — целое, (2.7)
zi > 0. (2.8)
Доказательство. Из (2.5) получаем
Xi - [xi0] + {х/0} + . 2, (l*i J + {Xij}) (- Xj).
128
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. в
Отсюда и из (2.6) получаем
2/ = - Xi + [х/0] + 2 [xtj](-Xj). (2.9)
I&N
Из определения целой части следует, что [х^о] и
[х,-3] (/е/У) — целые, а из условия 2) теоремы получаем,
что должны быть целыми х,- и х,- (j^N). Следовательно,
должно быть целым числом и zit так что формула (2.7)
доказана.
Допустим теперь, что
2{<0.
Тогда, используя (2.6), получаем
-{*«}+ S {хгДх7<0.
/ е N
Но из определения дробной части следует, что 1>{Х{;}>0,
а из условия 2), что х; >0 (/<=#), откуда получаем
-l<-{xzo}+ S {xu}xJ<0,
/ е ДГ
или, что то же самое,
— l<Zi<0,
так что z{ — нецелое, а это противоречит только что до-
казанной формуле (2.7). Следовательно,
Zt'X)
и формула (2.8) установлена. Теорема 2.1 доказана.
Замечание 2.1. Если гарантирована целочислен-
ность целевой функции Хо (например, в случае, когда
все Cj — целые числа), то теорема 2.1 непосредственно
переносится и на случай i=0.
Следствие 2.1 (из теоремы 2.1 и замечания 2.1).
Пусть С) не удовлетворяет условию целочисленно-
сти (2.4), так что для некоторого i (1 ^.i^n)
xlQ —нецелое*). (2.10)
Тогда соотношения (2.6), (2.8) задают правильное отсе-
чение.
*) Если гарантирована целочисленность целевой функции х», то
0 =С i С п.
ПЕРВЫЙ АЛГОРИТМ ГОМОРИ
129
§ 2]
Доказательство следствия, а) Сначала про-
верим условие правильности. Все планы задачи (^5ц, С)
удовлетворяют условиям (2.6) и (2.8) — это непосред-
ственно видно из теоремы 2.1.
б) Теперь проверим условие отсечения. Подставляя
в (2.6) нецелочисленный оптимальный план Х(^, С)
и учитывая, что хД-?, С)=0 (/^7V), получаем (исполь-
зуя (2.10))
zt(X(^, С)) = — {xzo} + 0 < 0, (2.11)
что противоречит (2.8).
Следствие 2.1 обосновано.
2.2. В схематичном изложении метода отсечения, дан-
ном выше, неоднозначно определялись оптимальные пла-
ны Х(^г, С) вспомогательных задач линейного програм-
мирования, поскольку задача (S'r, С) может иметь много
решений. Гомори предложил вместо задачи (=2*r, С) ре-
шать Z-задачу С) • ______
/-оптимальный план X(-Zr, С) является опорным (см.
теорему 4.2 гл. 4) и определяется единственным образом.
Все вычисления проводятся в соответствии с /-методом
(см. § 7 гл. 4).
2.3. Выше было отмечено, что важной проблемой ме-
тода отсечения является нарастание количества ограни-
чений. Гомори предложил прием, ограничивающий разме-
ры рассматриваемых расширенных симплексных таблиц
числом (п + 2) X (k + 1) (где п—количество перемен-
ных задачи («S’о, С) и k — число небазисных пере-
менных в задаче (.S’o, С)). Прием Гомори основан на
том, что дополнительные ограничения (правильные отсе-
чения) агХ рг интересуют нас не сами по себе, а только
как способ отсечения нецелочисленного оптимума
Х(^r, С) и перехода от задачи («S’,, С) к задаче(•З’г+ь С).
Заметим теперь, что переменная хп+т+\ (г > 0) выводится
из базиса сразу же после введения ограничения
^п+г+1^0»
•^n+r+i = Рг агХ.
Идея Гомори заключается в следующем:
9 А. А. Корбут, Ю. Ю. Финкельштейн
130
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. 5
а) Сразу же после вывода xn+r+i (г^О) из базиса
соответствующая строка вычеркивается из расширенной
симплексной таблицы.
б) Если в ходе дальнейших вычислений xn+r+i снова
попадает в базис, то соответствующая строка в симплекс-
ной таблице не восстанавливается и в дальнейших вы-
числениях Xn+r+i не участвует. Таким образом, на про-
извольном этапе вычислений расширенная симплексная
таблица заведомо включает: 1) столько же столбцов
(&+1), сколько и исходная таблица, 2) количество строк,
не превышающее (п + 2). Здесь (п+1)строк соответст-
вует х0, х\, ..., хп (вообще говоря, все переменные ис-
ходной задачи могут войти в базис) и одна строка соот-
ветствует Xn+r+i (в момент ее введения). Отсюда раз-
меры симплексной таблицы заведомо не превышают
(n+2) X (/г+1).
2.4. Если задача («S’, С) не имеет решения в силу
неограниченности сверху целевой функции Хо=СХ на
многогранном множестве планов «S’, то первый алгоритм
Гомори неприменим.
Первый алгоритм Гомори неприменим и в том случае,
когда задача (Jz, С) имеет решение, но не имеет реше-
ния /-задача С). Это означает, что множество опти-
мальных планов задачи (J?, С) не пусто, но не ограни-
чено. Будем предполагать в дальнейшем, что:
1) Целевая функция ха=СХ ограничена сверху на «S’.
2) Если множество оптимальных планов задачи («S’,С)
не пусто, то оно ограничено, т. е. если задача («S’, С)
разрешима, то разрешима и /-задача («S’, С).
2.5. Переходим к формальному изложению первого
алгоритма Гомори.
Начальная большая итерация*). Решаем
/-задачу («S’, С) ss («S’o,С). Если она неразрешима, то не-
разрешима и задача («S’o, С). Если задача («S’o, С) раз-
решима и /-оптимальный план X(J?0, С) удовлетворяет
условию целочисленности (2.4), то X(«S’O, С) является
одновременно оптимальным планом задачи («S’o, С).
*) Термин «большая итерация» введен во избежание путаницы
с итерациями /-метода.
§ 2]
ПЕРВЫЙ АЛГОРИТМ ГОМОРИ
131
Если же С) не удовлетворяет условию целочис-
ленности, то переходим к 0-й большой итерации. ______
г-я большая итерация (г > 0). Пусть X С)
не удовлетворяет условию целочисленности. Выразим
целевую функцию х0=СХ и переменные хь .... хп через
небазисные переменные Xj (j^Nr)
и получим симплексную таблицу
Л==|Х//|(<=3'г; 1<=№г’
допустимую и /-нормальную.
Выберем наименьшую (по номеру) строку, которой
соответствует нецелочисленная компонента
k = min {/1 i e {1, ..., n}; xriQ — не целое) *)
и построим соответствующее правильное отсечение
xn+r+i “ — {хм>} + j^/ (— {х*/})(~ х/)> (2.12)
xn+r+i (2.13)
х„+г+1 - целое. (2.14)
Строку Xn+r+i (2.12) припишем снизу к таблице Тт. По-
лучим недопустимую (только по строке xn+r+il) и /-нор-
мальную таблицу, к которой применим /-метод, причем
после вывода xn+r+i из базиса соответствующая строка
вычеркивается, а после введения в базис х/(/>- п+1)
соответствующая строка не восстанавливается. Если в
итоге получим симплексную таблицу, которой соответ-
ствует неразрешимая задача линейного программирова-
ния (см. гл. 4, п. 7.3), то и задача (-З’о, С) неразрешима.
Если же получим допустимую и /-нормальную таблицу
T'r+i, то проверяем соответствующий /-оптимальный
опорный план Xf.&’r+i, С) на целочисленность. Если
*) Если целочисленность целевой функции Ха гарантирована, то
k = min {г | i е {0, 1........nJ; x'iQ — не целое].
9*
132
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ
[ГЛ. 5
Рис. 5.2.1. Блок-схема первого алгоритма Гомори.
ПЕРВЫЙ АЛГОРИТМ ГОМОРИ
133
X(^r+i, С) удовлетворяет условию целочисленности
(2.4), то X(^r+\, С) является одновременно оптималь-
ным планом задачи (-S’o, С). Если же X^r+i, С) не
удовлетворяет условию целочисленности, то переходим
к (г+1)-й большой итерации.
Рис. 5.2.2.
Блок-схема первого алгоритма Гомори приведена на
рис. 5.2.1.
2.6. Решим с помощью первого алгоритма Гомори
рассмотренный выше (см. § 1, п. 1.3) численный пример.
Максимизировать
при условиях
2Х] + 11x2 38,
Xj +Х2 /,
4xi — 5х2 -С 5,
X! > 0, х2 > О,
хь х2 —целые,
или, что то же самое,
Максимизировать
XO5SX1+X3
134
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ [ГЛ. 5
при условиях
х3 = 38 —— 11х2» х4 = 7 — х, — х2, х5 = 5 — 4х! + 5х2,
X; > О, / = 1, . .5,
х7 —целое, /=1.....5.
Последовательность вычислений сокращенно запи-
сана в табл. 1 — 10. Оптимальный расширенный план
Х(^, С) = Х(^4, С) = (хо, х|..х|) = (5,3,2, 10, 2, 3).
Направляющий элемент везде отмечен звездочкой. Гео-
метрическая иллюстрация дана на рис. 5.2.2.
1 -Xi -х2 1 -х4 -х2
Хо 0 -1 х0 7 1 0
0 -1 0 Х1 7 1 1
х2 0 0 -1 х2 0 0 -1
Хз 38 2 11 Хз 24 —2 9
х4 7 1* 1 Х4 0 -1 0
Х5 5 4 -5 Х5 -23 —4 -9*
Таблица 1 1 ~х4 ~х5 Таблица 2 1 — х4 [ ~~Х6
Хо 7 1 0 Хо 7 1 0
X] 40/9 5/9 1/9 Х1 4 0 1
х2 23/9 4/9 -1/9 хг 3 1 -1
х3 1 -6 1 Хз -3 -и* 9
х4 0 -1 0 х4 0 -1 0
х5 0 0 -1 Х5 4 5 -9
Таблица 3(Г0) Таблица 4
-4/9 -5/9 -1/9*
§ 2]
ПЕРВЫЙ АЛГОРИТМ ГОМОРИ
135
1 -*3 -х6 1 -х7 ~х6
Хо 74/11 1/11 9/11 6 I 0
Xi 4 0 1 Xl 4 0 1
х2 30/11 1/11' -2/11 х2 2 1 -1
*3 0 -1 0 Хз 8 -11 9
х4 3/11 -1/11 -9/11 х4 1 -1 0
Х5 29/11 5/11 -54/11 Х5 — 1 5 -9*
Таблица 5 (Г,) Таблица 6
х7 -8/11 -1/11* -9/11
1 -Х7 -Х5 1 -х7
Хо 6 1 0 х0 6 1 0
Х1 35/9 5/9 1/9 Xl 3 0 1
х2 19/9 4/9 -1/9 х2 3 1 -1
Хз 7 -6 1 Хз -1 -11* 9
Х4 1 -1 0 Х4 1 -1 0
Х5 0 0 -1 Х5 8 5 -9
Таблица 7 (Т2) Таблица 8
х8 -8/9 -5/9 -1/9*
Заметим, что оптимальный план (3, 2, 10, 2, 3) за-
дачи (-2’ц, С) не может быть получен с помощью округ-
ления из оптимального плана (40/9, 23/9, 1, 0, 0) соот-
ветствующей нецелочисленной задачи («5’, С).
136
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ (ГЛ. 5
1 — Х3 — Ха 1 — — Ха
65/11 1/11 9/11
3 0 1
32/11 1/11 -2/11
0 -1 0
12/11 -1/11 -9/11
83/11 5/11 -54/11
Таблица 9 (Т3) Таблица 10(Т<)
5 1 0
3 0 1
2 1 -1
10 -11 9
2 -1 0
3 5 -9
— 10/11 -1/11 * -9/11
§ 3. Доказательство конечности первого
алгоритма Гомори
В этом параграфе будет при определенных условиях
обоснована конечность первого алгоритма Гомори. Как
и в предыдущем параграфе, считаем, что множество опти-
мальных планов задачи (-S’o, С) ограничено.
3.1. Теорема 3.1. Пусть выполнены следующие
условия-.
1) гарантирована целочисленность целевой функции
х&=СХ (например, все Cj — целые, j=l, ..., п) и xq
учитывается при выборе строки для построения правиль-
ного отсечения-,
2) по крайней мере одно из следующих двух утвер-
ждений верно-.
2') целевая функция х0 ограничена снизу на-5?о *);
2") задача (^о, С) имеет хотя бы один план X'.
Тогда первый алгоритм Гомори требует лишь конеч-
ного числа больших итераций.
Доказательство теоремы 3.1 будет проведено в не-
сколько этапов.
*) В силу ограниченности множества оптимальных планов за-
дачи (^0, С) отсюда следует, что — многогранник.
§ 3]
ДОКАЗАТЕЛЬСТВО КОНЕЧНОСТИ
137
3.2. Пусть
Х(^Гс)-^-(х;, х;.......х;,).
Обозначим через Хг псевдоплан, соответствующий таб-
лице Тг, получающейся из Тг после вывода из базиса
Xn+r+i и вычеркивания соответствующей строки.
Лемма 3.1.
Доказательство леммы 3.1 сразу следует из правил
/-метода.
3.3. Лемма 3.2. Числа xrt (i = 0, 1, .... п) ограни-
чены снизу.
При i=l, ..., п это следует из условия неотрицатель-
ности (2.3). При i=0 это следует из условия 2) теоремы
3.1. Действительно, если выполнено 2'), то лемма 3.2
тривиально верна. Если же выполнено условие 2"), то за-
ведомо
ХГ>Х',
так что
%о %0’
и лемма 3.2 верна.
3.4. Лемма 3.3. Если Хг не удовлетворяет условию
целочисленности и х1^ — не целое, то
(А'О’ *р • • • > Хр-Р [хр]) (*о> • • • ’ *р)"
Доказательство. Пусть
k — min (i| i <= {0, 1, ..., n}; хг.й — не целое}.
Тогда
k^p.
Далее, пусть
Rr ( Rr 1
-j-y-y = lex min |feN;, {x£,}¥=0 *)
t%J 1 I'M ’
*) Напомним, что Rj — столбец матрицы Tr = || хгц J, соответ-
ствующий индексу /.
138
МЕТОД ОТСЕЧЕНИЯ. ПЕРВЫЙ АЛГОРИТМ ГОМОРИ (ГЛ. 5
И
й (Я/) = min {i| i <= {0, 1, n}; хгц ф 0).
Так как {^z]¥=0, то и xrkl^=Q и, следовательно,
h (Ri) < k < p.
Возможны два случая:
1) h(Rri)=q<p,
2) h(Rri) = q = p.
В случае 1) в силу правил /-метода, и лемма
доказана.
В случае 2) xrPi>0 и так как заведомо
то k = p. В силу правил /-метода получаем
*/о = х/о ПРИ l<k>
хг -xr ^°) г
xkO ~ xk0 лкГ
Но так как х'ы - хр1 > 0, то xrkl {*',} и хгю - {х^} =
= [*«>]•
Лемма 3.3 доказана.
3.5. Переходим непосредственно к доказательству
теоремы 3.1.
Пусть последовательность
Х°, X1, X2, .... Хг, ... (3.1)
бесконечна. Тогда (в силу лемм 3.1 и 3.2) найдется такое
число io (0</0-^п), такое число г0 (го^О) и такая
бесконечная последовательность
rt<r2< ... <rv< ... (ri>r0). (3.2)
что
xz+1 = xr О</</о— 1, (3.3)
x/o+'<xV '*=1,2,... (3.4)
Заметим, что из леммы 3.1 и формулы (3.3) получается
Ч+,<Ч’ г>г0- (3.5)
ДОКАЗАТЕЛЬСТВО КОНЕЧНОСТИ
139
§ 3]
Из (3.4), (3.5) и леммы 3.2 следует существование та-
кого числа r'^r0 и таких целых чисел Zq и Zo+1, что
z0<xjt<z0+l, r>r'. (3.6)
Из (3.3), (3.6) и леммы 3.3 получаем
[Xi.] = Z0>
что противоречит (3.6).
Теорема 3.1 доказана
ГЛАВА 6
ВТОРОЙ АЛГОРИТМ ГОМОРИ
И ДРУГИЕ ОБОБЩЕНИЯ ПЕРВОГО АЛГОРИТМА
В этой главе излагается ряд алгоритмов, построенных
по той же логической схеме, что и первый алгоритм Го-
мори, и отличающихся от него в основном способом по-
строения правильного отсечения *).
В § 1 излагается логическая схема первого алгоритма
Гомори, используемая во всех алгоритмах этой главы.
Параграфы 2, 3, 4 посвящены соответственно второму
алгоритму Гомори [85], алгоритму Дальтона и Ллеве-
лина [62], В-алгоритму Финкельштейна [29].
Параграфы 2—4 построены по одной и той же схеме,
включающей следующие пункты:
1) рассматриваемая задача;
2) способ построения правильного отсечения;
3) условия конечности алгоритма (без подробного
доказательства, в значительной степени повторяющего
доказательство конечности первого алгоритма Гомори);
4) другие вопросы (взаимосвязь с другими постанов-
ками задачи, численный пример и др.).
Параграф 5 посвящен упрощенному алгоритму Дан-
цига [67] и его исследованию, выполненному Гомори и
Гофманом [91].
*) Блок-схемы алгоритмов, излагаемых в этой главе, здесь не
приводятся, так как они несущественно отличаются от блок-схемы
первого алгоритма Гомори.
140
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ (ГЛ. 8
§ 1. Логическая схема первого алгоритма Гомори
В этом параграфе излагается логическая схема пер*
вого алгоритма Гомори, применяемая во всех алгорит*
мах данной главы.
1.1. Рассматривается задача линейного программиро-
вания с дополнительным условием дискретности.
Максимизировать
d-О
при условиях
п
— «=1, .... т, (1.2)
/=1....п, (1.3)
i=*l, ..., пх*). (1.4)
Здесь «I •< п.
Множество планов (1.2) — (1.4) обозначим через
а саму задачу (1.1) — (1.4)—через (-2’°, С)33
= С).
Условие дискретности (1.4) может иметь различный
вид в различных случаях. Предполагается (как и для
первого алгоритма Гомори), что:
1) Целевая функция х0 ограничена сверху на много-
гранном множестве планов ((1.2) —(1.3)).
2) Если множество оптимальных планов задачи
(1.1) —(1.3) не пусто, то оно ограничено.
1.2. Изложим логическую схему первого алгоритма
Гомори.
Начальная большая итерация. Решаем
/-задачу (-2*, С) = (-2% С) ((1.1) — (1.3)). Если она нераз-
решима, то неразрешима и задача (^о> С) ((1.1) —
(1.4)). Если задача (-З’о» С) разрешима и /-оптимум
•) Если условие дискретности наложено и на целевую функцию
х0, то условие дискретности имеет вид
х/ е D/, / — 0, 1, пр
Задача (1.1) — (1.4) является частным случаем задачи (1.1), (1.2)»
(1.4) из гл. I.
5 ]] ЛОГИЧЕСКАЯ СХЕМА ПЕРВОГО АЛГОРИТМА ГОМОРИ 141
С) удовлетворяет условию дискретности (1.4), то
Xt-S^o, С) является одновременно оптимальным планом
задачи (S’o, С).____
Если же X(^Q, С) не удовлетворяет условию дне*
кретности, то переходим к 0-й большой итерации. _____
r-я большая итерация (г > 0). Пусть X(&r> С)
не удовлетворяет условию дискретности. Выразим целе-
вую функцию хо=СХ и переменные Хь ..., хп через не-
базисные переменные X; (j<=Nr)
xi = хго + ( S х//(~ */)• i — Q, 1,...,и,
и получим симплексную таблицу
Тг~ ||Х</ll/sQn;
допустимую и /-нормальную. Выберем наименьшую (по
номеру) строку, которой соответствует компонента, не
удовлетворяющая условию дискретности
£ = min{i|ie {1, ..., nJ; *),
и по некоторому правилу **) построим правильное от-
сечение
Wi = Yo+ 2 Y/(“X7), (1.5)
^Л+Г+1^0. (1*6)
Строку Xn+r+i (1.5) припишем снизу к таблице Тг. Полу*
чим недопустимую (только по строке xn+r+i!) и /-нор-
мальную таблицу, к которой применим /-метод, причем
после вывода xn+r+i из базиса соответствующая строка
вычеркивается, а после ввода в базис Xi (1^ п+1) соот-
ветствующая строка не восстанавливается. Если в итоге
получим симплексную таблицу, которой соответствует
неразрешимая задача линейного программирования (см.
•) Если условие дискретности наложено и на целевую функ-
цию Хо, то
/г» min р| I е {0, 1, ..nJ; xri0 ф
••) По своему правилу для каждого алгоритма.
142
ВТОРОЙ алгоритм гомори и ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
п. 7.3 гл. 4), то и задача (^о> С) неразрешима. Если же
получим допустимую и /-нормальную таблицу Tr+i, то про-
веряем соответствующий /-оптимальный план X(J?r+i, С)
на дискретность. Если X (»2’г+1, С) удовлетворяет усло-
вию дискретности (1.4), то X(^F+i, С) является одно-
временно оптимальным планом задачи (=2^°, С).Если же
X(J?r+l, С) не удовлетворяет условию дискретности, то
переходим к (г-Н)-й большой итерации.
§ 2. Второй алгоритм Гомори
В первом алгоритме Гомори существенно использо-
валась целочисленность всех переменных. Второй алго-
ритм Гомори имеет дело с более широким классом задач.
2.1. Рассматривается частично целочисленная задача
линейного программирования.
Максимизировать
x0 = ^CjXj (2.1)
при условиях
'2^aijXj—bl, (2.2)
/=i
(2.3)
х} — целое, /=1, ...» п{. (2.4)
Здесь п{ ’С «•
2.2. Теорема 2.1. Пусть Х(»2’г, С)^ХГ—оптималь-
ный опорный план задачи (^r, С) и
Tr ~ II Xi/ Hi <= Qn; j e Nr
— соответствующая симплексная таблица, 1^/<C/Ii*),
xriQ — не целое. Тогда неравенство
5 Y?v>Yo> (2.5)
/eAf,
) Или 0 < I < «1.
§ 2]
ВТОРОЙ АЛГОРИТМ ГОМОРИ
143
или, что то же самое,
z=-Yo+ 2 VjXj,
i^Nr
z>0,
является правильным отсечением. Здесь
7о=Ы>
(2.6)
(2.7)
(2.8)
(2.9)
/<Пр
/<«.• {х//}>{х/о}
j > + 1» Xr{j О,
/>«1 + 1, xr{j < 0.
2.3. Доказательство теоремы 2.1. Сначала
проверим условие отсечения. Действительно,
Д Vi-Д, V/'°-0<y»-W'
так что условие отсечения выполнено.
Переходим к проверке условия правильности. Выпи-
шем разложение х, по небазисным переменным
x/ = xzo + /(S Xi/(“X/)-
Пусть
хг=[х'ч' /е^г, 1,
11 Х'ц + У1р
где ytj — некоторые целые числа, величины которых бу-
дут выбраны позже.
Тогда
xi ~ Ы + Уцх/ = {х/о} + X'ij(~ х/)>
/ Cftj
т. е.
{хш}+ s (-x'{j)Xj = z.(X)t
] ™ r
Zi (X) — целое.
144
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. I
Введем обозначения
А? = {/| / е Nr- - х'ц > 0} s {/| j <= Nr; x'lf < 0),
N~r = {/1 / e Nr; - x'ls < 0} {/1 j e Nr- x'if > 0},
S4X)= 2
S~(X)= 2 (-4)xr
ISIf,
Заметим, что
S+(X)>0, (2.10)
S’(X)<0. (2.11)
Эти неравенства можно переписать в следующем виде:
—^41-S+(X)>0, (2.12)
1 - Ы
-S’(X)>0. (2.13)
Далее получаем
Uo} + S+ (X) + S’ (X) = zt (X), zi (X) - целое.
Возможны два случая:
1) S+(X) + S"(X) >0;
2) S+(X) + S-(X)<0.
Сначала разберем случай 1)
S+(X)+S‘(X) >0.
Тогда
zi {X) {х^0}
и в силу нецелочисленности xj0
г. (Х)> 0,
а в силу целочисленности z<(X)
гДХ)>1,
так что
3+(Х) + $’(Х)>1-{х;0}
§ 2] ВТОРОЙ алгоритм гомори 145
или (см. (2.13))
$*(Х)>1-(х'о).
Последнее неравенство запишем в виде
Ж (2.14)
1 ~ 1х/о/
Перейдем теперь к случаю 2)
S+(X) +S-(X) <0.
Имеем
zi (-Х) < l*/о) ’
и в силу целочисленности zj(X)
Zi(X)<0,
так что
(o} + S+(X) + S’(X)<O.
Отсюда и из (2.10) получаем
- S-(X)>{4)}. (2.15)
Объединяя теперь в случае 1) неравенства (2.14) и
(2.13), а в случае 2) неравенства (2.15) и (2.12), полу-
чаем
. /°Д s+ (X) - S’ (X) > Wo),
1 - Wo}
или, что то же самое,
1-lJ) ( x'ii)xi+ x'iixj^ Wo}- (2.16)
1M /ел;
10 А. А. Корбут, Ю. Ю Финкельштейн
146
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
Заметим, что неравенство (2.16) имеет вид
{Хго}’
где у; > 0, причем У] = Уз(уц) а правая часть
{х20| не зависит от выбора чисел Следовательно, ка-
ждое из чисел уи следует выбрать так, чтобы у,(уц) было
наименьшим — в этом случае будет «отсечена» как мо-
жно большая часть многогранника.
Вспомним, что
Xi/~ Xij Уц' i^Nr> /<ПР
так что
Y;W =
м 1
(у хг), если у -xr >Ot
хгц-У1Г если xrtl-ytl^0.
Сразу можно выделить случай, когда хг{1 — целое. Можно
положить ylt — xrlt, и получаем
Y/ = Y/W = 0-
Это — минимум Уз(уц), так как Yi(^j)-^
Теперь допустим, что
Тогда
хг^ ~ не целое.
min {(x'tl - у.,)[х', - у.} > 0} = {х'Д.
Учитывая условия минимальности, получаем
Y/ = min{ 1
ВТОРОЙ АЛГОРИТМ ГОМОРИ
147
§ 2)
Рассмотрим линейную функцию
2(х) = (i-х) (0<х<1).
1 “ Ко}
2 (°)= 1 - К1 > ’
1 txio)
z (Ко})= Ко}»
z(l) = 0< 1,
т. е.
. Iх' х^Ко}»
min{2(x),x}=|2(x)> x>w
Окончательно получаем
Ъ =
/>/!, + 1,
К/}^Ко}»
/^Пр К/} > Ко}»
/ 1 > Xi/ о»
хп < 0.
Теорема 2.1 доказана.
2.4. Правило построения правильного отсечения.
Пусть Х{^т, С) не удовлетворяет условию целочисленно-
сти (2.4) и jxj/H—симплексная таблица, соответствующая
10*
148
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. О
X (2Г, С). Выбираем
k = min {г | г е {1..и}; хгю — не целое) *)
и строим правильное отсечение
•^П+Г+1
хп+г+1 = - Yo + S (- Y? (- Xj),
l<BNf
где числа уо и (j^Nr) вычисляются по формулам
(2.8) и (2.9) при i—k.
2.5. Конечность второго алгоритма Гомори доказы-
вается так же, как и конечность первого алгоритма Го-
мори. При этом требуется соблюдение требований, по-
добных требованиям 1) и 2) § 3 гл. 5.
1) Целевая функция х0 удовлетворяет условию цело-
численности. Это учитывается при выборе строки k для
построения правильного отсечения.
2) Выполнено по крайней мере одно из двух усло-
вий:
2') целевая функция хо ограничена снизу на много-
гранном множестве 2* =
2") задача (-^о, С) имеет по крайней мере один
план.
2.6. С помощью второго алгоритма Гомори можно (в
случае tii—n) решать и полностью целочисленную за-
дачу линейного программирования. Однако в этом слу-
чае нет оснований для сравнения эффективности второго
и первого алгоритмов Гомори. В табл. 1—7 приведено
решение с помощью второго алгоритма Гомори числен-
ного примера, решенного выше посредством первого
♦) Если целевая функция х0 также удовлетворяет условию це-
лочисленности, то
k «= min {/11 e {0, 1, - не целое]
§ 2] ВТОРОЙ АЛГОРИТМ ГОМОРИ 149
алгоритма Гомори. В обоих случаях пришлось ввести
четыре правильных отсечения.
1 -х4 -х6
Хо 7 1 0
Xi 49/9 5/9 1/9
*2 23/9 4/9 -1/9
Хз 1 -6 1
Х4 0 -1 0
Хз 0 0 -1
Таблица 1 (То)
1 -х4 -Хв
7 1 0
4 1/5 1
х2 3 4/5 -1
Хз -3 -46/5 ♦ 9
х4 0 — 1 0
Хз 4 16/5 -9
Таблица 2
хв -20/45 -16/45 -5/45 *
1 ~Хз -хв
х0 307/46 5/46 45/46
*1 184/46 1/46 55/46
х2 63/23 2/23 -5/23
Хз 0 -1 0
х4 15/46 -5/46 —45/46
Хз 68/23 8/23 -135/23
Таблица 3 (Tj)
Х7 -31/46 -5/46 * -45/46
1 -х7 -Хв
Хо 6 1 0
Х\ 19/5 1/5 1
х2 11/5 4/5 -1
Хз 31/5 -46/5 9
х4 1 -1 0
Хз 4/5 16/5 -9
Таблица 4 (Т2)
Хз -4/5 -1/5 -1 *
150
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
1 ~Х7 ~х8 1 ~*3 -Х8
Хо 6 1 0 Xq 65/11 1/11 9/11
*1 3 0 1 Xi 3 0 1
Х2 3 1 -1 Х2 32/11 1/11 -2/11
х3 -1 -11 * 9 Хз 0 -1 0
х4 1 -1 0 х4 12/11 -1/11 -9/11
*5 8 5 -9 Х5 83/11 5/11 -54/11
Та б л и 11 а 5 Таблица 6 (Г3)
Хд -10/11 -1/11* -3/11
§ 3. Алгоритм Дальтона и Ллевелина
Второй алгоритм Гомори имеет дело с частично це-
лочисленными задачами линейного программирования.
Дальтон и Ллевелин рассматривают более широкий
класс задач — частично дискретные задачи линейного
программирования (постановка которых дана ниже) и
применительно к ним модифицируют второй алгоритм
Гомори.
§ з] АЛГОРИТМ ДАЛЬТОНА И ЛЛЕВЕЛИНА
151
3.1. Частично дискретная задача линейного програм-
мирования формулируется следующим образом.
Максимизировать
Xq = 2 CjXj (3.1)
7 = 1
при условиях
п
^atJXj = bi, (3.2)
j= 1, ..n, (3.3)
xt(=AJ= {Л/i, Л/2, ...» Alt)l], /=!,...,«!*). (3.4)
Здесь «j и
0 = Л/1<Л/2< ... <Л/^, /=1, nt**).
К условиям (3.2), если это необходимо, добавлены нера-
венства
(3.5)
так что всякий план X задачи С) ((3.1) — (3.3))
заведомо удовлетворяет условию
/= 1, ..пх ***).
3.2. Теорема 3.1. Пусть X(J^riC)=Xr — оптималь-
ный опорный план задачи (eS?r, С) и
r II *1 /е=Л^
— соответствующая симплексная таблица, \-^Л^пх ****),
Av< v+Г
*) Если же условие дискретности наложено и на целевую
функцию х0, то /==0, 1, пх.
**) Если же условие дискретности наложено и на целевую
Функцию х0, то
^01 < А)2 < • • • < ^0<70-
***) Если же условие дискретности наложено и на целевую
Функцию х0, то х0<Л0<7о.
****) Если же уСловие дискретности наложено и на целевую
Функцию xQ. то
152
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
Тогда неравенство
или, что то же самое,
z=-Y0+ 5
i^Nf
z>0,
является правильным отсечением.
Здесь
Yo ~ Х\й ~
хгц, хгц > О,
(3.6)
(3.7)
(3.8)
(3.9)
(3.10)
3.3. Доказательство теоремы 3.1. С
проверим условие отсечения. Действительно,
2 Y//= 2 Y/-O = O<Yo = xw-^«v»
так что условие отсечения выполняется.
Переходим к проверке условия правильности.
Выпишем разложение х, по небазисным переменным
xi= х/о"* у 2, ха(—= ;2jf (— xrii)xj- (З.Н)
Возможны два случая:
1) xz>4z,v+I. (3.12)
2) xz<4Zv. (3.13)
Прежде чем разбирать эти случаи, введем некоторые
обозначения:
N7 ~{j\je=Nr;(-xrlt)<0} И/1/еНг-, хгц>0},
Nr ~ {/| / е Nr-, (- хгц) > 0} {/| j е Nr-, хгц < О),
s = 2 (~ хГц)хр
s+= 2 (— xrii)xj>
§ 3]
АЛГОРИТМ ДАЛЬТОНА И ЛЛЕВЕЛИНА
153
так что
Xt = Х/о + S + 8+. (3.14)
Из определения множеств Nr и Nr и неотрицательности
переменных Xj следует, что
S’<0, (3.15)
8+>0. (3.16)
Разберем случай 1) (3.12). Из (3.12) и (3.14) сле-
дует:
X/o + S +5+^Лг,у+ь
S* (Л/, v+i — х/о) — S
откуда, учитывая (3.15), получаем
8+ (Л/, v+i — Х/о)
или, что то же самое,
S+^xri0-Atv. (3.17)
Ai,v+l-*iO
Переходим к случаю 2) (3.13). Из (3.13) и (3.14) еле*
дует
X/o + S 4-8+«СЛл,
(х/о — Л/v) + 3+ — 8 ,
откуда, учитывая (3.16), получаем
(х/о-Л/у)<-5“. (3.18)
Заметим, что в силу (3.15) и (3.16) в обоих случаях
имеют место неравенства
—Х<°-Л<у 8*>0, (3.19)
Ai. v+l — xi0
-8’>0. (3.20)
Объединяя в случае 1) (3.17) и (3.20), а в случае 2)
(3.18) и (3.19), получаем, что в обоих случаях должно
154
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
выполняться неравенство
Последнее неравенство можно переписать в следующем
виде:
Теорема 3.1 доказана.
3.4. Правило построения правильного отсечения.
Пусть Х^т, С) не удовлетворяет условию дискретно-
сти и /едг° — симплексная таблица, соответ-
ствующая X(=2?г, С). Выбираем k — min {i | i s {1, ..., n},
xri0 не удовлетворяет (3.4)}*), и строим правильное от-
сечение
•И'П+г-Н 0>
хп+г+\ = “ Yo+ 5 (-V/)(- xf),
j&Nr
где числа уо и у> (7^'Vr) вычисляются по формулам
(3.9) и (3.10) при i~k.
3.5. Конечность алгоритма Дальтона и Ллевелина
доказывается так же, как и конечность первого алго-
ритма Гомори. При этом должны соблюдаться условия,
аналогичные условиям 1) и 2) из § 3 гл. 5.
1) Целевая функция Хо удовлетворяет условию дис-
кретности. Это учитывается при выборе строки k для по-
строения правильного отсечения.
2) Выполнено по крайней мере одно из двух условий:
2') целевая функция Хо ограничена снизу на много-
граннике
♦) Если целевая функция Хо также удовлетворяет условию
дискретности, то /г = min {«|« е {0, 1,..., п), х,0 не удовлетворяет
условию (3.4)}.
3j АЛГОРИТМ ДАЛЬТОНА И ЛЛЕВЕЛИНА 155
2") задача (-S’?, С) имеет по крайней мере один
план. .
3.6. С помощью алгоритма Дальтона и Ллевелина
можно решать также и полностью (и частично) цело-
численные задачи линейного программирования. Однако,
по-видимому, первый и второй алгоритмы Гомори будут
более эффективными.
3.7. Следует отметить, что от частично дискретной
задачи линейного программирования всегда можно пе-
рейти к частично целочисленной задаче линейного про-
граммирования с булевыми переменными, вводя новые
переменные z//p yj2, .... yjqt j= 1, ..., nt *):
«7
Xy = /V’
S ^V= 1.
v-1
y}v— целое.
Однако количество переменных моЖет при этом су-
щественно возрасти.
3.8. Приведем численный пример:
Максимизировать
х0 = х, + х2
при условиях
— X] + 4х2 ’С 12,
4Х] — х2 С 12,
xt G= {0, 1, 4},
х2<={0, 1, 3, 5}
или, что то же самое,
Максимизировать
x0=xt +х2
*) Если же требование дискретности наложено и на целевую
Функцию, то /«О, 1, Ль
156
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. о
при условиях
— я, + 4х2 = 12 — х3,
* 4%! — х2 = 12 — х4,
х?> О, j = 1, ..4,
х0 — целое,
Xi е (0, 1, 4},
х2€={0, 1, 3, 5},
х3, х4 —целые.
Решение примера приведено в табл. 1—8. Опти-
мальный расширенный план
X(^D, С) = Х^(х0, Xi.....х4) = (4, 1, 3, 1, 11).
1 — Xi —х2 1 — х4 —х2 1 -х4 -х3
Ха Х1 х2 Хз *4 0 -1 — 1 Ха Х1 х2 Хз Х4 3 1/4 -5/4 Х1 х2 Хз х4 8 1/3 1/3
0 -1 0 3 1/4 -1/4 4 4/15 1/15
0 0 -1 0 0 -1 4 1/15 4/15
12 -1 4 15 1/4 15/4* 0 0 — 1
12 4* — 1 0 -1 0 0 -1 0
Таблица 1 Таблица 2 Таблица 3(То)
Хз -1 -1/15 -4/15*
1 — х4 — х5 1 -х4 -хв
Ха Xl Х2 Хз Х4 27/4 1/4 5/4 ха Xl Х2 Хз х4 6 0 1
15/4 1/4 1/4 18/5 1/5 1/5
3 0 1 12/5 -1/5 4/5
15/4 1/4 -15/4 6 1 -3
0 -1 0 0 -1 0
Таблица 4 (Т{) Таблица 5 (Т2)
хв -3/4 -1/4 -5/4* Х1 -13/5 -1/5* -1/5
§ 4]
В-АЛГОРИТМ
157
1 -х7 -хв 1 -Ху ~х3
Хо 6 0 1 Хо 17/4 5/4 1/4
Х1 1 1 0 Xl 1 1 0
Х2 5 -1 1 Х2 13/4 1/4 1/4
Хз —7 5 -4* Хз 0 0 — 1
Х4 13 -5 1 х4 45/4 -15/4 1/4
Таблица 6 Таблица 7 (Т3)
Хз -1/4 -1/4 -1/4*
§ 4. В-алгоритм для решения задач целочисленного
линейного программирования
с булевыми переменными
В-алгоритм Ю. Ю. Финкельштейна предназначен для
решения задач целочисленного линейного программиро-
вания с булевыми переменными. Это отражено и в его
названии: В-алгоритм. Специфика задачи с булевыми
переменными существенно используется при построении
правильных отсечений.
4.1. Рассматривается частично целочисленная задача
линейного программирования, в которой все целочис-
ленные переменные булевы.
158
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ (ГЛ. 6
Найти /-максимум вектора
(хь х2..................хп,) (4.1)
при условиях
п
Ща/jXj = bh i = l, .... tn, (4.2)
Х;^0, /=1, ...» п, (4.3)
/=!,..., га,, (4.4)
Xj — целые, /= 1, ..., nt. (4.5)
Здесь «] «•
4.2. Теорема 4.1. Пусть X (2r, С) = Хг есть [-опти-
мальный опорный план задачи (^r, С), х\ — не целое,
i = min [р |х' — не целое; р е {1, ..., nJ }. Тогда нера-
венство
2 (х, (1 - х;)+(1 - х,) х;) + (1 - х,) > 1 (4.6)
I ^Ss I — 1
задает правильное отсечение.
4.3. Доказательство теоремы 4.1. Сначала
проверим условие отсечения. Действительно,
2 (х;(1-х;) + (1-х;)х;) + (1-х;)-
- (2_,» + (1 -х;)-1-х;<1,
так что условие отсечения выполняется.
Переходим к проверке условия правильности.
Так как вектор (х{,.... xjj является /-максимальным
(при условиях задачи (2Г, С), то (при тех же условиях)
является /-максимальным и вектор (х[, ..., х0. Следо-
вательно, для любого плана X задачи (2^, С) имеем
(xj, ..., x0>(Xj..xj (4.7)
(равенство невозможно, ибо х\ — не целое).
Возможны два случая:
1)^ = 0,
2) х< = 1.
S-АЛГОРИТМ
159
В случае 1)
(1-хг)=1>1,
и неравенство (4.6) выполняется.
В случае 2)
xt = 1 > X',
и из (4.7) следует, что
(4» • • • > 4-1) (4> • • •» 4-1)’
так что для некоторого k (1^6-<i—1)
xk^xk-
Имеются две возможности:
а) х'= 0, хА=1,
б) хк= Ь хк = 0’
и какая бы из них ни реализовалась, всегда
xk0 ~ х*) +0 ~ xk)xk^ ь
так что неравенство (4.6) верно и в этом случае.
4.4. Перепишем теперь неравенство (4.6) в форме,
удобной для вычислений по /-методу, считая, что опти-
мальному нецелочисленному плану Хг соответствует таб-
лица 71 =114/11 „ 0;
Г II Oll/eqn. tsN^
z>0,
Z = [ху (1 — 4) + (1 — Ху) 4] — X/ =
= W-1 { [*'° + kxrik(~ ~ +
+ p - 4o ~ 2/, xm(_ 4)j 4oj ~ xio ~ k^Nr xrik{~ xk)=
= t^-1 0 — x/o) + (1 ~ 4o) X/o] +
+ / ~ k ^Nr Xr>k^~ ~ХГ{0~ k siir хГ{к x^ =
= - 4° + ^ (~ 4) [ “ x« + у (! - 2xJ0)xJftj.
160
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
4.5. Для доказательства конечности В-алгоритма ис-
пользуется лексикографическое убывание векторов
X(^r, С) (как и для первого алгоритма Гомори) и тот
факт, что существует лишь конечное число ограничений
вида (4.6).
4.6. Любая частично целочисленная задача линейного
программирования с целочисленной целевой функцией,
целочисленными переменными Xi, ..., хп, и ограниченным
множеством планов может быть сведена к задаче ви-
да (4.1)—(4.5) с помощью введения новых булевых пе-
ременных. Для каждой переменной х4 (1=0, 1, .... «О
определяются границы ее изменения Числа
di и Di можно считать целыми.
xi = dt + yi,
O^yi^ki^Dt-di,
[1ое2Дг] = ^.
Тогда Xi представляется в виде
Xi = di + 2’z • z/o + 2’* • zlt + ... + 2 • z/, (^-i) + ziqit
где Zfv — булевы переменные. Вместо максимума х0 еле.
дует искать лексикографический максимум вектора
(zoo, ZOb .. ., ZOqo).
Если же целевая функция не обязана быть целой, то
можно получить приближенное решение с любой наперед
заданной точностью (по значению целевой функции).
Для этого условие максимизации целевой функции х0 за-
меняется на условие /-максимизации вектора (xt,.... хП1)
и последовательно добавляются ограничения вида Xo^-t
(более подробно см. Ю. Ю. Финкельштейн [29]).
§ 5. Алгоритм Данцига
В этом параграфе будет изложен способ построения
правильных отсекающих плоскостей, предложенный Дан-
цигом. Этот способ значительно проще, чем все изложен-
ные выше способы. Но, как показали Гомори и Гоф-
§ 5]
АЛГОРИТМ ДАНЦИГА
161
ман [91] (их рассуждения будут воспроизведены ниже),
конечность алгоритма Данцига гарантируется лишь для
очень узкого класса задач. На примере алгоритма Дан-
цига видно, насколько тонким является вопрос о по-
строении правильных отсечений и сколь осторожно сле-
дует подходить к различным упрощенным алгоритмам.
5.1. Рассматривается полностью целочисленная зада-
ча линейного программирования:
Максимизировать
(5.1)
при условиях
п
2 ai)Xj = bi, 1 = 1, ../п, (5.2)
/-1
о, /-1, ..п, (5.3)
X;- целое, /=1. и. (5.4)
Ранг матрицы ||а^||/=1..... ....п Считаем равным т.
5.2. Теорема 5.1. Пусть X(12?r, С)s= Хг является
оптимальным опорным планом задачи (JZ’r, С) и Хг не
удовлетворяет условию целочисленности, Nr — множество
индексов, нумерующих небазисные переменные, соответ-
ствующие Хг.
Тогда неравенство
S (5.5)
l^Nr
является правильным отсечением.
Доказательство теоремы 5.1. Сначала прове-
рим условие отсечения. Действительно,
5 х:= 2 0 = 0<1,
/еМг ' j<=NT
так что условие отсечения выполнено.
Переходим к проверке условия правильности. Так как
план Хт однозначно определяется своими небазисными
11 А. А. Корбут, Ю. Ю. Финкельштейн
162
ВТОРОЙ АЛГОРИТМ ГОМОРИ И ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
переменными, то для любого плана X задачи С), не
совпадающего с планом Хг,
х7>0,
причем для любого плана X задачи (=5*?, С) из цело-
численности переменных Xj (j^Nr) следует, что
5.3. Правильное отсечение, отсекающее нецелочис-
ленный оптимум X С) задачи С), можно за-
писать следующим образом:
•^n+r+l = 1
1<*иг
xn+r+l О,
*n+r+i - целое.
Заметим, что каждая из вновь вводимых переменных
Хп+р однозначно определяется заданием переменных
*1, ..., хп, так что
%п+р (^) •
5.4. Обозначим через yi(X), у2(Х),..., уп(Х) упоря-
доченные в порядке возрастания компоненты хь ..., хп
плана X задачи (5.1) — (5.3), так что
уЛХ)^У2(Х)^...^уп(Х). (5.6)
Положим
n-m-1
а(Х)= 2 У}(Х). (5.7)
5.5. Лемма 5.1. Если для некоторого плана X за-
дачи (5.1) —(5.3)
а(Х)>1, (5.8)
то
хп+р (X) > (X), р = 1, 2, ... (5.9)
Доказательство проведем по индукции. Сначала дока-
жем, что
(5.9')
•*«+! GO Уп-m-l {X).
§ 5) АЛГОРИТМ ДАНЦИГА 163
По определению
x„+1W- 2 х}-\. (5.10)
fs»,
Так как ранг матрицы Na^H равен т, то
\Nr\=>n — m, г = 0,
где |/Vr| — число элементов множества Nr. Из опреде-
ления чисел У](Х) получаем
х,. - max х. > i/ , (X), (5.11)
S Xj> Ъ \y(X)-a(X). (5.12)
' /-1
Из (5.10), (5.11), (5.12) и (5.8) имеем
xn+i(x)“x/,+ S x,-l>
> Уп-т-\ W + <ДО) - 1 > Уп-т-\ (X).
Лемма доказана при p—1.
Теперь допустим, что лемма верна при р^р(,
и докажем ее при р = р( + 1:
Xn+p,+i(x)= 2 х/—1в 2 Xj + 2 Xj~
I^NPl t*HPt i*Npt
t <n i>n+l
-i> 2 xj+ 2 yn-m-x(x)-i>
i^Npt I^NPl
i < n / >n+i
>уп-т.х(Х) + П~^' y}(X)-\>
> y^ (X) + о (X) - 1 > yn-m.x (X).
Лемма доказана.
Пользуясь леммой, докажем две теоремы.
5.6. Теорема 5.2. Если каждый оптимальный план
задачи (5.1) — (5.4) содержит не менее (т+2) положи-
тельных компонент, то алгоритм Данцига не будет ко-
нечным.
И*
164
второй алгоритм гомори и ДРУГИЕ ОБОБЩЕНИЯ [ГЛ. 6
Доказательство. Допустим, что на s-й итерации
алгоритма Данцига получится искомый оптимальный
план X* = (х*,.... х*). Рассмотрим числа
<.....m..............(5.13)
Все они целые и среди них должно быть (п — пг) ну-
лей — это небазисные переменные x*t (J s AQ. Кроме того,
по условию среди чисел х*. /=!,..., п, должно быть по
крайней мере (/п+2) положительных числа, т. е. не боль,
ше чем (п — т — 2) нулей.
По определению чисел yj(X*) отсюда следует, что
z/rt_m_,(X‘)>0,
а так как yn-m-i(X*) должно быть целым, то
уп-т-ЛХ*)>1. (5.14)
Но по определению чисел Уз(Х)
У,(Х)>уп.т.1(Х)>1> j = n — tn, .... п. (5.15)
Из (5.14) получаем
п—т— 1
о(Х*) = 2 У)(Л>уя-т-1 (Л>1, (5.16)
/•»!
и по лемме 5.1
х„+, (X*) > Уп~т~\ (Л, Р = 1......(5.17)
Из (5.14), (5.15) и (5.17) следует, что среди чисел (5.13)
по крайней мере [1 +(m+1)+s]=[m+2 + s] положитель-
ных, а следовательно, не больше чем [n + s— (m+2+s)] =
= (n — tn — 2) нулей. Но выше было отмечено, что среди
чисел (5.13) должно быть (п — т) нулей. Получилось
противоречие. Теорема 5.2 доказана.
5.7. Следствие 5.1 (из теоремы 5.2). Для того что-
бы алгоритм Данцига был конечным, необходимо, чтобы
искомый оптимальный план лежал на ребре многогран-
ного множества (5.2) —(5.3) (предполагается, что зада-
ча (5.1) — (5.3) невырожденная).
Хотя это условие и является весьма жестким, ему
удовлетворяют, например, все (невырожденные) задачи
следующего вида:
§5]
АЛГОРИТМ ДАНЦИГА
165
Максимизировать
п
х0 s (5.18)
/-1
при условиях
п
^jaijXj = bi, i = l, тх, (5.19)
п
^aijXj^bt, i = 1Щ + 1....../п1 + т2, (5.20)
0<ху<1, /=1, ..., п, (5.21)
X) — целое, /—1......п. (5.22)
А это важный класс задач (см. гл. 2 и 3).
5.8. Однако приведенное в следствии 5.1 необходимое
условие конечности алгоритма Данцига не является до*
статочным. Действительно, имеет место следующая
Теорема 5.3. Если для некоторого оптимального
плана X' задачи (5.1)—(5.4) и некоторого плана X" за-
дачи (5.1)—(5.3) имеют место неравенства
п
2 ^>2^4 (5.23)
и
<т(Х")>1, (5.24)
то алгоритм Данцига не будет конечным.
Доказательство. Допустим, что алгоритм Дан*
цига конечен. Тогда из (5.23) следует, что точка X" была
отсечена на некоторой (скажем, р-й) итерации, так что
х„+р(Г')<0. (5.25)
Но из (5.24) и леммы 5.1 получим
х„+р (П > yn.m.x (X") > 0. (5.26)
Сравнивая (5.25) и (5.26), получаем противоречие. Тео*
рема 5.3 доказана. Итак, упрощенный алгоритм Данцига
будет конечным лишь в весьма редких случаях.
5.9. Приведем простой численный пример, когда иско-
мый целочисленный оптимум является внутренней точкой
многогранника планов и алгоритм Данцига не является
конечным.
166
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ [ГЛ. 7
Максимизировать
Хо = + х2
при условиях
— Xj + 3*2 = 3 — Х3,
ЗХ| х2 == 3 " x^t
*j>0, j= 1, .... 4,
хj — целое, j = 1, , 4.
Оптимальный план (х*, х^) = (1, 1, 1, 1) является
внутренней точкой многогранника планов.
ГЛ АВА 7
ТРЕТИЙ АЛГОРИТМ ГОМОРИ
И ЕГО МОДИФИКАЦИЯ
В этой главе излагается третий алгоритм Гомори
(85а], [86], в литературе часто называемый полностью
целочисленным, и при некоторых условиях доказывает-
ся его конечность. Приведен пример, когда эти условия
нарушены и конечность алгоритма Гомори не имеет ме-
ста. Предложена модификация алгоритма, обеспечиваю-
щая конечность при менее ограничительных условиях
(пример и модификация алгоритма предложены Фин-
кельштейном [32]).
§1.0 влиянии ошибок округления.
Идея третьего алгоритма Гомори
1.1. Известно (см., например, Джекобс [101]), что
влияние ошибок округления может привести к получению
ошибочного решения при применении симплекс-метода
(прямого или двойственного) в обычной задаче линей-
ного программирования. При решении же с помощью из-
ложенных выше алгоритмов целочисленной задачи ли-
нейного программирования влияние ошибок округления
существенно усиливается по следующим причинам:
1) Увеличение объема вычислений из-за многократного
применения /-метода. 2) Возможность грубых ошибок
и о ВЛИЯНИИ ОКРУГЛЕНИЯ. ИДЕЯ ТРЕТЬЕГО АЛГОРИТМА 167
в вычислениях при подсчете чисел типа дробных частей от
округленных величин*). В алгоритме Дальтона и Лле-
велина место дробной части {х'о} от числа х<0(0< 1 < П1)
занимает число (x^q ^/v)* v+p место чи
ела (1 - Ы) - числ0 (Л. v+i ” xzo)- 3) Возможность при-
нятия неправильных решений, поскольку целые числа
могут быть приняты за нецелые и т. д.
От вредного влияния ошибок округления свободен
третий алгоритм, предложенный Гомори [86] для решения
полностью целочисленной задачи линейного программи-
рования:
Максимизировать
2 С/Х/ (1.1)
при условиях п atjXj = bit /=1, ..., т, .(1.2)
i-i Х/>0, j— 1, ..n, Xj — целое, / = 1, .... n. (1.3) (1.4)
1.2. Опишем идею третьего алгоритма Гомори. Пусть
условия задачи линейного программирования (=2*, С) ss
= С) записаны в виде /-нормальной таблицы То.
Проводя последовательно итерации /-метода, получим
конечную последовательность /-нормальных таблиц
То, Гь ..., Г.,
последняя из которых является допустимой.
Допустим, что исходная таблица Го являлась пол-
ностью целочисленной (т. е. все ее элементы были целы-
ми числами). Почему последующие таблицы могут быть
нецелочисленными? Это возможно потому, что, кроме
операций сложения (вычитания) и умножения, при пе-
реходе от таблицы Tv к таблице Tv+i имеется еще опе-
рация деления на направляющий элемент. Если бы
1 0-999999» 1,000000 в том смысле, что |0,999999—
0’999999 ^>°10^10'5’ ОдНако КО,999999}—{1,000000)1 = 10,999999—0|»
168
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ (ГЛ. 7
направляющий элемент на всех итерациях был равен
(—1), то целочисленность таблицы То повлекла бы за
собой и целочисленность всех остальных таблиц, опти-
мальный план Xs задачи (=5%, С) (соответствующий
таблице Т$) оказался бы одновременно и оптимальным
планом задачи С).
Разумеется, нельзя в общем случае гарантировать,
что на каждой итерации /-метода направляющий элемент
будет равен (—1). Можно, однако (основываясь на опыте
первого алгоритма) попытаться так модифицировать
определение правильного отсечения, что если соответ-
ствующую ему (отсечению) строку принять за направ-
ляющую, то направляющий элемент (при выборе столбца
по правилам /-метода) окажется равным (—1).
Более точно задача отыскания целочисленного пра-
вильного отсечения формулируется следующим образом.
Имеется задача линейного программирования (Jr, С),
условия которой записаны в виде целочисленной, недо-
пустимой и /-нормальной таблицы Т'— IIII, e у e jyo»
так что расширенный /-псевдоплан
X'» (х0, хр .... хп) = (Ход, х10, ..., хп0),
соответствующий таблице Т', не является расширенным
планом. Надо построить линейную функцию
z(J) = r0+ 5 rj(-Xj), (1.5)
/e>V
удовлетворяющую следующим условиям:
I. Условие целочисленности.
Г; —целое для всех /е№. (1.6)
II. Условие отсечения.
z(X')^r0<0. (1.7)
III. Условие правильности. Для любого пла-
на X задачи («2711, С) выполняется неравенство
z(X)>0. (1.8)
§ П
о ВЛИЯНИИ ОКРУГЛЕНИЯ. ИДЕЯ ТРЕТЬЕГО АЛГОРИТМА 169
IV. Условие сохранения целочисленно-
сти. Если среди чисел гД/еА/) есть отрицательные,
^0/
— столбец матрицы T'(jeN) и
%nj
т—г = lex min т—г,
1гг1 /е«;г;<0 I rj I
(1.9)
то
г,= -1. (1.10)
Условие (1.9) — (1-Ю) означает, что если строка z(X)
выбирается в качестве направляющей, то направляющий
элемент равен (—1).
Замечание 1.1. Из условий (1.9) —(1.10) следует,
что направляющий столбец однозначно определяется на-
бором отрицательных элементов направляющей стро-
ки z (X):
Ri = lex min R' (1.11)
jeN; rj<0
1.3. Если удастся построить целочисленное правиль-
ное отсечение, соответствующее условиям (1.5) — (1.10),
то логическая схема алгоритма будет выглядеть следую-
щим образом.
Начиная с исходной недопустимой таблицы То, строим
последовательность таблиц
каждая из которых является целочисленной и /-нор-
мальной. Если таблица Тг окажется допустимой, то со-
ответствующий ей Z-псевдоплан А,ц окажется одновремен-
но и оптимальным планом задачи (.2я1, С). Если же
таблица Тт окажется недопустимой, то строим целочис-
ленное правильное отсечение, удовлетворяющее усло-
виям (1.5) — (1.10). Приписываем соответствующую
строку к таблице Тг снизу, принимаем ее за направляю-
щую и проделываем одну итерацию /-метода. Получаем
новую таблицу Тг+1 (целочисленную и /-нормальную).
170
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ [ГЛ. 7
§ 2. Построение целочисленного правильного отсечения.
Третий алгоритм Гомори
В этом параграфе излагается способ, предложенный
Гомори для построения целочисленного правильного от-
сечения, и основанный на этом способе третий алгоритм
Гомори.
2.1. Основой для построения целочисленного прагпи -
ного отсечения служит следующая
Теорема 2.1. Пусть Х>0,
г/о = ^о+ S
1^т
где Т — конечное множество]
/е т
где [х] обозначает целую часть числа х;
z/y>0, /e{0}Ur,
yj — целое, j^T.
Тогда
z>0,
z — целое.
Доказательство. Целочисленность z непосред-
ственно следует из определения целой части и из цело-
численности yj
Допустим теперь, что
г<0.
Тогда из целочисленности z следует, что
z — 1.
С другой стороны,
(2.1)
так что
(2.2)
$2]
ПОСТРОЕНИЕ ОТСЕЧЕНИЯ. ТРЕТИЙ АЛГОРИТМ ГОМОРИ 171
Из (2.1) И (2.2) получаем
ито невозможно ввиду неотрицательности X, у,
(dj 1
-y-j (/еГ). Теорема 2.1
доказана.
2.2. Используя теорему 2.1, построим целочисленное
правильное отсечение (удовлетворяющее условиям
(15)_(1.Ю)). Пусть задана целочисленная, недопусти-
мая и /-нормальная таблица
Т = || xtj ||у е
и пусть для некоторого k (1<£^п)
Положим T = N, dj = xkj Уо = хк, yj = Xj
X>max|</7|,
/eJV'
так что
Г dj I I 0, dj^O,
Lt]=|-i, dj<o,
и получим целочисленное правильное отсечение
z^z*-(X; Х)=-1 + 2 (-1)(-хД
I&N
xk}<°
z> 0,
z — целое.
Ниже (в ходе изложения алгоритма) будет произве-
ден более рациональный выбор X.
2.3. Выше было упомянуто, что третий алгоритм Го-
мори начинается с получения исходной таблицы То —
Целочисленной и /-нормальной. Прежде чем переходить
непосредственно к изложению алгоритма, покажем, как
в некоторых случаях можно получить исходную таб-
лицу То с нужными свойствами.
172
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ [ГЛ. 7
2| ачх^Ьь
ху>0,
х 1 — целое,
Рассмотрим полностью целочисленную задачу линей-
ного программирования.
Максимизировать
Xq = CjXj (2»3)
при условиях
i = 1...т, (2.4)
(2.5)
/=1, ...» п. (2.6)
Здесь все числа с}, a(j, bt целые.
Введем новые переменные и получим эквивалентную
задачу с уравнениями вместо неравенств.
Максимизировать
Хо= 2(-<?у)(~Ху)
при условиях
xn+l - bl + 2 atj(-Xj), i = 1...tn,
Xy^O, /=1» .... n, n+1.....n + tn,
Xj — целое, /!, ...» n, n + 1....n + tn.
Примем переменные xit..., xn за небазисные и выпи-
шем таблицу То (см. стр. 173).
а) Если таблица То является /-нормальной (напри-
мер, в случае су<0, / = 1,...,п), то принимаем ее за ис-
ходную таблицу То.
б) Допустим, что таблица То не является /-нормаль-
ной, но множество планов задачи (2.3) — (2.5) ограничено.
Решаем задачу линейного программирования с целевой
п
функцией 2 Xj при условиях (2.4) —(2.5) и находим
п
max 2 Ху «Ж
/-1
§ 2] ПОСТРОЕНИЕ ОТСЕЧЕНИЯ. ТРЕТИЙ АЛГОРИТМ ГОМОРИ 173
1 -Xi —x2 ~xi -Xn
*o 0 -Ci -C2 -Cj ~~Cn
X1 0 -1 0 0 0
Xi 0 0 -1 0 0
• • • • •
• • • • • • ••••• •
• • • ♦ • • ••••• •
Xn 0 0 0 0 . ..... -1
Xfl+j *1 ац «i2 a0 ain
X/i+2 ^2 a2i a22 «2/ ...... a2n
• • • • ...... •
• • • * • •
• • • • • •
X/i+i bi ац ai2 al) ain
• • • • ...... •
• • • • • • ••••• •
• • • • • •
Xn+m bm ami am2 am] amn
Таблица Т'о
Очевидно, что для всех планов задачи (2.3)—(2.6) заве-
домо
Следовательно, можно ввести новую переменную
Jfn+i “* Af 4- 2J1 • ( Xj),
Xn+i 0»
*n+i — целое.
(2.7)
(2.8)
(2.9)
174
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ (ГЛ. 7
Строку xn+i (2.7) приписываем снизу к таблице То и при.
нимаем за направляющую. За направляющий столбец
принимаем
Ri = lex min R'j,
/S{1.........
где Rj — столбец таблицы To, соответствующий небазис-
ной переменной х}. Проделываем одну итерацию /-мето-
да, вычеркиваем строку хп+) и получаем полностью цело,
численную и /-нормальную таблицу То. В дальнейшем
с переменной xn+i можно обращаться, как с вновь вве-
денной переменной (см. первый алгоритм Гомори), т. е.
при возвращении ее в базис соответствующая ей строка
не восстанавливаегся.
2.4. Переходи ! к изложению третьего алгоритма Го-
мори.
0-я итерация. Строится исходная таблица
7’0 = 11х“/1|/е<г";/е№
целочисленная и /-нормальная. Если таблица То яв-
ляется также допустимой, то расширенный /-псевдоплан
у0 у»0\ — (у0 1*0 у0 \
А —Ио» х1> •••> xrtJ"“Hoo» хю» •••>
является расширенным оптимальным планом задачи
(_2₽ц, С) (2.3) — (2.6). Если таблица То не является допу-
стимой, то переходим к первой итерации.
p-я итерация (р>1), Задана- целочисленная и
/-нормальная, но недопустимая таблица
/ Х?~1
/ Л0/
Столбцы Tp-i обозначаем через /?f”‘ =1 хи1
На-
Xni
ходим первую по номеру компоненту х^1, нарушающую
допустимость таблицы Т^,
k == min {/ |i е {1, 2, ..n); х^1 < 0].
§ 2] ПОСТРОЕНИЕ ОТСЕЧЕНИЯ. ТРЕТИЙ АЛГОРИТМ ГОМОРИ 175
Если числа хР;’>0 Для всех то задача
С) (2.3) —(2.6) неразрешима. Если же среди чи-
сел 'х?;1 есть отрицательные, то выбираем ведущий
Л/ ,
столбец л/ •
ЯГ’== lex min (2.10)
ieNP-vxk]<°
и строим целочисленное правильное отсечение (напра-
вляющую строку)
' *•₽“* «-.Г хР*11
Х„+Д= -^ + 2 [-¥"](- (2.11)
/sVi
х„+р>0, (2.12)
хп+р — целое. (2.13)
Правило выбора числа % указано ниже (см. п. 2.5).
Строку Хп+Р (2.11) приписываем снизу к таблице Тр-i и
принимаем за направляющую. Проделываем одну ите-
рацию /-метода (из базиса выводится хп+р, в базис вво-
дится Xi). Строку Хп+р вычеркиваем. Если l^-n+1, то
строку Xi не восстанавливаем. Получаем таблицу
ГР = 1х?/1<в<2«. /eJvo
целочисленную и /-нормальную.
Здесь
/Vp-PViMOlUttn + p».
Если таблица Тр окажется допустимой, то вектор
%Р s (хо> xi> • • • > Хп) = (хоо> хю> • • •» хпо)
является расширенным оптимальным планом задачи
(~^ц> С) (2.3) — (2.6). Если таблица Тр недопустима, то
переходим к (р+ 1)-й итерации.
Блок-схема третьего алгоритма Гомори приведена на
Рис. 7.2.1. Блок-схема третьего алгоритма Гомори.
§ 2]
ПОСТРОЕНИЕ ОТСЕЧЕНИЯ. ТРЕТИЙ АЛГОРИТМ ГОМОРИ 177
2.5. Число X выбирается с соблюдением следующих
условий:
I. Направляющий элемент равен (—1):
Г хр-11
-т-------1- (2.14)
L A J
II. Таблица Тр должна быть /-нормальной:
xp-i1
Rpi = ₽Г‘ + -г" Я?"1 > 0 (2-15)
Л J
для всех / s Np \ {(n + р)} = Np-i \ {/}.
III. Столбец М должен быть /-минимальным:
/$ = /?£-'+ ^-]/?f-'->lex min. (2.16)
Замечание 2.1. Так как направляющий элемент
равен (— 1) и М’1 > 0 (в силу /-нормальности таблицы
Tp-i), то Rn+p = RF1 z* 0, т. е. /-положительность /?„+р
гарантирована. Положительность 1 „следует из (2.14) и
отрицательности х^1 (см. (2.10)).
2.6. Поясним, как находить Л из условий (2.14) —
(2.16). Условие (2.14) можно переписать следующим
образом:
или, что то же самое,
(2.14')
Условие (2.15) также можно упростить. Если хру* >0,
’хр-1 1
то Ь?Г-1>0, и условие (2.15) выполняется при
любом (положительном) Л.
Таким образом, достаточно рассматривать те /е
s ^р-1 \ {О, для которых <0. Далее, пусть для всех
ft(J)-min{Z|x^l> 0].
Из (2.10) следует: h(l) = max [h(j) |/s N^; xjy1 < 0).
12 А. А. Корбут, Ю. Ю. Финкельштейн
178
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ [ГЛ. 7
Ясно, что если /г(/)<й(/), то при любом Л
rp-i
^1 dP-'v^a
Следовательно, достаточно рассматривать лишь те
/ е= JVp_j \ {/}, для которых
х₽7'<°
И
л (/)=*(/).
Обозначим множество таких /' через N'
jvp-i “ и *' р-i ki ’ "V/-"v/p
Теперь условие (2.15) можно переписать следующим
образом:
.P7I
Ri~l > 0 для всех / е Np-t. (2.15')
RP = RP-l +
xkj
X
Если множество N'p-i пусто, то условие (2.15') не на-
кладывает никаких ограничений на (положительное) к.
Допустим, что множество Np-t не пусто. Тогда для
каждого /ejVp-i можно найти такое натуральное
ЧИСЛО Zj, что
Ri~' - (z/ + 1) ₽Г’ < 0 < /?Г’ - ZjRF'.
Заметим, что 7?/"1 =^= zRPi~l ни при каком z. Действи-
тельно, если 7?/-1 = z/??-1, то
det II х?;1 II =0.
11 11 s Nt; i s Wp_!
Но это невозможно, поскольку направляющие элементы
у нас все время равны (—1). Поэтому получим
о
— det ||х°у 11 е Ял j s N<i — det
¥= 0.
0
-1
§ 2] ПОСТРОЕНИЕ ОТСЕЧЕНИЯ. ТРЕТИЙ АЛГОРИТМ ГОМОРИ 179
Возможны четыре случая:
О Хл (*)/
В этом случае
гу=1.
2) Xh~(l) I в ? ХМ/)/ + Г‘
Здесь q и г — натуральные,
1 (1)Г
В этом случае
= q.
3) xfr-qxtf, .., h(l) + t = s-l,
xps]x>qx^.
Здесь натуральное <7 >2. В этом случае
4) xff — qx?~l, i = h(T), h(l) + 1, .... h(l) + t = s — 1,
< 4xp^.
Здесь натуральное q~^2. В этом случае
zy = <7-l.
Вычислив Zj, можно переписать (2.15') следующим
образом:
[xp-i 1
-у-J<Z/ для всех j^N'p_lt
или, что то же самое,
откуда получаем
/ xp-i \
max I---/ е = 6 < Л. (2.15")
I \ zj /
Наконец, так как 1>0, лс*о1 < 0 и 7?f-1 0, то условие
(2.16) можно переписать следующим образом:
Л—>min. (2.16')
Из (2.14'), (2.15"), (2.16') получаем
Л=шах{—х^‘, 6]. (2.17)
12*
180
ТРЕТИЙ алгоритм гомори и его МОДИФИКАЦИЯ (ГЛ. 7
2.7. Приведем численный пример.
Максимизировать
х0 = Xj + х2
при условиях
Х1 + х2 + х3 =9,
— 4Х] + 7х2 + х4 = 4,
5Xj — 6х2 + х5 = 6,
х7>0, /=1....5.
Ху —целое, /= 1, ..., 5.
(2.18)
(2.19)
(2.20)
(2.21)
Процесс решения изображен в виде последователь-
ности таблиц То, Ti, Т2, Тз, Т4. Под таблицами То,.... Т3
Рис. 7.2.2.
(которым соответствуют /-псевдопланы Х°,..., X8) выпи-
саны строки! соответствующие целочисленному правиль*
$ 2] ПОСТРОЕНИЕ ОТСЕЧЕНИЯ. ТРЕТИЙ АЛГОРИТМ ГОМОРИ 181
ному отсечению Хв+Р^0. Направляющие элементы везде
отмечены звездочками. Таблице Т4 соответствует реше-
ние задачи- (2.18) — (2.21). Геометрическая иллюстрация
процесса решения задачи дана на рис. 7.2.2. Расширен-
ные /-псевдопланы Х°, X1....X4, последний из которых
является решением задачи (2.18) —(2.21), выписаны от-
дельно в виде табл. 2.1. В этой же таблице выписаны
числа Хо, Хь Хг, Хз.
1 -х3 ~Х2 1 ~Х3 -Хь 1 ~х7
Хо 9 1 0 х0 9 1 0 х0 8 1 1
Х\ 9 1 1 Xi 5 0 1 Xi 5 0 1
Х2 0 0 -1 х2 4 1 — 1 х2 3 1 0
Хз 0 -1 0 х3 0 -1 0 х3 1 — 1 -1
Х4 40 4 И х4 -4 —7 11 х4 3 — 7 4
Хз -39 -5 -11 х5 5 6 -1 1 «5 “I 6 -5
Таблиц а То Таблица 7 * Таблица Т2
Хз -4 -1 -1* X? -1 -1* 1 х3 -1 1 -1*
У -х? -х8 1 1 ~х9 - *8
Х0 7 2 1 Хо 5 2 3
4 1 1 Х1 3 1 2
Х2 3 1 0 х2 2 1 1
Хз 2 —2 -1 Хз 4 -2 - 3
Х4 -1 -3 4 Х4 2 -3 1
*5 4 1 -5 Хз 3 1 - 4
Та блица Т3 Таблица
Х9 — 1 -1* 1
182
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ (ГЛ. 7
Хр
p XP *0 4 XP X2 YP x3 % YP x5 Kp
0 9 9 0 0 40 -39 11
1 9 5 4 0 -4 5 7
£ 8 5 3 1 3 ' -1 5
3 7 4 3 2 -1 4 3
4 5 3 2 4 2 3 —
Таблица 2.1
§ 3. Доказательство конечности третьего
алгоритма Гомори
3.1. В этом параграфе будет рассматриваться пол-
ностью целочисленная задача линейного программиро-
вания С) (2.3) — (2.6), условия которой записаны
в виде целочисленной /-нормальной таблицы То.
Теорема 3.1. Если существует план X'^(x'lt .... х')
задачи (-2?Д, С) (2.3) — (2.6), то третий алгоритм Гомори
конечен.
3.2. Доказательство. Напомним некоторые обо-
значения. Элементы таблицы Тг обозначаются через
хгц, i <^Qn, №г, где Nr — множество индексов неба-
зисных переменных, соответствующих таблице Тг. Через
Хг = (х$, х{, .... х') обозначается расширенный /-псев-
доплан (xjo, х'о.х'о), соответствующий таблице ТГ.
Пусть A!p_| = min{Z|iG{l, .... п}; х^’СО). Обозначим
через /рН номер направляющего столбца р-й итерации:
Ri^ = lex min Rj.
is лгр_1: x^_tj < 0
Очевидно,
Х°>Г>Х2...>ХР>... >X'. (3.1)
§ з]
ДОКАЗАТЕЛЬСТВО КОНЕЧНОСТИ
183
Отсюда следует, что
р = 0, 1, ...
(3.2)
3.3. Существует такое р0, что
*?'1 = хо ПРИ Р>Ро-
(3.3)
Действительно, так как xg — целое при любом р, то
целое и (xg~l — х§) 0. Следовательно, количество ите-
раций р, для которых xg — xj-1 > 0, не превышает
xg - х'о, откуда и следует (3.3).
3.4. Допустим, что количество итераций бесконечно.
Тогда найдутся такие и Pi^l, что
0 хр-> = хр, р>рр i = 0, 1, .... dj-1. (3.4)
2) Найдется сколь угодно большое р, для которого
х£-‘¥=х₽. (3.5)
Из (3.1), (3.4) и (3.5) имеем
Р>Рг м
Следовательно, найдется такое р2^Р1» что
xP-^xf, р>р2, r = 0, 1..............d,-l, (3.7)
Х2Г‘<°> Р>Р2- М
Рассмотрим р-ю итерацию при q^p2. Из (3.8) еле-
дует, что
х^<0, (3.9)
т. е.
(зло)
откуда в силу отрицательности х£~1 г и
фической положительности получаем
A (Iq-,) == min р 11 е {0, 1, 2.и}; х’-1
лексикогра-
(3.11)
184
ТРЕТИЙ АЛГОРИТМ ГОМОРИ И ЕГО МОДИФИКАЦИЯ [ГЛ. 7
Из (3.11) следует, что
^(z9-i)^^'(z?-i)-1, ГДе <1>Р2- (3.12)
Сравнивая (3.7) и (3.12), получаем противоречие. Ко-
нечность третьего алгоритма Гомори доказана.
§ 4. Модификация третьего алгоритма Гомори
Выше была доказана конечность третьего алгоритма Гомори, но
лишь при условии, что задача (2.3) — (2.6) имеет хотя бы один план.
Следует отметить, что в общем случае ответить на вопрос, есть ли
хотя бы один план у задачи (2.3) — (2.6), так же трудно, как и
решить задачу (2.3) — (2.6). Возникает естественный вопрос — яв-
ляется ли предположение о существовании планов у задачи (2.3) —
(2.6) необходимым условием конечности третьего алгоритма Гомори
или же просто несовершенна техника доказательства?
Здесь будет дан ответ на этот вопрос (см. Финкельштейн [32]).
Будет построен пример задачи вида (2.3) — (2.6), не имеющей пла-
нов, для которой третий алгоритм Гомори не является конечным.
Кроме того, будет указана модификация третьего алгоритма Гомори,
для которой конечность гарантируется без предположения о суще-
ствовании планов у задачи (2.3)—2.6).
4.1. Приведем пример задачи, для которой третий алгоритм Го-
мори не является конечным. Условия задачи выпишем в виде та-
блицы Т0. 1 v v
1 —Ха ~Х5 “Хб
10 4 3 1
-1 -3 2 2
-1 2 -3 2
-1 2 2 -3
0 -1 0 0
0 0 -1 0
0 0 0 -1
Таблица Го
Отметим, что в данном случае не только задача (2.3— (2.6), но и неце-
лочисленная задача (2.3) —(2.5) заведомо не имеет планов, поскольку
О <Xi+x2+x3= (—1 +3х4—2х5—2хб) + (1—2х4+3х5—2хб) + (1—2х4—
—2х5+3хб) =—3—х4—х5—х6<0,
т. е. условия задачи (2.3) —(2.5) противоречивы.
§ 4] МОДИФИКАЦИЯ ТРЕТЬЕГО АЛГОРИТМА ГОМОРИ 185
4.2. Покажем, что применение алгоритма Гомори к таблице То
приводит к бесконечному процессу.
Обозначим через х^(/>1) элемент таблицы ТР, стоящий
в строке, соответствующей переменной Xi, и /-м столбце. Напомним,
что хрц обозначает элемент таблицы находящийся в строке Xi
и столбце Xj.
Теорема 4.1. Для любого р (р=0, 1,...)
2 х?0 < 0. (4.1)
i = 1
хрц = x°i/t i-0, 1, 6, />1. (4.2)
Доказательство проведем по индукции. При p—Q форму-
лы (4.1) и (4.2) верны. Допустим, что они верны при р=<7, и до-
кажем их при p=q+\. Поскольку
з
2 х1о < 0. (4-3)
то
kq s min [i | i e {1, 2, ..., 6); xqiQ < o) e {1, 2, 3}.
Далее, так как
(4-4)
то, обозначая через Хд значение параметра X, выбираемое при
построении целочисленного правильного отсечения Хп+g+i^O, по-
лучаем Хд=3. Следовательно, строка, соответствующая xn+g+i. со-
держит (—1) в направляющем столбце и нули в двух остальных
столбцах, соответствующих Nq (поскольку [2/3]=0).
Отсюда сразу следует, что
X?*1 = x4ti = x°tl, i - О, 1.6, / > 1. (4.5)
Далее, очевидно, получим
зз з
2<’< 24)-(-з+2+2)=-24>-ко- (4.6)
/=1 f=l i«l
Теорема доказана.
Из теоремы сразу следует, что применение алгоритма Гомори к
таблице То приводит к бесконечному процессу. Аналогичный пример
легко может быть построен и для любого количества переменных.
4.3. Модифицируем теперь третий алгоритм Гомори так, чтобы
его конечность была гарантирована при соблюдении следующих
условий: 1) Построена исходная целочисленная и /-нормальная таб-
лица Го и 2) множество G планов задачи (2.3) —(2.5) ограничено*).
*) Если соблюдены условия конечности третьего алгоритма Го-
мори, то конечность модификации также гарантируется.
186 О РЕШЕНИИ ЗАДАЧ С ДОПОЛНИТЕЛЬНЫМИ УСЛОВИЯМИ [ГЛ. 8
Доказательство конечности для модифицированного алгоритма
почти не изменяется и здесь не приводится.
В силу ограниченности множества G можно (методами линей-
ного программирования) найти
min xQ =s М. (4.7)
' X е Q
Если задача минимизации х0 на G неразрешима, то неразре-
шима и задача (2.3) —(2.6).
Если же эта задача разрешима, то для любого плана задачи
(2.3) — (2.6) получаем
х'о “ *о ~ ]м [ > °> (4.8)
где ]АЦ — наименьшее целое число, не меньшее М. В исходной
таблице Го заменим xQ на х'о (очевидно, что компоненты Xi.хп
искомого оптимального плана от этого не изменятся) и будем те-
перь при проверке допустимости таблицы ТР начинать проверку на
неотрицательность не с числа xf0, а с числа х?ю. Если окажется
при этом, что Ход < 0, то задача (2.3)—(2.6) неразрешима.
ГЛАВА 8
О РЕШЕНИИ ЦЕЛОЧИСЛЕННЫХ ЗАДАЧ
линейного программирования
С ПРОИЗВОЛЬНЫМИ
ДОПОЛНИТЕЛЬНЫМИ УСЛОВИЯМИ
В последние годы выполнен ряд работ, посвященных
переносу метода отсечения на задачи выпуклого цело-
численного программирования (см. Куртийо [61], Кюнци
и Этли [107], Витцгалл [127]).
Эффективность этих алгоритмов пока что неясна. По-
этому здесь указанные работы не излагаются, а лишь
описываются некоторые новые приемы, позволяющие пе-
ренести изложенные выше алгоритмы метода отсечения
на значительно более широкий класс задач.
Постановка задачи и идея метода изложены в § 1.
Там же, в сущности, изложен простейший алгоритм.
§ 2 посвящен использованию специфики выпуклых и не-
которых невыпуклых задач. В § 3 дано более подробное
изложение применения третьего алгоритма Гомори и
приведен численный пример.
§11
ПОСТАНОВКА ЗАДАЧИ И ИДЕЯ МЕТОДА РЕШЕНИЯ
187
§ 1. Постановка задачи и идея метода решения
1.1. Рассмотрим полностью целочисленную задачу ли-
нейного программирования с дополнительным условием.
Максимизировать
Xq^^CjXj (1.1)
I условиях
п
(1.2)
/=1, ...» п, (1.3)
Xj — целое, )=1, п, (1.4)
(xh..., х„)^Х«=£>. (1.5)
Условие (1.5) совершенно произвольно. Многогранное
множество-S’((1.2)— (1.3)) считаем ограниченным, так
что множество-S’4 (1.2)—(1.4) содержит лишь конечное
множество точек. Числа С; считаем целыми, /=1,...,п.
1.2. Идея метода состоит в последовательном реше-
нии (с помощью метода отсечения) ряда вспомогатель-
ных полностью целочисленных задач линейного про-
граммирования: (-2я1, С) = (-27, с), (-27, С), (=2^2, С), ...
Переход от задачи (-27, С) к задаче (-27м, С) также
совершается с помощью метода отсечения. Если реше-
ние некоторой задачи Х(-27, С) удовлетворяет до-
полнительному условию (1.5), то процесс решения закан-
чивается и Х(-27, С) оказывается оптимальным планом
задачи (1.1) —(1.5).
1.3. Опишем переход от задачи (=27, С) к задаче
(-27+1, С). Пусть оптимальный опорный план Х(=27, С)
задачи (-27, С) не удовлетворяет дополнительному ус-
ловию (1.5), причем Nr — множество индексов небазис-
ных переменных, соответствующих Х(-27, С).
Решение Х(-27, С) можно «отсечь», используя прием,
аналогичный упомянутому выше приему Данцига.
Теорема 1.1. Пусть
z,(X)--l+ 2 xj,
t*N.
188 О РЕШЕНИИ ЗАДАЧ G ДОПОЛНИТЕЛЬНЫМИ УСЛОВИЯМИ 1ГЛ. 8
X — план задачи (1.1)—(1.5). Тогда
zr (X) — целое,
zr(X»0.
Доказательство совершенно аналогично обоснованию
приема Данцига. План X однозначно определяется зна-
чениями переменных Xj (/e/Vr), причем набору значений
(Xj=0, j^Nr) соответствует X (-S’?, С), не являющийся
планом (так как не удовлетворяется условие (1.5)). Сле-
довательно, для плана X по крайней мере одна из пере-
менных Xj, j^Nr, скажем, переменная х&, должна быть
положительной, а в силу целочисленности
1,
откуда вследствие неотрицательности переменных Xj по-
лучаем
Теорема 1.1 доказана.
1.4. Выберем алгоритм метода отсечения, с помощью
которого будем решать вспомогательные задачи (-S’?, С).
Под (-?5, С) подразумевается задача (-2’ц, С) ((1.1)—
(1.4)).
r-й шаг (г’>0). Решаем задачу (-S’?, С). Если зада-
ча (-S’?, С) неразрешима, то неразрешима и задача
(1.1) —(1.5). Если задача (-S’?, С) разрешима и ее реше-
ние X(-S’?, С) удовлетворяет дополнительному условию
г(1.5), то X(-S’?, С) является одновременно решением за-
дачи (1.1)—(1.5). Если же решение X (-S’?, С) не удовле-
творяет условию (1.5), то вводим дополнительное ограни-
чение (см. теорему 1.1), присоединяем его к условиям за-
дачи (-S’?, С} и получаем задачу (-S7+1, С). Конечность
процесса следует из конечности числа планов задачи
(Л С).
1.5. Этот метод можно распространить также и на за-
дачи с произвольной максимизируемой целевой функ-
цией f(X) и ограничениями (1.2) —(1.5), но в этом слу-
чае удается получить лишь приближенное решение.
$ 21 ОТСЕЧЕНИЯ ДЛЯ ВЫПУКЛЫХ И НЕВЫПУКЛЫХ ЗАДАЧ 189
Пусть 8>0 — максимально допустимое отклонение
(по значению целевой функции) от точного решения.
Введем вспомогательную целевую функцию х0 = ^jCjXj
и решим (указанным выше методом) задачу (1.1) — (1.5).
Получим решение Х°, запомним его и перейдем к реше-
нию задачи (1.1) —(1.5) с дополнительным условием
+ (1.6)
Если новая задача (1.1) —(1.6) не имеет решения, то Х°
следует принять за приближенное решение задачи
(1.1) —(1.5). Если же задача (1.1) — (1.6) имеет решение
X1, то вычеркнем из памяти Х°, запомним X1 и перейдем
к решению задачи (1.1)—(1.5) с дополнительным усло-
вием
/(Х)>/(Г) + е. (1.7)
Таким образом, за конечное число шагов получим иско-
мое приближенное решение.
1.6. Изложенные выше методы носят универсальный
характер, что связано с отсутствием каких-либо ограни-
чений, наложенных на множество D (входящее в условие
(1.5)) и функцию f{X). Поэтому соответствующий вы-
числительный процесс может получиться весьма длитель-
ным. Например, при решении задачи (1.1) — (1.5) коли-
чество решаемых задач (-S’?, С) будет равно количеству
планов X задачи (-S’o, С), удовлетворяющих условию
Х>Х,
где X — лексикографический оптимум задачи (1.1) — (1.5).
В следующем параграфе будут указаны некоторые
приемы для использования специальных свойств D (и f).
§ 2. Построение отсечений для выпуклых
и некоторых невыпуклых задач
2.1. Пусть D — выпуклое замкнутое множество. Тогда
в качестве плоскости, отсекающей точку X&D от /^есте-
ственно взять одну из плоскостей, разделяющих X и D
190 ° РЕШЕНИИ ЗАДАЧ С ДОПОЛНИТЕЛЬНЫМИ УСЛОВИЯМИ [ГЛ. 8
(см. гл. 4):
Так как X — опорный план (вершина многогранника
S"), которому соответствует некоторый набор небазис-
ных переменных M={/|Xj— небазисная для плана X}, то
неравенство z(X)^0 можно, разумеется, переписать и
в небазисных переменных
2 у7ху-у0^г(Х)>0. (2.1)
/ е= N
2.2. Пусть D — невыпуклое замкнутое множество,
причем дополнение D до пространства Еп — выпуклое
множество D'. Надо «отсечь» от D точку X&D, причем
X— опорный план многогранника ^'(N—{j\xj— неба-
зисная переменная для плана X}). Обозначим замыкание
множества D' через Б — это также выпуклое множество.
Рассмотрим разложение переменных ..., хп по не-
базисным переменным xt (/e2V),
Xt = xi0+ 2 хи(— х}), z = l, .... п. (2.2)
/ей
Здесь
х(0 = xt, i=l....ti.
Рассмотрим конус К, задаваемый условием (2.2) и
условием неотрицательности небазисных переменных
(2.3)
х7>0 для всех /еХ. (2.3)
Вершиной конуса К (2.2)j—(2.3) является точка X&.D,
(или, что то же самое, ,Ye_D). Ребро lr (r&V) конуса К
задается условиями (2.2), (2.3) и дополнительным усло-
вием _
Х]= 0 для всех j =Н= г (j е N). (2.4)
Найдем точку пересечения Хг ребра 1Г с общей грани-
цей G множеств D и D. Точка Хге25. Через точки Хт
(геЛГ) проведем плоскость
§ 2] ОТСЕЧЕНИЯ ДЛЯ ВЫПУКЛЫХ И НЕВЫПУКЛЫХ ЗАДАЧ 191
Вершина конуса X&D и удовлетворяет условию
— лг — лг
rsN г r&N
Каждую точку X конуса К, удовлетворяющую условию
S-Jd. (2.5)
г е N г
можно представить в виде выпуклой линейной комбина-
ции точек Xr (reJV) и точки X, а так как Xr^D (rsN)
и X&D, то X<=D. _
Итак, вершина X конуса К и все его точки X, удовле-
творяющие условию (2.5), принадлежат множеству D,
причем все точки X (в том числе вершина X) конуса К,
удовлетворяющие (2.5) как строгому неравенству, при-
надлежат D, но не принадлежат общей границе D и D,
так что для них
X&D.
Следовательно, доказана следующая'
Теорема 2.1. Пусть: 1) X — вершина многогранни-
ка ^и N={j\xj—небазисная переменная, соответствую-
щая X}. 2) D — замкнутое множество. 3) D' — дополне-
ние D до Еп. 4) D' — выпуклое множество. 5) X&D.
6) Хг — точка пересечения ребра 1Т многогранника *2” с
общей границей множеств D и D' (см. выше).
Тогда отсечение (отсекающее X от D) можно запи-
сать в виде
г(Х)^ У ^-1 = S (2-6)
j <= N J i е /у
z(X)>0. (2.7)
Замечание 2.1. Если множество D' не ограничено
и некоторое ребро lj не пересекается с общей границей
D и D', то следует положить (условно)
xl=oo, -4- = 0.
1 Х1
192 О РЕШЕНИИ ЗАДАЧ С ДОПОЛНИТЕЛЬНЫМИ УСЛОВИЯМИ [ГЛ. 8
Геометрическая иллюстрация отсечения (при усло-
виях теоремы 2.1) дана на рис. 8.2.1.
2.3. Отсечения (2.1) (для выпуклого D) и (2.6) —
(2.7) (для невыпуклого D) можно применить непосред-
ственно при использовании,
например, второго алгорит-
ма Гомори. Если же для ре-
шения вспомогательных за-
дач С) пользоваться
первым или третьим алго-
ритмом Гомори, то непо-
средственному применению
этих отсечений мешает то
обстоятельство, что пере-
менная z(X) (из (2.1) и
(2.6) — (2.7)) на планах за-
дачи (=5’ц, С) не обязана
быть целочисленной. Обойти эту трудность помогает
теорема 2.1 из гл. 7, основываясь на которой можно
всегда по отсечению
z,(X)= 5 Y/\~Yo>
/ eft J '
г'(Х)>0
построить отсечение
2y/-V7-Yos ~г]’ (2-8)
/ е N / е 1V1
z(X)>0, (2.9)
z(X)— целое. (2.10)
Здесь Л>0.
Для первого алгоритма Гомори этого достаточно, т. е.
при построении z(X) можно взять любое Л. Для третьего
же алгоритма Гомори мало добиться целочисленности
всех коэффициентов отсечения, надо еще, чтобы напра-
вляющий элемент был равен (—1). Это делается так же,
как при обычном применении третьего алгоритма Гомори
(более подробное изложение дано в § 3).
193
ПРИМЕНЕНИЕ ТРЕТЬЕГО АЛГОРИТМА ГОМОРИ
§ 3]
§ 3. Применение третьего алгоритма Гомори
Универсальная схема применения алгоритма цело-
численного линейного программирования для решения
целочисленных задач вида (1.1) — (1.5) была дана в § 1.
В этом параграфе эта схема будет расписана более
подробно применительно к третьему алгоритму Гомори
(поскольку именно для этого алгоритма возникает необ-
ходимость дать некоторые дополнительные разъяснения).
Третий алгоритм Гомори следует использовать в моди-
фицированном виде (см. § 4 гл. 7).
3.1. Рассматривается задача целочисленного линей-
ного программирования с дополнительным условием
(1.1) — (1.5) (задачу (1.1) — (1.4) обозначим через
(=27, С)), записанная в виде целочисленной и /-нормаль-
ной таблицы
T0 = \\X°ij\\t^Qn. leN0-
Через Х0 = (х°, х?> •••> хп) обозначаем расширенный
псевдоплан (х®,, х°0, .... х°0).
r-я итерация. Задача (=27, С) записана в виде
целочисленной /-нормальной таблицы
7’г = 11хг/11/е(3»./swo-
К таблице Тг применяем третий алгоритм Гомори. Если
задача (=27, С) неразрешима, то неразрешима и зада-
ча (1.1) — (1.5). Если задача (=27, С) разрешима (и ее
решение — это А (=27, С)), то получаем целочисленную,
/-нормальную и допустимую таблицу
11Х,Д Qn; /<=«7
Здесь
Х1 = */0’ /= 0, 1, ..., rt.
Если X (.3^, С) удовлетворяет условию (1.5), то
*(=27, С) — решение задачи (1.1) — (1.5). Если же
С) не удовлетворяет условию (1.5), то (см. §§ 1
13 А. А. Корбут, Ю. Ю. Финкельштейн
194 О РЕШЕНИИ ЗАДАЧ С ДОПОЛНИТЕЛЬНЫМИ УСЛОВИЯМИ [ГЛ. 8
и 2) по выбранному способу строим исходное отсечение
z (X) = 2 У/ (— xj) - Yo,
I^Nr
z(X)>0.
Здесь уо>0.
Если среди чисел у,- нет отрицательных, то задача
(1.1) — (1.5) не имеет решения. Если же среди чисел yj
есть отрицательные, то переходим к построению оконча-
тельного отсечения:
xn+sr+i = [ [*%”]( х^' (3-1)
i^Nr
Xn+sr+l^^^t (3.2)
xn+sr+1 - целое. (3.3)
Здесь (n+sr) = max{/|/ejvr}.
Число А определяется следующим образом. Строка
xn+S/,+i выбирается в качестве направляющей. Напра-
вляющий столбец /?/ (/?/ — столбец матрицы Тг) выби-
рается по правилу
/?z = lex min [Rr/ | j е Nr; уу<0).
После выбора направляющей строки и направляющего
столбца переходим непосредственно к определению А
(см. § 2 гл. 7) из условий
/?/ + |Ж1я[>0,
Л J
/?о+рМ/?[->1ех min
L Л J
и вычисляем А по правилам, изложенным в п. 2.6 § 2
гл. 7. Затем выводим из базиса xn+sr+i (и вычеркиваем
соответствующую строку) и вводим в базис х/. Если
/<>п+1, то строка, соответствующая х/, не восстанав-
ливается. Получаем задачу С) в виде целочис-
ленной, /-нормальной симплексной таблицы.
ПРИМЕНЕНИЕ ТРЕТЬЕГО АЛГОРИТМА ГОМОРИ
195
§ з]
3.2. Приведем численный пример.
Максимизировать
Хо = - х, - х2 (3.4)
условиях: (з б)
хь х2 — целые, (3.6)
выполнено по крайней мере одно из двух ограничений
(3.7)
- 5 - х, + 2х2> 0, |
у'2 = — 6 + 4xj — х2 > 0. |
Условие (3.7) задает область D, дополнение которой —
выпу кл а я_ область D', а замыкание D' — это выпуклая
область D, определяемая условиями
У\ = - У'\ > °. |
У2 = ~y2>Q- J
(3.7')
Сначала решим задачу по упрощенному методу, при-
веденному в § 1. Вычисления сведены в табл. 1—5.
Табл. 1—4 не удовлетворяют условию (3.7). Переход
от табл. 1 к табл. 2, от табл. 2 к табл. 3 и от табл. 3 к
табл. 4 производится посредством отсечений вида (1.6).
Табл. 1—3—Z-нормальные и допустимые и обозначены
через То, Ть Т2. Табл. 4 (/-нормальная и недопустимая)
обозначена через Т2. Переход от Т2 к табл. 5 (7з) про-
изводится посредством отсечения 3-го алгоритма Гомо-
ри (при Х=3). Таблица Т2 /-нормальная и допустимая;
она удовлетворяет условию (3.7) и дает оптималь-
ный план задачи (3.4) — (3.7). /-псевдопланы, соответ-
ствующие таблицам Тг, обозначены через Хг, /-псевдо-
план, соответствующий таблице Т2 — через X2. Опти-
мальный расширенный план задачи (3.4) — (3.7) равен
*^(4 х|, х|) = (—2, 2, 0). Геометрическая иллю-
страция процесса решения задачи дана на рис. 8.3.1.
Общее количество симплексных итераций равно 4.
Для сравнения та же задача решена с помощью
Другого способа построения отсечений (см. пп. 2.2 и
2-3), использующего выпуклость множества D (3.7').
Вычисления приведены в табл. 6 и 7. Отсечение z3>0
13*
196 о РЕШЕНИИ ЗАДАЧ С ДОПОЛНИТЕЛЬНЫМИ УСЛОВИЯМИ [ГЛ. 8
построено согласно рекомендациям пп. 2.2 и 2.3. Пере-
ход от г3 > 0 к х3 > О произведен при значении
параметра %, равном 2/3. Геометрическая иллюстра-
ция хода решения дана на рис. 8.3.2. Общее количество
Рис. 8.3.2.
симплексных итераций равно 1. Этот простой пример на-
глядно показывает преимущества, получающиеся при
использовании специфических свойств множеств D.
§3]
ПРИМЕНЕНИЕ ТРЕТЬЕГО АЛГОРИТМА ГОМОРИ
197
1 -Х| -х2
Хо 0 1 1
Х\ 0 -1 0
х2 0 0 -1
Хз -1 -1* -1
Таблица 1 (Го)
У\ 5 -1 2
У2 6 4 -1
1 —х3 ~х5
Хо -1 1 0
Xi -1 -3 1
Х2 2 -2 -1
Хб -1 -1* 0
Таблица 4 (Т2)
У1
У2
1 -Х< ? ~х4
Хо -1 1 0
Х1 0 —2 1
Х2 1 1 -1
Х5 -1 -1 -1*
Таблица 3 (Т2)
У\ 3 -4 3
У2 7 9 -5
1 “Xj i -х2
Хо 0 1 1
Х1 0 -1 0
х2 0 0 -1
Хз -2 -1* -1
Таблица 6 (То)
У1 5 -1 2
У2 6 4 -1
-1 -2/3 -2/5
198 ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ МЕТОДА ОТСЕЧЕНИЯ (ГЛ. 9
ГЛАВА 9
ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ
МЕТОДА ОТСЕЧЕНИЯ
Глава носит в значительной мере обзорный харак-
тер. Об эффективности алгоритмов метода отсечения
здесь говорится применительно к задаче целочисленного
линейного программирования.
В § 1 ставится задача исследования эффективности.
В § 2 кратко изложены некоторые результаты вычисли-
тельных экспериментов. В § 3 даны некоторые выводы.
§ 1. Проблема эффективности
1.1. Какова эффективность некоторого алгоритма ме-
тода отсечения? Идеальным ответом на этот вопрос
была бы формула, дающая количество арифметических
операций (необходимых для решения задачи) как функ-
цию от параметров задачи и позволяющая предсказать
статистику вычислительного эксперимента.
К сожалению, подобная формула неизвестна даже
для задачи линейного программирования (ЛП) (без
требования целочисленности), существенно менее слож-
ной по сравнению с задачей целочисленного линейного
программирования (ЦЛП). Более того, все оценки эф-
фективности алгоритмов для задачи ЛП основаны пока
что на статистике машинных экспериментов.
1.2. Вкратце остановимся на эффективности алгорит-
мов ЛП — это будет полезно для сравнения с ЦЛП.
Гасс (см. [77], стр. 65 русского перевода) приводит сле-
дующую экспериментальную оценку для числа итера-
ций S метода последовательного улучшения плана.
Пусть т — количество уравнений для задачи ЛП в ка-
ноническом виде (гл. 4, задача (1.9)— (1.11)). Тогда для
подавляющего большинства задач ЛП
m^.S^2m. (1.1)
Оценка (1.1) указывает на высокую эффективность
метода последовательного улучшения плана*).
*) Того же типа оценки известны и для метода последователь-
ного уточнения оценод.
199
ПРОБЛЕМА ЭФФЕКТИВНОСТИ
§11
Следует отметить, что оценка (1.1) отнюдь не оче-
видна. Она существенно лучше, чем строгая оценка
сверху для числа вершин V многогранного множества
планов (число V заведомо превышает S)
Неочевидность оценки (1.1) подчеркивает следующий
любопытный эпизод из истории создания метода после-
довательного улучшения плана (симплекс-метода).
«Простая идея движения по ребрам выпуклого много-
гранника от одной вершины к другой (чем и характери-
зуется симплекс-метод) ранее была интуитивно отверг-
нута как неэффективная. Однако в другой геометрии
она оказалась полезной и по счастливой случайности
была проверена и принята» (см. Данциг [66], стр. 31 рус-
ского перевода).
1.3. Теоретическое обоснование эффективности ме-
тода последовательного улучшения плана (и других ко-
нечных методов ЛП) оказалось трудной задачей. Эта
задача пока не решена; не удалось пока решить и неко-
торые близкие по проблематике задачи, например за-
дачу Гирша (см. Данциг [66], задача 13, стр. 168 рус-
ского перевода). Работа Филипповича и Козлова [28],
посвященная вероятностной оценке числа итераций в
некоторых методах ДП, основана на недоказанном пред-
положении. Некоторое продвижение на пути к строгому
обоснованию эффективности метода последовательного
улучшения плана осуществил Кли [104], [105].
Итак, теоретическое исследование эффективности ме-
тода последовательного улучшения плана (и других
конечных методов ЛП) пока что отсутствует. Однако ма-
шинные эксперименты дают возможность оценивать ко-
личество итераций и свидетельствуют о высокой эффек-
тивности конечных методов ЛП. Поэтому теоретические
исследования в этом направлении ведутся не слишком
интенсивно.
Другое положение сложилось в целочисленном
линейном программировании. Теоретическое исследова-
ние эффективности алгоритмов метода отсечения также
отсутствует. Однако накопленный опыт вычислений
200 ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ МЕТОДА ОТСЕЧЕНИЯ [ГЛ. 9
не позволяет оценивать эффективность алгоритмов метода
отсечения столь же оптимистически, как и эффектив-
ность методов ЛП. При решении задач ЦЛП возникает
ряд трудностей. Выше (гл. 1, п. 1.3) отмечалось, что эти
трудности носят не только технический, но и принци-
пиальный характер. Поэтому теоретическое исследова-
ние эффективности методов отсечения — это более
актуальная (хотя, по-видимому, и еще более трудная)
задача, чем исследование эффективности конечных ме-
тодов ЛП. Пока же об эффективности методов отсече-
ния можно судить лишь по результатам вычислительных
экспериментов.
§ 2. Результаты вычислительных экспериментов
В этом параграфе кратко излагаются некоторые ре-
зультаты вычислительных экспериментов. Авторы не
старались сделать свой обзор исчерпывающим, но лишь
достаточно полным, чтобы дать основу для обобщаю-
щего § 3. Материал расположен в основном в хроноло-
гическом порядке. Особо следует отметить обзор Балин-
ского [50], содержащий интересный материал по эффек-
тивности алгоритмов метода отсечения.
Отметим одну общую закономерность, подмеченную
рядом исследователей: количество итераций в любом из
алгоритмов метода отсечения имеет (в среднем) тенден-
цию к возрастанию с увеличением числа переменных и
ограничений, ростом порядка коэффициентов задачи и
увеличением заполненности ее матрицы.
Переходим теперь к обзору отдельных работ.
Гомори [89], 1960 г. Машинный эксперимент по
первому алгоритму Гомори привел к успешному реше-
нию задач с числом переменных, не превышающим 15.
Миллер, Таккер, Землин [117], 1960 г. Пред-
ложена модель ЦЛП для задачи коммивояжера (и не-
которого ее обобщения, см. § 3 гл. 2). По этой модели
проделано пять вычислительных экспериментов (с чис-
лом городов, равным 4 и 10). Использовался первый
алгоритм Гомори. Удачными оказались лишь два экс-
перимента.
§ 2] РЕЗУЛЬТАТЫ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ 201
Гасс [78], 1961 г.* *). Сообщаются сведения о трех
программах для решения полностью целочисленных за-
дач ЛП по третьему алгоритму Гомори.
Карп [102], 1961 г.**). Сообщается об успешном
практическом использовании алгоритма Гомори для ре-
шения одной задачи оптимального кодирования.
Ояхиа [118], 1962 г. Проводились машинные экспе-
рименты по третьему алгоритму Гомори. Принималось
не только лексикографическое право выбора порож-
дающей строки***) (см. п. 2.4 гл. 7), но и неко-
торые другие правила. Для одной и той же задачи
(20 неравенств, 29 переменных) один из вариантов ал-
горитма дал решение за 70 итераций, а другой — не при-
вел к решению после 30 000 итераций.
Женюи [79], 1963 г. Рассматривалась некоторая
задача раскроя, при решении которой возникает вспо-
могательная задача ЦЛП. Проведен машинный экспери-
мент по решению вспомогательных задач сравнительно
небольшого размера по алгоритму Гомори. Значитель-
ная часть задач не была решена после нескольких де-
сятков тысяч итераций.
Стори, Вагнер [123], 1963. Решались задачи тео-
рии расписаний с тремя машинами и различным коли-
чеством деталей. Использовалась модель ЦЛП, предло-
женная ранее одним из авторов (см. Вагнер [126]). Эта
модель содержит (п2+4п —4) переменных и (4п — 3)
уравнений (здесь п —количество деталей). По третьему
алгоритму Гомори решались задачи с числом деталей
от 4 до 9. В частности, для задачи с 7 деталями (число
перестановок равно 5040) три задачи были решены
(за 85, 105 и 78 симплексных итераций соответственно),
а три задачи не были решены после 1000 симплексных
итераций.
Для задачи с 4 деталями проводилось решение по
различным модификациям первого и второго алгорит-
мов Гомори, отличающимся друг от друга правилом
выбора порождающей строки. Оказалось, что изменение
*) См. также обзор Корбута [13].
***) См. также Балинский [50].
*) Т° есть, строки, по которой строится целочисленное пра-
вильное отсечение. н
202 ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ МЕТОДА ОТСЕЧЕНИЯ [ГЛ. 9
правила выбора может сильно влиять на продолжитель-
ность вычислений.
Джильо, Вагнер [81], 1964 г. Рассматривалась
целочисленная линейная модель для задачи теории рас-
писаний с тремя машинами и шестью деталями (число
перестановок равно 720). Решение проводилось по
третьему алгоритму Гомори. Некоторые из решавшихся
задач были решены за сравнительно небольшое число
итераций, другие — более чем за 720 итераций. Отдель-
ные задачи не были решены за 10 000 итераций.
Мартин [116], 1963 г. Предложен новый алгоритм,
являющийся модификацией первого алгоритма Гомори.
Решены некоторые задачи, не решавшиеся другими
алгоритмами метода отсечения, в частности одна задача
с 54 неравенствами и 442 переменными.
Как сообщают Балинский и Куондт [51]
(1964 г.) по алгоритму Мартина были успешно ре-
шены девять обобщенных задач покрытия (возникших
из практических задач развозки, см. п. 1.5 гл. 3). В этих
задачах число неравенств т <115, число переменных
и <305. Одна задача не была решена после 200 сим-
плексных итераций.
В обзоре Балинского [50] (1965 г.) сообщается*)
о решении по алгоритму Мартина серии комбинаторных
задач (возникающих из задач планирования) при сле-
дующих размерах:
(70, 160)«m,n)< (160, 2200).
Эти задачи имеют матрицы ограничений, на 85% со-
стоящие из нулей, причем из ненулевых элементов —
около 85% единиц. Решены были также задачи разме-
ром (/и, п) = (80,2400) и (215,2600). Все эти задачи
решались с введением сравнительно небольшого коли-
чества правильных отсечений. Балинский считает, что
этот успех достигнут не только за счет преимуществ
алгоритма Мартина, но и за счет некоторых удач-
ных свойств данного класса задач.
Д’Эзоп о, Лефковиц [71], 1964 г. Рассматри-
вается задача распределения грузов по транспортным
♦) Со ссылкой на неназванную статью Мартина.
§ 2] РЕЗУЛЬТАТЫ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ 203
судам при минимизации общего количества используе-
мого транспорта. Строится модель ЦЛП. Ряд задач
решен по третьему алгоритму Гомори (число типов су-
дов s-^5, число неравенств /п<^35, число переменных
п4ЛЗ). Число итераций колебалось от 94 до 447.
Сринивасан [122], 1965 г. Исследовались различ-
ные модификации первого алгоритма Гомори, в которых
понятия угла и расстояния в n-мерном евклидовом про-
странстве использованы для выбора порождающей
строки. Во всех экспериментах количество переменных
п-<98, количество ограничений /и-<48. В качестве те-
стовых были выбраны несколько моделей ЦЛП, являю-
щихся формализациями известных прикладных задач.
Задача размером (т, п) = (11,98) была решена по 4 мо-
дификациям из 5, а по пятой не была решена после
300 симплексных итераций. Другая задача размером
(т, и) = (10,7) не была решена ни по одной из моди-
фикаций после 600 симплексных итераций.
Хэлди, Айзексон [93], 1965 г. Авторы поставили
перед собой задачу показать, что первый алгоритм Го-
мори является не менее эффективным, чем некоторые
другие алгоритмы метода отсечения (отвечая тем самым
на скептическое отношение ряда исследователей к прак-
тической значимости первого алгоритма Гомори). На
ряде тестовых задач небольшого размера была подтвер-
ждена эффективность первого алгоритма Гомори. При
расчетах использовался лексикографический критерий
выбора порождающей строки (сам Гомори пользовался
этим критерием для доказательства конечности алгоритма,
но не предлагал его для практического использования).
Дэй [69], 1965 г. Задача оптимального извлечения
информации из параллельных систем запоминания сво-
дится к модели ЦЛП и решается по алгоритму Гомори.
Опыт показал возможность успешного решения практи-
ческих задач.
Балинский [50], 1965 г. В этом обзоре много ме-
ста уделено эффективности алгоритмов метода отсече-
ния. Остановимся лишь на некоторых, наиболее инте-
ресных фактах, основанных на личном опыте автора и
на публикациях, практически недоступных для совет-
ского читателя.
204 ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ МЕТОДА ОТСЕЧЕНИЯ [ГЛ. 9
В Сиднейском университете были успешно решены
(на практическом материале) по второму алгоритму
Гомори шесть задач размером (т, п) = (32, 39).
Отмечается значительный успех, достигнутый при
решении задач покрытия по алгоритмам Гомори с по-
мощью алгоритма Мартина. В связи с этим Балинский
замечает, что по мнению ряда авторов, метод отсечения
позволяет эффективно решать задачи, связанные с ми-
нимизацией булевых функций. В дальнейшем, однако,
среди обобщенных задач покрытия были выявлены и
более трудные (т. е. хуже поддающиеся решению) за-
дачи *).
В ряде вычислительных экспериментов замечено, что
число итераций сильно зависит от
а) выбора порождающей строки,
б) перенумерации переменных.
Зондерман (121], 1967 г. Предложенный автором
новый вариант симплекс-метода был «вложен» во вто-
рой алгоритм Гомори. Некоторые задачи не были ре-
шены после значительного количества итераций (напри-
мер, одна из задач — после 1500 итераций). Размеры
задач не названы.
Теплицкий, Финкельштейн [27], 1968 г. Про-
водилось сравнительное исследование В-алгоритма Фин-
кельштейна (см. § 4 гл. 6) и двух алгоритмов Гомори:
первого и второго. Решались так называемые «канони-
ческие» задачи (см. [30]) следующего вида.
Максимизировать
Х1
при условиях
ту
i = l....т,
N
CjXi^t,
/=|
ху>0, /=1, .... N,
Xj < 1, / = 1, .... п (n < JV),
______________ Xj — целое, / = 1, .... п.
♦) О трудных обобщенных задачах покрытия см. также Лаулер
и Белл [110] (1966 г.), где дана ссылка на неопубликованный мате-
риал, сообщенный Балинским авторам в 1965 г.
§ 2] РЕЗУЛЬТАТЫ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ 205
При наборе статистики условия задач формировались
при помощи датчика псевдослучайных чисел — отдельно
и независимо выбиралась каждая из (Nm+m+N+\)
величин ац, Ьц с$, t по приведенным ниже правилам.
Коэффициенты ац и Cj — целые числа, равномерно
распределенные на отрезке [0, 9]. Коэффициенты bi
и t — целые числа, равномерно распределенные в
[0,2X4,57V, 0,8X4,57V]. Решение канонических задач про-
водилось на ЭВМ типа М-20.
Исследовалось более 500 задач, разбитых на две
серии (по несколько групп задач в каждой серии).
I. Полностью целочисленные задачи (n—N). Мат-
рица Д = ||а^|| имела для разных групп задач размеры
(т, 7V) = (2, 8); (2, 10); (2, 15); (2, 20); (2, 30); (2, 35);
(10,8); (10,15); (10,20); (10,30).
II. Частично целочисленные задачи = Мат-
рица А имела для разных групп задач размеры
(m,/V) = (10, 20); (10, 30).
Для каждой из групп задач приведены следующие
данные: z — число решавшихся задач; гв — число задач,
не решенных по В-алгоритму; zG — число задач не решен-
ных по алгоритму Гомори; D — общее количество пра-
вильных отсечений, введенных в процессе решения за-
дачи (отдельно для каждого из двух алгоритмов); S —
суммарное количество итераций метода последователь-
ного уточнения оценок, затраченных на приведение сим-
плексной таблицы к допустимой и нормальной форме
(отдельно для каждого из двух алгоритмов); L — сум-
марное количество итераций метода последовательного
уточнения оценок, затраченных на приведение симплекс-
ной таблицы к Z-нормальной форме, Р — количество
итераций метода последовательного уточнения оценок,
при котором задача считалась нерешенной *).
Для величин D, L, S приведены границы изменения,
математическое ожидание М и среднеквадратическое от-
клонение о.
*) Условие прекращения процесса вычислений: а) для 6-алго-
ритма: L+S=P; б) для алгоритма Гомори S—P. Для разных групп
задач бралось разное Р (Р=400 ч-1000).
206 ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ МЕТОДА ОТСЕЧЕНИЯ (ГЛ. 9
В статистику были включены все решавшиеся за-
дачи, в том числе задачи, решение которых: а) доведено
до конца, причем получен правильный ответ; б) не до-
ведено до конца; в) доведено до конца, причем получен
неправильный ответ*).
По результатам эксперимента оказалось, что у
В-алгоритма по сравнению с алгоритмами Гомори луч-
шие результаты по числу задач, решение которых до-
ведено до конца. В-алгоритм требует почти для всех
групп задач введения в среднем меньшего числа пра-
вильных отсечений. Однако В-алгоритм для семи типов
задач (из 12) затрачивает в среднем на решение задачи
несколько больше итераций метода последовательного
уточнения оценок, чем алгоритм Гомори (в основном за
счет лексикографической максимизации).
Большие значения среднеквадратичного отклонения
а по сравнению с М получились за счет следующего
любопытного явления. Для каждого из алгоритмов ре-
шаемые задачи в основном делились на два класса:
1) задачи, решение которых было доведено до конца за
сравнительно небольшое количество итераций
(таких задач было большинство); 2) все остальные за-
дачи.
Представляет интерес тот факт, что для всех групп
задач имеются задачи, решаемые очень быстро по В-ал-
горитму и достаточно долго по алгоритму Гомори. Для
других задач явление обратное. Это, по-видимому, объ-
ясняется тем, что формирование правильных отсечений
у алгоритмов Гомори и у В-алгоритма основано на раз-
ных принципах.
Результаты эксперимента позволяют предполагать,
что В-алгоритм лучше работает на задачах, у которых
много целочисленных планов.
*) Общее количество нерешенных задач по каждому из двух
алгоритмов обычно было небольшим (О-М для группы в 50 задач)
и лишь для группы (10, 30) 1-й серии дошло до 4 из общего ко-
личества 15 задач. При этом была всего одна задача, в которой
первый алгоритм Гомори дал неправильный ответ — это задача 1-й
серии размером (10,15). Второй алгоритм Гомори и В-алгоритм ни
разу не дали неправильного ответа.
5 2] РЕЗУЛЬТАТЫ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ 207
В двух группах задач 1-й серии ((2, 8) и (10, 8))
были выявлены задачи, для которых при решении по
алгоритму Гомори количество правильных отсечений D
превысило объем полного перебора
D>2n*).
Следует отметить, что в составленной программе при
проверке целочисленности элементов симплексной таб-
лицы проверялось условие
<а><е. (2.1)
Здесь (а) — расстояние от а до ближайшего целого
числа.
В случае выполнения неравенства (2.1) а считалось
целым числом, однако в симплексной таблице а на бли-
жайшее целое не заменялось. Этот прием позволил
успешно бороться с влиянием ошибок округления. Для
е использовались значения 2~|2-г2'24.
В докладе Хохлюка [36] (1967 г.) исследовалась эф-
фективность первого и третьего алгоритмов Гомори,
а также алгоритма Мартина. Рассматривались задачи
трех типов:
1. Задача о ранце с многими ограничениями.
2. Целочисленная распределительная задача.
3. Задача специального вида с коэффициентами при
переменных, равными ±1, и 2П-1 неравенствами. Здесь
п — количество переменных. Все переменные булевы.
Приведем некоторые результаты эксперимента.
Задача 1. а) Первый алгоритм Гомори дал плохие
результаты при больших (двух- и трехзначных) коэф-
фициентах. Известная задача Лэнд и Дойг [109] (/п=6,
п=21) не была решена.
б) Алгоритм Мартина не дал решения задачи Лэнд
и Дойг, так как возникшие в процессе решения большие
числа оказались вне разрядной сетки машины.
в) Третий алгоритм Гомори дал хорошие результаты
при числе переменных п 20.
Задача 2 решалась по первому алгоритму Гомори.
Получены хорошие результаты (при целых коэффициен-
тах, по модулю не превышающих 10).
*) Для В-алгоритма это невозможно (см. [30]).
208 ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ МЕТОДА ОТСЕЧЕНИЯ [ГЛ. 9
Задача 3. Условия задачи были подобраны таким
образом, что 2п^1 вершин n-мерного единичного куба
(из общего числа 2П) были ее планами.
Задача решалась по третьему алгоритму Гомори,
п=9, 3, ..., 8. Во всех случаях количество итераций
Z>2n~1.
Пусть X* — оптимальный план задачи 3, а Хг — псе-
вдоплан, полученный на r-й итерации третьего алго-
ритма Гомори. Оказалось, что в условиях задачи 3 рас-
стояние p(Xr, X*) монотонно не убывает до последней
итерации и лишь последняя итерация обращает
p(Xr, X*) в нуль.
§ 3. Некоторые выводы
В этом параграфе сделана попытка на основе ре-
зультатов вычислительных экспериментов охарактеризо-
вать поведение алгоритмов метода отсечения при ре-
шении задач целочисленного линейного программиро-
вания. В качестве меры продолжительности вычислений
могут рассматриваться количество симплексных итера-
ций Z и количество правильных отсечений (дополнитель-
ных линейных ограничений) D. Для третьего алгоритма
Гомори I = D.
Для первого алгоритма Гомори и различных его
обобщений I и D также тесно связаны между собой
(как показывает эксперимент, в большинстве случаев
решение отдельной задачи С) требует сравнительно
небольшого количества симплексных итераций).
Переходим к изложению отдельных свойств алгорит-
мов метода отсечения.
3.1. Числа I и D имеют (в среднем) тенденцию к воз-
растанию с увеличением числа переменных и ограниче-
ний, ростом порядка коэффициентов задачи *) и увели-
чением заполненности матрицы Ца^Н.
Это явление кажется естественным, но опыт показы-
вает, что в дискретном программировании «естествен-
ное» и «правдоподобное» не всегда оказывается пра-
вильным; Точнее говоря, опыт, накопленный на зада-
*) Коэффициенты cj, bi считаем целыми числами,
НЕКОТОРЫЕ ВЫВОДЫ
209
§ 31
чах ЛП, нельзя механически переносить на задачи
ЦЛП.
3.2. Прежде всего обращает на себя внимание «не-
регулярность», «непредсказуемость» поведения алгорит-
мов метода отсечения. Для ряда задач оптимальное
решение не удавалось получить после многих тысяч
итераций, в то время как другие задачи решались за
несколько десятков итераций.
Не удается установить непосредственную связь ме-
жду размерами задач (т. е. числом ограничений т и
переменных п) и числом итераций: неудачи были за-
фиксированы даже для небольших задач («410,
п^Ю), а успехи — для задач достаточно большого раз-
мера (алгоритм Мартина: т=215, п=2600). Возможно,
впрочем, что попытка установления подобной связи —
это неправомерное перенесение результатов ЛП в об-
ласть ЦЛП (о чем было сказано выше).
Быть может, более естественной характеристикой за-
дачи (4?u, С) является не число т (линейных ограниче-
ний, задающих многогранное множество ^), а число
/цч линейных ограничений, задающих многогранное
множество V^11)*). Между тем легко привести при-
меры, когда при небольших тип число тч будет до-
статочно велико.
«Нерегулярность» сказывается и в следующем факте,
подмеченном рядом исследователей: иногда удается су-
щественно сократить число итераций за счет перену-
мерации переменных.
Наконец, имеет место немонотонность прибли-
жения псевдоплана Хг к оптимальному плану X* — с ро-
стом г расстояние р(Хг, X*) не обязательно уменьшает-
ся и лишь на последней итерации обязательно стано-
вится равным нулю.
3.3. Большое влияние на число итераций оказывает
правило выбора порождающей строки. Здесь также
имеет место «нерегулярность» — в то время как одно
*) Напомним, что И.З’ч)—это выпуклая линейная оболочка
точек множества ^’и-. Заметим, что т“ может определяться неодно-
значно.
14 А. А. Корбут, Ю. Ю. Финкельштейн
210 ОБ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ МЕТОДА ОТСЕЧЕНИЯ [ГЛ. 9
правило .приводит к успеху, за десятки итераций, другое
не дает решения после тысяч итераций.
Сринивасан ([122], см. выше § 2) пытался исследо-
вать это явление, используя понятия угла и расстояния
в n-мерном евклидовом пространстве. Однако, по-види-
мому, эти понятия так же плохо подходят для описания
задач ЦЛП, как и число ограничений т (см. выше).
3.4. При решении задач ЦЛП по методу отсечения
имеются как успехи, так и неудачи. Ряд примеров был
приведен в § 2.
К наиболее успешным работам следует отнести:
1) Задачи покрытия, в том числе задачи, связанные
с минимизацией булевых функций (см. Балинский [50]).
2) Применение к задачам оптимального кодирования
(Карп [102]).
3) Применение к задаче оптимального извлечения
информации из параллельных систем памяти (Дэй [69]).
Наиболее характерными задачами, для которых
имела место неудача, являются:
1) Задачи коммивояжера (Миллер, Таккер, Землин
[117]).
2) Задача теории расписаний (Джильо, Вагнер [81]).
3) Некоторые из обобщенных задач покрытия (Ба-
линский [50], Лаулер и Белл [НО]).
3.5. В настоящий момент отсутствует исчерпывающее
объяснение удач или неудач различных вычислительных
экспериментов. Все же для задачи коммивояжера и за-
дачи теории расписаний является правдоподобным сле-
дующее соображение.
Формулировка этих задач на языке ЦЛП является
«неестественной». Для задачи сравнительно небольшой
в «естественной» формулировке, в модели ЦЛП фигу-
рирует большое количество ограничений и переменных.
Возможно, что для этих задач более перспективными
являются комбинаторные методы (например, метод вет-
вей и границ для задачи коммивояжера — см. § 3 гл. 10).
Впрочем, последнее утверждение является спорным, так
как комбинаторные методы очень чувствительны к спе-
цифике задач, введению дополнительных условий и т. п.
3.6. По-видимому, успех в решении задач покрытия
связан не только с преимуществами алгоритма Мартина,
НЕКОТОРЫЕ ВЫВОДЫ
211
§ 31
но и с тем, что удалось напасть на класс задач,
практически важных и в то же время успешно решае-
мых. Было бы весьма интересно'точно охарактеризовать
класс задач покрытия, хорошо решаемых по методу от-
сечения. Это тем более интересно, что построены при-
меры обобщенных задач покрытия, для которых воз-
никают значительные вычислительные трудности.
И вообще, выделение отдельных классов эффективно
решаемых задач—важная и интересная проблема.
3.7. Подведем некоторые итоги. Метод отсечения на-
ходится в стадии развития и совершенствования. При
реализации этого метода возникают трудности, носящие,
по-видимому, не только технический, но и принципиаль-
ный характер. В настоящий момент можно говорить о
решении с помощью метода отсечения задач не более
чем среднего размера (сотни переменных и десятки огра-
ничений).
Наиболее перспективными для дальнейших исследо-
ваний по методу отсечения представляются следующие
направления:
1) Исследование строения множеств и У(^ц)
(см. Гомори [86а]).
2) Исследование свойств правильных отсечений (см.
Гомори [84], [87], Бен-Израэль и Чарнс [55], Гловер [82]).
3) Указание новых способов построения правильных
отсечений.
4) Развитие новых классов алгоритмов метода отсе-
чения (например, прямых алгоритмов, см. Юнг [128]).
5) Выделение отдельных классов эффективно решае-
мых задач.
ЧАСТЬ III
КОМБИНАТОРНЫЕ МЕТОДЫ
Эта часть посвящена второй большой группе методов дискрет-
ного программирования. Как уже указывалось выше, при класси-
фикации численных методов (гл. 1, § 4), методы этой группы ис-
ходят прежде всего из конечности числа планов задачи, используя
ее комбинаторный характер. Центральную идею комбинаторных ме-
тодов составляет замена полного перебора всех планов их частич-
ным перебором. Грубо говоря, это осуществляется путем отбрасы-
вания некоторых подмножеств вариантов, заведомо не дающих
оптимума; перебор при этом ведется лишь среди остающихся ва-
риантов, являющихся в определенном смысле «перспективными».
Можно сразу же указать некоторые особенности комбинаторных
методов, отличающие их от методов отсечения. Прежде всего, ком-
бинаторные методы в значительно меньшей степени подвержены
влиянию ошибок округления, которые играли заметную роль при
реализации некоторых вариантов методов отсечения (см. стр. 166—
167). Во многих комбинаторных методах вообще не используется
решение задачи линейного программирования, соответствующей
рассматриваемой дискретной (линейной) задаче.
Дать общую сравнительную характеристику вычислительной тру-
доемкости комбинаторных методов по сравнению с методами отсе-
чения весьма нелегко. Можно лишь отметить, что для комбинатор-
ных методов характерна более простая арифметика, но несколько
более сложная логика. Опыт их численной реализации говорит о
том, что поведение комбинаторных методов отличается, вообще го-
воря, меньшей «непредсказуемостью».
Наконец, в теоретическом плане следует отметить, что боль-
шинство комбинаторных методов не нуждается в специальном до-
казательстве своей конечности (за исключением, скажем, аддитив-
ного алгоритма Балаша, который представляет собой процесс на-
правленного перебора «с возвращениями»).
По своему характеру комбинаторные методы весьма разнород-
ны. Пожалуй, центральное место среди них занимают в настоящее
время методы, объединяемые под названием «методов ветвей и
границ». Общая идея метода ветвей и границ вместе с двумя важ-
нейшими ее реализациями излагается в гл. 10. Идейно близок к
этому подходу аддитивный алгоритм Балаша, описываемый в
гл. 11.
Естественно отнести к группе комбинаторных методов также и
различные алгоритмы, представляющие собой конкретизацию общих
идей динамического программирования применительно к некоторым
частным дискретным задачам. Некоторые такие приемы даны в
гл. 12. Гл. 13 посвящена применению разработанного в дискретном
}] ИДЕЯ МЕТОДА ВЕТВЕЙ И ГРАНИЦ 213
анализе локального подхода к некоторым задачам дискретного про-
граммирования. Наконец, в гл. 14 конспективно изложены метод
Фора и Мальгранжа, а также метод последовательных расчетов
В. П. Черенина для решения одного класса комбинаторных задач,
ГЛ АВА 10
МЕТОД ВЕТВЕЙ И ГРАНИЦ
Впервые метод ветвей и границ был предложен в
1960 г. в работе Лэнд и Дойг [109] применительно к за-
даче целочисленного линейного программирования.
Однако эта работа не оказала заметного непосредствен-
ного влияния на развитие дискретного программирова-
ния. Фактически «второе рождение» метода ветвей и
границ связано с работой Литтла, Мурти, Суини и Кэ-
рел [113], посвященной задаче коммивояжера; в этой же
работе было впервые предложено и общепринятое теперь
название метода «метод ветвей и границ». Начиная с
этого момента появляется весьма большое число работ,
посвященных методу ветвей и границ и различным его
модификациям. Столь большой успех (да еще примени-
тельно к «классически трудной» задаче о коммивояжере)
объясняется тем, что Литтл, Мурти, Суини и Кэрел пер-
выми обратили внимание на широту возможностей ме-
тода ветвей и границ, отметили важность использования
специфики задачи и сами весьма удачно этой специфи-
кой воспользовались.
В § 1 настоящей главы излагается общая идея ме-
тода ветвей и границ, в § 2 — алгоритм Лэнд и Дойг
для задачи целочисленного линейного программирова-
ния, в § 3 — метод Литтла и др. авторов для задачи
коммивояжера.
§ 1. Идея метода ветвей и границ
1.1. Рассмотрим задачу дискретного программиро-
вания в следующей общей форме.
Минимизировать
z = f(X) (1.1)
при условии
XeG. (1.2)
Здесь G— некоторое конечное множество.
214
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
1.2. В основе метода ветвей и границ лежат следую-
щие построения, позволяющие в ряде случаев суще-
ственно уменьшить объем перебора.
I. Вычисление нижней границы (оцен-
ки). Часто удается найти нижнюю границу (оценку)
б)
Рис. 10.1.1.
целевой функции / на множестве планов G (или на не-
котором его подмножестве G'), т. е. такое число
£(G) (£(G')), что для X^G имеет место
(соответственно для X е G' имеет место f(X)> £(О')).
II. Разбиение на подмножества (ветвле-
ние). Реализация метода связана с постепенным раз-
биением множества планов G на дерево подмножеств
(ветвлением). Ветвление происходит по следующей мно-
гошаговой схеме.
§ и ИДЕЯ МЕТОДА ВЕТВЕЙ И ГРАНИЦ 215
0-й шаг. Имеется множество G° = G. Некоторым
способом оно разбивается на конечное число (обычно не
пересекающихся) подмножестве!, G2, Gr,.
А-й шаг (6> 1). Имеются множестваGi, G2.......Grk,
еще не подвергавшиеся ветвлению. По некоторому пра-
вилу (указанному ниже) среди них выбирается множество
Gvtk) и разбивается на конечное число подмножеств:
Gk fyk
v(fe),l> CrV(fe),2, Uv(^s(A).
Еще не подвергавшиеся разбиению множества
G2, •••» Gv(fe)-i, Gv(w+i, .... Gr6,
Gk fyk
v (£),!, Crv(£),2, • ••, s (k)
заново обозначаются через G?+l, G*4-1, .... Gr^t.
Несколько шагов такого процесса последовательного
разбиения схематически изображены на рис. 10.1.1.
III. Пересчет оценок. Если-множество G1CG2,
то, очевидно,
min f (%)> min f (X).
X <= Gt XeG,
Поэтому, разбивая в процессе решения некоторое мно-
жество G' на подмножества Gi, G2......G's:
G'=(jGi,
г-i
всегда будем считать, что оценка (граница) для любого
подмножества G'z не меньше оценки для множества G':
g(G9>£(G'), /=1,2,...»$.
В конкретных ситуациях часто оказывается возмож-
ным добиться улучшения оценки, т. е. получить хотя бы
для некоторых I строгое неравенство
;(□;)> исэ.
216
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
IV. Вычисление планов. Для конкретных за-
дач могут быть указаны различные способы нахожде-
ния планов в последовательно разветвляемых подмно-
жествах. Любой такой способ существенно опирается
на специфику задачи.
V. Признак оптимальности. Пусть
G= (J Gi
1 = 1
и план X принадлежит некоторому подмножеству Gv.
Если при этом
f(X)=UGv)<C(Gi), 1, 2, ..., s.
то X — оптимальный план задачи (1.1) — (1.2).
Доказательство непосредственно следует из опреде-
ления оценки.
Обычно этот признак применяется на некотором эта-
пе ветвления (т. е., говоря формально, при =
S = СМ. П. II).
VI. Оценка точности приближенного ре-
шения. Пусть
$
С = U°o
1 = 1
;= min g(G/).
i=l, 2, s
Если X — некоторый план исходной задачи (т. е.
le G), то
£<minf(X)<f(X).
Доказательство и здесь сразу следует из определе-
ния оценки. _
Очевидно, что если разность Д=/(Х)— £ невелика
(т. е. не превышает_некоторого выбранного для данной
задачи числа), то X можно принять за приближенное
решение, а Д— за оценку точности приближения.
1.3. Изложим формальную схему метода ветвей и
границ.
§ ИДЕЯ МЕТОДА ВЕТВЕЙ И ГРАНИЦ 217
0-й шаг. Вычисляем оценку^ (G) =£(G°). Если при
этом удается найти такой план X, что
f(X) = UG), (1.3-0)
то X — оптимальный план.
Если оптимальный план не найден, то по некоторому
способу разбиваем множество G = G° на конечное число
подмножеств
G°=G1U G2U ... и G*. (1.4-0)
и переходим к 1-му шагу.
1-й шаг. Вычисляем оценки C(g'), <=1, 2, г,.
Если при этом удается найти такой план X, что X е G'
для некоторого г (1 < г п) и
f(X) = g(GO<C(Gj), Z=I, 2, .... rx, (1.3-1)
то X— оптимальный план.
Если же оптимальный план не найден, то выбираем
«наиболее перспективное» для дальнейшего разбиения
множество Gv (о по следующему правилу:
S(gU))= min :(G1). (1.5-1)
i~ 1,2, .... Г\
Разбиваем множество Gt о на несколько (обычно не
пересекающихся) подмножеств:
Gt <о — Gt(i),i U Gv (i),2 U ... II Gt a), ^(i).
Еще не подвергавшиеся разбиению множества
G1 /-»1 />! ✓*> 1 /> 1
1, СГ2, ..., Uv(D-b C/v(l)+l, ...» Огр
Gv(l).l, Gv(1),2, ...» Gv(l),s(l)
заново обозначим через
G2 /п2 х-»2
1, С/2, . . ., (jr2
и переходим ко 2-му шагу.
(1.4-1)
(1.6-1)
(1.7-1)
218
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
k-fi шаг (k^2). Вычисляем оценки g(G/), г=_1_,
2, ..^ rk. Если при этом удается найти такой план X,
что X е Gr для некоторого г (1 и
f(X) = £(G?)<dG/). i=1.2...........rk, (1.3-6)
то X — оптимальный план.
Если же оптимальный план не найден, то снова
выбираем наиболее перспективное множество Gv<fe> по
правилу
C(Gv(fe))= min g(G*). (1.5-Л)
2...'ь
Разбиваем Gvu> на несколько непересекающихся под-
множеств:
Gv№)= Gv(fe),l U Gv(*),2l) ... UGv(fc).s№)- (1.4-fe)
Еще не подвергавшиеся разбиению множества
Gk flk flk /~yk
1, Cr2, ...» Uv(feH» Crv(fe)+I, ...» (JrJ „ ..
k k „ (1-6-6)
v(l), 1» Crv(l),2, ...» Crv(£),s(fc)
заново обозначаем через
G?+1, g£+1, .... G**, (1.7-6)
и переходим к (6+1)-му шагу.
1.4. Для реализации описанной выше схемы метода
ветвей и границ применительно к отдельным задачам
дискретного программирования необходимо лишь, исходя
из особенностей этих задач, конкретизировать правила
ветвления, вычисления оценок (границ) и нахождения
планов. В следующих двух параграфах это будет про-
делано для частично целочисленной задачи линейного
программирования (метод Лэнд и Дойг) и для задачи
о коммивояжере (метод Литтла и др.). Общая же схема
метода ветвей и границ при этом воспроизводиться не
будет.
§ 2]
МЕТОД ЛЭНД И ДОЙГ
219
§ 2. Метод Лэнд и Дойг
2.1. Рассмотрим частично целочисленную задачу ли-
нейного программирования.
Минимизировать
п
z=‘l(X)=^lCjXj (2.1)
/-1
при условиях
S a..XjRibi, i=\, 2, .... т, (2.2)
/=1 °
Q^Xj^-dj, /=1, 2, .... п, (2.3)
Xj — целые, /=1, 2.....пх. (2.4)
Здесь Ri, i=l, 2, .... т — любые из отношений >, =.
Некоторые из чисел d, в (2.3) могут равняться +оо.
В (2.4), как всегда, ni^n; при этом, разумеется, не
исключен и случай полностью целочисленной задачи
(П1 = П).
Многогранное множество, определяемое условиями
(2.2) —(2.3), предполагается ограниченным.
2.2. Приведем описание идеи метода Лэнд и Дойг.
Рассматривается целочисленная (частично целочислен-
ная) задача линейного программирования (2.1) — (2.4).
Как и в методах отсечения, процесс начинается с реше-
ния соответствующей ей задачи линейного программи-
рования (2.1) — (2.3). Если полученный при этом опти-
мальный план Х° = (ху, х2, .... х°) не удовлетворяет
условиям целочисленности (2.4), то значение целевой
функции Zo=^° на этом плане дает нижнюю границу
для искомого оптимума, т. е. minz> £°. Пусть некоторая
переменная xi„, где 1-<1о-<П1, не получила в плане Х°
целочисленного значения. В оптимальном целочислен-,
ном плане значение х/„ должно быть либо уменьшено,
по крайней мере до *) [xj, либо увеличено по крайней
мере до [XjJ+1. Если границы изменения х/„ заранее
не заданы, то их можно вычислить, решив для этого две
стр что чеРез И обозначается целая часть х (см.
220
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
вспомогательные задачи линейного программирования,
заключающиеся в максимизации и минимизации XiQ
при условиях (2.2) — (2.3). Теперь для каждого фикси-
рованного целочисленного значения xi0 в найденном от-
резке можно искать minz путем решения задачи линей-
ного программирования с ограничениями (2.2) и допол-
нительным ограничением xiQ = ktQ.
Все указанные возможности можно представить в
виде некоторого дерева задач, в котором вершина 0 от-
вечает исходному плану Х°, а каждая из соединенных
с ней ветвью вершин отвечает оптимальному плану за-
дачи вида: минимизировать z при условиях (2.2) — (2.3)
и дополнительном условии, что переменной х/0 придано
конкретное значение xZo=fct-o. Каждой из вершин при-
писывается граница £ft = C(io, &), равная минимальному
значению z для соответствующей задачи. Ясно, что
£° <£(/о, &) для всех k.
Если оптимальные планы указанных задач удовлет-
воряют условию целочисленности, то план с минималь-
ной границей и будет оптимальным планом исходной
задачи. В противном случае возникает необходимость
в дальнейшем разветвлении дерева из некоторых вер-
шин, не удовлетворяющих условиям целочисленности;
это осуществляется аналогичным образом. Разумеется,
для разветвления следует каждый раз выбирать вер-
шину с наименьшей границей. Любой путь в дереве от
вершины 0 до некоторой вершины определяет допусти-
мую последовательность выбора целочисленных значе-
ний для переменных. Процесс продолжается до тех пор,
пока дальнейшее ветвление становится невозможным.
В ходе ветвления каждой вершине г с минимальным z,
еще не получившей границы, приписывается граница
gft+l = zr. Каждая конечная вершина отвечает некоторому
допустимому целочисленному плану; оптимальный план
дает вершина с минимальным z.
2.3. Перейдем теперь к формальному описанию ме-
тода Лэнд и Дойг, останавливаясь на тех моментах об-
щей схемы метода ветвей и границ, которые здесь тре-
буют конкретизации.
1°. Задание множества G0. Множество Gq=G
задается условиями (2.2)—(2.4).
§ 2]
МЕТОД ЛЭНД И ДОЙГ
221
2°. Задание множеств Gy. Множество Gy
(v=l, 2, rk\ й=1, 2, ...) определяется условиями
(2.2), (2.4) и дополнительным условием
j=l, 2.....п. (2.35)
3°. Вычисление границ (оценок). Для мно-
жества G0 оценка g(G°) где Х° — оптимальный
план задачи линейного программирования (2.1) — (2.3).
Для множества Gv оценка g(Gv) = f (-^(*))» где
X j — оптимальный план задачи линейного програм-
мирования (2.1), (2.2), (2.3v).
Если множество Gv оказывается пустым (т. е. соот-
ветствующая задача неразрешима), то ему приписы-
вается оценка g(Gv) = + оо.
4°. Вычисление планов. Если Х° удовлетво-
ряет условию целочисленности (2.4), то Х° — оптималь-
ный план задачи (2.1) — (2.4).
Если X удовлетворяет условию целочисленности
(2.4), то X является оптимальным планом задачи (2.1),
(2.2), (2.3*), (2.4) и планом исходной задачи (2.1) —(2.4).
5°. Ветвление. Необходимость ветвления возни-
кает в том случае, когда план X не удовлетворяет
условию целочисленности (2.4). Пусть — одна
из нецелочисленных компонент этого плана (где
l-Cr^ni). Тогда множество Gv(k) разбивается на два
множества:
Gv да = Gv (ft), i U G* да 2, (2.5)
где
Gv,*).i = {x|Xe Gv<ft), xr<[xr(v^)]}, (2-6)
Gv(ft),2 = {x|XeG$№), (*))]+1}, (2-7)
Замечание. Если все коэффициенты с, в (2.1)
целые при j^-n} и равны нулю при />«1, то оценку
222
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
g(Gv) можно заменить на более сильную оценку
№$)=]/«))[.
Здесь символом] а [обозначено наименьшее целое число,
не меньшее чем а.
Таким образом, в чисто вычислительном отношении
этот алгоритм сводится к решению серии задач линей-
ного программирования. Конечность алгоритма Лэнд и
Дойг непосредственно следует из предположенной выше
ограниченности множества (2.2) — (2.3).
2.4. Приведем небольшой численный пример, решен-
ный в п. 2.6 гл. 5 с помощью 1-го алгоритма Гомори.
Минимизировать
-xt-x2 (2.8)
при условиях
2х1 + 11х2^38,
х( + х2 < 7, (2.9)
4xt — 5х2 5,
Xi, х2^0, (2.10)
X], х2 —целые. (2.11)
0-й шаг. Оптимальный план задачи линейного про-
граммирования (2.8) — (2.10)
*°=(47’ 2-|).
Имеем £'(G°) =]f (Х°)[=]—7[=—7. План Х° не удовле-
творяет условию целочисленности (2.11). Возьмем его
нецелочисленную компоненту х® и разобьем множество
Go на два множества:
Go=G!UG2,
где
G’ = {X|XeG°, Х!<4},
G2 = {X|XeG°, х,>5}.
1-й шаг. Решим две задачи линейного программи-
рования, заключающиеся р минимизации (2.8) по мно-
жествам Gi ц G|.
МЕТОД ЛЭНД И ДОЙГ
223
§ 2)
В первом случае минимум достигается при Xi=4,
= 2 -j- и £' (0*)=] — 6 = —6. Множество же G2 ока-
зывается пустым, так что для него имеем £(0г)= +<».
Производим разветвление из б}:
G} = G1.i U 0*1.2,
где
О*. 1 = к|А-е0ь х2<2),
б|.2= {№0}, Х2>3}.
Переобозначения: CijsCi, Gi,2=G2, Ог=Оз.
2-й шаг. Решаем две задачи линейного програм-
мирования, заключающиеся в минимизации (2.8) по
множествам Gi и Gi Получаем
1)х(?) = (з|, 2) и £'(G?) = ]-54[=-5,
2) Х(з) = (2|, 3) и ^(G2) = ]-54[=-5,
3) G^Gi=0, №D=oo.
Производим разветвление из множества G?:
Gi = Gi, iUGi, 2,
где
Gi, i = {X|XeGi, х, <3},
Gl2=(X\Xe=Gl Х1>4}.
Переобозначения: Gi, i = Gi, G%,2=G2, G2—G^, Gs^Gj.
3-й шаг. Решаем две задачи линейного програм-
мирования, заключающиеся в минимизации (2.8) по
множествам Gi и G2. Получаем
1) Х(?) = (3, 2) и f(G?) = ]-5[=-5,
2) G1=0 и £'(G2)==oo,
224
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
3’ Х(зН(1Н24’ 3) » S'(C.)-]-5^[--5,
4) G1 = G32=0 и t(Gi) = оо.
Получен целочисленный план X = X ( j j = (3, 2), причем
g' = minU'(G?), £'(g!), £'(Gi), №!)} =
= min{—5, oo, —5, oo}= - 5<f(X)= - 5.
Поэтому план X = (3, 2)— оптимальный.
2.5. Прослеживая за выполненными в ходе вычисле-
ний операциями, нетрудно уяснить себе геометрическую
интерпретацию метода Лэнд и Дойг. Грубо говоря
(здесь удобнее говорить о задаче максимизации), она
заключается во вдавливании гиперплоскости, опреде-
ляемой поверхностью уровня целевой функции f(X) =
= const, в многогранник планов соответствующей за-
дачи линейного программирования до встречи с ближай-
шей точкой этого многогранника, удовлетворяющей усло-
виям целочисленности.
Из описания метода Лэнд и Дойг ясно, что в его осу-
ществлении для полностью целочисленных и частично
целочисленных задач никакой разницы нет. Сведения о
машинной реализации этого метода пока не публикова-
лись; известно лишь, что в 1965 г. он был запрограмми-
рован. Из самых общих соображений ясно, что этот ме-
тод должен быть довольно эффективным для частично
целочисленных задач со сравнительно небольшим коли-
чеством целочисленных переменных, а также для задач
специальной структуры. Последнее соображение убеди-
тельно подтверждается успешностью применения общей
идеи ветвей и границ к задаче коммивояжера (метод
Литтла, Мурти, Суини и Кэрел); этот метод будет опи-
сан в следующем параграфе.
§ 3. Алгоритм Литтла, Мурти, Суини и Кэрел
для задачи коммивояжера
3.1 . Как и при изложении метода Лэнд и Дойг, не
будем воспроизводить общей схемы метода ветвей и
границ, а изложим лишь особенности данного алго-
ритма.
3] АЛГОРИТМ ЛИТТЛА 225
Задача коммивояжера была описана выше (§ 3
гл. 2). Напомним ее первоначальную постановку.
Имеется п городов i=l, 2, ..., п. Задана матрица llcijll,
ц /=1, 2, .... п расстояний между ними (считаем, что
все с«=4-оо); разумеется, Матрица расстояний
не предполагается симметричной; иначе говоря, возмо-
жен случай сц^сц.
Ищется кратчайший замкнутый маршрут^, i2, •. • > in)
(цикл), проходящий через каждый город ровно по од-
ному разу и минимизирующий суммарное пройденное
расстояние
с*Л + сМз+ •••
Идея метода ветвей и границ применительно к за-
даче о коммивояжере довольно прозрачна. Ветвление
основано на следующем элементарном соображении;
переезд из любого данного города i в любой другой го-
род / может либо принадлежать оптимальному циклу
коммивояжера, либо не принадлежать ему. При вы-
числении же границ используется тот факт, что измене-
ние длин всех путей, приводящих в данный город, или
всех путей, выводящих из данного города, на одну и
ту же величину приводит к новой задаче, оптимальные
планы которой совпадают с оптимальными планами ис-
ходной задачи.
3.2 ^ Конкретизируем теперь отдельные этапы общей
схемы метода ветвей и границ.
1°. Задание множества G0. Множество G°=G
состоит из всех циклов.
2°. Задание множествGv. Каждое из множеств
Gv, v= 1, 2, ..., rk, k= 1, 2, ... состоит из всех цик-
лов, подчиненных дополнительным условиям следую-
щих двух типов:
1) из i следует идти непосредственно в / — для всех
упорядоченных пар (i, /), входящих в некоторое мно-
жество Ру‘,
2) из г запрещается идти непосредственно в / — для
всех упорядоченных пар (i, /), входящих в некоторое
множество Р*.
15 А. А. Корбут, Ю. Ю, Финкельштейн
226
МЕТОД ВЕТВЕЙ И ГРАНИЦ
I ГЛ. 10
3°. В ы ч и с л е н и е оценки для G°. Приведе-
ние. Рассмотрим некоторый цикл (ц, t2, ..., in)- Прой-
денное по нему расстояние равно
l(ii, i2, .... in) = ci i + Ci i + ... + ci i + ci i.
1 4 AO /7 1 П П 1
Пусть
min си = cij a).
1 ’ •
Тогда
СЧ ~ cil ~ сч (0 0 $.2). (
и |
n j
/(ip I2« • • 2 ctj (/) + (c'^ + с'^ + ... +c'in_ii+c,iniy i
Далее, пусть
т/ПСО = С/'(/)Г
Тогда
си = са ~ @3)
V
I Ср х2....Q “ 2 с {/ (/) + 3 c't (/) у +
+ (CV. + CV.+ -+CU + CW- (3'4>
Из (3.2), (3.3) и (3.4) получаем
/ (ip i2, .... zn) >2 с(1 {{) + 2 c't (/) у
и полагаем
п п
$ (G0) = 2 с{/ (г) + 2 ct (/) у. (3.5)
Заметим, что g(G°)^O.
Описанное выше преобразование, позволяющее по-
лучить из исходной неотрицательной матрицы С =||с//|1
,, АЛГОРИТМ ЛИТТЛА 227
§ 3J
новую неотрицательную матрицу С" = ||с"||, называется
приведением, а сумма
п п
ь = 2 сц (о + S c'i у» /
— суммой приводящих констант.
Отметим, что матрица С" и оценка £(G°) однозначно
соответствуют матрице С. При этом имеет место сле-
дующая простая теорема.
Теорема 1.1. Оптимальный план задачи комми-
вояжера с матрицей С" является также оптимальным
планом и для задачи коммивояжера с матрицей С.
Длина пути Z(ii, z'a, ..., in), соответствующего матрице
С, и длина пути I" (ii, 1'2, ..., i„), соответствующего ма-
трице С", связаны соотношением
I (i,, i2, . • •, in) = С (G°) +1" (h, i2.in). (3.6)
Доказательство непосредственно следует из
(3.4) и (3.5). Отметим, что в каждой строке и в каж-
дом столбце матрицы С" содержится по крайней мере
по одному нулю. Любую неотрицательную квадратную
матрицу, обладающую указанным свойством, будем на-
зывать приведенной. Легко видеть, что процесс приве-
дения, примененный к приведенной матрице, даст ту
же самую матрицу; сумма приводящих констант при
этом будет равна нулю.
Каждой вершине G* дерева, которое строится в про-
цессе решения, будет соответствовать своя оценка g(Gv)
и своя приведенная матрица С*.
4°. Разбиение на подмножества (ветвле-
ние). Множество Gv(fe) при ветвлении разбивается ров-
но на два подмножества. По некоторому способу (ука-
занному ниже) выбирается пара городов (г, /), не вхо-
дящая в множества Pvtk) и Pvt®, после чего произво-
дится ветвление:
GAJ I I
V (k) — Cj V (k), 1 U и V (fe), 2«
Здесь Gv(y, 1 получается из Gv(« добавлением условия:
«из г обязательно идти непосредственно в I», a Gv(*>,2
15*
228
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
получается из Gv(« добавлением условия: «из г запре-
щается идти непосредственно в /». Более формально,
Pv (k), 1 = Pv (k) U {(/> I)}, Pv(.k),l = Pv(k),
Pv(k),2= PvWh Pv(k),2 = Pv (fe)U{(r, /)}.
Выбор пары (r, l) при ветвлении основан на следую-
щих соображениях. Постараемся действовать таким об-
разом, чтобы Gv(fe),i «с наибольшей вероятностью» со-
держало оптимальный цикл, а С^да.г его не содержало.
Естественно для этого выбирать (г, I) так, чтобы.
Cv (k) (г, I) = 0. Здесь через Cv да (г, I) обозначен эле-
мент приведенной матрицы (отвечающей множеству
Суда), стоящий в строке г и столбце I. Тогда есть осно-
вание ожидать, что входящим в О*да,1 циклам будет
соответствовать малая длина пути.
Теперь будем пытаться выбрать (г, I) (при соблю-
дении прежнего условия С* да (г, I) = 0) таким образом,
чтобы циклам, входящим в О^да.г, соответствовали по
возможности более длинные пути. Рассмотрим некото-
рый цикл из Gv<«,2. По определению множества С*да,2
путь по этому циклу переходит из города г непосред-
ственно в некоторый город а в город I он попадает
непосредственно из некоторого города i¥=r. Ясно, что
длина этого цикла будет не меньше чем
6(г, /) = тшС*да(г, /) + тшС*да(г, /).
/I 1Фг
Остается выбрать (г, /) так, чтобы 0(г, /) было наи-
большим, т. е.
0 (г, /) = max 0 (р, q) =
= maxJminCv«)(p, /) + min С* да (Z, q)\,
U&q J’
где максимум берется по всем парам р, q, для которых
Cv ik) (р> q)и 0.
5°. Вычисление планов (циклов). Если мно-
жество Pv состоит ровно из п — 1 элементов, то тем
самым уже задан цикл, n-й элемент которого определен
Gv(S)(i, /), (Z, j) =#= (г, Z),
s 3J АЛГОРИТМ ЛИТТЛА 229
однозначно. В этом случае оценка ?(Gv) совпадает с
длиной единственного цикла, входящего в Gv.
6°. Преобразование матрицы расстоя-
ний при ветвлении. Пересчет оценок. Рас-
смотрим разветвление
I I
v (k) = о V (A!), I U Uv(ft),2,
описанное в п. 4°.
а) Рассмотрим сначала множество Gv«),2 и укажем
правило перехода от матрицы к матрице С* да,2-
Матрица Cv(t),2 содержит те же строки и столбцы, что
И Cv№). Положим
Cv№), 2 (i,
* _ 00, (G j) = С, I).
Применяя к матрице Ос*(*),г(г, /)11 описанную выше
процедуру приведения, получаем матрицу С*(«,2.
При этом сумма приводящих констант равна 0(г, /),
так что оценкой для Gv«),2 будет
£ (G* да, 2) = £ (Gv да) + 0 (г, I).
б) Обратимся теперь к множеству Gv (*>, 1 и выяс-
ним правило перехода от матрицы С* к матрице
Gv«), 1. По определению, Cvда, 1 заведомо содержит не-
посредственный переход из г в. I (говоря более фор-
мально, (г, Z) е Pv да). Поэтому при переходе от матри-
цы С* да к матрице Cv(k), 1 можно, не внося никаких
поправок в оценку, вычеркнуть_строку г и столбец I.
В результате получим матрицу Cvw.i-
Далее следует проверить, не состоит ли Gv(*),i ровно
из одного цикла. Если это так, то следует применить к
матрице процесс приведения и, получив сумму приво-
дящих констант h, пересчитать оценку
С (Gv (6), 1) = £ (G v да) + h.
При этом окажется, что 1) в точности равно дли-
не этого единственного цикла. Если же Gv(«, 1 не со-
стоит в точности из одного цикла, то следует запретить
230
МЕТОД ВЕТВЕЙ И ГРАНИЦ
[ГЛ. 10
возможность возникновения подциклов (т. е. замкнутых
маршрутов, содержащих меньше чем п городов); эта
возможность теперь появляется из-за добавления непо-
средственного перехода (г, I). Для этого следует найти
все такие маршруты, включающие в себя звено (г, /),
и, возможно, другие элементы множества Pv(fc),ь Обо-
значим множество таких маршрутов через Svtk), ь
Процесс запрещения упомянутых маршрутов (под-
циклов) связан с переходом от матрицы Cv(fe), i к ма-
трице Cv(k), 1 (включающей те же строки и столбцы).
Прежде всего, в Sv(k)ti входит маршрут (г, /, г). Запре-
щаем его, полагая Cvm, i(Z, г)==оо. Далее, если из эле-
ментов Pv(k) можно составить маршрут (Zb i2i..., ip, г), то
в $v(k), 1 входят маршруты вида (iqiiq+1, ip, г, I. iq),
Запрещаем все эти маршруты, полагая
Cv(k), i(Z, ^) = °°, ?=1» 2, р. Если из элементов
Pv(k) можно составить маршрут (Z, t2> ip), то в
Sv(fc),i входят маршруты вида (г, /, Л, /2, ...» iq, г),
1 q р. Запрещаем все эти маршруты, полагая
Cv(fe),г) = оо, ?=1, p. Для всех остальных
элементов (Z,/) матрицы С*(&),! полагаем
С v(k), 1 (Л /) = Cv(fe), 1 (i, j)-
Теперь следует применить к матрице Cv(k), i процесс
приведения и, найдя сумму приводящих констант Л, пе-
ресчитать оценку по прежнему правилу:
?(Gv(fe)j) = ?(Gv(fe))+ h.
3.3. Конечность алгоритма Литтла, .Мурти, Суини и
Кэрел непосредственно следует из конечности числа
всех циклов в рассматриваемой задаче.
3.4. Описанный алгоритм можно модифицировать
также и для нахождения приближенного решения.
Оценка точности приближения при этом может быть
получена общим приемом, характерным для метода вет-
вей и границ (см. § 1). В качестве приближенного ре-
шения можно взять цикл из любого множества Gv, со-
стоящего ровно из одного цикла.
ПОСТАНОВКА ЗАДАЧИ И ИДЕЯ МЕТОДА
231
§ U
3.5. Авторы алгоритма в статье [113] освещают так-
же и накопленный ими вычислительный опыт. Экспери-
ментирование велось на машине IBM-7090. При этом
задачи с несимметричными матрицами с числом горо-
дов до 20 решались за несколько секунд; при увеличе-
нии числа городов время счета возрастало весьма
быстро (грубо говоря, добавление 10 городов увеличи-
вало время примерно в 10 раз). Среднее (по 100 ре-
шенным задачам) время счета для несимметричной за-
дачи с 30 городами составляло около 1 мин.
Задачи с симметричными матрица-ми обычно счита-
лись-заметно дольше по сравнению с несимметричными
задачами тех же размеров. Например, решение задачи
с 25 городами потребовало 4,7 мин. машинного времени.
ГЛАВА 11
АДДИТИВНЫЙ АЛГОРИТМ
В этой главе будет описан разработанный Э. Бала-
шем «аддитивный алгоритм» для решения задач цело-
численного линейного программирования с булевыми
переменными. Изложение в основном следует статье
Балаша [47].
§ 1. Постановка задачи и идея метода
1.1. Рассмотрим целочисленную задачу линейного
программирования.
Максимизировать (минимизировать)
4- С2^2 4” ... 4* cntn (1-1)
при условиях
«11/] + Я12/2 4- ... 4- aintnRibi,
#21^1 "Ь #22^2 4“ ... 4" (1.2)
+ Пр2^2 + ... + apntnRpbpi
[ о.
1 /=1, 2, .... п. (1.3)
Здесь R{, z= 1, 2....р — любые из отношений =.
232
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. 11
Путем элементарных преобразований задачу вида
(1.1) — (1.3) можно свести к задаче минимизации целе-
вой функции вида (1.1), но уже с неотрицатель-
ными коэффициентами с3- при условиях, имеющих
форму неравенств со знаком Эти преобразования
очевидны:
1) каждое равенство в (1.2) заменить двумя проти-
воположными неравенствами;
2) каждое неравенство со знаком умножить на
—1;
3) положить в случае задачи максимизации
t> ДЛЯ С/5 SO,
*> = { J J . \ —tj ДЛЯ CjZ >о, (t4a)
а в случае задачи минимизации
1 tj для
Xj~ ( 1 — tj для
Cj~^ О,
Cj < 0.
(1.46)
Пусть число строк в преобразованной таким образом
матрице (1.2) равно т; за правыми частями преобразо-
ванных ограничений (1.2) сохраним для простоты ста-
рое обозначение bt (здесь уже i=l, 2, .... т). Обозна-
чим также {1, 2, ..., /п}=А1, {1, 2, .... n} — N.
Таким образом, задача (1.1) — (1.3) может быть за-
писана в следующем виде.
Минимизировать
CiXt + c2x2+ ... +спхп (1.5)
при условиях
atixl + al2x2+ ... +alnxn^bt, i^M. (1.6)
( 0.
ху = | j /s.V, (1.7)
где cj 0, / s N.
Вводя обычным образом m-мерный вектор свобод-
ных переменных У, можно переписать задачу (1.5) —
[(1.7) в следующей канонической матричной форме.
Минимизировать
z = CX
(1.8)
ПОСТАНОВКА ЗАДАЧИ И ИДЕЯ МЕТОДА
233
§ П
при условиях AX+Y = Bt (1.9)
( 0.
= | j (1.Ю)
У>0. (1.11)
Задача (1.8) — (1.11) будет в дальнейшем имено-
ваться задачей <^°. Пробным планом задачи <^° будет
называться любой (га + я?)-мерный вектор U=(X, У),
удовлетворяющий (1.9) и (1.10). Пробный план назы-
вается планом, если он удовлетворяет (1.11); план на-
зывается оптимальным, если он удовлетворяет (1.8)
(т. е. минимизирует г).
J-й столбец матрицы ограничений А в (1.9) будет
далее обозначаться через Ар
1.2. Дадим неформальное описание идеи аддитив-
ного алгоритма. Ясно, что сформулированная выше за-
дача имеет 2" пробных планов. Основная черта адди-
тивного алгоритма, как и любого другого метода ча-
стичного перебора, состоит в получении оптимального
плана (или в выяснении отсутствия планов) путем рас-
смотрения лишь некоторого подмножества всех 2” проб-
ных планов. Это осуществляется в рамках уже извест-
ной читателю общей схемы ветвления.
Введем некоторые понятия. Частичным q-планом на-
зовем набор, состоящий из q фиксированных допусти-
мых значений переменных (0 или 1). Под дополнением
частичного «/-плана будем понимать набор допусти-
мых*) значений для остальных п — q переменных. Если
окажется, что некоторый конкретный частичный «/-план
не имеет дополнения или не удастся найти дополнение,
приводящее к меньшему значению целевой функции z,
то из рассмотрения можно исключить 2п-ч допустимых
планов, продолжив поиск оптимального среди остальных.
Грубо говоря, аддитивный алгоритм состоит в по-
строении последовательности частичных планов и в ис-
ключении некоторых подмножеств их дополнений.
*) Иначе говоря, вектор, составленный из частичного «/-плана и
его дополнения, должен быть планом исходной задачи.
234
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. П
Такое исключение проводится в тех случаях, когда дан-
ное подмножество не имеет ни одного дополнения либо
когда любое из этих дополнений дает значение z не луч-
шее, чем ранее достигнутое.
Естественно ввести понятие зондирования данного
частичного (/-плана. Зондирование состоит: а) в нахож-
дении наилучшего дополнения, дающего меньшее зна-
чение z, чем достигнутое ранее, либо б) в выяснении
того, что таких дополнений не существует. В силу не-
отрицательности всех коэффициентов целевой функции
наилучшим дополнением частичного (/-плана было бы то,
в котором все остальные п — q переменных положены
равными нулю*). Если в результате зондирования най-
дено наилучшее дополнение (реализуется случай а), то
другие дополнения данного частичного (/-плана рассма-
тривать не нужно. Если же дополнений не существует
и реализуется случай б), то по определенным правилам
совершается переход к новому частичному (q +1)-плану.
Такой переход естественно назвать расширением частич-
ного (/-плана.
Все частичные планы подвергаются либо зондирова-
нию, либо расширению. С вычислительной точки зрения
следует пытаться проводить зондирование при наимень-
шем возможном расширении. Действительно, если зон-
дирование произойдет уже при (/ = 0, то все 2П’°=2^
планов окажутся неявным образом просмотренными.
§ 2. Общая схема метода
2.1. Опишем прежде всего процесс формирования
плана. Будем исходить из задачи определяемой
условиями (1.8) — (1.Н). Рассмотрим некоторое подмно-
жество Js множества индексов N и обозначим через
задачу, определяемую условиями (1.8), (1.9), (1.11) и
jetf, (1.10')
ху=1, /е/5. (1.10"-s)
Будем считать, что значению $ = 0 отвечает пустое мно-
*) При условии, что набор из п — q нулей вообще является до
полнением.
ОБЩАЯ СХЕМА МЕТОДА
235
$ 2]
жество (Js = 0). Таким образом, <^° представляет со-
бой обычную задачу линейного программирования
(1.8), (1.9), (1.Ю'), (1.Н).
Рассмотрим эту задачу Очевидно, что вектор
до— (Х°, У0) = (0, В) является псевдопланом задачи
(в силу неотрицательности всех с,). Соответствую-
щий ему базис описывается единичной матрицей 1т. Вы-
берем некоторое t, для которого у°{ < 0 и по определен-
ным правилам найдем такой столбец А/,, что <0;
этим столбцом следовало бы заменить в базисе i-й еди-
ничный вектор Но вместо этого к задаче доба-
вляется ограничение х/, = 1 в несколько видоизмененной
форме - X/, + ym+i = — 1, где ym+i — искусственная пере-
менная. Тем самым совершен переход к задаче <^°1, опре-
деляемой условиями (1.8), (1.9), (1.10'), (1.11) и допол-
нительным ограничением
хЛ = 1. (1.10"-1)
Ясно, что набор х3 = 0 (/sV), = biy i<=M, ym+t ——l
образует псевдоплан задачи (дг-|-1)-й единичный
вектор em+i в базисе lm+i расширенной задачи отвечает
переменной ym+i- Вместо ет+1 в базис вводятся А/,, так
что X/, принимает значение 1. Переменная ym+i, обра-
щающаяся при этом в нуль, не играет уже никакой роли
и поэтому в дальнейшей записи может быть опущена.
Благодаря простоте дополнительного ограничения,
шаг симплекс-метода здесь сводится к выполнению
алгебраического сложения*) векторов: В — А/, (на-
правляющий элемент равен —1). Поэтому пробный
план U1— (X1, У1) задачи ёУ31 можно записать в виде
1, / = /1,
Х'~\0, /e7V\{M,
У\ = ь1~а1п, i&M.
Если вектор U1 содержит отрицательные компонен-
ты, то в соответствии с упомянутым выше правилом на-
ходится другой вектор А/, и к добавляется новое
*) Этим и объясняется название алгоритма — на каждой его
терации выполняются лишь действия сложения и вычитания.
236
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. 11
ограничение х/2=1. Это дает задачу <^>2, определяемую
условиями (1.8), (1.9), (1.10'), (1.11) и условием
хл=1, Х/2=1. (1.10"-2)
Как и выше, вводя искусственную переменную ут+2 и
сразу исключая ее из рассмотрения, приходим к проб-
ному плану С/2=(Х2, Y2) задачи^2:
, И. / = /1. /2»
' Io, j2},
y2i = у\ - aih, i e M.
Повторяем это до получения неотрицательного век-
тора If.
2.2. Очевидно, что неотрицательный вектор Us =
= (XS, У5) является оптимальным планом задачи
Разумеется, он не обязан быть оптимальным планом за-
дачи 3?, хотя всегда будет планом этой задачи.
Пусть значение целевой функции на плане Vs есть
После получения неотрицательного вектора If, со-
гласно определенным правилам («правила возврата»),
берется некоторый план Up, р <s, и процесс повто-
ряется, начиная с Up, но с измененными правилами вы-
бора столбцов. Этот процесс продолжается до получе-
ния другого плана if, для которого z4<zs (либо до тех
пор, пока мы убедимся в отсутствии подобных пла-
нов t/).
Получаемая таким образом последовательность пла-
нов Uk, k=l, 2, ..., сходится за конечное число шагов к
оптимальному плану задачи (1.8—1.11).
§ 3. Описание алгоритма
3.1. Введем некоторые определения и обозначения.
Рассмотрим задачу ЗР. Напомним данное выше опреде-
ление множества Js:
4={/1/еАГ; х;=1}. (3.1)
ОПИСАНИЕ АЛГОРИТМА
237
§ 31
Отметим, что поскольку каждое ограничение (1.9)
содержит в точности одну переменную уг, план Us=
— (Xs, Ys) полностью определяется множеством Js. В са-
мом деле, если
, f Ь /еЛ,
yS — <
xi I о, /<=п/я
(3.2)
то
ysi “ bt ~ j 2 atb
(3.3)
Считая, что /»={/ь hi М, мы будем иногда обозна-
чать план US = (X.S, Ys} через U (jx, j2, .... /г).
Соответствующее значение целевой функции г бу-
дем обозначать через zs. Таким образом, zs = CX,s или
г5= 2 С]. (3.4)
Набор значений, принятых целевой функцией на
планах (напоминаем, что для них [/>0) вплоть до
итерации s, обозначим через Z3:
Zs = {zp\Up>0, p^s}. (3.5)
Если множество Z3 не пусто, то наименьшее содержа-
щееся в нем значение назовем рекордом*} для Us; если
Z3 пусто, то в качестве рекорда берется +оо. Таким об-
разом, рекорд определяется как
оо, Zs = 0,
min zp, Zs 0..
гр s 2S
(3.6)
При переходе к итерации s-f-1 вектор Aj, подлежа-
щий «введению в базис», будет выбираться из некото-
рого множества N3, которое называется множеством
улучшающих векторов для плана Vs. Точное определе-
ние Nt будет дано ниже.
Введем множества
(3.7)
*) Термин принадлежит И. В. Романовскому.
238
АДДИТИВНЫЙ АЛГОРИТМ
(ГЛ. И
Определим теперь величины vsjf которые будут слу-
жить критерием выбора «вводимого» столбца. Поло-
жим для плана us
В ходе алгоритма значения отвечающие опреде-
ленному плану Uk, будут последовательно вычерки-
ваться. Обозначим через С% множество тех /,
для которых vkr отвечающие плану Uk, вычеркнуты до
получения плана Vs. Множество С* считается пустым.
Далее определим множество
Cs = (jC£, (3.9)
р
где объединение берется по всем р, для которых IpcJs.
Таким образом, Cs есть множество всех тех /, для кото-
рых о)’, отвечающие любому из планов Up, для кото-
рых p<s и /рс:/8, были вычеркнуты до получения
плана Us.
Определим для плана Vs множество таких feN\Cs,
что при переходе от /, к Js+t=Js\J{j} получающееся зна-
чение целевой функции будет не меньше рекорда для Us:
N\CS, c, + z,>f). (3.10)
Определим теперь множество Es таких j^N\(Cs [) D,),
что при переходе от к — U {/) ни одно отрица-
тельное yj не увеличится:
Es = {/1 j е N \ (Cs U Ds); yst < 0 влечет ai;> 0}. (3.11)
Теперь можно определить множество улучшающих век-
торов А} для пробного плана IIs:
NS = N\(CS{JDSUES). (3.12)
Ясно, что для плана If будет Nt—0,
ОПИСАНИЕ АЛГОРИТМА
239
§ 3)
Рассмотрим два плана I/* и Us (fe<s). Определим
аналогичное (3.10) множество тех j^-Nk\ Cl, что при
переходе от Js к /s+i = /ftU{/} значение целевой функции
2s+i будет не меньше рекорда для Us:
Dsk = {/1/ GNk \ Csk, ct + zk>£s). (3.13)
Наконец, положим
M = ^\(ClU£>0; (3.14)
будем называть его множеством улучшающих векторов
для плана Uk, остающимся после итерации s.
Роль определенных сейчас множеств (3.12) и (3.14)
в алгоритме весьма велика. Для любого плана Us кан-
дидатами для введения в базис являются лишь столбцы
Aj с номерами из Если Nst = 0, то это говорит об
отсутствии планов U1, для которых ЦаЦ и zt<t^. В этом
случае процедура возобновляется с некоторого более
раннего плана U* (способ его нахождения будет указан
далее), для которого рассматриваются лишь улучшаю-
щие векторы с номерами из Nk-
3.2. Перейдем к пошаговому описанию одной итера-
ции аддитивного алгоритма. Как уже упоминалось, в
качестве начального плана берется вектор U°, для ко-
торого
Х° = 0, У° = В; zo = O.
Пусть после s итераций получен план US = V(/i, /2,.... /г),
для которого выполнены соотношения (3.1) — (3.4).
Шаг 1. Просмотреть //', i е М.
1') Если z/|>0, /еЛ4, положить zs = ^. Образовать,
согласно (3.13), множества £)£, вычеркнуть все о/, j^Dl,
k<s, и перейти к шагу 5.
Ясно, что если 1') будет выполнено уже для t/°, то С/°
есть оптимальный план, и процесс закончен.
1") Если имеется it, для которого г/J < 0, перейти
к шагу 2.
Шаг 2. Найти множество улучшающих векторов
Для плана Us, образовав, согласно (3.12), множества N».
240
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. И
2') Если = перейти к шагу 5.
2") Если Ns4=0, перейти к шагу 3.
Ш а г 3. Для всех Z, для которых ys. < 0,
неравенства
проверить
(3.15)
где через a~if обозначены отрицательные элементы мат-
рицы А.
3') Если существует и, для которого (3.15) не вы-
полнено, перейти к шагу 5.
3") Если все неравенства (3.15) окажутся строгими,
найти, согласно (3.8), все для j<=Ns и выбрать js+i
так, чтобы
Vs. — max Vs.; (3.16)
'«+> '
вычеркнуть о? и перейти к шагу 8.
J.y+1
3"') Если все неравенства (3.15) выполняются и су-
ществует такое, что для (3.15) оказы-
ваются равенствами, то определить множество Fs тех
j е Afs, для которых aij<0 хотя бы при одном i <= А?.
Ш а г 4. Проверить соотношение
*,+ 2 с,<?. (3.17)
4') Если (3.17) выполняется, вычеркнуть Vs для j&Fs
(не вычисляя их). Положить /s+1=/4fUFS1 вычислить но-
вое значение целевой функции
%s+l %s "Е С
значения свободных переменных
уГ1==у1- 2
(3.18)
(3.19)
и перейти к шагу 1 (т. е. начать новую итерацию).
4") Если (3.17) не выполняется, вычеркнуть oj для
/ е Ns (не вычисляя их) и перейти к шагу 5,
ОПИСАНИЕ АЛГОРИТМА
24Г
§ 3]
Ш а г 5. Для всех k, для которых /ft cz Js, найти, со-
гласно (3.14), множества Nt- Просмотреть их в порядке
убывания номеров k до тех пор, пока не обнаружится
такое ki, что Д, c/s и 0, либо не выяснится, что
все Nk пусты.
5') Если Nk = 0 Для всех k, при которых А с Js,
процесс закончен. Если при этом Zs=0, то задача SP
не имеет планов. Если же Zs#=0, то план для кото-
рого zq = ^, является оптимальным.
5") Если М, =/= 0, перейти к шагу 6.
Шаг 6. Для тех I, для которых у\ < 0, проверить
неравенства
2 а-ц^уЧ (3.20)
при k = ki.
6') Если ни одно из неравенств (3.20) при k = kt не
выполняется, вычеркнуть о/1 для всех / е М, и повто-
рить шаг 5 для /?<А, заменив в шагах 5 и 6 на k2.
Всякий раз, когда шаг 5 будет повторяться для
в шагах 5 и 6 будет заменяться на Asu+i.
Если (3.20) не выполняется ни при одном k, для ко-
торого Nsk 0, процесс окончен (см. п. 5'))-
6") Если все неравенства (3.20) при k=kv оказы-
ваются строгими, выбрать js+l так, чтобы
v4v = max O;v, (3.21)
5+1
Rv
вычеркнуть v4v и перейти к шагу 8.
/z 'S+l
о ) Если при k=kv все неравенства (3.20)
выпол-
нены и существует такое подмножество с М, что
для i е Mkv все неравенства (3.20) выполняются как ра-
венства, перейти к шагу 7.
Шаг 7. Проверить соотношение
2 Cj<^, (3.22)
16 А. А. Корбут, Ю. Ю. Финкельштейн
242
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. II
где через Fsuv обозначено множество тех j е Nfv, для
которых atJ<Q хотя бы при одном i е Mkv.
7') Если неравенство (3.22) выполнено, вычеркнуть
для всех / <= Fkv. Положить Js+i = Jkv U F*v, вычи-
слить для нового плана Us+l значение целевой функции
zs+i = 2% + 2 ch (3.23)
®v
свободных переменных
yT' = ykiV- 2 a{j, i<=M, (3.24)
I eFk
и перейти к шагу 1 (начать следующую итерацию).
7") Если (3.22) не выполнено, вычеркнуть v** для
всех j^Nkv и повторить шаг 5 для k<kv. Если kv=0
(т. е. k<kv не существует), процесс закончен (см. п. 5')).
Ш а г 8. Положить Js+i = U и вычислить для
нового плана Us+l значение целевой функции и свобод-
ных переменных:
zs+i = Zp + Cj = s Cj, (3.25)
*+I
УТ' = yPt- ailsM = b. - 2 a{j, (3.26)
Здесь p определяется как номер последней вычеркну-
той с* . Перейти к шагу 1 (начать новую итерацию).
Процесс заканчивается при достижении плана IF,
для которого имеет место п. 5') либо 6'), причем (3.20)
не выполняется ни при одном k таком, что либо
же п. 7") и fev=0.
Блок-схема аддитивного алгоритма дана н?
рис. 11.3.1.
3.3. Описанный процесс за конечное число шагов
либо приводит к оптимальному плану, либо позволяет
установить отсутствие допустимых планов у исходной
задачи. На доказательстве этого факта ввиду его гро-
моздкости мы останавливаться не будем.
§ 3]
ОПИСАНИЕ АЛГОРИТМА
243
Рис. 11.3.1. Блок-схема аддитивного алгоритма.
16*
244
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. 11
Аддитивный алгоритм применяют непосредственно к
исходной дискретной задаче, не используя, в отличие от
первоначальных вариантов метода ветвей и границ, ре-
шения соответствующей задачи линейного программи-
рования. Вычислительный процесс чрезвычайно прост,
ибо в нем используются лишь операции сложения и вы-
читания; тем самым устраняется проблема ошибок окру-
гления. Важно также, что исходная матрица ограниче-
ний в ходе алгоритма не подвергается пересчету.
§ 4. Пример и заключительные замечания
4.1. Проиллюстрируем ход вычислений в описанном
алгоритме на следующем небольшом примере.
Минимизировать
4Z] + 2/2 tz — 3^4 + /5
при условиях
^1 + ^2 "Ь — 4/4 + 6/5^6,
—1\ + 2/2 — 5/3 +14 + /5^2,
/2 2f3 + 3/4 /5 1,
1 о,
/. = j ! /=1, 2, 3, 4, 5.
Произведем замену переменных
1 t,, /=1,2,5,
Xy=l 1-1}, / = 3, 4.
Умножим первое из неравенств (4.2) на — 1 и введем
свободные переменные yt, у2, у3. Задача (4.1) —(4.3) при
этом приводится к следующему виду.
Минимизировать
z = 4Х] + 2х2 + *з + Зх4 + х5
при условиях
- х, - х2 + 2х3 - 4х4 - 6X5 + yt = — 8,
- X] + 2х2 + 5х3 - х4 + х5 + у2 = 6,
х2 + 2х3 - Зх4 - х5 + z/з = О,
( о.
Ху = | /=1, 2, 3, 4, 5.
(4.1)
(4.2)
(4.3)
(4.4)
(4.5)
(4.6)
Процесс начинается с плана £7° = (0, В). Все вычи-
сления удобно свести в таблицу:
§ 4]
ПРИМЕР И ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
245
Таблица
/ — 1 — 1 2 —4 -6\
Л= -1 2 5—1 1
\ О 1 2-3 -1/
№ строки Js Ns i s cs Ds Е*
S zs 1 21 1 3 Fs
1 0 0 0 У° -8 6 0 0 0 3
2 2 «5 /e/Vo -12
3 1 У°~ан — 7 — 74
4 2 y°i~ai2 — 7 -1 — 86
5 4 y°i~au -4 - 47
6 5 y0i~ai5 -2 -21
7 1 5 1 yli —2 5 1 5 0 3
8 2 aiJ -6
9 1 yli~an -1 -I3
10 2 y'~ai2 -1 -I5
11 4 У1~аи 0 о2
12 2 5,4 4* 2| 6 4
13 ail -1
14 Г _отвеч I р V аюи г м е ’ дне г чан; юрял и е. 1ку 2 ац Величина их вычерк -5 ш vj :ивани npj [Я. шиса ны с :верх у НС шер >а,
246
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. 11
Для плана U° имеем 7О=0, zo = O и
:/«=&_ =-8,
i/«=&2 = 6,
f/3=&3 = 0-
Итерация 1.
Шаг 1. Просматриваем у0., i = 1, 2, 3. Имеем i/°<0
(п. 1")).
Ш а г 2. Образуем, согласно (3.12), множество No.
Имеем (см. 1-ю строку таблицы):
С°=0, Do=0, Д0 = {3},
#0 = {1, 2, 3, 4, 5}\{3} = {1, 2, 4, 5).
Здесь Nq =£ 0 (п. 2")).
.Шаг 3. Для / =1 проверяем неравенства (3.15):
Имеем 2 й~ц — — 12 < — 8 = и® (строка 2). Получено
строгое неравенство (п. 3")). Согласно (3.8), находим
о® для / <= Wo:
v°i = 2 (у° — ап) = — 8 + 1 “ — 7, (строка 3)
v° = 3 ($— «i2) = (—8+ l) + (0 — 1) = — 8, (строка 4)
= 3 (y°i ~ a{4) = — 8 + 4 = — 4, (строка 5)
«ем®
t»5 = 2 (y°i - a(5) = — 8 + 6 = — 2. (строка 6)
ieM®
(Напоминаем, что множества Mf находятся согласно
(3.7).)
Имеем v°, = max о®= = — 2. «Вычеркиваем» и
• переходим к шагу 8,
§ 4]
ПРИМЕР И ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
247
Шаг 8. Полагаем Л =/0U{5} = {5}. Имеем:
z, = z0 + c5 = 0 + 1 = 1,
У\~ У°1~ а15 = 2»
У% ~ Уз~ й25 “ 3>
(строка 7)
Уз Уз а35 1 •
Итерация 2.
Шаг 1. Просматриваем у\, 1 = 1, 2, 3. Видим, что
i/{<0. (п. 1")).
Шаг 2. Образуем множество Л/р Имеем С1 = {5},
Dx = 0, Е\ = (3}. Таким образом,
ЛГ. = {1, 2, 3, 4, 5}\({3}U{5}) = {1, 2, 4),
так что ¥= 0 (п. 2")).
Ш а г 3. Проверяем неравенства (3.15) для i=l
(строка 8). Имеем
2 а7/ = —6< —2==г/].
/еН, 1
Получено строгое неравенство (п. 3")). Находим о} для
/ s Afp
t>; =—2 + 1 = — 1,
t»' = —2+1 = —1,
«4=0.
(строки 9—11)
Имеем
к шагу
Ш а г 8. Полагаем J2 = Ц U {4} = {4, 5). Имеем:
о*. = max v\= о! = 0. Вычеркиваем о! и переходим
'' /<=М, '
8.
•?2 = + С4 = 1 +3 = 4,
У1 = у\ - аи = — 2 + 4 “ 2»
Уз = У2 ~ а24 = 5 + 1 = б’
Уз = Уз “ «34 = 1 + 3 = 4*
(строка 12)
248
АДДИТИВНЫЙ алгоритм
(ГЛ. и
Итерация 3.
Шаг 1. Просматриваем у\ для i = l, 2, 3. Видим,
что все г/|>0 (п. 1')). Полагаем £2 = z2 = 4 и образуем,
согласно (3.13), множества D* для 6 = 1, 0. По опре-
делению
ct + zO?},
где #, = {!, 2, 4), Ci = {4}, М\С? = {1, 2}. Далее
c1+z1 = 4+l = 5>£2 = 4,
c2 + zt = 2+l=3<C2 = 4,
так что D| = {1). Аналогично этому АГ0 = {1, 2, 4, 5},
С2 = {5}, Af0\Cg — {1, 2, 4} и Djj = {l). Вычеркиваем vk}
для j е Z)|, k = 0, 1, т. е. а, и о[, и переходим к шагу 5.
Шаг 5. Образуем, согласно (3.14), множество
АГ? = М\(СШ1) = {1, 2, 4}\({4}(J{1}) = {2}.
Здесь N2 ф 0 (п. 5")). Переходим к шагу 6.
Шаг 6. Проверяем неравенства (3.20) при 6=1 и
г = 1:
2 «1/= 1 > у1 — 2.
/sw2
Так как (3.20) не выполнено (п. 6')), вычеркиваем о]
для /еА^, т. е. и возвращаемся к шагу 5.
Ш а г 5. Рассмотрим множество
jV2 = y0\(C^UZ>o) = {l, 2, 4, 5}\({5}U{U) = {2, 4}.
Снова имеем No ф 0 (п. 5")). Возвращаемся к шагу 6.
Шаг 6. Проверяем неравенства (3.20) при 6 = 0,
1 = 1:
3 йц = —5>«/“ = —8.
/^о
(3.20) не выполнено (п. 6')). Вычеркиваем vj для/ejVg,
т. е. v° и v%.
§ 4) ПРИМЕР И ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ 249
Неравенства (3.20) не выполняются ни при одном k,
для которого М ¥= 0. Поэтому процесс окончен. Опти-
мальный план получен: С/2 = 1/(5, 4), т. е.
Xl = X2 = *3 = 0, х4=х5=1, z = 4.
Возвращаясь теперь к переменным tj, получаем опти-
мальный план исходной задачи (4.1) —(4.3):
Zi ===^4=0, ^5=1> 2=1.
4.2. В рассмотренном примере имеется 25 планов.
Их перебор, как всегда, удобно представить графически
в виде дерева, вершина которого отвечает нулевому
начальному плану. Узлы дерева расположены в пяти
«уровнях»; на уровне / переменной Xj последовательно
придаются значения 0 и 1. Все узлы, лежащие на вет-
вях, идущих влево вниз, изображают один и тот же
план; узлы же, лежащие на ветвях, идущих вправо вниз,
отвечают различным планам (рис. 11.4.1).
Полный перебор всех планов отвечает просмотру
всех ветвей этого дерева. Аддитивный алгоритм дает
возможность получения оптимального плана после
250
АДДИТИВНЫЙ АЛГОРИТМ
[ГЛ. 11
просмотра лишь некоторых его ветвей. Некоторые из вет-
вей можно не просматривать, если в ходе алгоритма вы-
ясняется, что следование по ним не может привести к
плану с лучшим значением рекорда.
Рис. 11.4.1 соответствует рассмотренному выше чис-
ленному примеру. В нем просматривались лишь ветви,
изображенные жирными линиями. Именно, были прове-
рены лишь следующие три плана:
Х° = (0, 0, 0, 0, 0),
Г = (0, 0, 0, 0, 1),
Х2 = (0, 0, 0, 1, 1),
последний из которых оказался оптимальным.
4.3. Вычислительный опыт, подтверждающий эффек-
тивность аддитивного алгоритма, пока сравнительно не-
богат. Сам Балаш проводил ручной счет для несколь-
ких примеров, максимальный из которых имел размеры
12X15; он был решен за 22 итерации (см. Балаш [47]).
Первое сообщение о машинной реализации аддитивного
алгоритма принадлежит Фримэну [75а]. Эксперименты
велись в корпорации РЭНД на машине IBM-7044. За-
дача размерами 6X20 потребовала 2 мин. машинного
времени; задача 50X15 — 2,5 мин. Для задачи разме-
рами 31X31 за 10 мин. был получен план с рекордом,
равным 19 (точное значение оптимума равнялось 18).
Отчет о вычислительном опыте с алгоритмом Ба-
лаша содержится также в заметке Флейшмана [74а].
Эксперименты проводились в Вычислительном центре
ФРГ (Дармштадт) на машине IBM-7094. Максимальный
размер решавшихся задач составлял 37X159; задача
была решена за 2,45 мин. и потребовала 1622 итерации.
Максимальное время счета (30,65 мин.) и максимальное
количество итераций (80417) было зафиксировано для
задачи размерами 11X80. Задача размерами 46X90 не
была решена за 110000 итераций (машинное время —
90 мин.).
Численные эксперименты с аддитивным алгоритмом
позволяют сделать некоторые качественные выводы.
Алгоритм работает быстро и надежно для задач сред-
него размера (до 30 переменных). Судя по всему, он
§ и ОБОБЩЕННАЯ ЗАДАЧА О РАНЦЕ 251
реагирует на рост числа переменных более болезненно,
чем на рост числа ограничений. Далее алгоритм сравни-
тельно быстро приводит к планам с достаточно хорошим
рекордом; более того, иногда он довольно быстро дает
и оптимальный план, но продолжает вычисления с тем,
чтобы убедиться в его оптимальности. В связи с этим
задание некоторой априорной границы для значения це-
левой функции и остановка вычислений после достиже-
ния этой границы могут привести к заметной экономии
времени.
4.4. Недавно в статье Джеффриона [80] был предло-
жен метод «неявного перебора», который является по
существу вариантом аддитивного алгоритма. Наконец,
в последней работе Балаша [48] развивается «метод
фильтра», позволяющий ускорить сходимость аддитив-
ного алгоритма. Ограниченный объем книги не позво-
ляет здесь остановиться на этих интересных вопросах.
ГЛАВА 12
ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО
ПРОГРАММИРОВАНИЯ
В этой главе будут проиллюстрированы возможности
приложения к некоторым дискретным задачам идей и
методов динамического программирования. В качестве
примеров рассматривается одна дискретная задача до-
вольно общей структуры, представляющая собой обоб-
щение известной задачи о ранце, а также. упоминав-
шиеся выше задача коммивояжера и задача теории
расписаний (для случая двух машин).
§ 1. Обобщенная задача о ранце
1.1. Следующая задача является естественным об-
общением сформулированной в § 2 гл. 2 задачи о ранце.
Максимизировать
(i.i)
252 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
при условиях
п
(1.2)
Xj^Bj, /=1, 2, ..., п. (1.3)
Делаются следующие предположения:
Г. В}, .... п — конечные множества.
2°. fjU)—произвольные функции одной переменной
(никаких ограничений типа выпуклости, дифференцируе-
мости и т. п. не накладывается).
3°. gj(&—функции одной переменной, принимающие,
целые значения при любых g е Bj.
'4°. l^(xi) Для всех (здесь С; — извест-
ные целые положительные числа).
Из условия 4° сразу следует, что для любого
k= 1, 2, ..., п
k k
tg}(xj) 0-4)
Ограничение (1.2) может иметь произвольный харак-
п п
тер, например «2 gj(xj)>0H 3 0 (mod 6)» или
п
же «двоичное разложение 2 £/(*/) + 1 содержит ровно
10 единиц».
1.2. Описываемый способ решения задачи (1.1) —
(1.3) по существу сочетает в себе идеи динамического
программирования и локального подхода к некоторым
дискретным задачам (см. гл. 13). В его основе лежит
прежде всего отсев «доминируемых» значений перемен-
ных Xj, которые заведомо не могут входить в оптималь-
ный план. Правила отсева даются следующей теоремой.
Теорема 1.1. Пусть для некоторого г
а) х'г <= Вг, х" е= Вг,
б) gr«)=gr«)-
в)
Тогда значение переменной хг = х" не может входить
в оптимальный план задачи (1.1)—(1.3).
§ 1} ОБОБЩЕННАЯ ЗАДАЧА О РАНЦЕ 253
Доказательство. Пусть хг = х" входит в неко-
торый оптимальный план
у// _/vz/ v/z v" v//\
Л -(Xj, X2, Xr4, Xr, Xr+1, . Xn).
Рассмотрим вектор
x' = (%;, x'2, .... x'r_v x'r, X'r+l, ..., X'n) =
= (x", x",..., x"p x'r, x"+i..x").
Вектор X' также является планом. Действительно, ис-
пользуя условие б), получаем
п п
S gj = Ъг gt (х") + gr (xQ = 2 g/ (х?) 6 Я,
так что ограничение (1.2) выполняется. Далее для всех
j^=r имеем х'. = х" е Bf, кроме того, х' е Вг. Тем са-
мым выполнено и ограничение (1.3). Наконец, из усло-
вия в)
п п
Таким образом, план X" не является оптимальным.
Основываясь на теореме 1.1, проведем «отсев» заве-
домо не оптимальных значений переменных Xj. Пусть
Gj — множество значений, которые принимает gj(xj), ко-
гда х} пробегает В,-. Рассмотрим произвольное SeG,.
Определим
max fj(xj).
Ясно, что для каждого | е Gj достаточно сохранить
только одно возможное значение х,-, а именно хД|). Обо-
значим теперь gj(Xj(^)) через yjt fj(x}(l)) через Fj(yj).
Получим следующую задачу, эквивалентную задаче
Максимизировать
d-б)
254 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
при условиях
(1.6)
yj<=Gj, j = 1, 2...п. (1.7)
Заметим, что из сделанных выше относительно зада-
чи (1.1) — (1.3) предположений Г—4° и из неравенства
(1.4) сразу следует, что
а) У] — целые числа, /=1, 2, ..., п;
₽) \ У]\<С), j=l, 2....га;
к к
у) 3 У) < S Cj, k = 1, 2, ..., га;
/-1 l=i
6) Gj — конечные множества, причем*) | G j | | Bj |.
1.3. Перейдем теперь к изложению алгоритма.
Шаг 1. Рассмотрим задачу, которую будем назы-
вать задачей «^(О-
Максимизировать
FM + FM (1.8)
при условиях
У\ + У2 = t, (1.9)
yj^Gj, / = 1, 2. (1.10)
Здесь t — целое, 111 с, + с2.
Все задачи можно решать одновременно, про-
изводя полный перебор всех наборов (yit у2), удовлетво-
ряющих условиям (1.10). В результате следует запом-
нить: 1) множество Т2 тех t, при которых задача J?2(0
разрешима, 2) для каждого t^T2 соответствующий опти-
мальный план (i/](0> f/|(0) и оптимальное значение це-
левой функции
ф2(0=Л(у?(0) + Ш<
Множества Gi, G2 после этого вычеркиваются из памяти.
Переходим к шагу 2.
*) Напомним, что через |б| обозначается число элементов дан-
ного конечного множества G.
§ 1] ОБОБЩЕННАЯ ЗАДАЧА О РАНЦЕ 255
Для объема перебора Р2 и объема памяти Q2 имеют
место оценки (с учетом необходимости помнить множе-
ства Gi, Gz, .,., Gn)
P2<|B1I|B2I, (1.11)
Q2< 2 IB/l + 2 2 Cj+ 1 (1.12)
7=1 /=1
/ 2 \
(здесь 2 2^+1 — оценка сверху для | Т2| .
\ /=1 /
Шаг k (3 <. &+1 <п). От предыдущего шага имеет-
ся следующая информация: 1) множество Tk тех t9 при
которых разрешима задача
максимизировать
k
Ъем
при условиях
*
Uj&Gj, j = 1, 2, ..., k',
2) для каждого /еТц— соответствующий оптимальный
план (t/f(O, .... #£(/)) и оптимальное значение
целевой функции
k
ф,»)- S/, «и)-
Для объема информации Q'k, запоминаемой от пре-
дыдущего шага, имеет место оценка
QI<2ijC/+l. (1.13)
Рассмотрим задачу, которую будем называть зада-
чей ’S’k+ii.t) •
Максимизировать
ФИП + Рж(№+1) (1-14)
256 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
при условиях
i' + yk+i = t, (1.15)
yk+iG=Gk+l, (1.16)
t'^Tk, (1.17)
У! = У^П, /=1, 2......k. (1.18)
Все задачи можно решать одновременно,
производя перебор всех наборов (?, yk+i)> удовлетворяю-
щих условиям (1.16) — (1.17). При этом следует запо-
мнить: 1) множество Ть+1 тех I, при которых задача
разрешима; 2) для каждого t^.Tk+i — соответ-
ствующий оптимальный план (z/f+l (t), yk£ (t).yk£\ (0)
и оптимальное значение целевой функции
k+i
W- 2/, W-W
После этого из памяти вычеркивается информация, ос-
тавшаяся от (k—1)-го шага, и множество Gh+t. Перехо-
дим к (& + 1)-му шагу.
Для объема перебора Pk+i имеет место оценка
/ k \
2 2<j+l |Bft+i I,
\ /=i /
(1.19)
а для объема вновь запоминаемой информации Q'M
fe+1
Q^^S^+l, (1.20)
что вместе с информацией Q'k, запомненной от предыду-
щего шага, и с информацией о множествах Gj даст сле-
дующую оценку для максимального объема Qh+i запо-
минаемой информации:
п
Qk+i 2 |^/|+ Q'k + Q*+i
/=« +1
п / k \ / &4-1 \
< 2 IBJ+ 22с, + 1 + 23с,+ 1 . (1.21)
i-k+l \ /=1 / \ /=1 /
$ 1] ОБОБЩЕННАЯ ЗАДАЧА О РАНЦЕ
257
Шаг (п— 1). От предыдущего шага имеется сле-
дующая информация: 1) множество Tn-i тех t, при
которых разрешима задача 2) для каждого
T^Tn-i — соответствующий оптимальный план
(//"** (0> */£-1(0> и оптимальное значение це-
левой функции
п-1
Для объема информации Q'_p запомненной от преды
дущего шага, справедлива оценка
п-1
<гн<;!2<,+1.
(1.22)
Рассмотрим теперь следующую эквивалентную зада-
че (1.5) — (1.7) задачу
Максимизировать
+ (1.23)
при условиях
/' + «/„<=«, (1.24)
Уч G„, (1.25)
(1.26)
У^УГ'И'), / = 1, 2, .... n-1. (1.27)
Задача решается полным перебором всех наборов
(f, Уп), удовлетворяющих условиям (1.25), (1.26). Опти-
мальный план (*/", у", у£) этой задачи будет также
оптимальным планом задачи (1.5) — (1.7).
Для объема перебора Рп справедлива оценка
/ п —1 \
2 2«/+1 |Вп1, (1.28)
\ l=i /
а для объема необходимой памяти —
п
17 А. А. Корбут, Ю. Ю. Финкельштейн
258 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
1.4. Укажем в заключение оценки для общего объема
необходимого перебора Р и максимального объема од-
новременно хранимой информации Q:
Р = Р2 + Spfe + /’n<|BillB2l+i(,2 2^+i')lBft I.
k~3 fc-3\ /=1 /
[ Г n 2
Q— max Qft = max] S | В» | +2 2 C/+1
2<k<n /=1
n / k — 1 \ / k
max SIB.-I+ 22c, + l + 2 2 C/+1
3<£<n-ll/=fc \ / = 1 / \ / = 1
n 2
21 1+2 2 c}+1
../»l /=1
[n / k—1 \ / k
2 I Bt | + 2 2 ci + 1 + (2 2 Cj + i
/=* \ /-I / \ /-I
§ 2. Задача о коммивояжере
2.1. Описание задачи коммивояжера и ее формули-
ровка в виде целочисленной задачи линейного програм-
мирования были даны в § 3 гл. 2; в § 3 гл. 10 излагался
метод ветвей и границ для ее решения. В этом парагра-
фе мы приведем другой алгоритм, основанный на идеях
динамического программирования и предложенный одно-
временно и независимо Веллманом [54] и Хелдом и Кар-
пом [94].
Напомним постановку задачи (в удобной здесь фор-
ме). Требуется найти кратчайший замкнутый маршрут
(цикл), проходящий через каждый из заданных городов
0, 1,2, ..., п ровно по одному разу. Говоря формально,
задана матрица ||с^||, i, /=0, 1, 2, ..., п и тре-
буется найти перестановку
л = (1|, t2. •••» U (2-1)
§ 2]
ЗАДАЧА О КОММИВОЯЖЕРЕ
259
чисел 1, 2, ...» и, минимизирующую суммарный прой-
денный путь
Coz, + + сг?3 + ... + Ctn_ltn + Cin0. (2.1')
(Ясно, что в силу замкнутости искомого цикла безраз-
лично, какой город считать начальным; поэтому в каче-
стве начального фиксирован город 0.)
2.2. Введем необходимый для дальнейшего аппарат.
Пусть (z‘i, 1’2, ..., й-i) — некоторые различные города,
отличные от начального (is¥=ir при s#=r; is¥=0 для всех
$=1, 2, ..., k—1). Пусть ik — город, отличный от
ii,i2, ..., ik-i- Город ih может совпадать с начальным
(ift=0) только при k — n.
Обозначим через
fs-i(O> «1» г2> •••> «»-1> 4) (2.2)
длину кратчайшего пути, соединяющего город 0 с горо-
дом и проходящего в произвольном порядке через го-
рода А, «г, ..., «л-i. Заметим, что функция (2.2) симмет-
рична по аргументам ц, «2, ..., 4-1, т. е. не изменяется
при любой их перестановке.
Перестановку (ZJ, «', ..., i'_]) городов (/*, «2, ..., ik-i),
на которой реализуется фигурирующий в определении
(2.2) кратчайший путь, обозначим через
л»-1(0; «1. 4. •••, «й-Г, «Д (2.3)
Излагаемый ниже алгоритм основан на следующей про-
стой теореме.
Теорема 2.1. Пусть
(«р i2, ..., г’А_1) = (0; гр i2........lk_{} Q
и 1 —1. Тогда
(«1» «2» •••’ 1г) = Яг(0> г1» *2’ •••» гг+1)‘
Доказательство непосредственно следует из
определений (2.2) и (2.3).
2.3. Перейдем непосредственно к изложению алго-
ритма.
Ш а г 0. Вычисляем функцию
/о(О; г) = с0/, «=1,2....п. (2.4)
17*
260 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
Количество значений Ро функции 4(0; i), подлежащих
вычислению, есть
Ро = «- (2.5)
При этом на одно значение функции требуется одно дей-
ствие (выбор из таблицы). Количество значений Qo
функции fo(O;i), подлежащих запоминанию,
Qo = п. (2.6)
Шаг 1. Вычисляем функцию 4(0; i; /):
/1(0; i; j) = fo(Q; i) + ctj, 2..............(2.7)
По окончании вычеркиваем из памяти таблицу значе-
ний 4(0; /).
Количество значений Pi функции /ч(0; /; /), подлежа-
щих вычислению, равно
Pi = n(n — 1) = пСЙ-ь (2.8)
На одно значение функции требуются три действия (два
выбора из таблицы и одно сложение). Необходимый
объем памяти (до вычеркивания из памяти таблицы
4(0; 0)
Qi = n + n(n— 1). (2.9)
Шаг k — 1). Вычисляем функцию
4(0; i\, 4.4; 4+i)
для всех значений 4, г2, .... ik+i при г =£ s\
4=1, 2, ..., п; г=\, 2, .... fe + 1):
4(0; 4» 4> •••> 4; 4+i)=
= min{[4-i(0; i2, ..., 4; 4) + ^^,].
[4-i (0; 4> 4> •••> 4; 4) + c<2ift+I]» •••
• ••• [4-i(0; 4> 4> •••> 4-b 4) + (2.10)
Для каждого значения функции 4(0; 4, 4, • •., 4; 4-и)
запоминаем оптимальную перестановку ла(0; 4> 4,-• •
• • •» 4; 4+1) • По окончании вычислений вычеркиваем из
памяти таблицу значений 4-1(0; 4, 4, • •4-i; 4) (а при
й>3 — и путей яа-1(0; 4, 4. •••» 4-i; 4)).
ЗАДАЧА О КОММИВОЯЖЕРЕ
261
§ 2]
Количество значений Рь функции /&(...), подлежа-
щих вычислению, равно
Pk = nCkn-r (2.11)
На одно значение функции требуется 46 — 1 действий
(2k выборов из таблицы, k сложений, k—1 сравнений).
Необходимый объем памяти Qa (до вычеркивания из па-
мяти таблиц ..) и jife-i(...)) составляет
Qk = nC% + nCkn-t. (2.12).
Ш а г п. Вычисляем функцию
f„(0; 1, 2, .... п; 0) =
= min {[/„!] (0; 2..п; 1) + с10],
[/«-i(0; 1, 3, ..., п; 2) + с20], ...
.... [/'„-ДО; 1, 2, ..., п-1; п) + с„0]}. (2.13)
Перестановка лп(0; 1, 2, .... п; 0), на которой дости-
гается минимум, и будет оптимальным планом исходной
задачи.
Количество значений Рп функции fn(...), подлежа-
щих вычислению, равно здесь
Рп=1. (2.14)
На одно значение функции требуется 4п—1 действий
(2п выборов из таблицы, п сложений, п— 1 сравнений).
Необходимый объем памяти
Q„ = nC«Z[+1 =n+1. (2.15)
2.4. Получим теперь выражение для суммарного объе-
ма необходимых вычислений Р. Прежде всего
п—1
p=pJ + pI+2 p'k + p'n,
k-2
где р' = Prdr, Pr — количество значений функции
Л(0; ii, k,..., ir', ir+t)> подлежащих вычислению, a
262 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
^ — количество операций, приходящихся на одно зна-
чение. Находим:
Р'о = Podo — п- 1 —п,
Pt = Pidi = nCn-i • 3,
P'n = Pndn~l • (4n—1).
При всех k = 2, 3, n— 1 имеем
Pk = Pkdk — nCn-i (4k — 1).
Таким образом,
n-1
P = n + 3nC‘n-i+ 3 (46-l)nCti +1 *(4n-l) =
k=2
n—1
= (5n—1) + 2 (4fc-l)n(?ti +
+ (4-0- l)nC°4 -(4 • 0 - 1) пС„-1 =»
n-1
= (5n—1) +n + nS(4^-l)cti =
6=0
n—1
- (6n - 1) + n s (4k - 1) Ckn-1 =
л=о
= (6n - 1) - n 2 Ckn-t + 4n =
k=0 k=0
n—1
= (6n - 1) - n2"-1 + 4n s kc^.t.
k-0
Преобразуем теперь последнюю сумму в выражении
для Р. Обозначим
п—1
А*0
§ 2) ЗАДАЧА О КОММИВОЯЖЕРЕ 263
Тогда
S = 2 kCkn.x = 2 kcnn~lrk = 2 (n - 1 - v) Cvn-t =
k=0 k=0 v-0
n—1
= 2(n-l-*)Ctb
1 k=Q
s + s = 2 fecti + 2 (n -1 - fe) cti,
k=0 k=Q
n-\
2S = 2 (n - О Ckn-i = (n - 1) 2n'\
fe=0
откуда
S = (n - 1) 2rt'2.
Окончательно имеем
P = (Qn - 1) - n2n~' + 4n (n - 1) 2"'2. ’(2.16)
Отметим, что полный перебор составляет*) п! —
— ппе~п У2лп, т. е. существенно больше Р.
2.5. Получим выражение для максимального потреб-
ного объема памяти Q. Имеем
Q = max Qft = maxlQ0, Qb Q„, max Q Л =
0<й<п I 2<4<n-1 )
= maxJn, n + n(n— 1), n + 1, max (nCn-i + nC„-i)I =
( 2<fe<n-l J
= n max (nCn~i + nCn-i).
2<fe<n-I
Ho
, rk______(n — 1) I (ra — 1) 1 _
+ (k - 1)! (n - k) I k I (n - k - 1)!
_ («~ 1) I (fe+ {n — k) ) _ П1 _ pfe
— kl(n-k)! kl(n-k)! bn’
так что
Q = n max C^=nc[2\
2<fe<n-l П П
[n"l n
у —целая часть от .
*) По формуле Стирлинга, см. [35]. Эта же формула будет ис-
пользована для оценки объема памяти Q.
264 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ, 12
Отдельно рассмотрим два случая.
I случай. п = 2п(.
,[-у[ _ „п, = (2ni) 1 ~ (2П1)2Я|е~2П|К2л- 2П1 _
” 2n' (rti !)2 к2П|е-2П1 • 2я»|
II случай. п = 2п1 + 1.
р|~] _ pni __ (2П| + 1)!_________(2ni) I 2П| + 1 nf<n,
Gn ~ c2n,+i nj|(ni + l)| (П,[)» П1 + 1 zc2n,-
Ho (см. I случай) _____
n2n, -я / I
2n' 2 V ШЦ.’
так что
Итак, в обоих случаях __
Q~2n]/^-. (2.17)
В конечном счете удалось (по сравнению с полным пе-
ребором, для которого Р' — nl ~ппе~п У2лп, Q'— 2) до-
стигнуть существенного сокращения объема вычислений
за счет заметного увеличения объема памяти.
§ 3. Задача теории расписаний для случая
двух машин (алгоритм Джонсона)
3.1. Формулировка общей задачи теории расписаний
была дана выше (§ 4 гл. 3). Рассмотрим следующий ее
частный случай. Имеются две машины и п деталей, каж-
дая из которых должна пройти обработку сначала на
§ 31 ЗАДАЧА ТЕОРИИ РАСПИСАНИЙ ДЛЯ СЛУЧАЯ ДВУХ МАШИН 265
первой, а затем на второй машине. Время обработки Z-й
детали (Z=l, 2, ...» и) на первой машине обозначим
через а*, на второй машине — через Ь^ Требуется найти
расписание (последовательность обработки деталей), ко-
торое минимизирует общее время обработки всех дета-
лей. Будем считать, что последовательность обработки
деталей на первой машине совпадает с последователь-
ностью обработки на второй машине*). Поэтому иско-
мое расписание, говоря формально, представляет собой
перестановку (Zb Z2, • •, in) чисел 1,2, ..., п, минимизи-
рующую время от начала обработки детали ii на первой
машине до окончания обработки детали in на второй
машине.
3.2. Опишем известный алгоритм Джонсона (см. [98],
гл. 2) для получения оптимального расписания. Идея его
состоит в стремлении максимально сократить простои
второй машины.
Шаг 1. Среди чисел (аь а2, ...» ап', bh b2, ..., Ьп)
находим наименьшее Ь (если таких чисел несколько, бе-
рем произвольное из них). Если ti = aif то полагаем Z«Z4,
т. е. помещаем деталь i на первое место в расписании.
Если же Zi = &i, то полагаем i=in, т. е. помещаем деталь/
на последнее (n-е) место в расписании.
Затем вычеркиваем деталь I (т. е. числа и bi) из
списка и переходим ко второму шагу.
Шаг k (l<k<n). Среди чисел (а<, а2, ..., ап\ Ьи
Ьъ ..., Ьп), еще не вычеркнутых на предыдущих ша-
гах, находим наименьшее 4 (если таких чисел несколь-
ко, то берется произвольное). Если то помещаем
деталь i в расписании на первое из мест, еще не
занятых на предыдущих шагах; если же th = bu то поме-
щаем деталь i в расписании на последнее из незанятых
мест.
Затем вычеркиваем деталь i (т. е. числа a,i и bi) из
списка и переходим к (&4-1)-му шагу.
Шаг п. Единственную оставшуюся в списке деталь i
помещаем на единственное оставшееся в расписании
место.
*) Общий случай можно свести к этому (см. [98], гл. 2).
266 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
3.3. Прежде чем обосновать алгоритм Джонсона, по-
ясним его работу на примере с 6 деталями. Рядом с таб-
лицей времен обработки помещены еще два столбца.
В первом из них римской цифрой указан номер шага
алгоритма, на котором данная деталь включается в рас-
писание (в каждой из строк соответствующее число th
отмечено звездочкой). Во втором столбце показано, ка-
кое место в расписании займет данная деталь.
i ai bi Номер шага Место детали в расписании
1 8* 9 V 1 = Z3
2 3* 5 I 2 = Z,
3 4* 6 III 3 ~ Z2
4 10 9 VI 4=4
5 7 4* II 5 = Z6
6 7 5* IV 6=4
Таким образом, оптимальное расписание есть
(Мг, /б) = (2 ,3, 1, 4, 6, 5).
Напомним, что прямой перебор потребовал бы сравне-
ния 6! = 720 перестановок.
3.4. Перейдем к обоснованию алгоритма Джонсона. При этом
будет удобно рассматривать более общую задачу, в которой к из-
ложенным выше условиям добавлено еще одно: если время начала
работы первой машины принять за 0, то вторая машина может на-
чать работать не ранее момента Д (Д— заданное неотрицательное
число). Для этой более общей задачи и будет обоснован алгоритм
Джонсона.
Обозначим через
<р(Д; й, Z2, ...» in)
суммарное время обработки при заданном «опережении» Д и рас-
писании (ii, Z2, ...» in). Заметим, что функция <р(Д; й, Z2, ..., in)
монотонно возрастает по Д.
Задачу с заданным Д и деталями Zj, Z2, ...» Zn будем обозна-
чать через Е(Д; Zi, Z2, ...» Zn).
§ 3] ЗАДАЧА ТЕОРИИ РАСПИСАНИЙ ДЛЯ СЛУЧАЯ ДВУХ МАШИН 267
Для функции ф(А; ч, 4’2, in) имеет место следующая фор-
мула:
Ф(A; ji, /г, • ••>/«)" •
k / k \
= 2 а, + Ф Ф (А; /1, /2......4) - 2 а1 : 4+1....4 • 0.1)
s=l * \ $=1 * /
k
Действительно, через время V а» на первой машине закон-
s=i 1s
чится обработка деталей /1, /г, .. Д и начнется обработка деталей
jfe+i, •••» /»; через время ф(А; /ь j2, •••, /л) закончится обработка
деталей ji, j2, ..., /а на второй машине, и эта машина освободится
для обработки деталей /л+i, /п. Отсюда и следует формула (3.1).
3.5. В обосновании алгоритма Джонсона основную роль играет
Лемм'а 3.1. Алгоритм Джонсона дает оптимальное расписание
(при любом А) для задачи с двумя деталями (п=2).
Прежде чем доказывать лемму, покажем, как выводится из нее
Теорема 3.1. Алгоритм Джонсона дает оптимальное распи-
сание (при любом Д) для задачи с произвольным количеством де-
талей п.
Доказательство проведем индукцией по числу деталей. При
п=2 теорема совпадает с леммой.
Пусть п^З. Допустим, что теорема верна для числа деталей,
равного n—1, и докажем ее для числа деталей, равного п. Пусть
h, t*2, ...» in — оптимальное расписание. Рассмотрим четыре случая.
I случай.
а2....ап; blt Ь2....M = aZr
В формуле (3.1) положим fc=l, (/i, /2, ./п) = (й, it, in)
и получим
ф (А; «1, 4...in) = ai, + ф (ф (д; »1) “ alt 1 '2.4)- (3-2)
Из (3.2) следует, что расписание (42, in) является оптимальным
расписанием для задачи Е(Д'; Z2, ...» in), где Д' = ф(Д; Ч)“ац.
Согласно индукционному предположению расписание (i2, ..., за-
дачи Е(А'; 4’2, ...» in), полученное по алгоритму Джонсона, также
будет оптимальным, и следовательно,
ф(а; «1> 4....in)=ah + ф(ф(л; ii)-at;< 4......4) =
= аг1 + ф(ф(Д; 4)-aZi; i2....<') = ф(А1 iy i2...Q- (3-3)
Из (3.3) следует, что расписание i2, .... iQ также будет опти-
мальным для задачи Е (A; iit i2, ...» in)- Так как расписание
4*2» ..., может быть получено по алгоритму Джонсона, то
теорема для этого случая доказана.
268 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
II случай.
min {ар а2...ап; bt, Ь? Ьп} = Ь^.
«
В формуле (3.1) положим k == п— 1, (jb /2,..., jn) *= (Zb Z2, • • •» in)
и получим
n-1 / n-i \
<p (A; ib i2, .... in) = 2 ais + Ф Ф (д; «i> '2.*«-i) - 2 ah; '« •
S=1 \ S»1 /
(3.4)
Из отмеченной выше монотонности функции <р (Д; /ь /2, ..., jr)
по Д следует, что если (i{, i2, • ••> *n-i) — оптимальное расписание
для задачи Е (Д; Zp Z2, ...» Zn4), то (zp i'2i ...» i'n^t /^ — оптималь-
ное расписание для задачи Е (Д; Zb Z2, ..., /я). Возьмем в качестве
(zp Z2, ..., z'_t) оптимальное расписание задачи Е(Д; Zj, Z2,..., in^)f
найденное по алгоритму Джонсона. Тогда и расписание
(zp Z', ...» z'_p Zn) может быть получено по алгоритму Джонсона,
и теорема доказана.
III случай.
min {ab a2, ..., ап; bit b2, ..., bn} = ar=/= atv (3.5)
Рассуждая так же, как и в случае I, получим, что суще-
ствует такое оптимальное расписание (zp Z2, ..., zQ задачи
£(Д; Zb Z2, ...,Zn), что расписание (z2, ..., задачи £(Д; Z2, ..., in)
может быть получено по алгоритму Джонсона. В частности,
можно считать, что аг = а
*2
Теперь из формулы (3.1) (положим сначала k = 2,
(/i> /г..и=01. 4........4)- а затем k = 2> (Л- /2...../Л) =
*= (4- ‘р 4> •••> 4)) получим
<р(д; »р 4....4)==
=«/1+пг'+ф(ф(А: гр 4)“^+^); 4>---> 4) <3-6)
и
ф(А> ^2’ ^Р 13..1п) =
= Ф (ф (Л; 4. ‘1)~ i'3, ..i'j. (3.7)
Из леммы и формулы (3.5) следует, что
ф(Д; «1)<ф(Д; «р 4)>
§ 3] ЗАДАЧА ТЕОРИИ РАСПИСАНИЙ ДЛЯ СЛУЧАЯ ДВУХ МАШИН 269
следовательно,
<р(Д; 4 /() —+а^)<ф(Д; Zp
и (с учетом (3.6) и (3.7) )
<р(Д; <2> «1, »з.‘1> 4> •••• Q- (3-8)
Из (3.8) и из оптимальности расписания (zp Zg,...» О следует,
что расписание (Zg, Zp Z3, ..., z') также является оптимальным.
Но в силу (3.5) мы получили случай I, для которого теорема уже
доказана.
IV случай.
min{ab а2, ..., ал; Ьъ Ь2, ..bn} = Ьг ф bin. (3.9)
Рассуждая так же, как и в случае II, получим, что суще-
ствует такое оптимальное расписание (z[, i2..z'_p Zn) задачи
£(Д; Zi, Z2, ..., Zn), что расписание (zp i2, ..., z'_|) является опти-
мальным расписанием для задачи Е(Д; Zp z£, ...» z'-j), построен-
ным по алгоритму Джонсона, причем Ь,, = Ьг. Теперь из фор-
Zn-1
мулы (3.1) получаем
ф(Д; Z'_n Q —
п-2 / п-2 \
- 2 а,' + Ф ф(д; 4 »2> • • •• 'п-2)- 2 zn-i> zn)> <зл°)
5=1 S \ 5 = 1 5 /
ф(д; 4 »2...‘п-2>
п-2 / п-2 \
= 2 а,' + Ф Ф(д; 4 4 • • •> 4-г) - 2 а/; 'п> 4-1 • (зло
5=1 S \ 5=1 5 /
Из леммы следует, что
/ п—2 \
ф ф(д; 4........('п-2)~ 2 a/; ‘«-1
\ 5=1 5 /
/ П~2 \
<Ф ф(Д; i'i, 1’2...'п-2)— 2 at'> Zn-1> zn • <ЗЛ2>
\ 5=1 5 /
Из (3.10), (3.11), (3.12) и из монотонности ф(Д; /ь j2f ...» /г) по Д
получаем
<р(Д; ip 4 i'_2, in, i'_!)<<p(A; i', i'n_x, Q. (3.13)
Из (3.13) и из оптимальности расписания (zp i'2t..», z'_p Zn)
270 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ (ГЛ. 12
следует, что расписание (ip ...» i'n^ *п-1) также является
оптимальным. Но в силу (3.9) получается случай II, рассмотрен-
ный выше.
Таким образом, все четыре случая рассмотрены. Теорема дока-
зана полностью.
3.6. Переходим к доказательству леммы. Достаточно доказать
следующие два утверждения:
а) Если Д] —min{ab аг; &ь &г), то расписание (1, 2) оптималь-
ное, т. е. ф (А; 1, 2)<ф(Д; 2, 1).
б) Если 62=min {аь а2; 6Ь 62), то расписание (1, 2) оптималь-
ное, т. е. ф(Д; 1, 2) <ф(Д; 2, 1).
Сначала выведем выражение для ф(Д; Z, /). Согласно (3.1)
Ф (Д; Z, /) = ai + ф (ф (Д; Z) - а/; /). (3.14)
Остается получить выражение для ф(Д; k) и воспользоваться им.
Обработка детали k на первой машине окончится в момент времени
аь — с этого момента появляется потребность во второй машине.
Вторую машину можно начать использовать не раньше момента Д.
Следовательно,
Ф (Д; k) = шах {аь Д} + bk. (3.15)
Из (3.15) и (3.14) получаем Ф (A; h j) — at + max {а/, ф (Д; i) — ai} + bj=* ==шах{ф(Д; Z), а/ + а/} + 6/ =
= шах {шах {а/, Д) + bi, at + aft+ bj. (3.16)
Из (3.16) получаем
ф(Д; 1, 2) «шах{шах {ab Д) + 6Ь ai + a2} + 62, (3.17)
ф(Д; 2, 1) = шах {шах {а2, Д} + 62, ai + а2} + Z>b (3.18)
При доказательстве леммы рассмотрим отдельно два случая:
Г. ai = min{ab a2; Ьъ 62), (3.19)
2°. 62 = min{ab a2; bit b2}. (3.20)
Каждый из этих случаев разобъем на четыре подслучая:
1) max {aj, Д) + Ьх > ах + а2, (3.21)
шах {а2, Д) + b2 > а\ + а2; (3.22)
2) шах {аь Д} +^>aj+а2, (3.23)
ai + а2 шах {а2, Д} + 62. (3.24)
3) шах {а2, Д) + 62 > aj + а2, (3.25)
ai + а2 > шах {аь Д) + 6Ь (3.26)
4) ах + а2 > гпах{аь Д} + 6Ь (3.27)
ai + а2 > max {а2, Д} Н- 62. (3.28)
§ 3] ЗАДАЧА ТЕОРИИ РАСПИСАНИЙ ДЛЯ СЛУЧАЯ ДВУХ МАШИН 271
Случай Г-1.
z ф(Д; 1, 2) — bi + b2 + max {аь А},
ф(Д; 2, 1) — bi + b2 + max {а2, Д}.
Из (3.19) следует, что
max{ab Д}^тах{а2, Д};
следовательно,
Ф(Д; 1, 2) < ф (Д; 2, 1),
и расписание (1, 2) является оптимальным.
Случай Г-2.
Ф (Д; 1, 2) = bi + b2 + max {аь Д), (3.29)
ф(Д; 2, 1) = а1 + а2 + &1. (3.30)
Из (3.24) получаем
b2 < ai + (а2 — max {а2, Д}) < aif
откуда (с учетом (3.19)) следует, что
b2 = ai. (3.31)
Из (3.31) и (3.24) получаем далее
а2>шах{а2, Д},
откуда следует, что
тах{а2, Д} = й2>Д,
и (с учетом (3.19))
а2 max {аь Д}. (3.32)
Из (3.29) — (3.32) получаем
ф(Д; 1, 2) —ф(Д; 2, l) = max{ab Д} — а2<0.
Расписание (1, 2) оптимальное.
Случай 1°-3.
ф (Д; 1, 2) =« cii + а2 + b2l
Ф (Д; 2, 1) - bi + b2 + max {а2, Д).
Имеем
Ф (Д; 1, 2) - ф (Д; 2, 1) = — b2) + (а2 - max {а2, Д}). (3.33)
Очевидно,
а2 —тах{а2, Д} < 0. (3.34)
Из (3.19) следует, что
ai < b2. (3.35)
Из (3.33) — (3.35) получаем
Ф(Д; 1, 2) — ф (Д; 2, 1)<0.
Расписание (1, 2) оптимальное.
272 ПРИМЕНЕНИЕ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ [ГЛ. 12
Случай Г-4.
ф (А; 1, 2) = b2 4- 4- a2i
Ф (А; 2, 1) = + а! 4- а2.
Из (3.28) следует, что
b2 < ах 4- (а2 — max {а2, А}) <
Из (3.38) и (3.19) получаем
b2 s а\.
Из (3.39), (3.36), (3.37) и (3.19) вытекает неравенство
Ф (А; 1, 2) — ф (А; 2, П-^-^СО.
Расписание (1, 2) оптимальное.
Случай 2°-1. ф (А; 1, 2) « + b2 + max {яь А),
Ф (А; 2, 1) = Ьх + b2 + max {а2, А).
Допустим, что
ф (А; 1, 2) > ф (А; 2, 1),
т. е. что
max {яь А) > max {а2> А).
Отсюда получим
> A, ai > а2
и
ai > max {а2, А}.
Из (3.20) следует, что
#2 ^2*
Складывая (3.41) и (3.42), имеем
а^ + а2> b2 + max {а2, А),
(3.36)
(3.37)
(3.38)
(3.39)
(3.40)
(3.41)
(3.42)
что противоречит (3.22). Следовательно, (3.40) не выполняется и
Ф (А; 1, 2)<ф(А; 2, 1).
Расписание (1, 2) оптимальное.
Случай 2°-2. ф (А; 1, 2) =» bx + b2 + max {яь А),
Ф (А; 2, 1) = Я)-Ь а2 + ^1*
Допустим, что
Ф (А; 2, 1) < ф (А; 1, 2), (3.43)
т. е. что
«1 + а2 < Ь2 4- max {я1? А}. (3.44)
Из (3.44) и (3.24) получаем
Ь2 4- max {аь А) > max {а2, А} 4- Ь2,
max {ab А} > max (а2> А).
т. €»
> A, di а %
и
max {ab А) = > max [a2t А). (3.45)
ЛОКАЛЬНЫЙ ПОДХОД
273
Из (3.45) и (3.44) получаем
а2 < b2l
что противоречит (3.20). Следовательно, (3.43) не выполняется.
Расписание (1, 2) оптимальное.
Случай 2°-3. ф (А; 1, 2),= ах + а2 + Ь2,
ф(А; 2, 1) = Ьг + b2 + шах {а2, А}.
Допустим, что
ф(А; 2, 1) < ф (А; 1, 2), (3.46)
т. е.
Ь^ 4- max {а2, А) < ai + а2. (3.47)
Из (3.47) и (3.25) получаем
bi + max {а2, А) < b2 + max {а2, А),
т. е.
bi < b2,
что противоречит (3.20). Следовательно, (3.46) не выполняется.
Расписание (1, 2) оптимальное.
Случай 2°-4. ф (А; 1, 2) = Ь2 + ах + а2,
Ф (А; 2, 1) =» bi +aj + a2.
Отсюда и из (3.20) получаем
ф(А; 1,2) — ф(А; 2, 1) =Ь2 — 6i<0.
Расписание (1, 2) оптимальное.
Все случаи разобраны. Лемма доказана. Алгоритм Джонсона
обоснован.
3.7. Описанный выше алгоритм настолько прост, что с его по-
мощью можно решать (даже вручную) задачи практически любых
размеров. К сожалению, распространение этого приема на случай
трех или более машин наталкивается на весьма серьезные труд-
ности.
ГЛАВА 13
ЛОКАЛЬНЫЙ ПОДХОД К ЗАДАЧАМ
ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ
Локальный подход, развитый в дискретном анализе
(см. Журавлев [5—7]), был впервые перенесен на за-
дачи целочисленного линейного программирования Жу-
равлевым и Финкельштейном [8]. Существо локального
подхода применительно к задачам дискретного програм-
мирования заключается, грубо говоря, в выделении и
18 А. А. Корбут, Ю. Ю. Финкельштейн
274 ЛОКАЛЬНЫЙ ПОДХОД (ГЛ. 13
формализации класса задач, которые поддаются разбие-
нию на последовательность «блоков», в определенном
смысле слабо связанных между собой. При этом пол-
ный перебор переменных по всей задаче удается суще-
ственно снизить, заменяя его -суммой переборов по бло-
кам— правда, с определенным ростом требований к па-
мяти.
Впоследствии локальный подход был распространен
на более широкий класс задач в работах Финкельштей-
на [31], [34]. Этот общий подход и будет изложен в на-
стоящей главе.
§ 1. Предварительные рассмотрения
1.1. Пусть имеется следующая задача дискретного
программирования с сепарабельной целевой функцией.
Задача Z.
Максимизировать
п
(1.1)
при условиях
gi(xj{i, .... Xjip^ = 0, i=l, 2, .... т, (1.2)
xj ^Bj в [Ьц, ..., blqj], (1.3)
Подчеркнем, что никаких ограничений (типа линей-
ности, выпуклости и т. п.) на функции fj и gt здесь не
накладывается.
Введем матрицу инциденций ||/г0-|| уравнений и пере-
менных задачи Z, определив ее следующим образом:
1, если /е= []ц, ...,
О в противном случае.
(1.4).
Алгоритм, предложенный в [34], предназначен для ре-
шения квазиблочных задач, т. е. задач, в которых мно-
жества индексов А4={1, 2, ..., т] и М={1, 2, ..., п}
можно разбить на непересекающиеся подмножества,
§ 1] ПРЕДВАРИТЕЛЬНЫЕ РАССМОТРЕНИЯ 275
обладающие определенными свойствами:
k
M=U^, (1.5)
Г = 1
JV-S^SiaUSzUSsaU ••• U U Sfe_b *U Sft. (1.6)
Здесь Sr — множество переменных, могущих входить
только в уравнения из Ur, г=1, 2, ..., k, a Sr, r+l—
Рис. 13.1.1. Матрица инциденций ЦА//Ц.
множество переменных, могущих входить только в урав-
нения из Ur и I/r+i, r= 1, 2, ..,, k — 1.
Введем обозначение
Si U 5]2,
г-i,, и S, и S,. r+i»
U Sfe,
г = 1,
1 < г < k,
r = k.
Матрица инциденций ||/iij||, соответствующая квазиблоч-
ной задаче (1.1) — (1.3), изображена на рис. 13.1.1 (воз-
можно, после некоторой перестановки строк и столбцов).
Блоки на рис. 13.1.1—это заштрихованные прямоуголь-
ники, причем г-й блок находится на пересечении строк
из Uг и столбцов из Sr (г=1, А). Ненулевые
18*
276
локальный подход
(ГЛ. 13
элементы матрицы инциденций могут находиться только
в одной из заштрихованных клеток (т. е. в одном из
блоков).
Блоки на рис. 13.1.1 слабо связаны между собой. Ина-
че говоря, если зафиксировать все переменные из Sr>r+i
при некотором г (1О-С&— 1), положив
Xj = Xj^Bj, j s= Sr>r+1, (1-7)
и рассмотреть задачу (1.1)—(1.3) при дополнительном
условии (1.7), то задача распадется на две независи-
мые задачи: Zi и Z2. Задача Zi содержит нефиксирован-
ные переменные из множества SiUSi2US2U ... USr_tU
(JSr-i.rUSr и ограничения из множества t/iUi/2U ... \JUr.
Задача Z2 содержит нефиксированные переменные из
множества Sr+iUSr+lj r+2USr+2U ... USh-i, ftUSh и ограни-
чения из множества L/r+tU£/r+2U ... UfA-
Алгоритм, предложенный в [34], эффективен для ква-
зиблочных задач с не слишком большими блоками, т. е.
для таких задач, в которых полный перебор
п
Д’/
проделать невозможно, но можно произвести перебор
k
при объеме одновременно хранимой информации, не пре-
вышающем
max Г/ П + ( П <М].
/ VsSr.r+l /J
1.2. Теперь, следуя работе Финкельштейна [31], пред-
положим, что к условиям (1.1) — (1.3) добавлены еще
следующие «сепарабельные» ограничения, содержащие
все переменные:
п
'->.2......d- О-8)
Задачу, определяемую условиями (1.1)—-(1.3), (1.8),
будем называть задачей Z'.
$ i] Предварительные рассмотрений 277
Введем некоторые дополнительные обозначения. Век-
тор переменных xt, х2, .... хп будем обозначать через X:
X==(xi,x2, хп).
Далее обозначим
<уг-1 = S] U S12U S2U ... US^.r-jUSr-1. (1.9)
Под Xs будем понимать «подвектор» вектора X с компо-
нентами, номера которых определяются множеством S.
Более формально, если /i</2<.. .</<? и S=(/i> • • •>
то
*/2, ...» xlq). (1.10)
Фиксированное значение вектора Xs будем обозначать
через Х8. Символ XS(XR) будет обозначать вектор-функ-
цию с аргументом Хя. Кроме того, условимся писать
XS<=B, (1.11)
если Xj^Bj для всех jeS. Введем еще одно естествен-
ное обозначение:
f(Xs)=^lfJ(xj).' (1.12)
1.3. Поясним идею алгоритма для решения задачи Z'.
Допустим, что множество уравнений М развито на два
подмножества Ui и С/2, и пусть Si— множество пере-
менных, входящих только в уравнения из Ui, S2— мно-
жество переменных, входящих только в уравнения из U2,
Si2 — множество переменных, входящих какв уравне-
ния из Ult так и в уравнения из (/2. Пусть 5i=S1USi2.
Рассмотрим два вектора: вектор Х^ е В и вектор
X|t е В. Предположим, что
х| = х^ для всех / е S12, (1.13)
2 3 sL,W). '-i. 2.........О-H)
/eSi
векторы X|(, k=l, 2 удовлетворяют 1
всем уравнениям из Ult J
/(Х1,)</(ХЦ (1.16)
278
ЛОКАЛЬНЫЙ подход
(ГЛ. 13
Допустим теперь, что для некоторого вектора Xn
имеет место соотношение
xt= xj для всех JsS,. (1-17)
_ I. Если выполнены условия (1.13) — (1.17), то вектор
Xn не может быть оптимальным планом задачи Z'. Если
же допустить, что вместо соотношения (1.16) имеет ме-
сто
КД) = /(4.), (1.16')
то получаем следующее утверждение:
II. Если выполнены условия (1.13) — (1.15), (1.16'),
(1.17) и Xn — оптимальный план задачи Z', тооптималь-
ным планом задачи Z' является и вектор yw, компо-
ненты которого определяются по формуле
xj, если /е5н
Ху, если jsS2.
(1.18)
Алгоритм, излагаемый ниже, является непосредствен-
ным обобщением алгоритма для задачи Z (см. [34]) и
отличается от него лишь структурой правил I и II, по-
зволяющих сузить множество рассматриваемых вариан-
тов. В правилах I, II учтено наличие условий (1.8), до-
бавление которых превращает задачу Z в задачу Z'.
§ 2. Алгоритм
2.1. Перейдем непосредственно к описанию алго-
ритма.
1-й шаг. Рассмотрим следующую задачу, которую
будем называть задачей Zl(Xs,2, бь •••, ба).
Найти вектор Xst = Xai, максимизирующий
f(Xa) (2.1)
и удовлетворяющий условиям
£/(%>•••, %J = 0> (2.2)
Х01еВ, ’ (2.3)
XS12 = XS12eB, (2.4)
/=1’2.....d- M
/ s 01
§«]
АЛГОРИТМ
279
Задачу Z1 (л$12, б’, ...» 6d) решаем *) для всевозможных
Xsu^B и всевозможных б!.......0^**). Если для данных
(Zs12, 0’, ..., 0d)
задача _
Z’(*s,2, 0!...6i)
разрешима и один из ее оптимальных планов равен
Xa,(XS1!, 01‘, .... 0^),
то относим вектор ***)
(XS12, 01, ...» 0d)
в множество AG2****) и запоминаем для него вектор
Xa,(XS12, 0!, .... Orf).
г-й шаг. (l<r<k). На предыдущем шаге построено
множество Nr-i,r> состоящее из некоторых векторов
«'....«?').
причем для каждого вектора
(Ч-,„. ....Ч')
мы помним вектор
^-(Ч-ьг’ Й"1’ •••> б^)’
Рассмотрим следующую задачу, которую будем на-
зывать задачей
г'(Ч.„р «........«)•
*) С помощью полного перебора.
** ) Здесь б}, ...» некоторые фиксированные числа, могу-
щие входить в (2.5) при соблюдении условий (1.3).
** *) То есть вектор, в котором к компонентам вектора Xs^ по-
следовательно приписаны компоненты ..., 0^.
** **) Если множество пусто, то исходная задача неразре-
шима.
280
ЛОКАЛЬНЫЙ ПОДХОД
(ГЛ. 13
Найти вектор f(Xar), максимизирующий
ВД+/(^+/(ЧК,., ег'.............е;-')) (2.6)
при условиях
..... х) = 0, /е0" (2,7)
XsreB, (2.8)
К,.,. ~(2.9)
в;. ‘-Ь2...........<* (2-Ю)
e7>w,., „ (2.П)
,2 «LW-’Г'.......................2.d' (2->2)
Ч-> =Ч-1(Ч-ы’ tf’1,.... 07'). (2.13)
Задачу
Z'tK,.,- «...«)
решаем с помощью полного перебора для всевозможных
*sr,r+1SB
и всевозможных
61...................6d.
Если для данных
(Ч.„,.«:...К)
задача
z'C4.„,. «..s;)
разрешима и один из ее оптимальных планов равен
й........................о;),
то относим вектор
...«.....«)
АЛГОРИТМ
281
§2J
в множество Afr>r+I*) и запоминаем для него вектор
«...........................й)-
После того как задача
....................... И.... й)
решена для всех
сч. «........
вычеркиваем из памяти множество УГ_11Г и векторы
Ч-.СЧ-.г «’......й‘')-
fe-й шаг. На предыдущем шаге построено множе-
ство Nk-\,k> состоящее из некоторых векторов
Сч.,... ......й").
причем для каждого вектора
СЧ.„». .......sf)
мы помним вектор
....’П-
Рассмотрим следующую задачу, которую будем на-
зывать задачей Zk.
Найти вектор X, максимизирующий
НХ) (2.14)
при условиях
•••> %j = o. i^Uk, (2.15)
gm+z(X) = 0, Z=l, 2,..., d, (2.16)
Xsk^B, (2.17)
e‘“‘....бГ)е^_1>ъ (2.18)
/=1.2.......d, (2.19)
4-' = Ч-, v 0'“......................(2-20)
♦) Если множество Лг> r+i пусто, то исходная задача неразре-
шима.
282
НЕКОТОРЫЕ ДРУГИЕ МЕТОДЫ
[ГЛ. 14
Оптимальный план задачи Zk является оптимальным
планом задачи Z', определяемой условиями (1.1) —(1.3),
2.2. Для объема перебора Р и потребного объема памяти Q
имеют место оценки
Здесь Crt — количество значений, которые может принимать функ-
ция 2 (•*/) ПРИ соблюдении условий (1.3).
/еаг
ГЛАВА 14
НЕКОТОРЫЕ ДРУГИЕ МЕТОДЫ
Эта глава носит чисто обзорный характер. В ней при-
водится краткое описание еще двух методов комбинатор-
ного типа: метода Фора и Мальгранжа для решения це-
лочисленных задач линейного программирования и ме-
тода последовательных расчетов В. П. Черенина для
решения одного класса комбинаторных задач.
§ 1. Метод Фора и Мальгранжа
1.1. В 1963 г. в заметке Фора и Мальгранжа [74] был
анонсирован (на численном примере) метод решения за-
дач линейного программирования с булевыми перемен-
ными. Свой подход они назвали «булевым методом». За-
тем Ле Гарф и Мальгранж [76а] распространили булев
метод на общую целочисленную задачу линейного про-
граммирования. Впоследствии Фор и Мальгранж [73]
§ n
МЕТОД ФОРА И МАЛЬГРАНЖА
283
указали еще один метод решения целочисленных задач
линейного программирования, близкий по общей схеме к
методу Ле Гарфа — Мальгранжа, но отличающийся от
него некоторыми дополнительными чертами. Сразу же
следует отметить, что все эти методы являются по су-
ществу эвристическими.
К сожалению, стиль изложения в цитированных
статьях не позволяет дать здесь полноценное описание
соответствующих вычислительных процессов во всех их
деталях. Ограничимся поэтому лишь характеристикой
идей, лежащих в основе этих методов.
1.2. Остановимся прежде всего на первоначальном
«булевом методе» Фора и Мальгранжа [74]. Рассмотрим
задачу линейного программирования с булевыми пере-
менными (все коэффициенты Cj — целые числа).
Максимизировать
(1.1)
при условиях
^auXt^bi, i= 1, 2, ..tn, (1.2)
/=* ( °’
Ху = | । /= 1, 2, .... и. (1.3)
Все коэффициенты Cj, не умаляя общности, можно счи*
тать неотрицательными. Выше мы уже видели, что этого
всегда можно добиться, производя для отрицательных Cj
замену переменных x'f = 1 — xf (см., например, § 1 гл. 11).
Процесс состоит из двух этапов: поиска исходного
плана и его улучшения. На первом этапе ищется произ-
вольный план, удовлетворяющий (1.2) — (1.3). Для этого
все коэффициенты а», также превращаются в неотрица-
тельные: если некоторое Д{3<0, то вместо X; в t-e ограни»
чение вводится переменная x'f= 1 — xf. Далее коэффи-
циенты целевой функции с, располагаются в порядке
убывания их величин. Рассматривается максимальный
коэффициент с/,, и переменной X/, придается значение 1
(или, что равносильно, переменной x'h придается зна»
чение 0); после этого xJt исключается из ограничений
284
НЕКОТОРЫЕ ДРУГИЕ МЕТОДЫ
[ГЛ. 14
(1.2), а правые их части bi заменяются на bi — aih.
Аналогичная операция проделывается для следующего
по величине Cj2 и т. д. Если на й-м шаге условия (1.2)
нарушаются как при xft=l, так и при х^ = 1, то пересма-
тривается предыдущий выбор. В конечном счете полу-
чаем некоторый план XQ (либо устанавливаем неразре-
шимость задачи).
На втором этапе значение f(X) пытаются улучшить,
присоединяя к исходным ограничениям задачи новое
ограничение
(1.4)
Таким образом, поиск улучшенного плана исходной за-
дачи сводится к поиску произвольного плана, удовле-
творяющего ограничениям (1.2) — (1.4). Для этого «про-
слеживают» ранее сделанные выборы Xj—l, начиная с
последнего, и пытаются найти улучшенный план, после-
довательно полагая х'} = 1. Если добиться улучшения пла-
на Х° не удается, то он является оптимальным. Если же
найден улучшенный план X1, то к исходным ограниче-
ниям добавляется условие
ЦХ)>/(Г)+1 (1.5)
и снова повторяется процесс улучшения.
1.3. Намеченное в статье Фора и Мальгранжа [74] об-
общение «булевого метода» на общую задачу целочис-
ленного линейного программирования было затем более
подробно и более формально описано Ле Гарфом и
Мальгранжем [76а]. Рассматривается задача максимиза-
ции (1.1) при условиях (1.2) и
Ху—целые, /=1, 2, ..., п. (1.3')
Кроме того, считается, что переменные Ху ограничены
сверху:
0<X;<dy, /=1, 2, ..., п, (1.6)
где dj — целые числа. Они могут быть заданы заранее,
либо определены из экономического смысла задачи. Как
всегда, их можно и вычислить, решив п задач линейного
программирования: максимизировать Ху при условиях
(1.2), а затем взяв в качестве dj целую часть от тахху.
§ 1] МЕТОД ФОРА И МАЛЬГРАНЖА 285
Для каждого / легко найти такое £ = £Q‘), при кото-
ром dj 2fe + + ... + 1 = 2fe+1 — 1. Тем самым каждую
переменную Xj можно представить в виде двоичного раз-
ложения
x; = 24ft + 2ft‘V1+ ... +U (1.7)
где k = k(j), a могут принимать значения 0 или 1. Та-
ким образом, ^=1 будет означать наличие «веса» 21 в
значении х;-, а ^'=1—^=1— его отсутствие.
Общая схема метода не отличается от схемы описан-
ного выше «булевого метода»: на первом этапе ищут
исходный план, а на втором его пытаются улучшить.
Не умаляя общности, считаем, что: 1) С/^0, /=1,
2, ... ,п; 2) min max ati > 0.
/ i
Порядок придания переменным положительных зна-
чений, как и в «булевом методе», определяется их
«вкладом» в целевую функцию. Будем пытаться припи-
сать переменным (взятым в этом порядке) степени двой-
ки, начиная с наибольшей, до тех пор, пока это не будет
нарушать условий (1.2). Это будет приводить к пересчету
правых частей и к соответствующему*уменьшению верх-
них границ переменных df, процесс нахождения началь-
ного плана закончится, когда все верхние границы ста-
нут нулями. Способ улучшения плана уже был охаракте-
ризован выше.
Говоря более формально, на первом этапе следует вы-
числить произведения Cjdj. Затем переменной х/р отве-
чающей максимальному произведению, придается значе-
ние, равное наибольшей возможной для него степени
двойки, т. е. 2\ где k = Иными словами, берется
1, lk-i= ••• =li = 0. Пусть это значение X/, = 2* удо-
влетворяет «наиболее ограничительному» для соотно-
шению, вытекающему из (1.2), т. е. неравенству
а/./Л, audl> (1.8)
aiJ < 0
где i\ определяется из условия
286
НЕКОТОРЫЕ ДРУГИЕ МЕТОДЫ
[ГЛ. [4
Тогда верхняя граница d)x заменяется на
d' = d, -2\ (L9)
Эту операцию естественно назвать «выбором», а соот-
ветствующее число k = k(ji) — «уровнем выбора». Пра-
вые части ограничений пересчитываются: для всех i по-
лагают
b'i = bt - al{2k. (1.10)
Если же указанное значение X/, = 2s не удовлетво-
ряет условию (1.8), то d/, заменяется согласно (1.9)
(поскольку значение 2* невозможно), а преобразование
правых частей (1.10) на этот раз вообще не делается.
После этого производится переход к очередной перемен-
ной Xj2 определяемой следующим по величине произве-
дением Cjdj. Последовательно проходя таким образом по
всем переменным и по всем дальнейшим уровням вы-
бора, мы придем к тому моменту, когда все пересчитан-
ные, согласно (1.9), верхние границы станут нулями. Это
говорит о том, что исходный план получен.
Второй этап — улучшение полученного плана Х°, как
и в булевом методе, проводится путем присоединения к
исходным ограничениям дополнительного требования
типа (1.5). Расширив таким путем систему ограничений,
пытаются удовлетворить ей, возвращаясь к последнему
уровню выбора q и полагая g' = 1 - j = 1 вместо имев-
шего место ранее
План X*, улучшить который окажется невозможно, и
будет оптимальным. В случае неединственности опти-
мального плана метод дает возможность получить все
эквивалентные планы. Это делается путем присоедине-
ния к окончательной таблице ограничения
f(X)>f(X*)
и повторения второго этапа.
Описанный метод имеет определенные привлекатель-
ные черты. В нем не возникает проблемы борьбы с выро-
жденностью или ошибками округления и т. п. Матрица
задач и в ходе вычислений не пересчитывается.
Ле Гарф и Мальгранж [76а] сообщают также о пер-
воначальном вычислительном опыте с этим методом. На-
МЕТОД ПОСЛЕДОВАТЕЛЬНЫХ РАСЧЕТОВ
287
§ 2]
пример, задача размера 14X12 была решена за 20 сек.;
время по методу Гомори для той же задачи составило
около 30 сек. (тип машины не указан). Однако эффек-
тивность метода быстро убывает с ростом числа перемен-
ных и с увеличением их верхних границ dj. Так, одну за-
дачу размера 10X20 не удалось решить за приемлемое
время.
1.4. В последующей работе Фора и Мальгранжа [73]
предлагается еще один метод решения общей задачи
целочисленного линейного программирования. Построен-
ный по описывавшейся выше двухэтапной схеме, он
имеет ряд особенностей, сближающих его, например, с
методом Лэнд и Дойг (см. § 2 гл. . 10). Главная из этих
особенностей заключается в том, что в этом методе ис-
пользуется решение задачи линейного программирования
(«S’, С), отвечающей исходной задаче (1.1), (1.2), (1.3').
Основным приемом здесь также является обращение
верхних границ переменных в нуль (или сближение верх-
них и нижних границ). При этом для пересчета границ
переменных используется информация, заключенная в
полной симплексной таблице (см. § 5 гл. 4) задачи
(^, С).
Сведения о машинных экспериментах с этим методом
отсутствуют.
§ 2. Метод последовательных расчетов
Наряду с развитием общих схем дискретного про-
граммирования весьма важным является создание мето-
дов решения для конкретных классов задач. Одним из
наиболее оригинальных и интересных шагов в этом
направлении являются работы Черенина [37], [38], в ко-
торых развивается «метод последовательных расчетов»
для нахождения экстремума функции, определенной на
всех подмножествах данного конечного множества. Ин-
тересно отметить, что первоначальная разработка этого
метода и его применение к одному типу прикладных за-
дач (составление плана формирования поездов) отно-
сится еще к 1948 г.
2.1. Опишем формально общую постановку задачи.
Дано некоторое конечное множество Q. Его можно
288 НЕКОТОРЫЕ ДРУГИЕ МЕТОДЫ [ГЛ. 14
мыслить себе, например, как множество номеров некото-
рых параметров оптимизации, могущих (для определен-
ности) принимать лишь два возможных значения: О
или 1. Каждое подмножество шей естественно интерпре-
тировать как множество тех параметров, которые приня-
ли одно из этих значений (скажем, 1), в то время как
параметры из Й\со принимают другое возможное зна-
чение (т. е. 0).
Для любого подмножества coczQ задана функция
f(w), характеризующая «качество» решения, которое
определяется множеством <о. Требуется найти множество
<b*czQ, на котором достигается глобальный максимум f,
т. е. такое со*, что /(©*)>/(©) для всех соей.
Если*) |й|=п, то число всех подмножеств множе-
ства й (включая пустое множество 0 и само й) со-
ставляет 2п. Поэтому разыскание максимума f(co) пу-
тем прямого перебора по всем со при сколько-нибудь
больших п практически неосуществимо. Полный пере-
бор вариантов здесь заменяется направленным частич-
ным перебором, позволяющим отбрасывать большие
группы вариантов, заведомо не дающих оптимума.
В методе последовательных расчетов предполагается,
что функция f удовлетворяет следующему условию
(в определенном смысле аналогичному условию выпук-
лости). Для любых (Bi, <о2сей
f (®1) + / (©2) > / (<о1 и ®2) + f (©! Л со2). (2.1)
2.2. Теоретические основы метода последовательных
расчетов даются следующей теоремой.
Теорема 2.1. Пусть функция f удовлетворяет усло-
вию (2.1), ю* — точка ее глобального максимума. Тогда
для любой конечной последовательности {©<}, содержа-
щей и* и такой, что кца:(д1+1, функция f монотонно воз-
растает до со* и монотонно убывает после и*.
Устанавливаемая этой теоремой своеобразная «уни-
модальность» функции f позволяет отбраковывать сразу
целые массивы вариантов. Действительно, пусть для не-
которых ©1 и ш2 таких, что о^согСЙ, найдены значения
*) Напоминаем, что через |Я| обозначается число элементов
данного конечного множества Я.
’ § 2] МЕТОД ПОСЛЕДОВАТЕЛЬНЫХ РАСЧЕТОВ 289
/(coi) и f(w2). Тогда при f(ан) <f(®2) из рассмотрения
можно исключить все 2|<й11 вариантов юсю,. Если же
f (©])>/ (®2)> то можно отбросить все 2п-|а>21 вариантов
(£> Ю(02-
Пусть, например, взяты некоторые ©i и о2, для кото-
рых |он|=0, |ш2| = 1 и f(©i)>/(и2). Тогда отбрасывает-
ся сразу 2п~1 вариантов (т. е. половина их общего чис-
ла). Это варианты, отвечающие ненулевому значению
параметра оптимизации с номером из со2.
2.3. Вычисления начинаются с пустого множества
и = 0, для которого |(о|=0 (или же с ® = Й; можно ве-
сти их и одновременно с обоих концов). После этого про-
сматриваются все п вариантов с |ш| = 1 и из них запоми-
наются только те, у которых f(®)>f(0). Далее из
оставшихся вариантов комбинируются всевозможные
варианты с |<о | =2 и запоминаются лишь те из них, у ко-
торых /(©) не меньше, чем у каждого из двух состав-
ляющих вариантов и т. д. Этот процесс быстро заканчи-
вается из-за невозможности дальнейшего комбинирова-
ния вариантов — все остальные варианты оказываются
отсеянными. Вариант с максимальный /(со) из всех рас-
смотренных и будет оптимальным.
Обычно порядок объема перебора в этом процессе не
превышает п3, что существенно ниже объема полного
перебора 2".
2.4. В работах Черенина [37], [38] и Черенина и Хача-
турова [39], [40] приведены формулировки ряда приклад-
ных задач, которые могут успешно решаться методом
последовательных расчетов. Наиболее важной из этих
задач представляется модель размещения предприятий с
учетом капиталовложений на их строительство, а также
транспортных затрат. Некоторые результаты машинных
экспериментов с задачами средних размеров охарактери-
зованы в [37], [40], [35а].
19 А. А. Корбут, Ю. Ю. Финкельштейн
ЧАСТЬ iv
ПРИБЛИЖЕННЫЕ МЕТОДЫ
Многократно отмечавшиеся выше трудности численной реализа-
ции общих схем дискретного программирования делают весьма ак-
туальным построение различного рода приближенных методов.
В особенности важно это для прикладных задач, часто имеющих
большие размеры при специфической структуре матрицы ограниче-
ний, что делает применение к ним общих методов неэкономным, а
нередко и практически неосуществимым. Во многих подобных ситуа-
циях, особенно когда решение задач носит текущий, оперативный
характер, гораздо более ценным является быстрое и гарантирован-
ное получение хотя бы приближенного решения, чем получение точ-
ного решения через значительное время и притом без полной уве-
ренности в успехе. Кроме того, усилия на доводку приближенного
решения до точного оптимума нередко оказываются неоправданны-
ми из-за недостаточной надежности исходной информации.
Приближенные методы дискретного программирования могут
конструироваться двумя принципиально разными путями. Первый
из них связан с использованием идеи случайного поиска; такие ме-
тоды описываются в гл. 15. В наиболее чистом виде идея случай-
ного поиска воплощена в методе, предложенном Пятецким-Шапиро,
Волконским, Левиной и Поманским [25]. Этот метод приведен в § 1.
Идея сочетания случайного поиска с локальной оптимизацией была
выдвинута Рейтером и Шерманом [119}; их работа излагается в § 2.
Другой путь создания приближенных методов, напротив, яв-
ляется чисто детерминированным и заключается в разработке эври-
стических приемов, максимально использующих специфику задачи.
Некоторые такие приемы для задач с фиксированными доплатами
описываются в гл. 16.
ГЛАВА 15
МЕТОДЫ СЛУЧАЙНОГО ПОИСКА
В этой главе излагаются приближенные методы реше-
ния целочисленных задач линейного программирования.
Первый из них основан целиком на использовании слу-
чайного поиска, второй сочетает случайный поиск исход-
ных планов с последующей их локальной оптимизацией.
По самому своему характеру эти методы являются чисто
машинными.
Hi
СЛУЧАЙНЫЙ поиск
291
§ 1. Случайный поиск
1.1. В статье Пятецкого-Шапиро, Волконского, Леви-
ной и Поманского [25] был предложен итеративный ме-
тод для решения задачи линейного программирования с
булевыми переменными. Как отмечают авторы, этот ме-
тод навеян идеями теории игр автоматов [2].
Задача ставится обычным образом:
Максимизировать
2 CjXj (1,1)
/=i
при условиях
S atjXj^bi, /=1, 2, ..., т, (1.2)
( о.
= | I /= 1, 2, ..., п. (1.3)
Все коэффициенты a{j, bit с} предполагаются неотрица-
тельными.
1.2. Итеративный процесс основан на замене задачи
оптимизации решением системы неравенств. Он строится
следующим образом. Из некоторых соображений фик-
сируется число &о>О и решается система из т+1 не-
равенств с п булевыми переменными. Эта система со-
стоит из ограничений (1.2), (1.3) и дополнительного
ограничения
п
(1.4)
Система (1.2) — (1.4) решается методом итераций, кото-
рый будет описан ниже. Найдя ее решение, увеличиваем
Ьо и, решая новую аналогичную систему, пытаемся найти
улучшенный план. Процесс оканчивается, когда решение
системы вида (1.2) — (1.4) за-фиксированное число ите-
раций получить уже не удается.
Опишем метод итераций для решения системы (1.2)—
(1.4). Начальный набор Х° = (хр х%..х°) выбирается
19*
292
МЕТОДЫ СЛУЧАЙНОГО ПОИСКА
[ГЛ. 15
произвольным образом. Пусть на fe-м шаге процесса по-
лучен наборXk = (х*, х$, х*). Вычисляем величины
До = max
Дг = max
п
Ьо ~ 2 С1Х?1
/-1
(1.5)
Z= 1, 2, ..tn.
После этого, пользуясь случайным выбором, независимо
друг от друга изменяем компоненты вектора Xh с одина-
ковой вероятностью р, равной
p = minlT, max Дг I, (1.6)
I z-o, i...m I
где 0<т<1. Это приводит к новому вектору Xft+1, для
которого проводится следующая итерация. Когда все Д<
обращаются в 0, процесс окончен, решение системы най-
дено.
1.3. Указанный метод можно интерпретировать как
случайное блуждание, отвечающее некоторой марков-
ской цепи. Состояниями этой цепи являются всевозмож-
ные наборы X— (хь х2> • • •»хп); решениям системы от-
вечают поглощающие состояния. Но, как известно, ве-
роятность попадания из любого начального состояния
конечной неприводимой марковской цепи в поглощаю-
щее состояние за конечное число шагов равна единице.
Тем самым доказана теоретическая сходимость исполь-
зованного метода итераций.
1.4. При численном экспериментировании с описан-
ным методом было сосчитано, в частности, несколько
примеров, в которых приближенные решения можно
сравнить с точными. Так, в примере размером 3X17 при
точном значении максимума, равном 14,91, значение
Ьо= 13,88 было достигнуто за 14 итераций, значение &о=
= 14,76 — за 166 итераций. В примере 2X30 при точном
значении максимума, равном 20, значение &о=16 было
достигнуто за 253 итерации, значение 6о=19 — за 2317
§ 2] СЛУЧАЙНЫЙ ПОИСК С ЛОКАЛЬНОЙ ОПТИМИЗАЦИЕЙ 293
итераций (тип машины и машинное время не указаны).
В этих расчетах величина % в (1.6) бралась равной 1/2.
1.5. В работе Пятецкого-Шапиро, Волконского, Каза-
кевича и Левиной [24] намечено одно усовершенствование
описанного метода, позволяющее расширить возмож-
ности его применения на реальные прикладные задачи
больших размеров. Оно основано на следующих простых
соображениях. При решении реальных задач целесооб-
разно искать не один определенный план, а серию близ-
ких к оптимальному планов, один из которых будет вы-
бран при окончательном анализе задачи. Далее большую
задачу можно разбить (более или менее произвольным
образом) на несколько подзадач и для каждой из них
найти серии близких к оптимуму планов. Затем рассма-
триваются всевозможные комбинации полученных пла-
нов и с помощью полного перебора среди них находятся
наилучшие для задачи в целом. Кроме того, для упроще-
ния решения системы неравенств (1.2) — (1.4) целесообраз-
но иногда прежде всего искать решения «огрубленной»
системы, т. е. требовать выполнения (1.2), скажем, с точ-
ностью <7 %, а (1.4) —с точностью г*°/о. Дальнейший ана-
лиз проводится уже над сериями «огрубленных» планов.
§ 2. Случайный поиск с локальной оптимизацией
2.1. В этом параграфе описывается подход к задачам
дискретного программирования, основанный на сочета-
нии случайного поиска с локальной оптимизацией. Идея
этого подхода весьма проста. Производится случайный
выбор исходного плана. Далее некоторым естественным
образом определяется «окрестность» этого плана и на-
ходится «локальный» оптимум целевой функции на точ-
ках окрестности. Поиск этого оптимума чаще всего ве-
дется прямым перебором, ибо окрестность по самому
своему построению состоит из относительно небольшого
числа точек. Затем производится случайный выбор но-
вого плана и снова находится локальный оптимум в окре-
стности этого плана. Процесс этот повторяется много-
кратно, и из полученных локальных оптимумов выби-
рается наилучший в смысле значения целевой функции.
Он и принимается за приближенное решение задачи.
294
МЕТОДЫ СЛУЧАЙНОГО ПОИСКА
[ГЛ. 15
Подобный подход к дискретным задачам был пред-
ложен в статье Рейтера и Шермана [119]; наше изложе-
ние будет в основном следовать этой работе.
Перейдем теперь к формальному описанию этого под-
хода.
2.2. Рассматривается задача максимизации функции
f(X) (2.1)
на конечном множестве G. Предполагается, что при
любых X^G функция (2.1) принимает целочисленные
значения, которые мы будем обозначать через z,, i=
= 1,2;..., г.
Пусть на G определено отображение X -> Gx, сопо-
ставляющее каждому XeG его окрестность Gx. Это
отображение удовлетворяет двум требованиям:
1°. Для каждого A’sG имеется единственное Gx.
2°. X е Gx при всех X е G.
Тем самым на X определено семейство окрестностей
® = {GX|A<= G}. (2.2)
Предположим далее, что на G задан оператор М, удо-
влетворяющий следующим условиям:
3°. M(X)e=Gx.
4°. f(M(X))>f(X).
5°. Если f(M(X)) = f(X), то М(Х)~Х.
6°. Если М(Х) = Х, то f(X)>f(Y) для всех Y е= Gx.
Очевидно, что оператор М сопоставляет каждой точке
из окрестности другую точку, в которой значение целе-
вой функции не меньше.
Пару (®, М) естественно назвать локально максими-
зационной структурой окрестностей на множестве G.
Введем еще несколько простых понятий. Точка XeG
называется локально оптимальной относительно струк-
туры (®, М), если М(Х)=Х. Точка X*eG называется
оптимальной, если f(X*)>f(X) при любом XeG. Через
M.k будем обозначать /г-ю степень оператора АГ, т. е.
M*(X)=M(Mh-'(X))t k=2, 3,...
Из приведенных определений и из конечности множе-
ства G вытекает следующая простая теорема.
§ 2] СЛУЧАЙНЫЙ ПОИСК С ЛОКАЛЬНОЙ ОПТИМИЗАЦИЕЙ 295
Теорема 2.1. Для любой структуры (®, М) на G:
1) в G существуют локально оптимальные точки; лю-
бая оптимальная точка является и локально оптималь-
ной;
2) для любого X^G существует такое п = п(Х), что
Мп^(Х)=М^(Х).
Рассмотрим произвольную точку X^G. Точку X назо-
вем доминантой точки X, если существует такое и, что
для всех целых
ЛГ+Р {%) = £. (2.3)
Из утверждения 2) теоремы 2.1 сразу следует, что любая
точка X^G имеет единственную доминанту. Кроме того,
легко убедиться в справедливости следующего факта.
Теорема 2.2. Пусть (®, Л1) и (®', ЛГ) — две макси-
мизационные структуры окрестностей на G, 2 и 2' —
соответствующие им множества локально оптимальных
точек. Тогда из ® = ®' вытекает 2 = 2'.
Иначе говоря, множество локально оптимальных то-
чек определяется независимо от М.
Для простоты изложения предположим, что различ-
ные локально оптимальные точки дают различные зна-
чения целевой функции. Определим множества
£z = {X|Xe=G, = /=1, 2, ..., г. (2.4)
То есть, 2Z состоит из всех точек, доминанты которых
приводят к значению целевой функции, равному zz.
2.3. Коротко упомянем и о вероятностной стороне во-
проса. Выбор точек X^G производится в соответствии с
некоторым распределением вероятностей Ф(Х). По по-
воду этого распределения ограничимся здесь самыми об-
щими замечаниями, ибо его конкретизация должна про-
водиться с учетом особенностей рассматриваемой задачи.
Отметим лишь, что обычно (особенно при полном отсут-
ствии априорной информации о возможном местополо-
жении искомого максимума) в качестве Ф уместно брать
равномерное распределение. В других случаях распреде-
ление Ф можно делать условным, зависящим от исходов
предыдущих испытаний.
Распределение Ф дает возможность получить еще
одну вероятностную характеристику.
296
МЕТОДЫ СЛУЧАЙНОГО ПОИСКА
[ГЛ. 15
Именно, положим
ь= 3 Ф(Х), *=1,2, .... г. (2.5)
Вспоминая определение (2.4), легко дать интерпре-
тацию lit это есть вероятность того, что распределение Ф
даст нам такую точку из G, доминанта которой приведет
к значению целевой функции z$.
В частности, если в качестве Ф взято равномерное
распределение на G, то
е _ I 1 :_ 19 Г
li | Q | , I — 1, 2, .... Г.
Отметим, что для любого точного алгоритма струк-
тура (®, М) определяет единственный локальный макси-
мум, который и является искомым оптимумом. В этом
случае распределение (2.5) припишет точке оптимума
вес = 1, а все остальные будут равны нулю.
2.4. Описанная конструкция представляет собой аб-
страктное оформление высказанной в начале этого пара-
графа идеи. Разумеется, при доведении этой схемы до
вычислительного алгоритма необходима детальная ее
конкретизация, учитывающая особенности задачи.
Приведенное выше определение окрестности данной
точки (данного плана) является весьма общим. На прак-
тике, разумеется, желательно, чтобы окрестности были
легко обозримыми, т. е. содержали сравнительно неболь-
шое число точек.
Приведем пример. Если X представляет собой пере-
становку (й, i2,..., in) чисел (1,2,..., п), то в качестве
окрестности можно взять, например,
^Х = {(Й> *2> •••> йг)> (*2> Й> *3> •••> in).(*2> *3> •••> in> й)}
(здесь й последовательно занимает первое, второе,...
..., n-е места) или же
G х = {(Й> *2» • • • > *п), (Й> Й> *2’ *4» • • • > *п)> • • •
• • • > (*3> *4» • • • > in’ Й’ *2)}
(здесь аналогично перемещается пара й, «г).
§ 2] СЛУЧАЙНЫЙ ПОИСК С ЛОКАЛЬНОЙ ОПТИМИЗАЦИЕЙ 297
Различие между описанным подходом и методом слу-
чайного поиска в его чистом виде удобно пояснить также
в терминах окрестностей: в методе случайного поиска
окрестность каждой испытываемой* точки состоит только
из самой этой точки (тем самым каждая точка является
локально оптимальной).
Оператор М, определяемый своими свойствами 3°—6°
представляет собой абстрактное описание алгоритма ло-
кальной оптимизации функции (2.1) на окрестности. Gx.
Мы уже отмечали, что чаще всего этот алгоритм сво-
дится попросту к рационально организованному полному
перебору точек окрестности.
Общность описанной конструкции предоставляет так-
же широкие возможности для разнообразных ее модифи-
каций. Так, можно ввести в рассмотрение «стоимость»
(или иную аналогичную характеристику) объема вычис-
лений с тем, чтобы не добиваться малозаметных улучше-
ний плана слишком дорогой «ценой». Наряду с детер-
минированными алгоритмами локальной оптимизации М
в ряде случаев может оказаться целесообразным рас-
смотрение некоторых рандомизированных процессов по-
иска максимума и т. п.
В качестве исходной здесь рассматривалась задача
максимизации; перенесение схемы на случай задачи ми-
нимизации является совершенно, очевидным.
2.5. В качестве иллюстрации опишем некоторые пред-
ложенные Рейтером и Шерманом [119] алгоритмы для
решения задачи о коммивояжере. Задача эта неодно-
кратно упоминалась выше (см., например, § 3 гл. 10,
§ 2 гл. 12); поэтому математическая формулировка здесь
не воспроизводится. Отметим лишь, что в качестве G
здесь будет фигурировать множество всех перестановок
Х = (6, ^2, • • •, in) чисел (1, 2,..., п); функция f(X) пред-
ставляет собой. суммарную длину пути, проходимого
при перестановке X, и задача заключается в ее миними-
зации.
Алгоритм I. Случайным образом выбирается план
Х = (и, ^2»...»in). План X' получается из него переменой
мест i\ и i2. Вычисляются f(X') и f(X); если f(X')<
<f(X), то X заменяется на X', a f(X) — на f(X'). В полу-
ченном плане меняются местами второй и третий эле-
298
МЕТОДЫ СЛУЧАЙНОГО ПОИСКА
[ГЛ. 15
менты, после чего производится сравнение значений це-
левой функции для X' и для новой перестановки X".
Найденный в результате п последовательных транспози-
ций путьХ и его длина f(X) запоминаются. Производится
случайный выбор нового исходного плана, и весь про-
цесс повторяется.
Алгоритм II аналогичен алгоритму I, но на ка-
ждом этапе производится сравнение не двух планов, а
шести. На первом этапе эти шесть планов получаются из
исходного путем всевозможных перестановок тройки
И, й, *з. Далее для выбранного плана производятся все-
возможные перестановки тройки 12, i3y i4i затем тройки
/з, *4, 4 И T. Д.
Алгоритм III. Случайным образом выбирается план
^2, Путем перестановки q и /2 из него
получается план X2, Из плана X2 путем перестановки
i2 и i3 получается план X3. Из плана X3 путем переста-
новки 13 и и получается план X4 и т. д. Вычисляются и
сравниваются /(X1), f (X2),..., f (Хп). План, на котором
f минимальна, служит отправной точкой для новой се-
рии сравнений; при этом начинают уже со второго члена
соответствующей перестановки. Всего сравнивается п на-
боров по (п — 1) плану в каждом.-
Алгоритм IV (q) представляет собой по существу
серию алгоритмов, зависящих от натурального параметра
q=\, 2, п—1. Алгоритм IV (1) совпадает с алго-
ритмом III. Когда с его помощью найден локально ми-
нимальный план X, берутся два смежных элемента этого
плана h, i2 и перемещаются вдоль него. При этом ищет-
ся их положение в плане и их ориентация (г’ь /*2 или Z2,1’1),
дающие минимум f. Эта процедура и составляет алго-
ритм IV (2). В локально минимальном плане, получен-
ном с его помощью, производятся всевозможные пере-
мещения троек индексов и т. д. Алгоритм IV(?) начинает
работу над локально минимальным планом, полученным
с помощью алгоритма IV(q—1).
2.6. С описанными алгоритмами были проведены
большие серии численных экспериментов на машине
IBM-1620. Давая их общую оценку, можно прежде всего
сказать, что особенно перспективными представляются
алгоритмы IV (?). Этого и следовало ожидать, ибо алго*
§ 2] СЛУЧАЙНЫЙ ПОИСК С ЛОКАЛЬНОЙ ОПТИМИЗАЦИЕЙ 299
ритмы IV(<7) работают с довольно большими окрестно-
стями (так, в алгоритме IV(1) количество точек в окре-
стности составляет п2 — Зп+1, а в алгоритме IV(2) оно
равно Зп2+Зп+1).
Эксперименты велись с сериями задач различных раз-
меров; большинство этих задач было взято из имеющей-
ся литературы, и для них уже были известны оптималь-
ные (или «подозревавшиеся» на оптимальность) планы.
Далее будет приведена некоторая выборка из результа-
тов экспериментов.
Для серии задач с 9 городами были получены планы
не худшие, чем известные до сих пор. В одной из этих
задач оптимальный план при помощи алгоритма III был
получен в 48% всех просчетов; для той же задачи алго-
ритм IV (2) привел к оптимуму в 91% всех просчетов, а
алгоритмы IV (3) и IV (4) обнаружили оптимальный план
в 100% всех просчетов. Для наиболее «трудной» задачи
этой серии алгоритм III дал оптимум лишь в 1,3% всех
просчетов, алгоритм IV(2)—в 25%, алгоритм IV(3)—
в 44% и алгоритм IV(4) — в 59% всех просчетов. Число
просчетов по каждой из 10 решавшихся задач колеба-
лось от 65 до 285.
В задаче с 15 городами был найден лучший план, чем
известный до сих пор. При помощи алгоритма III он был
получен в 11% всех просчетов. Наилучшие результаты
здесь дал алгоритм IV(5): он выявил лучший план в
35,4% всех просчетов и следующий за ним — в 59,6%
всех просчетов. Максимальное среднее время одного про-
счета (для алгоритма IV (7)) составило 20 сек.
Для задачи с 25 городами найденный Хелдом и Кар-
пом [94] оптимальный план был. получен при помощи
алгоритма III в 1,7% всех просчетов, при помощи алго-
ритма IV(5) — в 28% всех просчетов и при помощи алго-
ритма IV(12) — в 44% всех просчетов. Среднее время
одного просчета для последнего алгоритма равнялось
1 мин. 45 сек.
В задаче с 33 городами наилучшее решение было най-
дено алгоритмом IV(5) в 23% просчетов, алгоритмом
IV (15) — в 33% просчетов.
К рассматривавшейся ранее многими авторами зада-
че с 42 городами применялись все четыре алгоритма.
300
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
[ГЛ. 16
Алгоритм I дал лучший результат 1204, алгоритм II —
605, алгоритм III — 204; точное значение оптимума 167,5
было найдено только алгоритмами серии IV (алгорит-
мом IV(3) — в 3,5% просчетов, алгоритмом IV(10) —
в 22% и алгоритмом IV(15)—в 28,6% просчетов).
Задача с 57 городами находилась уже почти на пре-
деле возможностей имевшейся машины. Наилучший из
найденных здесь результатов был найден посредством
алгоритма IV(22) в 4% всех просчетов (среднее время
одного просчета было около 21 мин.). Алгоритм IV(28)
оказался для этой задачи заметно хуже.
Изложенные здесь результаты численных эксперимен-
тов говорят о том, что описанный подход является вполне
приемлемым.
ГЛАВА 16
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
В этой главе излагаются некоторые приближенные
методы для решения одного частного класса дискрет-
ных задач (задачи с фиксированными доплатами). Спе-
цифика этого класса задач позволяет разработать ряд
приемов, приводящих к вполне приемлемым на прак-
тике планам. В § 1 эти приемы излагаются применитель-
но к транспортной задаче с фиксированными доплатами.
В § 2 указаны возможности их распространения на бо-
лее общие случаи.
§ 1. Приближенные методы для транспортной
задачи с фиксированными доплатами
1.1. Напомним, что транспортная задача с фиксиро-
ванными доплатами, называемая также неоднородной
транспортной задачей (см. § 5 гл. 2), заключается в ми-
нимизации
т п
3 (1.1)
*=1 /=м
§ I) транспорт, задача с фиксированными Доплатами зо1
при обычных условиях транспортного типа
i = l, 2, т; J=l, 2, п, (1.2)
п 2 Хи = а{, i= 1, 2, .. (1.3)
II и 7 sp^7 /=1. 2, .. п. (1.4)
Фигурирующие в (1.1) функции Сц(хц) равны
[ 0, Xt j = 0,
ciM=\ с х + d х >0 (L5)
I CijXij-i- atj, x(j^-\).
Здесь все сц, d,,>0. Разумеется, если все dy=0, то зада-
ча (1.1) — (1.4) превращается в обычную транспортную.
1.2. Обсудим прежде всего некоторые прямолиней-
ные подходы к этой задаче, подсказываемые «транспорт-
ным» характером ее ограничений. Легко установить
следующие простые теоремы, впервые доказанные Дан-
цигом еще в 1954 г. в неопубликованном отчете корпора-
ции РЭНД (см. [106]).
Теорема 1.1. Если в транспортной задаче с фикси-
рованными доплатами все da=d и соответствующая ей
обычная транспортная задача (без доплат) с матрицей
С = IIс,jII не вырождена, то оптимальные планы для задач
с доплатами и без доплат совпадают.
Действительно, оптимальные значения целевых функ-
ций в этом случае будут отличаться на (т+п— l)d, и
уменьшить это число невозможно.
Теорема 2.1. Если в задаче с доплатами йц раз-
личны, то ее оптимальный план следует искать среди
опорных планов соответствующей ей транспортной за-
дачи (без доплат) с матрицей С.
Это утверждение станет особенно ясным, если учесть,
что целевая функция (1.1), будучи суммой вогнутых
функций (рис. 16.1.1,а), сама является вогнутой, и сле-
довательно, ее экстремумы будут достигаться в крайних
точках многогранного выпуклого множества (1.2) — (1.4)
(см. [92]). Но поскольку речь идет о минимизации во-
гнутой функции, любой стандартный метод (например,
16g ДёФё1>миййройаннЫй Mfetoibi tM. IB
измененный соответствующим образом метод Поспелова*
тельного улучшения плана) даст нам, вообще говоря,
лишь локальный, а не глобальный минимум*). По той
же причине эту задачу нельзя решить линейным сглажи*
ванием разрыва (рис. 16.1.1,6) с последующим «пре*
дельным переходом» — аппроксимирующие кусочно-ли-
нейные функции Cij(xtj) также являются вогнутыми.
Попытаемся воспользоваться транспортностью огра-
ничений (1.2) —(1.4) и извлечь некоторую информацию
из решения соответствующей транспортной задачи с ма-
трицей С. Непосредственно ясно, что план транспортной
задачи с доплатами приводят к тем меньшей величине
суммарных затрат, чем более вырожденным является со-
ответствующий план задачи без доплат (в сумме (1.1)
фигурирует меньшее число слагаемых da). С этой точки
зрения вырожденные задачи являются более выгодными.
Поэтому при приближенном решении транспортной за-
дачи целесообразно искусственным образом сделать со-
ответствующую транспортную задачу возможно более
вырожденной за счет небольших изменений и bj.
*) Этого обстоятельства не учли авторы статьи [4], применив-
шие к задаче (1.1)—(1.4) «обобщенную функцию Лагранжа» (т. е.
по существу принцип двойственности линейного программирования).
Поэтому предложенный ими метод также приводит разве лишь к
локальному минимуму. Способы получения локальных оптимумов
описывались и ранее [23], [14].
По-видимому, неплохие результаты для задачи (1.1)—(1.4) мо-
жет дать описанный в предыдущей главе прием (комбинация слу-
чайного поиска с локальной оптимизацией). Для родственной за-
дачи размещения это было проделано в [129].
i ij ТРАНСПОРТ. ЗАДАЧА 6 ФИКСИРОВАННЫМИ ДОПЛАТАМИ
Элементарный алгоритм для искусственного создания
вырожденности в транспортной задаче был Предложен
в [106]. Он основан на том известном факте, что транс-
портная задача является вырожденной тогда и только
тогда, когда существуют такие подмножества индексов:
= {1, 2, ..., т}, S<z.N = {\, 2, .... п},
что
2 di = 2 bj.
itsR j е s
Указанный алгоритм состоит в следующем.
1. Найти С;о/о = min с//.
«. /
2. Задавшись некоторым Д>0, сравнить |aio— 6/J
и Д. Если |а/0— bj. |<Д, положить х1о1„ = max{а^, bj},
вычеркнуть строку i0 и столбец /0 и перейти к шагу 1.
Если |а,„—&/„|>Д, перейти к шагу 3.
3. Положить xi„lo = min {aZo, bj}.
4. Если этот минимум есть (ц„, вычеркнуть из матрицы
строку г0 и положить а'1а = 0, 6^ = b^ — xit<. Если мини-
мум есть вычеркнуть столбец /0 и положить а'( =
= а«о - хw = О’
5. Повторить шаги 1—4 над суженной матрицей, пока
все а, и bj не станут нулями.
Легко видеть, что этот процесс представляет собой из-
вестный метод минимального элемента для нахождения
опорного плана транспортной задачи (см. § 1 гл. 2), до-
полненный шагом 2. Полученный таким образом план.и
предлагается принять за приближенный план задачи с
фиксированными доплатами.
«Шаг вырождения» Д представляет здесь максималь-
ную величину, на которую допустимо изменять величины
а,- и bj для создания вырожденности. В ходе вычислений
эту величину целесообразно варьировать. По поводу вы-
бора Д можно дать лишь самые общие рекомендации
tn
(прямая пропорциональность наличному запасу 2 «ь
i = l
обратная пропорциональность ценности единицы груза).
1.3. Сведение транспортной задачи с фиксированными
доплатами к целочисленной было продемонстрировано
304
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
[ГЛ. 16
в § 5 гл. 2. Напомним здесь соответствующую формули-
ровку.
Минимизировать
3 3 (cijX{j + dtjytj) (1.6)
при условиях (1.2), (1.3), (1.4) и
f о,
yij = j i i= 1, 2, ..., m; j — 1, 2, ..., n, (1.7)
Xij^Mijyij, 7=1, 2, ..., m; j=l,2,...,n, (1.8)
где
A4Z> = min {ah bj}. (1.9)
Разумеется, к полученной целочисленной задаче при-
менимы любые общие методы целочисленного програм-
мирования. Однако ее большие размеры (матрица огра-
ничений при сведении данной задачи к общей задаче ли-
нейного программирования имеет размеры (тп+т +
+п)Х2тп) делают это в настоящее время малореаль-
ным для задач сколько-нибудь заметных размеров. Спе-
цифическая структура матрицы ограничений, по-види-
мому, не принесет в этом случае серьезного облегчения.
Поэтому естественно пытаться использовать здесь
специфику задачи в ином направлении — в направлении
создания специализированных приближенных методов.
Простой приближенный метод был предложен в 1961 г.
Балинским [49]. Идея этого метода основана на рассмо-
трении задачи с отброшенным условием целочисленно-
сти (1.7). Она дается следующей простой теоремой.
Теорема 3.1. Пусть У' = ||y'tj|| — опти-
мальный план задачи (1.6), (1.2) — (1.4), (1.8). Тогда
О’Ю)
Доказательство. Если «/^ = 0, то в силу (1.8) и
х^ = 0, т. е. (1.10) выполняется. Пусть ^>0, но вме-
сто (1.10) мы имеем неравенство x'tj < Мцу'ц. Тогда y'i{
можно уменьшить до тех пор, пока не будет выполнять-
ся (1.10). Ограничения задачи при этом нарушаться не
§ 1] ТРАНСПОРТ. ЗАДАЧА С ФИКСИРОВАННЫМИ ДОПЛАТАМИ 305
будут, а значение линейной формы (1.6) уменьшится*).
Следовательно, план X', У' не является оптимальным;
это противоречие и доказывает теорему.
Из этой теоремы следует, что_ при поиске оптималь-
ного плана задачи (1.6), (1.2) —(1.4), (1.8) без учета
требования целочисленности «/,-,• можно выразить из
(1.10) уц через Хц-.
и =-. Хц
Мц
и прийти тем самым к задаче минимизации линейной
формы
ГПП \ т п / , \
X S(CUXU + dlj~M7iJ = 2 S\СЧ + А^")ХЧ •1
i=i /=1 i=i 1-1
при условиях (1.2) — (1.4). Таким образом, транспортная
задача с фиксированными доплатами аппроксимирована
обычной транспортной задачей (1.11), (1.2) — (1.4), ма-
шинное решение которой освоено достаточно хорошо и
никаких трудностей уже не представляет.
По оптимальному плану X* задачи (1.11),
(1.2) — (1.4) естественным образом выписывается прибли-
женный план Х° = ||х^|, У° = ||г/“/| задачи с фиксирован-
ными доплатами:
x°tj = у°ц = 0, если x*tj = 0,
= Уц = 1' если x*t>0. 0’12)
Имеющиеся оценки отклонения приближенного плана
(1.12) от оптимума тривиальны и поэтому практически
мало полезны. Однако благодаря своей простоте описан-
ный прием (часто называемый «методом Балинского»)
может широко применяться для приближенного решения
реальных задач.
Идея этого метода станет еще более прозрачной,
если обратиться к геометрической интерпретации
*) В предположении, что все d<;>0. Если же некоторые do=0,
то среди оптимальных планов рассматриваемой задачи найдется
хотя бы один план, удовлетворяющий (1.10).
20 А. А. Корбут, Ю. Ю. Финкельштейн
80S
Детерминированные Методы
irJi. ie
(рис. 16.1.1b). Попытаемся заменить на каждой маги-
страли (г, /) неоднородную функцию затрат сц(хц) одно-
Рис. 16.1.1в.
родной функцией cz/xz/, значения которой не превышали
бы значений с^(х^) для Хц^Мц. Если потребовать, что-
бы прямые с'цХц и СцХ^ + d{j пере-
секались в точке хц=М{), то мы по-
лучим
с'цМц ” си^и
откуда сразу находим коэффициен-
ты линейной функции
, . di>
са“си + ~м^
Таким образом, однородная транс-
портная задача с коэффициентами
линейной формы (1.13) и есть задача (1.11), (1.2)—
(1.4).
(1.13)
1.4. Остановимся теперь на одной модификации мето-
да Балинского, позволяющей во многих случаях улуч-
шить получаемый с его помощью приближенный план
(см. [11], [13], [14]). Идея этого подхода заключается в
следующем. В любом оптимальном плане X* = |xzJ ап-
проксимирующей транспортной задачи с матрицей ||cz/||
всегда найдется по крайней мере два таких x*tf, что
x*t = Mlr По тем парам (/, /), для которых x*tf—M[jt
затраты в задачах (1.1) — (1.4) и (1.11), (1.2)— (1.4)
совпадают и равны с1(х*{1 + dtj. Для остальных же пар
cz/xz/+ diS <cll(x[l),
поскольку для них Из-за несоответствия за-
трат на этих парах оптимальные планы обеих задач
совпадать, вообще говоря, не будут. Поэтому довольно
естественно предположить, что в клетках (»,/), для ко-
торых = Mfl, затраты исходной задачи отражены
правильно и улучшения этого плана следует искать при
помощи перераспределений только на тех парах (t, /'),
§ 1] ТРАНСПОРТ. ЗАДАЧА С ФИКСИРОВАННЫМИ ДОПЛАТАМИ 307
для которых x*{j< Мц. Поскольку затраты на этих парах
в аппроксимирующей задаче занижены против реальных,
их следует пересчитать.
Это реализуется следующим образом. В качестве пер-
вого приближения к оптимальному плану задачи (1.1) —
(1.4) составляется и решается транспортная задача с
целевой функцией (1.11) (т. е. осуществляется метод Ба-
линского). В оптимальном плане этой задачи от-
мечаются те x*/t для которых x*tt = M(j, т. е. x*{j = а,
или х*(1 = bj. Такие строки I и столбцы / назовем висячими
рядами. Затем производится поочередное вычеркивание
висячих рядов и пересчет соответствующих а, и bj (ана-
логичные операции производятся в известном методе ми-
нимального элемента, о котором мы упоминали в п. 1.2).
Именно, если х^—а^ вычеркиваем строку i и полагаем
b'j = bj — х*р если же x*t = b}, вычеркиваем столбец / и
полагаем a't= at— x*f. Для остальных i, / берем
а' = а(, b't = bj. После этого находим
Al^ = min{ap (1.9')
вычисляем
(1.13')
и решаем транспортную задачу (меньших размеров!) с
исходными данными а'{, b'f, ||с"уЦ.
Очевидно, с">с'ц, так как (вспомним,
что начальное приближение давало занижение за-
трат против реальных на тех (i,/). где х*1<М1/). Для
оптимального плана новой задачи снова повторяем про-
цесс вычеркивания висячих рядов, пересчитываем а'{, b'/t
с", и т. д.
Таким образом, описываемый приближенный метод
проводится «циклами», на каждом из которых к вспомо-
гательной задаче (имеющей меньшие размеры по срав-
нению с предыдущим циклом) применяется метод Ба-
линского с соответствующим пересчетом данных. Этот
процесс, разумеется, конечен, поскольку размеры задач
каждый раз сокращаются.
20*
308
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
[ГЛ. 16
На каждом цикле в окончательный план переносятся
те x*tj, которые оказались в висячих рядах.
Остановимся еще на некоторых деталях, связанных
с реализацией этого метода. При переходе к каждому
следующему циклу может оказаться целесообразным вы-
черкивать не все висячие ряды, а, скажем, один или не-
сколько из них. Такая более тонкая «доводка» суще-
ственно увеличивает объем вычислений, но, как правило,
приводит к лучшим окончательным результатам. Один из
возможных способов выбора вычеркиваемого ряда будет
указан в следующем пункте при формальном описании
алгоритма.
Однако при вычеркивании одного висячего ряда про-
цесс может оказаться не монотонным в смысле значения
целевой функции. В связи с этим в алгоритме появляют-
ся некоторые несложные ветвления, которые также будут
описаны в следующем пункте.
1.5. Опишем более подробно намеченный выше при-
ближенный метод. Как уже указывалось, в нем по дан-
ной задаче с фиксированными доплатами строится после-
довательность транспортных задач, причем задача 0 со-
впадает с задачей (1.11), (1.2) — (1.4).
Задача 0. Дано множество пунктов производства
Af° = {l, 2, .... т} с объемами производства а°, i^M°,
и множество пунктов потребления № = {1, 2, .... п}
с объемами потребления bof, j е №. (Здесь = Ь,.) Требуется минимизировать a^ait
т п Z-1 /=1 4 4 (1.11-0)
где
С0 =с + ±L (1.13-0)
(1.9-0)
при условиях (1.2-0)
0, 1 е М°, j е №,
2 хи = а®, 1 е М°, / <= ,V" ‘ (1.3-0)
2 X = Ь°„ 1 №. 4 * (1.4-0)
§ 1] ТРАНСПОРТ. ЗАДАЧА С ФИКСИРОВАННЫМИ ДОПЛАТАМИ 309
Пусть Х° = IIх?/1| — оптимальный план задачи 0. Как
известно, для него существует система потенциалов,
т. е. таких чисел и°{, i^M°, v®, /е№, что
для всех i, / и = vj — и°{ для тех i, j, при которых
> 0.
Найдем множества висячих строк и столбцов:
7?°={i|j€=Al0, x^ — cty, S°=(j\j<=№, %?/ = &?).
Как известно, хотя бы одно из этих множеств не пусто.
Рассмотрим i е /?°. Для него найдется такой индекс
j(i)e№, что х°11ф = а°г Найдем
min (сй., — + ы?) = 6?. (1.14-0)
/¥=/пг ' ' ’
Аналогично для любого /е£° найдется z(/)e-M°,
для которого *?(/)/ = &?• Найдем
min (с9. — t>° + и®) = А®. (1.15-0)
i * i'/)4 ' 1 1> 1
Определим
max J max &?, тахД?1 = А°. (1.16-0)
U е Al ’ / <= J
Обозначим
P°=(z|z6=P°, б? = X0}, S?={/|/e=S°, Д? = Л°).
Плану Х° задачи 0 соответствует в задаче (1.1) —(1.4)
значение целевой функции (1.1), равное
2 2
Вычислим, кроме того,
2 2 (jc®/)=пп-
1ем°\р0 /eWoXso
Задача 1. Дано множество пунктов производства
Af’ = Af0\P2c объемами производства а\, i&M1, где
<4 = 4 {ilxo^fto, /eS®},
a‘ = aj- 2 x°u, i^{Hxotl = bop jeS°}.
leS°,
310
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
[ГЛ. 16
Дано множество пунктов потребления Af1 = Af° \ S°
с объемами производства &/, j N\ где
i^{/l4 = a°i'
2 х°и, /е(Л4=4
i<=R°
Требуется минимизировать
2 2 с ieA!1 /<=JV‘ 'llXiP (1.1Ы)
где 4 = си +' dll M\j ’ (1.13-1)
M\s = min {о 4- (1.9-1)
при условиях хгу>0, / <= A^1, (1.2-1)
2 Xij = ali, i e Af1, (1.3-1)
j^N'
2 хц = ь}, j^N'. (1.4-1)
Пусть А1 = ||— оптимальный план задачи 1. Вы-
числим
2 2 ^(4)=?’.
leM' feN‘ “
Если < т]0, то переходим к задаче 2, используя
план А^Цх^Ц, геЛТ1, j^N1. Если же >тр» пере-
ходим к задаче 2, используя план A° = ||xJ/||, 1<=М},
j <= N1.
Опишем теперь переход от задачи k к задаче k + \.
Пусть Х* = ||4||, i <= Mk, j е Nk — оптимальный план
задачи k, а и$, vt — связанная с ним система потен-
циалов.
Вычислим
3 S С1] (4) = (Л
/ е Mk / <= УУ*
j ij транспорт. задача с фиксированными доплатами зН
Если То находим множества висячих рядов
Rk = {Z|Z<=Affe, 4/ = 4}, Sft = {/|/sy*, Для каждого / <= R* находим 4“6/}-
min (c'f. — o? + u^) = 1 1 ' 1 (1.14-fe)
а для каждого j Sk—
min (cktl — v* + ukt} = M. 1 il. i (/) 4 " ' z ' (1.15-£)
Вычисляем
max / max d?, max A/l= A*. Ъ s Mk l<sNk ) (1.16-A)
Обозначим
R* = {/ 11 s R\ 6kt = Afe), S* = (/1/ s Sk, = Zfe}.
Вычислим
2 2 Сц (4/) ~
jsNk\SS «
и переходим к задаче 6+ 1.
Задача fe+1. Дано множество пунктов произ-
водства Мк+Х = Мк \ с объемами производства
4+| = 4, i£{i\xktl = bkf, j <= S*},
а*+1=а*- 2 4 Ze{Z|4/=b*, /<=S*}.
/ 6=sfe
«
Дано множество пунктов потребления Nk+' = Nk \ S,
с объемами потребления
b/+1 = b/, j ф {j | 4/ = at, i e R*!
b/+1 = b/— 2 xkj, j e {/ |4/ = dl, i^R*j
ieR.k
*
Требуется минимизировать
2 2 ckit'x{j,
is=Mk+[ i s Nk+i
(1ЛЬ(*+1))
312
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
[ГЛ. 16
где
Mil1 = min {a**1, bf'}, (1.9-(fc+1))
при условиях
х/у>0, i<==Mk+l, j^NM, (1.2-(fe + l))
3 xit=aki+', (1.3-(fe + l))
3 x{l=bTl, j^Nk+l. (1.4-(/г + 1))
i<sMk+t
Напомним, что описанный переход к задаче /г+1
выполняется в случае ц*-1. Если же > т]*-1, то
переход к задаче k + 1 осуществляется на основе плана
Xk~x = || хц1II, г €= Mk, j е= Nk.
В качестве приближенного плана задачи (1.1) — (1.4)
принимается план Х=||х^||, где
Х1Р если
х'ц, если
хо = если
i €= R° или /' е S0,
i е У?1 или / е S1,
i е Rk или / е Sk,
1.6. Машинное опробование описанного сейчас алго-
ритма пока не проводилось. Ручной счет для задач не-
больших размеров показал, что этот алгоритм может
дать снижение суммарных затрат против значения, по-
лучаемого по методу Балинского, порядка 3—5%.
Как основной вариант метода Балинского, так и опи-
санная здесь его модификация первоначально предна-
значались для решения сбалансированных задач, т. е.
задач, в которых
т п
2 = 2
/-1
НЕКОТОРЫЕ ОБОБЩЕНИЯ
313
§ 21
Между тем для многих прикладных задач такого типа
(в особенности для задач размещения — см. § 2 гл. 3)
характерна значительная несбалансированность (откры-
тость) :
2»,» 2 ь,-
1-1 /=|
Ясно, что этот случай является еще более выгодным для
применения описанных приемов, ибо с ростом разности
т п
— плане аппроксимирующей задачи количе-
/-1 /-1
ство висячих рядов возрастает, и может понадобиться
лишь очень небольшое число подобных исправлений. При
этом решение аппроксимирующей задачи на каждом
цикле целесообразно проводить описанным в п. 1.2 мето-
дом создания вырождения; это может дополнительно
уменьшить количество слагаемых вошедших в окон-
чательный план.
§ 2. Некоторые обобщения
2.1. Описанный в предыдущем параграфе метод Ба-
линского для приближенного решения транспортной за-
дачи с фиксированными доплатами допускает распро-
странение и на более широкие классы задач. Рассмотрим
прежде всего распределительную задачу с фиксирован-
ными доплатами, описанную в п. 1.3 § 1 гл. 3. Напомним,
что эта задача заключается в минимизации
т п
2 2^) (2.1)
при условиях
хгу^0, Xij — целые, i — 1, 2, ..., tn; j = 1, 2, ..., n, (2.2)
2 /=1, 2, .... П, (2.3)
2^(-*г/)Ся<» i=l, 2,..., иг. (2.4)
314 ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ [ГЛ. 16
Здесь и — разрывные функции
( 0, Х/у = О,
сЧ^х1^-\Cl.Xij + dlJf х,у>0,
f 0, Х/у = 0,
«/) | tijXtj+ Xij, Xij>Q.
(2.5)
(2.6)
Путем нахождения верхних границ для переменных Mtj
и введения дополнительных целочисленных переменных
( о,
= j j 1 = 1» 2, ..т; /=1, 2, ..., п, (2.7)
эта задача сводится к следующей целочисленной задаче.
Минимизировать
2 (с{)Xij + dtjytj) (2.8)
при условиях (2.2), (2.3), (2.7) и
п
^tijXij + Xijyij^ai, i=l,2,...,m, (2.9)
J=»l
Xij<.Mijyij, z=l, 2, ..., m; /=1,2.........n. (2.10)
Препятствием для решения полученной целочисленной
задачи общими методами являются ее значительные раз-
меры (2тп переменных и тп + т + п ограничений). Опи-
сываемый далее приближенный метод имеет своей целью
прежде всего сокращение этих размеров.
Схема этого метода принципиально не отличается от
схемы метода Балийского (п. 1.3 предыдущего парагра-
фа). Именно, заменим прежде всего условие (2.7) цело-
численной задачи условием неотрицательности уц. Тогда
для получающейся частично целочисленной задачи имеет
место
Теорема 2.1. Пусть X' —1|x'tj|, — опти-
мальный план задачи (2.8), (2.2), (2.3), (2.9), (2.10).
Тогда
хц ~
(2.11)
§ 2]
НЕКОТОРЫЕ ОБОБЩЕНИЯ
315
Доказательство этой теоремы не отличается от дока-
зательства теоремы 1.1 предыдущего параграфа.
. Так как достаточно ограничиться рассмотрением оп-
тимальных планов, то доказанная теорема позволяет
нам выразить из (2.11) уц через хг-/
__ ХЦ
Mij
Подставляя это выражение в (2.8) и (2.9), мы приходим
к задаче минимизации
т п
S 2 \СЧ + Л17Г) ХЧ (2-12)
Z-1 / = 1
при условиях (2.2), (2.3) и
/=1’2......т- (2ЛЗ)
/=1 7
Оптимальный план этой задачи естественным образом
порождает приближенный план исходной задачи (2.1) —
(2.4).
Задача (2.12), (2.2), (2.3), (2.13), оставаясь полно-
стью целочисленной, имеет уже меньшие размеры (при
сведении ее к общей задаче целочисленного программи-
рования получаем тп переменных и т + п ограничений).
К сожалению, описанная в предыдущем параграфе
модификация метода Балинского уже не может быть не-
посредственно перенесена на распределительную задачу
с фиксированными доплатами.
2.2. Идею метода Балинского можно использовать
также для приближенного решения общей задачи линей-
ного программирования с фиксированными доплатами в
целевой функции. Эта задача (см. § 5 гл. 2) заключает-
ся в минимизации
п
(2.14)
/“1
при условиях
ху>0, /=1, 2, .... га, (2.15)
^aijXj=bt, 1=1, 2, .... т, (2.16)
316
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
[ГЛ. 16
где
г о,
с/(х;)—( CjXj + dj,
Ограничение целочисленности на
вается; все dj > 0.
Если для всех переменных х}
верхние границы /г,:
/= 1, 2,
Х; = 0,
Ху > 0.
Xj здесь не
(2.17)
наклады-
заданы или найдены
(2.13)
..п,
то путем введения вспомогательных целочисленных пе-
ременных
1 0.
u /=1, 2, (2.19)
эта задача сводится к следующей частично целочислен-
ной задаче.
Минимизировать
2 (cjXj + djyj) (2.20)
при условиях (2.15), (2.16), (2.19) и
Xj^.k.jyj, j = 1, 2, ..., п. (2.21)
Применяя к ней использовавшийся выше прием (очевид-
ные детали здесь уже можно опустить), получаем сле-
дующую задачу линейного программирования.
Минимизировать
п . , .
<2-22>
/-1 1
при условиях (2.15) и (2.16). Ее оптимальный план бу-
дет естественным образом порождать приближенный
план исходной задачи (2.14) — (2.16).
2.3. Недавно в работе Купера и Дрибса [60] был
предложен более подробно разработанный эвристиче-
ский метод решения задачи (2.14) — (2.16). Авторы во-
обще не используют сведения этой задачи к частично
§ 2]
НЕКОТОРЫЕ ОБОБЩЕНИЯ
317
целочисленной, рассматривая ее в слегка видоизменен-
ной форме.
Минимизировать
Z =
п
2 (С jXj + djyj)
(2.23)
при условиях (2.15), (2.16), где
| 0, Xj = О,
У1~ t 1, х}>0.
Приведем краткое описание этого метода. Его идея
заключается в последовательном применении метода по-
следовательного улучшения плана с пересчетом коэффи-
циентов целевой функции. При этом правила ввода век-
торов в базис и вывода их из базиса (см. гл. 4) в ряде
случаев изменяются: в базис вводится вектор с мини-
мальной доплатой, а выводится из базиса вектор с мак-
симальной (среди базисных векторов) доплатой.
Прежде всего, целевая функция (2.23) представляется
в виде двух слагаемых:
и
так что
Z{ = 5 CjXj
п
Z2 = 2 ^]У],
z = z, 4- z2.
(2.24)
(2.25)
Далее рассматривается задача линейного программиро-
вания: минимизировать Z] при условиях (2.15), (2.16).
Процесс разбивается на несколько этапов. На I этапе
задача (2.24), (2.15), (2.16) решается методом после-
довательного улучшения плана. Рассматривается ее
оптимальный план и для вошедших в базис векторов
пересчитываются коэффициенты целевой функции:
cj = ct + для всех X) > 0. (2.26)
318
ДЕТЕРМИНИРОВАННЫЕ МЕТОДЫ
[ГЛ. 16
По этим пересчитанным коэффициентам вычисляются
новые значения оценок Zj — cjt фигурирующих в методе
последовательного улучшения плана [45]. Как известно,
Zj — Cj = CxAxAj — Cj,
m Cx— вектор из коэффициентов линейной формы, от-
вечающих базисным переменным, Ах' — обратная матри-
ца, отвечающая опорному плану X, А, — j-w. вектор усло-
вий. Пересчитанные разности z'f — cj естественным обра-
зом определяются как
Zj — Cj = СхАх'А/ — Cj, (2.27)
где С'х — вектор пересчитанных согласно (2.27) коэффи-
циентов.
В исходном оптимальном плане X, как известно,
zi — Cj^.0 при всех /. Далее все пересчитываемые со-
гласно (2.27) разности z't — ct также делают неположи-
тельными (путем обычных элементарных преобразова-
ний: замены базисных векторов для тех /, для которых
окажется z't — ct > 0).
Результатом I этапа является некоторый план, в опре-
деленном смысле наилучший по значениям Zi и z2. На
II этапе базисный вектор с наибольшей доплатой dj вы-
водится из базиса. Если ввести в базис можно несколько
векторов, то берется тот из них, для которого величина
CjQj+dj минимальна (здесь 0;-—значение переменной /,
которое она приняла бы при введении в базис).
На III этапе к таблице предыдущего этапа приме-
няется другое правило замещения. Вектор из базиса вы-
водится по обычному критерию; вводится в базис вектор
с наименьшей (среди небазисных векторов) доплатой dj.
Далее повторяется видоизмененный II этап (из бази-
са выводится вектор с максимальным Cj^+dj, где £ —
среднее значение базисных переменных), затем снова
III этап. В наилучшем полученном после подобных по-
вторений плане обследуются точки, соседние с оптималь-
ной, и если одна из них приведет к лучшему результату,
процесс начинается снова с этапа I. В противном случае
последний план принимается за окончательный.
$ 2] НЕКОТОРЫЕ ОБОБЩЕНИЯ 319
Проведенная авторами серия вычислительных экспе-
риментов позволяет довольно высоко оценить эффектив-
ность этого алгоритма. Было решено несколько сотен
задач сравнительно небольших размеров (от 5Х10 до
15X30). При этом оптимальные планы были получены в
среднем в 95% всех случаев. В остальных случаях про-
центные отклонения от оптимума были невелики, причем
при росте размеров задачи не наблюдалось увеличения'
этих отклонений. Среднее время решения на машине
IBM-7072 для задач 5X10 составило 20 сек., для задач
15X30 — около 15 мин.
ЧАСТЬ V
НЕКОТОРЫЕ ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ
В этом разделе книги излагаются некоторые вопросы дискрет-
ного программирования, представляющие теоретический интерес и
не связанные непосредственно с вычислительными методами.
Глава 17 посвящена целочисленным многогранным множествам.
В гл..18 рассматривается вопрос о двойственных оценках в цело-
численных задачах линейного программирования.
ГЛАВА 17
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ
МНОЖЕСТВА
В этой главе исследуются целочисленные многогран-
ные множества, т. е. многогранные множества, все опор-
ные планы (вершины) которых целочисленны. Этот во-
прос весьма важен, поскольку метод последовательного
улучшения плана (прямой симплекс-метод), как и дру-
гие конечные методы линейного программирования,
определяет именно опорный оптимальный план (если
задача имеет решение). Поэтому, если все опорные пла-
ны некоторой задачи линейного программирования цело-
численны, то обычный аппарат линейного программиро-
вания позволяет найти оптимальный (опорный) план,
удовлетворяющий также и требованию целочисленности
и являющийся, следовательно, также оптимальным пла-
ном соответствующей задачи целочисленного линейного
программирования.
В § 1 излагается некоторое необходимое и достаточ-
ное условие целочисленности многогранников, данное
Гофманом и Краскалом [97]. § 2 лосвящен задачам
транспортного типа (см. Хеллер и Томпкинс [95], а так-
же Гофман и Краскал [97]); в частности, здесь показано,
что все. опорные планы обычной транспортной задачи
целочисленны (что позволяет понять, почему при цело-
§ 1] УСЛОВИЕ ЦЕЛОЧИСЛЕННОСТИ МНОГОГРАН. МНОЖЕСТВ 321
численных коэффициентах обычные методы решения
транспортной задачи позволяют всегда получить опти-
мальный план, автоматически удовлетворяющий условию
целочисленности — см. § 1 гл. 2).
§ 1. Условие целочисленности многогранных
множеств
1.1. Напомним, что многогранное множество назы-
вается целочисленным, если все его вершины (опорные
планы) целочисленны (т. е. все их компоненты — целые
числа).
Рассмотрим многогранное множество
п
5 aijXj = bi, i = l, .... т,
Xj^O, j — 1, .... n.
(1.1)
(1.2)
Естественно было бы поставить вопрос: каким усло-
виям должны удовлетворять матрица,
^1 =11 aij Н/_1,.... т. .... „
и вектор правых частей b = (&ь ..., Ьт)Т, чтобы много-
гранное множество -S’ ((1.1)— (1.2)) было целочислен-
ным? Однако в такой постановке проблема оказывается
весьма трудной и дать содержательное описание цело-
численных многогранников в этих терминах пока не
удается.
1.2. Гофман и Краскал [97] исследовали задачу в не-
сколько ослабленной (но также весьма интересной) по-
становке. Задана фиксированная матрица А =
=ll«z/lli=i т. П’ все элементы которой — целые
числа и ранг которой равен т. Каким условиям должна
удовлетворять матрица А, чтобы при любом целочис-
ленном векторе правых частей 6= (blt..., Ьт)Т много-
гранное множество -S’(b) ((1.1) — (1.2)) было цело-
численным?
Ответ на этот вопрос дает следующая
Теорема 1.1. Пусть 4 = ||a/Jlw.m......фик-
сированная матрица ранга ш, все элементы которой —
21 А. А. Корбут, Ю. Ю. Финкельштейн
322
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА (ГЛ. 17
целые числа. Для того чтобы многогранное множество
&(Ь) ((1.1)— (\,2)) было целочисленным, необходимо и
достаточно, чтобы любой минор порядка m матрицы А
был равен либо 0, либо ±1.
Переходим к доказательству теоремы 1.1.
1.3. Докажем достаточность. Каждый опорный план
(вершина) Х= (хь ..., хп) многогранного множества
3" (&) однозначно определяется заданием индексов
/ь ..., jm базисных переменных. При этом векторы усло-
вий At , ...» Ai должны быть линейно независимыми,
минор I аи |/ш1 ... т. ./т^^(Л/.......Л/тМ°> а сле-
довательно, по условию теоремы M(Afx, .... Л/т)« ± 1.
Небазисные переменные равны нулю, я базисные одно-
значно определяются из системы линейных уравнений
У aijXj — bi, i=l, .... т, (1.3)
/„}
определитель которой равен .... Л/т)=± 1. Вы-
числяя Xj (/s{/i......jm}) из (1.3), получаем по пра-
вилу Крамера
ГЛ”-” Л1т)
= ±M(Ait, ..., Als_lt b, А/м, .... Л/J, s=l, ...» m.
Здесь Л/р .... Ajs_x, b, Ajs^x, ..., Ajm — столбцы матрицы
ЦЛ/р ...» Ats_x, b, Als+e .... Л/J. По условию теоремы
все элементы этой матрицы — целые числа, откуда и сле-
дует целочисленность Xjs, $=1..т. Достаточность до-
казана.
1.4. Докажем необходимость. Требуется доказать, что
если Л/ , ..., Ajm линейно независимы, то
M(Atl, .... Л/т)=±1. (1.4)
Перенумерацией столбцов матрицы А (и перемен-
ных Xi, ...» хп) можно заменить Ai на А8 (s= I, ..., /и),
так что достаточно (не нарушая общности) доказать,
§ 1] УСЛОВИЕ ЦЕЛОЧИСЛЕННОСТИ МНОГОГРАН. МНОЖЕСТВ 323
что если Ль ..Ат линейно независимы, то
М(ЛЬ .... Ат)^
«и • • • а1т
= ± 1.
(1.4')
ат\ ... итт
Итак, пусть Alt .... Ат линейно независимы.
Рассмотрим систему линейных уравнений
Здесь &е{1, .... т}, t — достаточно большое натураль-
ное число, — символ Кронекера, т. е.
( 1, если i = k,
~ I л РРПИ ,‘-Х-А (1.6)
Введем обозначение
k
Ьк = (0, 0, ..., О, 1, 0, ..., 0)r=(dft„ 6Й, .... ЪктУ. (1.7)
'----------------т '
В силу предположения о линейной независимости
Ai....Ат система (1.5) имеет единственное решение
X(bk)^{xi(bk)....xm(bk)) следующего вида:
ь. М (4[.......Л/-!, bk, Aj+\,..., Ат)
х’<ь >-------------М<Л,......л„)-----------
t,
J-1.
Так как t достаточно велико, то
., т.
(1.8)
Xy(&*)>0, j—l, .... т.
Отсюда получаем, что многогранник (Ьк) имеет
вершину X (Ьк) с базисными переменными х( (б*),...
.хт(Ьк), вычисляемыми по формуле (1.8).
Разлагая определитель М (41(..., Л;_1( Ьк, Aj+l,.... Ат)
по j-му столбцу и используя (1.8), (1.7), (1.6), получаем
,,ь, Akj(Ai......Ат) .
XJ^--M(Ai..........Ат) +t> /=1......т-
21*
324
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА [ГЛ. 17
Здесь Akj(AXi А т) — алгебраическое дополнение эле-
мента akj в матрице Л.М............../-1..... «•
По условию из целочисленности Ьк следует цело-
численность Xj(bk), k=l, .... tn, j—1, tn, а так
как / — целое, то в соответствии с (1.9)
Akj Mb • • •> Am)
At (Л], ..., Ат)
целое, k — 1,
m; I = 1, .... т. (1.10)
Известно, что для матрицы Л"1, обратной к матрице
Л«, имеет место формула
А —С—II cjk ll/_i.т- k-l.
т
Akj (Л|, ..Ат) I
" At (Ль..., Ат) Г
(1.11)
Из (1.10) и (1.11) получаем, что все элементы матрицы
Л'1 —целые числа.
Так как все элементы матрицы Л» — целые числа, то
det Л^М (Лк ..., Ат) — целое число.
Так как все элементы матрицы Л"1 —целые числа, то
det Л"1 — целое число.
С другой стороны, известно, что
det (Л;1) = (det Л.)’1.
(1.12)
Следовательно,
detА^М(Л„ .... Лт)=± 1.
Необходимость доказана.
1.5. Из теоремы 1.1 непосредственно следует условие
целочисленности многогранных множеств ^(6), перво-
начально заданных системой неравенств
п
2 atjXfRibt,
i= 1, .... т,
/= 1, ..., п.
(1.13)
(1.14)
Х/>0,
Здесь Rt — любое из отношений a aljt bi — up
лые числа.
§ 1] УСЛОВИЕ ЦЕЛОЧИСЛЕННОСТИ МНОГОГРАН. МНОЖЕСТВ 325
Запишем условия (1.13) — (1.14) в канонической форме
auxjRixn+i
xj>®, i=i,
i = 1, ..., m,
.n + m.
(1.13')
(1-14')
Здесь R'i это знак + , если R{ есть отношение <,
и знак —, если R{ есть отношение >.
Применим теорему 1.1 к многогранникам ^(Ь)
((1.13) —(1.14)). Это возможно, поскольку ранг матрицы
Л'НМ|£'Н
011 ••• Щп ±1. 0
tZflii ... атп 0 ±1
(1.15)
равен т. Имеет место
Теорема 1.2. Пусть А = ||агу||/=|..т. п-фик-
сированная матрица, все элементы которой — целые
числа. Для того чтобы многогранное множество 3? (Ь)
((1.13) — (1.14)) было целочисленным при любом цело-
численном b=(bi, .... bm)T, необходимо и достаточно,
чтобы любой минор матрицы А был равен либо О,
либо ±1.
Определение 1.1. Матрицу А, все миноры кото-
рой равны 0 или ±1, назовем унимодулярной матри-
цей *).
1.6. Докажем теорему 1.2. По теореме 1.1 целочис-
ленность 3” (Ь) ((1.13') —(1.14')) (а следовательно, и
3 (Ь) ((1-13) — (1.14)) при любом целочисленном b
эквивалентна тому, что любой минор порядка m ма-
трицы А' (1.15) равен 0 или ±1.
Рассмотрим такой минор М (ju ..., /г; /г+1, ..., im).
Он содержит столбцы Л/(, ..., Л/г матрицы Л и столбцы
матрицы Е' (см. (1.15)), содержащие ±1 в строках
ir+i, ..., lm соответственно (остальные строки Л' имеют
номера (i‘i, ..., ir)). Разлагая М (/i, ..., /г; ir+i, ..., im)
последовательно по столбцам Е', получаем
М(/1, ..., /г’, гг+1> •••» гт)= — del II atj 11/.^.if- /•>/!.ir’
*) Такое употребление термина «унимодулярная матрица» не-
сколько отличается от принятого в линейной алгебре; впрочем, эго
не создает повода для каких-либо недоразумений.
326
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА [ГЛ. 1?
Следовательно, равенство нулю или ± 1 произвольного
минора m-го порядка матрицы А' эквивалентно равен-
ству 0 или ± 1 произвольного минора матрицы А, от-
куда и следует теорема 1.2.
1.7. Поясним на двух примерах смысл теоремы 1.2.
Пример 1.1.
+ х2<61(
*i < b2,
(1.16)
х, О, х2 0.
(1.17)
Здесь b=(bit Ь2)т— целочисленный вектор. Непосред-
II 1 1 II
ственной проверкой убеждаемся, что матрица L g |
унимодулярная. Следовательно, по теореме 1.2 много-
гранник ^i(b) ((1.16) — (1.17)) целочисленный при
любом (целочисленном) Ь, что здесь легко установить
и непосредственно, рассмотрев следующие случаи.
а) Хотя бы одно из чисел bit b2 отрицательно. Мно-
гогранник J?i (6) пуст.
б) &1=0, Ь2 > 0. 1 (Ь) состоит из одной вершины
(0, 0).
в) 6i>0, 62=0. -?i(6) содержит две вершины: (0, 0)
и (0, bi).
г) 62 > 6]>0.-^(б) содержит три вершины: (0, 0),
(0, 61) и (61, 0).
д) 0<62<6ь ^1(6) содержит четыре вершины:
(0, 0), (62, 0), (0, bi) и (62, 61-62).
Пример 1.2.
*1 + *2<6„
- X] + х2 < 62,
(1.18)
Xj^O, х2^0.
(1.19)
Здесь 6= (6Ь 6г)г—целочисленный вектор.
Так как
1 I
-1 1
II 1
= 2, то матрица .
не уни-
1
1
модулярна. По теореме 1.2 существует такой (целочис-
ленный) вектор 6, что многогранник ^2(6) ((1.18) —
(1.19)) не является целочисленным. Действительно, при
61 = 1,62=0 многогранник -Z2(6) содержит три вершины:
§ 21
ЗАДАЧИ ТРАНСПОРТНОГО ТИПА
327
(О, 0), (1, 0), (1/2, 1/2) (геометрическая иллюстрация
этого примера приведена на рис. 17.1.1).
Однако (и это не противоречит теореме 1.2) можно
подобрать и такой (целочисленный) вектор Ь, что мно-
гогранник S’zib) при данном Ь будет целочисленным
1
1
не унимодулярна). Дей-
многогранник со-
и
62=0
(хотя матрица
ствительно, при ^=2,
держит три вершины: (0,0), (2,0) и (1,1) (геометриче-
ская иллюстрация этого примера приведена на
рис. 17.1.2).
§ 2. Задачи транспортного типа
Теоремы 1.1 и 1.2 из § 1 дают необходимые и до-
статочные условия целочисленности для некоторых
классов многогранных множеств. К сожалению, в об-
щем случае эти условия весьма трудно проверяемы,
так как матрица размером (тХл) (здесь т<п) содер-
жит Сп миноров порядка tn (весьма большое число при
т, близком к и/2 и достаточно большом п). Еще больше
число миноров любого порядка данной матрицы — их
т
будет 2 Ст. • Сп = С™+т — 1.
V-1
В этом параграфе описан довольно узкий (но
практически весьма важный) класс задач —задачи
328
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА [ГЛ. 17
транспортного типа. Для этих задач теоремы § 1 позво-
ляют получить легко проверяемые необходимые и доста-
точные условия целочисленности соответствующих клас-
сов многогранных множеств.
2.1. Рассмотрим (несколько обобщенную) систему
условий транспортной задачи
п ^yijRidb «=1 т< (2.1)
т
r = l (2.2)
j=l.........tn, j = l, ..., п. (2.3)
Здесь Rt и Qj может обозначать каждое из отношений
=, ^, -С. Эти задачи отличаются от обычной транспорт-
ной задачи только наличием отношений Ri и Qj вместо
знаков равенства в (2.1) — (2.2).
Если перейти от двухиндексной к обычной нумера-
ции переменных (хь ..., xN, N=ntri) и занумеровать
некоторым образом ограничения (2.1) и (2.2) (всего их
будет (т + п)), то получим запись условий (2.1) — (2.3)
в более стандартной для задач линейного программи-
рования форме
N
^a .jXfR"^, z = l, .... т + п, (2.4)
ху>0, /=1, ...,7V. (2.5)
Здесь R" — любое из отношений
Замечание 2.1. При любой нумерации перемен-
ных и ограничений (2.1) — (2.2) матрица условий
4 m+n;/-1.П транспортной задачи обла-
дает следующими свойствами:
1) а.ц равно 0 или 1, i=l, ..., т+п; /=1..N.
2) В каждом столбце матрицы А содержится ровно
две единицы.
2.2. Рассмотрим теперь более широкий класс задач,
частным случаем которых являются транспортные за-
дачи.
ЗАДАЧИ ТРАНСПОРТНОГО ТИПА
329
$2]
Определение 2.1. Матрицу
^4 — ||Of i||<=1> ... i т; j=l> •••,»>
назовем Т-матрицей, если:
1) atj—O или ±1,
2) в каждом столбце матрицы А содержится не бо-
лее двух ненулевых элементов.
Задачу линейного программирования с ограниче-
ниями AXRb, Х^-0 назовем задачей транспортного
типа, если матрица А является Т-матрицей. Здесь /? =
= (/?ь ..., Rm)T и Ri — любое из отношений =, >,
i= 1, ..., tn.
2.3. Чтобы перейти непосредственно к исследованию
многогранников задач транспортного типа, введем еще
некоторые определения.
Определение 2.2. Две строки (i и k) Т-матрицы
А назовем согласованными, если для каждого столбца
/, для которого afj¥=O и имеем: ац=—ahj.
Определение 2.3. Г-матрицу назовем согласован-
ной, если любые две строки ее согласованы.
Определение 2.4. Две матрицы (Л и А') с оди-
наковым числом строк и столбцов назовем эквивалент-
ными, если А' равна А, либо может быть получена из
А изменением знака некоторых строк (обозначение
А~А').
Замечание 2.2. Из приведенных определений сле-
дует, что если две матрицы А и А' эквивалентны, то:
1) они обе одновременно являются или не являются
Т-матрицами,
2) они обе одновременно унимодулярны или не уни-
модулярны.
2.4. В § 1 (теорема 1.2) было показано, что целочис-
ленность многогранников 2(Ь) ((1.13) — (1.14)) экви-
валентна унимодулярности матрицы А. В начале этого
параграфа было отмечено, что проверка на унимоду-
лярность в общем случае весьма трудна. Однако для
Г-матриц проверка на унимодулярность может быть,
как показывает следующая теорема, сильно облегчена.
Теорема 2.1. Для того чтобы Т-матрица А =
= 11 т;/_1 ... пбыла унимодулярной, необходимо
§30 ЦЁЛоЧЙСЛЁННЫЁ MHOf'Of'PAHHblB МЙоЖёС+ёА (М. Il
его через М яш МI А';
и достаточно, чтобы нашлась согласованная матрица А',
эквивалентная А.
Переходим к доказательству теоремы 2.1.
2.5. Докажем достаточность. Пусть существует со-
гласованная матрица Д' = |а^||, эквивалентная матри-
це А. Рассмотрим минор матрицы А', соответствующий
строкам «I, ..., ik и столбцам /ь ..., /\, и обозначим
h..........................h\
.1, а соответствующую
/1» • • •> 1ы
матрицу — через А4*. Если некоторый столбец матрицы
М* состоит из одних нулей, то Л4=0. Если это не так,
но некоторый столбец М* содержит ровно один ненуле-
вой элемент, то разложим М по этому столбцу и полу-
чим Л1=±Л11, где Mi — минор размера (k—1)Х(£—1).
Для Mi проведем то же рассуждение и т. д. В ко-
нечном счете могут возникнуть три случая:
1) ЛГ = О,
2) М= ± 1,
3) Л4=±ЛиЛ'; ’ .И, где:
\ Л» • • •• lrJ
a) [t’i, ..., ir] £={i'i, ..., ik}»
6) {/;...../;}s(/p •••• 41’
в) в каждом столбце матрицы
ровно два ненулевых элемента,
г) матрица /е;, является подматрицей ма-
трицы А' и, следовательно, согласованной Г-матрицей.
В случаях 1) и 2) теорема верна. Остается разобрать
случай 3). Введем обозначения
~ 11 bpq ||р_].......... q^i......г, b — atrfr .
Р Q
§ 2]
ЗАДАЧИ ТРАНСПОРТНОГО ТИПА
331
Ясно, что В — согласованная Т-матрица, в каждом
столбце которой содержится ровно два ненулевых эле-
мента. Очевидно, что
М — ± det В — ± det
bti ... Ъ{) ... Ь\г
Ьц ... bi, ... bir
^r-l.l ••• ••• &r-l,r
br\ ... brj ... brr
^11 ... ьх]
Ьц ... Ьц bir
• • • ^г-1./ • •
S ьрх • • • \ bPj .:. р-i ьрт р»1
(2.6)
Так как В — согласованная Т-матрица, в каждом столб-
це которой содержится ровно два ненулевых элемента,
то для любого j (/=1.....г)
2 ^ = 0+1 -1=0. (2.7)
Из (2.6) и (2.7) получаем
&н ... blr
М = ± det
Ьг-1.1 ---- ^r-l,r
0 ... 0
= 0.
(2.8)
Достаточность доказана.
2.6. Докажем необходимость. Пусть А — унимодуляр-
ная Т-матрица. Допустим, что не существует согласован-
ной матрицы А', эквивалентной А. Это означает, что,
332
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА [ГЛ. 17
какова бы ни была матрица А'~А, найдется такая по-
следовательность пар индексов
(Ч, ji), («2 ,/i), (12, /2). («а, /a), (ir, jk),
что:
1) fe>2,
2) {/,......4}s{l, ..m},
3) {/p .... /*} = {!...n},
4)'re{l,..„ (k- 1)},
5) ip =/= ip при p =£ q\ jp ф jq при p q,
6) a', , = — a', , 0, s = 1, ..., k — 1,
ls!s ls+iJs
7) a' . =a't , 0.
lk>k *r k
Рассмотрим матрицу |а'... /е{/,..
Будучи (квадратной) подматрицей Т-матрицы, она сама
является Т-матрицей, причем в каждом ее столбце
содержится ровно два ненулевых элемента, а в каждой
строке — по крайней мере два ненулевых элемента,
а следовательно, ровно по два ненулевых элемента.
Таким образом, после некоторой перенумерации строк
и столбцов матрица || будет иметь вид
где | bq |= 1, t = k — г + 1.
§ 2]
ЗАДАЧИ ТРАНСПОРТНОГО ТИПА
333
Следовательно,
detKL/:/e;=±detfi =
= ± det
~Ь{ Ь2 О
— ь2
о ’ • .
— bt-2 bt.\
О 0 ... О -Ъ^
— ± det
1
О
о
о
......0-1 1
1
-1 1
-1
= ± det
(1-1) (1-1) ... (1-1) (1-1)
1
-1
-1
о 'о
bt
о
о
о
bt
1
О
О
о
(1+1)
1
о
о
о
О 2
334
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА [ГЛ. 17
<2-9>
Из (2.9) вытекает, что матрица А' не является уни-
модулярной. Следовательно, не является унимодуляр-
ной и матрица А, что противоречит условию. Необходи-
мость доказана.
2.7. Обычно условие унимодулярности Т-матриц фор-
мулируют следующим образом.
Теорема 2.Г. Для того чтобы Т-матрица А =
= ||а^||г-=1>...)т. была унимодулярной, необходимо
и достаточно, чтобы строки матрицы А можно было раз-
бить на два класса Ki и Кг, обладающих следующими
свойствами:
а) Если строки i и k принадлежат одному и тому
же классу и для некоторого j имеем ацФО, а^#=0, то
ац — a^j.
б) Если строки i и k принадлежат разным классам,
и для некоторого j имеем ai}^0, а^^Ю, то aij=ahj.
Покажем, что условия теорем 2.1 и 2. Г эквивалентны
(так как теорема 2.1 доказана, то отсюда будет следо-
вать теорема 2.1'). Сначала выведем условия теоремы
2.1' из условий теоремы 2.1. Пусть существует согласо-
ванная матрица А', эквивалентная матрице А. Образуем
класс Ki из строк матрицы А, совпадающих с соответ-
ствующими строками матрицы А', и класс Кг— из строк
матрицы А, полученных изменением знака соответствую-
щих строк матрицы Д'. Очевидно, что для классов Ki и
Кг выполняются условия а) и б) теоремы 2.Г.
Теперь выведем условия теоремы 2.1 из условий тео-
ремы 2.1'. Пусть существует разбиение на классы Ki
и Кг, удовлетворяющее условиям а) и б) теоремы 2.1'.
Образуем матрицу Д', эквивалентную матрице А, сле-
дующим образом: строка матрицы Д' равна соответ-
ствующей строке матрицы А, если последняя входит в
Ki, строка матрицы Д' получена изменением знака соот-
ветствующей строки матрицы А, если последняя попа-
дает в класс Кг- Очевидно, что матрица Д' согласована.
2.8. Из теоремы 2. Г непосредственно следует унимо-
дулярность матрицы транспортной задачи (2.1) —(2.2)
(при любой нумерации переменных и ограничений). До
i 4 ЗАДАЧИ ТРАНСПОРТНОГО ТИПА SS8
статочно разбить строки этой матрицы на два класса:
класс Ki (строки, соответствующие (2.1)) и класс Кг
(строки, соответствующие (2.2)). Очевидно, что в этом
случае выполняются условия а) и б) теоремы 2.1', от-
куда следует унимодулярность матрицы транспортной
задачи.
Отсюда и из теорем 1.1, 1.2 получается
Следствие 2.1. Многогранник планов (2.1) — (2.3)
транспортной задачи является целочисленным при лю-
бых, целых ai, ..., am; bi, ..., Ьп.
2.9. Изложим алгоритм проверки Т-матрицы А на
унимодулярность, основанный на теореме 2.1'. Нам пона-
добится понятие согласованности (см. определение 2.2),
а также некоторые новые понятия.
Определение 2.5. Две строки I и k матрицы А
назовем строго согласованными, если эти строки согласо-
ваны (см. определение 2.2) и существует такой столбец-/,
что ац=£0, afe,¥=0.
Определение 2.6. Две разные строки (ац, ...
..., ain) и (аль ..., ahn) назовем строго несогласован-
ными, если строки (ац, ..., ain) и J—Ям, ., —я*п)
строго согласованы.
Определение 2.7. Две строки (а il> • • • , ^in) И
(аи....akn) назовем несогласуемыми, если существуют
такие столбцы р и q (p=£q), что
aip=akp^0, aiq=—ahg^Q.
Определение 2.8. Две разные строки (ац, ...
..., ain) и (ам, ..., akn) назовем связанными, если най-
дется такой столбец /, что atj=#0, а^¥=0.
Пусть / — некоторое подмножество строк множества
строк матрицы А. Обозначим через S(/) множество строк
матрицы А, каждая из которых связана хотя бы с одной
строкой из /.
2.10. Вычеркнем вначале из Т-матрицы А, подлежа-
щей проверке на унимодулярность, все строки, состоя-
щие только из нулей (эти строки не влияют на унимо-
дулярность). Получим исходную Т-матрицу Ло=
= 11оо11/еЛ1. tsN.
Разобьем множество М строк матрицы Ло на не-
пересекающиеся множества Mi, , Мг, обладающие
336
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА [ГЛ. 17
следующим свойством: если p^=q, i^Mp, k<=Mq и
то akj=Q. Это разбиение осуществляется следующим об-
разом: полагаем /о = {й}, где ii— произвольная строка
изМ. Строим h=S(I0)\I0, /2=S(/i)\(/iU/o), .... Is =
=S(/s_i) \(A-i U /s-2) и т. д. до тех пор, пока не полу-
чим первый раз пустое множество A 1). Тогда по-
лагаем M^/oUAU ... U/fe-i.
Если Mi — M, то г=1 и процесс разбиения завершен.
Если Afi=£Af, то заменяем М на (M\Aft) и аналогичным
образом продолжаем процесс разбиения.
Проверка на унимодулярность матрицы Ло=
=|| еД1./еЛ,сводится к проверке на унимодулярность
каждой из матрицЛр = ||а<у||/еА1/еЛГ, р = 1, .... г. Из
теоремы 2.1' следует, что для унимодулярности матрицы
Ао необходимо и достаточно, чтобы была унимодулярной
каждая из матриц Ар, р— 1,..., г.
2.11. Переходим непосредственно к изложению алго-
ритма.
0-й шаг. Задана 7'-матрицаЛ/1 = ||а£у ||feM . jf=N-
Проверяем, есть ли среди строк матрицы Ар несогла-
суемые. Если есть, то матрица Ар не унимодулярна. Если
нет, то выбираем произвольную строку 1о<=Мр и пола-
гаем /о={U- Зачисляем to в первый класс (1)*). Если
1О=МР, то матрица Ар унимодулярна. Если /о¥=Мр, пе-
реходим к 1-му шагу.
s-й шаг ($> 1).
а) Имеются /о, А, ..., А-ь Каждая строка I е (J 1Г
г*= 1
зачислена в один из классов: (1) или (—1). Этот класс
обозначаем через K(t).
Находим
j S (/0), если 5=1,
ls = t S (1^) \ (1^ U1^), если 5>2.
Если /8 пусто, то матрица Ар унимодулярна. Если /«
не пусто, то для каждого te/s находим S({i}) и S'({i}) =
=S({i}) П Ц-1 (это, очевидно, непустое множество).
•) Здесь и в дальнейшем удобно обозначать первый й второй
классы не через и Кг (см. выше), а через (1) и (—1).
Есть ли среди строк матрицы Ар несогласуемые? Есть * Матрица Ар не унимодулярна
|Нет
Выбираем произвольную строку /0 е Мр и полагаем Zo-fro)
4-
I Зачисляем Zo в класс 1 (К (ie) = D 1
Выполняется ли равенство Z0-Afp? Матрица Ар унимодулярна
|нет
1 Полагаем s = 1
Находим Js (S(Zo), если а-1, * F «'#-»)• если s>2
Матрица Ар унимодулярна
j Пусто ли Zj? 1 Д£—>
|Нет
Для каждого i <s 1$ находим S ({<)) и S' ф» - s <V»n/e_j
Для каждого / е Zj и каждого ZeS' ({/}) полагаем ( К (1). если строки i и 1 стро- J го согласованы, л (Z, 1) " ]—/< (Z), если строки i и 1 стро- 1 го не согласованы
Найдется ли среди строк I s такая, чго среди чисел К' (Z, Z) есть разные? Да Матрица Ар не унимодулярна
|Йет
Для каждой строки Ze 1$ полагаем ZC (Z) равным общему значению чисел X'(Z, 1) ties' ({/}))
i
Найдется ли такая пара строк 1, ], что a) ZeZj, /eZj; б) в) 1 и / строго не согласованы? Да
|Нет
Найдется ли такая пара строк 1, 1, что a)ieZs,/е/#: б) К (0¥=К(/); в) Z и / строго согласованы? Да
|Нет
L Увеличиваем s на единицу |
Рис. 17.2.1. Блок-схема проверки Т-матрицы на унимодулярновть.
22 А. А. Корбут. Ю, Ю, Финкельштейн
338
ЦЕЛОЧИСЛЕННЫЕ МНОГОГРАННЫЕ МНОЖЕСТВА [ГЛ. 17
б) Для каждого ie/s и каждого /еЗ'({1'}) пола-
гаем *)
К(1), если строки ini строго
согласованы,
К. (г’> 0— —/((/), если строки i и I строго
не согласованы.
в) Если найдется хотя бы одна строка ieZs такая,
что среди чисел К.' (i, I) имеются разные, то матрица Ар
не унимодулярна.
г) Если же для каждой строки ie/s K'(i, I) не зави-
сит от I, то полагаем (для каждого 1^.1s) K(i) равным
общему значению чисел K'(i,/) (Ze S'({i})).
д) Если среди строк i^Is, зачисленных в один и тот
же класс, найдутся две строго несогласованные строки,
то матрица Ар не унимодулярна. Если таких строк нет,
то переходим к е).
е) Если среди строк teZs найдутся две строго согла-
сованные строки, зачисленные в разные классы, то мат-
рица не унимодулярна. Если таких строк нет, то пере-
ходим к (s + lj-му шагу. Блок-схема алгоритма приве-
дена на рис. 17.2.1.
2.12. Приведем численный пример.
Требуется проверить на унимодулярность матрицу,
помещенную на стр. 339 (в пустых клетках стоят нули).
Здесь М={1, 2, 3, .... 8}.
1) /о = {0; Zl = S(Z0) = {8, 3, 2};
Z2 = S (Zt) \ (Z( U Zo) = {1, 2, 6, 7} \ {8, 3, 2, 1} = {6, 7};
Z3 = S (Z2) \ (Z2 U Ц) = {4, 2, 5} \ {6, 7, 8, 3, 2} = {4, 5};
Z4 = S (Z3) \ (Z3 U Z2) = {6, 7} \ {4, 5, 6, 7} = 0;
3
(JZ4 = {1, 2, 3, 4, 5, 6, 7, 8}, т. е. матрица состоит ровно
s=0
из одного блока.
2) Проверкой убеждаемся, что среди строк 1, 2,..., 8
нет несогласуемых.
3) Воспользуемся множествами /0, Л, /2, построен-
ными в п. 1).
*) В этом определении мы оперируем с символами (1) и (—1)
(обозначающими первый и второй классы), как с числами.
§ 2J
ЗАДАЧИ ТРАНСПОРТНОГО ТИПА
339
X. / z X. 1 2 3 4 5 6 7 8 9 10 11 12
1 -1 -1 -1
2 -1 -1 1 -1 1
3 1 -1
4 -1 -1 1
5 1 1
6 -1 -1 -1
7 1 1 1 — 1
8 -1 1
Выписываем /о={1}. Полагаем /((!) = (1).
Выписываем /1={8, 3, 2). Так как каждая из строк 8,
3, 2 строго несогласована со строкой 1, полагаем
К(8) =К(3) =К(2) = (—1). Проверяем строки 8, 3, 2 —
среди них нет строго несогласованных строк.
Выписываем h—{6, 7}. Строим функцию K(i, /)
(i s /2, I e h, (i, /) связаны).
Так как K(i, l) для каждого фиксированного i при-
нимает лишь одно значение (К(6, /) = (—1); К(7, /) —
= (1)), то полагаем /<(6) = (—1), К(7) = (1).
Строки 6 и 7 не связаны, так что отнесение их к
классам (—1) и (1.) соответственно не создает противо-
речия.
22*
340
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ. 18
Выписываем /3={4, 5]. Строим функцию K(i, I)
(is/з,/е/г, (1,1) связаны).
Так как К. (1,1) для каждого фиксированного i при-
нимает лишь одно значение (К. (4, /) = (1); К(5,1) —
= (—!)), то полагаем К(4) = (1), К(5) = (—1).
Строки 4 и 5 не связаны, так что отнесение их к
классам (1) и (—1) соответственно не создает противо-
речия.
Результат—исходная матрица унимодулярна. За-
одно получено разбиение строк матрицы на два класса
(в соответствии с условиями теоремы 2.1'): класс (1),
содержащий строки {1, 7, 4}, и класс (—1), содержащий
строки {8,3, 2, 6,5}.
ГЛАВА 18
ЦЕЛОЧИСЛЕННОЕ ЛИНЕЙНОЕ
ПРОГРАММИРОВАНИЕ
И ДВОЙСТВЕННЫЕ ОЦЕНКИ
Известно, что двойственные оценки в задаче линей-
ного программирования могут быть истолкованы как
измерители дефицитности ресурсов. Соответствующая
математическая формулировка дана в § 1. Там же об-
суждается постановка задачи в целочисленном случае
и возникающие при этом трудности.
В § 2 излагается один результат Гомори и Баумоля
[90], позволяющий использовать двойственные оценки
для выявления недефицитных ресурсов в случае задачи
целочисленного линейного программирования (дальней-
шее продвижение по этому пути осуществили Алькали
и Клеворик [46]),
в 1]
ПОСТАНОВКА ЗАДАЧИ
341
§ 1. Постановка задачи и некоторые
предварительные сведения
1.1. Рассмотрим задачу целочисленного линейного
программирования.
Максимизировать
П1 *0= 2 С}Х} /=1 (1.1)
при условиях ni 2 atjXj- 1 = 1, ..., т, (1.2)
i=i Х)\ >0, /=1. .... «1, (1.3)
X; — целое, /-1. .... Пр (1.4)
Числа Cj, ац, bt (1=1, .... tn; /=1, nJ считаем це-
лыми.
Задача (1.1) — (1.4) может быть переписана в экви-
валентной форме.
Максимизировать
th
X^^CjXj (1.1')
при условиях
П1
3 aifXj + Хщ+i = bi, i=\,...,tn, (1.2')
/=1
/ = 1, ..., nlt tii + 1> • • •» ni + tn=n, (1.3')
Xj— целое, j=l, ..., n. (1.4')
В дальнейшем будем считать, что:
1) задача (-2я1, С) ((1.1') — (1.4')) имеет решение
Х(^, су, ____________
2) /-задача (J?, С) ((1.Г) —(1.3')) имеет решение.
Из условий 1) и 2) следует, что оптимальный план
Х(«2?Ц,С) может быть получен по первому алгоритму Го-
мори.
1.2. Если предположить, что
9>0. ^>0, atj^Q, i = l......tn, i=\, ni,
342
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ. 18
то задачу (1.1) — (1.4) можно интерпретировать следую-
щим образом. Имеется th видов продукции (/=1,..., П|)
и пг видов ресурсов, причем запасы i-ro ресурса огра-
ничены заданной величиной Ь{ (/=1, ..., пг). Каждый
из видов продукции может выпускаться только в неде-
лимых единицах (условие целочисленности (1.4)). Из-
вестно, что производство единицы /-Й продукции дает Cj
единиц прибыли и связано с расходом единиц i-ro
ресурса. Ищется план производства, дающий максималь-
ную прибыль.
1.3. Большой интерес представляет следующий
вопрос.
Как будет изменяться оптимальное значение целевой
функции Хо(»2’ц, С) при изменении правых частей
bi, ..., bm неравенств (1.2)?
Если воспользоваться экономической интерпретацией,
данной в п. 1.2, то этот вопрос прозвучит следующим
образом.
Как будет изменяться оптимальная величина при-
были при изменении запасов ресурсов?
Проблема оказывается достаточно сложной, и преж-
де чем переходить непосредственно к ее исследованию,
вспомним, как влияет изменение величин bt, .... bm на
целевую функцию xq(^,C) нецелочисленной задачи
(1.1) — (1.3) (или, что то же самое — задачи (1.1') —
(1.3')).
1.4. Пусть X (-2’, С)=Х* = (х*, ..., х*+П1) —оптималь-
ный план задачи (.S’, С) ((1.1') — (1.3')).
Сосредоточим своё внимание на величинах х* р
хп,+2' • • • > xn,+m И соответствующих им номерах ресурсов
(1,2, .... т).
Если x*+i>0, то i-й ресурс использован не полно-
стью. Напрашивается предположение, что изменение ве-
личины Ь{ запаса этого ресурса не должно повлиять на
оптимальную величину целевой функции х„ — во всяком
случае, при не слишком больших изменениях Ь{. Ре-
сурс (i) в этом случае естественно назвать недефи-
цитным.
Если же х* t = 0, то i-й ресурс использован полно-
стью,-и можно1 предполагать, что увеличение (уменьше-
§ 11
ПОСТАНОВКА ЗАДАЧИ
343
ние) величины bi запаса этого ресурса приведет к уве-
личению (уменьшению) оптимальной величины целевой
функции х* (при не слишком больших изменениях bi).
Ресурс (i) в этом случае естественно назвать дефи-
цитным.
Все эти интуитивные соображения могут быть фор-
мализованы. Пусть Х*=Х(.2\С)—опорный оптималь-
ный план, которому соответствуют:
1) множество индексов небазисных переменных W,
2) симплексная таблица Т == || х^-1|*е
Имеет место следующая теорема*).
Теорема 1.1. Пусть задача (1.Г)— (1.3') не вы-
рождена.
Тогда при i= 1, ..., пг
дхрbm) = 1 0, если (iii + ij&N,
dbi I Хо, щ+1, если + i) s N. ' ’ '
Теорема 1.1 показывает, что (в случае, когда
(«1 + 0 число х0 +i является -измерителем дефи-
цитности ресурса (0. Напомним, что числа xoj (j s N)
принято называть двойственными оценками**).
Можно доказать также следующую теорему.
Теорема 1.2. Пусть
р ^<^-^-0;
obi
2) е>0.
Тогда
*о(&1......bi-V bi + 6> bM’ •••’ 6m) = Xo(bI.........
1.5. Теорема 1.2 показывает, что (для задачи линей-
ного программирования) из недефицитности ресурса от-
носительно малого увеличения его количества следует
недефицитность ресурса при любом увеличении его
*) Эта теорема почти непосредственно следует из теоремы 4.7
(см. [44], гл. 6).
**) В другой терминологии — разрешающими множителями [10]
(соответствующая историческая справка и разъяснение терминоло-
гии даны в [44]).
344 ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ. 18
количества. Легко убедиться, что на задачу целочислен-
ного линейного программирования это утверждение не
обобщается, даже если допускать только целочисленные
Рис. 18.1.1.
значения величин ресурсов. Рассмотрим следующий
Пример.
Максимизировать
при условиях
х0=Х! +х2
4х1-х2<8(= bt), 1
— Xi + 6х2< 12 (= Ь2), J
Xi > О, х2 > 0,
Xi, х2—целые.
(1.6)
(1.7)
(1.8)
(1.9)
Как показывает рис. 18.1.1, оптимальное значение х*0
целевой функции задачи (•£*“, С) ((1.6) — (1.9)) следую-
щим образом зависит от величины запасов второго ре-
сурса:
( 4 при 8 = 0, 1, 2, 3,
<(»,. », + .)-х;(8, 12 + е) = | 6 е_4 (1.10)
Таким образом, из недефицитности ресурса (2) при
малом увеличении его запаса еще не следует недефи-
§ 2] ТЕОРЕМА ГОМОРИ И БАУМОЛЯ 349
цитность ресурса (2) при большем увеличении его
запаса.
1.6. Нетрудно было бы привести еще целый ряд при-
меров, показывающих, насколько по-разному влияет
изменение величины ресурсов на оптимальное значение
целевой функции для задач линейного и целочисленного
линейного программирования.
Тем не менее, как показали Гомори и Баумоль [90],
двойственные оценки все же оказываются полезными и
в целочисленном случае. Результат Гомори и Баумоля
будет изложен в § 2.
§ 2. Теорема Гомори и Баумоля
2.1. Пусть задача (•2?ц, С) ((1.1') — (1.4')) решена
на (s—1)-й большой итерации первого алгоритма Го-
мори. Получен оптимальный план X (J?11, С) и выписана
соответствующая ему симплексная таблица Ts:
<2l)
Здесь
Ns cz {1, 2, ..., n, n + 1, ..., n + s). (2.2)
Возникает естественный вопрос: нельзя ли ис-
пользовать таблицу Ts и двойственные
оценки Хо/ для исследования зависимости
x0(»?u, С) от величин bi, ..., bm?
Иначе говоря, нельзя ли для задачи (^ц, С)
((1.1') — (1.4')) получить некий аналог теорем 1.1 и 1.2,
установленных выше для задачи (-2*. С) ((1.1') —
(1.3'))?
Очевидно, что перенос теорем 1.1 и 1.2 на задачу
(-?’“, С) (с использованием оценок х^) невозможен.
Действительно, допустим, что для некоторого t
п,
С)<&/.
Тогда
(tit + ij&Ns,
346,
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ. 18
и, если следовать теоремам 1.1 и 1.2, то ресурс (/) дол-
жен быть недефицитным. Но это, вообще говоря, не-
верно,— достаточно сослаться на пример (1.6) —(1.9),
разобранный в § 1.
И все же, как показали Гомори и Баумоль [90], ин-
формация, полученная при решении задачи (<>2*ц, С)
((1.Г)— (1.4')) по первому алгоритму Гомори, может
быть использована для выявления недефицитных ре-
сурсов.
2.2. Введем некоторые обозначения. Через (0, 1, ...
..., г, ..., (s—1)) обозначим номера больших итера-
ций при решении задачи (^ц, С) по первому алгоритму
Гомори. Вспомним, что правильное отсечение, построен-
ное на r-й большой итерации (r=0, 1, ..., (s—1)),
имеет вид
хп+г+1
хп+г+1 “ Целое,
- - {*;,.) + Д (- КЛ (- xi> (2-э)
Здесь kr — номер строки, по которой строится пра-
вильное отсечение на г-й большой итерации:
kr = min (z | i e Qrt; хгю — не целое).
Заметим, что
Введем обозначение
и перепишем (2.3) следующим образом:
*n+r+i = Y5+ Д ?)(“*/)• (2.3')
Пусть
N'r = {/1 / е N;, у; ¥= 0) = {/1 j <= Nr; у; < 0). (2.5)
Через I* обозначим некоторое фиксированное нату-
ральное число, удовлетворяющее условию
1 < т. (2.6)
Обозначим n* s /2i+i*.
§ 2] ТЕОРЕМА ГОМОРИ И БАУМОЛЯ 347
Далее будет рассматриваться все время произволь-
ный, но фиксированный ресурс (j*), ограничение по за-
пасам которого во вновь введенных обозначениях за-
пишется следующим образом:
П1
2 а. .х. + х„ = Ь..
Напомним, что симплексная таблица Тг имеет вид
'-0'1......... (2-7)
или, в развернутой записи,
xi = xzo + /S xi/(-x/)> 1, .... п}. (2.8)
Через 7,.(г=0, 1, ..., (з—1)) обозначается таблица Тг
с приписанной снизу строкой (2.3')
Каждая из таблиц ТГ(ТГ) может рассматриваться как
форма записи некоторой задачи линейного программи-
рования (=2’r, С) ((-2’Г) С)). Здесь •
= r = 0, 1, s,
^гц = ^оц, r = 0, 1, .... з-1,
т. е. каждая из задач (-27, С)((-27, С)) эквивалентна
исходной задаче (-2я1, С).
Через (-^(в), С)((-2’“(е), С)) обозначим задачу, кото-
рая получается из (-2”, С)((-2’а, С)) при замене bi,
на (Ьц + е).
2.3. Введем величины hj, которые непосредственно
используются в формулировке результата Гомори и Бау-
моля.
Сначала зададим hi, ..., hn“.
( 0, /е{1, ...» п}, j^n,,
hj — \ i . (2.9)
1 I 1. l = n..
Теперь воспользуемся тем фактом, что
Nrc:{\, 2......«+/}, r=0, 1, з,
348 ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ. 18
и определим рекуррентно hn+»'
An+r+i = si2n^S^ r = 0, 1.....s-1*). (2.10)
Теорема 2.1. Пусть
1) e>0, (2.11)
2) в — целое, (2.12)
з) 2 М/ = °- <2ЛЗ>
Тогда
х0(^’и(е), С) = хР (-?’“, С). (2.14)
Теорема 2.1 дает достаточный признак недефи-
цитности ресурса (й). На примерах легко показать, что
этот признак не является необходимым.
Заметим, что теорема 2.1 является некоторой моди-
фикацией результата Гомори и Баумоля [90]. Гомори и
Баумоль вводят перераспределенные двойственные оцен-
ки и с помощью этого понятия формулируют свой ре-
зультат:
Если перераспределенная двойственная оценка, соот-
ветствующая ресурсу (й), равна 0, то ресурс (й) яв-
ляется недефицитным **).
Поскольку основную полезную информацию несет
знак перераспределенной двойственной оценки, целе-
сообразно соответствующим образом модифицировать
изложение.
2.4. Очевидно, что теорему 2.1 достаточно доказать
для некоторой произвольной строго возрастающей по-
следовательности целых неотрицательных е. Положим
s = ew=w • о0- »i • ••• • (2.15)
Здесь
w = 0, 1, 2....
*) Напомним, что
sign у =
1. «/>0,
0, {/ = 0,
-1, У<Л
♦*) Доказательство у Гомори и Баумоля лишь намечено, но не
проведено полностью.
ТЕОРЕМА ГОМОРИ И БАУМОЛЯ
349
§ 2]
vr — наименьшее общее кратное знаменателей несо-
кратимых рациональных дробей xrtj (i^Qn, j<=Nr, r =
= 0, 1, .... (s-1)).
Замечание 2.1. To, что числа xrl{ рациональны,
непосредственно следует из целочисленности коэффи-
циентов Cj, aij, bi задачи (1.1) — (1.3), правил /-метода
и правил первого алгоритма Гомори.
Замечание 2.2. Из определения vr следует, что
vr делится также на знаменатель каждой из несократи-
мых рациональных дробей
Y/=-K/b i^Nr-
Введем обозначения:
*</ = wr’xz/, /eQ*./е^г-0, 1,..., s-1, (2.16)
je=Nr, r = 0, I, ..., s-1. (2.17)
Из определения чисел vr следует, что &rtf — целые, а из
замечания 2.2, что yj — также целые.
2.5. Переходим к доказательству" теоремы 2.1.
Лемма 2.1 *). Пусть
N — конечное множество, fj — целое, j е /V,
/ = d0 + 2 d}(— у,), t —целое,
I^N
yj>fj, j&N, y}-целое, j&N,
е=-Ш+ 2 (~{d}})(-yj).
j&N
Тогда
e - целое, 6 > - [{do} ~ (d.
Доказательство леммы 2.1.
t as d0 + d)(— у j + f j — fj) —
— da— 2 djfj+ 2 dj(— y} + fj),
/e,V jsN
________ °-
*) Лемма 2.1 является модификацией теоремы 2.1 из гл. 5.
350
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ. 18
Отсюда, проводя те же рассуждения, что и при
доказательстве теоремы 2.1 из гл. 5, получаем
6 = - {d0 - 2 djfj j. + 2 (- {dj}) (- у J + fy), (2.18)
6 —целое, (2.19)
б>0. (2.20)
6= - Ho) + Д (- {dj})(- yj) + {d0) -
—{d0— 2 d}f}\- 2 Wy=
I /e^ J /ея
= 9 + W - { d0 - 2 {dy} f} j. - ,2 {dy} f, =
= e + {d0} - ( d0 - 2 {dy}fyj + [ do - ,2 {dy} fy] -
d=e+[w-(2.2i)
Из (2.19), (2.20), (2.21) получаем
0 —целое, 6> — [{d0} — ^2^{dy}/yJ.
Лемма 2.1 доказана.
2.6. Числа (e), z2 (e), .... zn (e) определим сле-
дующим образом:
(0, /е{1.....n}, j ¥= п„
i-П..
Из определения множеств Nr следует, что
Nr с:{1, 2, ..., n + r}, г = 0, 1.s. (2.23)
Воспользуемся формулой (2.23) и рекуррентно введем
числа
^п+1 (е)> ^п+2(8)» •••» гп+«(8)"
^+r+i(®) = /S Yy(-2y(e)), r = 0, 1, .... (s- 1). (2.24)
ТЕОРЕМА ГОМОРИ И БАУМОЛЯ
351
Лемма 2.2. Пусть 8>0. Тогда числа Zj(e) дают следующими свойствами: обла-
1) Zy(e)J>0, / = 0, 1, ..., п + з; (2.25)
2) Z;(e) — целое, j = 0, 1, ..., n + s; (2.26)
3) signzn+r+|(e) = /i„+r+1, r = 0, 1, ..., s-1; (2.27)
4) z„+rtl (e) = 4+r+I (в) • yr+1 • vr¥2 • ... • c^-j, где 4+r+1(e)>0, zn+r+1 (в) - целое. (2.28)
5) sign z„, (в) = hn„. (2.29)
Свойство 1) следует из определения чисел zj(e).
Свойство 5) получается непосредственно из (2.9) и
(2.22). Докажем свойства 2), 3) и 4).
Сначала рассмотрим случай г=0. Согласно (2.17)
<2-зо>
где yj и vr — целые.
Из (2.30) и (2.24) получаем
г„+1(е)= 2 Y?(-^(e)),
/еАГ0
( 0, если п^П0,
zn+i (в) — | (— е), если n,sAf0.
Далее
«)= * (- W • U0 * • • • • • Vl) =
= ••• • Vr
Вводя обозначение
получаем
J 0, если п, ф. No,
2n+i(e)-l ^„+1(е) • Oj • если
где ^п+1 (е) — целое неотрицательное число.
852
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ (ГЛ. 18
С другой стороны (см. (2.10)),
если п, No,
если n. <= No,
sign (“ О = sign ( - = sign (-• w • vt.... . =
так что
= sign (2„+1 (e) • v{ ... ow) = sign z„+I (e),
й„+1 = sign zn+I (e).
Лемма 2.2 доказана при r = 0.
Допустим теперь, что лемма 2.2 доказана для
r^q — 1, и докажем ее для r = q:
Zn+q+l (в) = /2 yK-z/e)), (2.31)
Yy = -1, (2.32)
По предположению индукции каждое из чисел
Z;(e) (J<=N4) делится на vq • о,+1 ... так что
Z/ (е) = z« (е) • vq • v9+l ... t>s4, (2.33)
где zy (s) — целое число.
Из (2.31), (2.32) и (2.33) получаем
z„+g+i (в) - 2 (~ z; (в)) • о, . vq+l ... V, -
“V ••• -°в-1 S (-Y/-zy(8)).
Вводя обозначение
2 VW<«). <2-»4>
получаем
Zn+q+\ (®) s ^n+tf+l (®) * ^0+1 • • • ^$-1» (2.35)
где
2п+(?+1 (в) — целое неотрицательное число. (2.36)
§ 21
ТЕОРЕМА ГОМОРИ И БАУМОЛЯ
ЗМ
С другой стороны (см. 2.10)),
По предположению индукции
hj - sign z} (в), i<=Nr
Отсюда получаем
й„+<7+1 = sign 3 у’ ( - sign Zj (е))).
Так как все члены суммы, стоящей в правой части
последнего равенства, неотрицательны, то
/in+<z+1 - sign 3 У/ (- zf (в))) = sign zn+?+1 (в).
Лемма 2.2 доказана.
2.7. Рассмотрим задачу линейного программирова-
ния (=2”г, С) ((=2’r, С))*) и обозначим-через Dr (Dr) мно-
жество индексов входящих в нее переменных
Dr = QnUNr, г-0, 1, .... з, (2.37)
Or = ^rU{(n + r + l)}, r = 0, 1, ..., з-1. (2.38)
Через (^(е), С) ((^г(в), С)) обозначим задачу ли-
нейного программирования, которая получается из за-
дачи (»2’r, С) ((J?r, С)) заменой условий неотрица-
тельности
ху>0, j^Dr (j^DT) (2.39)
на следующие условия:
xy>-zy(8), (/<=5r). (2.40)
Очевидно, что
-?’0(e) = ^’(e). (2.41)
♦) См. п. 2.2.
23 А. А. Корбут, Ю. Ю. Финкельштейн
354
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ. 18
Лемма 2.3. Задачи и «^г(е) обладают сле-
дующими свойствами:
1) =5’“(е) = о2’ц(е), r = 0, 1, .... $. (2.42)
2) J* (е) = -F4 (е), г = 0, 1...s - 1. (2.43)
Доказательство проведем по индукции. Сначала
докажем лемму 2.3 при г = 0.
Из (2.41) сразу следует, что
^оц(е) = ^ц(е),
и (2.42) доказано при г = 0.
Для доказательства (2.43) (при г = 0) понадобится
лемма 2.1 при следующих условиях:
N = N0,
= — j^N0,
' I — s No,
yj = Xj, jG=M0,
9 = *n+l’
Применяя лемму 2.1, получаем: если
X=(xi, .... Xn)^^o(e),
то
xn+i — [{xw>} “ {x°o/} .(” zi ® )] =
= -[K»)+,2/(-e,(«))]. (2.44)
xM - целое.
Из (2.24), (2.26) и (2.44) следует, что
xrt+I> - 2 Y?(~ z/<e>) “ [Ко}] = ~ z»+i <«)•
Лемма 2.3 доказана при г=0.
Теперь допустим, что лемма 2.3 уже доказана при
r=q—1 (<?>'1), и докажем ее при r=q.
ТЕОРЕМА ГОМОРИ И БАУМОЛЯ
355
§ 2]
По предположению индукции лемма верна для за-
дачи (е), С). Следовательно, она верна и для
задачи (J?? (е), С), поскольку Dq^Dq-\ (см. (2.38)),
а таблица Tq получается из таблицы Tq-i после несколь-
ких итераций /-метода. Формула (2.42) доказана при
г=</.
Доказательство же (2.43) при r—q проводится со-
вершенно аналогично доказательству (2.43) при г=0 с
использованием лемм 2.1 и 2.2. В лемме 2.1 следует по-
ложить
JV = ^,
fj—z№> i&Nv
dl = xqkqh j e №q,
t = x^
Уj — X ft j Nq,
0 = Xn+q+l-
Лемма 2.3 доказана.
2.8. Переходим непосредственно к доказательству
теоремы 2.1.
При 8=0 теорема 2.1 тривиально верна. В дальней-
шем считаем, что е>0.
Выпишем условия задачи (-2’4 (е), С).
Максимизировать
xo=xoo + 2 хо/(—х/) (2.45)
I
при условиях
Xj= + 2 Xj)’ /=1» •••> я, (2.46)
X;>-z7(e), j^Ds. (2.47)
Заметим, что в силу /-нормальности таблицы Т,
xs0l>0, j^Ns.
Следовательно, из (2.45) и (2.47) получаем
хо (е)> с) < *оо + f 2 xsOj • zt (е). (2.48)
23*
356
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ И ОЦЕНКИ [ГЛ 18
Введем обозначения:
Е = {п„ п + 1, п + 2.п + $},
^(+) = {/1/е(^П£); ^>0),
^(0)-{/|/е(^п£);
Из (2.22) и из /-нормальности таблицы Ts следует,
что
2 (®) + 2 -^о/ * (®)=
и/ 7 /е^(+) и/ 7 /е^(0) и/ 7
= 2 <,2/(8)+ 2 0.z.(e) = 0+ 2 xL-z/e),
/е#,(+) w ' i<£Ns(0) 1 I^NS<+) 1 1
т. e.
2 xLz,(e) = 0+ 2 xg,-z,(e). (2.49)
t<=Ns Vl 1 leNs(+) v’ 1
Если множество Ns(+) пусто, то из (2.49) и (2.48)
получаем
x0(o2’s(e), £)^хоо« (2.50)
Предположим, что множество Ns(+) не пусто.
Согласно (2.13) и (2.49) имеем
2 h.-x^G. (2.51)
/еу{(+) ' и'
По определению чисел h}
( о,
А/-| L (2.52)
По определению множества ^(+)
х^>0, /еЛГ5(+). (2.53)
Из (2.51), (2.52), (2.53) получаем
ЛГО, /е^(+). (2.54)
С другой стороны, согласно лемме 2.2
signzy(e) = /jy, /еЛГД+), (2.55)
так что
z(e) = 0, /eiV,(+). (2.56)
§ 2]
ТЕОРЕМА ГОМОРИ И БАУМОЛЯ
357
Подставляем (2.56) в (2.49):
2 -^о/ ’ (е)= ^о/' = 2 Xqj -0 = 0,
i^Ns и/ 7 /е^(+) 7 1 ! = NSW 7
т. е.
/Д^/.2/(8) = 0. (2.57)
Из (2.57) и (2.48) вытекает, что
хо s (е)’ £) ^оо1 (2.58)
Итак, во всех случаях (см. (2.50) и (2.58))
Хо(-^'5(в), С)^Хд0. (2.59)
Из (2.59) и (2.42) получаем
х0(^ц(е), C) = xoW(8), С)<
< Хо (е), С) < хоо = хо (^ц, С),
х0(^“(е), С)<х0(^ц, С). (2.60)
Очевидно, что вектор Xs=(xi, ..., *х„) = (xf0,.... х„о)
является планом задачи (^“(е), С), так что
х0(^ц(е), С)>х§о«хо(^ц. С). (2.61)
Объединяя (2.60) и (2.61), получаем
x0(^“(e), С) = х0(«2’“, С).
Теорема 2.1 доказана.
Отметим в заключение, что модифицированная теоре-
ма Гомори и Баумоля легко выводится как частный
случай из следующей теоремы, полученной Ю. Ю. Фин-
кельштейном.
Теорема 2.2. При любом е имеет место оценка
х0(^ц(е), С)<х0(-?’ц, C) + q]±[v,
где
1) v = fo^i • • - »«-i,
ЛИТЕРАТУРА
1. Волков Ю. И., Хохл юк В И., Методы решения цело-
численных задач линейного программирования. В сб. «Матем.
модели и методы оптим. планир.», Новосибирск, «Наука», 1966,
5—35.
2. Гельфанд И. М., Пятецкий-Шапиро И. И., Цет-
л и н М. Л., О некоторых классах игр и игр автоматов. ДАН
СССР, 1963, 152, № 4, 845—848.
3. Гольштейн Е. Г., Юдин Д. Б., Новые направления в ли-
нейном программировании. М., «Сов. радио», 1966.
4. Данилина Г. П., Петрович С. И., Цой А. X., Опти-
мальный синтез транспортной сети. Тр. Ин-та горн, дела АН
Каз. ССР, т. 24, 1967, 23—29.
5. Ж у р а в л е в Ю. И., Локальные алгоритмы вычисления инфор-
мации. I. Кибернетика, 1965, № 1, 12—19.
6. Журавлев Ю. И., Локальные алгоритмы вычисления ин-
формации. II. Кибернетика, 1966, № 2, 1 — 11.
7. Журавлев Ю. И., Об одном классе алгоритмов над конеч-
ными множествами. ДАН СССР, 1963, 151, № 5, 1025—1028.
8. Журавлев Ю. И., Финкельштейн Ю. Ю., Локальные
алгоритмы для задач линейного целочисленного программиро-
вания. В сб. «Проблемы кибернетики», вып. 14, М., «Наука»,
1965, 289—295.
9. 3 у х о в и ц к и й С. И., Авдеева Л. И., Линейное и выпуклое
программирование, М., «Наука», 1967.
9а. Калбертсон Дж., Математика и логика цифровых уст-
ройств. М., «Просвещение», 1965.
10. Канторович Л. В., Математические методы организации
и планирования производства. Л., Изд. ЛГУ, 1939.
11. Корбут А. А., Неоднородные задачи размещения (типа
транспортной). Сб. «Применение математики при размещении
производительных сил», М., «Наука», 1964, 49—53.
12. Корбут А. А., Применение’методов исследования операций
в задачах экономики сельского хозяйства. Сб. «Труды науч-
ного совещания о применении матем. методов в эконом, иссле-
дованиях и планировании», т. VI, М., Изд. АН СССР, 1961,
92—109.
13. Корбут А. А., Целочисленные задачи линейного программи-
рования. В сб. «Эконом.-матем. методы», вып. 2, М., «Наука»,
1965, 141—186.
ЛИТЕРАТУРА
359
14. Корбут А. А., Малинников В. В., Приближенное реше-
ние некоторых неоднородных моделей размещения. Эконом, и
матем. методы, 1965, 1, № 3, 425—441.
15. Корбут А. А., Финкельштейн Ю. Ю., Дискретные за-
дачи математического программирования. Сб. «Теория вероят-
ностей, математическая статистика, Теоретическая кибернетика.
1966» (Серия «Итоги науки»), М., ВИНИТИ, 1967, 59—108.
16. Коробков В. К., О некоторых целочисленных задачах ли-
нейного программирования. Сб. «Проблемы кибернетики»,
вып. 14, М., «Наука», 1965, 297—299.
17. Математические модели и методы оптимального планирования. Сб.
статей под ред. Л. В. Канторовича. Новосибирск, «Наука», 1966.
18. Минц Л. Е., Финкельштейн Ю. Ю., Применение мате-
матических методов и электронно-вычислительных машин для
решения задач размещения промышленности. Сб. «Планир. и
экон.-матем. методы», М., «Наука», 1964, 256—277.
19. Ми х а лев и ч В. С., Последовательные алгоритмы оптимиза-
ции и их применение. Кибернетика, 1965, № 1, 45—56.
20. Михалевич В. С., Последовательные алгоритмы оптимиза-
ции и их применение. II. Кибернетика, 1965, № 2, 85—88.
21. Мих а л ев и ч В. С., Шкурба В. В., Последовательные
схемы оптимизации в задачах упорядочения выполнения ра-
бот. Кибернетика, 1966, № 2, 34—40.
22. Поляк Р. А., Об одной неоднородной транспортной задаче.
Сб. «Матем. модели и методы оптим. планир.», Новосибирск,
«Наука», 1966, 109—115.
23. П о л я к Р. А., О нахождении экстремума в одной задаче типа
транспортной. Материалы к конфер. по опыту и перспекти-
вам примен. матем. методов и ЭВМ в планировании. Ново-
сибирск, 1962.
24. Пятецкий-Шапиро И. И., Волконский В. А., Каза-
кевич Д. М., Л е в и н а Л. В., Решение задач целочислен-
ного программирования методом последовательного сокраще-
ния размерности. Сб. «Эконом.-матем. модели и методы отра-
слевого планир.», Новосибирск, «Наука», 1967, 451—457.
25. Пятецкий-Шапиро И. И., Волконский В. А., Ле-
вина Л. В., П о м а н с к и й А., Об одном итеративном ме-
тоде решения задач целочисленного программирования. ДАН
СССР, 1966, 169, № 6, 1289—1292.
26. Р ы б а ш о в М. В., Д у д н и к о в Е. Е., Сведение задачи о на-
хождении допустимого целочисленного (булева) решения к за-
даче вогнутого программирования. ИАН СССР, техн, киберн.,
1966, № 2, 39.
27. Теплицкий Э. Д., Финкельштейн Ю. Ю., Машинный
эксперимент по решению задач целочисленного линейного про-
граммирования. Экономика и матем. методы, 1968, IV, № 2,
248—251.
28. Филиппович Е. И., Козлов О. М., Об оценке числа ите-
раций в некоторых методах линейного программирования. Сб
«Математические модели и методы оптимального планирова-
ния», Новосибирск, «Наука», 1966, 95—98.
860
ЛИТЕРАТУРА
29. Финкельштейн Ю. Ю., Алгоритм для решения задач цело-
численного линейного программирования с булевыми перемен-
ными. Эконом, и матем. методы, 1965, 1, № 5, 746—759.
30. Финкельштейн Ю. Ю., Об одном алгоритме для решения
задач целочисленного линейного программирования с буле-
выми переменными. ДАН СССР, 1965, 164, № 5, 993—996.
31. Финкельштейн Ю. Ю., Об одном классе задач дискрет-
ного программирования. Эконом, и матем. методы, 1968, IV,
№ 4, 652—655.
32. Финкельштейн Ю. Ю., О полностью целочисленном алго-
ритме Гомори. Сб. «Проблемы кибернетики», вып. 21, М.,
«Наука», 1969.
33. Финкельштейн Ю. Ю., О построении дополнительных
ограничений при решении задач целочисленного линейного
программирования. ИАН СССР, техн, киберн., 1965, № 3,
43—44.
34. Финкельштейн Ю. Ю., О решении задач дискретного про-
граммирования специального вида. Эконом, и матем. методы,
1965, 1, № 2, 262—270.
35. Фихтенгольц Г. М., Курс дифференциального и интеграль-
ного исчисления, т. И, М.—Л., Гостехиздат, 1948.
35а. Хачатуров В. Р., Определение оптимального и всех близ-
ких к нему вариантов размещения предприятий с ограничен-
ными сверху объемами производства. ИАН Каз. ССР, сер.
физ.-матем., 1967, № 3, 38—43.
36. X о х л ю к В. И., Несколько замечаний о машинной реализации
метода Гомори. Доклад на конференции. Таллин, 1967.
37. Ч е р е н и н В. П., Решение некоторых комбинаторных задач
оптимального планирования методом последовательных расче-
тов. Материалы к конф, по опыту и перспективам примен.
матем. методов и ЭВМ в планировании. Новосибирск,
1962.
38. Ч е р е н и g В. П., Решение некоторых комбинаторных задач
оптимального планирования методом последовательных расче-
тов. Научно-методические материалы эконом.-матем. семинара,
вып. 2, ЛЭММи ВЦ АН СССР, М, 1962.
39. Ч е р е н и н В. П., Хачатуров В. Р., Решение методом по-
следовательных расчетов одного класса задач о размещении
производства. Сб. «Примен. матем. методов и ЭВМ в эконом,
исслед.», Ташкент, «Наука», Узб. ССР, 1965, 112—114.
40. Ч е р е н и н В. П., Хачатуров В. Р„ Решение методом по-
следовательных расчетов одного класса задач о размещении
производства. Сб. «Эконом.-матем. методы», вып. 2, М.,
«Наука», 1965, 279—290.
41. Шкур ба В. В., Подчасова Т. П., П ши чу к А. Н.,
Тур Л. П., Задачи календарного планирования и методы их
решения. Киев, «Наукова думка», 1966.
42. Юдин Д. Б., Методы количественного анализа сложных си-
стем. I. ИАН СССР, техн, киберн., 1965, № 1, 3—13.
43. Юдин Д. Б., Методы количественного анализа сложных си-
стем. II. ИАН СССР, техн, киберн., 1966, № 1.
ЛИТЕРАТУРА
361
44. Юдин Д. Б., Гольштейн Е. Г., Задачи и методы линей-
ного программирования. Изд. 2-е перераб. и доп., М., «Сов.
радио», 1964.
45. Юдин Д. Б., Гольштейн Е. Г., Линейное программирова-
ние (теория, методы и приложения). М., «Наука», 1968.
46 А1 с а 1 у R. Е., К 1 е v о г i с k А. К., A note on the dual prices
of integer programs, Econometrica, 1966, 34, № 1, 206—214.
47. Balas E., An additive algorithm for solving linear programs
with zero-one variables. Operat. Res., 1965, 13, № 4, 517—
546.
48. Balas E., Discrete programming by the filter method. Operat
Res., 1967, 15, № 5, 915—957.
49. В a 1 i n s к i M. L., Fixed-cost transportation problems. Naval
Res. Log. Quart., 1961, 8, № 1, 41—54.
50. В a 1 i n s к i M. L., Integer programming: methods, uses, com-
putation, Manag. Sci., 1965, 12, № 3, 253—313.
51. В a 1 i n s к i M. L., Quandt R. E., On an integer program
for a delivery problem. Operat. Res., 1964, 12, № 2, 300—304.
52. В a u m о 1 W. J., Economic theory and operations analysis. Lon-
don, Prentice Hall, 1962. Русский перевод: Б а у м о л ь У., Эко-
номическая теория и исследование операций. М., «Прогресс»,
1965.
53. В е а 1 е Е. М. L., Survey of integer programming. Operat. Res.
Quart., 1965, 16, № 2, 219—228.
54. Bellman R., Dynamic programming treatment of the trave-
ling salesman problem. J. Assoc. Compuf Mach., 1962, 9, № 1,
61—63. Русский перевод: Киберн. сборник., вып. 9, «Мир», 1964,
219—222.
55. В е п - I s г а е 1 А., С h а г n е s A., On some problems of dio-
phantine programming. Cahiers du Centre d’etudes de recherche
operationnelle, 1962, 4, № 4, 215—288.
56. В e г t i e г P., R о у В., Procedure de resolution pour une classe
de problemes pouvant avoir un caractere combinatoire. Cahiers
du Centre d’Etudes de Rech. Open, 1964, 6, 202—208.
57. Bertier P., Roy B., Nghiem Ph. T., Programmes linSai-
res en nombres entiers et procedure S. E. P., Metra, 1965, 4,
№ 3.
58. В e s s i ё г e F., Sur la recherche du nombre chromatique d’un
graphe par un programme lineaire en nombres entiers. Rev.
frang. rech. operat., 1965, 9, № 35, 143—148.
59. Birkhoff G., Three observations on linear algebra. Rev. Univ,
nac. Tucuman, Ser. A, 1946, vol. 5, 147—151.
60. Cooper L, D г e b e s C., An approximate solution method
for the fixed charge problem. «Naval Res. Logist. Quart.», 1967,
14, № I, 101—113.
61. Courtillot M., Sur la resolution des programmes a solu-
tions entieres. Rev. fran$. traitement inform. Chiffres, 1965, 8,
№ 2, 81—94.
62. Dalton R. E., Llewellyn R. W., An extension of the
Gomory mixed-integer algorithm to mixed-discrete variables,
Manag. Sci., 1966, 12, № 7, 562—575.
362
ЛИТЕРАТУРА
63. Dan skin J. M., Linear programming in the face of uncer-
tainty : example of a failure. Proc. 2-nd Sympos. Linear Pro-
gramming, vol. II, 1955, 39—53.
64. D a n t z i g G. B., A machine-job scheduling model. Manag. Sci.,
1960, 6, № 2, 191—196.
65. D a n t z i g G. B., Discrete-variable extremum problems. Ope-
rat. Res., 1957, 5, № 2, 266—277.
66. D a n t z i g G. B., Linear programming and extensions. Prince-
ton, New Jersey, Princeton University Press, 1963. Русский
перевод: Данциг Дж., Линейное программирование, его при-
менения и обобщения. М., «Прогресс», 1966.
67. D a n t z i g G. В., Note on solving linear programs in integers.
Naval Res. Log. Quart. 1959, 6, № 1, 75—76.
68. D antzig G. B., Fulkerson D. R., Johnson S., Solution
of a large-scale traveling salesman problem. Operat. Res., 1954,
2, № 3, 393—410.
69. Day R. D., On optimal extracting from a multiple file data sto-
rage system: an application of integer programming. Operat
Res., 1965, 13, № 3, 482—494.
70. Dinkelbach W., Steffens F., Gemischt ganzzahlige li-
neare Programme zur Losung gewisser Entscheidungsprobleme.
Unternehmensforschung, 1961, 5, № 1, 3—14.
71. D’E s о p о D. A., L e f k о w i t z B., Note on an integer linear
programming model for determining a minimum embarkation
fleet. Naval Res. Log. Quart., 1964, 11, № 1, 79—82.
72. Dwyer P. S., Use of completely reduced matrices in solving
transportation problems with fixed charges. Naval Res. Logist.
Quart, 1966, 13, № 3, 289—313.
73. Faure R., Mai grange Y., Nova metoda celociselneho li-
nearniho programovani. Ekon.-Mat. Obzor., 1966, 2, № 1, 11—20.
74. Faure R., M a 1 g г a n g e Y., Une methode booldienne pour la
resolution des programmes lineaires en nombres entiers. Gestion,
1963, 6, 250—260.
74a. Fleischmann B., Computational experience with the algo-
rithm of Balas. Operat. Res., 1967, 15, № 1, 153—155.
75. Ford L. R., Fulkerson D. R., Flows in networks. Prince-
ton, New Jersey, Princeton University Press, 1962. Русский пере-
вод: Форд Л. Р, Фалкерсон Д. Р., Потоки в сетях. М.,
«Мир», 1966.
75а. Freeman R. J., Computational experience with a «Balasian»
integer programming algorithm. Operat. Res., 1966, 14, № 5,
935—941.
76. Gale D., The theory of linear economic models. New York —
Toronto — London, 1960. Русский перевод: Гейл Д., Теория
линейных экономических моделей. М., ИЛ, 1963.
76а. Le Garff A., Malgrange Y., Resolution des programmes
lineaires a valeurs entieres par une methode booleienne «com-
pacte». «Actes 3-e conf, internal, rech. operationnelle. Oslo,
1963». Paris — London, 1964, 695—701.
77. Gass S. L, Linear programming (methods and applications).
New York — Toronto — London, McGraw Hill, 1958. Русский
ЛИТЕРАТУРА
363
перевод: Гасс С. И., Линейное программирование (методы и
приложения). М., Физматгиз, 1961.
78. Gass S. I., Recent developments in linear programming. Ad-
vances in Computers, vol. 2, New York — London, Acad. Press,
1961, 295—377.
79. G e n u у s F., Application de la programmation lineaire en
nombers entiers a un probleme de decoupe. «Inform. Process.,
1962, Amsterdam», N. Holland Publ. Co., 1963, 195—197.
80. G e о f f r i о n A. M., Integer programming by implicit enumera-
tion and Balas’ method. «SIAM Rev.», 1967, 9, № 2, 178—190.
81. Giglio R. J., Wagner H. W., Approximative solutions to
the three machine scheduling problem. Operat. Res., 1964, 12,
№ 2, 305—324.
82. Glover F., Generalized cuts in diophantine programming.,
Manag. Sci., 1966, 13, № 3, 254—268.
83. G о m о г у R. E., An algorithm for integer solutions to linear
programs. Princeton — IBM Mathematics Research Project, Tech-
nical Report No. 1, November 17, 1958.
84. Go mor у R. E., An algorithm for integer solutions to linear
programs. Recent Advances Math. Program. New York — San
Francisco — Toronto — London, McGraw-Hill Book Co., Inc.,
1963, 269—302.
85. G о m о г у R. E., An algorithm for the mixed integer problem.
Rand. Corp., P-1885, Santa Monica, California, February 22, 1960.
85a. Go mor у R. E., An all-integer integer programming algorithm.
IBM Research Center, 1960, January, Research Report RC-189.
86. Go mor у R. E., An all-integer integer programming algorithm.
In «Industrial scheduling», Englewood Cliffs, New Jersey, Pren-
tice Hall, 1963, ch. 13. Русский перевод: Гомори P. E., Пол-
ностью целочисленный алгоритм целочисленного программиро-
вания. Сб. «Календарное планирование», М., «Прогресс», 1966,
гл. 13.
86а. G о m о г у R. Е., Faces of an integer polyhedron. Proc. Nat
Acad. Sci. U. S. A., 1967, 57, № 1, 16—18.
87. G о m о г у R. E., On the relation between integer and noninte-
ger solutions to linear programs. Proc. Nat. Acad. Sci. U. S. A.,
1965, 53, № 2, 260—265.
88. G о m о г у R. E., Outline of an algorithm for integer solution
to linear programs. Bull. Amer. Math. Soc., 1958, 64, № 5,
275—278.
89. G о m о г у R. E., Solving linear programming problems in in-
tegers. Proc. Sympos. Appl. Math. 1960, vol. X, 211—215.
90. G о m о г у R. E., В a u m о I W. J., Integer programming and
pricing. Econometrica, 1960, 28, № 3, 521—550. Русский пере-
вод: Гомори P. E., Бомоль У. Дж., Целочисленное про-
граммирование и оценки. Сб. «Численные методы оптималь-
ного планирования», Новосибирск, Изд. СО АН СССР, 1962,
65—110
91. Go mor у R. Е.,. Hoffman A. J., On the convergence of an
integer programming process. Naval Res. Log. Quart., 1963, 10,
No 2, 121-123.
364
ЛИТЕРАТУРА
92. Hadley G., Nonlinear and dynamic programming, Reading —
Palo Alto — London, Addison-Wesley Publishing Co., Inc., 1964.
Русский перевод: Хедли Дж., Нелинейное и динамическое
программирование. М., «Мир», 1967.
93. Н а 1 d i J., Isaacson L. M., A computer code for integer so-
lutions, to linear programs. Operat. Res., 1965, 13, № 6,
946—959.
94. Held M., Karp R. M., A dynamic programming approach to
sequencing problems. J. Soc. Industr. and Appl. Math., 1962,
10, № 1, 196—210. Русский перевод: Хелд M., Карп Р. М.,
Применение динамического программирования к задачам упо-
рядочения. Кибернетический сборник, вып. 9, 1964, «Мир»,
202—218.
95. Heller I., Tompkins С. В., An extension of a theorem of
Dantzig’s. «Linear inequalities and related systems». Princeton,
New Jersey, Princeton University Press, 1956. Русский перевод:
Хеллер И., Томпкинс Ч. Б., Обобщение одной теоремы
Данцига. Сб. «Линейные неравенства и смежные вопросы»,
М., ИЛ, 1959, 348—354.
96. Hillier F. S., Connors М. М., Quadratic assignment prob-
lem algorithms and the location of indivisible facilities. Manag.
Sci., 1966, 13, № 1, 42—57.
97. Hoffman A. J., Kruskal J. B., Integral boundary points
of convex polyhedra. «Linear inequalities and related systems»,
Princeton, New Jersey, Princeton University Press, 1956. Русский
перевод: Гофман А. Дж., Краскал Дж. Б., Целочисленные
граничные точки выпуклых многогранников. Сб. «Линейные не-
равенства и смежные вопросы», М., ИЛ, 1959, 325—347.
98. Industrial scheduling. Edited by Muth J. F., Th о m p s о n G. L.,
Englewood Cliffs, New Jersey, Prentice Hall, 1963. Русский пере-
вод: Календарное планирование, М., «Прогресс», 1966
99. I v a n е s с u Р. L., Pseudo-boolean programming and applica-
tions. Lecture notes in mathematics, 9, Berlin — Heidelberg —
New York, Springer-Verlag, 1965.
100. Ivanescu P. L., Rudeanu S., Boolean methods in opera-
tions research, Ekon.-mat. obzor, 1967, 3, № 4, 422—445. .
101. Jacobs W., Loss of accuracy in simplex computation, Naval
Research Logistic Quarterly, 1956, 89—94.
102. Karp R. M., Minimum-redundancy coding for the discrete noi-
seless channel, IRE Transactions of the Professional Group in
Information Theory, 1961, vol. IT-7, № 1, 27—38.
103. Kelley J. E., Techniques for storage allocation algorithms.
Communs. Assoc. Comput. Mach., 1961, 4, № 10, 449—454. . .
104. Klee V., A class of linear programming problems, requiring
a large number of iterations. Numer. Math., 1965, 7, № 4,313—321.
105. Klee V., Heights of convex polytopes. J. Math. Analysis and
Applic., 1965, 11, № 1—3, 176—190.
106. Kuhn H. W., Baumol W. J, An approximative algorithm
for the fixed-charges transportation problem. Naval Res. Log.
Quart., 1962, 9, № 1, 1—15,
ЛИТЕРАТУРА
365
107. К u n z i H. P., О e 111 i W., Integer quadratic programming.
Recent Advances Math. Program., New York — San Francis-
co — Toronto — London, McGraw-Hill Book Co., Inc., 1963,303—
308.
108. К u n z i H. P., О e 111 i W., Une methode de resolution de
programmes quadratiques en nombres entiers sous des fonctions
objectives strictement convexes. C. R. Acad. Sci. Paris, 1961,
252, № 10, 1415—1417.
109. Land A. H., Doig A. G., An automatic method of solving
discrete programming problems. Econometrica, 1960, 28, № 3,
497—520.
110. L a w 1 e r E. L., Bell M. D., A method for solving discrete
optimization problems. Open Res., 1966, 14, № 6, 1098—1112.
111. L a w 1 e r E. L., Wood D. E., Branch-and-bound methods: a
survey. Operat. Res. 1966, 14, № 4, 699—717.
112. Linear inequalities and related systems. Edited by Kuhn H. W.,
Tucker A. W., Princeton, New Jersey, Princeton University
Press, 1956. Русский перевод: сб. «Линейные неравенства и
смежные вопросы», М., ИЛ, 1959
ИЗ. Little J. D. С., Murty К. G., Sweeney D. W., Ka-
rel С., An algorithm for the traveling salesman problem. Ope-
rat Res., 1963, 11, № 6, 972—989. Русский перевод: Лит л Дж.,
Мурти К., С у и н и Д., К э р е л К-, Алгоритм для решения
задачи о коммивояжере. Эконом, и матем. методы, 1965, 1,
№ 1, 94—107.
114. Manne A. S., On the job-shop scheduling problem. Operat
Res., 1960, 8, № 2, 219—223. Reprinted as Ch. 12 in «Indust-
rial scheduling», Englewood Cliffs, New Jersey, Prentice Hall,
1963. Русский перевод: Мэн А. С., Задача календарного пла-
нирования для предприятий единичного н мелкосерийного про-
изводства. Сб. «Календарное планирование», М., «Прогресс»,
1966, гл. 12.
115. Markovitz Н. М., Manne A. S., On the solution of dis-
crete programming problems. Econometrica, 1957, 25, № 1, 84—
110.
116. M a r t i n G. T., An accelerated Euclidean algorithm for integer
linear programming. Recent Advances Math. Program., New
York — San Francisco —Toronto — London, McGraw-Hill Book
Co., 1963, 311—317.
117. Miller С. E., Tucker A. W., Z eml in R. A., Integer pro-
gramming formulation of traveling salesman problems. J. Assoc.
Comput. Mach., 1960, 7, Ks 4, 326—329.
118. Oy ahi a A., Programmes lineaires 1 variables discretes. Rev.
fran$. rech. operat., 1962, 6, № 22, 55—75.
119. Reiter S., Sherman G., Discrete optimizing. J. Soc. In-
dustr. Appl. Math., 1965, 13, № 3, 864—889.
120. Simonnard M., Programmation linfcaire. Paris. Dunod,
1962.
121. Sondermann D., Der kombinierte primal-dual Algorith-
mus —eine neue Simplexmethode. Electron* Rechenanlag., 1967
9, № 1, 32—39.
366
ЛИТЕРАТУРА
122. Srinivasan А. V., An investigation of some computational
aspects of integer programming. J. Assoc. Comput. Mach., 1965,
12, № 4, 525—535.
123. Story A. E.t Wa gn er H. M., Computational experience with
integer programming for job-shop scheduling. In «Industrial
Scheduling», Englewood Cliffs, New Jersey, Prentice Hall, 1963,
ch. 14. Русский перевод: Стори A. E., В а г н e p X. M, Опыт
применения целочисленного программирования при расчете ка-
лендарного плана для предприятий единичного и мелкосерий-
ного производства. Сб. «Календарное планирование», М., «Про-
гресс», 1966, гл. 14.
124. Terebesi М., Bemerkungen zur Verfahren von Gomory zur
Bestimmung ganzzahliger Losungen von linearen Programmen,
Unternehmensforschung, 1961, 5, № 4, 197—215.
125. Thompson G. L., The stopped simplex method. I. Basic the-
ory for mixed integer programming; integer programming. Rev.
fran$. rech. operat., 1964, 8, № 31, 159—182.
126. Wagner H. M., An integer linear programming model for
machine scheduling. Naval Res. Log. Quart., 1959, 6, № 2, 131—
140.
127. W i t z g a 11 C., An all-integer programming algorithm with pa-
rabolic constraints. J. Soc. Industr. and Appl. Math., 1963, 11,
№ 4, 855—871.
128. Young R. D., A primal (all-integer) integer programming al-
gorithm. J. Res. Nat. Bur. Standards, 1965, В 69, № 3, 213—
250.
129* ). Алейников Б. И., М о в ш о в и ч С. Г., Некоторые алго-
ритмы решения многоэкстремальных задач размещения и их
экспериментальное исследование. Сб. «Исследования по мате-
матическому программированию», М., «Наука», 1968, 198—221. *)
*) Добавлено при корректуре.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Алгоритм аддитивный 231—251
— Гомори второй 142—150
---первый 126—136
---третий 166—182
— Дальтона и Ллевелина 150—157
— Данцига 160—166
— Джонсона 264—273
— Литтла, Мурти, Суини и Кэрел
(для задачи коммивояжера) 224—
231
— Мартина 97—98
— проверки Г-матрицы на унимоду-
лярность 327—340
— Финкельштейна (В-алгоритм) 157—
160
— Юнга 98
Базис опорного плана 105
Базисные компоненты 105
— переменные 105
Вершина 103
Ветвление 214—215
Выпуклая линейная комбинация 102
— оболочка 103
— функция 57
Выпуклое множество 102
---многогранное 103
Выпуклый многогранник 103
Грань выпуклого многогранного мно-
жества 103
Задача дихотомическая 44—46
— коммивояжера 39—41, 224—231, 258—
264
— линейного программирования 98—
102
—-----дискретная 13, 150—157
— — — полностью целочисленная 32,
116, 118-139, 166—186
------целочисленная 13, 31—32, 116
---------с булевыми переменными
19, 157—160, 282—287
------ частично целочисленная 32,
116—117, 142—150
— математического программирования
общая 14
Задача математического программи-
рования регулярная 15, 55
— многоэкстремальная 15, 55—61
— на конечном множестве 43
— на невыпуклой области 48—50
— о выборе средств доставки гру-
зов 67
— о загрузке бомбардировщиков 33—
34
— о назначениях 36—38
------ квадратичная 81—82
— о покрытии 41—42, 82
------взвешенная 42, 86
— о развозке 68—69
— о ранце 34—35
------ многомерная 35
------обобщенная 251—258
— о распределении памяти ЭВМ 92—
93
— размещения 69—78
— раскроя 93—94
— распределения тракторных работ
95-96
— распределительная 63
---с фиксированными доплатами
65—66, 313-315
— реконструкции 70—71
— синтеза схем 83—88
— с многократными альтернативами
46—48
— с неделимостями 19, 31—35
— с разрывной целевой функцией
51—55
— с условными ограничениями 50—51
— с фиксированными доплатами 53—
55, 315-319
— теории расписаний 89—92
— транспортная 18, 27—31, 61—62,
327-340
---с фиксированными доплатами
51—53, 62, 300-313
— унимодуляриая 18, 320—327
— финансирования проектов 94—95
Крайняя точка 102
Лексикографическая модификация
метода последовательного уточне-
ния оценок (лексикографический
двойственный симплекс-метод, /-ме<
тод) 114
368
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Лексикографически неотрицательный
вектор 108
оптимальный (/-оптимальный) план
(лексикографический оптимум) 108
— положительный псевдоплан (/-псев*
доплан) 109—110
---- вектор 108
Лексикографический вариант задачи
линейного программирования (/-за-
дача) 114
Лексикографическое упорядочение
векторов 108
Локальная оптимизация 27, 293—300
Локальный подход 26, 273—282
Метод Балинского 304—306
ветвей и Границ 25, 213—219
е- Лэнд и Дойг 25, 219-224
— минимального элемента 29—30, 303
— отсечения 23, 118—126
— последовательного улучшения пла-
на 112-114
— — уточнения оценок 114—116
₽- последовательных расчетов 26,
287-290
— случайного поиска 26—27, 290—300
—> Фора и Мальгранжа 26, 282—287
Направляющий элемент 111
Небазисные компоненты 105
переменные 105
Опорный план 104
«---канонической задачи линейнрго
программирования 105
Оптимальный план задачи линейного
программирования 99
------целочисленного линейного
программирования 117
Отсечение правильное 124—125
Отсечение целочисленное правильное
168-169
Оценка двойственная 343
План (допустимое решение) задачи
линейного программирования 99
---------целочисленного линейного
программирования 117
Псевдобулево программирование 26
Псевдоплан 107
Разрешающие множители 343
Расширенный оптимальный план за-
дачи линейного программирования
99
—--------целочисленного линейного
программирования 117
— план задачи линейного програм-
мирования 99
------целочисленного линейного
программирования 117
— псевдоплан 107
Симплекс-метод (прямой) 112—114
— двойственный 114—116
Симплексная таблица допустимая 107
----лексикографически нормальная
(/-нормальная, лексикографически
двойственно-допустимая) 109
— нормальная (двойственно-допу-
стимая) 107
----полная 106
----сокращенная 106
----целочисленная 118
Случайный поиск 26—27, 290—300
Целочисленный многогранник 118.
320-340
Элементарное преобразование !П