Книга
Книга
АКАДЕМИЯ НАУК УКРАИНСКОЙ ССР
ИНСТИТУТ КИБЕРНЕТИКИ имени В. М. ГЛУШКОВА
И. В. Сергиенко
МАТЕМАТИЧЕСКИЕ МОДЕЛИ И МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ
Издание второе, дополненное и переработанное
КИЕВ НАУКОВА ДУМКА 1988
УДК 007: 518.9
Математические модели и методы решения задач дискретной оптимизации. Сергиенко И. В.— 2-е изд., доп. и перераб.— Киев : Наук, думка, 1988.— 472 с. — ISBN 5-12-009339-6.
В монографии рассмотрены математические модели, эффективные методы и программное обеспечение решения задач дискретной оптимизации. Значительное внимание уделено формализованному описанию ряда практических задач, повышению эффективности методов решения задач за счет максимального учета их специфики. Изучены методы точного и приближенного решения задач полностью и'частично целочисленного линейного программирования, параметрического целочисленного программирования, комбинаторной оптимизации, многокритериальных задач и др. Исследованы вопросы устойчивости, параметрического и постоптимального анализа, а также вопросы совпадения глобального и локального экстремумов в задачах дискретного программирования. Описаны подходы к решению оптимизационных задач, которые использованы при разработке ряда пакетов программ для решения задач рассматриваемого класса. Многочисленные данные вычислительного эксперимента иллюстрируют эффективность приведенных методов при решении практических задач.
Для математиков, экономистов, инженеров и специалистов в области прикладной математики и информатики, а также для студентов и аспирантов, интересующихся проблемами разработки и применения методов и моделей дискретного программирования.
Ил. 19. Табл. 41. Библиогр.: С. 459—471 (322 назв.)
Ответственный редактор Н. 3. ШОР
Р е ц е н з е н i ы И. И. ЛЯШКО, Ю, М, ЕРМОЛЬЕВ
Редакция физико-математической литературы
С W00000M41.
М221(04)-881
ISBN 5-12-009339-6ISBN 5-12-009339-6© Издательство «Наукова думка», 1988
ISBN 5-12-009339-6
ISBN 5-12-009339-6
ОГЛАВЛЕНИЕ
Предисловие 7
Глава /
О результатах исследований по разработке математических и программных средств, предназначенных для решения задач оптимизации 10
Задачи дискретного программирования. Предварительные замечания 10
О разработке алгоритмов решения задач, использующих идеи методов отсечений и ветвей и границ 20
Последовательные алгоритмы оптимизации и их применение 30
Приближенные методы решения дискретных оптимизационных задач ф „36
Программные средства решения задач оптимизации . . 45
Глава 2
Точные методы 56
Декомпозиционный метод последовательного анализа вариантов для решения задач ЦЛП 56
Метод ветвей и границ 65
j 3. О некоторых результатах использования метода ветвей и границ для решения задач дискретного программирования 70
| 4. Метод лексикографических отсечений 75
j 6. P-Метод решения задачи с булевыми переменными 81
| в. Алгоритм решения задач ЦЛП с двухсторонними ограничениями на переменные 85
Применение метода построения последовательности планов к решению одной задачи ЦЛП с булевыми переменными 89
Один подход к анализу структуры задач целочисленного программиро- пмния и алгоритмов отсечения 93
Глава м
Метод вектора спада и его модификации 99
Общий схема метода вектора спада 99
Особенности реализации общей схемы метода вектора спада при решении аадяч целочисленного программирования различных гипов . .. . ЮЗ
Метод направляющих окрестностей для решения выпуклых задач целочисленного программирования ... . Щ
Применение метода вектора спада в декомпозиционных схемах решения аадач ЦЛП 115
Г лава 4
Некоторые другие методы приближенного решения дискретных задач . . . . 123
//-Метод решения оптимизационных задач частично целочисленного программирования 123
Один подход к решению задач ЦЛП127
Об использовании идей симплекс-метода при решении задач ЦЛП . . . 128
Приближенные алгоритмы с гарантированными оценками136
Глава 5
Алгоритмы разбиения для решения задач математического программирования со смешаннымипеременными143
Метод Вендерса 143
Приближенныйалгоритм 146
Применение метода Вендерса для решения одного типа частично целочисленных оптимизационных задач .. . . 150
Приближенное решение частично целочисленных оптимизационных задач 155
Применение метода Вендерса для решения задач частично целочисленного программирования специального вида 157
Решение одной задачи обобщенного целочисленного программирования 164
Глава b
Вопросы устойчивости, параметрический и постоптимальный анализ задач дискретной оптимизации 1.69
Общая постановка проблемы 169
Постоптимальный и параметрический анализ задач ЦЛП на основе метода Гомори.. . ..177
Процедуры постоптимального анализа на основе метода ветвей и границ 183
Постоптимальный анализ задач ЦЛП с использованием теории двойственности 195
Анализ устойчивости решений на основе теории точечно-множественных отображений 197
Определениеобластей устойчивости решений в задачах ЦЛП203
Вопросы устойчивости для траекторных задач. Устойчивость и 8-устойчивость системы линейных неравенств и линейной задачи дискретной оптимизации 207
Один подход к решению задач ЦЛП в условиях неопределенности коэффициентов 210
Глава 7
Модели и методы параметрического целочисленного программирования . . . 212
Приближенное решение задачи ЦЛП с параметром в целевой функции 212
Алгоритм приближенного решения задачи ЦЛП с параметром в правых частях ограничений .. .215
Задача целочисленного программирования с параметром в целевой функции и одном из ограничений 220
Исследование допустимой области задач целочисленного программирования с целочисленным параметром 232
Решение задач ЧЦЛП с помощью методов параметрического программирования 241
сследование устойчивости целевой функции и матрицы условий задачи ЦЛП относительно локального решения 245
Глава 8
Модели и алгоритмы решения некоторых прикладных задач дискретного программирования .250
Задача определения оптимального грузопотока на сети с условием сохранения баланса на дугах .250
Применение метода вектора спада для приближенного решения задач минимизации пробега порожних транспортных единиц .. 260
Задача определения оптимального варианта развития электрической сети 266
Формализация одной задачи автоматизированного проектирования печатных плат .. . .. 268
Исследование и решение одного класса целочисленных многокритериальных задач землепользования 270
Глава 9
Формализация и решение оптимизационных задач комбинаторного типа . . . 294
Общая постановка комбинаторной задачи и некоторые подходы к ее решению .294
Формальное представление задачи кластеризации в комбинаторном пространстве .. , . 306
Задачи эффективной организации обработки данных в вычислительных системах . 308
Декомпозиционные схемы решения одного класса задач экспонирования 311
Формализация и исследование одного специального класса задач размещения . .. .318
Об устойчивости вычислительной схемы метода вектора спада при решении одного класса комбинаторных задач 327
Исследование условий локальной оптимальности решения одной специальной задачи . .... .. 330
Вопросы многокритериальной оптимизации при решении комбинаторных задач 333
Глава 10
Исследование некоторых вопросов выпуклого анализа при решении задач дискретной оптимизации .... ..347
Условия совпадения локального и глобального экстремумов в задачах оптимизации. Понятие г -выпуклости .348
d-Выпуклый анализ 354
Координатно-выпуклые функции 357
Аксиоматический подход к вопросу об условиях совпадения локального и глобального минимумов в задачах дискретной оптимизации 361
Глава 11
Вопросы разработки пакетов программ374
Вводные замечания и уточнение некоторых понятий374
О применении результатов теории распознавания для автоматизированного выбора алгоритмов решения задач в пакетах программ384
Об одной технологии построения системного обеспечения пакетов программ 393
Особенности построения пакетов программ для решения задач оптимизации 401
Глава 12
О математическом обеспечении пакетов программ семейств ДИСПРО и ВЕКТОР-2406
Некоторые результаты экспериментального исследования эффективности методов, включенных в пакет программ ДИСПРО406
Пакет программ ДИСПРО-3 426
Пакет программ ВЕКТОР-2445
Список литературы 459
ПРЕДИСЛОВИЕ
В последние годы область применения методов дискретного программирования значительно расширилась. Этому способствовало то обстоятельство, что многие важные задачи проектирования, планирования, размещения, классификации и управления хорошо описываются с помощью различных моделей дискретного программирования. Появилось большое количество публикаций, в которых предлагаются новые подходы к решению задач дискретной оптимизации, исследуется эффективность известных методов, описываются создаваемые программные средства, предназначенные для реализации системного подхода к решению на ЭВМ дискретных оптимизационных задач. Однако монографий, обобщающих опыт решения задач дискретного программирования, опубликовано недостаточно.
Особую актуальность в настоящее время приобретают проблемы изучения эффективности методов и соответствующих программных средств, оценки точности решений, получаемых с помощью приближенных методов исследования устойчивости математических моделей, построения диалоговых пакетов прикладных программ, позволяющих не только эффективно решать заранее заданные типы задач дискретной оптимизации, но и допускающих автоматизацию своего усовершенствования и расширения круга решаемых задач, предоставляющих возможность эффективно проводить в интерактивном режиме исследование различных используемых алгоритмов. Это позволит повысить «живучесть» программных средств, осуществлять постоянное обновление используемых математических методов, существенно расширить сферу применения аппарата дискретного программирования
В предлагаемой монографии обобщается накопленный в Институте кибернетики им. В. М. Глушкова АН УССР опыт разработки и исследования различных математических методов и моделей дискретного программирования, создания пакетов прикладных программ, предназначенных для решения таких задач. Основная часть работ, описанных в книге, выполнена под руководством автора в последние семь — десять лш
Появлению многих работ автора по дискретному программированию, а следовательно, и данной монографии в известной мере способствовали работы В. С. Ми- халевича по теории оптимизации
При разработке значительной части рассмотренных в данной работе алгоритмов особое внимание обращалось на их эффективность при решении дискретных оптимизационных задач большой размерности (в том числе на возможность получения с их помощью допустимых приближенных решений), а гакже на возможность их использования при решении задач в диалоговом режиме. Последнее весьма важно, так как большинство практических задач имеет большую размерность, а применение челове-
ко-машинных процедур для их решения позволяет значительно снизить затраты времени на достижение приемлемого решения
В предлагаемом читателю втором издании данной монографии (по сравнению с ее первым изданием) больше внимания уделено проблеме исследования отдельных классов задач дискретного программирования и подходам к их решению, разработке алгоритмов решения различных задач целочисленного программирования, вопросам создания пакетов программ. Имеется гакже дополнительный список литературы, ссылки на который в тексте сопровождаются буквой Д. Например, [ДЗ, 5] означает ссылку на третий и пятый номера в дополнительном и основном списках литературы соответственно.
Монография состоит из двенадцати глав.
Первая глава носит вводный характер. Она содержит обзор работ по дискретной оптимизации, вышедших в свет за последние годы как в нашей стране, так и за рубежом. Значительное место отведено в ней характеристике работ данного направления, выполненных в Институте кибернетики. Здесь же вводится ряд используемых в последующих главах понятий, рассматриваются основные постановки задач дискретного программирования, а также кратко характеризуются основные подходы к решению этих задач.
Вторая глава посвящена точным методам решения задач дискретной оптимиза’ ции. В третьей и четвертой главах изучаются приближенные методы решения задач целочисленного программирования, а также вопросы их использования на практике.
В пятой главе исследуются метод декомпозиции Вендерса и его модификации для решения задач математического программирования со смешанными переменными. Изучаются также вопросы решения одной задачи обобщенного целочисленного программирования.
Проблемы параметрического дискретного программирования, вопросы устойчивости решений и параметрического анализа обсуждаются в последующих двух гла" вах: в шестой дается достаточно полный обзор литературы по данным воьросам, в седьмой — значительное внимание уделено оригинальным результатам, получен, ным под руководством автора в этом направлении.
Описание некоторых содержательных постановок и математических моделей прикладных задач дискретного программирования приведено в восьмой главе. Для задачи определения оптимального грузопотока на транспортных предприятиях предлагаются точный и приближенный алгоритмы, учитывающие специфику задачи. Здесь же исследуются вопросы решения одного класса целочисленных многокритериальных задач.
Задачам комбинаторного типа, а также вопросам формального описания некоторых из них и разработке методов решения задач данного типа посвящена девятая глава.
В десятой главе рассматриваются некоторые вопросы выпуклого анализа, нашедшие, в частности, свое приложение при исследовании условий совпадения локальных и глобальных экстремумов в задачах дискретной оптимизации.
В двух заключительных главах обсуждаются вопросы построения современных пакетов программ. В частности, кратко описаны отдельные аспекты разработки пакетов программ семейств ДИСПРО и ВЕКТОР-2, предназначенных для решения задач дискретного программирования.
В процессе написания данной монографии автору приходилось неоднократно обсуждать рассматриваемые в ней вопросы с академиками А. А. Дородницыным и
В. С. Михалевичем, чл.-кор. АН СССР Ю. И. Журавлевым и чл.-кор. АН УССР Ю. М. Ермольевым, докторами физико-математических наук В. А. Емеличевым, В. П. Солтаном, В. А. Трубиным, Ю. Ю. Черваком, Н. 3. Шором, доктором технических наук В. Л. Волковичем, кандидатами физико-математических наук М. М. Ковалевым, А. А. Колоколовым, В. А. Перепелицей. Их советы использованы при написании книги, а отдельные результаты этих ученых освещены в ней.
Часть материала, приведенного в книге, была получена в процессе совместной работы автора с его учениками и коллегами — В. И. Артеменко, Л. Ф. Гуляницким, М. Ф. Каспшицкой, Л. Н. Козерацкой, Т. Т. Лебедевой, И. Н. Парасюком/В. А. Рощин. Автор приносит искреннюю благодарность всем, кто принимал участие в под. готовке рукописи к печати.
Глава 1
О РЕЗУЛЬТАТАХ ИССЛЕДОВАНИЙ ПО РАЗРАБОТКЕ МАТЕМАТИЧЕСКИХ И ПРОГРАММНЫХ СРЕДСТВ, ПРЕДНАЗНАЧЕННЫХ ДЛЯ РЕШЕНИЯ ЗАДАЧ ОПТИМИЗАЦИИ
В настоящей главе дается краткий обзор полученных в последние годы результатов в области разработки новых математических и программных средств, ориентированных на решение задач оптимизации. Основное внимание уделяется работам, в которых изучаются модели, методы и пакеты программ (ПП), предназначенные для решения задач дискретной оптимизации (ДО). Это объясняется прежде всего тематической направленностью предлагаемой книги и, разумеется, научными интересами ее автора. Ряд работ, цитируемых ниже и прямо не относящихся к проблематике дискретного программирования, упоминается нами в связи с их определенным влиянием на развитие соответствующих методов и программных средств. Достаточно полные обзоры по данному направлению имеются не только в виде отдельных статей [50, 70, 84, 99, 164, 185, 207], но и содержатся в ряде известных монографий [43, 44, 71, 94, 96, 105, 134, 137, 145, 151, 163, 178, ДЗ, Д68]. Поэтому материал настоящей главы не претендует на полноту и может рассматриваться как некоторое дополнение к уже имеющимся обзорам.
Так как в данной и последующих главах будут изучаться различные вопросы, связанные с решением дискретных оптимизационных задач, приведем основные математические постановки этих задач.
ЗАДАЧИ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ. ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Общая задача дискретного программирования может быть представлена следующей математической моделью.
Пусть х = (хь ..., xn) ^ Rn — вектор переменных, для каждой из которых определено множество О, ее возможных значений (не обязательно целых); предполагаем, что хотя бы одно из множеств D( (1 ^ ^ / ^ п) конечно или счетно (имеются в виду счетные множества без предельных точек) в 7?1; Rn — множество, элементами (точками, векторами) которого являются все упорядоченные наборы из п действительных чисел; / (х) — целевая функция, наименьшее или наибольшее значение которой необходимо найти; /, (х); i = 1, . , т — функции, с помощью которых задается область, ограничивающая изменения переменных X/. С учетом введенных обозначений математическую
модель общей задачи дискретного программирования запишем так: найти вектор х* — (х*> ..., х„), доставляющий минимум или максимум функции цели, т. е.
extf(x),(1.1)
при выполнении ограничений
Мх)Д^ -,»0, Z-1, ...,т,(1.2)
x^Dp j = 1, ... , п.(1.3)
В дальнейшем под допустимым решением задачи (1.1) — (1.3) будем понимать любой вектор х — (хт, ..., хп) £ Rn, удовлетворяющий условиям (1.2), (1.3). Оптимальным решением задачи дискретного (частично дискретного) программирования (1.1) — (1.3), как обычно, назовем допустимое решение, при котором функция цели / (х) достигает своего экстремального значения.
Задача (1.1) — (1.3) называется полностью дискретной, если все множества Dh / = 1, ..., п, конечны или счетны. В противном случае данная задача называется частично дискретной.
В зависимости от вида функций /, /ь /2, ..., fm задача (1.1) — (1.3) может быть задачей как линейного дискретного программирования, так и нелинейного. Для линейных дискретных задач эти функции представимы в виде
Цх) = X qxt; ft(x) = 5 aijXi—bt, i= 1in, (1.4) 1=11=1
где ch at/, bi — заданные константы. Задача (1.1) — (1.3) будет нелинейной, если хотя бы одна из функций L f19 ..., fm не представима в виде (1.4). Нелинейные дискретные задачи, как правило, характеризуются повышенной сложностью. Но особенно возрастают трудности вычислительного характера при решении задач (как линейных, так и нелинейных) вида (1.1) — (1.3) в связи с их большой размерностью (сотни тысяч переменных и ограничений и более).
Ясно, что в зависимости от конкретного содержания решаемых задач приходится отыскивать в одних случаях наибольшее значение функции цели / (х), а в других — наименьшее (разумеется, при соблюдении условий (1.2), (1.3)).
Среди задач дискретного программирования наиболее распространенными являются задачи целочисленного программирования, в которых должно выполняться требование целочисленности всех или части переменных, xh /С {L .., т\, т. е. переменных, для которых множество D, представимо в виде
D^ -{О, 1, 2, ... }(1.5)
(в первом случае говорят о полностью целочисленных, а во втором — о частично целочисленных задачах). Задачи этого типа являются наиболее изученными.
Впервые задача целочисленного программирования была сформулирована в 1932 г. венгерским математиком Эгервари. Систематиче-
ское изучение задач этого класса началось лишь в 1955 г., когда была поставлена известная задача о ранце.
Значительный интерес на практике представляют задачи целочисленного линейного программирования (ЦЛП). В принятых нами обозначениях общая постановка этих задач может быть сформулирована так: найти вектор х = (xv ...» х^, доставляющий минимум (максимум) функции
Hx^^CjX,(1.6)
при выполнении условий
а^х, {<,=,>} Ьь/и;(1.7)
/-1
%/> 0, / — 1, ... , п,(1.8)
Xj — целое, /= 1, .. . , n^ ^^пу(1.9)
Если nt = п, то формулы (1.6) — (1.9) описывают модель полностью целочисленной задачи линейного программирования, в противном случае они определяют задачу частично целочисленного линейного программирования (ЧЦЛП).
Заметим, что требование целочисленности в модели (1.6)— (1.9) вносит принципиальные трудности в процесс решения соответствующих задач по сравнению с задачами линейного программирования (ЛП) и в общем случае делает невозможной замену решения задачи (1.6)— (1.9) решением задачи (1.6) — (1.8) с последующим округлением компонент найденного решения до ближайших целых чисел.
Частным случаем общей задачи (1.1)—(1.3) являются задачи дискретного программирования с булевыми переменными, т. е. задачи, для которых дополнительно должно выполняться условие
D, = {0,1}, / = 1, ...,пг (п^п).(1.10)
Многие реальные процессы описываются моделями ЛП с булевыми переменными, т. е. моделями вида (1.6) — (1.9), в которых условие (1.9) заменено условием вида
х,т 1), /=1П.(1.11)
Представляют интерес также задачи ЛП со смешанными переменными, в которых одна часть — целочисленные переменные, а другая — булевые. В моделях этих задач условия (1.11) заменяются условиями
х,€ {0, 1. 2, ... }, /= 1, ... , пг;
*z€{0, U. /-П1+ 1,. п.‘
В виде отдельного подкласса задач в дискретном программировании часто выделяются частично целочисленные задачи, в которых условия (1.9), (1.11) или (1.12) наложены не на все переменные, а лишь на некоторую их часть. Другими словами, только часть переменных является булевыми или смешанными, остальные могут быть непрерывными
Этот класс задач сравнительно мало изучен, хотя на практике подобные задачи^ встречаются довольно часто.
Важный класс дискретных оптимизационных задач составляют так называемые оптимизационные задачи комбинаторного типа. При их решении отыскивается экстремальное значение некоторой целевой функции, определенной на заданном конечном множестве. Общая постановка задач этого класса представляется следующей простой моделью.
Пусть Л — конечное дискретное множество. Комбинаторным пространством D назовем совокупность всех объектов определенного вида, полученных из элементов множества Л (это могут быть, например, сочетания, перестановки, размещения и др.). Под оптимизационной задачей комбинаторного типа понимают следующую: найти значение F (х) целевой функции F (х) из уравнения
F (х^ ext F (xV(1.13)
<^G^D
Решение комбинаторных оптимизационных задач основывается на использовании, прежде всего, конечности множества G и специфики решаемой задачи. Многие из задач этого типа могут быть сведены к задачам целочисленного программирования, однако такое сведение далеко не гарантирует того, что мы добьемся существенного уменьшения сложности решения задачи. Скорее наоборот, задачу, записанную в терминах целочисленного программирования, будет решить еще сложнее, так как она может иметь большую размерность и, кроме того, уже нельзя будет эффективно воспользоваться се комбинаторными свойствами. Заметим, что в теоретическом плане в [207] установлены достаточные условия сводимости комбинаторных оптимизационных задач к задачам ЦЛП, а также показано, что не существует общего метода такого сведения, если даже оно возможно.
Особую область исследований в дискретном программировании составляют параметрические задачи, которые в общем случае заключаются в поиске для каждого значения параметра X (из заданного множества А) такого вектора х^ , при котором достигается экстремум целевой функции F (х, X), т. с.
F (^х\ X) = ext F (х, X),
при ограничениях (1.3) и
gdx> X) {^, =, >} 0, i = 1, ... , т, где F (х, X) и gt (х, X) — заданные числовые функции. Задачи этого вида служат удобным инструментом для проведения параметрического анализа задач дискретной оптимизации, который непосредственно связан с исследованием устойчивости получаемых решений и постоптимальным анализом указанных задач.
На практике многие важные задачи описываются с помощью приведенных выше дискретных моделей; при этом учитывая реальное содержание задачи, нередко удается записать, например, матрицу ограничений (т. е. коэффициенты в условиях (1.2)), в некотором специаль-
ном виде, чем в дальнейшем можно по существу воспользоваться для упрощения решения задачи. К настоящему времени накопился уже значительный опыт в постановке и решении задач дискретного программирования специального вида. Они имеют важное теоретическое и особенно прикладное значение, так как их применение на практике позволяет зачастую значительно повысить эффективность вычислений. Нередко удастся за счет удачного использования специфики таких моделей найти оптимальное решение задач сверхбольшой размерности за приемлемое время. Здесь необходимо учитывать, что большинство дискретных оптимизационных задач относится к числу сложных (NP- сложных), и поэтому использование для их решения быстродействующих ЭВМ само по себе еще нс решает проблему. Должны быть разработаны к тому же и эффективные математические методы (в том числе и их современное программное обеспечение) для решения этих задач.
В последующих параграфах данной главы приводится обзор работ по дискретному программированию, а в монографии в целом уделено значительное внимание математическим моделям дискретного программирования специального вида.
Остановимся кратко на отдельных подходах к оценке эффективности алгоритмов решения дискретных задач оптимизации.
Известно, что проблема сравнения вычислительных возможностей отдельных алгоритмов многогранна и весьма сложна. В последние годы интерес к ней еще больше усилился в связи с развитием, с одной стороны, ЭВМ и систем их программного обеспечения, прежде всего ПП, а с другой — методов и моделей дискретного программирования. Ведь при разработке современных ПП очень важен отбор для реализации наиболее эффективных алгоритмов, оценка получаемых результатов решения практических задач, правильное сочетание узкоспециализированных (значит, и высокоэффективных) алгоритмов решения отдельных типов задач и наиболее общих методов решения широких классов задач ДО. Эти и подобные им вопросы особенно актуальны в связи с тем, что с помощью ПП должны решаться на протяжении многих лет задачи массового характера, а модернизация математического обеспечения ПП затруднительна и, вообще говоря, не всем пользователям под силу. Следовательно, именно от разработчиков ПП и математических методов требуется проведение тщательного предварительного анализа интересующих их алгоритмов.
Самыми важными с практической точки зрения являются две основные характеристики алгоритмов: трудоемкость, или время решения задачи с помощью данного алгоритма на ЭВМ заданного типа, и объем памяти, используемый при реализации алгоритма. Разумеется, и другие характеристики алгоритмов в ряде случаев не менее важны. Эго, например, такие, как чувствительность к размерности задачи и ошибкам вычислений, точность (абсолютная или относительная) решения задачи, которую позволяют достичь алгоритмы при заданных ограничениях на ряд других параметров вычислительного процесса (например, на время решения задачи, объем используемой памяти в процессе решения и др.); возможность эффективного использования алгоритмов на ЭВМ, реализующих параллельные вычисления; широта класса
практических задач, эффективно решаемых с помощью данного математического метода, и др.
До последнего времени на практике часто для оценки эффективности алгоритмов использовали вычислительный эксперимент, проводя решение на ЭВМ тестовых и практических задач в заданном количестве. Такой подход обычно является самым доступным, хотя и не лишен известных недостатков: его результаты сильно зависят от выбора типа ЭВМ и решаемых на них задач, в том числе от их исходных данных; проведение эксперимента требует, как правило, значительных материальных затрат и совместных усилий многих специалистов: он нс даст в общем случае окончательного ответа на главный вопрос: при соблюдении каких условий следует считать данный алгоритм самым эффективным из числа заданных (испытуемых) Опыт разработки крупных программных систем (например, ПП ДИСПРО [Д43], ПЛАНЕР [98], ВЕКТОР [33] и др.) показал, что, несмотря на отмеченные недостатки, данный подход позволяет реально решать целый ряд вопросов аргументированного выбора алгоритмов, наиболее подходящих для реализации в системах математического обеспечения ПП.
Заметим, что постановка эксперимента по исследованию заданного набора различных алгоритмов при решении тестовых и практических задач предполагает тщательную проработку всех его основных этапов: аргументацию выбора тестовых (или практических) задач и типа ЭВМ, на которой реализуются эти алгоритмы; обеспечение однотипности используемых стандартных программистских средств и приемов при написании программ; использование единой методики для проведения детального анализа машинного эксперимента; решение ряда других вопросов. Выбор и решение тестовых задач должны, естественно, удовлетворять определенным условиям:
органическое наличие трудностей, характерных для исследуемого типа задач, которые могут встретиться при применении данного алгоритма;
наличие по существу различных тестовых задач в наборе задач, который должен быть достаточно представительным;
решение тестовых задач в условиях, максимально приближенных к реально существующим на практике (учесть возможности решения их при различных размерностях, частоте изменения исходных данных и т. п.);
учет как типичных, так и редко встречающихся особенностей исследуемого класса задач;
решение одних и тех же тестовых задач с помощью различных алгоритмов заданного набора в идентичных условиях, исключающих возможность влияния на вычислительный процесс каких бы то ни было посторонних воздействий (имеется в виду использование для этих целей одной и той же ЭВМ с заданным множеством ее стандартного математического и технического обеспечения, исключение возможности влияния на процесс решения задачи возможных сбоев в работе ЭВМ и другого оборудования).
Учитывая сказанное, вполне объясним повышенный интерес к строгим теоретически обоснованным подходам к решению проблемы
оценивания качества алгоритмов, выявлению резервов повышения эффективности вычислений на ЭВМ. Центральным среди них и, пожалуй, наиболее интересно развивающимся является подход, связанный с использованием теории сложности вычислений. Здесь ограничимся кратким описанием отдельных положений и сведений из этой теории, которые могут быть полезными для общего представления о возможных путях ее применения для оценки отдельных алгоритмов и вычислительной сложности задач. Детально данная теория достаточно полно изложена в монографии [35] (там же можно найти и ссылки на многочисленные работы, опубликованные по данному вопросу).
Эффективными принято считать такие алгоритмы, для которых время решения задачи и требуемая память являются степенными функциями от ее размерности. Наоборот, алгоритмы, состоящие в переборе всех возможных вариантов, количество которых экспоненциально зависит от размерности решаемой задачи, называют неэффективными. Ясно, что один и тот же алгоритм может быть эффективным на одном классе задач и неэффективным на другом.
Начало развития теории сложности вычислений (эффективной сводимости переборных задач) справедливо связывается с появлением известных работ Кука [901], Карпа [210] и Левина [216]. Именно они послужили основой для развития данного подхода к исследованию эффективности алгоритмов и сложности задач, способствовали появлению множества теоретических исследований по данной проблематике.
Одним из основных понятий, используемых в данном подходе, является сводимость задач. Под задачей принято понимать весь класс однотипных вопросов, различающихся входными данными. Пусть ах и а2 — переборные задачи. Считают, что задача ах сводится к задаче а2, если алгоритм решения задачи а2 можно преобразовать в алгоритм решения задачи аР Если это преобразование осуществимо за полиномиальное время, то сводимость называется полиномиальной.
Следующими важными понятиями теории сводимости являются классы задач Р и NP. Под классом Р задач понимают все множество переборных задач, которые разрешимы на машине Тьюринга за полиномиальное время, а под классом NP задач — все переборные задачи. Ясно, чтоР ^ NP. Один из центральных вопросов, который изучается в теории сводимости задач: совпадают ли классы Р и NP? Пока аргументированного ответа на него нет.
Заметим, что иногда класс NP определяют как класс, состоящий из задач, которые можно решить за полиномиальное время с помощью недетерминированного алгоритма.
Недетерминированный алгоритм, в отличие от детерминированного, для любого текущего состояния может определить более, чем одно следующее состояние, т. с. он может находиться сразу во многих со-, стояниях. Недетерминированный алгоритм исследует одновременно все возможные альтернативы af, г = 1, .... /г, и создаст свои собственные «копии» для каждой at. «Копии» работают независимо друг от друга, а та из них, в результате работы которой получено решение, «объявляет» о своем успехе. Время работы алгоритма (1д в этом случае совпа-
дает со временем работы этой «копии». Очевидно, что никакое физическое устройство не способно на неограниченное недетерминированное иоведение. Недетерминированные алгоритмы — это абстракция, которая позволяет игнорировать некоторые проблемы программирования поиска с возвращением и исследовать все возможные пути решения задачи. В этих алгоритмах всегда есть пути успешного вычисления за время, полиномиальное относительно размерности задачи.
Так как класс недетерминированных алгоритмов шире класса детерминированных, то очевидно, что Р a NP
Отметим, чтов классе NP существуют эталонные по сложности так называемые универсальные или /VP-полные задачи, к которым полиномиально сводится любая задача из NP. Эти задачи эквивалентны Друг другу с точки зрения их вычислительной сложности.
Многие важные практические задачи являются WP-полными. К ним относятся, например, проблема существования допустимого решения для задач ЦЛП, сама общая задача ЦЛП, задачи теории расписаний, задачи размещения, дискретная задача о многопродуктовом потоке и др.
Если доказать, что какая-либо из универсальных задач является задачей из класса Р, то этим будет доказано совпадение классов Р и NP, и можно надеяться на построение эффективных методов для решения широких классов задач. Поскольку вопрос совпадения классов Р и NP является открытым, в настоящее время необходимо обратить внимание на разработку эффективных алгоритмов для все более узких классов дискретных задач, максимально учитывающих их специфику.
Заметим, что полиномиальная оценка трудоемкости алгоритма еще не гарантирует легкости решения с его помощью реальных задач. На практике нередко может оказаться, что алгоритм, характеризующийся экспоненциальной сложностью, при решении отдельных типов практических задач будет более эффективным (в смысле, например, затрачиваемого машинного времени на поиск решения задачи) по сравнению с другим алгоритмом, пригодным для решения этой же задачи и характеризующимся полиномиальной сложностью. В этом смысле к интересным результатам теории сложности при выработке практических рекомендаций следует относиться творчески и с определенной осторожностью. Может оказаться полезным сопоставление результатов исследования эффективности конкретного алгоритма с помощью различных подходов (например, с позиций теории сложности и подхода, заключающегося в проведении экспериментального исследования алгоритма при решении тестовых и практических задач).
Дело в том, что результаты теоретических исследований дают представление о поведении задач в наихудшем случае, тогда как для вычислительной практики важно поведение их в среднем. Например, в работе (2111 показано, что при решении задачи ЛП симплекс-методом невозможно дать оценку числа итераций в виде полинома от размерности задачи, к тому же из экспериментов известно, что число итераций симплекс-метода при использовании его для решения задачи с а переменными и т ограничениями изменяется от т до Зт и для задач средних размеров число операций, как правило, близко к З/п/2. Такой
разрыв между теорией и практикой позволяет допустить существование алгоритма с полиномиальной оценкой сложности для решения задач ЛП. Один из них был впервые описан Л. Г. Хачияном [68]. Как и следовало ожидать (это вытекает из простейшего анализа сходимости метода эллипсоидов [178], замечательные свойства которого были удачно использованы Л. Г. Хачияном [68, 165] при построении алгоритмов точного решения задач линейного и квадратичного программирования с целочисленными коэффициентами, работающих полиномиальное время), интересный новый алгоритм оказался на практике менее эффективным в своей реализации по сравнению с симплекс- методом, характеризующимся с точки зрения теории сложности экспоненциальной временной сложностью. Этот факт еще раз подтверждает вывод о том, что реализация алгоритмов, характеризующихся полиномиальной сложностью (особенно тех из них, которые оцениваются полиномами достаточно высокой степени), на практике может иногда вызвать существенные затруднения. Результаты теории сложности нс дают однозначного ответа на вопрос, как будет вести себя конкретный алгоритм при решении данной конкретной задачи. Последнее обстоятельство еще раз подтверждает актуальность для практики исследований поведения алгоритмов в среднем при решении большого числа задач. В этом направлении интересные результаты общего характера получены В. П. Гришухиным (в частности, в работе [321 им исследован вопрос о среднем числе итераций алгоритма Балаша).
Поскольку большое число известных задач является ^P“Пoлными и точные эффективные методы для них нс известны, естественно, возникает вопрос: можно ли за счет снижения точности решения снизить трудоемкость решения?
Рассмотрим задачу нахождения экстремума некоторой функции f (%) на множестве допустимых решений D. Допустимое решение х называется г-приближенным, если
|/(х)-/(х*)|1/(^*)|
где х* — оптимальное решение задачи; / (%*) =# 0; е — заранее ^задано.
Алгоритмы, позволяющие отыскивать приближенное решение с любой наперед заданной точностью в, принято называть г-приближенными. По аналогии эффективными (полиномиальными) назовем те из них, для которых время и память, затрачиваемые на решение задачи, оцениваются степенными функциями от размерности задачи. Если же время и память е-приближенного алгоритма ограничиваются сверху полиномами, зависящими от размерности задачи п и величины 1/е, то такой алгоритм называют иногда быстрым (например, в [22] приводится алгоритм для решения задачи о максимальном подмножестве с оценкой трудоемкости и памяти О (и + 1/е3), где п — размерность задачи).
Первые быстрые 8-приближенные алгоритмы были построены для задач рюкзачного типа [208, 227]. Все они основаны на идеях динамического программирования. Позже появились улучшенные модифика- 18
ЦИИ ••Приближенных алгоритмов и расширился круг решаемых ими мда* 1Й, 215]. Накопленный опыт построения быстрых е-приближен- ИЫХ алгоритмов показывает, что с их помощью можно решать довольно ШИРОКИЙ класс задач. Но, с другой стороны, например, известно, что Н*ХОЖД111Ие е-приближенного решения для булевой задачи о рюкза- Kt С Двумя ограничениями является универсальной задачей: для нее ИВ Существует быстрого е-приближенного алгоритма, если Р =/= NP [22].
КВКИМ же условиям должна удовлетворять задача, чтобы для нее Существовал быстрый е-приближенный алгоритм? Известные сейчас условия требуют такой проверки, которая по своей сложности экви- ШХИТНН нахождению е-приближенного алгоритма, к тому же они ОТНОСИТСЯ только к узкому классу комбинаторных задач. Таким образом, Проблема получения необходимых и достаточных условий существования быстрых е-приближенных алгоритмов остается открытой.
Анализ универсальных задач с точки зрения возможностей их приближенного решения позволил выделить три группы задач.
Задачи, для которых получение в к раз худшего, чем точное, приближенного решения является столь же сложной проблемой, как и нахождение точного. К ним относятся: задачи булева программирования, задачи о коммивояжере, многопродуктовом потоке, размещении и др.
Задачи, для которых эффективно строятся решения с априорной гарантированной оценкой / вида / cf, где /* — искомый оптимум, с = const. К ним относятся: многие задачи о ранце, об упаковке, о коммивояжере (на плоскости).
Приемы построения подобных алгоритмов приведены в [22].
Задачи, для которых эффективно строятся решения с наперед заданной точностью е («почти оптимальные»). Это, в основном, задачи рюкзачного типа.
В последней группе мы сталкиваемся с возможностью перевода определенных классов задач на более низкий уровень сложностной иерархии (из NP в Р, если считать, что Р Ф NPY правда, эта возможность реализуется путем перехода от точных методов к приближенным. Поскольку исходная информация в прикладных задачах часто нс точна и модели отражают реальную ситуацию с определенной степенью приближения, то приближенные решения задач чаще всего удовлетворяют потребностям практики.
Работы, в которых изучаются статистически эффективные алгоритмы, приобретают в последнее время заметный интерес. На некоторых из них, в частности на публикациях В. А. Перепелицы, мы остановимся подробнее в гл. 9. Здесь же только уточним основную идею, развивающуюся в работах этого направления. Пусть, как и раньше, п — размерность задач некоторого исследуемого класса. Находим такой «быстрый» алгоритм, который характеризуется полиномиальной трудоемкостью и следующим свойством: отдельные задачи он может решать не лучшим образом (т. с. обеспечивает получение решения со значительным отклонением от оптимального), но в большинстве случаев позволяет находить оптимальное (или е-приближенное) решение. С увеличением п удельный вес точно решаемых задач (в другой поста-
новке е-оптимизируемых) во всем множестве рассматриваемых задач стремится к 1. Если необходимо найти е-оптимальное решение, то е
0 при п оо.
6 2. О РАЗРАБОТКЕ АЛГОРИТМОВ РЕШЕНИЯ ЗАДАЧ, ИСПОЛЬЗУЮЩИХ ИДЕИ МЕТОДОВ ОТСЕЧЕНИЙ И ВЕТВЕЙ И ГРАНИЦ
За последнее десятилетие появились сотни журнальных статей и десятки монографий по созданию математического аппарата дискретного программирования. Повышенный интерес к исследованиям в этой области объясняется прежде всего тем, что характерной особенностью большинства реальных моделей оптимального планирования и проектирования народнохозяйственных объектов является наличие дискретных параметров. Задачи с дискретными переменными, в частности с целочисленными, возникают при составлении планов производства, развития, размещения и реконструкции предприятий и отраслей народного хозяйства, при решении вопросов унификации и размещения технических средств, планирования и управления транспортными операциями, при проектировании сетей различного назначения, устройств и машин, при составлении расписаний работ в условиях ограниченных ресурсов и времени, а также во многих других случаях 121, 50, 96, 137, 163].
Значительные результаты в области дискретного программирования получены во многих научных и учебных учреждениях страны. Здесь, в первую очередь, следует упомянуть интересные исследования, проведенные в ряде научных центров Москвы (Вычислительный центр АН СССР, Институт прикладной математики им. М. В. Келдыша АН СССР, Центральный экономико-математический институт АН СССР, Московский государственный университет им. М. В. Ломоносова и др.), Киева (Институт кибернетики им. В. М. Глушкова АН УССР), Ленинграда (Ленинградский государственный университет им. А. А. Жданова), а также Минска, Новосибирска, Харькова, Свердловска и других городов.
В данном кратком обзоре мы уделим внимание в основном работам, выполненным в разные годы специалистами Института кибернетики, а также учеными других научных учреждений, тесно сотрудничающих в данной области.
Отличительная особенность большинства исследований по дискретной оптимизации состоит в том, что значительная часть их базируется на использовании ранее предложенных различных алгоритмических схем, например последовательного анализа вариантов [93, 100], случайного поиска [46], методов ветвей и границ [71], локальной оптимизации [48, 49, 50, 134, 137,163], метода построения последовательности планов [43, 44], ряда других вычислительных схем, ориентированных на решение задач как общего, так и специального вида [21, 102, 145, 154]. Комплекс этих исследований осуществляется в связи с необходимостью решения реальных прикладных задач, возникающих при планировании, управлении, а также проектировании, размещении различного рода объектов. Разработка этого направления, в частности, 20
В Институте кибернетики проводится под научным руководством академика Й. С. Михалевича. Началом систематических исследований 1 данном направлении послужили известные публикации [92, 93, 1001. Основные аспекты исследований по ДО связаны, как правило, с изучением следующих возможностей:
применения предлагаемых математических методов для решения практических задач средней и большой размерностей (сотни, тысячи и десятки тысяч ограничений и переменных);
использования некоторых из предлагаемых методов решения дискретных задач в условиях функционирования современных АСУ и автоматизированных систем обработки данных (АСОД), что позволяет отыскивать подходящие решения в условиях выделения ограниченных ресурсов времени и машинной памяти;
эффективного решения задач большой размерности в интерактивном режиме;
определения различных оценок получаемых приближенных методов;
распараллеливания вычислительного процесса, осуществляемого согласно некоторому методу решения задач оптимизации (в том случае, когда речь идет о проведении вычислений на ЭВМ, допускающих реализацию параллельных вычислений, например на рекурсивной вычислительной машине — РВМ);
разработки специальных методов, ориентированных на максимальный учет специфики постановки оптимизационной задачи; хотя область применения этих методов ограничена, они имеют и неоспоримое преимущество; позволяют решать узкие классы задач с высокой эффективностью, т. е. за минимальное время находить точные или близкие к точным решения с минимальным использованием других ресурсов ЭВМ (устройств ввода, вывода, различных видов памяти ЭВМ, каналов связи потребителей с ЭВМ и др.).
Отметим, что большинство теоретических работ в области оптимизации, в том числе и дискретной, выполненных в Институте кибернетики, доведены до их реального использования на практике. Этому способствовали разработки ПП и других видов математического обеспечения (МО) ЭВМ, которые не только сопровождали подобные исследования, но и стимулировали их. Многие задачи и алгоритмы специального вида были разработаны и исследованы специалистами института в связи с практической необходимостью.
К настоящему времени разработаны группы методов решения как общих, так и специальных задач ДО. Наиболее распространенными точными методами (при решении практических задач) являются, пожалуй, методы, реализующие схему последовательного анализа вариантов, а также методы ветвей и границ и метод отсечений. Прежде чем остановиться на этих, а также на других, тесно примыкающих к ним точных методах решения задач ДО, отметим в общих чертах некоторые особенности развития дискретного программирования.
Известно, что в начальной стадии развития дискретного программирования доминирующим был комбинаторный подход. В дальнейшем благодаря работам Данцига и Гомори наиболее употребительной стала
формулировка задач в терминах целочисленного программирования. Это обусловлено тем, что интенсивно развивающаяся теория целочисленного программирования дала исследователям удобный способ формализации дискретных задач и ряд эффективных методов их решения в такой постановке.
В настоящее время достаточно интенсивно развиваются как комбинаторные методы, так и методы решения задач целочисленного программирования. Наибольшее распространение получают схемы, которые лучше и проще учитывают природу решаемых классов задач. Показательна в этом отношении история развития метода ветвей и границ, который первоначально был предложен Лэнг и Дойг для решения линейной задачи целочисленного программирования, но широкое развитие получил после того, как был успешно применен Литтлом, Мурти, Суини, Кэрел для решения типично комбинаторной оптимизационной задачи — задачи коммивояжера. Дальнейшее применение этого метода подтвердило его эффективность в применении к комбинаторным оптимизационным задачам [71].
Методы решения задач ДО можно разделить на две основные группы: точные и приближенные.
Конечно, такое деление носит условный характер, поскольку целый ряд точных методов может быть успешно применен для приближенного решения задач, а некоторые приближенные методы при соблюдении определенных условий гарантируют получение точного решения задачи. И все же выделение в математическом аппарате дискретного программирования группы приближенных методов не случайно. Оно связано с усилением внимания специалистов к их разработке для решения особо трудных дискретных задач или задач ДО, решаемых в условиях ограниченных ресурсов (машинного времени, памяти различных видов и др.), так как использование точных методов в данном случае зачастую просто не приводило к цели. Более того, можно найти немало примеров, когда использование приближенных алгоритмов является предпочтительным, так как позволяет сравнительно быстро и при незначительных затратах получать достаточно хорошие и, самое главное, приемлемые для практики допустимые решения задач. Это касается, прежде всего, процесса решения задач в реальном масштабе времени, в условиях функционирования многих АСУ и АСОД. Последнее, разумеется, никак не означает, что к разработке точных методов упал интерес: они по-прежнему активно разрабатываются, изучаются новые возможности и области их использования, направления в улучшении их вычислительных схем при решении задач ДО специального вида. Рассмотрению приближенных методов и областей их использования посвящен § 4 данной главы.
Среди точных методов решения задач ДО широкое развитие и распространение получил метод отсечения, идея которого впервые была предложена Данцигом [192] в связи с обсуждением путей решения общей задачи ЦЛП. Затем эта идея нашла развитие в целом ряде работ, в частности в работах Гомори (например, [199]). Кратко основная идея построения вычислительного процесса по методу отсечения состоит в следующем.
Вначале решается задача ЦЛП при отбрасывании условий целочисленности переменных. Получаемое таким образом решение является оптимальным для исходной задачи ЦЛП, если оно целочисленное. Это объясняется тем, что любое допустимое решение задачи ЦЛП одновременно является и допустимым решением соответствующей задачи ЛП, полученной после отбрасывания условий целочисленности. Если же оптимальное решение задачи ЛП не целочисленное, то к ней дополнительно добавляется новое ограничение, состоящее в следующем: множество допустимых решений вновь полученной задачи ЛП содержит любое допустимое решение целочисленной задачи и не содержит оптимального решения предыдущей задачи ЛП. Затем решается новая задача ЛП, и процесс повторяется: если полученное оптимальное решение удовлетворяет условиям целочисленности переменных в исходной задаче ЦЛП, т. е. является допустимым ее решением, то исходная задача решена; в противном случае добавляется новое ограничение указанного типа. Добавляющиеся в данном процессе ограничения получили название отсечений, так как они отсекают определенную часть множества допустимых решений задачи ЛП.
Эффективность метода отсечения находится в прямой зависимости от эффективности способов построения отсечений. Реализация различных подходов к построению отсечений породила целое множество методов этой группы. В частности, те методы отсечений, которые используют двойственный симплекс-метод, представляют собой класс двойственных методов отсечения, отличающихся между собой способами построения отсечений.
Известны три алгоритма Гомори, в которых реализована идея метода отсечения для решения задач полностью и частично целочисленного ЛП. Второй алгоритм Гомори, предназначенный для решения задач ЧЦЛП, был модифицирован Дальтоном и Ллевелином применительно к более широкому классу частично дискретных задач ЛП.
Что касается развития двойственных алгоритмов Гомори, реализующих метод отсечений для решения дискретных задач ЛП, то больше всего внимания в последнее время уделялось построению новых отсечений. Пусть на каком-либо шаге алгоритма получено недискретное решение хк, L — какое-либо выпуклое многогранное множество, содержащее допустимое множество М соответствующей задачи ЛП, причем хк является их общей крайней точкой. Построение отсечений сводится к тому, что вычисляются такие точки х, чтобы проходящая через них гиперплоскость (отсекающая) разделяла хк и множество «потенциально допустимых» дискретных решений задачи (т. е. множество точек, заведомо удовлетворяющих условию дискретности и принадлежащих множеству L, относительно которого строится отсекающая гиперплоскость). В большинстве работ (см., например, [184, 189]) в качестве множества L рассматривается заостренный конус К с вершиной х\ определенный оптимальной канонической формой задачи ЛП, решением которой является хк, и условием неотрицательности соответствующего множества небазисных переменных. Точки (в пространстве небазисных переменных), через которые проходит отсекающая гиперплоскость, являются точками пересечения неограни-
ченных ребер конуса К с границей какого-либо выпуклого множества V, внутренность которого содержит точку а^, но не содержит дискретных точек. «Сила» построенного таким образом отсечения зависит от выбора множества V. Идея построения подобных отсечений известна уже достаточно давно (см., например, [71]).
С целью построения сильных отсечений в [170, 172] отсекающие гиперплоскости строятся относительно множества М. При вычислении точек, определяющих отсечение, решаются вспомогательные задачи ЛП и используется целевая функция исходной задачи или вспомогательная линейная функция, обладающая специальными свойствами. В этом способе, названном геометрическим, учитываются условия дискретности любого числа г ^ 1 переменных; отсечение представляет собой систему из г линейных ограничений. Однако при этом требуется решение 2Г вспомогательных задач ЛП. Но даже при г = 1 получается отсечение более сильное, чем отсечение Гомори для частично дискретной задачи ЛП. Если же г ^ 2, то «сила» отсечений непомерно растет. Все это в конечном итоге приводит к меньшему числу шагов алгоритма и расширяет круг практически решаемых задач по методу отсечения.
Перспективной в настоящее время является лексикографическая оптимизация, как особая область многокритериальной оптимизации. За последние годы в этой области появились важные результаты. В [171], например, описаны условия существования лексикографического максимума множества (к этой проблеме сводится любая лексикографическая задача), а также построена пара двойственных линейных лексикографических задач и доказаны соответствующие теоремы двойственности. В [173] получено линейное представление лексикографического ограничения на дискретном множестве. Проведены также интересные исследования устойчивости схемы последовательной максимизации.
Лексикографический подход перспективен в дискретной оптимизации (при этом каждая дискретная переменная выступает в роли критерия определенного ранга). В [171, 173] рассматривается задача определения лексикографического максимума множества X с Rn (lex- max X). К решению этой задачи может быть сведена любая задача математического программирования Что касается дискретного (или частично дискретного) случая, то X представляется в виде пересечения дискретного (или частично дискретного) множества G с регулярным множеством У, имеющим лексикографический максимум. Условие дискретности налагается на первые, по порядку возрастания индексов, координаты точек из X. В итоге лексикографического поиска решения задачи lexmax X строится лексикографически монотонная последовательность точек. Если эта последовательность принадлежит множеству X (в этом случае она является лексикографически возрастающей), то имеем прямой поиск лексикографического максимума множества X, а если это последовательность лексикографически убывающих мажорант множества X, то имеем поиск в области лексикографических мажорант множества (или двойственный поиск). Первыми представителями поиска в области лексикографических мажорант являются двойственные алгоритмы Гомори для решения дискретных задач ЛП, 24
основанные на лексикографическом двойственном симплекс-алгорит- ме. В [169, 171] определяется класс подходящих алгоритмов лексикографического поиска, в итоге применения которых строятся последовательности точек, удовлетворяющих условию дискретности, и доказаны условия их конечности.
В [171, 173] лексикографический поиск в области лексикографических мажорант представлен как метод последовательного уточнения мажорант множества X, начиная с какой-либо начальной мажоранты х° (в качестве х° может быть выбран лексикографический максимум множества Y\ В общей схеме такого поиска уточнение мажоранты х^ (т. е. получение можоранты х^1 множества X, которая лексикографически меньше х^) может быть осуществлено любым подходящим способом, при этом на различных шагах поиска могут применяться различные подходящие способы уточнения. Последняя возможность достигается использованием дополнительных лексикографических ограничений и их представлением в виде системы линейных ограничений (см. [1731). Примечательным является то, что на каждом шаге этого поиска используется начальная информация о задачах: система ограничений, задающая множество Y, и система линейных ограничений, представляющая используемое на данном шаге лексикографическое ограничение.
Заметим, что одной из причин неудовлетворительного применения упомянутых выше алгоритмов Гомори при решении задач на ЭВМ является искажающее влияние накапливаемых от шага к шагу ошибок округления. В обсуждаемом лексикографическом поиске такого накопления ошибок округления не происходит. Уточнение мажоранты хк осуществляется присоединением отсечения (построенного на основе полученной в итоге предыдущего (& — 1)-го шага симплексной таблицы Т^ к таблице Tk и дооптимизацией полученной таблицы Т^\ по двойственному лексикографическому симплекс-алгоритму. Таблица Т^ используется для уточнения полученной мажоранты x*+4
В рамках рассматриваемого лексикографического подхода в [1721 проведено эффективное усовершенствование двойственных алгоритмов Гомори и метода ветвей и границ. Для алгоритмов Гомори разработан способ уточнения мажоранты х\ полученной в результате любого шага, на основе начальной симплексной таблицы 70 (возвращающийся метод отсечений), а в методе ветвей и границ предоставлена возможность строить вместо одного «большого» дерева последовательность «малых» деревьев без изменения оценок (метод «малых» деревьев), что позволяет реализовать метод ветвей и границ с ограниченным объемом памяти. Разработаны также схемы поиска решений отдельных классов дискретных задач, основанные на ограниченном лексикографическом переборе точек, удовлетворяющих условию дискретности»
В работах [Д23—Д26] развивается новый подход к анализу метода отсечения и задач целочисленного программирования, в основе которого лежит идея исследования эффективности алгоритмов с помощью специальных разбиений допустимой области соответствующей непрерывной задачи. В терминах такого разбиения определяется «объем» отсекаемой части (дробного накрытия) и глубина отсечения — число
исключаемых им элементов разбиения этого накрытия. Описывается класс регулярных отсечений, глубина которых не меньше единицы. Основные результаты получены для так называемого Л-разбиения и дробных алгоритмов отсечения. В частности, установлены необходимые и достаточные условия конечности алгоритмов, построены верхние оценки числа итераций (отсечений) в общем случае и нижние оценки — для алгоритмов с отсечениями ограниченной глубины (она не превышает размерность пространства). При этом удалось выяснить, что, например, отсечения В-алгоритма [72] имеют ограниченную глубину, а регулярные отсечения первого алгоритма Гомори не являются таковыми.
Предложены новые алгоритмы для решения задач целочисленного программирования и анализа их дробных накрытий, выделены наискорейшие (по числу итераций) алгоритмы в некоторых классах алгоритмов булева программирования, изучена структура L-разбиений ряда выпуклых многогранных множеств. Рассмотрению этого подхода посвящен § 8 гл. 2.
Не останавливаясь на методах отсечения подробно, отметим, что широкий обзор литературы по ним можно найти, в частности, в работах [71, 164].
Близким к методам отсечений является метод Вендерса, в котором реализована идея декомпозиции исходной задачи. Он предназначен для точного решения задач математического программирования со смешанными переменными, в том числе для задач ЧЦЛП. На вопросах развития этого метода мы остановимся в одной из последующих глав. Здесь же отметим, что достаточно подробно он рассматривается в работе [137]; там же дан обзор публикаций, связанных с его разработкой и применением.
Как уже отмечалось, важным и прогрессирующим разделом дискретного программирования являются методы решения комбинаторных оптимизационных задач (задачи этого типа широко изучаются в [71, 134, 145, 1631). Многие практически важные проблемы размещения, проектирования ЭВМ и другие задачи могут формулироваться и решаться как задачи ДО комбинаторного типа.
Известно, что основой для формальной постановки комбинаторной оптимизационной задачи служит комбинаторное пространство, в котором определяется задача. Вопросы формализации таких задач рассмотрены, в частности, в [71, 134]. В главе 9 настоящей монографии содержится ряд новых результатов по комбинаторной оптимизации, не нашедших отображения в [134]. Это касается, например, некоторых результатов многокритериальной оптимизации, устойчивости алгоритмов метода вектора спада, необходимых условий локальной оптимальности решений, формализации и решения ряда специальных задач.
Представление многих практически важных дискретных задач в виде (1.13) стимулировало развитие комбинаторных методов. Наиболее изученными и распространенными из них являются уже упоминавшиеся методы: ветвей и границ, последовательного анализа вариантов, построения последовательности планов, локальной оптимизации и др.
Значительное число исследований выполнено на базе использования и дальнейшей разработки общей схемы метода ветвей и границ. Обзоры работ, выполненные в этом направлении, приведены в [70, 71, 96, 145, 163]. Остановимся на некоторых исследованиях из этого цикла.
Большой объем исследований выполнен по решению задач оптимального синтеза сетей (ОСС) с вогнутой целевой функцией [157].
Задача ОСС может быть сформулирована как задача отыскания
min ^ ЬДхц)(1.14)
при ограничениях ’
г Акь если i = к;
S ХИ — 5 хп =°’ если(k,t)^D-, (1.15)
i^Ni£N— Дки если i — /•
S 4 = Xij; x#>0; MW-(1.16)
kk.l^D
Здесь U — множество допустимых дуг в заданной сети возможных соединений G (2V, Щ\ D — множество упорядоченных пар заданных потоков; N — множество вершин сети; Ду (х,/) — вогнутые неубывающие функции потока по дуге (/, /).
Задачи такого типа возникают при проектировании сетей различного назначения: водопроводных, тепловых, электрических, дорожных и т. д. Кроме того, некоторые задачи оперативного управления, такие, как задача построения плана формирования поездов [153], а также задача Штейнера в дискретной постановке, являются частными задачами рассматриваемого типа. Задачи ОСС — NP-полные, и для их решения, вероятно, не существует теоретически эффективных (полиномиально ограниченных по трудоемкости) алгоритмов. Поэтому естественными методами решения таких задач представляются методы типа ветвей и границ с учетом их специфических особенностей при вычислении оценок и стратегий ветвления.
Рассмотрим целочисленную формулировку задачи (1.14) — (1.16) для простейшего случая, когда все функции
(1.17)(1.17)fИ kxth —fИ kxth —CLtjXij + Ьц, если Хц > 0;
(1.17)
(1.17)
fИ kxth —
fИ kxth —
0, если хц = 0,
где я,/ > 0, Ь^ ^ 0.
Общий случай принципиально не отличается от рассматриваемого и обладает теми же свойствами, но формулировка задачи в нем более громоздка. Задача (1.14) — (1.16) может быть сформулирована как задача отыскания
min ^ S Ак1ацу“л- 2 M£f(1.18)
№. i)eD <i,ne vu.jkv
при ограничениях
если i = к;
^Уу — Еу//=О, если i^k, I, ^^^D\ (119)
^ i^N 1$ еСЛИ / = /;
о<$<уи;(1.20)
Уу = 0 или 1.(121)
Для построения оценок оптимального решения этой задачи используется метод динамической линеаризации, суть которого заключается в следующем. Рассмотрим двойственную задачу к задаче (1.18) — (1.21): найти
max min £2 И»А/ + «о)^(1-22)
{и*(>0} <у*(>0)
при ограничениях
$>0, «о>0, (i,D£V, QU^D;(1.23)
2 ^^by, (i.j^V.(1.24)
(k /)€О
При фиксированных значениях двойственных переменных Uq эта задача состоит в построении путей минимальной стоимости для перемещения потоков из D. Если рассматривать bi/ как ресурсы, за счет которых можно увеличивать uq, то задачу (1.22) — (1.24) можно интерпретировать как задачу максимального увеличения суммарной длины кратчайших,путей для потоков из D при ограниченных ресурсах. Обозначим uq — оптимальные значения переменных. Имеет место следующее утверждение. Существует оптимальное решение задачи (1.22) — (1.24), в котором для всех (6, /) g D, (ц /) С V, uq > *> 0 дуга (/, /) входит хотя бы в один кратчайший путь для маршрута (А, /). Это позволяет свести процесс решения рассматриваемой задачи к решению последовательности задач ЛП вида: найти
max £ У1/=1при условиях
^а^у^Аь i= 1, т\i
d^y^a, / = I, ... , n;
где aq = 0 или 1, Aj > 0, i = 1, ..., m; dh j = 1, ..., n,— заданные величины.
В некоторых частных случаях, например в задачах о кратчайшей связывающей сети и размещения на сети в форме дерева, это свойство позволяет построить алгоритмы с полиномиальной оценкой трудоемкости. Среди возможных обобщений задачи (1.14) — (1.16), сохраняющих указанное свойство, отметим задачу размещения и унификации, 28
задачи синтеза сети с ограниченными пропускными способностями и ряд задач унификации технических средств [1581. Предлагаемый способ ветвления в схеме метода ветвей и границ позволяет построить эффективные алгоритмы решения таких задач с использованием их специфических особенностей.
В Институте кибернетики им. В. М. Глушкова АН УССР разработаны программы для ЕС ЭВМ на языке ФОРТРАН для решения:
простейшей задачи размещения производства;
двухэтапной задачи размещения производства;
задачи ОСС (1.14) — (1.16) с одним источником;
задачи унификации и размещения производства;
задачи Штейнера в дискретной постановке (на графе).
Опыт в решении практических и тестовых задач по разработанным программам позволяет судить об области применения и степени эффективности программ. В частности, программа ОСС использовалась для проектирования сетей водоснабжения ряда областей УССР (работа проводилась совместно с Гипроградом Госстроя УССР).
Значительный интерес для практики представляют дискретные и дискретно-непрерывные задачи большой размерности, для которых Н. 3. Шором предложены процедуры, сочетающие методы ветвей и границ и обобщенного градиентного спуска [1781.
Определенный интерес представляют исследования, связанные с решением широкого класса задач комбинаторного типа (в частности, задач коммивояжера, оптимальной раскраски графов, нахождения максимального внутренне устойчивого множества на графе и др.), которые сводятся к задачам разбиения вида
max \сх!Ах = /, х( = 0 или 1, / = 1, ... , п),
где А— заданная (0,1)-матрица; I— вектор, состоящий из единиц. Для решения такого рода задач к настоящему времени разработан ряд алгоритмов, сочетающих процедуры симплекс-метода и метода ветвей и границ и базирующихся на алгоритме В. А. Трубина для решения задач ЦЛП специального вида [154]. В [154] В. А. Трубиным изучен интересный класс задач, названных им обобщенной задачей выбора. К этому классу задач могут быть сведены многоэтапные и многоиндексные обобщения задачи о назначениях, простейшая задача размещения и др.
К настоящему времени накопился значительный опыт в разработке и использовании алгоритмов, вкладывающихся в общую схему метода ветвей и границ. Эти алгоритмы отличаются между собой способами ветвления, вычисления оценок (границ) и др. Часто они используют различные варианты так называемых штрафов или другие приемы, которые позволяют получить более сильные оценки. Достаточно полные обзоры работ по методам ветвей и границ можно найти, в частности, в [70, 71, 96, 163].
Близким к методам ветвей и границ является метод Балаша [12], предназначенный для решения задач ЦЛП с булевыми переменными, и его модификации.
Остановимся на вопросах разработки и применения методов, использующих схему последовательного анализа вариантов, и тесно примыкающего к этой схеме метода построения последовательности планов.
ПОСЛЕДОВАТЕЛЬНЫЕ АЛГОРИТМЫ ОПТИМИЗАЦИИ И ИХ ПРИМЕНЕНИЕ
Рассмотрим последовательные алгоритмы оптимизации и их применение при решении практических задач, используя работы [99, 129].
Как известно [92, 93], с точки зрения формальной логики схема последовательного анализа вариантов сводится к повторению следующей последовательности преобразований:
разбиение множества вариантов решений задачи на несколько подмножеств, каждое из которых обладает дополнительными специфическими свойствами;
использование специфических свойств подмножеств решений задач для поиска логических противоречий в описании отдельных подмножеств;
исключение из дальнейшего рассмотрения тех подмножеств вариантов решения, в описании которых имеются логические противоречия.
При этом методика последовательного развития, анализа и отбора вариантов (в задачах целочисленного программирования — решений) представляет собой такие способы их развития и построения операторов их анализа, которые позволяют отсеивать невыгодные (бесперспективные) начальные части вариантов до полного построения последних (по мере того как эту бесперспективность удается обнаружить). Поскольку при отсеивании бесперспективных начальных частей вариантов отсеивается и множество их продолжений, то происходит значительная экономия в вычислительной процедуре. Последним обстоятельством удается эффективно воспользоваться при построении алгоритмов, вкладывающихся в данную схему, а также при создании специального МО ПП, предназначенных для решения широкого круга практически важных задач.
В рамках общей схемы последовательного анализа вариантов (ПАВ) имеется свобода выбора конкретного алгоритма. При решении серьезных практических задач возникает естественная потребность оптимального согласования затрат на осуществление вычислительной или экспериментальной процедуры, соответствующей данному алгоритму для каждой конкретной задачи, с той точностью или тем качеством решения, которые обеспечивает эта процедура. В. С. Михалевичем впервые была указана возможность изучения алгоритмов оптимального управления системами с помощью построений, использующих идею Вальда о сведении задачи выбора оптимальных решений к последовательной игре двух лиц.
В 1960 г. В. С. Михалевичем было обращено внимание на полезность применения идей последовательных статистических решений при изучении достаточно широкого класса многовариантных задач опти-
мизации и выбора алгоритмов их решения. Фактически схема последовательного анализа вариантов возникла на основе обобщения идей теории последовательных статистических решений и динамического программирования, в котором принцип оптимальности создает «сито контрольных опытов», отсеивающих подмножества вариантов.
В работах [92, 93] была рассмотрена общая схема последовательного статистического поиска, в которой реализация опыта есть высказывание о некотором событии, вызывающем перераспределение вероятностей меры на множестве индивидуальных объектов. Последовательный анализ вариантов по отношению к этой схеме выступает как частный, но важный случай, когда вероятное перераспределение на множестве индивидуальных объектов сводится к тому, что некоторое подмножество вариантов приобретает меру 0, т. е. может быть исключено.
Детализация схемы ПАВ происходила в нескольких направлениях. В связи с решением задач линейной или ветвящейся структуры был сформулирован «обобщенный принцип оптимальности» для монотонно рекурсивных функционалов, на основе которого строилась схема решения, свободная от некоторых ограничений, присущих каноническим процедурам динамического программирования [1001. Для структур, имеющих форму дерева, были проанализированы вопросы, связанные с порядком просмотра ветвей, и найдены способы минимизации числа массивов промежуточной информации, необходимой для реализации процедур ПАВ [21]. В многомерной задаче о рюкзаке исследовалась асимптотика числа «перспективных» вариантов при определенных вероятностных гипотезах о задаче [76]. Рассматривались вопросы аппроксимации и точности решения непрерывных задач оптимального управления при дискретизации пространственных и временных координат и использовании алгоритмов ПАВ [21].
Метод ПАВ применялся для решения большого числа важных задач оптимального планирования и проектирования [21, Д37], таких, как задачи расчета транспортных сетей, транспортные задачи большой размерности, задачи размещения на сети, имеющей форму дерева, проектирования разветвленных электрических сетей, продольного профиля дорог, выбора оптимальных параметров магистральных газопроводов с отводами и др.
Применение математических методов и вычислительной техники в организации и управлении производством, а впоследствии создание АСУ предприятиями привели к разработке математической теории и методологии программно-технической реализации функций синхронизации производства и потребления, важнейший элемент которых — решение задач календарного планирования производства и материально-технического снабжения. Разработка этого направления в Институте кибернетики была начата в период интенсивного применения методов линейного и динамического программирования для решения такого рода задач. На этом пути удалось формализовать и решить небольшой круг простейших задач календарного планирования, мало что давших практике.
На основе общей алгоритмической схемы ПАВ оказалось возможным, во-первых, сформулировать математические постановки задач
календарного планирования, наиболее адекватные их практическим постановкам, во-вторых, предложить и программно реализовать самые эффективные методы решения. Математическая проработка данной проблематики привела к развитию теории расписаний — прикладной ветви дискретной оптимизации, основанной на идеях широко применяемой конструктивной оптимизации [51, 151]. На базе этих идей построены также язык, рассматривающий сложные системы как некоторые знаковые конструкции, имеющие свою структуру, и общая алгоритмическая схема последовательного конструирования структур как пофрагментной конкретизации таких решений. Выбор направлений конкретизации учитывает возможные варианты сопряжения фрагментов структур решений и проводится на основе оценки общесистемных эффектов фиксированных фрагментов решений и использования различных приемов отсеивания вариантов при их последовательном конструировании. К такого рода приемам относятся различные устанавливаемые в процессе решения правила доминирования (абсолютного или относительного, временного), прогнозы значений функции-критерия, агрегации и дезагрегации структур решений, правила останова, учитывающие как ожидаемую эффективность решения, так и затраты на его получение, способы оценки общей стратегии конструирования и направленного поиска наиболее эффективных методов оптимизации для конкретных классов задач [51].
Применительно к теории расписаний обоснованы методы точного решения различных классов задач,- получены «решающие» правила для задач малой размерности и сравнительно небольшой вариантности, доказаны необходимые и достаточные условия так называемой приоритетной разрешимости для задач календарного планирования с однотипным оборудованием, разработаны эффективные приемы, использующие правила доминирования [51], интервалы очередности [177], прогнозирование значений функции-критерия [51] на основе расширения исходного множества возможных вариантов, ослабление ограничений в исходных постановках, отсеивание вариантов в процессе конструирования решений. Предложена общая алгоритмическая схема приоритетного решения задач календарного планирования на основе как детерминированных, так и рандомизированных эвристик, применения методоз статистики экстремальных значений и теории марковских процессов для оценки вероятности сходимости такого рода решений и выработки соответствующих правил останова, сравнительной оценки приоритетных стратегий решения. Развиты методы статистической оценки стратегий решений в зависимости от параметров задач и направленного поиска наиболее эффективных стратегий оптимизации в конкретных классах задач. В целом данное направление достаточно полно освещено в [151].
Интересное развитие методы последовательного анализа и отсеивания вариантов, предназначенные для решения дискретных задач, получили в работах [20, 94]. В них использована идея фиксации длины начальных отрезков решения, т. е. части переменных, с одновременным применением определенных правил отсева по всему множеству анализируемых на данном шаге частичных решений. Решение констру-
ируется только после сужения множества исходных вариантов до достаточно малого, на котором возможен перебор с одновременной проверкой найденного решения на оптимальность. На основании такого подхода построены алгоритмы решения задач дискретного сепарабельного программирования, задач ЦЛП и ЛП с булевыми переменными.
Для решения задач большой размерности дискретного сепарабельного и линейного целочисленного программирования разработаны декомпозиционные алгоритмы, основанные также на схемах последовательного анализа и отсеивания вариантов. При этом сужение исходного множества вариантов осуществлялось путем отсева определенных групп компонент, что позволило свести решение исходной задачи большой размерности к решению более мелких подзадач. Окончательный анализ сокращенного множества возможных решений осуществлялся путем решения новой задачи, построенной по оставшимся группам компонентов.
Кроме того, разработаны основывающиеся на этом же подходе алгоритмы решения задач дискретно-монотонного программирования следующего вида: найти
min f Up ... , xn)(1.25)
при условиях
At to = S An kxb ^ An i=lm. (1-26) /=1
n
х = (х1,...,х^Х=Пх1, \ХГ\=К,;(1.27)
7 — 1
где f Ui» •••, xn)— монотонная функция по каждой переменной. Такие задачи часто возникают при оптимизации надежности непоследовательных систем.
Среднее время решения задач вида (1.25) — (1.27) размерностью т х п = 25 х ЮО при К/ = 10 на ЭВМ типа М-4030 составило 31 мин, а при Kj = 5 равно 29 мин.
Среди приложений метода ПАВ отметим его использование для решения общих задач дискретного программирования [201. Соответствующие алгоритмы вошли в состав ПП семейства ДИСПРО. Разработанная методология ПАВ оказала влияние на развитие вычислительных методов оптимального управления (например, метода локальных вариаций [102], предложенного Н. Н. Моисеевым и его учениками) и с успехом использована для решения задач оптимальной реконструкции и развития производства в цикле исследований А. П. Уздемира, подытоженных в [159], а также для решения широкого класса дискрет- ( ных задач оптимизации в работах В. А. Емеличева [39, 40] и его учеников.
Заметное применение в дискретной оптимизации нашел метод построения последовательности планов, общий формализм которого разработан В. А. Емеличевым [39—42]. Идея этого метода состоит в замене исходной экстремальной задачи более простой, вспомогательной задачей и в построении последовательности планов этой задачи в
порядке «ухудшения» значений оценочной функции (миноранты или мажоранты)
Впервые метод построения последовательности планов использовался при решении задач отраслевого планирования. Позднее он был применен В. А. Емеличевым и его учениками для решения практических задач оптимального планирования работы предприятий, развития и размещения производства и ряда других задач [44].
Рассмотрим задачу А минимизации функции f (х), определенной на конечном множестве Р, т. е. задачу отыскания такого элемента р* £ Р, что
/ (р*) = min / (х).
«ер
Любой элемент множества Р называется планом задачи А, элемент р* — ее оптимальным планом.
Метод построения последовательности планов применим к задаче А при выполнении следующих условий:
можно найти конечное расширение R множества Р (Р G R) и функцию q (х) (миноранту), определенную на R такую, что q (х) ^ ^ / (х) для всех х Е Р;
можно построить алгоритм <р, который на й-м шаге (^ = 1,2, ...) находит элемент гк, обладающий свойством
q [r^ = min q (x), k^l,(1.28)
где Рг R, Rk = Rk-i \ R (гд-О, r*_i E R (r6_i) c R, к > 2, причем если Гк—х Е Р, то
/ (г6_1) = min {/ (х)/х Е R (г6-0 П Р^
а если Гк-i £ Р, то R (гк-i) П Р = 0-
Таким образом, должен существовать алгоритм <р построения последовательности {г4 элементов расширения R в порядке неубывания миноранты q (х) с отсевом заведомо неоптимальных планов до выполнения критерия оптимальности.
Критерий оптимальности. Если существует такое натуральное число к, что
p- = Vv ...,МПР^0,
9(^)>/(Pft) = minf(x),’
Х6Рк
то рк — оптимальный план задачи А.
Случай Pk = Р тривиален. Пусть Рк Ф Р. Из условия (1.28) следует, что q (r^ ^ q (х) для любого х Е Р \ Рк. Отсюда, учитывая (1.29) и тот факт, что q (х) — миноранта функции / (х), получаем
хбР\Рк.
• Кроме того, на основании (1.29) имеем
Для х^Рк.
Следовательно, / ^рк\ = min {/ (х)/х Е Р).
Рассмотрим общую схему метода построения последовательности планов.
Строим конечное расширение 7? исходного множества Р.
На множестве R задаем q (х)—миноранту функции / (х) на множестве Р.
С помощью конечного итеративного алгоритма ф находим последовательность оптимумов ru г2, ... миноранты q (х) на последовательности вложенных друг в друга множеств R = RY zd R2 zd R3 zd ...
На каждом £-м шаге метода гр построения последовательности планов проверяем выполнение критерия оптимальности.' Если он выполняется, то процесс заканчивается с выводом о том, что рк — оптимальный план исходной задачи А. В противном случае переходим к (k + 1)-му шагу метода гр.
Схема упорядочения планов, основанная на поиске и исключении элементов множества R, приведена в [39].
Эффективность метода построения последовательности планов зависит от выбора расширения 7? и миноранты q (х). Метод применим как для точного, так и для приближенного решения задачи А. В процессе его работы можно оценить отклонение лучшего из полученных элементов от оптимального, что дает возможность прекратить поиск оптимального плана по достижении заданной точности расчетов.
На основе общей схемы метода построения последовательности планов разработаны алгоритмы решения задач ЦЛП, задач ЛП с булевыми переменными, многомерных задач о ранце с булевыми переменными. Проведен машинный эксперимент по решению задач ЦЛП этим методом, подтвердивший его эффективность [44, ДЮ].
В последнее десятилетие в теории ДО развивается новое направление — комбинаторная теория многогранников или так называемая полиэдральная комбинаторика. Этой проблематике посвящена монография [43], где имеется и достаточно полный список литературы по данному вопросу.
Аппарат комбинаторной теории многогранников можно применять для оценки трудоемкости методов оптимизации (в первую очередь, симплексных алгоритмов), для построения эффективных алгоритмов. В полиэдральной комбинаторике наряду с классическими задачами исследуются также новые проблемы, порожденные задачами оптимизации.
Комбинаторная теория многогранников изучает экстремальные свойства многогранников. Центральной в этой теории является проблема перечисления и классификации многогранников с заданной структурой его граней. В монографии [43] предложен новый прием перечисления и классификации многогранников с помощью полуматроидов — своеобразной сети, построенной на основе инцидентности вершин многогранника и граней максимальной размерности. Этот прием позволил установить критерии комбинаторной эквивалентности помеченных многогранников. С помощью полуматроидов многогранников удалось показать, что такие экстремальные задачи, как задачи стандартизации, на подстановках и размещениях имеют одинаковую комбинаторную структуру допустимой области, эквивалентную полиматроидной.
В комбинаторной классификации многогранников наряду с полу- матроидами важным является понятие спектра двух многогранников. С помощью этого понятия получены результаты, касающиеся количественных характеристик и строения транспортных многогранников.
Известно, что среди задач ЦЛП значительное место занимают задачи, в которых все вершины многогранника условий имеют целочисленные координаты. Такие многогранники называются целочисленными. Задача описания всех систем линейных неравенств, задающих целочисленные многогранники, до сих пор не решена. Более простой оказалась задача описания классов матриц ограничений, для которых многогранник является целочисленным при любом целочисленном векторе правых частей.
Установлена связь между целочисленными многогранниками и важными проблемами теории графов и гиперграфов. Из свойств целочисленных многогранников выводятся теоремы о покрытиях и паросоче- таниях в графах, о матроидах и полиматроидах.
Введенное в [43] понятие а-модулярных матриц позволило выделить новые классы целочисленных многогранников. Были определены классы многогранников, которые обладают свойствами, позволяющими отыскивать решение задачи целочисленного программирования алгоритмами симплексного типа. Среди них следует назвать многогранники таких важных для приложений задач, как задачи размещения, о р-медиане, об упаковке ребер гиперграфа.
Для задач дискретной оптимизации важное значение имеет переход от параметрической формы задания выпуклого многогранника к аналитической. Он позволяет описать их в терминах ЛП. Для осуществления этого перехода необходимо дать описание всех граней максимальной размерности многогранника. До сих пор не найден явный вид всех граней многогранника для большинства задач ДО. Интересные результаты получены для многогранников в задачах о ранце, о максимальном парасочетании графа, об упаковке, коммивояжера. В [43] изложен подход к построению методов аналитического и параметрического описания целых точек многогранников, основанный на выделении порождающих множеств полугрупп.
§ 4. ПРИБЛИЖЕННЫЕ МЕТОДЫ РЕШЕНИЯ
ДИСКРЕТНЫХ ОПТИМИЗАЦИОННЫХ ЗАДАЧ
Как отмечалось в § 1, важную роль в решении дискретных оптимизационных задач играют приближенные методы. Точные методы при решении задач больших размерностей зачастую просто не могут гарантировать получение окончательного результата за приемлемое время, так как с ростом числа переменных и ограничений трудоемкость вычислений резко возрастает. На практике многие важные задачи планирования, проектирования и управления характеризуются по существу большой размерностью и в подавляющем большинстве случаев их решение не может быть сведено к решению некоторой совокупности задач меньшей размерности. Часто в пользу приближенных методов говорит и сам опыт решения дискретных оптимизационных задач;
получаемые приближенные решения удовлетворяют запросам практики, а на их поиск тратится нередко несравненно меньше машинного времени и других ресурсов (что особенно важно, когда оптимизационные задачи решаются в условиях действующих в реальном масштабе времени АСУ и АСОД и ресурсы, отпускаемые на их решение, строго лимитированы). Кроме того, следует учесть, что в большинстве случаев при решении задач используются модели, которые лишь приближенно отражают действительные взаимоотношения и реальные ситуации.
Отмеченные обстоятельства послужили основной причиной возросшего интереса к приближенным методам, под которыми мы понимаем, как правило, методы, не гарантирующие получение оптимального решения задачи.
В настоящее время разработке и исследованию приближенных алгоритмов решения задач ДО посвящено достаточно много публикаций. Среди них выделим прежде всего монографию Ю. Ю. Финкельштейна [163], в которой впервые были изучены вопросы, связанные с развитием данной проблематики, а также монографии [44,71, 94, 117, 134, 137, 145, 166, Д44], где приведены обзоры по работам данного направления. Здесь мы остановимся на отдельных результатах из этой области и некоторых интересных, с нашей точки зрения, публикациях, вышедших в свет за последнее время.
Из множества приближенных методов иногда выделяют: методы локальной оптимизации; модификации точных методов; эвристические процедуры, максимально учитывающие специфику решаемых задач; методы случайного поиска и методы, сочетающие локальную оптимизацию со случайным поиском. В той или иной мере все перечисленные группы методов (за исключением эвристических подходов) будут представлены в книге.
Следует отметить, что многие алгоритмы приближенного поиска позволяют решать задачи ДО в диалоговом режиме. Это дает возможность в зависимости от выделяемых ресурсов (времени, машинной памяти и др.) последовательно улучшать полученное решение путем изменения всех или некоторых исходных данных. При использовании систем с мультипрограммированием в режиме разделения времени появляется также дополнительная возможность распараллеливания процесса вычислений.
В качестве основных характеристик приближенных алгоритмов, принадлежащих различным группам, на практике чаще всего используются абсолютная и относительная погрешности полученного приближенного решения, под которыми, как правило, понимаются соответственно величины Ат и А2, определяемые из соотношений
Ai = / (х*) - f (х'), Д2 = , (1.30) где f (х) — заданная целевая функция, определенная на некотором дискретном множестве М, х £ М; х' — допустимое решение задачи, которое будем также называть и приближенным ее решением; х* — оптимальное решение задачи (для определенности здесь имеем в виду отыскание шах / (х) и, разумеется, в (1.30) / (х*) ^ 0).
Заметим, что оценки точности приближенного решения с использованием величин Ai и Д2 целесообразно сопровождать обсуждением содержательной стороны решаемой математической задачи. Ясно, что когда Ai = 0 (в этом случае будем считать и А2 = О, если даже / (х*) = = 0), то приближенное решение задачи совпадает с ее точным решением. На практике, особенно при решении задач большой размерности в режиме диалога, значительный интерес представляют также приближенные методы, которые позволяют обеспечить поиск последовательности приближенных решений xj, Х2, ..., каждый последующий член которой все ближе к точному решению задачи.
Иногда для оценки получаемых приближенных решений оказывается полезным использование точных решений соответствующих релаксационных задач и применение других приемов, в частности учитывающих специфику решаемой задачи (ряд таких приемов обсуждается в [163]).
Значительная часть приближенных алгоритмов решения различных классов задач ДО базируется на использовании вычислительных схем известных точных методов: ветвей и границ, отсечений, последовательного анализа вариантов, построения последовательности планов, Вендерса и др. Преобразования, позволяющие получить приближенные алгоритмы на основе перечисленных точных методов, предлагаются разными авторами разные. В одних случаях с помощью получаемых алгоритмов удается находить приближенные решения с наперед заданной оценкой их точности, в других — точность получаемых решений ставится в прямую зависимость от отпускаемых ресурсов на решение задачи, в третьих — точность решения задачи хотя и не оценивается, но имеются пути ее повышения. Работы этого направления достаточно полно описаны и поэтому здесь мы их не рассматриваем (за исключением метода Вендерса, для которого ниже будут приведены некоторые его модификации и интересные применения). Отметим только, что особенно эффективными для порождения приближенных алгоритмов оказались методы ветвей и границ и методы последовательного анализа вариантов. Что же касается методов отсечений, то большинство строящихся на их основе приближенных алгоритмов оказываются сравнительно мало эффективными, так как медленно сходятся.
Методы локальной оптимизации интенсивно развиваются сравнительно давно [128, 137, 163]. Существенное влияние на их развитие применительно к решению задач ДО оказали работы по дискретной математике, например [37], статьи Ю. И. Журавлева [48, 491, в которых был предложен локальный подход к вычислению информации, нашедший в дальнейшем [50] прямое применение при разработке приближенных алгоритмов решения дискретных оптимизационных задач. Нередко в методах локальной оптимизации на определенных этапах решения задачи используются идеи случайного поиска, а также различные приемы, максимально учитывающие специфику решаемой задачи. Алгоритмы, в которых комбинируются различные идеи, развиваемые в рамках локальной оптимизации, на практике нередко оказываются наиболее эффективными. С их помощью в различных организа- 38
циях страны решены сотни труднейших реальных задач (распознавания образов, классификации объектов, размещения, проектирования, планирования, управления процессами в реальном времени и др.).
Заметим, что нередко на практике эффективными могут оказаться и различного рода эвристические процедуры, в которых используются формально необоснованные, но правдоподобные соображения, опирающиеся на конкретный практический опыт решения подобных задач и их специфическую структуру. Иногда подобные процедуры в процессе их использования удается строго обосновать. Краткий обзор подходов такого рода можно найти в [70, 145, 163].
К приближенным методам дискретного программирования относится метод вектора спада, предложенный автором впервые в [128] и развитый затем применительно к решению задач ДО различных типов [124]. Метод вектора спада успешно используется при решении задач полностью и частично целочисленного программирования, задач с булевыми переменными, частично целочисленных задач [7, 131, 137], а также оптимизационных задач комбинаторного типа [130, 134], в которых значения переменных принадлежат к тем или иным комбинаторным пространствам, например пространствам выборок, перестановок, размещений, разбиений. Применение разработанного математического аппарата к ряду трудно формализуемых и плохо поддающихся решению задач дало положительные результаты. Поэтому многие из них успешно решаются на практике, например задачи организации вычислительного процесса, размещения приборов и оборудования, построения минимального дерева-остова, компановки и размещения элементов цифровой аппаратуры, некоторые задачи теории расписаний, задачи, возникшие при автоматизации работы фотонаборной установки, некоторые задачи классификации биологических объектов и др. [134].
В [83] предложен метод направляющих окрестностей, который является итерационным методом приближенного решения задач выпуклого, в том числе линейного, программирования с дополнительным требованием целочисленности переменных. Его можно рассматривать как дискретный аналог метода возможных направлений Зойтендейка [152] или как некоторое обобщение метода вектора спада [131], позволяющее внутри области допустимых решений «двигаться» в выбранном направлении с шагом, в общем случае выводящим из окрестности заданного радиуса.
Метод направляющих окрестностей успешно применяется при решении задач полностью и частично целочисленного линейного программирования. На его основе предложен также подход к поиску локального решения параметрических задач целочисленного программирования. Необходимость разработки методов для решения параметрических задач вызвана тем, что они позволяют экономно (с точки зрения объема вычислений) решать семейства родственных задач и оценивать влияние коэффициентов задачи на оптимальное решение, т. е. проводить анализ устойчивости в задачах целочисленного программирования. На основе метода направляющих окрестностей построены, например, приближенные алгоритмы [137, 138, Д60] решения параметри-
ческих задач ЦЛП вида: min (f (х) = (с + fc') х!Ах ^6, х ^ О, х ~ целочисленный вектор} или min (f (х) = х/Ах ^ 6 + tb'; х>0, х—целочисленный вектор}, в которых целевая функция или правые части ограничений линейно зависят от параметра t £ [аэ р], где а и Р — заданные действительные числа.
К области параметрического дискретного программирования относятся также проведенные исследования системы линейных диофантовых уравнений с параметром [66], которая в матричной записи имеет следующий вид:
(Л + M1)x = b + tb19 (1.31)
где А, Ат — целочисленные (иг х и)-матрицы; х— искомый целочисленный /г-вектор; t — целочисленный параметр; b, Ьг — целочисленные m-векторы. Получены достаточное условие (налагаемое на параметр /) несовместности в целых числах системы (1.31) и способ отыскания соответствующих значений параметра I. Определение значений параметра I, при которых заведомо не существует целочисленных решений системы (1.31), является необходимым этапом решения задач параметрического целочисленного программирования вида: найти ext f (х) при ограничениях типа (1.31). В работе [66] изложен подход к определению значений параметра t, при которых решение системы (1.31), если оно существует, единственно. Описаны все целочисленные матрицы Т такие, что г (Л — dT) = 1 при заданном d (здесь г (и) — ранг матрицы и). Эти исследования позволили значительно упростить процесс решения задач указанного вида, поскольку для полученных значений параметра I отпадает необходимость в доказательстве оптимальности найденного допустимого решения.
Для приближенного решения задач полностью и частично целочисленного линейного программирования были разработаны и другие подходы [7, 127, 137]. Одним из них является геометрический подход [5, 137], который связан с решением некоторой вспомогательной задачи: задачи ЛП, у которой область допустимых решений несколько уже допустимой области исходной задачи (без учета условий целочисленности). Компоненты вектора решения вспомогательной задачи, на которые в исходной задаче наложены условия целочисленности, округляются до ближайшего целого числа, в результате чего будет получено допустимое решение исходной задачи, достаточно близкое к оптимальному.
Для решения задач ЛП с булевыми переменными был создан Р-ме- тод [7], объединяющий идеи методов Балаша и лексикографического поиска и позволяющий перенести идеи последнего на более широкий класс задач.
Как уже отмечалось, в дискретном программировании перспективным является подход к поиску решений задач, основанный на лексикографической оптимизации, который, как и некоторые другие, предоставляет возможность поочередного применения различных алгоритмов в процессе решения одной и той же задачи и допускает распараллеливание поиска в целях сокращения времени решения этих задач. Следует отметить, что на каждом шаге поиска используется в основном
исходная информация о задаче и объем памяти ЭВМ при изменении номера шага остается прежним. Имеется возможность получения серии приближенных решений задач дискретной оптимизации.
При исследовании реальных проблем часто возникают задачи, относящиеся к классу задач математического программирования со смешанными переменными следующего вида:
шах ^сх + f^/Ax-V- F(y)^b; х^О; yES}, (1.32) где х £ Ер; Ер — р-мерное евклидово пространство; S — произвольное подмножество в Ер; А — матрица размерности т х р; b ис — фиксированные векторы соответственно в Ет и Ер; f (у) — скалярная функция, определенная на S; F (у) — m-компонентная векторная функция, также определенная на 5. В этот класс задач входят, например, задачи ЧЦЛП, с нелинейностями, блочной структуры и др.
Известно, что нахождение точного решения задачи вида (1.32) по методу Вендерса [187] часто связано со значительными затратами машинного времени и не всегда приводит к успеху. Первое допустимое решение, найденное по этому алгоритму, является оптимальным.
Для приближенного решения задач вида (1.32) предложен алгоритм [137], основанный на идеях декомпозиции Вендерса. С помощью этого алгоритма отыскивается за конечное число шагов некоторая последовательность допустимых решений, упорядоченных по возрастанию значений целевой функции. Для приближенного решения задач вида (1.32), в которых матрица А имеет блочно-диагональный вид, предложен специальный алгоритм [137], использующий идеи первого алгоритма и учитывающий структурные особенности матрицы условий. Эффективность обоих приближенных алгоритмов [137] исследовалась на задачах ЧЦЛП. Проведенный машинный эксперимент показал их хорошую работоспособность и подтвердил преимущества специ. ального приближенного алгоритма по сравнению с обычным приближенным алгоритмом для решения задач вида (1.32) с блочно-диагональной матрицей А.
Следует отметить, что в указанных алгоритмах декомпозиции полностью используются преимущества решаемой подзадачи ЛП (что особенно важно, когда матрица А имеет специальную структуру), но они не реализуются в алгоритмах, в которых переменные х и у изменяются одновременно.
Для решения комбинаторных задач оптимизации предложен ряд модификаций метода вектора спада [134]. Среди них следует отметить П-метод и фронтальные алгоритмы. Эти методы достаточно универсальны и могут быть использованы при решении различных классов задач и при параллельных вычислениях с широким применением диалогового режима.
В работах [134, 137] исследованы вопросы применения метода вектора спада при решении задач различных типов, описаны его модификации. В частности, найдено достаточное условие получения локального решения с помощью П-метода, а также показана полиномиальная зависимость времени решения задачи от ее размерности для метода вектора спада в применении к одному классу оптимизационных задач-
Широкое использование методов приближенного поиска в дискретном программировании, естественно, вызвало большой интерес к вопросу о совпадении локального минимума функции дискретного аргумента f (х), где х £ G е X, с ее глобальным оптимумом [8, 133, 134, 148, ДЗО]. Этот вопрос имеет различные аспекты. В частности, особый интерес приобретают определение класса функций / и вида множества G, для которых указанный вопрос решается положительно. С этой точки зрения важным является также исследование той или иной метрики, вводимой в множестве X. Тщательное изучение этих проблем способствует во многих конкретных случаях применению методов локальной оптимизации для отыскания глобального решения дискретной задачи.
В настоящее время в связи с необходимостью комплексной оценки принимаемых решений в различных задачах планирования, управления и проектирования требуется решать задачи математического программирования с учетом нескольких критериев оптимальности. При этом выбор одного критерия в качестве основного и перевод остальных в ограничения в большинстве случаев меняют смысл исходной задачи. Поэтому возникает необходимость в разработке методов решения многокритериальных задач математического программирования. Дадим формулировку таких задач, не привязываясь к конкретному виду критериальных функций и ограничений [94]. Пусть задано некоторое множество критериальных функций / = (A (a)}, i £1 = {1, ..., М}, а £ Л, где М — число критериальных функций; Л — область допустимых альтернатив а, в которой осуществляется выбор. Для определения единственного решения в задачах многокритериальной оптимизации необходимо ввести следующие эвристические процедуры [94]:
определить количественные характеристики, позволяющие сравнивать величины отклонений от оптимальных значений функций цели различной размерности, например, в виде
^(а) =^(а) =fl-wf 0 $• i it minfl-wf 0 $• i it minKbKb
^(а) =
^(а) =
fl-w
f 0 $
• i it min
fl-w
f 0 $
• i it min
Kb
Kb
где fu Amin — соответственно наилучшее и наихудшее значения функции А на множестве Л, если функции множества / максимизируются;
задать предпочтение на множестве функций цели в количественной шкале, например, с помощью весовых коэффициентов
Р € #+ = (p/pt > 0; g Pt = 1} •
В соответствии с принятыми эвристическими процедурами под решением задач многокритериальной оптимизации будем понимать такую компромиссную альтернативу, которая принадлежит множеству эффективных (неулучшаемых) альтернатив и находится на направлении, определяемом вектором р ^ а в пространстве принятых преобразований
^={^(а)), а £7.
Для нахождения этой альтернативы построен итерационный процесс
с параметром к0> на каждом шаге которого проверяется совместность системы неравенств
а^^^-^^-а^)- ^^ «ел,
при минимально возможном значении к^. Для многокритериальных задач ЛП поиск указанного решения сводится к решению задачи ЛП специального вида [201. Для многокритериальных задач дискретного программирования разработаны алгоритмы, базирующиеся на методах последовательного анализа и отсеивания вариантов [94]. Если при найденном компромиссном решении задачи для заданного вектора предпочтений значения функций-критериев не удовлетворительны, то возникает необходимость в построении человеко-машинной процедуры для поиска желаемого решения. В связи с этим предложена процедура, базирующаяся на задании подходящих значений критериальных функций, и доказана ее сходимость.
В применении к задачам дискретного программирования дальнейшее развитие получили методы случайного поиска и стохастического программирования [46, Д66].
Любой метод случайного поиска характеризуется видом вероятностного распределения, согласно которому выбираются точки из допустимого дискретного множества. Наиболее простыми являются методы с жестко фиксированным законом распределения, который не меняется от итерации к итерации. Подобные методы использовались, например, для поиска допустимых решений в задачах целочисленного выпуклого и линейного программирования [137]. Достоинством таких методов является исключительная простота реализации. Однако они не могут быть адаптированы к конкретной решаемой задаче. Более гибкими являются методы, у которых вероятностный закон зависит от исходов предыдущих испытаний и изменяется от итерации к итерации. При этом может происходить отсечение «неперспективных» дискретных точек, как, например, в методе управляемого случайного поиска [137], либо перераспределение вероятностей в пользу «перспективных» точек [47]. А. Н. Голодниковым построен эффективный стохастический алгоритм приближенного решения многомерной задачи о ранце с целочисленными переменными, который при решении целого ряда задач позволил за достаточно малый промежуток времени отыскивать решения со значениями целевой функции, лишь незначительно отличающимися от оптимальных. С учетом этой особенности целесообразно использовать найденное по данному алгоритму решение в качестве начального приближения для работы некоторых других алгоритмов. Целесообразно также использовать алгоритм случайного поиска для приближенного решения многомерных задач о ранце с целочисленными переменными большой размерности. Отметим, что время решения на ЭВМ ЕС-1040 по данному алгоритму тестовых задач размерности 100 х 100 составляет в среднем 10 с, 100 х 500 — 1 мин, 100 х 1000 — 1 мин. 10 с.
Для приближенного решения многомерных задач о ранце с булевыми переменными В. П. Шило построен алгоритм случайного поиска,
а также модифицированный алгоритм Балаша [106]. Проведенный машинный эксперимент по решению тестовых задач с числом переменных до 50 подтвердил эффективность этих алгоритмов. Алгоритм случайного поиска хорошо приспособлен для решения задач в режиме диалога. Это, в свою очередь, дает возможность в процессе решения задач о ранце с булевыми переменными изменять функции распределения вероятности и в итоге уменьшать время получения приемлемого решения.
В работе [Д 62] показано, что для широкого класса задач булевого линейного программирования существуют полиномиальные асимптотически е-оптимальные алгоритмы случайного поиска. Ряд алгоритмов случайного поиска для решения многомерной задачи о ранце реализован в диалоговом ПП ДИАРАНЦ. Основанные на подходе [Д 61] эти алгоритмы дают возможность достаточно эффективно определить необходимое число итераций и выбрать функцию распределения вероятностей случайной величины, используемую в процессе решения задачи. Кроме того, в пакет включены программы, позволяющие производить анализ решаемой задачи для получения некоторых вероятностных оценок параметров алгоритмов решения.
В работе [54] описан итерационный метод с использованием случайного поиска для решения задач ЛП с булевыми переменными. Этот метод затем был усовершенствован в работе [ИЗ], после чего, по мнению его авторов, мог быть рекомендован для решения указанного типа задач уже большей размерности. Примером методов, сочетающих идеи случайного поиска с локальной оптимизацией, может быть метод, предложенный для решения задач дискретного программирования Рейтером и Шерманом. Основная идея этого метода состоит в том, что вначале случайным образом выбираем допустимый исходный план. Затем по некоторому правилу определяем «окрестность» этого плана и находим оптимальное значение целевой функции на точках окрестности. Далее процесс повторяется: случайным образом находим новый допустимый план и строим для него новую окрестность, в которой снова находим локальный оптимум функции цели. Повторив этот процесс несколько раз, выбираем среди полученных локальных оп- тимумов наилучший и принимаем его за окончательное приближенное решение исходной задачи.
Рассмотренные выше алгоритмы характеризуются тем, что в процесс поиска решения вводится элемент случайности.
Необходимо отметить еще группу методов, в которых рандомизируется и сама решаемая задача. Суть таких методов состоит в том, что целочисленные точки, на которых происходит поиск экстремума, рассматриваются как случайные с неизвестными функциями распределения. При этом задача поиска оптимальных дискретных точек сводится к задаче определения оптимальных функций распределения с последующим выбором дискретных точек согласно полученным законам распределения. Идея замены чистых стратегий смешанными при решении дискретных задач заимствована из теории игр и впервые была применена к линейным задачам с булевыми переменными в работе [54]. В дальнейшем эта идея применялась к дискретным нелинейным задачам [115].
В ряде работ введение элемента случайности используется для улучшения характеристик существующих методов дискретного программирования. Известно, например, что основной недостаток метода ветвей и границ состоит в том, что порядок ветвления заранее жестко зафиксирован. В силу этого процесс решения некоторых трудных задач методом ветвей и границ может свестись к полному перебору. С целью устранения отмеченных недостатков метода ветвей и границ в работе [55] вводится рандомизация процесса ветвления, что позволяет сделать перебор допустимых решений более гибким, допускающим возможность использования текущей информации. В качестве другого примера можно рассмотреть введение элементов случайности в схему метода вектора спада [137]. В частности, как модификацию этого метода можно рассматрйвать предложенный М. М. Ковалевым, Е. Гир- лихом и В. А. Пирьяновичем стохастический метод перебора точек в окрестности текущего решения.
При реализации стохастических алгоритмов дискретной оптимизации возникает проблема оперативной оценки точности полученного решения и выработки правил останова [88].
Методы дискретной оптимизации эффективны в тех случаях, когда функции цели и ограничений легко вычисляются. Если же вычисление функций связано со значительными затратами машинного времени, то возникает задача определения оптимума при фиксированном числе изменений (экспериментов). В работе [79] для решения таких задач предлагаются процедуры, которые рассматриваются как адаптивный процесс планирования экспериментов на допустимом дискретном множестве точек.
Вопросам исследования статистической эффективности алгоритмов дискретной оптимизации посвящена работа [160].
В заключение отметим работы, в которых методы случайного поиска применялись к конкретным прикладным задачам. Задачи сегментации графов изучались в [47]. В [24, 220] стохастическими методами решались задачи теории расписаний. В работе [201] для решения задачи о размещении элементов на плате используется теория статистических решений.
§ 5. ПРОГРАММНЫЕ СРЕДСТВА
РЕШЕНИЯ ЗАДАЧ ОПТИМИЗАЦИИ
Во всем мире интенсивно проводятся работы по созданию программных средств, автоматизирующих разнообразные процессы, возникающие при решении на ЭВМ оптимизационных задач из различных областей науки и техники, а также при создании автоматизированных средств для управления производственными процессами и объектами. В результате выполнения этих работ был построен ряд АСОД и ПП, разработано МО некоторых АСУ и специальное МО, являющееся дополнением к общему МО ЭВМ и вычислительных систем.
Для комплексного решения задач оптимизации наиболее эффективными и распространенными программными средствами являются про-
блемно-ориентированные ПП. Общие подходы к построению ПП, их типовая структура, разработка и использование обсуждаются в гл. 1L Здесь кратко остановимся на общей характеристике отдельных ПП, предназначенных в основном для решения дискретных оптимизационных задач, не вдаваясь при этом в детали и особенности построения их МО.
С развитием пакетной проблематики на практике утвердился новый, диалоговый, способ решения оптимизационных задач, который в целом ряде случаев является исключительно эффективным. Это касается прежде всего решения задач большой размерности, вопросов исследования математических моделей, решения задач в условиях ограниченных ресурсов (машинного времени, памяти и др.), использования для решения сложных задач поочередно нескольких алгоритмов и др. Применение диалогового подхода весьма эффективно, например, при решении задач проектирования ЭВМ и их устройств, разработке оптимальных планов работы крупных предприятий и отраслей промышленности, обработке данных с использованием больших информационных массивов и банков данных, создании мощных систем МО ЭВМ и ПП, решении задач в реальном масштабе времени.
Существуют различные подходы к реализации в программных средствах диалогового способа решения оптимизационных задач. Имеются возможности учета в них специфики решаемого класса задач, применяемого типа ЭВМ и ее внешнего оборудования (дисплеи, графопостроители и др.), режима использования ЭВМ в системе и т. д. Очевидные преимущества диалогового способа решения задач следующие:
наглядность процесса решения задачи;
возможность проверки различных стратегий поиска оптимального решения в процессе решения сложной задачи;
возможность оперативного вмешательства в процесс вычислений, что особенно важно в тех случаях, когда трудно заранее все строго формализовать и предвидеть «поведение» применяемых математических средств поиска оптимального решения.
В той или иной мере диалоговая стратегия решения задач использовалась в ПП сравнительно давно. В частности, в [140] описана диалоговая АСОД, предназначенная для обработки статистических данных; в [122] — система САППОР, ориентированная на решение в режиме диалога экстремальных задач; в [27] — система автоматизированной обработки экспериментальных данных в режиме диалога. В [140, 145, 181, Д48] приведены достаточно полные обзоры работ, посвященных разработке и использованию диалоговых средств решения задач на ЭВМ.
В Институте кибернетики начиная с 60-х годов интенсивно велись работы в области теории оптимизации. Особенно заметные успехи достигнуты в разработке численных методов решения оптимизационных задач различных типов. Большой комплекс работ, выполненных в этом направлении под руководством В. С. Михалевича, послужил основой для разработки ПП для решения задач оптимизации.
ПП семейства ДИСПРО [97, Д43] предназначены для решения на ЕС ЭВМ общих и специальных задач дискретной оптимизации. Они
могут быть использованы организациями, применяющими в разработках методы решения задач дискретного программирования.
ПП ДИСПРО имеет модульную структуру, удобный для пользователя входной язык. Различные части пакета реализованы на? языках АССЕМБЛЕРа, ФОРТРАН-1 V, ПЛ/1; он может работать на совместимых моделях ЕС ЭВМ (ЕС-1022 и выше) под управлением ОС ЕС (версии 4.1 и 6.1) в различных режимах.
С помощью ДИСПРО можно решать следующие задачи общего вида:аЦЛП, ЧЦЛП, ЛП с булевыми переменными, с параметрами в правых частях ограничений, целочисленного квадратичного программирования, нахождения целочисленных решений систем линейных уравнений и неравенств, определения тех значений параметра, при которых не существует целочисленных решений систем линейных диофантовых уравнений с параметром. Пакет позволяет также решать задачи специального вида: сетевые задачи теории расписаний, задачи размещения, оптимального распределения ограниченных ресурсов, разбиения, покрытия, пространственно-временного распределения машин по работам.
В ДИСПРО реализованы методы ветвей и границ, последовательного анализа вариантов, отсечений, лексикографического поиска, Вендерса, Балаша. Для приближенного решения задач можно использовать методы вектора спада, направляющих окрестностей, случайного поиска, а также некоторые модификации точных методов.
В системном обеспечении ДИСПРО, в частности, решены следующие вопросы:
реализованы надежный синтаксический и логический контроль данных и диалоговые средства подготовки и обслуживания данных;
пакет открыт для пополнения и расширения и позволяет включить в его состав прикладные модули на языках АССЕМБЛЕРа, ФОРТРАН-IV, ПЛ/1;
реализованы подготовка данных в естественном формате, удобном для пользователей, и эффективные сервисные возможности по созданию, корректировке и хранению наборов данных (исходных, промежуточных, результирующих).
Применение в ДИСПРО диалоговых средств для решения задач существенно повышает эффективность использования ряда методов, особенно в тех случаях, когда речь идет о решении задач большой размерности и если требуется исследовать зависимость получаемых решений от параметров методов и (или) исходных данных. Диалоговые средства можно также использовать для корректировки математических моделей решаемых задач. Описанию ПП ДИСПРО-3 посвящен § 2 гл. 12.
Пакеты программ семейства ВЕКТОР [33] предназначены для решения задач оптимизации комбинаторного типа. Математические модели задач оптимизации и алгоритмы их решения, которые составляют основу проблемного наполнения этих пакетов, могут применяться при проектировании сложных технических систем различного назначения, размещении производства, в экономике, планировании. Пакеты
ВЕКТОР разрабатываются в виде семейства моделей совместимых друг с другом и с внешним окружением^ в частности с системами автоматизации проектирования (САПР). Это весьма важно, так как САПР в последнее время играют все большую роль.
МО этих ПП позволяет адаптировать их к решению задач размещения взаимосвязанных объектов в выделенных позициях, оптимального разбиения (пакетирования) на группы множества задач, подлежащих решению на многопроцессорной системе, оптимальной компоновки программ и др. В частности, с их помощью решаются оптимизационные задачи автоматизации проектирования ЭВМ типа компоновки и размещения, задачи о назначениях, коммивояжере, разбиениях множества.
МО ПП семейства ВЕКТОР характеризуется такими основными аспектами:
включением широкого спектра решаемых задач и алгоритмов оптимизации;
возможностью решения задач в диалоговом режиме с гибким управлением вычислительным процессом;
высокой степенью автоматизации вычислительного процесса;
простотой и наглядностью входного языка;
мобильностью;
расширяемостью.
Диалоговые средства ПП ВЕКТОР-2 позволяют осуществлять ввод с нескольких устройств и коррекцию задания (в частности, коррекцию исходных данных), а также многократный запуск решаемой задачи на счет с возможностью модификации тех параметров вычислительного процесса, которые могут быть описаны при помощи входного языка ПП. В ходе решения задачи в интерактивном режиме пользователь ПП может:
формулировать и корректировать математическую модель задачи;
выбирать и изменять алгоритм решения задачи, настраивать его варьируемые параметры;
оперативно просматривать результаты счета и данные по решаемым задачам;
прерывать вычислительный процесс с сохранением полученных результатов на магнитном диске или магнитной ленте;
возобновлять прерванный ранее вычислительный процесс с момента прерывания.
В частности, в ПП ВЕКТОР-2 автоматизированы такие процессы, как синтез математической модели задачи по исходному описанию, построение допустимого начального приближения и автоматический выбор алгоритма решения задачи и настройки его варьируемых параметров.
В пакетах этой серии реализованы методы локальной оптимизации, декомпозиции и методы, использующие аппроксимационные модели исходной задачи. В частности, в нем широко представлены различные модификации уже упоминавшегося метода вектора спада. Пакеты имеют развитый входной язык и хорошую ориентацию на возможность
решения задач в диалоговом режиме. Они реализованы на' ЕС ЭВМ и на БЭСМ-6.
_ Пакет программ НДО [86^ Д42] предназначен для решения задач блочно-линейного, нелинейного и стохастического программирования. Максимальная размерность решаемых задач — 8000 переменных. Область применения: задачи перспективного планирования, прогнозирования, управления товарными ресурсами и запросами, оптимального планирования. Нелинейные и стохастические функции могут быть недифференцируемыми; для решения стохастических задач достаточно имитировать реализации случайных величин.
Пакет функционирует на ЭВМ как задание пользователя в одном из разделов оперативной памяти под управлением ОС ЕС. Можно вызывать пакет как подпрограмму из внешних программ. Задание пакету формируется на входном проблемно-ориентированном языке, а исходные данные описываются на языке подготовки данных.
Пакет может использоваться в автоматическом и диалоговом режимах. Диалог инициируется пользователем в произвольные моменты времени и ведется на фоне работы прикладных программ. Пользователь может получить информацию о ходе решения задач и, изменить параметры или текущие точки траекторий алгоритмов, заменить один алгоритм другим и т. д. Для повышения эффективности ведения диалога реализованы специальные двухпроцессорные средства, основанные на параллельной работе двух алгоритмов, решающих задачу, с обменом информации между ними. Пакет автоматически оптимальным образом настраивается на имеющийся объем оперативной памяти ЭВМ, свойства задачи и вид исходных данных.
В ПП НДО реализованы стохастические квазиградиентные методы, алгоритмы, основанные на использовании идей методов обобщенноградиентного спуска, с растяжением пространства, сглаживающего типа, с усреднением направления спуска. Он функционирует на ЕС ЭВМ под управлением OC/MVT (версии 4.1 и 6.1).
Система ДИСПЛАН [26] предназначена для оперативного решения в диалоговом режиме задач текущего планирования на этапе согласования плана. В ее основе лежит модель балансовых расчетов, дополненная ограничениями на ресурсы. Изменяя в процессе диалога технологические нормативные коэффициенты векторов конечного продукта и ресурсов, можно оперативно получить вектор валового продукта. С помощью систем ДИСПЛАН осуществляется решение системы линейных алгебраических уравнений (до 1200 переменных) и определяется, насколько полученное решение удовлетворяет ограничениям на ресурсы. Другими словами, эта система используется для оперативного варьирования ресурсами перспективных планов с учетом прямых и косвенных затрат, путем вариаций элементов матриц и векторов модели. Важным обстоятельством является то, что в случае необходимости с ее помощью можно соответствующим шифром оперативно вызвать любой столбец или вектор модели и произвести изменения необходимых нормативов.
Система ДИСПЛАН представляет собой комплекв математических, общесистемных и специальных программных средств, работающих в
автономном и диалоговом режимах. При работе в автономном режиме последовательность операций определяется заранее составленной пользователем программой (заданием системе), хотя при необходимости возможен переход на диалоговый режим работы пользователя с системой. В указанной программе учтена система вопросов пользователю, которые могут быть заданы лишь в определенной последовательности. В автономном режиме программа-задание вводится в систему с перфокарт. В диалоговом режиме от пользователя не требуется предварительного ознакомления с вопросами системы и их очередностью; необходимо только, чтобы пользователь умел отвечать на запросы системы. Пользователь может улучшать характеристики любого варианта плана с помощью различных средств: пишущей машинки или графического дисплея.
Система ДИСПЛАН реализована на БЭСМ-6 и ЕС ЭВМ. Она является типовой, имеет модульную структуру, специализированный проблемно-ориентированный язык. В ней нашел приложение ряд идей системной оптимизации в диалоговом режиме, выдвинутых В. М. Глушковым. Система может применяться различными плановыми органами для многокритериальной оптимизации народнохозяйственных планов.
Значительный интерес для практики представляют так называемые транспортные задачи в различной постановке. Они, как правило, характеризуются большой размерностью и трудно поддаются решению. В Институте кибернетики созданы два основных пакета для решения задач этого типа — ПЛАНЕР и ПТП.
Пакет программ ПТП, разработанный И. Н. Мельником, А. С. Стукало и другими, предназначен для решения задач транспортного типа, в том числе задач нахождения кратчайших расстояний между пунктами сети, максимального потока, максимального динамического потока, линейных и нелинейных сетевых транспортных задач, распределительной задачи, транспортно-производственной задачи, транспортных задач в матричной постановке (с критериями оптимизации — минимум стоимости и минимум времени) и др.
С точки зрения математического описания задачи, решаемые с помощью ПТП, делятся на три класса:
сетевые транспортные задачи, позволяющие составить рациональные планы перевозок и схемы грузопотоков на транспортных сетях с учетом их характеристик;
задачи распределительного типа (для распределения производственной программы между предприятиями-производителями неоднородной продукции с целью обеспечения потребностей предприятий-потребителей с учетом плановых ограничений предприятий и транспортных затрат на доставку продукции потребителям);
транспортные задачи в матричной постановке, являющиеся математическими моделями для задач рационального прикрепления поставщиков к потребителям однородного продукта.
Примером реализованных в ПТП математических моделей может служить следующая (с помощью этой модели могут решаться многие транспортно-производственные задачи, задачи размещения вычислительных средств и абонентских пунктов сетей ЭВМ и др.).
Определить минимум функции цели вида
S Xj S сЦ%ик 1=1 /=1 Л=1
при выполнении условий
2j ij/ == 1> • • • , ^»— 1, . . • > 1>
t=l
п I
j 5j ^ik^ifk ^5 ^й ^ == ^, • • • »
/=1 к=Л
Ph i — 1, . , . , Z72,
/=1 k—\
где i — номер предприятия-поставщика (в случае размещения сетей ЭВМ—номер пункта обработки данных); j—номер потребителя; к — номер вида продукции, подлежащей транспортировке (номер вида данных, подлежащих передаче по каналам связи); Сс/ — расстояние или стоимость перевозки продукции от t-ro поставщика до /-го потребителя; хцк — количество продукции fe-ro вида, изготовляемой на i-м предприятии (пункте обработки данных) для /-го потребителя; djk — потребность /-го потребителя в к-м виде продукции; tu — среднее время изготовления t-м предприятием единицы продукции fe-ro вида; it — ограничения i-то поставщика по времени в планируемый период; pt — ограничения t-ro поставщика по ресурсам в планируемый период.
Пакет ПТП имеет сложную модульную структуру, его МО состоит из библиотеки программных модулей и библиотеки исходных данных. Все модули написаны на языках ФОРТРАН-IV и ПЛ/1. Модули управляющей программы написаны на языке АССЕМБЛЕР. В пакете используется развитый входной язык, заложены хорошие сервисные возможности, предусмотрены автономный и диалоговый режимы работы пакета. Реализован пакет на ЕС ЭВМ и работает под управлением ОС ЕС (версии 4.1 и 6.1).
ПП ПЛАНЕР ориентирован на решение специальных классов задач производственно-транспортного планирования большой размерности. Задачи, решаемые с его помощью, и структура его математического обеспечения рассмотрены в работе [98]. По сравнению с другими подобными пакетами в нем существенно расширены множества классов решаемых задач и алгоритмов, используемых для поиска оптимальных решений, реализовано развитое системное обеспечение пакета, позволяющее обеспечить надежность вычислений, удачно манипулировать данными и вести постоянную его модернизацию. С учетом ориентации на решение транспортных задач специальных видов в данном пакете реализовано большое количество специальных математических методов. В оптимизационных ядрах многих функциональных модулей эффективно используются так называемые обобщенные градиентные методы с растяжением пространства в направлении
разности двух последовательных субградиентов [178], которые хорошо зарекомендовали себя при решении задач большой размерности.
ОРБИТАЛЬ — пакет программ [114], предназначенный для решения в диалоговом режиме задач стохастического программирования. Он позволяет решать задачи безусловно# минимизации, осуществлять построение эмпирических математических моделей по заданным экспериментальным данным. На практике он весьма высокоэффективен для решения задач указанного типа и успешно используется в ряде организаций страны. В нем используются различные методы прямого поиска, случайного поиска, ряд специальных алгоритмов. МО пакета ОРБИТАЛЬ состоит из 50 подпрограмм на языке ФОРТРАН. В пакете весьма удачно используются возможности графического дисплея со световым лером для оперативного вывода всевозможной информации о ходе вычислительного процесса, что позволяет гибко управлять процессом вычислений, осуществлять многократную замену используемых алгоритмов. Информация выводится на экран в виде удобного для зрительного восприятия графика поведения целевой функции от итерации к итерации и оценки ее математического ожидания. При необходимости выводимый график можно масштабировать на экране по горизонтали (во входном языке пакета для этой цели имеется специальная директива — СЖАТЬ ГРАФИК). ОРБИТАЛЬ реализован на БЭСМ-6 с использованием комплекса графических дисплеев АСПРО-2.
Разработанная Ю. Г. Евтушенко и другими учеными ВЦ АН СССР диалоговая система оптимизации ДИСО (ДИСО-1 и ДИСО-2) [15, Д2] предназначена для решения задач безусловной минимизации, нелинейного программирования и оптимального управления. Эта система реализована на БЭСМ-6 в мониторной системе ДУБНА. Управляющие программы написаны на языках ФОРТРАН и АЛГОЛ-ГДР, библиотека методов оптимизации — на языке АЛГОЛ-ГДР. ДИСО может работать в трех режимах: мета процессор а (диалоговая оптимизация ведется с помощью специализированного языка), логического процессора (система сама подбирает методы и осуществляет переключение на другой метод), лингвистического процессора (диалог с системой ведется на языке, близком к естественному). ДИСО ориентирована на работу с математическими моделями сложных технических и физических систем, которые требуют для своего функционального описания средств достаточно мощных языков программирования типа АЛГОЛ или ФОРТРАН. С учетом этого разработчиками было принято следующее решение о «входной архитектуре» ДИСО.
Система имеет двухстороннюю стыковку со стандартными языками (АЛГОЛ и ФОРТРАН). Все функции, использующиеся внутри системы, т. с. функции, входящие в постановку оптимизационных задач, могут вводиться в систему в виде произвольных АЛГОЛ- или ФОРТРАН-подпрограмм. С другой стороны, ДИСО может быть вызвана из произвольной АЛГОЛ- или ФОРТРАН-программы как обычная процедура, параметрами которой являются функциональные и числовые объекты постановки соответствующей оптимизационной задачи. Таким образом, с помощью ДИСО легко организовать цикл решения серии оптимизационных задач: можно включить эти задачи в качестве
подзадач в некоторые более сложные вычислительные процессы. Система используется в ВЦ АН СССР и других организациях. В ней реализованы следующие методы: наискорейшего спуска, Ньютона и его модификации, сопряженных градиентов, случайного поиска, штрафов, проекции градиента, линеаризации и нагруженного функционала.
В Институте математики и механики Уральского научного центра АН СССР под руководством И. И. Еремина разработан пакет производственного планирования ОПТИМА-2 [Д14], предназначенный для решения на БЭСМ-6 (ОС ДИСПАК) потока информационно-близких задач линейного программирования большой размерности. Язык его программирования — Автокод-СОМИ. В пакете реализованы симплекс-метод и методы; использующие расширенные функции штрафа. Методы в ПП могут использоваться самостоятельно, а также в режиме сопряжения друг с другом. ПП обеспечивает решение систем линейных неравенств итерационным методом фейеровского типа, содержит программные средства получения приближенного решения и преобразования исходной информации. Он, в частности, используется для решения задач объемно-календарного планирования в производственном объединении УРАЛМАШ.
В Институте проблем управления под руководством А. П. Узде- мира разработан ПП, предназначенный для решения на ЕС ЭВМ (в рамках ОС) динамических целочисленных задач территориального размещения и развития производства. Он ориентирован на двухэтапные транспортные связи (сырье — производство, производство — потребление) и один вид основного сырья. В ПП предусмотрено эффективное использование режима диалога. Здесь же разработан ПП для планирования индивидуального и мелкосерийного производств, который включен в АСУ производственного объединения «Электро- стальтяжмаш». Он предназначен для решения динамических задач планирования дискретного производства в дискретном времени с критерием минимизации максимальной относительной загрузки производственных мощностей; приспособлен к структуре информационных массивов АСУ «Электростальтяжмаша». Результаты работы ПП выдаются пользователю в виде таблиц. Пакет реализован на j ЭВМ «Минск-32».
В Институте технической кибернетики АН БССР под руководством В. С. Танаева разработан ряд пакетов программ для решения на ЕС ЭВМ (под управлением ОС) различных оптимизационных задач. В частности, создан ПП для решения задач динамического программирования с монотонным, рекуррентно заданным критерием оптимальности. Программы пакета написаны на языке ФОРТРАН-IV. Он рассчитан на работу как с оперативной памятью, так и с внешними носителями (дисками), которые используются для хранения промежуточной информации. Там же разработан ПП, предназначенный для решения на ЕС ЭВМ задач оптимального упорядочения, т. е. задач минимизации функций, заданных на множестве перестановок элементов конечного множества. Для расширения возможностей ПП в него включены программы решения некоторых задач теории расписаний, в которых
расписание обслуживания требований не может быть задано перестановкой этих требований. Программы пакета написаны на языке ФОРТРАН-IV и занимают в совокупности около 70 кбайт.
В ЦНИИТУ под руководством В. А. Емеличева разработан пакет прикладных программ технико-экономического планирования. Этот пакет реализован на базе как дисковой операционной системы ДОС/ЕС (ППП-ТЭП-ДОС), так и операционной системы ОС/ЕС (ППП-ПРО- ГРАЛ1МА-ТЭП-ОС). Для этих систем разработаны программы решения общей задачи ЛП и задач ЦЛП с булевыми переменными, а также средства, обеспечивающие автоматизацию подготовки исходных матриц задач оптимального планирования в АСУП на основе информационной базы АСУП, выбор алгоритма решения конкретной задачи.
ППП-ТЭП-ДОС и ППП-ПРОГРАММА-ТЭП-ОС ориентированы на автоматизацию расчетов оптимального плана на предприятиях преимущественно с единичным, мелкосерийным и серийным характерами производства. Эти пакеты могут быть включены в состав АСУП как в полном объеме, так и в виде отдельных комплексов. Они предназначены для расчетов оптимального плана предприятия на стадии разработки проекта плана, после получения контрольных цифр по основным технико-экономическим показателям, а также обеспечивают оптимальное распределение производственной программы предприятия по плановым периодам.
ПП МОДЕЛЬ [Д31] предназначен для решения задач идентификации объектов управления (частные задачи: минимизация функций многих переменных без ограничений или с ограничениями вида D = {х | сц ^ ^ х ^ Ьь i = 1, ..., п}). Для решения задач оптимизации в нем реализованы методы случайных направлений; случайных направлений с обучением; случайных направлений для задачи с ограничениями; деформируемого многогранника; градиентный; градиентный с ограничениями; модифицированный Ньютона; Пауэлла.
МОДЕЛЬ упрощает процесс подготовки конкретной задачи для решения при использовании специально разработанного языка управления. Задачи, естественно, можно решать либо в пакетном, либо в диалоговом режиме. Основные программы пакета написаны на языках ФОРТРАН-IV и АССЕМБЛЕР. ПП работает на ЕС ЭВМ под управлением ДОС ЕС и ОС ЕС.
ПП РАЗМЕЩЕНИЕ разработан в Институте проблем машиностроения АН УССР под руководством Ю. Г. Стояна и предназначен для решения задач рационального размещения геометрических объектов. К ним относятся задачи построения оптимальных планов раскроя промышленных материалов, проектирования схем генеральных планов промышленных предприятий, компоновки оборудования крупных цехов и производства, элементов радиоэлектронной аппаратуры и др.
Все задачи, на решение которых ориентирован данный ПП, разбиты на три класса: регулярного размещения, нерегулярного размещения и компоновочные. Разбиение обусловлено как некоторыми особенностями решения, присущими задачам каждого класса, так и вполне определенной сферой практического приложения. Выработанная струк-
тура ПП позволяет выделить (сгенерировать) его конфигурацию для решения задач, интересующих конкретного пользователя.
Задачи рационального размещения геометрических объектов являются многоэкстремальными, и процесс их решения включает построение допустимых вариантов размещения и затем поиск рационального варианта. Для решения этих задач разработаны математический аппарат годографов вектор-функций плотного размещения, а также специальные методы оптимизации [1491: сужающихся окрестностей, значимых переменных и их модификации. Конструирование алгоритма решения задачи заключается в выборе способов построения допустимых вариантов и оптимизации, целевых функций, обеспечивающих решение задачи при минимальных затратах времени и ресурсов ЭВМ. Эффективность применения того или иного алгоритма существенно зависит от количественных характеристик исходных данных: числа размещенных объектов, допустимых ориентаций объектов, областей запрета и др. Поэтому эффективный алгоритм решения задачи целесообразно формировать в режиме диалога путем всестороннего анализа задачи и ее исходных данных. ПП РАЗМЕЩЕНИЕ допускает и явное задание алгоритма решения задачи, а также его автоматическое и полуавтоматическое формирование. На основании некоторого заданного или сформированного алгоритма автоматически генерируется ФОРТРАН-программа решения задачи.
Для общения пользователей с ПП разработаны проблемно-ориентированные языки описания задания и исходных данных, позволяющие представлять задачи в форме, близкой к их естественной постановке, и оперативно готовить задачи для решения на ЭВМ.
Первая версия ПП РАЗМЕЩЕНИЕ реализована на БЭСМ-6. Выбор языка ФОРТРАНА в качестве базового позволяет использовать этот пакет на ЕС ЭВМ.
С другими ПП можно ознакомиться в работах [15, 122, 145, Д53, Д57, Д59, Д65].
Глава 2
ТОЧНЫЕ МЕТОДЫ
5 1. ДЕКОМПОЗИЦИОННЫЙ МЕТОД ПОСЛЕДОВАТЕЛЬНОГО АНАЛИЗА ВАРИАНТОВ ДЛЯ РЕШЕНИЯ ЗАДАЧ ЦЛП
В работах 194, 95] предложен декомпозиционный подход к решению задач дискретной оптимизации, основанный на методе последовательного анализа и отсеивания вариантов [92, 93, 100].
Рассмотрим задачу ЦЛП в следующей постановке [11 Ui минимизировать
^х,(2.1)
при ограничениях
S atjXj<bu i = L ..., tn,(2.2)
/—1
/ = 1, . .., П,(2.3)
Xj—целое, / = 1, ..., п,(2.4)
где ау и Ру — границы изменения переменных, / = 1, ..., п,— целые числа. При а, = 0, Ру = 1 (2.1) — (2.4) представляет собой задачу ЦЛП с булевыми переменными.
Обозначим R систему ограничений (2.2) — (2.4). Вектор х = (хп ... ..., х„) назовем вариантом решения задачи (2.1) — (2.4), если его компоненты удовлетворяют ограничениям (2.3), (2.4). Вариант решения назовем допустимым, если для него выполняются условия (2.2).
Процедура Ux уточнения границ. Процедура Ux применяется к ограничениям (2.2) — (2.4). Она позволяет уточнять границы изменения переменных ау и Ру, / = 1, ..., п, путем анализа неравенств (2.2) и отсеивать при этом из множества, определяемого ограничениями (2.3), (2.4), варианты, заведомо не удовлетворяющие условиям (2.2).
Уточненными границами изменения переменных назовем целые числа ау, Ру, / = 1, .... п, для которых выполняются следующие условия: а) ау ^ ау, Ру ^ Ру, / = 1, ..., п, и хотя бы одно из этих неравенств строгое; б) компоненты произвольного допустимого варианта х = (xjх„) удовлетворяют неравенствам
ау^Ху^ Ру, / = 1п.
Процедура иг базируется на использовании следующего утверждения [94];
если
Xj>(b{— 2 Оц£ (а{^ \atb ац>о, \ k^fe^i/
или
Xj<\bi— 5] at£(aikHlalb a<j<0>
где 1 ак при а«>0, P* При aik^0,
хотя бы для одного I £ ^\, .... т^, то для допустимого варианта х компонента х} не может принимать значение, равное хь
Перейдем к пошаговому описанию этой процедуры.
Процедура Ut
1. В качестве начального приближения выбираем а^ = а/, р^ — = Р/, / — 1, —» "• Полагаем к = 0.
L2. На (Я + 1)-м шаге процедуры вычисляем
afA+D _ тах L»)afA+D _ тах L»)max<«вц<&max<«вц<&
afA+D _ тах L»)
afA+D _ тах L»)
max
<«вц<&
max
<«вц<&
pfH) = min (р^, min Щ bt - V atk^ (а/6) )/а„ I t»i/>o UA w / w где
а^ при atk > 0,
P?* при atk < 0, Jal, la] — соответственно наименьшее целое, не меньше а, и наибольшее целое, не больше а.
Если а/6+1) = о$\ р^А+1> = Р^, / = 1, ..., п, то заканчиваем вычисления, полагая
'r/(h+’> r' — rW)
ai = az , р/ = р/ .
В противном случае заменяем к на h + 1 и переходим к п. 2.
Имеет место следующая теорема.
Теорема 2.1. Процедура Ut конечна. Если она заканчивается на шаге k* (Я' ^ 2), то aj и Р/, / = 1, ..., п, являются уточненными границами изменения переменных.
Следствие. Если на Я-м (Я £ {1, ..., Я'}) шаге процедуры Ux хотя бы для одного / выполняется условие а^ > р^, то множество вариантов, определяемое системой ограничений R, пусто.
Процедура Ue формирования подсистем ограничений. Пусть Jk = = Utp h$ }. ^ = Ъ •••, ^ 1 ^ ^ ^ п>— непересекающееся разбне-
' ше множества индексов J = {1, ..., п}1
J = U Jk* Ь(\Ь = Ф При р^Г.
Вектор л^ = kxbiuk = (х/^, ...» Xjk^ назовем подвариантом решения задачи, если его ^компоненты удовлетворяют условиям (2.3), (2.4). Подвариант хк = U/)/^ назовем допустимым, если он может быть дополнен до допустимого варианта
х = (%х, . . . , Xjk —b Xjk , Xjk 4-ь . . . , Xjk \ , Xjk , Xjk 4-1, ... , х^. 5кsk sk
Обозначим
X6 = {/ = kxhiykla-i < Xj < Р/, Xj — целое, / 6 J^
множество подвариантов, соответствующее разбиению Jk, к = 1, ... ..., /, Gk (R) — множество всех допустимых подвариантов хк. Функции от подвариантов определим следующим образом:
^ik ^Х ) = ^^ Ct(jXp I — 0, 1, . .. , /71.
В рассматриваемом подходе анализ и отсев бесперспективных (в частности, недопустимых) вариантов осуществляется путем отсева бесперспективных подвариантов с помощью формируемых 6-подсистем ограничений и агрегирующей задачи, в процессе решения которой из подвариантов конструируется решение исходной задачи.
Рассмотрим следующую систему ограничений Rk:
S cniXj^bik, i= 1, ..., т, fc£^\, ..., Ц,
Xj — целое, j £ Jk,
где матрица || a^- Ц. i = 1,.... т, j £ Jk, является подматрицей матрицы J atj ||, i = 1, ..., tn, j = 1 п, а/ и Р/, / С Jkl— границы изменения переменных х/, j £ Jk, в системе ограничений R.
Систему ограничений Rk назовем 6-подсистемой ограничений, а величины bjk, t=lт,— допусками на 6-подсистему, если
Gk^EG№
где G (Rz) — множество подвариантов, удовлетворяющих системе ограничений Rk.
Таким образом, для формирования ^-подсистемы ограничений, аппроксимирующей множество допустимых подвариантов Gk (R), необходимо вычислять допуски bik, i = 1, .... т. Причем, чем точнее эта аппроксимация, т. е. чем меньше объем множества G (Rk) \ Gk (R), тем более интенсивным будет отсев недопустимых подвариантов X* \ \ G (Rk) с помощью этой 6-подсистемы.
Введем понятия 6-множества оценок и полного множества оценок.
Множество Dk = {d^, i = 1, ..., m} назовем множеством оценок множества допустимых подвариантов Gk (R) (^-множеством оценок), если для любого допустимого подварианта хк имеет место система неравенств
gift ^ > dtk, i= 1, ... , т.(2.5)
Величину dth назовем i-оценкой множества допустимых подвариантов Gk (7?) или /-оценкой ^-множества оценок.
Если /-оценка достижима на некотором подварианте х*, т. е. dtk = = gut кЛ), то х? назовем /-оценочным подвариантом fe-множества оценок.
Множество D = HDfe назовем полным множеством оценок для си
стемы ограничений R.
Связь между допусками на подсистему ограничений Rk и полным множеством оценок устанавливает следующая теорема.
Теорема 2.2. Если известно некоторое полное множество оценок
D = U Dp, Dp=^dip, 1=1, ... , mV p=l,...,l, mo
bik = bi — £ dtp, i = 1m,(2.6)
P=1
P=M
являются допусками на подсистему ограничений Rfe.
Для доказательства теоремы достаточно показать, что для любого допустимого подварианта х^ = UiWfe выполняется система неравенств
а^х^
Поскольку хк — допустимый подвариант, то существуют такие х^ / € / \ Jb что а/ ^ ^/ ^ Р/, xf — целое и
п
5 aaxi^bb / = 1, ... , т.
/=1
Перепишем последнюю систему неравенств в виде
5ед<6(-5 ^ atjXj.
^jp
Так как каждый из подвариантов kxi^Jp> Р = 1> •••» ^ допустимый, то, учитывая неравенства (2.5), усилим данную систему неравенств. Имеем
i
5 at/Xj ^bi — ^ d£p = bib
i^Jbp^1
Теорема доказана.
Обозначим Rk (D) ^-подсистему ограничений, допуски которой вычислены с помощью полного множества оценок D.
Следствие. Если для любого подварианта xfe ^G (Rk (D)) величина di.it удовлетворяет неравенству
df.lt gi.k )»
то df^ является /0-оценкой для множества допустимых подвариантов Gt (RV
Предположим, что %*„ — решение следующей задачи ЦЛП: minfez^xW^G^D))}.
Тогда хк. является ^-оценочным подвариантом, a df,k = gi.k (х<„) — /0-оценкой множества допустимых подвариантов Gk (R).
Перейдем к пошаговому изложению процедуры t/2 формирования и уточнения подсистем ограничений.
Процедура U2
Выбираем начальное множество оценок
D(0) = U D^,fe=l
где D^ вычисляются следующим образом:
= A i = l, ...» m), к = \. ...» I,
<=ЪаиШм\ W = ПРИ
!УкI р/ при ati < 0.
Полагаем h = 0.
На (h + 1)-м шаге процедуры выполняем следующие действия.
Для к = 1, ..., I вычисляем по формулам (2.6) допуски на /г-под- систему Rk (D(6)). Решаем т оценочных подзадач вида
min V&1* IxV е G (Rk ф^, i0 = 1, ..., т, (2.7) получая соответствующие оценки d^1', /е = 1, ..., т, и /г-множества оценок
D?+,) = (<$Л f0=l, ...,ту
В результате выполнения (й + 1)-го шага получаем новое полное множество оценок
= (J О^+п.
Если D(6+1) = D(A), то завершаем выполнение процедуры U2.
В противном случае, заменяя h на h + 1, переходим к п. 2.
Лемма 2.1. 5 результате выполнения процедуры U4 получаем последовательность подсистем ограничений Rk ф№\ к = 1, ..., /, h = 0, 1, ..., удовлетворяющих соотношению
ХкгО (Rk ф^ з G (^ Ф0>)) г
Доказательбтво. Поскольку D® — полное множество оценок, то из теоремы 2.2 следует, что Rb (D№), к — 1, .... I,— подсистемы ограничений, т. е.
Gb(R^sG(Rk(D(4
Из следствия к теореме 2.2 вытекает, что Dk* = (d$, i = 1, ..., т} — ^-множество оценок, к = 1, ..., I. Следовательно, в свою очередь, Rk (D(l)) является подсистемой ограничений для каждого к = 1, ...
...,
Так как G (Rk (D(0>) s X6, то ^ ^ ^. Следовательно, G (Rk (D(I))) = — G (Rk ф№^. -
Продолжая аналогичные рассуждения, приходим к выводу, что для любого /i==l,2, ..., R^ (D(/z)) является ^-подсистемой ограничений, к = 1, ..., Z, причем
G (Rk (D(ln)) ^G(Rk (D^, k=\, .... I.
Лемма 2.2. Процедура U^ конечна.
Доказательство этой леммы следует непосредственно из конечности множеств подвариантов Х\ &=!,...,/.
Процедура U2 основывается на использовании следующей теоремы, справедливость которой вытекает непосредственно из двух предыдущих лемм.
Теорема 2.3. Последовательность подсистем ограничений Rfe ф^> h = 0, 1, ..., Но> получаемых в процессе выполнения процедуры U2> для любого к = 1, ..., I представляет собой вложенную цепочку множеств подвариантов
G(Rb(D№^G(Rb(D^-^ ... sG(Rk(D^.
Следствие. Если на некотором й-м, h = 0, 1, ..., Н0) шаге процедуры U^ хотя бы одно из множества G (Rk (D(&>)) оказывается пустым, т. е. соответствующая из подзадач (2.7) не имеет допустимых решений, то система ограничений R также определяет пустое множество вариантов.
Следует отметить, что оценочные подзадачи (2.7) в процедуре U^ являются также задачами ЦЛП вида (2.1)— (2.4), причем размерность каждой из них (при соответствующем выборе разбиения Jb к = 1, ..., Z) меньше размерности исходной задачи. Однако решение отдельной подзадачи даже небольшой размерности может оказаться затруднительным. В этом случае соответствующая оценка может быть найдена с помощью решения релаксированной оценочной подзадачи (см. следствие теоремы 2.2). Например, если в задаче (2.7) опустить требование целочисленности переменных х^ / = 1, ..., п, то эта оценка может быть найдена с помощью симплекс-метода.
При вычислении начального множества оценок D(0) для каждой оценки находится и соответствующий ей оценочный подвариант. При точном решении подзадачи (2.7) наряду с оценкой d^t^ находим и /о-оценочный подвариант хк0^\)> t0 = 1, ..., т, к = 1, ..., Z.
Таким образом, полному множеству D(hJr^ оценок можно поставить в соответствие и множество оценочных подвариантов.
Теорема 2.4. Пусть для оценки d^, h = 0, 1, ..., известен io- оценочный подвариант х^^, причем
х^О^Ж^у,(2.8)
тогда оценка d^ не может быть улучшена на (/i+l)-^ шаге процедуры U2.
Доказательство. Согласно процедуре U2 г0-оценка вычисляется следующим образом:
dTP = min \giok ^!xk 6 G (R, (D^y.(2.9)
Из теоремы 2.3 следует, что d^^d^11. Из (2,8), (2.9) получаем d^t” < gzoA (х;о(Л)). Так как Х;о№) —^-оценочный подвариант для опенки d^. то gv (х?^А)) = d^, поэтому d^° = d^. Теорема доказана. Таким образом, g помощью множеств оценочных подвариантов, добавив проверку выполнения соотношения (2.8) в процедуре U2, можно сократить общее число решаемых оценочных подзадач (2.7). Отсев недопустимых вариантов, полученных в результате выполнения процедуры U21 производится таким образом.
К каждой из подсистем Rfe (D(bo)) применяем процедуру Uv Обозначим Rk, k = 1, ..., I, подсистемы ограничений с уточненными границами а/ и Р/.
Если множество вариантов
X = (х = (хъ ... , x^lc^ ^ X/ ^ Р/, xz — целое} достаточно мало (на практике мощность этого множества примерно равна 103—10), то исходную задачу (2.1) — (2.4) можно решить прямым перебором. В противном случае проводим отсев недопустимых вариантов путем перебора множеств подвариантов
Хк = {х* = (х/)/^/^ < X/ ^ pz, xf— целое}.
Тем самым из рассмотрения исключаются подварианты, не удовлетворяющие ограничениям соответствующих подсистем Rk.
Далее формируем следующую задачу дискретного сепарабельного программирования (агрегирующую задачу)1
минимизировать
Если подсистемы Rfe (D(h°^ не позволяют сокращать множества подвариантов Х\ то сужаем исходную систему ограничений R путем введения дополнительного ограничения на значение целевой функции.
Процедура U3 введения дополнительного ограничения на значение целевой функции. Процедура U3 обеспечивает возможность анализа и отсеивания бесперспективных (на некотором шаге процедуры) допустимых подвариантов.
Введем обозначения
ь* = s adkaoh» 6* = Е oo/SW/=|/=1
где
( «, при а0/>0,( ₽/ ПРИ а0/>0,
а°г ( Р/ при а^- ^ О, ао/ " ( а/ при ц0/ ^ 0.
Дополнительное ограничение на значение целевой функции на шаге v процедуры(/3 имеет следующий вид:
bw -С S с^РЧ ^ Ь*№, Ъ^» = 6*, 6(0) = ь*.(2.10)
При этом процедура U2 формирования подсистем ограничений применяется к системе ограничений (2.1) — (2.4), (2.10), что при соответствующем выборе величин Ь^« и Ь*^ позволяет увеличить отсев бесперспективных подвариантов.
На сокращенных множествах подвариантов G (R^, к = 1, ..., L сформулируем следующую задачу» минимизировать
g№^(2.П)
при условиях
S gik(xk)^bt,(2.12)
xfeeG(R^), к=\,(2.13)
Связь между задачами (2.11) — (2.13) и (2.1) — (2.4) устанавливают следующие георемы.
Теорема 2.5. Если задача (2.11) — (2.13) не имеет допустимых решений, то для любого допустимого варианта х задачи (2.1) — (2.4) имеет место неравенство
^j а^.х^ ^^ Ь(у).
Следствие. Если система ограничений (2.12), (2.13) определяет пустое множество вариантов и Ь*^ = Ь*, то исходная задача (2.1) — (2.4) не имеет допустимых решений.
Теорема 2.6. Если (х1, .... х‘) является оптимальным решением задачи (2.11) — (2.13) и
S gok(?)^b^(2.14)
6=i___
то соответствующий этому решению вариант х = (xlf ..., х„) является оптимальным решением задачи (2.1) — (2.4).
Теорема 2.7. Если для оптимального решения (х1, ..... xz) задачи (2.11)— (2.13) не выполняется условие (2.14), то х = (х^ ..., xj является приближенным решением задачи (2.1) — (2.4), причем
ппп
S ^0/^7^0/^7 ^^^0/^7^(v)»
/=1/=1/—1
где (х?, ...» х„) — оптимальное решение задачи (2.1) — (2.4).
В результате решения задачи (2.11) — (2.13) могут встретиться следующие случаи.
Задача (2.11) — (2.13) не имеет допустимых решений. Если выполняются условия следствия теоремы 2.5, то задача (2.1) — (2.4) не имеет допустимых решений. В противном случае полагаем
'^(v+D* — %» ^(v+D — №) + Ь*)/2
и переходим на (v + 1)-й шаг процедуры U8.
Найдено оптимальное решение (х1, ..., х1) задачи (2.11) — (2.13). Если при этом для (х1, ..., xz) выполняется условие (2.14), то соответствующий ему вариант х = (хъ ..., х„) задачи (2.1) — (2.4) является оптимальным решением. В противном случае х = ^Хъ .... хп) — приближенное решение задачи (2.1) — (2.4). Если можно ограничиться данным приближенным решением, то заканчиваем выполнение процедуры U8; если нельзя, то полагаем
п
6(v+D* = 6(vA 6(Vn) = S O0iXt
/=|
и переходим на (v + 1)-й шаг процедуры U8.
Решение задачи (2.11) — (2.13) не найдено в течение определенного промежутка времени (или не удалось доказать несовместность системы ограничений этой задачи). В этом случае полагаем
6<v+d» = Ьм», Ь(^} = (b*v) + 6^)72
и переходим на (v 4- 1)-й шаг процедуры U8. При этом уменьшение величины 6(v+n по сравнению • Ь*^, как правило, позволяет увеличить отсев подвариантов и, таким образом, уменьшить размерность задачи (2.11) — (2.13) на (v + 1)-м шаге процедуры.
В табл. 1 и 2 приведены результаты (111, 112] машинного эксперимента по решению тестовых задач ЦЛГ1 с булевыми переменными и ЦЛП с двухсторонними ограничениями на переменные с помощью рассмотренного в данном параграфе метода. Эти результаты подтверждают эффективность метода.
Т а б л г ц a 1
Iазмерность задач, тхп
Единицы в оптимальном решении, %
Допустимый объем перебора
Число подсистем (пе- оеменных в
Время точного решения,- мин
ЭВМ
20x90
80
2Ю
9(10)
5,17
М-4030-1
15x100
84
2ю
10 (10)
3,87
М-4030-1
20x120
85
2
12 (10)
6,87
М-4030-1
50x150
90
2
10 (15)
20,8
ЕС-1055
30x200
92
213
10 (20)
22,51
ЕС-1055
20x260
95
2
20 (13)
26,57
ЕС-1055
Таблица 2
Размерность задач, т X п
Число решаемых задач (из них точно решаемых)
Число подсистем (переменных них)
Время решения н<« ЭВМ ЕС-1055, мин
Минимильное 'min
Максимальное 'max
10X20
5(5)
4(5)
од
0,47
10X40
5(5)
4(10)
0,15
17,25
10x60
2(2)
Ю (6)
2,51
4
40x80
5(4)
8(10)
0,67
1,18
40X100
5(4)
10 (10)
0,72
1,43
§ 2. МЕТОД ВЕТВЕЙ И ГРАНИЦ
методов имеют некоторые общие черты; важно и то, то эффективность этих схем при решении практических задач существенно зависит от удачной интерпретации основных их положений и используемых понятий.
Метод ветвей и границ сравнительно легок в применении: он не требует для своей реализации большого объема машинной памяти; его вычислительная схема проста и хорошо обозрима; конечность вычислений, как правило, не нуждается в доказательстве, так как вытекает непосредственно из самого построения его вычислительной схемы.
Общая схема метода. Для всей группы алгоритмов, вкладывающихся в общую схему метода ветвей и границ, характерным является применение в их вычислительной схеме следующей основной идеи: последовательное использование конечности множества вариантов решения задачи и замена полного их перебора сокращенным (частичным), называемым иногда направленным перебором. Полного перебора удается избежать за счет отбрасывания неперспективных множеств вариантов, т. е. таких, которые заведомо не могут содержать искомого оптимального решения задачи. В общей схеме метода эта идея реализуется путем последовательного разбиения всего множества допустимых решений задачи на подмножества и построения оценок, позволяющих сделать обоснованный вывод о том, какие из полученных подмножеств не содержат допустимых решений, а какие — оптимальных. Исключение из дальнейшего рассмотрения таких бесперспективных подмножеств дает возможность сокращать перебор вариантов решений задачи. Иногда удается быстро сузить число анализируемых подмножеств вариантов и тем самым резко сократить перебор возможных решений задачи. Разумеется, что в основе удачной реализации главной идеи метода обычно лежит максимальное использование специфики решаемой задачи.
Для описания точных методов дискретного программирования в последнее время используются различные общие схемы. Применение этих схем, естественно, не лишено определенных недостатков, так как ряд тонкостей использования методов при решении конкретных типов задач зачастую не может быть выяснен с достаточной детализацией. Однако эти схемы имеют и неоспоримое преимущество: они позволяют четко и, как правило, в сжатом виде описать основные этапы вычислительного процесса, осуществляемого согласно изучаемому методу. Детализируя затем при необходимости такие общие описания, легко удается сделать различные уточнения и конкретизации. Одной из таких общих схем является схема [1971, предложенная Джеф- фрионом и Марстеном в 1972 г. Следуя [70], мы воспользуемся этой схемой для описания метода ветвей и границ применительно к задаче ЧЦЛП вида? найти минимум
Р (х, у) = стх + сйу (2.15) при ограничениях
(2.16)(2.17)(2.16)(2.17)Ах + By >b, х, у ^ 0,х — целочисленный вектор,
(2.16)
(2.17)
(2.16)
(2.17)
где х £ Rn, у € Rm, а матрицы А, В и векторы съ с2 и 6 имеют соответствующие размеры. Ясно, что если матрица В и вектор с2 — нулевые, то задача (2.15) — (2.17) превращается в задачу ЦЛП.
В [163] можно найти подтверждение того, что в излагаемую схему легко вписываются не только различные алгоритмы метода ветвей и границ при использовании его для решения задач дискретного программирования различных типов, но и целый ряд других известных методов решения задач ДО. Более полное описание метода ветвей и границ дано в монографиях [71, 96, 134, 137, 1631.
Введем такие ключевые понятия, как релаксация, ветвление, рекорд, кандидат, потомки, стратегия, зондирование кандидата, которые будем использовать в дальнейшем.
Под релаксацией задачи (2.15) — (2.17) (будем называть ее задачей Р) с допустимой областью (2.16), (2.17) (эту область обозначаем буквой G) понимается переход к задаче Р с той же целевой функцией (2.15), но с некоторой допустимой областью G td G. Укажем очевидные свойства задач Р и Рг
если задача Р не имеет допустимых решений, то их не имеет и вадача Р;
если оптимальное решение задачи Р удовлетворяет условиям (2.16), (2.17), то оно одновременно является и оптимальным решением задачи Р*
Имеет место следующее очевидное неравенство!
min F ^х, у)^ min F(%, у\ (2.18) kx»^G {xfy)€G
Из (2.18) вытекает простой способ для оценки функции F (х. у) в задаче Р.
Для релаксации задач вида (2.15) — (2.17) на практике чаще всего используется отбрасывание условий целочисленности (2.17). Получаемая в результате такого действия задача Р сравнительно легко поддается решению с помощью хорошо разработанных методов линейного программирования.
Под ветвлением для некоторой задачи принято понимать разбиение всего множества допустимых ее решений на непересекающиеся подмножества. На произвольном шаге вычислительного процесса кандидатом называется задача, которую требуется ветвить, а подзадачи, получаемые в результате этого ветвления, называют потомками данной задачи.
Под стратегией в алгоритмах ветвей и границ понимается порядок выбора задач-кандидатов для их последующего анализа.
Рекордом назовем значение функции F (х, у), которое соответствует наилучшему из всех полученных решений задач-кандидатов к данному этапу вычислений. (Это наилучшее решение также назовем рекордным). Текущее значение рекорда при описании схемы метода обозначим F (х, yY
На практике используются различные способы ветвления. В частности, нередко применяют дихотомическое ветвление, суть которого
состоит в том, что на некоторую целочисленную переменную дополнительно накладывают два противоречивых ограничения вида
Xi^AxiV xt>\xt\ + 1,
где xt— одна из нецелочисленных компонент в оптимальном решении (х, у) текущего кандидата, а а — целая часть а.
Кроме введенных понятий, будем использовать также понятие зондирование кандидата. Условимся в дальнейшем говорить, что кандидат подвергнут зондированию, если в результате решения релаксированного кандидата (РК) придем к одному из следующих выводов:
РК не имеет допустимых решений;
значение F (х, у) для данного РК удовлетворяет неравенству
F (х, y)>F (х, у);(2.19)
выполнение условия (2.19) соответствует выводу о том, что данный кандидат не имеет таких допустимых решений, которые были бы лучшими по сравнению с рекордным решением;
получено оптимальное решение РК, которое одновременно является допустимым решением для кандидата.
В том случае, когда зондирование кандидата не привело ни к одному из только что сформулированных выводов, продолжение вычислительного процесса можно осуществлять так.
Первый подход. Зондирование кандидата прекратить; разветвить кандидат, и полученные потомки включить в список кандидатов.
Второй подход. Использовать другой прием для релаксации кандидата (или модифицировать ранее применявшийся) и продолжить зондирование данного кандидата.
Какой из сформулированных подходов в каждом конкретном случае окажется более эффективным, сказать трудно. Очевидно, что разветвление кандидата ведет к увеличению списка кандидатов, а приведет ли это в конечном итоге к сравнительно меньшему объему вычислений (по сравнению с использованием второго подхода), неизвестно. Поэтому иногда целесообразно в процессе решения задачи или чередовать применение обоих подходов, или выбирать один из них случайным образом.
На основании этого, опираясь на введенные понятия, описание вычислительного процесса по методу ветвей и границ с помощью схемы Джеффриона — Марстена можно представить с помощью следующей последовательности действий.
Открыть список задач-кандидатов путем внесения в него задачи (2.15) — (2.17). Положить рекорд F (х, у) = + оо.
Провести анализ списка задач-кандидатов с целью выяснения его непустоты.
Если список не пуст, то перейти к п. 3.
В случае пустоты списка работа по методу заканчивается. Текущее рекордное решение является оптимальным, если оно соответствует значению рекорда F (х, у) << + оо (в противном случае исходная задача не имеет допустимого решения).
В качестве текущего кандидата выбрать по какому-либо правилу (с использованием определенной стратегии) одну задачу из списка.
Выбрать релаксацию текущего кандидата.
Провести анализ задачи-кандидата с целью выяснения наличия у нее допустимых решений.
Решить релаксированную задачу.
Если множество допустимых решений кандидата пусто, то перейти к п. 2; в противном случае сделать проверку условия: есть ли у кандидата допустимые решения лучшие, чем рекордное. При положительном ответе на этот вопрос перейти к п. 5.3, при отрицательном — исключить из списка данную задачу и перейти на выполнение п. 2.
Выяснить, получено ли оптимальное решение кандидата. Если нет, то перейти к выполнению п. 5.4. В противном случае перейти к п. 2, пересчитав и запомнив значение нового рекорда (в данном случае найдено допустимое решение задачи (2.15) —(2.17)). Запомнить новое рекордное решение.
Ответить на вопрос: продолжать ли зондирование кандидата? Если нет, то перейти к п. 6. В противном случае модифицировать релаксацию рассматриваемого кандидата и перейти к выполнению п. 5.1.
Осуществить разветвление кандидата и включить его потомки в список кандидатов, исключив при этом из него самого кандидата. Перейти к п. 2.
Из описанной схемы видно, что при выполнении п. 3 и 6 имеется свобода в выборе очередного кандидата для исследования и в проведении ветвления. Особо подчеркнем, что выполнение этих действий может быть проведено по-разному и его эффективность во многом определяется тем, насколько удачно при этом учтена специфика решаемой задачи. На практике часто используется два основных способа ветвления: а) одновременное ветвление, предполагающее, что на очередном шаге для разветвления из списка кандидатов может быть выбран любой кандидат; б) одностороннее ветвление, при котором предписывается заранее выбор кандидата из списка для последующего ветвления. Оба эти способа имеют очевидные достоинства и недостатки. На практике иногда может оказаться более эффективным их комбинирование по ходу выполнения вычислительного процесса.
Эффективное решение многих практических задач дискретного программирования большой размерности с помощью алгоритмов метода ветвей и границ проблематично, оно существенно зависит от конструктивной интерпретации всех основных пунктов изложенной схемы. Ведь экспериментальные оценки трудоемкости этих алгоритмов имеют экспоненциальную зависимость от размеров решаемых с их помощью задач. Поэтому при решении сложных задач имеет смысл использовать различные приемы для окончания вычислительного процесса с целью нахождения за некоторое фиксированное время допустимого приближенного решения. Как видно из описанной общей схемы, методы ветвей и границ позволяют это делать и тем самым их можно рассматривать в качестве хороших генераторов приближенных методов решения задач дискретного программирования. Если к тому же удается приближенное решение сопровождать и определенной хорошей
оценкой, характеризующей его удаление от точного решения задачи, то применение данного подхода может иметь значительную практическую ценность.
В ряде работ были предприняты попытки теоретически обосновать эффективность методов ветвей и границ (некоторые результаты таких исследований можно найти, например, в [163]). Все они показывают, что при точном решении задач ДО обнаруживаются патологические задачи, для которых объем вычислений весьма близок к полному перебору.
О НЕКОТОРЫХ РЕЗУЛЬТАТАХ
ИСПОЛЬЗОВАНИЯ МЕТОДА ВЕТВЕЙ И ГРАНИЦ
ДЛЯ РЕШЕНИЯ ЗАДАЧ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ
Как уже отмечалось, в общую схему метода ветвей и границ вкладывается большое число различных алгоритмов. Во многих публикациях по этому направлению предлагается использовать различные способы зондирования кандидата, по-разному строятся схемы ветвления, описывается опыт решения задач ДО этим методом, а также приемом в поочередным использованием методов ветвей и границ и других методов. Делаются попытки применить схему метода ветвей и границ для решения задач большой размерности путем разложения (декомпозиции) их на подзадачи меньшей размерности, указываются другие пути возможных использований методов этой группы.
Не ставя перед собой цель дать здесь исчерпывающий анализ даже отдельным группам публикаций этого направления в дискретном программировании, отметим лишь некоторые интересные, по нашему мнению, работы, которым до последнего времени недостаточно уделялось внимания в литературе.
Метод ветвей и границ обладает особенностями, позволяющими использовать для построения верхних и нижних оценок функционала приближенные и эвристические методы, гарантируя при определенных условиях сходимость к точному (или приближенному по функционалу с априорно заданной погрешностью) решению. При этом для построения пары оценок (верхней и нижней) в ряде случаев можно использовать аналоги теории двойственности в линейном и выпуклом программировании и параметрического анализа, что позволяет уменьшить вычислительные затраты на решение задачи. Подход, использующий указанные возможности, по-видимому, впервые был предложен и апробирован в реализации метода ветвей и границ для простейшей задачи размещения В. А. Трубиным в 1970 г. Программа, реализующая указанные возможности и использующая способ построения оценок, изложенный в [153], оказалась достаточно эффективной. Позднее аналогичный подход успешно использовался для решения ряда других задач и описан в [21, гл. 6], [13, 97, 98, 155, 157, 158, 188].
Кратко изложим суть такого подхода на примере простейшей задачи размещения, которая формулируется в виде [153]
minF(X, У) = min 5 2 счха + 2 ьУи (2.20)
Z=1 /=1Z=1
Дх,7=1, /=1,О^г„^Уй (2.21)
i = 1, ... , т, / = 1, ... , п,
Yt = 0 V 1, t= 1,, m.(2.22)
Задача, двойственная к (2.20), (2.21), имеет вид
max 12 uilui ^ си +< bt,(2.23)
l/=i/=1
о^ ^ 0, i = 1, ... , m, / = 1, ... , n| ,
где U = {«/}, V = \оц^— двойственные переменные, соответствующие ограничениям (2.21).
Упорядочим переменные yz/ для каждого /, / = 1, ..., п, в порядке неубывания величин Ci/. Имеет место следующая теорема.
Теорема 2.8 [153]. Существует оптимальное решение задачи (2.23), в котором
сп- + о*/ ^ ^4-1/ + у*+1/> у*/ ^ у*+1/ ^ 0,(2.24)
г = 1, ... , т — 1, / = 1, ... , п,
и* = cXj + иГ/, / = 1, ... , п,(2.25)
где г — индекс элемента из V во введенном упорядочении.
С учетом этих неравенств задача (2.23) может быть представлена в виде
шахФ(И7) = max S ^r/ZS 2 а^пbb i = 1, ... , m, (2.26) lr=l /=1 r=l /=!
0 ^ wrj ^ dr/, r = 1, ... , m, j = 1, ... , n\ ,
где A = ^air/) — матрица размером m X (/шг), состоящая из нулей и единиц, столбцы которой разбиты на п квадратных блоков размером
т х tn, таких, что столбцы каждого блока являются перестановками '(1,/г</,
строк треугольной матрицы Т = (/^z), где ^z = Lfe, / = 1,...
..., т, и, следовательно, упорядочены по включению. Задача (2.26) получена из (2.23) путем исключения переменных U в соответствии с (2.25) и замены переменных
wr/ = Ог/ — or_u, wXj = о1Л г = 2, ... , т, j 1, ... , п. (2.27)
При этом drf- = сг^\/ — сг/, г — 1, ..., т— 1, ctn/ = 00, / = 1, ..., п.
Для задачи (2.26) легко построить достаточно хорошее в большинстве случаев приближенное решение с помощью модификации гриди- алгоритма [155] (в отечественной литературе он называется также градиентным алгоритмом) следующим образом.
Алгоритм на каждом шаге выбирает некоторый блок /0 матрицы А.
В блоке /о выбирается минимальный по включению столбец г0, для которого значение переменной не зафиксировано на предыдущих шагах.
Переменная тГб/о фиксируется равной максимально возможному еначению, т. е. равной min (dro/o, min Ъ^, где Ъ^ — нераспределенные на предыдущих шагах остатки величин bb I = 1, ..., т, АГо/о — множество строк ц содержащих единицы в столбце (г0, /0) матрицы А.
Алгоритм заканчивает работу после фиксации всех переменных. Простейшим способом выбора блока /0 в п. 1 является циклический. При этом способе блоки выбираются в некотором заданном порядке поочередно, и после выбора последнего вновь выбирается первый блок. Пусть П7° = {^г/}— решение, построенное таким образом. Обозна- {т п
t'/S S Л;г/йУг/ = bt\ Построим допустимое решение за- г=1 /=1J
дачи (2.20) — (2.22) по следующим правилам:
(1, i^M^,
для t=arg min c^, j = 1, ... $ nt fe^M^W^ для остальных i.
Решение (X°, У0), построенное таким образом, во-первых, является оптимальным для задачи (2.20) — (2.22), в которой величины Сц заменены на Cij + со?/ и соответственно изменены величины Lc яо-вторых, удовлетворяет условиям дополняющей нежесткости: I >. и^- — bt I Yi = \/=i/
= 0, i = 1, ..., т, где V° — вектор, определенный по (Н7°) из условий (2.27).
Вычислительные эксперименты (см., например, [97]) показывают, что погрешность полученного решения (Х°, У0), как правило, невелика. Если значения F (Х°, У0) и ф (Н7°) совпадают, то (Х°, У0) — решение задачи (2.20) — (2.22), иначе величины F (Х°, У0) и Ф (Н7°) являются оценками сверху и снизу для значения (2.20) на оптимальном решении. Наличие верхней оценки позволяет обычно сократить объем перебора в методе ветвей и границ. Для этого необходимо в схему алгоритма ввести дополнительную процедуру, которая запоминает наилучшее из просмотренных допустимых решений (рекорд). При этом, если на текущем шаге нижняя оценка превышает рекорд или отклоняется от него не более чем на заданную относительную погрешность, то дальнейшее ветвление по рассматриваемой вершине не производится. Очевидно, что после окончания процесса решения относительная погрешность значения функционала (2.20) на рекорде не превосходит заданную величину.
При решении задач методом ветвей и границ широко используется аппарат параметрического программирования, позволяющий не решать каждый раз заново текущую оценочную задачу, а строить ее ре-
шение, используя информацию об оптимальном решении предыдущей оценочной задачи. Например, если как оценочная решается задача ЛП, то используется в качестве начального оптимальное решение предыдущей задачи, а также двойственные оценки, ему соответствующие. Обычно это позволяет существенно уменьшить время решения оценочных задач и, следовательно, общее время решения.
Аналогичный подход применим и в случае приближенного решения оценочных задач и иллюстрируется вновь на задаче (2.20) — (2.22). Пусть ветвление осуществляется путем фиксации значений некоторых переменных Y и равных нулю или единице. Обозначим It (0), It (1) множество индексов Z, для которых в текущей подзадаче с индексом / зафиксированы соответствующие переменные It (0) = V^t = 0}, lt (1) = \UYt = 1}. Решение задачи (2.26) с множествами lt (0), lt (1) эквивалентно решению задачи (2.26), в которой ограничения
£ S ciiriWri ^ bb i = 1, ...» т,(2.28)
Г=1 /=1
игнорируются для I € lt (0), а для i ^ lt (1) заменяются на ограничения
т п
SS airiwri = 0, Ц1.№.(2.29)
Г=1 /-1
или, с учетом неотрицательности всех сог/,
wtj = 9, если airj = \, i^It{\).(2.30)
При этом оценка для задачи (2.20) — (2.22) складывается из Ф (Н?0), где IF0 — приближенное решение преобразованной задачи (2.26), и 5 ь,.'
Применение параметрических методов целесообразно при использовании односторонней схемы ветвления. В этом случае переменная, выбранная для ветвления, фиксируется вначале равной наперед заданному значению (например, нулю); фиксация этой переменной путем присвоения ей значения, равного единице, происходит при обратном просмотре дерева ветвлений, т. е. когда все подзадачи, порожденные данной вершиной (со значением переменной, равной нулю), уже просмотрены. При такой схеме ветвления, во-первых, отпадает необходимость хранения в памяти ЭВМ всех данных о большом (экспоненциально растущем с ростом т^ числе решений в промежуточных просмотренных, но не закрытых для ветвления вершинах (достаточно ограничиться хранением этих данных для числа решений, не превышающего mY Во-вторых, можно отказаться даже от хранения и такого числа наборов данных, но использовать параметрический анализ не во всех промежуточных вершинах, а лишь в той части, где рассматриваемая вершина отличается от предшествующей не более чем на заданное чис- сло к (</тг) зафиксированных в них переменных Yv Нетрудно подсчитать, что половина анализируемых в дереве одностороннего ветвления вершин отличается от своих непосредственных предшественников в просматриваемой последовательности добавлением одной перемен-
ной в множество I (0); половина оставшихся отличается от предшественника исключением одной переменной из / (0) и добавлением ее же в / (1), т. е. для них справедливы соотношения
Zf (0) = /^ \ {/}, Л(1) = Л_ (1) U {0>
где I — индекс, выбранный для ветвления в задаче с порядковым номером t — 2. Таким образом, уже при к = 2 параметрический анализ может использоваться в 75 % решаемых подзадачах. При произвольном к доля решаемых так подзадач составляет 1—Т\ Однако с ростом к эффективность этого подхода уменьшается из-за увеличения трудоемкости решения подзадач с большим числом зафиксированных переменных, отличных от подобного числа в предшествующей подзадаче, и при некотором к становится сравнимой с эффективностью прямого решения таких подзадач (т. е. решения их заново).
Использование параметрического анализа особенно просто при & = £. В этом случае, если последующая задача (2.26) отличается от предшествующей добавлением /0 в Л (0), достаточно удалить из (2.26) неравенство (2.28) с i = t0 и продолжить процесс построения приближенного решения, взяв в качестве начального приближенное решение ^ предыдущей задачи. Если текущая подзадача отличается от предшествующей исключением i0 из It (0) и добавлением его в lt (1), то достаточно нижнюю оценку ф для задачи t уменьшить на сумму значений тех переменных, которые удовлетворяют условию (2.30) при i = = /0 и значения которых в решении W1 больше нуля. После этого, положив значения этих переменных в Ww равными нулю, следует добавить bt0 к оценке ф и продолжить вычисление Ф, начиная с 1Г*+1 в задаче t + 1. Отметим в заключение, что процесс решения задачи (2.20) — (2.22), изложенный выше, не использует операций умножения и деления. Поэтому все вычисления можно проводить с данными, представленными в форме INTEGER, что также сокращает время решения.
Использование метода ветвей и границ для решения так называемых сетевых задач оптимального распределения ресурсов изучается в монографии [96], где на примере важных типов практических задач показано, как можно строить на основе использования вычислительной схемы этого метода эффективные приближенные алгоритмы с апостериорной оценкой погрешности. Здесь же изучены интересные подходы к вычислению оценок (границ) при решении данного класса задач, которые основаны на удачном использовании специфики этих задач.
В последнее время все большее внимание уделяется разработке алгоритмов решения задач дискретного программирования, хорошо приспособленных для реализации на многопроцессорных ЭВМ. Представляется, что в принципе схема метода ветвей и границ в целом ряде случаев может быть эффективно распараллелена, и тем самым будет существенно расширена область использования данного подхода для решения дискретных оптимизационных задач большой размерности. Здесь открываются реальные возможности для распараллеливания: выбор нескольких кандидатов для одновременного анализа, одновременная реализация различных приемов ветвления, использование це-
лого набора алгоритмов подсчета оценок и т. д. Исследования в этом направлении весьма важны и имеют хорошую перспективу. Например, в работе [171 предложен эффективный алгоритм решения обобщенной задачи о ранце с использованием параллельных вычислений.
Представляет интерес развитие схемы методов ветвей! и границ для решения задач теории расписаний и упорядочения [151], применение множителей Лагранжа в структуре схемы этих методов, например использование множителей Лагранжа в целочисленном программировании, предложенное С. С. Лебедевым [81], применение теории двойственности при использовании метода ветвей и границ для решения задач календарного планирования, других задач ДО.
С резким увеличением быстродействия современных ЭВМ появляется реальная возможность использования адаптивных стратегий ветвления, которые могут оказаться более эффективными по сравнению с жестко задаваемыми и неизменяемыми в процессе реализации стратегиями. В работе А. И. Самыловского [121] исследована данная возможность при решении задачи квадратичного программирования с булевыми переменными.
Другие интересные применения метода ветвей и границ, в том числе и его теоретические исследования, описаны в [62, 71, 96, 134, 137, 145, 163], где приведена достаточно обширная библиография работ по изучению различных аспектов теории и практики использования метода.
МЕТОД ЛЕКСИКОГРАФИЧЕСКИХ ОТСЕЧЕНИЙ
В теории и методах оптимизации нередко используется лексикографическое упорядочение точек (векторов) пространства Rn, которое определяет линейный порядок в этом пространстве. Согласно определению лексикографического порядка точка х = (хь ...,х^ лексикографически меньше гочки у = (уг, ..., у^ (сокращенно х <<1 у, где «<z» — знак «лексикографически меньше»), если существует индекс /, 1 ^ t ^ п, такой, что выполняются условия
Х1 — У) (/= 1, ... , t — 1), xt<yt.
Лексикографическое упорядочение является, например, основой обоснованности конечности симплекс-алгоритма решения задачи ЛП и двойственных алгоритмов Гомори решения задачи ЦЛП. Оно используется также во многих алгоритмах ДО в качестве линейного упорядочения допустимых решений с целью отыскания (на основе лексикографического перебора точек) оптимального решения.
(2.31)(2.31)Рассмотрим одну из задач отыскания лексикографического максимума (/-максимума) множества X cz Rn, представляющую собой задачу лексикографической оптимизации. В краткой форме она записывается (см. [171]) в виде
(2.31)
(2.31)
/ max X.
Точка х* € X является решением этой задачи (или /-максимумом множества X), если для всех х С X выполняется условие
Здесь «^z» — знак «лексикографически не больше». Если следовать схеме последовательного программирования И. И. Еремина, то в общем решение задачи (2.31) можно представить в виде последовательного решения обычных условно экстремальных задач
(Zx) х* = шах \хг!х Е X},
(Z2) Х2 = max {х2/х ^ X; хг = хГ),
(Z^ X* = max {х//х£Х; xt = х*, i = I, ...,/ — 1),
/ = 3, ... , п.
Решение задачи (ZJ является решением задачи (2.31). Если одна из этих задач не имеет решения (решаются они в порядке возрастания индекса /, начиная с первой (ZJ), то и (2.31) не имеет решения.
В случае, когда схема последовательного программирования требует решения последовательности сложных условно экстремальных задач, необходима разработка более эффективных специальных методов лексикографической оптимизации. Здесь излагается специальный метод лексикографических отсечений для решения задачи (2.31), предложенный Ю. Ю. Черваком [171], для случая, когда X является подмножеством частично дискретного множества. Пусть D cz Rni — дискретное множество. Тогда G = D X Rn~nt назовем частично дискретным множеством. Здесь в целях простоты изложения рассматривается случай частично целочисленного множества, когда G является множеством точек х £ Rn, удовлетворяющих условию
Xj — целое, / = 1, ... , nv
Множество X определяется следующим образом. Пусть У cz Rn — замкнутое множество, имеющее /-максимум. Например, У может быть задано системой линейных ограничений, если рассматривается линейная частично целочисленная лексикографическая задача (2.31). Тогда в этой задаче X = G П У. Условия существования для задачи (2.31) сформулированы в [171]. Считаем, что если У — неограниченное множество, то оно выпуклое многогранное множество.
К решению рассматриваемой задачи (2.31) может быть сведена частично целочисленная задача математического программирования
max {/(x)/x^G П У).(2.32)
Если х0 = / (х) удовлетворяет условию целочисленности (х0 — целое), то задача (2.32) сводится к задаче
/ max {(х0, х)/х0 = f (х); х g G Л У}*
Если же х0 нецелочисленное, тогда задача (2.31) может быть использована для отыскания максимизирующей последовательности допустимых решений задачи (2.32).
В результате применения метода лексикографических отсечений для решения задачи (2.31) строится конечная последовательность {х*} лексикографически убывающих точек xk, к = 1,2, ..., принадлежащих множеству Y и являющихся лексикографическими мажорантами (/-мажорантами) множества X. (Точка х является /-мажорантой, если для всех х 5 X выполняется условие х ^7 х). Начальная точка х1 этой последовательности является /-максимумом множества Y, которая, как и все остальные точки этой последовательности, может быть найдена по схеме последовательного программирования. В итоге /г-го шага метода /-мажоранта х^ уточняется, т. е. отыскивается /-мажоранта х^+!, такая, что xw <z хк, или устанавливается, что X является пустым множеством. Если х^^1 5 6, то х*+! — решение задачи (2.31). В процессе уточнения /-мажоранты хк используется лексикографическое отсечение (/-отсечение). Уточненная /-мажоранта хк+1 является /-максимумом множества, полученного после присоединения дополнительных линейных ограничений к ограничениям, задающим множество Y. Множество точек, удовлетворяющих этим дополнительным линейным ограничениям, является подмножеством множества точек, удовлетворяющих /-отсечению. Точка х&+1 также отыскивается по схеме последовательного программирования.
В описанной общей схеме могут быть применены различные способы уточнения /-мажорант. Каждый из них определяет конкретную реализацию метода лексикографических отсечений. Следуя [171], способ уточнения /-мажорант, который обеспечивает построение дискретной последовательности точек {х/г}, называем подходящим алгоритмом этого метода.
В общем случае метод лексикографических отсечений состоит в следующем. Пусть xfe — /-мажоранта множества X, xfe ^ X; (z/f, ... ..., //^) — заданный вектор (точка) в R^» 1 ^ Лл ^ nv Ограничение
(хь ... , хл^) ^ (z/i, ... , у^(2.33)
называют l-отсечением, если выполняется условие
(xtу^
/-отсечение (2.33) называют правильным l-отсечением, если выполняется условие
X <= {х Е 0/(^1л^ ^' (у?, ... , у^)}.
Если ограничение (2.33) является правильным /-отсечением, то /-максимум множества Yk = [х С YK^ ..., х^) ^z (z/t, ..., у!^ является уточненной /-мажорантой множества X. Если Yk = 0, то X — 0. Однако поскольку лексикографическое ограничение задает незамкнутое выпуклое множество, то Yk лишь в исключительных, заведомо неизвестных, случаях будет замкнутым множеством, и поэтому оно
может не иметь /-максимума. С другой стороны, в обычном смысле лексикографическое ограничение не является конструктивным. В связи с этим непосредственное использование правильного Z-отсечения для уточнения /-мажоранты хк в общем случае в рассматриваемой схеме метода невозможно. Поэтому в [171] предложен следующий способ уточнения /-мажоранты хк.
Пусть Мк — множество точек х С Rn, удовлетворяющих правильному /-отсечению (2.33); Lk — непустое выпуклое замкнутое много- гранное множество, принадлежащее М и удовлетворяющее одному из двух условий:
множество Lk содержит /-максимум х* множества X;
Lk является подмножеством области /-мажорант множества X.
Если Yl = Y П Lk=^= 0г то /-максимум xk+l множества Yk является уточненной /-мажорантой множества X (т. е. хк ">1 х^1). (Существование этого /-максимума следует из [171]). Если Lk удовлетворяет условию 2, то это утверждение очевидно. Если же I? удовлетворяет условию 1,то, предположив противное (т. е. что х^1 <z х*), получим противоречие, так как х* 5 Yl.
Пусть Yl = 0. Если X ^ 0, то в этом случае х* £ Lk. Рассмотрим задачу вида
lmin^xv ..., x^/x^L6^ (2.34) состоящую в отыскании /-минимума ортогональной проекции множества Lk в пространстве R^ переменных хъ ..., х^. Задача (2.34) решается по схеме последовательного программирования, на каждом шаге которой минимизируется соответствующая переменная xf. Минимальное значение хь полученное в процессе этой минимизации, обозначим 2/. Если условно экстремальная задача
min \xjx^ L^},
решаемая на 1-м шаге этой схемы, не имеет решения, т. е. переменная хг неограничена снизу на множестве Lk (Lk — многогранное выпуклое множество), или эта задача имеет решение такое, что выполняется условие
2? < inf \xjx £ X}, (2.35) то X = 0. В качестве правой части (2.35) может быть использована любая нижняя грань множества допустимых значений переменной хг; например, если в условиях задачи требуется неотрицательность переменных, то правая часть неравенства (2.35) может быть положена равной нулю. Если условие (2.35) не выполняется и zk — нецелочисленное, то неравенство
Х1 < [2|],
где [а] — целая часть числа а, является правильным /-отсечением, которому не удовлетворяют точки х g L6. Оно является новым усиленным правильным /-отсечением. В противном случае продолжаем реше-
ние задачи (2.34) по схеме последовательного программирования до тех пор, пока не получим точку (г?, ..., Ze ), удовлетворяющую одной из следующих пар условий:
(г?, .... г|-1) — целочисленная точка, гд—нецелое (здесь 0t^
^ кк
(zf, ..., Ze) — целочисленная точка, zg +1 = — со (здесь 66 с сл»);
(г* zgfc)— целочисленная точка, 04 — т]*. Получив эту
точку, отыскиваем правильное /-отсечение, которому не удовлетворяют точки х € Lk. Если выполняются условия 1 и
(г?^_ьlz^]) < (xv ... , хв)(2.36)
для всех х £ X, то X = 0. В противном случае получаем новое усиленное правильное /-отсечение
(хъ , х^^1^, ... , ге6-1, 1гУ).
Если выполняются условия 2 или 3 и
(zt ... , l)<z(Xi, .... хер(2.37)
для всех х g Х,то X = 0,а в противном случае получаем новое усиленное правильное /-отсечение
(Xi, ..., Хе^ ^ (zf, ... , Ze6— 1).
В правой части (2.36) и (2.37) может быть использована любая /-миноранта ортогональной проекции множества X в пространстве R9^ переменных хг, ...» х^к. Например, если в условиях задачи требуется неотрицательность переменных, то в качестве /-миноранты можно взять нулевую точку.
Правильное /-отсечение (2.33) строится по имеющейся точке хк следующим образом. Пусть r^ = min {/ 6 {1, ..., n)/x* — нецелое). Тогда
Таким образом, в процессе уточнения /-мажоранты хк или установления того факта, что X ^ 0, в общем случае используется не менее одного правильного /-отсечения. Если множество Z? удовлетворяет условию 1, используется одно правильное /-отсечение. Если же это множество не удовлетворяет условию 1, то используется последовательность таких отсечений, каждое последующее из которых более сильно, чем предыдущие.
Конкретизация рассмотренного метода поиска (или определение алгоритма поиска) состоит в выборе способа построения множества С. В простейшем случае в качестве С можно использовать множество {х g R^Xi — уь I = 1, •••» Ла — 1? хчк У^)), чт0 означает фиксирование значений первых Ла — 1 переменных и ограничение сверху
переменной х^. При этом, если т|6 = 1, то Lk = (х Е R^Xi ^ у?} удовлетворяет условию 1. Если же ^ > 1, то выполнение этого условия не гарантировано, и поэтому в процессе уточнения /-мажоранты хк может использоваться более одного правильного /-отсечения.
Рассмотрим следующий пример. Пусть Y cz R2 задано системой двух неравенств
хг — Зх2 ^ О,
а множество G — условием целочисленности переменных хг и х2.
Требуется отыскать /-максимум множества G П У. В качестве х1 (31 \
—, -у 1. Так как х1 ^ G, строим правильное /-отсечение по точке хЧ
X!<[^-] = L(2.38)
Тогда L1 представляет множество точек х1 Е R\ удовлетворяющих ограничению (2.38). Уточняем /-мажоранту х1, для чего решаем задачу отыскания /-максимума множества К^ — У П L1. В результате получаем уточненную/-мажоранту х2 = ^1, -^. Так как х2 ^ G, то строим правильное /-отсечение по точке х2:
(хь x2)^z(l,0).
Тогда L2 = {(хь х2)/хх -= 1; х2 ^0}. Отыскивая /-максимум множества Yl = У П ^2> устанавливаем, что Уъ = 0. Так как множество L2 не удовлетворяет условию 1, то строим новое усиленное правильное /-отсечение, для чего определяем /-минимум множества L2, который, очевидно, равен (г2, z2) = (1, —оо). (Заметим, если бы L2 удовлетворяло условию 1, то из условия Yl = 0 следовало бы X = 0). Новое усиленное правильное /-отсечение имеет вид
Хг ^ Zi — 1 = 0.(2.39)
Тогда новое соответствующее множество L2 представляет множество точек х Е R\ удовлетворяющих ограничению (2.39). Уточняем /-мажоранту х2, для чего решаем задачу отыскания /-максимума нового множества Yl = Y П L2. В результате получаем уточненную /-мажоранту х3 = ^’nr)* Так какх2 ^ G, строим правильное /-отсечение по точке;
(xv х2) ^' (0, 0).
Тогда Ls= {(х^ x2)7xt — 0, ха ^ 0). Отыскивая /-максимум множества Уь = ^ П L3, получаем уточненную/-мажоранту х4 =^ (0, 0), которая является решением рассматриваемой задачи.
Если в качестве L* использовать множество точек, удовлетворяющих системе линейных неравенств, представляющих на множестве
G правильное /-отсечение, то Z? всегда удовлетворяет условию 1 (см. [173]).
Эффективность алгоритма лексикографических отсечений зависит от способа уточнения /-мажорант множества X. Нами рассмотрен наипростейший случай такого уточнения, который для отдельных классов задач, допускающих простую реализацию схемы последовательного программирования на каждом шаге метода, является достаточно эффективным. Примерами могут служить алгоритмы лексикографического поиска для многомерной задачи о ранце [171].
§ 5. Р-МЕТОД РЕШЕНИЯ ЗАДАЧИ С БУЛЕВЫМИ ПЕРЕМЕННЫМИ
Рассматриваемый метод решения задач ЦЛП с булевыми переменными [71 относится к числу так называемых методов направленного перебора и сочетает идеи аддитивного алгоритма Балаша [12] и лексикографического поиска решений задач ДО [171].
Требуется решить следующую задачу:
min (L(x) = cx/Ax^b, х = (х1# ..., х^, х^ {0, 1}, / = 1, ... , п}.
(2.40)
Не ограничивая общности, считаем, что с^ ^ 0, / = 1, ..., п, так как в противном случае можно произвести замену переменных, приводящую к эквивалентной задаче, но уже с неотрицательными коэффициентами функции цели. Множество Р векторов размерности п, все компоненты которых принимают значения из множества {0, 1}, назовем множеством возможных решений, а некоторое его подмножество V, все векторы которого удовлетворяют условию Ах ^ 6, назовем множеством допустимых решений. Множество Н г V назовем, как обычно, множеством оптимальных решений исходной задачи, если для любых векторов у С V и х 6 Н справедливо соотношение
пfl
S с,х> < £ W /=1/=|
Предположим известным такое число 6 > 0, что для двух различных векторов х и у из V таких, что Л (х) у= L (у), справедливо соотношение
|L(x)-L(y)|>6.
Определение. Частичным /-решением (1 ^/ ^п — 1) задачи (2.40) на- вовем любой упорядоченный набор (х*, ..., х*), состоящий из фиксированных значений (нулей или единиц) первых I переменных задачи.
Определение. Систему линейных неравенств относительно переменных ХЖ, ..., х„
иI
S dtjXj ^^ bi — ^j dijXj« i — i, ..., m,/о д i \
/=/4-1/=1(^-41)
x,e{0, i}, i ; / +1, ..., n,
назовем подсистемой (/ + 1)-го порядка для частичного /-решения (х*, ..., х*\
Определение. Дополнением частичного /-решения задачи (2.40) назовем любой набор (x*+i, ..., х*п) фиксированных значений (нулей или единиц) последних п — / переменных этой задачи.
Для каждого значения индекса / ^ {1, ..., п} определим два множества
Zj=\ztilzij= 5 aik, 1 = 1/и},
№/ = \WijlWij = 5 aik, 1=1, ... , 7/1}, где
IT = \k!atk < 0, k V)и}Ь
Tit = \k!atk > 0, к g {/,..., n}}.
Кроме того, положим
Z„+, = {0, ... , 0}, Гп+1 = (0, ..., 0}.
Теорема 2.9. Если существует такое р £ (1т\, что
кр ^ ^р/К] <^ Zpi^-\> zpt-^-t £ Z/_j_j,
/=1
то подсистема (I + 1)-го порядка для частичного 1-решения (х*х*)
не имеет решения.
Рассмотрим два вектора х', хГ ^ Р. Говорят [171], что вектор хГ лексикографически больше вектора х* (х' >/ х"), если х! > xl, либо существует такое к £ {2 п}, что хк > хк и X/ = х/, / = 1, ... ..., к — 1.
Назовем вектор х = (х^ ..., х„) лексикографически минимальным, вектором множества Н, если для любого вектора у из множества Н \ {х} выполняется соотношение у ">* х.
В основе рассматриваемого метода лежит поиск лексикографически минимального вектора из множества Н. Метод является комбинаторным и заключается в направленном частичном переборе элементов конечного множества Р решений задачи (2.40) в порядке их возрастания в смысле лексикографического упорядочения. При этом для сокращения перебора учитывается неотрицательность коэффициентов целевой функции и используются множества Z(, Wj, j = 1п + 1, что позволит исключить из явного рассмотрения ряд векторов, не принадлежащих множеству допустимых решений задачи, а также некоторые подмножества решений, которые не содержат оптимального решения исходной задачи.
Алгоритм P-метода
Полагаем t = 1, ^хъ ..., хп) - (0, ..., 0).
Если для всех / = 1, ..., т выполняются соотношения Ь{ ^ г?^ переходим к п. 3. В противном случае исходная задача не имеет допустимых решений. Работа по алгоритму прекращается. -
Последовательно изменяя значения индекса I от t до п — 1 и проверяя условие теоремы 2.9, находим минимальное его значение Г, при котором подсистема (/' + 1)-го порядка для частичного /'-решения (хъ ..., х/') несовместна» и переходим кп. 4. Если же такого значения V не существует, то полагаем xt = 0, / = /, ..., п— 1, и переходим к п. 5.
Если все компоненты рассматриваемого частичного /'-решения равны 1, работа по алгоритму завершена, при этом последнее из полученных допустимых решений исходной задачи и будет оптимальным. В противном случае строим новое частичное /"-решение; полагаем Г = шах {/7/£ (1, ...» /'}, Xj = 0}. Полагаем хр- 1, а в случае V > Г также xf = 0, / = Г + 1, ...» /', и переходим к п. 2.
Если bt — 5 at/Xj ^ 0 для всех i = 1» ..., пц то, полагая хп — /=1
= 0, получаем допустимое решение (хх, ...» хп) исходной задачи и переходим к п. 7. В противном случае переходим к п. 6.
п
Полагаем х п= 1. Если bt — У Щ^^ 0 для всех / = 1, ...
/=1
...» т, то получим допустимое решение исходной задачи и переходим к п. 7. В противном случае полагаем Г = п — 1 и переходим кп. 4.
После получения первого допустимого решения (х}, ..., xh) в систему ограничений вводим дополнительное ограничение
где б^-м = 2 с,х) — 6, увеличиваем значение т на единицу. После получения каждого последующего допустимого решения (х{, .,., хг^ правую часть этого ограничения заменяем величиной
6m = S C^j,i=\
что позволит исключать множества решений, не содержащих оптимального решения. Полагаем Г = п — 1 и переходим к п. 4.
Замечание 1. При построении подсистемы (/ + 1)-го порядка для частичного /-решения (хъ ...., х^ целесообразно включать в нее лишь те неравенства, для которых справедливы соотношения
п
b» — ^ atixt < wtW1 i 6 {1, ...» mV
Т а б л и ц а 3 Если же для некоторого q g {1,...
Количество переменных
Количество ограничений
Общее врем
Алгоритмы Балаша
я счета, с/71} справедливо обратное
утверждение, то, очевидно, лю- ^™тРо™ б°е Дополнение частичного /-ре- шения будет удовлетворять <7-му
неравенству. Таким образом,
501010523множества Wh / = 1п,
100ю24123позволяют исключить из рассмо-
ю504217трения ряд ограничений, умень-
5050190182шая тем самым размерность под-
1S!оо403Sс™ы V + У"™ порядка.
Замечание 2. Для применения описанного выше алгоритма с
целью получения допустимого решения задачи (с последующим ее решением методами локальной оптимизации) достаточно прервать работу по алгоритму при переходе к п.7.
Если определение величины 6 вызывает затруднение, можно положить 6 = 0, что приведет в результате работы по алгоритму к получению лексикографически максимального вектора множества Н. Действительно, неявный перебор векторов множества Р происходит в порядке их лексикографического возрастания, а те векторы х, для которых значение функции цели больше разности текущего рекордного значения и величины 6, из рассмотрения исключаются.
Конечность работы по алгоритму следует из конечности множества векторов Р,а также из той особенности, что ни один вектор не будет рассматриваться более одного раза.
В Р-методе, как и в аддитивном алгоритме Балаша, не применяется так называемая релаксация, т. е. переход от задачи с допустимой областью G к задаче с более широкой допустимой областью Go zd G, получаемой путем отбрасывания некоторых ограничений исходной задачи (например, условий целочисленности). Использование такого рода релаксации характерно для большинства методов типа ветвей и
границ и методов отсечения.
В связи с тем что порядок (нумерация) переменных в определенной
степени влияет на время решения задач по описанному выше алгоритму, рекомендуется применять следующее эвристическое правило перенумерации переменных:
каждому X/ ставится в соответствие оценка
( UjlCj при uz^0,
гдегде“/ =“/ =I UjCj при Uj < 0, / = 1, ,.. , п,
где
где
“/ =
“/ =
переменные перенумеровываются в порядке возрастания величин uh j = 1, ..., п.
Частичные результаты машинного эксперимента по решению деся
ти тестовых задач методом Балаша и P-методом приведены в табл. 3.
§ 6. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧ ЦЛП
С ДВУХСТОРОННИМИ ОГРАНИЧЕНИЯМИ НА ПЕРЕМЕННЫЕ
Рассмотрим алгоритм, основанный на распространении идей описанного выше метода на более широкий класс задач, а именно на задачи ЦЛП с двухсторонними ограничениями на каждую переменную:
min {сх/Ах^Ь, Pi^x^dh Xj — целое, /=1, ..., n}. (2.42)
Как и ранее, можно считать ct ^ 0, / = 1, ..., п. Кроме того, пусть Pi = 0, / = 1, ..., п.
Для решения задачи (2.42) предлагается процедура, заключающаяся в частичном переборе целочисленных точек множества
{х/х = (хь ... , хп^ 0^xf^dh /=!,..., п).
Для сокращения перебора учитываются неотрицательность коэффициентов функции цели и специальные оценки, позволяющие определять принадлежность произвольного вектора (xlt ..., хп) множеству допустимых решений задачи, а также исключать из рассмотрения множества, заведомо не содержащие оптимального решения задачи.
Опишем идею этого подхода более подробно.
Очевидно, множество возможных решений задачи
V = {х/х = (xv ... , х^, 0 ^ х,^ dp Xj — целое, / = 1, ... , п} п
конечно и состоит из П (dj + 1) элементов. Суть алгоритма заклю- /=1
чается в том, что из множества возможных решений по определенным правилам вычленяются некоторые его подмножества, которые зачем следует исключить из рассмотрения, если они не содержат оптимальных решений, либо подвергнуть дальнейшему расчленению с целью выявления подмножеств, не содержащих оптимальных решений.
Предположим, что на основании исследования некоторого частичного Z-решения (х*, ..., х*) из рассмотрения можно исключить следующее подмножество множества возможных решений:
М (хГ, ... , xi^ — {х/х С К, Xj = х*, j = 1, ... , /},
как не содержащее оптимальных решений, т. е. данное частичное I- решение либо вообще не имеет дополнений, приводящих к допустимому решению, либо не имеет дополнений, приводящих к меньшему значению целевой функции. В этом случае фактически исключается из рассмотрения П (df + 1) возможных решений. Если же выяснится, М+1 ,#
что множество М (х*, ..., х*) подлежит дальнейшему расчленению, переходим к частичному (Z + 1)-решению (х*, ..., x^i) и исследуем подмножество
М (х*, ... , x*+i) с М (хГ, ... , х*).
Такой метод является комбинаторным, ибо использует конечность множества возможных решений. Как и в аддитивном алгоритме Бала-
ша, в нем исключена возможность накопления ошибок округления, так как используются лишь операции сложения и вычитания. Конечность метода следует из конечности множества возможных решений, а также из самой вычислительной схемы алгоритма.
Перейдем к более детальному описанию метода.
Пусть х* = (х1, ..., Хд) — произвольный вектор из V. Фиксируем некоторый номер / Е {h ..., и) и с помощью частичного /-решения (хь ..., х*) образуем следующую систему неравенств относительно целочисленных переменных x/+i, ..., xni
5 atjXj^bi — £ atlx7
/=/4-1/=iVAo)
Os^Xj^d/, j = 1+ \, ... , n.
Очевидно, если подсистема (2.43) (/ + 1)-го порядка для частичного Z-решения (х*х^ не совместна, то не существует дополнения частичного /-решения, чтобы вектор (х*, ..., х’, ..., х^) являлся бы допустимым решением задачи (2.43).
Как и в предыдущем параграфе, определим множества
Zy " V^iil^ii = ^ tli^d^ / = 1, ... , Щ},
7=1п; Z„+1 = {00),
№/= \хиц1хвц= S athd-k, / = 1, .-. , т\1
7=1,^ = {00}.
Теорема 2.10. Если существует такой номер р Е {1, •••, т^ что
Ьр—2 ар/х;<гр/+ь zPi+\ Е2/+ь/=1
то подсистема (I + 1)-ао порядка для частичного 1-решения не совместна. Справедливость этой теоремы очевидна.
Отметим, что в подсистему (Z + 1)-го порядка следует включать лишь те неравенства, для которых
bt — S ctMx*i С^я-н» * € U. • • • . «}•
Введем в рассмотрение следующие множества: Р = \1]1^\\т\, bt<znV
(1)
/’ = )///€{!, ... , m), bt — 2 atfx* <г^| , q = 2, ... , nA 1.
I/=i)
Допустим, что существует такой номер / £ {1, •••, и), для которого I1 = 0, I1*' Ф 0. Тогда согласно теореме 2.10 подсистема (/ + 1)- го порядка не имеет решения. В то же время подсистема /-го порядка может иметь решения. Для нее можно вычислить оценки по сле-
дующим формулам)
f ^-Е ai/xi-2w
^h = min {—!atj 2> 0
Ian
[V^ + 1], если r|(Z) — не целое,
т^'в противном случае,
где т^) = max r|<f>, а ^^ определяется из условий
гц+ + сц^ = Ь1—^ a^Xf, i 6 /z+1.
7=1
Лемма 2.1. Если при х* — О I1 — 0 и 11+' + 0,то для произвольного р £ //+1 справедливо соотношение api < 0.
Доказательство леммы очевидно.
Теорема 2.11. Если при х* = 0 I1 = 0, I1^ Ф 0, то для любого решения (хь ..., х^ подсистемы l-го порядка для частичного ^1 — 1)-го решения (х*, ..., х*^ выполняются неравенства
шах (0, т](/)) ^ xt ^ min (§l\ d^.
Доказательство. Прежде всего убедимся в том, что при выполнении условий теоремы имеет место неравенство п^^ ^ хь
Предположив противное, т. е. iq(/) > хь приходим к выводу, что в множестве /Z+I найдется такое значение индекса s, для которого д($) > хР Из определения т]<$) следует
^s/4-i ^s/Л bs—— ^ aSjXj.
/=1
Согласно лемме 2.1 а^ < 0. Следовательно,
2s/-|-i bs— ^ as1Xj —• а^х^
7=1
С учетом утверждения теоремы 2.10 подсистема (Z + 1)-го порядка для частичного /-решения (х*, ..., х*_ь х^ не совместна. Это противоречит предположению о том, что (xz-i, ..., х^ — решение этой подсистемы. Аналогично доказывается неравенство xt ^ ^1\
Итак, теорема 2.11 доказана.
Вычислительная схема метода состоит в следующем.
Перебор векторов множества V необходимо начинать с вектора (х*, ..., х*п) = (0, ..., 0), а затем рассматривать векторы множества Г в порядке лексикографического возрастания. При этом из рассмотри
ния исключаются те подмножества возможных решений М (х?, ..., х*), I = \, .... п — 1, для которых частичное /-решение (х*, ..., х*) удовлетворяет либо условиям теоремы 2.10, либо условию т)<п "> ^w. Осуществить такой просмотр можно с помощью следующего алгоритма.
Алгоритм
Строим множества /\ Wh Zt, I = 1, ..., п. Если 71 =/= 0, то исходная задача не имеет решений и следует перейти к п. 10.
Рассмотрим множества / 'в порядке возрастания значений / от 2 доп. Находим такое V £ {1п— 1}, для которого I* = 0, но /,+1 =/= 0. Если такое/'существует, то согласно теореме 2.10 подсистема (Г + 1)-го порядка для частичного /'-решения (х*, ..., х*0 не будет иметь решений, и это частичное /'-решение может быть исключено из рассмотрения со всеми дополнениями. Полагаем r](i) = 0, ^ = = dlt i = Г,..., п, переходим к п.4. Если же /' = 0 для всех / = 1,... ..., п, переходим к п. 3.
Полагая х* = 0, / = /',/..., п, получаем допустимое решение исходной задачи и переходим к п. 9.
Вычисляем оценки т](р), £(Г) и £(Г> = т](/> — £(Z)- Если ^ ^ 0, переходим к п. 5. В противном случае, учитывая утверждение теоремы 2.11, приходим к заключению, что подсистема Г-го порядка для частичного (/' — 1)-решения (х*, ..., X/*_i) не имеет решения и множество векторов М (х*x/'_i)может быть исключено из рас
смотрения как множество, не содержащее оптимальных решений. Переходим к п. 6.
Полагаем х*- = т)<г> и исключаем из рассмотрения множества векторов М (х*Х/*_ь xz>) (xz- < r^'1), среди которых нет оптималь
ного решения. Затем, если Г <п, переходим к рассмотрению подсистемы (/' + 1)-го порядка для (хь .... хр), в связи с чем увеличиваем значение /' на единицу и переходим к п. 4. Если же /' = п, то вектор (х‘,... ..., х„) является допустимым решением исходной задачи и необходимо перейти к п. 9.
Если /' = 1, то исходная задача не имеет решения и следует перейти к п. 10. В противном случае рассматриваем частичное (Г — 1)- решение (х*хг*_1 + 1). Если xp_t + 1 > £|/-1), то согласно тео
реме 2.11 не существует дополнения данного частичного (/' — 1 )-ре- шения, приводящего к оптимальному решению исходной задачи. В этом случае следует перейти к п. 7.
Если же х/'_1 + 1 ^ ^1-х\ то полагаем х*.-\ = х(‘_1 4- 1 и переходим к п. 8.
Если /' = 1 и, следовательно, система ограничений не совместна, работа по алгоритму может быть завершена, переходим к п. 10. При Г 2> 1 полагаем xz'-i = 0, г)"’-0 = 0, £(, -1) = йц.-^ и переходим к п. 6.
Рассматриваем множества в порядке возрастания значений индекса / от V до п. Если существует q £ Ц\ ..., п) такое, что I9 = = 0 и 19^ #= 0,то полагаем Г = ди переходим к п. 4. В противном случае переходим к п. 6.
В результате вычислений получим точку (х*, ..., х,*) множества допустимых решений. В случае получения первого такого решения в систему ограничений задачи вводим неравенство
пп
^7^7 ^^ ^m-f-b ГДе ^m+l == CjXj./=1/=1
При каждом последующем получении допустимого решения правая часть этого неравенства изменяется, а именно Ьт^\ полагается равным значению функции цели в полученной точке. Затем перебор векторов множества V продолжаем в порядке их лексикографического возрастания. При этом отыскивается переменная с номером k таким, что х* ^ 0, но Xi = 0, i = к + 1, ..., п. Полагаем х^ = 0, V = к и переходим к п. 6. Если же такого к не существует, то (О, ..., 0) — оптимальное решение исходной задачи.
Вычисления по данной схеме закончены. Последнее из полученных допустимых решений и будет искомым решением исходной задачи. Если же допустимое решение получено не было, то область, задаваемая ограничениями, пуста и исходная задача не имеет решения.
Замечание. Для применения данного алгоритма с целью получения начального приближения (при последующем решении исходной задачи методами локальной оптимизации) достаточно прервать работу по алгоритму при переходе к п. 9.
§ 7. ПРИМЕНЕНИЕ МЕТОДА ПОСТРОЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТИ ПЛАНОВ К РЕШЕНИЮ ОДНОЙ ЗАДАЧИ ЦЛП
С БУЛЕВЫМИ ПЕРЕМЕННЫМИ
Опишем применение метода построения последовательности планов для решения задачи ЯЛ минимизации функции
при ограничениях
= ii с,Х]
i=i
(2.44)
aiixi ^^ 7=1
1= 1, ... , m,
(2.45)
0 ^ xz ^ 1,
j = 1, ... , n,
(2.46)
X/ — целые,
j = 1, ... , n,
(2.47)
где cz>0; а//>0; bt*>0\ £ flo>6b t = L ..., иг; / = 1, ..., п. /=!
В основе алгоритма фх, используемого для решения задач вида (2.44) — (2.47), лежит модифицированная схема метода построения
последовательности планов. Суть модификации заключается в том, что множество планов задачи Ж не расширяется и построение их ведется в порядке неубывания миноранты, представляющей собой нижнюю оценку значения функции F (х) на подмножествах множества планов задачи 9Л. Особенностью алгоритма фх является то, что он строит последовательность планов с пропуском заведомо неоптимальных.
Введем отношение порядка для двух векторов х' = (хь ..., х^) и х" = (хь ..., х^ : х' ^ х, если х\ ^ хь /= 1, ..., п. Если среди этих неравенств есть хотя бы одно строгое, то будем говорить, что х' больше х" (х' >> х").
Очевидно, что если х0— план задачи 9Л, то всякий вектор, который больше х0,— тоже план задачи ЭД. Из того, что все с^ ^ 0, следует
F (^о) < F W Для х > х0.(2.48)
Поэтому при построении последовательности планов задачи в порядке неубывания миноранты можно не конструировать планы, которые больше уже полученных, так как среди них нет оптимального плана.
Введем некоторые обозначения и определения.
Пусть N = {1, ..., п}. Совокупность индексов и с: N назовем допустимой и пишем и ^D, если
S аи ^bb I = 1, ... , т.
ieN\u
Пусть пара («0, v0) такова, что и^ v0 cz N, и0 ft и0 = 0, и0 £D
#\{“о. уо} = (АН. где Н<Н< ... <jr.
Пусть Jk = {/,и^ где fe = 1г, Jo = 0.
Определим план х (и0, у0) = (х®, .... х®) задачи ЭД, компоненты которого вычисляются по формулам
0_ ( о для /е«0,~ I 1 для / 6 Уо>
%оI о, если u0 и МП е Л-1, X/ = 0} U {/6} с: D,
,,!I 1 в противном случае,
где к = 1, ..., г. Далее для этого плана введем обозначение
уо = \UKN\Vg, х“= 1}.
Для пары (ы0, у0) определим множество пар
(«0. У0 = {(«Ь У1), («2. У2^, • • • , («(5,1- °|оо|)}
по следующим правилам:
у1 у».
y„ = vp_, и {/Р-1|, р=2, 3,, |й0|,(2.49)
«Р = “о U (/р}> Р = L 2, ... , | v0 J,
</|уоГ Будем считать, что</|уоГ Будем считать, чтогде (Л, ..., /j-jl = у0, причем /1</2< W (ип, и0) = 0“ если у0 = 0.
</|уоГ Будем считать, что
</|уоГ Будем считать, что
Введем множество допустимых пар
И7* («о, Vo) = {(«, v)/(«> V) € № («о, v0)> и € DV
Через Р (и0, у0) обозначим множество планов задачи (2.44) — (2.47) с дополнительным условием
( 0 для }£и0,
xz= .(2.50)
( 1 для /£у0.V 7
Тогда в силу (2.49) имеет место следующее соотношение:
U Р(«, о) = Р(«0, у0)\(х/х>х(н0, у0), х£Р(н0, о0)}. (2.51) (U,-V)€U7*(u0U0)
Пусть
^(«о, v0)= max Ft(u0, у0),
i=\jn
где Ft (u0, у0) — минимальное значение функции F (х) при условиях (2.46), (2.50) и
п
2 aijXj^bt.
/=1
Опишем алгоритм <рг построения последовательности планов задачи 991 в порядке неубывания миноранты.
Алгоритм <pv Пусть Wt = {(м(1), у0*)}, где м(1) = ^ = 0.
А-й шаг (А = 1, 2, ...): находим
min F (и, о) = F ^и*\ и*^(u.o)ew'^
и план rk = х (u<6>, yW). Строим множество пар
Гй+1 = (№»\ (ы<6>, и(к^ U Г*(и(6), и*1')
и переходим к (А + 1)-му шагу.
Из (2.51) и алгоритма <рг получаем
к
(J Р(и, v) = Р \ и Р (rs), А = 1, 2 (2.52)
«ы^е» ^s=i
где Р = Р (««), tX1*) — множество планов задачи 901; Р (г$) = (х/х ^ ^ rs, х ^ Р (u<s>, tXs’)}.
При этом в силу (2.48) имеем
F(rk) = min F (х), А = 1, 2,...(2.53)
xCPlr^)
Так как F (и^, y<ft>) ^ F (rk) для всех А=1, 2, ..., то функция
QM=F^fe',A
является минорантой функции F (х), причем для любой пары (и, у) £ £ Wk справедливо равенство
F (и, и) = Q (х (и, у)) = min Q (х).
*еР(«.о)
Таблица 4
тХп
nt
*0
'о
ti
к»
fee
25 X 30
14
52
2,3
16
0,9
3
0,4
1
0,12
25 X 40
23
67
3,6
4
0,2
1
0,11
1
0,1
10 X 106
51
96
4,2
9
0,4
3
0,05
3
0,05
40 X 92
46
54
5,1
2
0,2
2
0,2
1
0,1
10 X 120
106
67
5,3
19
1,3
8
0,7
3
0,3
20 X 120
93
95
16,6
4
0,9
4
0,9
2
0,5
34 X Н6
61
14
1,1
9
0,85
5
0,46
2
0,2’
37 X 105
77
84
12,0
66
10,9
11
1,8
11
1,8
39 X 403
139
71
21,4
32
9,5
14
4,3
4
4,3
43 X 602
184
13
18,1
11
16,5
5
7,5
1
1,6
31 X 212
107
29
19,0
29
19,0
8
6,0
3
2,7
59 X 314
194
37
20,5
2
1,4
1
0,7
1
0,7
61 X Ю9
37
15
12,0
14
11,1
14
11,1
4
3,6
69 X 218
119
23
19,4
23
19,4
19
16,7
2
2,9
61 X 307
214
69
35,2
15
8,1
11
6,3
11
6,3
105 х 303
191
37
29,0
37
29,0
8
5,9
1
0,8
109 X 401
309
59
38,6
28
19,8
12
8,4
4
2,7
219 X 631
156
67
43,1
51
36,4
26
18,9
16
10,5
215 X 765
483
3
2,4
2
2,1
1
1,05
1
1,05
308 X 690
276
53
50,0
17
16,9
15
14,3
2
1,9
Учитывая (2.52) и (2.53), можно утверждать, что алгоритм фх строит требуемую последовательность. Поэтому для последовательности гь г^ ... справедлив критерий оптимальности.
Итак, &-й шаг алгоритма гр! решения задачи состоит в том, что с помощью алгоритма q^ находим план гк задачи 9Л и проверяем выполнение неравенства
Q(rft)> min Р^г^ =
l^s^A
Если это неравенство выполняется, то гХ — оптимальный план задачи 9Л. Иначе переходим к следующему шагу алгоритма грг.
Метод построения последовательности планов является средством решения широкого круга задач ДО. Как отмечалось в § 3 гл. 1, на основе этого метода разработан целый ряд алгоритмов решения разнообразных практических задач [44]. Вычислительные эксперименты и сравнение алгоритмов, основанных на идеях метода построения последовательности планов, с другими известными алгоритмами решения задач ЦЛП, а также опыт использования этих алгоритмов при решении реальных задач показали высокую эффективность метода [44]. В табл. 4 приведены временные характеристики работы алгоритма гр! при решении реальных задач оптимизации планирования на предприятиях машиностроения. Временные характеристики алгоритма получены на ЭВМ ЕС-1022. В табл. 4 приняты следующие обозначения: т и п — число ограничений и переменных задачи соответственно; Л1 — число ненулевых компонент в оптимальном плане; ^, к3, къ и к> /3, 4 — соответственно число итераций и время работы, мин, алго-
ритма, затраченные на получение приближенного решения с погрешностью 1, 3, 5 %; kQ и /0 — соответственно число итераций и время работы, мин, алгоритма, затраченные на получения оптимального плана.
Ряд алгоритмов, основанных на различных модификациях метода построения последовательности планов и предназначенных для решения разнообразных задач ЦЛП с булевыми переменными, реализован в пакете прикладных программ оптимального планирования (ППП ОН) (44, ДЮ]. Накопленный опыт решения задач рассмотренного класса показывает, что они являются трудными с вычислительной точки зрения. В ПППОП предусмотрена возможность получения как точного, так и приближенного решения таких задач. Кроме того, работа алгоритмов, реализованных в пакете, может заканчиваться по истечении заданного числа итераций. Метод решения конкретной задачи в данном пакете выбирается автоматически в зависимости от размерности задачи, значений коэффициентов матрицы ограничений, вида ограничений задачи, а также требуемой точности решения. Средства пакета позволяют решать задачи ЦЛП с числом булевых переменных до 1000 и числом ограничений до 500.
В отличие от известных пакетов, предназначенных для решения задач оптимизации, в ППП ОП реализована автоматизация интерфейсов с информационной базой АСУП.
Программные модули ППП ОП реализованы на языках АССЕМБЛЕР и ПЛ/1. ППП ОП может работать как автономно, так и под управлением любой проблемной программы, написанной на АССЕМБЛЕРЕ или ПЛ/1. Функционирование пакета обеспечивается на совместимых моделях ЕС ЭВМ под управлением операционных систем ОС/ЕС (версия 2,0 и выше) или ОС/ЕС (версия 4.1 и выше).
ОДИН ПОДХОД К АНАЛИЗУ СТРУКТУРЫ ЗАДАЧ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ
И АЛГОРИТМОВ ОТСЕЧЕНИЯ
Пусть й — замкнутое множество из R\ Zn's cRn — множество всех л-мерных векторов, у которых первые s координат являются целыми, s^ 1; Zn— множество всех л-мерных целочисленных векторов Рассмотрим задачу целочисленного программирования в лексикографической постановке: найти
г* = lex max (Й П Zn’s\(2.54)
Далее будем предполагать, что существует х = lex шах й и х ^ Zn’\ При изучении метода отсечения, а также ряда других алгоритмов, основанных на погружении допустимой области дискретной задачи, особый интерес представляет множество тех точек из й, которые должны быть исключены в процессе решения (2.54), а именно дробное накрытие
Й* = {х/х^й, х> Zz для всех г^й f| Zn,s^
В случае й Q ^ = 0 имеем, очевидно, й* = й, т. е. необходимо просмотреть все множество й.
Для измерения «объема» дробного накрытия и глубины отсечений предлагается использовать L-разбиение множеств из R”, которое определяется следующим образом:
каждая точка z ^Zn образует отдельный класс;
нецелочисленные точки х, у, х > 1у, принадлежат одному классу, если они не отделяются некоторой точкой z £ Z” в отношении лексикографического порядка, т. е. не существует г £ Zn такого, что х2> zz > !у.
Порождаемое L-разбиением фактор-множество для произвольного S Rn будем обозначать S/L. Его элементы назовем L-классами (или L-отрезками). L-классы, состоящие из нецелочисленных точек, назовем дробными. Отметим некоторые свойства этого разбиения.
Если S— ограниченное множество, то S/L — конечное. Это свойство используется при обосновании конечности алгоритмов для задач с ограниченными дробными накрытиями.
Пусть S и S' — непустые множества из Rn. Будем говорить, что S лексикографически больше S' и писать S > 18\ если х > 1х' для всех х ^ S и х’ £ S'. Для множества S/L данное отношение является линейным порядком. Назовем это свойство согласованностью разбиения с лексикографическим порядком. Если S ограничено, то S/L можно записать в виде
S!L = \Vv Vp}, У(>Ч+Ь 1=1P-L
Если взять по одному представителю из каждого V G S/L, то получим дискретное множество, обладающее свойством отделимости любых двух его точек некоторым вектором из Zn. Отметим, что с помощью таких дискретных множеств ранее была построена верхняя оценка числа итераций (отсечений) для первого алгоритма Гомори [Д231.
Вернемся к рассмотрению задачи (2.54) и отсечений. Фактор-множество Q*/L назовем L-накрытием. Линейное неравенство
VX^Vo
является правильным отсечением, если
ух>у0;
yz ^ у0 для всех z £ Q Q ^»
Правильное отсечение называется регулярным (для L-разбиения), если оно вместо условия а) удовлетворяет более сильному требованию:
а*) ух'>у0 для всех x'gV-(Q),
где V- (Й) — класс L-накрытия, содержащий точку х. Следует отметить, что далеко не для каждого разбиения регулярное отсечение существует. Для L-разбиения этот вопрос решается положительно. Так, если й — выпуклое многогранное множество, то регулярные отсечения можно найти среди отсечений дробных алгоритмов Гомори. Таковыми являются /7-отсечения 1Д26] и их частный случай — отсече-
ния В-алгоритма [72], отсечения Ю. Ю. Червака [173]. Регулярные отсечения содержатся и в других классах, описанных разными авторами. При некоторых предположениях такие отсечения можно строить и для невыпуклых задач.
Важную роль в излагаемом подходе играет понятие глубины отсечения. Глубина отсечения — это число исключаемых им элементов L-накрытия. Глубина регулярного отсечения, очевидно, не меньше единицы.
Далее нам потребуется описание двойственного дробного процесса отсечения D для решения задачи (2.54).
Процесс D. Полагаем Q1 = Q, / = 1.
Ля итерация
Находим х1 = lex max Qz. Если xl £ Zn's либо Qf = 0, то процесс завершается. В первом случае получено оптимальное решение задачи (2.54), во втором — решения нет.
Заменяем Qz на Qz путем исключения из текущей системы ограничений некоторых отсечений. При этом должно выполняться условие
х1 = lex max Qz.
Строим правильное отсечение ^х ^ уо.
Присоединяем полученное отсечение к ограничениям задачи, полагаем
Qz+' =QZ п {х/А<?о}.
Переходим к следующей итерации на шаг 1, увеличивая значение t на 1.
Процесс D является лексикографически строго монотонным, т. е. х1 > W+i, / = 1, 2, ... Если в нем на всех итерациях используются только регулярные отсечения, то процесс D называется регулярным. Если же для любого х1 ^ Zns найдется номер f ^ / такой, что V^^To—регулярное отсечение, то процесс D называется слабо регулярным.
Установлено, что процесс D решает задачу (2.54) с конечным L- накрытием за конечное число итераций тогда и только тогда, когда он является слабо регулярным. Приведем ряд оценок числа итераций (отсечений). Пусть Id №) — число отсечений, используемых в процессе D при решении (2.54).
Теорема 2.12. Для регулярного процесса D и задачи (2.54) с конечным L-накрытием имеет место оценка
Id^^^ILY(2.55)
Можно привести примеры задач и алгоритмов, для которых эта оценка достигается. Имеются семейства задач, у которых мощность L-накрытия растет экспоненциально вместе с размерностью пространства.
Неравенство (2.55) может служить основой для построения оценок числа итераций, выражаемых через параметры задачи. Например, если погрузить й* в параллелепипед Р = {x/d ^ % ^ d^, d, d' £ Z\
то из (2.55) и свойств L-разбиения для регулярного процесса D вытекает оценка
/о(й)С— 1 + П (dz — d<+ 1).
После получения неравенства (2.55) естественно возникает вопрос, нельзя ли в этих же терминах построить нетривиальную нижнюю сценку числа итераций? Это удалось сделать для процессов с так называемыми р-отсечениями, имеющими относительно небольшую глубину, ограниченную сверху величиной s, т. е. числом целочисленных переменных задачи (2.54). Приведем этот результат. Пусть QczP. Линейное неравенство ух ^ у0 назовем р-отсечением, если для него выполняется условие а*) из определения регулярного отсечения и неравенство уг у0 для всех г Р П Zrts, г < 1х.
Теорема 2.13. Для процесса D с р-отсечениями и задачи (2.54) имеет место оценка
Id^>-^-WL\.(2.56)
На основе этого неравенства легко строятся семейства трудных задач для рассматриваемых алгоритмов.
Для дробных алгоритмов Гомори получить такого типа оценку на классе задач ЦЛП не удается, так как используемые в них отсечения в ряде случаев оказываются существенно более глубокими и быстро «снимают» мощные L-накрытия.
Близость оценок (2.55) и (2.56) для алгоритмов в L-отсечениями показывает, что мощность L-накрытия достаточно точно характеризует сложность решения задачи (2.54) этими алгоритмами. Кроме того, они свидетельствуют о том, что разные варианты таких алгоритмов примерно эквивалентны по числу итераций.
В рамках излагаемого подхода можно использовать и другие разбиения. Укажем на одно из них. Будем считать, что пецелочисленные точки х и у принадлежат одному классу, если [х] = [у], а каждая целая точка образует отдельный класс. Легко видеть, что это разбиение не согласовано с лексикографическим порядком. Любой порождаемый им дробный класс распадается не более, чем на п L-классов. Отсюда вытекает
I I 1№*]1»
где [Qj = \г!г = \х^ x^Q*}.
В связи с оценками (2.55), (2.56) представляет интерес исследование структуры L-разбиений различных классов множества. Пусть S — непустое множество из Rn. Подмножество Q дробных L-классов из S/L называется комплексом, если для любых элементов V» V' £ Q (У > V') не найдется г С S Q Z” такой, что V > z> 'У'. Через С (S) обозначим совокупность всех комплексов, порождаемых множеством S. Введем функцию
У (S) = sup {| Q|/Q€C(S)}.
Заметим, что если S — ограничено, то Y (S)< + оо. При переупорядочении координат значения этой функции могут существенно изменяться.
Пусть А — вещественная (/тг х п)-матрица, b — /тг-вектор и
М (Л, 6) = \х,Ах ^ 6, х^ 0}.'
Теорема 2.14. Если А ^ 0, Ь ^ О, то У (уИ (Л, ЬУ) ^ п.
Имеются семейства многогранников, у которых значения рассматриваемой функции растут экспоненциально вместе с увеличением п. Поскольку | Q^/L | = ¥ (Q*) ^ У (Q), то оценки для Т (Q) могут быть использованы при анализе алгоритмов.
Некоторые классы выпуклых многогранников обладают свойством Т (S) ^ 1. Кроме того, они имеют целочисленные лексикографически максимальные и минимальные элементы (если такие существуют). L-разбиение подобного типа назовем альтернирующим. Альтернирующим L-разбиением обладает, например, параллелепипед Р.
Теорема 2.15. Если матрица А — булева и b £ Z”\ 6^0, то М (Л, Ь) имеет альтернирующее L-разбиение.
Аналогичный результат имеет место и для многогранника вида Ax^b, d'^x^d,
где А — булева матрица, d, dr Zm.
Пусть Q* gz S, причем S ограничено и имеет альтернирующее L-разбиение. Тогда для построения оценок числа итераций полезным является неравенство 1^/Lj^lS П Zn |— 1.
Альтернирующее L-разбиение можно использовать и при построении алгоритмов. Рассмотрим задачу ЦЛП$ найти
шахсх(2.57)
при ограничениях
Ах^Ь, х>0,(2.58)
x^Zn.(2.59)
Предположим, что множество, определяемое (2.58), имеет альтернирующее L-разбиение. Находим лексикографически максимальный элемент этого множества. В силу альтернируемости он является целочисленным. Если в этой точке выполнены и условия оптимальности для (2.57), (2.58), то процесс завершается. Если они не выполняются, то вводим отсечение, которое исключает найденный лексикографический максимум и сохраняет структуру L-разбиения. Далее ищется лексикографически максимальный элемент нового множества, проверяются условия оптимальности и процедура повторяется. На основе такого процесса можно строить точные и приближенные алгоритмы отсечения [Д261.
Разработаны алгоритмы и программы для анализа L-накрытий задач ЦЛП и вычисления их мощности. Вместе « изложенными выше теоретическими оценками они служат основой для проведения целенаправленного вычислительного эксперимента по исследованию структуры задач и сравнению эффективности алгоритмов.
К настоящему времени получены данные об L-накрытиях более 100 задач булева линейного программирования (одномерный и многомерный рюкзак, об упаковке, о покрытии и др.,число переменных — до 60, число ограничений — до 25) и результатах их решения дробными алгоритмами с отсечениями Гомори и ^-отсечениями. Примеры выбирались из числа известных тестовых задач и генерировались с помощью датчиков случайных чисел. Все задачи решены за приемлемое время (до 10 мин) на ЭВМ ЕС-1033. Мощность L-накрытий у самых «трудных» задач не превышала 100. Особенно малые накрытия наблюдались у задач о покрытии и упаковке. Число используемых в алгоритмах регулярных отсечений составляло, как правило, существенную часть (одну треть и более) мощности L-накрытия. Алгоритмы с регулярными отсечениями Гомори оказались в целом более эффективными, чем с р-отсечениями.
Глава 3
МЕТОД ВЕКТОРА СПАДА И ЕГО МОДИФИКАЦИИ
ОБЩАЯ СХЕМА МЕТОДА ВЕКТОРА СПАДА
Напомним некоторые известные понятия L3, 69, 77] и введем определения, необходимые для изложения общей схемы метода вектора спада.
Пусть М — метрическое пространство с некоторой метрикой р (х, у), определенной для любых двух точек х и у из М.
Если г — какое-либо положительное число, ах — фиксированная точка метрического пространства /И, то множество всех точек у £ М, для которых р (х, у) << г, называется открытой окрестностью (или открытым шаром) с центром х и радиусом г.
Точка х ^ М называется изолированной в М, если существует ее открытая окрестность, не содержащая других точек множества М.
Множество М, состоящее только из изолированных точек, называется дискретным.
Перейдем к другому определению окрестности точки, связанному с понятием замкнутого шара.
Множество всех точек у g М, для которых р (х, у) ^г, называется замкнутым шаром радиуса г > 0 с центром в точке х £ М.
Нетрудно показать, что если множество М дискретно, то для любого открытого шара в М найдется замкнутый шар с тем же центром и полностью совпадающий с ним. В связи с этим для дискретных множеств, которые будем рассматривать в дальнейшем, перейдем от открытых окрестностей к окрестностям, связанным с понятием замкнутого шара, а именно замкнутый шар радиуса г > 0 с центром х ^М назовем окрестностью точки х и обозначим символом Ом (х, г).
Итак, пусть М — дискретное множество, а / (х) — произвольная действительная функция, определенная на М.
Точку х £ М назовем точкой локального минимума функции f относительно окрестности радиуса г, если для всех точек у £ Ом (х, г) выполняется неравенство f (х) ^. f (у) и Ом Vх» г) \ {х} ^= 0.
Очевидно, что если некоторая точка х g М не является точкой локального минимума функции / относительно окрестности радиуса гх*> > 0, то она не будет таковой и относительно окрестности любого радиуса г2> удовлетворяющего неравенству гх ^ г2.
Рассматриваемая нами задача дискретного программирования состоит в определении следующего ее локального решения: точки локального минимума функции /, заданной на М, относительно окрестности радиуса г > 0.
7*QQ
Векторную функцию А^ (х), определенную на М, назовем вектором спада функции f относительно окрестности радиуса г, если выполняются условия:
значение функции А^ в каждой точке х ^ М является /-мерным (Z = / (х, г)) вектором с компонентами Аь ..., Az —действительными числами;
точка х £ М является точкой локального минимума функции / тогда и только тогда, когда Az ^ 0 при всех / = 1, ..., Z;
если х £ М не является точкой локального минимума функции / относительно Ом (х, г), то с помощью вектора спада можно определить точку х* ^ Ом (х, 0 такую, что / (х') < / (х).
В соответствии с этим определением вектор \гм (х) позволяет для каждой точки х^ М найти направление уменьшения (спада) значений функции / в окрестности Ом (х, г). Идея использования вектора спада Ам (х) для отыскания такого направления лежит в основе рассматриваемого нами метода.
В большинстве случаев компоненты вектора спада можно вычислить значительно проще, чем значения функции / в точках окрестности Ом (х, г). Кроме того, поиск точки х' такой, что / (x')<.f (х), или выявление того факта, что х является точкой локального минимума функции / относительно Ом (х, г), предполагают обычно рассмотрение лишь части компонент вектора Дм (х).
Перейдем к непосредственному изложению общей схемы метода вектора спада [124, 128], которую можно представить в виде следующего алгоритма.
Алгоритм
Случайно или исходя из учета особенностей решаемой задачи выбираем некоторое начальное приближение х° £ М и задаем величину радиуса г > 0.
Задаем некоторую последовательность радиусов {гх, ..., rm}, удовлетворяющую соотношениям 0 < гх < ... < гт = г, т ^ 1.
Полагаем h = 0.
На каждом (Я + 1)-м шаге алгоритма выполняем следующие действия.
Полагаем k = 1.
Рассматриваем окрестность Ом (^, rj.
По значениям компонент вектора спада А^ (хЛ) определяем, является ли / (хЛ) локальным минимумом функции / относительно Ом (х\ г^. Если да, то при к < т, заменив к на к + 1, переходим к п. 4.2, а при к = т — к п. 5. В противном случае переходим к п. 4.4.
По значениям компонент вектора спада А^ (х) находим в окрестности Ом №, rk) точку хН\ для которой / (х^1) < / (х6). Заменяем h на h + 1 и переходим к п. 4.
Заканчиваем работу по алгоритму в связи с тем, что xh является искомой точкой локального минимума функции / (х) относительно окрестности радиуса г.
Следует отметить, что при выполнении данного алгоритма в случае, когда m> 1, необходимость в рассмотрении окрестностей максимального радиуса гт возникает лишь для незначительной части его шагов. В большинстве случаев на каждом шаге алгоритма достаточно ограничиться вычислением компонент вектора спада Дм ^xh\ Если на некотором шаге все же возникает необходимость в рассмотрении окрестностей с радиусами, большими чем rv что вместо любой такой окрестности Ом (хА, гД где гк > г1? достаточно взять ее часть Ом (хА, б0\ Ом ^хк, rk_v) и исследовать компоненты вектор спада, соответствующие точкам этого множества.
П. 4.4 предложенного алгоритма можно изменить следующим образом. В окрестности Ом (хЛ, гк) среди точек х с меньшим значением целевой функции, чем / W, выбрать одну, которая доставляет минимум функции / (х). Обозначив эту точку xA+i и заменив h на h + 1, перейдем к п. 4 алгоритма. Такое изменение алгоритма не уменьшит, а в большинстве случаев значительно увеличит объем вычислительной работы на каждом шаге алгоритма. Закономерностей, указывающих на уменьшение числа шагов или на повышение точности получаемых при этом приближенных решений, не выявлено.
Установим теперь достаточные условия сходимости схемы метода вектора спада.
Теорема 3.1. Если функция f (х), определенная на дискретном множестве М, удовлетворяет следующим условиям;
/ (х) ограничена снизу на М, т. е. f Qc) ^ с, где с = const, для всех точек х £ М;
| /(*') —/ М | ^ 6, где 6— const, для любых точек, х' и х" из М таких, что /(х')=й=/(х"),
то при любом выборе начального приближения х°£ М, величины радиуса г>0 и последовательности {т^, ..., г^ вычислительный процесс по методу вектора спада сходится за конечное число шагов, не пре
} U°^ — с вышающее величины .
Доказательство теоремы не представляет затруднений: для элементов последовательности {/ (xh)lh = 0, 1, ... }, получаемой в результате вычислений по описанному выше алгоритму, справедливы неравенства
f(x°)>f(x1)> ... >t^>t^>
из которых следует
/(х0)— с>Н^
где Н — число шагов алгоритма.
Таким образом, Н ^ ^ ^ ^ ° ' что и требовалось доказать.
Очевидно, что в том случае, когда функция / (х) задана на некотором конечном множестве, выполняются оба условия теоремы, и, следовательно, вычислительный процесс по методу вектора спада будет конечным. Если же решается задача ДО, целевая функция которой не удовлетворяет условиям теоремы 3.1, то можно применять
описанный выше алгоритм, введя в него какой-либо дополнительный признак окончания вычислительного процесса, например достижение некоторого наперед заданного числа шагов алгоритма. Кроме того, получая на каждом шаге алгоритма соответствующее значение целевой функции, можно оценивать его с точки зрения определенных предъявляемых к нему практических требований и остановить вычислительный процесс при их выполнении.
Если задача оптимизации решается в АСОД или АСУ, функционирующих в реальном масштабе времени, и для работы алгоритма может быть выделен лишь фиксированный промежуток времени I, то, естественно, точность приближенного решения, получаемого по алгоритму, будет в большой мере зависеть от величины t. При условии, что время решения оптимизационной задачи не лимитировано, а функция / (х) удовлетворяет лишь первому условию теоремы 3.1, при реализации метода вектора спада может возникнуть следующая ситуация: lim / (xft) = const. В этом случае для достаточно больших значений индекса h элементы последовательности
f^xh+\ f(xh+h, (3.1)
лишь ненамного отличаются друг от друга, и значения функции / (х) в точках х\ х^1, ...в определенном смысле можно считать «приближенными» локальными минимумами функции / (х), на одном из которых следует остановить вычислительный процесс по методу вектора спада.
Описание общей схемы метода вектора спада необходимо еще дополнить следующим возможным случаем: локальное решение х рассматриваемой задачи ДО, полученное в результате применения предложенного выше алгоритма, не удовлетворяет некоторому заданному дополнительному критерию (например, критерию, устанавливающему максимально допустимое отклонение локального минимума от глобального). Для такого случая можно предложить несколько вариантов поиска других приближенных решений задачи. Они состоят в следующем.
Во-первых, выбрав точку х как новое начальное приближение и увеличив первоначально заданную величину радиуса г, следует продолжить вычислительный процесс по алгоритму до получения других приближенных решений задачи, которые, очевидно, будут ближе к глобальному (по значению целевой функции), чем х. Однако при больших значениях радиуса г процесс вычислений по методу вектора спада может существенно усложниться.
Во-вторых, исходя из точки х и увеличив величину радиуса г можно осуществить лишь один шаг алгоритма для получения точки х' удовлетворяющей неравенству / (х') < / (х). Затем следует вернуться к первоначальной величине радиуса и продолжить вычислительный процесс по алгоритму.
В-третьих, не изменяя величины г, можно продолжить вычисления, исходя из некоторого другого начального приближения, х0' £ М, и 102
получить в результате локальное решение х', в общем случае отличное от х. В качестве х0' может быть выбрана, в частности, некоторая точка из Ом (х, г), в которой значение целевой функции больше, чем / (х). Переход в такую точку х0' обычно не влечет за собой большого объема дополнительных вычислений, хотя может привести к более точному решению задачи. В том случае, когда при реализации метода вектора спада предусматривается возможность вычислений на нескольких процессорах, работающих параллельно, общую схему метода можно дополнить еще двумя пунктами:
вычислительный процесс по алгоритму можно начать одновременно на разных процессорах, исходя из различных начальных приближений, а затем выбрать лучшее из полученных решений:
каждый (/г + 1)-й шаг алгоритма можно выполнять одновременно на разных процессорах, исходя из одной и той же точки х\ но работая с различными величинами (от гг до гт) радиусов рассматриваемых окрестностей; окончанием каждого шага можно считать получение хотя бы на одном из процессоров точки х^1 согласно п. 4.4 алгоритма.
В заключение параграфа необходимо отметить большой теоретический и практический интерес к вопросу о совпадении локального минимума функции / (х), определенной на некотором дискретном множестве Л4, с ее глобальным минимумом. Этот вопрос является многоплановым, его исследование, в частности, предполагает определение класса функций / и вида множества М, для которых он имеет положительное решение. С этой точки зрения важным является также изучение той или иной метрики, вводимой в множество М. Исследование этих проблем [8, 133, 134] позволяет во многих конкретных случаях применять для отыскания точного решения задач дискретного программирования методы локальной оптимизации, в том числе и метод вектора спада.
§ 2. ОСОБЕННОСТИ РЕАЛИЗАЦИИ ОБЩЕЙ СХЕМЫ МЕТОДА ВЕКТОРА СПАДА ПРИ РЕШЕНИИ ЗАДАЧ ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ РАЗЛИЧНЫХ ТИПОВ
Использование метода вектора спада при решении разнообразных задач целочисленного программирования подробно описано в книге 1137]. В данном параграфе мы кратко остановимся на особенностях реализации обшей схемы данного метода при решении целочисленных задач определенного типа.
Рассмотрим вопросы применения метода вектора спада для приближенного решения задачи ЦЛП, записанной в следующем достаточно общем виде: минимизировать функцию цели
при ограниченияхпри ограничениях7 to = Ё с.х,/=15 atj X] ^Ьь 1 = 1, /=17 to = Ё с.х,/=15 atj X] ^Ьь 1 = 1, /=1. > т,. > т,(3-2)(3.3)(3-2)(3.3)
при ограничениях
при ограничениях
7 to = Ё с.х,/=1
5 atj X] ^Ьь 1 = 1, /=1
7 to = Ё с.х,/=1
5 atj X] ^Ьь 1 = 1, /=1
. > т,
. > т,
(3-2)
(3.3)
(3-2)
(3.3)
xz ^ О, / = 1, ... , п,(3.4)
х,— целое, / = 1, ... , п.(3.5)
В качестве дискретного множества М возьмем множество Zn всех упорядоченных наборов из п целых чисел, расстояние между двумя произвольными элементами х = (хъ ..., хп) и у = (уь ..., уп) которого определим по формуле
п
р(я, у) = 2 1^7—у А-(3-б)
/=1
Замечание. В некоторых случаях целесообразно вместо функции (3.6) рассматривать в Z" в качестве метрики функцию р' (х, у) = = max | X/ — уД. Однако это принципиально не изменило бы после» 1^/^п дующее изложение.
В метрическом пространстве Zn расстояние между любыми двумя его точками равняется некоторому целому числу, а любая окрестность 0zn (х, г) состоит из точки х и всех точек множества Z\ расположенных от х на расстоянии, равном 1, 2, ..., [г] (И — целая часть числа г). Поэтому достаточно ограничиться рассмотрением окрестностей целочисленного радиуса.
Пусть G — множество допустимых решений рассматриваемой задачи, т. е. в данном случае это подмножество множества Zn, определяемое ограничениями (3.3) — (3.5). В соответствии с приведенным в § 1 определением в качестве вектора спада функции (3.2) относительно окрестности радиуса г рассмотрим определенную на Zn векторную функцию вида
гДеAz"(x) = (Д(х, х1), ..., А(х, х')},(3.7)
А (х, xft) = / (xfc) — f(x) = 2 с,^—х^ к = 1, ..., /,/=1
\хк!хк = (xf, ..., хкп\ к = 1, ...,/}= 0zn (х, г).
Заметим, что если окрестность Oz„ (х, г) содержит некоторую точку у = (уь ..., уп) вместе с противоположной точкой у' = (—уг ..., —у^), то значение компоненты Д (х, у) вектора спада Nzn (х, г) будет содержать информацию о поведении линейной функции / в обеих точках у и у', так как Д (х, у) = —Д (х, у). Это означает, что компоненту Д (х, у') вектора спада можно отдельно не рассматривать. Кроме того, из компонент вектора Д2П (х) следует выбрать лишь те, которые соответствуют точкам хк £ 0G (х, г), поскольку речь идет о поиске точки локального минимума на множестве G с: Zn. Если некоторой точке г 5 Oq (х, г) соответствует отрицательная компонента Д (х, г) вектора спада Д^л (х), то имеет место неравенство / (г) < / (х).
При реализации общей схемы метода вектора спада в случае решения задачи (3.2) — (3.5) в п. 4.2 алгоритма, предложенного в § 1, рас- 104
сматривается окрестность Ozn(xh, rk\ Координату X/ произвольной точки х этой окрестности можно выразить через соответствующую координату ее центра xh с помощью формул
[ x*j-Y Pi при / ^й, Xj = < к
I Xj при / £ {1, ... . »} \ to,
где со g {1, ..., n}, P/E{+ 1, — 1+ rk, — rfc} для всех / = I, ...,n,
S iP/l^s-
При выполнении п. 4.3 и 4.4 алгоритма компоненты вектора спада Д'* (х*) вычисляем по формуле
А (х\ х) = ^ CjPh
/€(о
причем для искомой точки х^1 £ О^х^1, r^ f) G должно выполняться неравенство А (х*, xW) < 0.
Установим достаточное условие сходимости метода вектора спада при решении задачи (3.2) — (3.5).
Теорема 3.2. Если все коэффициенты Cj, j = 1, ..., п, функции (3.2) неотрицательны, то последовательность построенная по алгоритму при любом выборе начального приближения х° £ G и радиуса г 2> 0, конечна и завершается точкой локального минимума функции f (х) относительно окрестности радиуса г. При этом число шагов алгоритма не превышает величины Р/ (х°), где Р — наименьшее общее кратное чисел ^> j = 1, ...> п, взятых из следующего представления
для ch j = 1, ...» п: cf = -J-, ah Pz — целые числа, р/ у= 0.
Эта теорема является следствием, непосредственно вытекающим из
теоремы 3.1. Действительно, если выполнены условия теоремы 3.2,
то для всех точек х ^G верно / (х) > 0, а для любых двух точек х\ х" £ G таких, что f (х') ^ f (х"), справедливо неравенство |/ (х') —
— ZMI^-p ’ Очевидно, что выполнены оба условия теоремы 3.1. Справедлива следующая оценка приближенных решений xh, h = 0,
.., полученных в результате применения метода вектора спада к задаче (3.2) — (3.5):
/(хй)>/(хЛ+1)>/(х*)>Нхл),
где х* — точное решение целочисленной задачи (3.2) — (3.5); хЛ — точное решение соответствующей задачи ЛП, т. е. задачи (3.2) — (3.4).
Для исследования алгоритма вектора спада при решении задач вида (3.2) — (3.5) средней и большой размерности был проведен машинный эксперимент на БЭСМ-6 (язык ФОРТРАН). Коэффициенты в условиях задач формировались при помощи датчика псевдослучайных чисел (назовем его датчиком I). Независимо друг от друга следующим образом выбиралась каждая из (тп + п + т) величин а^, ch Ьр. а^ и Cj — целые числа, равномерно распределенные на отрезке [—10, + Ю1; ^ — целые числа, равномерно распределенные на отрезке
тХп
V
1/ (А - Alimin
|/ -
—f ^’ilmax
^min
'max
?min* c
'max* c
10 X 20
10
34
481
13
83
0,64
3,27
20 X Ю
10
1
38
2
8
0,18
0,48
50 X Ю
10
1
10
2
3
0,18
0,43
50 X 50
10
89
221
26
44
11,4
37,7
50 X 100
3
514
631
92
125
208
266
100 X 50
3
51
230
21
48
13,2
74
100 X 100
4
' 178
690
37
136
101
344
100 X 200
2
526
899
137
150
802
825
[0,9 X и; 2,6 X nV При проведении эксперимента использовались определенные правила перебора точек в окрестностях; во всех примерах в качестве начального приближения принимался нулевой п-мерный вектор, радиус окрестностей выбирался равным 1.
Результаты машинного эксперимента приведены в табл. 5, где использованы следующие обозначения: т X п — размеры матрицы коэффициентов ограничений; v —• количество решенных задач; / (хЛ) — — / U°) | min и | / ^ — / (x°) |max — минимальная и максимальная абсолютная величина разности между полученным локальным минимумом функции / (х) и значением этой функции в точке х° среди решенных v задач данного размера; fmjn и imax — минимальное и максимальное число итераций, необходимых для получения локального решения одной задачи данного размера; *т1п и /тах — минимальное и максимальное время решения одной задачи.
С целью исследования эффективности алгоритма вектора спада для решения задач ЦЛП был проведен также машинный эксперимент по решению многомерных задач о ранце с целочисленными переменными, т. е. задач вида (3.2) — (3.5), в которых на коэффициенты наложены дополнительные условия: Cj > 0, а^ ^ 0, ^ > 0 для всех / = 1, ... ..., т и j = 1, ..., п. Тестовые задачи генерировались с помощью датчика псевдослучайных чисел (назовем его датчиком II), построенного на основе датчика псевдослучайных чисел, равномерно распределенных на отрезке [0, 1], который предложен Коробовым (см. [11]) Коэффициенты функции цели и матрицы ограничений выбирались из отрезков [—10, 0] и [0, 10] соответственно, а коэффициенты правых частей ограничений — из отрезка [0, 10 X п\ При проведении эксперимента использовалось правило перебора точек в окрестностях, основанное на случайном поиске. В качестве начального приближения во всех задачах выбирался нулевой n-мерный вектор.
Результаты счета приведены в табл 6, где т х п — размеры матрицы коэффициентов ограничений; г — радиус окрестностей; / (xz9 — найденное по алгоритму значение целевой функции; / — время решения задачи.
Проведенные исследования позволили сделать вывод о том, что метод вектора спада достаточно прост в вычислительном отношении и в ряде случаев имеет преимущества перед другими методами. Например,
тХп
Г
/ <^й)
t» с
тХп
Г
f иА
U с
5 X Ю
1
—14
—1,2
50 X 50
1
—20
3,58
2
—16
1,5
2
—20
3,62
3
—16
1,68
3
—36
14,68
20 X 20
1
—25
1,9
5 х 75
1
—932
8,9
2
—25
2,06
2
— 1235
22,14
3
—25
6,86
3
— 1333
236,22
5 X 30
1
— 108
1,70
75 X 75
1
—70
6,32
2
— 120
1,88
2
— 121
9,8
3
— 120
3,04
5 X ЮО
1
—395
5,8
30 X 30
1
—29
2,26
2
—463
13,3
2
—29
2,10
3
—473
98,26
3
—29
3,26
50 X ЮО
1
—40
6,2
,25 х 50
1
—30
2,74
2
—68
7,58
2
—38
3,16
100 X 100
1
—56
12,20
3
—39
22,34
2
—56
29,2
3
—56
137,76
в рамках современных АСУ и АСОД для решения большинства воз» пикающих задач может быть выделен лишь некоторый ограниченный промежуток времени при ограниченном объеме используемой памяти ЭВМ. В этих условиях целесообразно применение методов, позволяющих находить практически приемлемые решения в допустимые сроки. К таким методам можно отнести и метод вектора спада. При его использовании представляется возможным прерывание итерационного процесса по окончании некоторого h-го шага в случае, когда время, выделенное для нахождения решения задачи, исчерпано. В этом случае приближенным решением задачи можно считать допустимую точку xh, найденную на /?-м шаге. При этом имеет место следующая оценка погрешности: / (xh) ^ f (х*) ^ / (хл), где х* — точное решение задачи ЦЛП, а хл — точное решение соответствующей задачи ЛП. Если после нахождения локального решения задачи остается еще некоторый промежуток времени, то можно улучшить это решение, продолжая вычислительный процесс при измененных параметрах метода (например, при другом начальном приближении, увеличенном радиусе рассматриваемых окрестностей и др.)
Результаты машинного эксперимента показывают, что метод вектора спада позволяет получать достаточно хорошие решения задач ЦЛП за приемлемое время и при сравнительно небольших объемах вычислений по сравнению с другими известными методами.
Метод вектора спада успешно применяется и для решения задач ЦЛП с булевыми переменными, которые можно представить в следующем общем виде: минимизировать функцию (3.2) при ограничениях (3.3) и
х^О, 1}, / = 1, , п. (3.8)
В качестве дискретного множества Л1 рассмотрим в этом случае подмножество Вп всех точек метрического пространства 7? удовлет-
воряющих условию (3.8). Это подмножество является метрическим пространством с той же метрикой (3.6), которая была задана во всем пространстве 7?.
При реализации общей схемы метода вектора спада для решения задачи вида (3.2), (3.3), (3.8) в п. 4.2 алгоритма, предложенного в предыдущем параграфе, рассматриваем окрестность Овп (xh, rkY Координаты произвольной точки х = (хъ ..., хп) этой окрестности можно выразить через координаты точки xh следующим образом:
( 1 — X/ при / Е со,
I X/ при / Е П, • .. , и} \ со,
где со ^ {1, ..., п] и мощность множества со не превышает величины г.
При выполнении п. 4.3 и 4.4 алгоритма компоненты вектора спада А^ ^ вычисляем в этом случае по формуле
A (х\ х) = 2 Cj — ch/Cto° /€о\(00
где со0 — множество тех значений индекса / Е со, для которых х? = 0; со0 ^ со.
Имеет место следующая теорема о сходимости алгоритма вектора спада в применении к задаче (3.2), (3.3), (3.8).
Теорема 3.3. При любом выборе начального приближения х° Е G (G— множество точек, удовлетворяющих ограничениям (3.3) и (3.8)) и радиуса г>0 последовательность приближений (х^), определяемая по алгоритму, сходится к локальному решению задачи (3.2), (3.3), (3.8) за конечное число шагов, не превышающее величины
WW-c),
где Р определяется так же, как и в теореме 3.2, а
О, если ct ^ 0 для всех / = 1, ... , п, с= ^ ei в противном случае»^'^
. ju-
J~— множество тех значений индекса /Е {1» •••» ^» для которых с,- < 0.
Доказательство этой теоремы аналогично доказательству теоремы 3.1. Это связано с тем, что множество Вп конечно и, следовательно, функция / (х), определенная на подмножестве G а Вп, удовлетворяет условиям теоремы 3.1. Действительно, очевидно, что для всех точек х Е G f (х) ^ с, где с — величина, определяемая формулой (3.9), и для всех х', х" Е G таких, что / (х') =/=/ (х") имеет место неравенство |/(О-/(х")|>1.
С целью сравнительного исследования метода вектора спада, аддитивного алгоритма Балаша [12] и метода W последовательного ана-
Размерность задач (тХп>
Счетное время решения 10 задсЧ,
Число задач, решенных точно методом вектора спада
Алгоритм Балаша
Алгоритм метода W
Алгоритм метода вектора спада
20 X Ю
38
л 00
19
8
50 X Ю
105
202
28
8
100 X ю
241
£94
32
9
10 X 50
42
42
37
10
50 X 50
190
448
’85
10
10 х юо
62
55
57
10
лиза и отсеивания элементов возможных вариантов решения задач ДО 120, 137] был проведен эксперимент на БЭСМ 6 (язык ФОРТРАН) по решению тестовых задач вида (3.2), (3.3), (3.8), условия которых формировались с помощью датчика 1 псевдослучайных чисел. Для решения задач алгоритмом вектора спада радиус окрестностей выбирался равным 1 или 2, а в качестве начального приближения во всех примерах выбирался нулевой элемент из множества Вп. Некоторые результаты машинного эксперимента по решению десяти задач каждого размера приведены в табл. 7. Следует отметить, что во всех задачах, с помощью алгоритмов Балаша и W были получены оптимальные решения. Найденные по алгоритму вектора спада локальные решения в 55 задачах из 60 совпали с глобальными (см. последний столбец табл. 7). В остальных пяти задачах при г = 3 также были получены глобальные решения. Время решения десяти задач размером (20 X 10), (50 X 10) и (100 х 10) при г ~ 3 составило соответственно 23, 34 и 38 с.
В § 1 гл. 12 приводятся данные о результатах решения тестовых задач вида (3.2), (3.3), (3.8) размером (т X и) = (100 х 100) с разными интервалами изменения правых частей.
Остановимся кратко на особенностях решения методом вектора спада задач дискретного программирования со смешанными (целочисленными и булевыми) переменными. Рассмотрим следующие три метрических пространства: пространство Zn, точками которого являются всевозможные упорядоченные наборы (хь ..,хп) = х из п целых чисел; пространство В1, состоящее из элементов вида (yv ..., у^ = у, где У/ Е {0, 1}, / = 1, ..., /; пространство D^1, множество точек которого является декартовым произведением множеств Zn и В1 фп^ = Zn X X В1), т. е. состоит из всевозможных пар вида 2 = (х, у), где х £ Z\ у £ В1. Метрики в пространствах Zn и В1 определим по формулам, аналогичным (3.6), и обозначим их рх и р2 соответственно. Пространство Dn*^1 рассмотрим с метрикой
Рз (*'> г^ = max (Pi (^, А Р2 МЛ У"Л (ЗЛО)
где г' = (х', /), г" = (х". у") g Dn+l; х', х" £ Zn;y', у” 6 В1.
Для произвольного фиксированного радиуса г > О имеет место следующее соотношение:
Ozn (х, г) х OBi (у, г) - ODn4-i (z, г),(3.11)
где x^Z"; y€Bz; г = (х, у) € Dn+Z.
Если речь идет о решении задачи вида
min {/(г) = Л (х) + U(^ = (х, y^G G Dn+l, x£Zn, у£Bz}, то вектор спада функции / (г), определенной на D"^, относительно окрестности некоторого радиуса г 2> О будем понимать как определенную на Оп"^ векторную функцию вида
ad«+z(z) = {А (г, г1), .А(2, 2Р)},(3.12)
где z = (х, у), zk = (х\ ук>> £ O^t (2, г), А (2, 2^) - / (2^) — / (2), \zk !к = = 1, ..., р^ =ODn^.i(z9 г), причем, очевидно, что А (2, 2^) = А(х, хАг) + + А (у, у6), где А (х, хк) и А (у, ук) — компоненты векторов спада А^п (х) и А^/ (у) соответственно.
Рассмотрим задачу ЧЦЛП: минимизировать
Цх, у) = £ CjXj + 5 ^иУк(3.13)
/==1/г=1
при ограничениях
£ ацх,+ S tiky^bi, 1=1,(3.14)
/=16=1
Х/^0, /=1, ...,п,(3.15)
X/—целое, /=1, .гц(3.16)
у^>0, к=\,...Д(3.17)
Метод вектора спада можно применить к данной задаче, приведя ее предварительно к дискретному виду, т. е. заменив непрерывную ее часть дискретным вариантом. С этой целью каждый интервал изменения переменных Уь к = 1, ..., /, длиною в одну единицу, разобьем на у (у — целое положительное число), равных отрезков. (Заметим, что чем больше у, тем более высокой можно ожидать точность решения задачи). В результате дискретизации переменных ук> к =1, ..., /, приходим к следующей задаче: минимизировать функцию (3.13) в области G, определяемой условиями (3.14) — (3.16) и
^б{о, -^, -у, ...}, 1г = 1и (3.18)
Метод вектора спада применяется для решения задачи (3.13)— (3.16), (3.18). При этом аналогично тому, как это было сделано для решения задачи со смешанными (целочисленными и булевыми) переменными, вводятся в рассмотрение три метрических пространства: 7?9 Т1 и
^. Здесь Т1 — пространство, элементами которого являются точ- ки вида у = 0/!, .... у^, для которых yk € |о,у , у, ...|, к = 1, ..., /; Р1^1 = Zn X т — пространство элементов вида г = (х, у), где х £ £ Zn, у £ Т1. Метрики в пространствах Zn и Т1 вводятся по формулам, аналогичным (3.6), а в пространстве Р^1 — по формуле, аналогичной (3.10). Для произвольного радиуса г>0 справедливо соотношение, аналогичное (3.11). Заметим, что в пространстве Р1"^1, в отличие ог Zn, целесообразно рассматривать окрестности радиуса г, кратного — е Вектор спада функции / (х, у), заданной на Р1^, относительно окрестности радиуса г определим по формуле, аналогичной (3.12).
Справедлива следующая теорема.
Теорема 3.4. Если все коэффициенты с^ / = 1, ..., п, и db к = 1, ... .., /, целевой функции f (х, у) задачи (3.13) — (3.17) неотрицательны, то последовательность ^х\ у^, построенная по алгоритму вектора спада, при любом выборе начального приближения (х°, у0) из допустимой области задачи и радиуса г> 0 сходится к локальному решению задачи (3.13) — (3.17) за конечное число шагов, не превышающее величины Р/ (х°, у0), где Р—наименьшее общее кратное чисел Pi, ..., Рп, у0ь ...,y0z, взятых из следующего представления для Cj и ^: с$ = а/Р/’ du = 66/ /6^; а/# Ру, bk> 0^ — целые числа, pz 0, 0А у= 0 (/ = 1, ..., п; к = = 1, ..., /)•
Полученное локальное решение задачи (3.13) — (3.16), (3.18) является приближенным решением исходной задачи (3.13) — (3.17).
Задачу (3.13) — (3.17) можно рассматривать как предельный случай задачи (3.13) — (3.16), (3.18), когда шаг дискретности ~ стремится к нулю. Поэтому, если в некотором случае задача (3.13) — (3.16), (3.18) не имеет допустимых решений, а (3.13) — (3.17) — имеет, следует уменьшить шаг дискретности в задаче (3.13) — (3.16), (3.18) и проверить, не пусто ли множество допустимых решений вновь полученной задачи.
МЕТОД НАПРАВЛЯЮЩИХ ОКРЕСТНОСТЕЙ
ДЛЯ РЕШЕНИЯ ВЫПУКЛЫХ ЗАДАЧ ЦЕЛОЧИСЛЕННОГО
ПРОГРАММИРОВАНИЯ
Рассмотрим итерационный метод приближенного решения целочисленных задач выпуклого программирования, в основу которого положены идеи двух известных методов — метода возможных направлений [52], разработанного для решения задач выпуклого программирования, и метода вектора спада.
В работе [831 идея метода возможных направлений Зойтендейка перенесена на случай точного решения общей задачи выпуклого программ ирования с дополнительным требованием целочисленности всех переменных:
(3.19)(3.19)min {/(x)/xgG),
(3.19)
(3.19)
где G — пересечение некоторого выпуклого подмножества А ^ Rn и множества Zn cz /?п; / (х) — действительная выпуклая функция, определенная на выпуклом множестве А. Кроме того, в работе [831 предложен метод приближенного решения задачи (3.19), названный методом направляющих окрестностей. Прежде чем перейти к описанию этого метода, введем дополнительно некоторые определения.
Рассмотрим множество
Va>i(cc^s)^Zn}.
Нетрудно показать, что любую точку у ^7? (у =7= х, х — некоторая фиксированная точка в Z") можно представить формулой
у = х + Xs,(3.20)
где s £ S, X — целое положительное число, и это представление единственное. Таким образом, для произвольной точки х £ Zn множество S cl Zn позволяет осуществить переход из точки х в любую другую точку у множества Zn с помощью формулы (3.20).
Элемент s С S назовем возможным направлением в точке х g G, если х + s g G.
Элемент s g S назовем перспективным направлением в точке х £ G, если / (х + s) < f (х).
Возможное направление s g S в точке х ^G, одновременно являющееся и перспективным, назовем подходящим.
Направляющей окрестностью Sr радиуса г > 0 назовем подмножество тех элементов их S, которые принадлежат окрестности Ozn (х, г), где х — нулевой элемент в Zn.
Метрику в множестве Zn введем согласно формуле (3.6). Тогда Sr =
s/s £ S, У | s, | ^ г?. Очевидно, что любую точку у £ Oz„ (х, г) в цент
ром в произвольной точке х £ Zn можно представить в виде у = х + + Xs, где s С Sr> X ^ 0, X — целое. Но в окрестности Oz„ (х, г + 1) есть точки, не представимые с помощью направлений из 8Г.
^-Вектором функции f в окрестности Oz„ (х, г) произвольной точки х С G фиксированного радиуса г > 0 назовем векторную функцию вида (А (х, s1), ..., А (х, sp)}, где А (х, s^) = f (х + s^) — / (х), sr £ Sr= = {s1, ..., S?}, k = 1, ..., p.
Вычисление компонент А-вектора в некоторой окрестности Ozn (х, г) позволяет в множестве 8Г выделить подмножество перспективных направлений в точке х $ G (этим направлениям соответствуют отрицательные компоненты А-вектора). Поиск подходящего направления следует осуществлять в этом подмножестве. Если для всех компонент А- вектора, соответствующих возможным направлениям в точке х, выпол-
няется неравенство Д (х, s^) ^ 0, т. е. в направляющей окрестности S, нет подходящих направлений в точке х, то х — локальный минимум f на множестве G относительно окрестности радиуса г.
* Метод направляющих окрестностей для поиска локального решения выпуклой задачи целочисленного программирования (3.19) состоит в следующем.
Пусть заданы начальное приближение х° £ G и максимальная величина радиуса rmax > 0.
Алгоритм
Полагаем h = 0.
Полагаем г = 1 и So = 0.
Если Sr \ So ^ 0, то согласно некоторому правилу или случайно выбираем направление s g S, 4 So, которое включаем затем в множество 50, и переходим к п. 4. В противном случае переходим к п. 9
Проверяем, является ли s перспективным направлением в точке х^, т. е. выполняется ли неравенство Л (х^, s) < 0. Если да, то переходим к п. 5. алгоритма. В противном случае — к п. 3.
Длину шага Xh из точки xh в направлении sh определяем по формуле
Хй -■= max VMxh +- Xsh $ G, для всех ц ^ 1 Цхп + p,sA) ^ f (xh + XsA)}.
Если Хй = 0, то st не является возможным направлением в точке х‘. В этом случае переходим к п. 3 алгоритма.
Если Xh = + оо, то решение задачи не ограничено и работа по алгоритму заканчивается.
Если Xh < + оо, то sh — подходящее направление в точке х11. Вычисляем х^^1 = xh + К^ и, заменив h на h + 1, переходим к п. 2.
Если h = 0, то при г < rmax переходим к п. 3, заменяя г на г + 1, а при г = ггпах х° является точкой локального минимума функции / (х) на G относительно окрестности радиуса ггпах, и работа по алгоритму заканчивается.
Если h ^ 1, то xh — точка локального минимума функции / (х) на G относительно окрестности радиуса г. При г = rmav работа по алгоритму заканчивается. Если же г < rmax, то заменяем г на г + 1 и переходим к п. 3.
Справедлива следующая оценка приближенных решений xh (h = = 0, 1, ...), получаемых в результате применения алгоритма:
Hx^>Hxh+h>fw>Hx%
где х* —точное решение задачи (3.19); хн —точное решение соответствующей непрерывной задачи выпуклого программирования, полученной из задачи (3.19) исключением условий целочисленности переменных.
Достаточные условия сходимости описанного алгоритма при решении задач вида (3.19) сформулированы в теореме 3.1.
В том случае, когда по методу направляющих окрестностей получено локальное решение xh задачи (3.19), не удовлетворяющее некоторому
дополнительно заданному критерию, для отыскания других приближенных решений задачи необходимо или увеличить rmax, или выбрать другое начальное приближение х°. В частности, таким дополнительным критерием может служить максимально допустимое отклонение полученного приближенного решения от точного.
Рассмотрим случай, когда / (х) —линейная функция. В такой ситуации при определении А-вектора достаточно рассмотреть не множество Sr, а одно из его подмножеств вида
S* {s/s6Sr, для всех s^S^— s) £ S;, V е *(— $)€S*}, содержащее лишь половину точек из 8Г. Так определенный А-вектор дает полное представление о поведении линейной функции во всей окрестности 0zn (х, г) любой точки х £ G и о характере изменения ее значений по всем направлениям в точке х, принадлежащим Sr. При фиксированном радиусе г А-вектор является постоянным для всех точек множества G. Таким образом, под А-вектором линейной функции / (х) == ^ С/Х, в некоторой окрестности Ozn (х, г) произвольной точки /=1
х ^.G будем понимать вектор {Д (s1), ..., Д (s')}, где
Д($А) = / (X + S6) —f (X) = /(?) = £ С,^, k - 1, . . . , Т,
s; = \sk!k = 1, ... , т}.
Достаточное условие сходимости метода направляющих окрестностей при решении задачи вида (3.19) с линейной целевой функцией сформулировано в теореме 3.2.
Результаты машинного эксперимента по применению метода направляющих окрестностей для решения задач ЦЛП общего вида и многомерных задач о ранце с целочисленными переменными приведены в табл. 8 и 9 соответственно. В табл. 8 приведены результаты эксперимента, проведенного на БЭСМ-6, причем коэффициенты условий тестовых задач были сформированы на основе датчика I псевдослучайных чисел, а обозначения те же, что и в табл. 5. Данные табл. 9 получены на ЭВМ М-4030 при решении задач, которые генерировались с помощью датчика II; обозначения те же, что и в табл. 6.
Метод направляющих окрестностей можно применять и для приближенного решения задач ЧЦЛП (3.13) — (3.17). Возможны два подхода. Первый основан на процедуре расчленения множества всех переменных исходной задачи на два подмножества: целочисленных и непрерывных, причем сначала изменяются переменные в первом подмножестве, а затем — во втором. Это расчленение позволяет исключать то одно, то другое подмножество переменных из задачи и таким образом осуществлять итерационную процедуру, состоящую в приближенном решении серии подзадач меньшей размерности по сравнению с исходной задачей. Решаемые подзадачи содержат то же число ограничений, что и исходная задача, и являются либо обычными задачами ЛП, либо полностью целочисленными линейными задачами. При реше-
т х п
V
If txh) — ~f ^°)/min
If (xh) - —f O^Vmax
^min
'max
гт1п’ c
zmax- c
10 X 20
10
34
491
4
48
1,12
8,9
20 X Ю
10
1
54
1
8
0,27
1,46
50 X Ю
10
1
10
1
2
0,26
0,97
50 х 50
10
72
246
11
28
17,4
67,4
50 X ЮО
3
442
535
50
50
169
234
100 X 50
3
442
535
50
50
170
246
100 X юо
4
231
520
50
50
206
1000
100 X 200
2
496
826
50
50
540
780
Таблица 9
m X n
r
U c
m x n
r
' (X^)
c
5 X 10
1
—14
1,7
50 X 50
1
—36
4,6
2
—16
1,4
2
—36
4,58
3
—16
1,6
3
—36
9,24
20 X 20
1
—25
2,3
5 X 75
1
—1168
2,58
2
—25
2,02
2
—1214
3,34
3
—25
4,56
3
— 1218
18,02
5 X 30
1
—120
1,62
75 X 75
1
— 101
11,8
2
— 120
2,02
2
—118
18,78
3
—120
2,5
5 X 100
1
— !59
3,48
30 X 30
1
—25
2,8
2
—478
5,48
2
—27
3,36
3
—488
90,42
3
—29
6,68
50 x 100
1
— 104
9,58
25 x 50
1
—37
3,26
2
— 109
12,32
2
—37
3,38
100 x 100
1
—71
4,02
3
—39
21,34
2
—71
4,68
3
—71
31,44
нии задач ЛП рекомендуется использовать метод возможных направлений Зойтендейка [52], а при решении задач ЦЛП — метод направляющих окрестностей.
Второй подход состоит в преобразовании исходной задачи в задачу дискретного программирования со смешанными переменными (см. предыдущий параграф), а затем в применении к полученной задаче метода направляющих окрестностей.
ПРИМЕНЕНИЕ МЕТОДА ВЕКТОРА СПАДА
В ДЕКОМПОЗИЦИОННЫХ СХЕМАХ РЕШЕНИЯ ЗАДАЧ ЦЛП
В настоящем параграфе идеи методов декомпозиции, предложенных для решения непрерывных линейных задач [73, 178], распространяются на полностью и частично целочисленные задачи [132]. Получаемые при этом координирующие задачи являются задачами дискретного
программирования, и для их решения применяется метод вектора спада с направленным поиском в окрестностях.
Рассмотрим следующую задачу ЦЛП с блочно-диагональной структурой ограничений:
шах 2 ^^(3.21)
/=1
2 А^^Ь,(3.22)
/=1
в*х ^а\(3.23)
d> 0, хЧ Z\ i = 1, ... , т,(3.24)
где А1 и В1 — матрицы размера т X rij и m,j X nf соответственно, состоящие из неотрицательных элементов; d— ^-мерный вектор; b — неотрицательный /77-мерный вектор; d) — неотрицательный /Иу-мерный вектор; к —^/-мерный вектор переменных (/ = 1, ..., т).
Воспользовавшись принципом декомпозиции Корнай — Липтака, сведем задачу ЦЛП (3.21) — (3.24) к т задачам ЦЛП меньшей размерности и одной дискретной координирующей задаче с простыми ограничениями. Для этого введем в рассмотрение /тг-мерные векторы у1 = = (Уь •••> Ут)> 1 ~ Ь •••> т» удовлетворяющие условиям
S у'^Ь,(3.25)
/=1
t/>0, / = 1,(3.26)
Для каждого / = 1, ..., т рассмотрим подзадачу следующего вида: найти
// (У7) = max d х?(3.27)
при ограничениях
Л'х'^,(3.28)
B'x^d!,(3.29)
? > О,(3.30)
Vez^.(3.31)
Если предположить, что любой столбец матриц А1, В* содержит хотя бы один ненулевой элемент, то каждая из т подзадач вида (3.27) — (3.31) имеет оптимальный план при любых значениях у-, удовлетворяющих (3.25) и (3.26). Введем дополнительно обозначения:
N = 1 X т, у = (yj, . . . , Ут, У1, . . . , Ут, . . . , Уь . . . , Ут),
i=\
Задача (3.21) — (3.24) эквивалентна задаче отыскания
max У7 (у)(3.32)
при ограничениях (3.25), (3.26).
Таким образом, исходная задача ЦЛП (3.21) — (3.24) размерности [ m + V тД X пД расчленяется на т подзадач ЦЛП вида \/=1 / \/=1 /
— (3.31) меньшей размерности (т + тД X п} и одну координирующую задачу (3.32), (3.25), (3.26) размерности т X (т X т).
Будем рассматривать вектор у как точку в дискретном множестве Z\ определяемом следующим образом:
2 =^У = ^Ух, . . ., Ут» У\> . . • > Ут» • • • > Ух» • • - , Ут^у^ —
= апух + • • • a\tl.qnh / = 1, . . . , т; i = 1, . . . , т\, (3.33)
где аД. — элемент матрицы АД расположенный на пересечении /-й строки и к-то столбца; qt (/ = 1, 2, ..., nA — целые числа.
Рассмотрим координирующую задачу (3.32), (3.25), (3.26) с дополнительным условием
(3.34) Эта задача дискретного программирования эквивалентна исходной задаче ЦЛП (3.21) — (3.24). Для решения задачи (3.32), (3.34), (3.25), (3.26) предлагается воспользоваться методом вектора спада [137]. Пусть O~N ^У> г) — окрестность точки у радиуса г в дискретном множестве 7?. Как известно, наиболее трудоемкой процедурой в методе вектора спада является поиск новой точки у £ 0~7N ^у, г), для которой F (у) > F (у) и выполняются ограничения (3.25), (3.26). Для того чтобы существенно уменьшить количество просматриваемых точек окрестности O~N (у, гД в которых необходимо вычислить значение функции F, предлагается придерживаться правила, основанного на следующих эвристических соображениях.
Пусть задан вектор у, состоящий из векторов у1, / = 1, ..., т, которые удовлетворяют ограничениям (3.25), (3.26) и являются правыми частями в ограничениях (3.28) подзадач вида (3.27) — (3.31). Если решать эти подзадачи одним из методов отсечения, то в результате получим следующие эквивалентные задачи ЛП:
max cJxf(3.35)
при сграничениях
AJx? <: уД(3.36)
B'x'^d?,(3.37)
D'x'^p8,(3.38)
х'>0,(3.39)
где D' — матрица, ар1 — вектор, соответствующие вводимым ограничениям (3.38), / 5 {1, .... т).
Предположим, что одновременно с решением х; прямой задачи (3.35) — (3.39) найдено и решение двойственной к ней задачи. Обозначим и' = (и{, .... Ыт) — вектор двойственных переменных, соответствующих ограничениям (3.36), и составим вектор
V = (Uj, . . . , Wrn, ^1, • ♦ • j linn • • * . ^Ь • » ■ , ^т).
Следует отметить, что для задачи ЛП (3.27) — (3.30), соответствующей задаче (3.27) — (3.31), вектор и' является субградиентом функции /) (у/), а вектор и — субградиентом функции F (у). В связи с этим будем и в дискретной задаче рассматривать вектор у как преимущественное направление, в котором производится поиск новых точек по методу вектора спада. Поэтому при решении задачи (3.32), (3.34), (3.25), (3.26) на каждом шаге алгоритма вектора спада будем в первую очередь отыскивать такие точки у 6 O~N (у, г), которые удовлетворяют системе ограничений
I
S иЦу1 — ^>0,
(3.40)
/=1
S "у^ь.
(3.41)
/=1
/>0, /= 1,, т.
(3.42)
Эту систему удобно представить в виде задачи поиска
максимума функ-
НИИ
(3.43)
/=1
при ограничениях
/=1
(3.44)
у7 0, / — 1, ... , т,
(3.45)
У^О^Ду, г).
(3.46)
где максимизация целевой функции (3.43) осуществляется до тех пор, пока не будет выполнено неравенство (3.40). Задача (3.43) — (3.46) расчленяется на т тривиальных подзадач с одним ограничением типа (3.44): найти точку у 6 O-zN (у, г), которая максимизирует функцию
5^(^-У<)(3.47)
/=1
при ограничениях
^У1^Ьи(3.48)
/=1
^>0, /= 1. .... т,^>0, /= 1. .... т,(3.49)(3.49)
^>0, /= 1. .... т,
^>0, /= 1. .... т,
(3.49)
(3.49)
/ — 1, ... , т.
Опишем алгоритм вектора спада применительно к задаче (3.32), (3.34), (3.25), (3.26).
Алгоритм
Выберем начальное приближение у0, которое состоит из векторов у/0, / = 1, ..., т, являющихся правыми частями в ограничениях (3.28) подзадач вида (3.27) — (3.31), и величину радиуса г = шах Va^H = = 1, ..., т; к = 1, ..., пу; / = 1, ..., т}. Затем, полагая у’ = у'0, / = = 1, ..., т, решаем т подзадач ЦЛП (3.27) — (3.31) одним из методов отсечений. При этом получаем векторы целочисленных переменных х/° (/ = 1, ..., т), векторы двойственных переменных uzo (/ = 1, ..., т), соответствующие ограничениям (3.28), и значениям функций цели подзадач /у (у/°), / = 1, ..., т.
Полагаем h = 0.
Пусть к началу (Н + 1)-го шага алгоритма определены следующие величины:
вектор у\ который состоит из векторов yi\ j = 1, ..., т, являющихся правыми частями в ограничениях (3.28) подзадач вида (3.27) — (3.31);
решения х*\ / — 1, ..., т, локальных задач (3.27) — (3.31).
векторы двойственных переменных и^^ / = 1, ..., т, соответствующие ограничениям (3.28).
Если O~N ^у\ г) = 0, то работа по алгоритму заканчивается. В этом случае является локальным решением задачи (3.32), (3.25), (3.26), (3.34), а соответствующий вектор х\ состоящий из векторов хх\ ..., хтА, является локальным решением задачи (3.21) — (3.24). В противном случае отыскивается вектор у 6 0^ ^у\ г), который состоит из векторов у/, / = 1, ..., т, удовлетворяющих ограничениям (3.41), (3.42) и
(3.50) 7=1
Если найден вектор у £ O~N (у\ г), удовлетворяющий ограничениям (3.41), (3.42), (3.50), то заменяем 0^ (у\ г) на О-^ Uj\ г) \ у и переходим к п. 3.3. В противном случае переходим к п. 3.5.
Полагая у = у для / = 1, ..., т, решаем т подзадач ЦЛП (3.27) — (3.31) одним из методов отсечений. При этом получаем векторы целочисленных решений х’ (/ = 1, .., т), векторы двойственных переменных w (/ = 1, ..., т), соответствующие ограничениям (3.28), и значения функций цели подзадач /; (у).
Если
/ = !
то полагаем yiW = y\ xlw = x;, u1'^ = и1 и заменяем h + 1 на h + 2. Переходим к п. 3.
Если О~Л (у\ г) = 0, то работа по алгоритму заканчивается, поскольку в этом случае yh является локальным решением задачи (3.32), (3.25), (3.26), (3.34), а соответствующий вектор х\ состоящий из векторов х1к, ..., хтк, является локальным решением задачи (3.21)— (3.24). В противном случае выбираем произвольно вектор у £ 0-^ ^ук, г), заменяем 0~N (ук, г) на 0~N (ykt г) \ у и переходим к п. 3.3.
Алгоритм описан полностью.
Изложенный выше декомпозиционный алгоритм можно применить для решения задачи (3.21) — (3.24) и в более общем случае, когда на параметры задачи не налагаются условия неотрицательности. В этом случае, для того чтобы гарантировать существование допустимого решения локальных задач, вводятся штрафы. Тогда для каждого / g С {1, ..., т} вместо задачи (3.27) — (3.31) следует рассматривать задачу поиска
ЬкУ1) = maxl^x7 — К^cod(3.51)
при ограничениях
Дх1’ — Е^Х у\(3.52)
Bjx!X(3.53)
х7, ^ > 0,(3.54)
x^Z^,(5.55)
где К — достаточно большой положительный штрафной коэффициент; оу = (<о{, ..., torn), j = I, ..., т,— векторы штрафных переменныхj Е1 — единичная матрица размерности т X т. В качестве координирующей рассматривается задача поиска
max £ // (У7)(3.56)
при ограничениях
S У1ХЬ»(3.57)
/==1 - VXyXY\ / = L ... , т,(3.58)
и' /= 1, т,(3.59)
где Y1 — /п-вектор с достаточно большими положительными компонен- тами.
Очевидно, что если исходная задача (3.21) — (3.24) имеет конечное оптимальное решение, то она эквивалентна задаче (3.56) — (3.59), где fj W определяется путем решения задачи (3.51) — (3.55).
II. Рассмотрим задачу ЧЦЛП
max\cx + dy^(3.60)
при ограничениях
Ах + Ву^Ь,(3.61)
х>0, у>0,(3.62)
x£Zn\(3.63)
где с, х С Rni; d, у С Rn2; А — (m х nJ-матрица; В — (т х ^-матрица; b £ Rm.
Для решения задачи (3.60) — (3.63) применим следующую схему декомпозиции [273]. Зафиксируем целочисленный вектор х> 0 и рассмотрим задачу ЛП вида
max Uy — К ^ шЛ(3.64)
при ограничениях
By — Ew ^b — Ах,(3.65)
у. w > О,(3.66)
где К — достаточно большой положительный штрафной коэффициент; w = (t^, ..., 12)^ — вектор штрафных переменных; Е — единичная матрица размерности т X т. Следует заметить, что задача (3.64) — (3.66) имеет допустимое решение при любом целочисленном векторе х» Двойственная к (3.64) — (3.66) задача имеет вид
min ф—Ах^и(3.67)
при ограничениях
B'u^d,(3.68)
О^и^КЕ(3.69)
где UR'\ 1 = (1, ..., 1).
Пусть и* (х) — оптимальное решение двойственной задачи (3.67)— (3.69). Рассмотрим следующую задачу целочисленного программирования: •
max{№ (х)=сх + ф — Лх) и*(х)},(3.70)
х>0,(3.71)
x^Zn\(3.72)
Очевидно, что в томслучае,когда исходнаязадача (3.60) — (3.63)
имеет ограниченное оптимальное решение, при достаточно больших К она эквивалентна нелинейной задаче дискретного программирования (3.70) — (3.72). Таким образом, исходная задача ЧЦЛП (3.60) — (3.63) сводится к задаче ЛП (3.67) — (3.69) и дискретной нелинейной задаче (3.70) — (3.72). Для решения задачи (3.70) — (3.72) предлагается воспользоваться методом вектора спада.
Пусть Ozrtl (х, г) — окрестность точки х радиуса г в дискретном множестве Z"1. Для того чтобы существенно уменьшить количество просматриваемых точек окрестности 07П, (х, г), в которых вычисляется функция W, будем, в первую очередь, отыскивать такие точки х £ € Ozn, (х, г), которые удовлетворяют неравенствам
(с—Лти*(х))х>0, (3.73)
х>0, " (3.74) где Лт— транспонированная матрица А. В основу данного эвристического правила положен тот факт, что для задачи ЛП (3.60) — (3.62) вектор с — Лт и* (х), где и* (х) — решение двойственной задачи (3.67) — (3.69), является субградиентом функции W (х).
Опишем алгоритм вектора спада применительно к задаче (3.70) — (3.72).
Алгоритм
Выберем начальное приближение х° ^ 0 и величину радиуса г. При фиксированном х° находим прямое и двойственное решения и и у задачи (3.67) — (3.69).
Полагаем h = 0.
Пусть к началу (h + 1)-го шага алгоритма определены целочисленная точка хй, непрерывная точка у6, а также вектор двойственных переменных и1*, являющийся решением задачи (3.67) — (3.69) при X — Xй.
Если Ozn, (Xй, г) = 0, то алгоритм оканчивает работу. В этом случае точка (Xй, у*) является локальным решением задачи (3.60) — (3.63). В противном случае отыскивается вектор х g Ozn, (Xй, г), удовлетворяющий соотношениям (3.73), (3.74).
Если найден вектор х £ Огп, (Xй, г), удовлетворяющий ограничениям (3.73), (3.74), то заменяем Oz„, (Xй, г) на Огп, (Xй, г) \ х и переходим к п. 3.3. В противном случае переходим к п. 3.5
Полагая х = х, находим прямое и двойственное решения и, у задачи ЛП (3.67) — (3.69). Затем вычисляем значение F (х) = сх + + (6 — Лх) и.
Если F (х) > F (Xй), то полагаем хй+| = х, уй+1 = у, ый+* = = и и заменяем h + 1 на h + 2. Переходим к п. 3.
Выбираем произвольно вектор х £ ОгП1 (х^, г), такой, что х ^ "^ 0, заменяем ОгП| (Xй, г) на Ozn, (Xй, г) \ х и переходим к п. 3.3.
Глава 4
НЕКОТОРЫЕ ДРУГИЕ МЕТОДЫ ПРИБЛИЖЕННОГО РЕШЕНИЯ ДИСКРЕТНЫХ ЗАДАЧ
§ 1. //-МЕТОД РЕШЕНИЯ ОПТИМИЗАЦИОННЫХ ЗАДАЧ ЧАСТИЧНО ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ
Пусть W (х) и gt (х), i = 1, ..., т,— некоторые числовые функции, области определения которых содержатся в множестве Rfe+n и включают (6 + п)-мерный параллелепипед вида П = {х = (хъ .... хк+Д!р, ^ ^ Xj ^ dh j = 1, .... к + aV Кроме того, функция W (х) имеет частные производные первого порядка по переменным хк+х, .., хк+п во всех точках указанного параллелепипеда.
Рассмотрим следующую частично целочисленную задачу математического программирования:
max {№ (х)/х £ G с Z* х R"V (4.1) где G = (х € П/gi (х) ^ 0, t = 1, .... т; х,-— целое, / = 1, .... к). В множестве 7> X Rn введем некоторую метрику р (х, у) и в дальнейшем будем рассматривать множество G как подпространство метрического пространства Zk X Rn.
Определение. Точку z £ G назовем h-локальным решением r-го порядка задачи (4.1) относительно метрики р (х, у), если для любого у 6 € Og (г, г) такого, что U7 (у) > W (г), выполняется условие
S |z/—уд^н.
Рассматриваемый //-метод решения задач частично целочисленного программирования [127] основывается на идеях метода вектора спада и метода покоординатного спуска и представляет собой процедуру, на каждой итерации которой совершается переход от точки х множества 6 допустимых решений задачи (4.1) к точке xW g G с лучшим значением целевой функции W (х). Для этого с равной вероятностью выбирается одна из переменных х, (j £ (1, k + л}) и определяется направление возрастания функции W (х) из точки х1 по выбранной переменной. По найденному направлению совершается переход на границу (& + п)-мерного параллелепипеда П в точку х'. Если х* £ G, W (х') >Н7 (хО,то xw полагается равным х' и производится переход к следующей итерации. В противном случае отрезок [xz, хЧ г Zk X X Rn делится пополам и для полученной точки проверяется выполнение указанных условий и т. д. Деление отрезка [xz, хЧ может продолжаться до тех пор, пока не будет найдена нужная точка или пока
длина отрезка превышает либо единицу (для 1 ^ / ^ к\ либо величину h ( для к + 1 к + п).
Если же с помощью переменной х, так и не удалось найти точку х^^ то из множества оставшихся переменных с равной вероятностью выбирается какая-либо другая переменная, и поиск х^1 продолжается аналогично. Если же список переменных пуст, т. е. ни по одной из переменных точку xw получить не удалось, то точка х, — й-локальное решение задачи (4.1),
Алгоритм
Выбираем начальное приближение х? £ G и задаем h > 0.
Полагаем I = 0.
Определяем множество W = (1, ..., к + гц.
Случайным образом выбираем одну из переменных xh j С N, причем выбор любой переменной равновероятен. Если на выбранную переменную X, наложено условие целочисленности, переходим к п. 5. В противном случае переходим к п. 9.
Рассматриваем окрестность Ос (х*, 1). Если в ней найдется точка х', удовлетворяющая условию
(4.2)(4.2)W (х‘)<№(х'),
(4.2)
(4.2)
то переходим к п. 6. В противном случае переходим к п. 13.
Если X/ — X/ < 0, то полагаем X/ = dj. В противном случае полагаем xz = р,.
Проверяем выполнение условий (4.2) и
(4.3)(4.3)gi(X^ < 0, / = 1, ... , т,
(4.3)
(4.3)
для полученной точки х' g П. Если они выполняются, то полагаем х*+1 = х' и, заменяя I на i + 1, переходим к п. 3. В противном случае — к п. 8.
Полагаем
X/ + sign (х/ — X/), если | X/ — х, | < 1
— + х) в противном случае.
Переходим к п. 7.
Вычисляем -—• Если< 0, то полагаем х, = р^
\ dXj jxiу ™/'
в противном случае полагаем х/ = db
Для полученной точки X/ £ П проверяем выполнение условий (4.2) и (4.3). Если эти условия выполняются, то полагаем xw = х' и, заменяя i на I + 1, переходим к п. 3. В противном случае — к л. 11.
Если | X/— xi\ = h, то переходим к п. 13. В противном случае полагаем х/ = -Ц-J—р х/ и переходим к п. 12.
Если | Xj — Xf | < h, то полагаем x? = x\ + h sign (x/ — x1^ и переходим к п. 10.
Заменяем N на N \ {/} и, если N Ф 0, переходим к п. 4. В противном случае работа алгоритма заканчивается.
Исследуем предложенный алгоритм.
к-Д-прх(х, ih = £ sign|x, —у,|.к-Д-прх(х, ih = £ sign|x, —у,|.Рассмотрим две функции
к-Д-п
рх(х, ih = £ sign|x, —у,|.
к-Д-п
рх(х, ih = £ sign|x, —у,|.
р2(х, th = 5 Iх,— + S
где Id — наименьшее целое число, не меньшее a; h — некоторая положительная константа. Покажем, что рг (х, у) и р2 (х, у) удовлетворяют трем аксиомам расстояния, т. е. эти функции могут быть выбраны в качестве метрики пространства Z^ X Ru.
Очевидно, что указанные функции удовлетворяют аксиомам тождества и симметрии. Покажем, что pj (х, у) и р2 (х, у) удовлетворяют аксиомам треугольника, т. е. что для любых х, у, г £ Zk X Rn выполняется неравенство
Р (х, у) + р (у, 2) > р (х, z).(4.4)
Рассмотрим р! (х, у) и воспользуемся следующими очевидными соотношениями:
sign (а) + sign (6) ^ sign (а + 6) для любых а, b ^ 0,
если а ^ Ь, то sign (а) > sign (6).
Тогда
к*Д-пк-Д-п
Pi(x> У) + Р1(У> z) - s sign|x,— уД + £ sign] у,— гД>7=1/=1
к-Д-nk-Д-п
>S sign(|x,— уДА-\У1— 2,|)> S sign|x,— 2,1 -p^x, 2). /=1/=1
При доказательстве неравенства (4.4) для функции р2 (х, у) воспользуемся соотношениями, аналогичными а) и б):
(]d + 16[) ^ h + 6[ для любых а, 6^0,
если а"^ Ь, то Id ^ 16L
В этом случае
/гк-^-п.
р2 (X. У) + р2 (У* 2) = S I xi— У) I + S |—-Чг^1 I +
кh-V-nv
+ S I У! — z/1 + 5j J'W й 2/' I ^ S (Iх/ — У/1 +1 У) — г/1) +
1=1i=k+i JL i=-
+ SII > 5_ 2,1 +
/==64-1 J/=i
+ S ]"^Т^1 =Рг(х. 2)-
j=*+i J " L
Итак, функции рт (х, у) и р2 (х, у) удовлетворяют аксиомам расстояния.
Теорема 4.1. Результатом работы алгоритма Н-метода является h-локальное решение первого порядка относительно метрики р2 (х, у).
Доказательство. Предположим, что в результате работы алгоритма получена некоторая точка х*, которая не является h-локальным решением первого порядка задачи (4.1) относительно метрики р2 (х» У)^ т- е существует точка у С Оо (х*, 1), для которой справедливы неравенства
Г (х*) < V (у) и £ | х? — У] I > h.(4.5)
Из определения функции р2 (х, у) следует, что точки х* и у отличаются не более чем одной координатой. Пусть, например, х* = yi Ц- — V —
/ — 1, / + 1, А + п\ х* = у,. Отметим, что 1 ^ j ^ к, так как £+п
при j > к из неравенства 2 Iх/ — у, | > Л вытекает неравенство
р2 (х*, У) > 1, чт0 противоречит утверждению о принадлежности точки множеству 0g (х*, 1). Следовательно, \ х* — У/ | = 1, где / 5 С {1, ..., Ц. Но в соответствии с п. 3 алгоритма в этом случае осуще-
ствляется переход в точку у, что противоречит предположению о завершении работы по алгоритму в точке х*. Теорема доказана.
Теорема 4.2. Если функции — W (х), g< (х), / = 1, ..., т, выпуклы, то в результате работы алгоритма будет получено h-локальное решение первого порядка относительно метрики рт (х, у).
х', все координаты которой равны соответствующим координа» там точки х*, исключая лишь /-ю координату, для которойх', все координаты которой равны соответствующим координа» там точки х*, исключая лишь /-ю координату, для которой5| у itКоличество переменных (целочисленные + непрерывные)я s ооо-е<8Ь ад СО ь50150= 10-Ь 14029114,150150 = 25+12528313,350150 = 140+10273,510,975150= 10+14021737,775150 = 50+10021329,475150 = 140+1016917,3100150= 10+14093,426,6100150 = 50+10091,524,9100150 = 140+1074245| у itКоличество переменных (целочисленные + непрерывные)я s ооо-е<8Ь ад СО ь50150= 10-Ь 14029114,150150 = 25+12528313,350150 = 140+10273,510,975150= 10+14021737,775150 = 50+10021329,475150 = 140+1016917,3100150= 10+14093,426,6100150 = 50+10091,524,9100150 = 140+107424Таблица 10Таблица 108 Е &$ is 5 го^ ои 3 рIS1 = ЬЯ ф С "4" к ч а Ч о и 5 g а £ 22 =я §д1 °10100 = 25+752862,42420100 - 50+502035,629100100 = 75+25962,329,6100100 = 25+75968.932,78 Е &$ is 5 го^ ои 3 рIS1 = ЬЯ ф С "4" к ч а Ч о и 5 g а £ 22 =я §д1 °10100 = 25+752862,42420100 - 50+502035,629100100 = 75+25962,329,6100100 = 25+75968.932,7Таблица 11Таблица 11Доказательство. Предположим, что в результате работы алгоритма получена точка х*, не являющаяся Л-локальным решением первого порядка относительно метрики pj (х, у), т. е. существует точка у € Og (х*, 1), для которой справедливы соотношения (4.5) и которая отличается от х* не более чем одной координатой. Пусть х* ^ у/, х* = = yt (i = 1, ..., j — 1, / + 1, ...» k + n) и j > k. Рассмотрим точку
х', все координаты которой равны соответствующим координа» там точки х*, исключая лишь /-ю координату, для которой
х', все координаты которой равны соответствующим координа» там точки х*, исключая лишь /-ю координату, для которой
5| у it
Количество переменных (целочисленные + непрерывные)
я s о
оо-е
<8
Ь ад СО ь
50
150= 10-Ь 140
291
14,1
50
150 = 25+125
283
13,3
50
150 = 140+10
273,5
10,9
75
150= 10+140
217
37,7
75
150 = 50+100
213
29,4
75
150 = 140+10
169
17,3
100
150= 10+140
93,4
26,6
100
150 = 50+100
91,5
24,9
100
150 = 140+10
74
24
5| у it
Количество переменных (целочисленные + непрерывные)
я s о
оо-е
<8
Ь ад СО ь
50
150= 10-Ь 140
291
14,1
50
150 = 25+125
283
13,3
50
150 = 140+10
273,5
10,9
75
150= 10+140
217
37,7
75
150 = 50+100
213
29,4
75
150 = 140+10
169
17,3
100
150= 10+140
93,4
26,6
100
150 = 50+100
91,5
24,9
100
150 = 140+10
74
24
Таблица 10
Таблица 10
8 Е &$ is 5 го
^ о
и 3 р
IS1 = Ь
Я ф С "4" к ч а Ч о и 5 g а £ 2
2 =
я §
д
1 °
10
100 = 25+75
2862,4
24
20
100 - 50+50
2035,6
29
100
100 = 75+25
962,3
29,6
100
100 = 25+75
968.9
32,7
8 Е &$ is 5 го
^ о
и 3 р
IS1 = Ь
Я ф С "4" к ч а Ч о и 5 g а £ 2
2 =
я §
д
1 °
10
100 = 25+75
2862,4
24
20
100 - 50+50
2035,6
29
100
100 = 75+25
962,3
29,6
100
100 = 25+75
968.9
32,7
Таблица 11
Таблица 11
х^ = X/ + sign (z/z — X/) h. Из выпуклости функций gz (х), t = 1, ... ..., т. следует принадлежность точки х множеству G, а из выпуклости функции W (х) следует, что W (х*) < W (х'). Согласно п. 10 приведенного выше алгоритма в этом случае необходимо осуществить и переход в точку х', что противоречит сделанному нами предположению о завершении работы алгоритма в точке х*. Итак, для /> к теорема доказана. Доказательство для случая / ^ к проводится аналогично.
Экспериментально данный алгоритм исследовался на ЭВМ М-4030. Некоторые результаты эксперимента приведены в табл. Юи 11: табл. 10 иллюстрирует процесс : ешения задач ЧЦЛП (при h = 0,1), а табл. 11 —процесс решения многомерных частично целочисленных задач о ранце (при h = 0,02).
§ 2. ОДИН ПОДХОД К РЕШЕНИЮ ЗАДАЧ ЦЛП
Одним из путей использования преимуществ методов ЛП в ЦЛП может быть исключение из исходной задачи условий целочисленности с последующим решением некоторой вспомогательной задачи ЛП [5, 137], а затем округлением до ближайшего целого тех ее координат, на которые в исходной задаче были наложены требования целочисленности. При этом вспомогательная задача должна быть построена таким образом, чтобы процедура округления не нарушила условия допустимости исходной задачи.
Рассмотрим задачу ЧЦЛП общего вида
min ^сгх + c^tjIAx + Dy ^6, х > 0, у ^ 0, х — целочисленный вектор}, где х. у, b— соответственно и-, к-, m-мерный векторы; А = = (АА — (т X /г)-матрица; D = {dz/} — (т X £)-матрица.
Соответствующую вспомогательную задачу ЛП можно представить следующим образом:
min ^ctx + c^yJAx + Dy^b— о, x^0, z/^0}, (4.6) где a = (an ..., am) — некоторый /n-мерный вектор.
Величины о^ i = 1, ..., т, назовем корректирующими смещениями гиперплоскостей, ограничивающих множество допустимых решений задачи (4.6). Способы выбора корректирующих смещений могут быть различны; при этом необходимо учитывать особенности математических моделей задач, для решения которых применяется данный подход. Если определение величин ои I = 1, ..., т, с учетом конкретного вида задач вызывает определенные трудности, можно остановиться на одном из следующих вариантов:
него варианта влечет за собой применение методов параметрического ЛП (см. § 5 гл. 7) и позволяет получить целый ряд допустимых решений исходной задачи.
Нетрудно показать, что при выборе первых двух вариантов решение линейной задачи удовлетворяет необходимым требованиям. Действительно, пусть а^ = О/2), i = 1, ..., /и, (х', у) — решение вспомогательной задачи (4.6), а (х*, у') — вектор, полученный из вектора (х', у') путем округления первых п компонент до ближайшего целого числа. Пусть также / = {/7/ G {1, ..., /г}, х, > 0). Покажем, что Ах* + Dy' ^ ^ Ь. Для этого рассмотрим произвольное i-e неравенство системы ограничений
пкппк
X а^х} + 5 йцУ1 = £ ам ^ — х^ + 5 ауХ/ + £ аму; <
/=|/=>/=1/=1/=1
< 5 | ац 11 х* — X,- \ + bl — oi^;Gi + bl — ol = b{.
Итак, (х*, у'^ является допустимым решением исходной задачи. Аналогично можно показать допустимость такого вектора и для случая о, — о\-\ i = 1, ..., т.
Отметим, что хотя O/h ^ а(^\ i = 1, ..., т, и в большинстве случаев с помощью корректирующих смещений а(2) удается получить более точное приближенное решение, иногда такая закономерность нарушается. Это объясняется тем, что округление компонент даже более «хорошего» решения вспомогательной задачи может привести к менее «хорошему» приближенному решению исходной задачи.
ОБ ИСПОЛЬЗОВАНИИ ИДЕЙ СИМПЛЕКС-МЕТОДА ПРИ РЕШЕНИИ ЗАДАЧ ЦЛП
Рассмотрим итерационный метод [4] приближенного решения задачи ЧЦЛП вида: минимизировать
пк
2 С/Х/ + 2 Gj^nyj(4.7)
/=1/=1
при условиях
2 atjXj + Л аи^пУ] ^bb i = 1, ..., т,(4.8)
/=1/-1
х,-^0, j = 1, ... , п; У/^0, j = \ , ..., к, (4.9)
х( — целое, / = 1, ... , п.(4.10)
Введем искусственные переменные иь ..., ит и перейдем от системы линейных неравенств (4.8) к системе уравнений вида
пк
5 auXj-V'L aiK.nyl + u{ = bu i = \,...,m.(4.11)
Отбросим условия целочисленности и обозначим Z задачу (4.7), (4.11), (4.9).''
[xj, если xz — [xj <[xj, если xz — [xj <(4.12)/г,(4.12)/г,Определение. Вектор (х, у, и) назовем базовым вектором задачи 2, если вектор (х*, yY первые п компонент которого вычисляются по формуле
[xj, если xz — [xj <
[xj, если xz — [xj <
(4.12)
/г,
(4.12)
/г,
[xz] + 1 в противном случае, / = 1,
удовлетворяет условиям (4.8) — (4.10).
Обозначим Л матрицу условий (4.8) и рассмотрим две системы векторов:
\Ah j = 1, ... , п + к + т^(4.13)
где Л, — вектор-столбец матрицы Л:
{Л/, / = 1, ... , м + й + т},(4.14)
пм /еи, -..,^}
'1 б, /'6 (п + 1, к ^ п + т}
(здесь | Л, | — вектор, компоненты которого равны абсолютной величине соответствующих компонент вектора А^ у' ^ 1, ..., nY
Пусть Q — множество допустимых решений задачи Z, векторы Ап, ..., А, образуют линейно независимую систему.
Положим
~ Uv ♦ • • > ImY
Определение. Точку о = (и1# ..., и^^ назовем почти угловой точкой множества Q, если координаты этой точки удовлетворяют следующим условиям:
^л^^в-А^л;, /е/z i<i
о^О, j = 1,, п +k + m,(4.15)
У/ 0, / f (1, ... , п + ^ + m) \ I,
где В — вектор-столбец правых частей ограничений (4.8).
Покажем, что почти угловая точка множества Q является базовым вектором задачи Z. Для этого рассмотрим вектор у*, первые п компонент которого получены из соответствующих компонент и по формуле (4.12), а остальные А равны ип+|, ..., и,^".
£ Ар* = ^ А, (у/ — у,) 4- ^ Ар^ /=1/€//О
^SM/II^-O/I + B-^S А^В.
Следовательно, вектор и* удовлетворяет условиям (4.8) — (4.10) и является базовым вектором задачи Z.
Итерационный шаг метода состоит в переходе от почти угловой точки о множества Q к почти угловой точке и\ при котором значение целевой функции убывает.
Предположим, что известна некоторая почти угловая точка о = ■ (оп .... о„+л+т) множества Q. Так как векторы A,, j $ /, линейно независимы, то любой из векторов систем (4.13), (4.14) можно линейно выразить через Л,, /. Пусть
5j AjXjs ^S>
s — 1, ..., n + k + m,
(4Л6)
I A£/s - As,
s = 1, ..., n + k -] m.
(4Л7)
Обозначим
Ri
s = 1n-f- k + m,
(4.18)
Уи ^^js == ^s,
s = 1, ... , n 4- k + m.
Сформулируем ряд теорем, необходимых для построения алгоритма решения исходной задачи ЦЛП.
Теорема 4.3. Если для некоторой почти угловой точки и множества Q существует t ^ {1, ..., k 4- п + т), для которого справедливы, соотношения
хц ^ 0 для всех j £ I,zt — с, < О,
то целевая функция (4.7) исходной задачи неограничена снизу.
Доказательство. Зададим сколь угодно большое по абсолютной величине отрицательное число Т. Покажем, что при выполнении условий теоремы существует допустимое решение исходной задачи, для которой функция цели будет принимать значение, меньшее Т.
Умножим обе части равенства (4.16) при i = t на некоторое положительное число X и вычтем их из соответствующих частей равенства (4.15):
§ ^i (у/ — ^xid + ^^t = Вк- 5 Л/.
Рассмотрим точку о', координаты которой вычисляются следующим образом:
V/ = 0 для всех / ^ {1, ... , /г + А -|- т} \ (7 U (7)),
= X,
V/ = и,- — Xx,t, j € 7.
«+б2»-ТЦ- Л + А с*
Положим с* — max I с» I, z° = V c,v„ X' =, X" =
/=!„...« 1 Л "1 Zt~Ct
= [Х']+ 1, Л = /и {7}.
Очевидно, при X = X" все компоненты вектора о' являются неотрицательными. Покажем, что вектор о* будет базовым вектором задачи Z. Для этого предположим, что вектор и* получен из вектора о' в соот-
J30
ветствии с (4.12). Тогда
н-у-кп—j-Aч-^-к-^-гигЦ-кЦ-тп^-к
Л/о; ^ £ Л,у- +£ А,и, = £ Л,и; 4- 2 Л, (у/ — у)) =
7=1/=1/=п4-/г+’7=1'=1
= 2 М + 2 а^-у,)^в—4-2 Л/ + 4-2 л, = в.
Итак, вектор у* является допустимым решением исходной задачи.
Покажем, что значение целевой функции (4.7) в точке у* не превосходит Т1
ср* = 2 Ср* = 2 с<у1 + Vs, — 5 ®iyi -J У Cj (и* — v,) + X"Ct = 1=1(У,,У(У,У
= 2 ci (V1 — ^'XiA + 2 <4 (V/ — у A + Vc, <
1Уiy
2 с,У/ — V 2 CjXjt 4- Ve, + 4" 2 Iс/1 г°— z° VT = T.
1Уiyz KI
Теорема доказана.
Для каждой пары индексов (/, /) такой, что Хц > О, I ^ /, t Е {1, ... п + к + т) \ /, определим величину
^/==J1-Zk±k.(4.19)
и введем обозначения lt( = / U {/} \ {/}, /z = / \ (Z).
Сформулируем следующую теорему.
Теорема 4.4. Пусть и — почти угловая точка множества Q. Если существуют такие Z Е (1, ..., п -V k -V т\ \ I и I ^ U что для любого s Е 1 выполняются неравенства
^s — ^st Ч- ^s/ ■” ^//-^s/ ^^ 0, ^// ^^ 0, ^1 (2/ ~~ сд "4* ^t ”■ ^z > ^> то существует почти угловая точка о’, для которой
n-Vkn-Vk
2 С,У; < S CjUf. /—1/=|
Доказательство. К обеим частям равенства (4.15) добавим соответствующие части равенства (4.17) при s = I и вычтем соответствующие части равенства (4.17) при s = t и равенства (4.16), умноженные на t,ti. В результате получим
2 Л/У/ + 2 лД//— 2 A^,jt — t,» 2 AjX,f + t,nA( = в—g- 5j л,, jyiy/Уiy‘ iy»
2 Л, (V/ 4- ^ji — ^n — UiXjt^ 4- &/Л, — В^ 2 Л/.
jyz Rltl
Рассмотрим точку у', координаты которой вычисляются следующим образом:
и- = V, + ^ч — bjt + Wu для всех j£l!,(4
^Г^, У/ = 0 для всех / С {1, ... , п + к + т} \ hb
Покажем, что система векторов Л/, / С Л/, является линейно независимой. Предположим противное, т. е. найдутся такие числа Р$> s С 1и, не все равные нулю, что 2 PsA ^ ® или S PsA + РИ/ ^
= 0. Учитывая (4.16), получим следующее разложение вектора Ах с помощью системы линейно независимых векторов Ab j 6 /:
Xj Asx§t = А^. sei
Подставим это выражение At в предыдущее равенство
S PHs + Pt Xi AjXjt = 0, sei1
или
S A (P/^s/ + Ps) + Xz$/Af = 0.
Rei1
Из линейной независимости векторов Ab j £ /, следует, что ^Х// = = 0, Но X// > 0, поэтому рг = 0 и, следовательно, все Р$ = 0, s £ С Д что противоречит предположению о существовании среди Ps, s 6 С Itb ненулевого элемента.
Итак, векторы Л5, s 6 Ьь являются линейно независимыми.
Из соотношения
S Ла = в-4- s л;
1^.1 tii^-hi
следует, что у' является почти угловой точкой множества Q. Отметим, что v, + In — ^и — Wu = 0. Тогда
S CtVj = 5j ci (vi + ^il — ^Jt — ^tlXjt) + ^tlCf =
K4l ie.11
= S с/ (y/ + ^7' — ^b — ^uXft) + £<zc< = KI
= у CA + ut — ut — 5« (z, — C,) < s CjVj.
Теорема доказана.
Определим компоненты вектора 9 = (0„ ..., 9л+*+т):
0,= min ^7^ = 'zп + ^ + тп}.
{44 "4
Теорема 4.5. Пусть о — почти угловая точка множества Q. Если для некоторого / £ {1, ...» п + к + т^ \ / справедливы соотношения
9, >0, V/ — Xt — 9^/z > 0 для всех / £ 1, 9, (^ — с() + ut > 0, то можно построить вектор о' размерности к + п, являющийся базовым вектором задачи Z, для которого справедливо соотношение
k-^nfe+n
S W < S CiUj.
/=1/=|
Доказательство. Рассмотрим вектор и', компоненты которого определяются следующим образом:
V/ = V/— lit— Qtxib К I,
v< = 9„
V/ = 0, К {1, ... , n + ^ + m\ \ lt, It = I и !/}.
Этот вектор является базовым вектором задачи Z. Действительно,
X Aj^j + ^tAt = X А-и, + otAt = Xi Api— X A^jt — 9f X A^X/t + iUWpWiUi^iю
+ QtAt = B—L S Ai—U^B—L S A.— A-a;
2 /€/22 №ixv() 2
Следовательно v' — базовый вектор.
k-Vnk4-n
Доказательство неравенства 2 C/U) < S CjO^ проводится так же, как и в теореме 4.4.
Теорема доказана.
Из определения компонент вектора 9 следует, что Оц = 0. В таком случае вектор-столбцы Л$, s^ hu образуют систему линейно независимых векторов (см. доказательство теоремы 4.4) и Ар Л/, / g {1, ... ..., к + п + т}, могут быть линейно выражены через эту систему аналогично (4.16), (4.17), где вместо величин хц и Хц следует подставить соответственно хц и Хц» вычисляемые по формулам
Хц = xti-С- Xit, i 61 \ {м,
(4-21)
X// —, I — /^,
& =^7 -^-Xib 1^1\\1А
t(4.22)
^ijg >^ — ^<-
Теорема 4.6. Если для любого j £ /, \ {/,} справедливо соотношение О/ — ^ut ^ 0, то точка у*, для которой.
o*-Vf + ^it» КЪХМ,(4.23)
а остальные координаты равны нулю, будет почти угловой точкой множества Q.
Доказательство. Очевидно, система векторов Ап j £ €Л\{М> является линейно независимой. Из определения вектора у' следует, что
а^в-А- s а.-^-а, или
S Д/« + ^ = 5L 2 A,
Таким образом, точка у* является почти угловой точкой множества Q. Теорема доказана.
Итак, если выполняются условия теорем 4.5 и 4.6, возможен переход от одной почти угловой точки у к другой у*, при этом будет получен базовый вектор у' исходной задачи с лучшими по сравнению с у значением целевой функции.
Обозначим Q* множество всех почти угловых точек множества Q. Определим для любых ио, у 6 Q* функцию
n-^k-V-m
Р (®, V) = S sign I sign I te>, I — sign | у, 11.
/=i
Нетрудно показать, что p (ty, у) является метрикой на Q*.
Определение. Назовем точку у 6 Q* точкой локального оптимума г-го порядка задачи Z, если Oq (у, г) \ у =^ 0 и для любого ио £ Oq (у, г) \ у выполняется условие
n-\-k-Vmn-Vk-Vm
/=1/-I
Теперь приведем алгоритм решения задачи Z.
Алгоритм
Выбираем линейно независимую систему векторов Alt, .... А,т, где h £ {1, ..., n + А + m}, i = 1т. Строим по (4.15) допустимое решение и* исходной задачи и полагаем
R='^Clyj, I = Uv---.imh
/=1
Проверяем выполнение условий теоремы 4.3. Если эти условия выполняются, то функция цели исходной задачи неограничена снизу и работа по алгоритму на этом прекращается. В противном случае переходим к и. 3.
Строим вектор 9 = (9V ..., 0а+^+/п). Определяем множество S = = {//0, > 0} и переходим к п. 8.
Строим ^и по формуле (4.19), определяем множество пар
</-{(^,0/^>0, /еЛ ^{1, ...,па й + т}\/}.
Если J = 0, переходим к и. 11. В противном случае выбираем пару индексов (/, /) 6 J • Если для этой пары индексов выполняются условия теоремы, переходим к п. 7; в противном случае переходим к п. 6.
Заменяем J на J \ (/, Z) и переходим к п. 5.
Вводим переменную xt в базис, а переменную xL (х^ выводим из него. Заменяем / на Ъь переходим к новой почти угловой точке у'; значение ее координат вычисляем по формуле (4.20), если 8 = 0, или по формуле (4.23), когда 8 ^= 0. Производим пересчет коэффициентов в разложении вектор-столбцов А/ и -^- А,. Согласно (4.15) строим век-
гЦ-кп-\-к
тор х*. Если 7? > 5 CjX*h положим R = ^qx*, в противном случае
R остается неизменным. Переходим к п. 2.
Если 8 = 0, переходим к п. 10. В противном случае выбираем t € S; вычисляем ^^. Если выполняются условия теоремы 4.5, то можно построить почти угловую точку с меньшим значением функции цели Переходим к п. 7. В противном случае переходим к п. 9.
Заменяем S на S \ {/} и переходим к п. 8.
Если к = 0, переходим к п. 11, в противном случае — к п. 5
Работа по алгоритму завершена.
Теорема 4.7. Если любая почти угловая точка и из множества О* содержит в точности т отличных от нуля координат, то в результата работы алгоритма получается почти угловая точка задачи Z, которая будет точкой локального оптимума второго порядка.
Доказательство. Пусть и — почти угловая точка множества Q* задачи Z, полученная по алгоритму. Рассмотрим у С Oq (2, у). Все компоненты точки у неотрицательны, и она содержит т компонент, отличных от нуля. С учетом введенной в Q* метрики р (х, у^ следует, что найдется такое I £ А для которого у, =£ 0, yL = 0, и такое Z £ {1, .., ..., п + к + /и}, что vt = 0, yt Ф 0, причем
^Ар^В-^А',.
Справедливо следующее соотношение:
5 А^ (У/ — ^ — t>ux,t + ^jb + ^tiAt = В5 А/At + у 4/.
Из определения ^ следует, что у, — ^ц — ^ихц + 6// = 0 при / = I. Поэтому
А^,— ^— ^tiXjt H ^jd \ ^tiAt = Bу ^ A,, i^pi£iu
Векторы Aj, j^.1и» линейно независимы. Из единственности разложения вектора В^- У А, получаем
У1 = ц1— 6//— ^tiXjt-V^ib /€^\Ю> У< = ^и.
Следовательно,
5 С1У< S С/У/ = S 6}Xi— ^tl <Zt — Ct> — йУ, + wv i^ti№1,iU
Так как у — почти угловая точка множества Q, полученная по алгоритму, a tjj ^ 0, j 6 1ц, то &< (2, — с,) Н-о), — ш, ^ 0. Поэтому
2 С/У^^с^.
Теорема доказана.
В заключение отметим, что приведенный в настоящем параграфе алгоритм при к = 0 представляет собой алгоритм симплекс-метода решения задач ЛП.
ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ С ГАРАНТИРОВАННЫМИ ОЦЕНКАМИ
Главная проблема в построении эффективных приближенных алгоритмов решения задачи — получение оценок их точности. До последнего времени наиболее распространным показателем качества приближенного алгоритма являлась его экспериментальная статистическая эффективность: генерировались тестовые задачи и изучалась величина отклонения построенных приближенных решений от оптимальных «в среднем».
В настоящее время в работах М. М. Ковалева достаточное отражение получил и другой подход, который принято называть «анализ наихудшего случая»: для приближенного алгоритма А решения некоторой массовой задачи устанавливается такая величина Ал, не зависящая от входных параметров задачи, что
A"$-T§r(424)
для каждой индивидуальной максимизационной (минимизационной) задачи. Здесь / (хл) — значение функционала на построенном с помощью приближенного алгоритма решении хл, / (х) — значение функционала на оптимальном решении х. Если для некоторой индивидуальной задачи из рассматриваемого класса соотношение (4.24) выполняется как равенство, то величина Дл называется достижимой оценкой. Если для любого Д' > Дл (Д' < Дл) существует такая максимизационная (ми- нимизационная) задача, что
то величина Ал называется неулучшаемой оценкой. Величина Ал обычно называется гарантированной оценкой приближенного алгоритма А. Отметим, что часто для оценки качества алгоритма используется величина е, равная 1 — А для максимизационных задач и А — 1 для ми- нимизационных задач. Последняя характеризует относительное отклонение приближенного решения от оптимального.
Приближенные алгоритмы с гарантированной оценкой можно построить не для всех задач. Для многих задач построение таких алгоритмов означало бы построение точных эффективных алгоритмов их решения (см. [35]). Приведем несколько примеров алгоритмов с оценкой для широко известной задачи коммивояжера с расстояниями, удовлетворяющими неравенству треугольника. Это условие выполняется, когда расстояние между городами есть длина кратчайшего пути в некоторой метрике. В обшей задаче коммивояжера построение алгоритма с оценкой эквивалентно по сложности построения точного алгоритма.
Естественный эвристический алгоритм решения задачи коммивояжера, называемый «иди в ближний», состоит в следующем: начиная с произвольного города, обход х производится в таком порядке, что в качестве следующего города в обходе выступает город, ближайший к последнему Можно показать, что
Ad^^-(]log2n[ + 1),
где п — число городов; ]а[ — наименьшее целое, большее или равное а. В работе [35] приведены также другие приближенные алгоритмы решения задачи коммивояжера, гарантированная оценка которых не превышает двух.
В работах Ю. И. Журавлева и его учеников отмечалось, что метод, основанный на комбинации (суперпозиции) нескольких алгоритмов, как правило, позволяет получить лучшее решение, чем каждый из алгоритмов в отдельности. В связи с этим интересно отметить, что при «анализе наихудшего варианта» решения минимизационной задачи коммивояжера наилучшую гарантированную оценку имеет алгоритм, описанный А. И. Сердюковым и Кристофидесом. Его идея состоит в следующем: находится сначала остовное дерево минимального веса, а затем паросочетание минимального веса, покрывающее все вершины в дереве, имеющее нечетные степени; в полученном мультиграфе (основное дерево плюс паросочетание) строится произвольный эйлеров цикл, который записывается в виде последовательности посещаемых вершин, после чего повторяющиеся вершины, кроме начала, вычеркиваются. Полученная таким образом последовательность вершин и является приближенным решением. Этот алгоритм имеет неулучшаемую оценку 3/2.
Пусть G = (V, f) — полный n-вершинный граф (орграф) с неотрицательными весами Сц, заданными на ребрах (дугах). Гамильтоновым циклом (орциклом) в графе (орграфе) G называется цикл (орцикл), содержащий каждую вершину из G точно один раз. Подмножество Т а cz Е ребер (дуг) в G называем частичным туром, если существует гамильтонов цикл (орцикл), содержащий все ребра из Т. Ребро (дугу)
е С Е назовем допустимым (допустимой) для частичного тура 7, если Т (J {£} — частичный тур. Через с (E'Y Е' cz Е, обозначим суммарный вес ребер (дуг) из Е.
Симметричной (несимметричной) задачей коммивояжера на максимум (ЗКМ) назовем задачу нахождения гамильтонова цикла (орцик- ла) максимального веса в G. Для несимметричной задачи коммивояжера, в отличие от симметричной, не обязательно с^ = С/;.
Одним из наиболее простых приближенных алгоритмов решения ЗКМ является хорошо известный алгоритм d «иди в дальний»: начиная с произвольной вершины, на каждом t-м шаге к уже построенному частичному туру Tt присоединяем ребро et максимального веса среди допустимых ребер, смежных ребру, последним включенному в частичный тур Т(. Трудоемкость алгоритма «иди в дальний» — О V^Y Легко доказать, что для симметричной и несимметричной ЗКМ достижимая гарантированная оценка алгоритма d равна V2 и 0 соответственно.
Градиентный алгоритм g решения ЗКМ в отличие от алгоритма «иди в дальний» не требует связности частичного тура, получаемого на каждом шаге алгоритма. Иными словами, на ьм шаге Q = 1, ..., п) градиентного алгоритма выбирается ребро (дуга) еь имеющее максимальный вес среди допустимых ребер (дуг) для частичного тура Т(_х (70 = = 0) и полагается Tt = 7z„i J ^е^.
Для вывода гарантированной оценки алгоритма g понадобятся следующие свойства частичных туров. Частичный тур Т распадается на несколько компонент связности, каждая из которых является простой цепью. Число компонент связности Т обозначим I (Ту Внутренней вершиной Т назовем любую вершину, инцидентную двум ребрам из 7, т. е. не являющуюся концевой ни для одной из его цепей. Число внутренних вершин 7 обозначим р (7). Так как в каждой компоненте связности 7 число внутренних вершин равно числу ребер в этой компоненте без единицы, то для частичного тура 7, 1 ^ | 7| ^ п — 1, справедливо равенство
И =Р(Т) + ЦТУ (4.25)
Лемма 4.1. Пусть х — произвольный гамильтонов цикл, а 7 — произвольный частичный тур в графе G. Тогда число ребер из х, которые не являются допустимыми для частичного тура Т, не превосходит 2| 7| — 1.
Действительно, ребро е допустимо для частичного тура 7 тогда и только тогда, когда е не инцидентно ни одной из внутренних вершин и не замыкает в цикле ни одну из цепей в 7. Поэтому не являются допустимыми те ребра из %, которые либо инцидентны внутренним вершинам в 7, либо замыкают в циклы цепи из 7. Следовательно, число ребер из х, которые не являются допустимыми для 7, не превосходит 2р (Т) + I (Т). Теперь, используя равенство (4.25) и учитывая, что / (7) ^ 1, получаем
2^(7) + Z(7) = 2 171 — Z(7)217| — 1.
Теорема 4.8 [64]. Для алгоритма g справедливы следующие достижимые оценки: Ag = -^- ^1 + -^, где а = п при п нечетном и а =
— п — 1 при п четном (симметричная ЗКМ); А8 = ~- (несимметричная зкму
Доказательство. Докажем первую из оценок. Пусть сг ^ ^ с2 > ... ^ сп — веса ребер оптимального цикла х, упорядоченные по невозрастанию. Очевидно, что с (eT) ^ cv Докажем справедливость системы неравенств
c(ej > с^-г, 1=М,.... [ -^-] ,(4.26)
где lai — наибольшее целое, не превосходящее а. Действительно, с (е^ равно максимальному из весов ребер, допустимых для частичного тура Т(_\. Согласно лемме 4.1 число ребер из х, которые не являются допустимыми для Ti„x не превосходит 2 | Т(_х | — 1 = 2/ — 3. Предполагаем, что недопустимыми являются ребра из х, имеющие наибольший вес, т. е. cv с2, ..., с^3; тогда получаем неравенства (4.26). Из неравенств (4.26) и в силу ct ^ ^+i следует справедливость еще одной системы неравенств
C(e.)>^,-i, г=2,3[^Нг"]'(4‘27)
Рассмотрим два случая. Пусть п нечетно. Тогда, суммируя неравенства (4.26) с неравенствами (4.27) для / = 2, 3, ..., -^у^~ и неравенством с (е-^ Ор получаем
(«+1)/2
с(х)<2 5 с^с) — с(^1) ^ 2с(х8) — cv
Учитывая, что с (х) ^ пс^ выводим окончательно_
с^)1, q 1 / М
с (х)2с (х) — 2 \' п ) *
Для четных л, суммируя неравенства (4.26), (4.27) и с (е^ ^ си получаем
с (х) < 2с (х?) — с (е,) — с (е(п+2)/2) < 2с (xg) — с, — с„
или
с(*8) 1 /. , С1 + \ 1 /. 1 \с (х) 2 \ с(х) 2 \ ‘ п— 1 /
Доказательство оценки ^з аналогично доказательству оценки для симметричной ЗКМ и опирается на следующий легко устанавливаемый факт: число дуг гамильтонова орцикла, которые не являются допустимыми для частичного тура 7, не превосходит 3 | 7 |.
В [64] приведены примеры, которые показывают, что оценки достижимы.
В работе [65] исследуется точность алгоритмов, на первом шаге которых с помощью эвристических правил строится некоторый начальный частичный тур, а на втором — этот тур достраивается градиентным алгоритмом до гамильтонова цикла. В качестве начальных частичных
туров могут использоваться решения задачи о паросочетании максимального веса и частичные туры, получаемые при разрыве циклов, соответствующих решениям задач о назначении и 2-сочетании максимального веса.
Паросочетанием в графе G называется множество ребер, попарно несмежных между собой. Для нахождения паросочетания максимального веса в графе G существуют эффективные алгоритмы, трудоемкость которых оценивается величиной О (п8). Паросочетание представляет собой частичный тур и поэтому может быть использовано в качестве начального частичного тура для градиентного алгоритма, описанного выше. Оказывается, что оценка точности такого алгоритма повышается.
Пусть Bmg — алгоритм, на первом шаге которого строится паросочетание М максимального веса, которое на втором этапе с помощью градиентного алгоритма достраивается до гамильтонова цикла хт^. Алгоритм ВтЯ имеет трудоемкость О (л3).
Теорема 4.9 165]. Неулучшаемая оценка алгоритма Bmg равна bj8.
Доказательство. Пусть Г, — частичный тур, получаемый после работы i-vo шага градиентного алгоритма, et — ребро, выбираемое на t-м шаге градиентного алгоритма, Т< = 7Z_3 J ^. Полагаем при этом, что 70 — М. Обозначим xt — множество ребер из х, которые не являются допустимыми для частичного тура 7z_i, считая, что Xj = х fl М.
Покажем, что | х^-ц | — |xz | ^ 5, i = 1, ..., $, где s — число шагов градиентного алгоритма. Недопустимыми ребрами из х для произвольного частичного тура могут быть только те ребра, которые инцидентны внутренним вершинам частичного тура или замыкают в цикл некоторую цепь в частичном туре. При добавлении к частичному туру Т[_\ ребра et число внутренних вершин в новом частичном туре увеличивается не более чем на два, откуда следует | х^х | — | xt | 5. Отметим, что в силу структуры ребер из М любое ребро et смежно точно двум ребрам из М и, если | х^х | — | xz | = 5, то ребро ес смежно двум ребрам из М \ х. В справедливости последнего факта легко убедиться, заметив, что внутренним вершинам в 7Z, полученным на i-м шаге градиентного алгоритма, должны быть инцидентны четыре ребра из х.
Пусть у1х — суммарный вес тех ребер ет) I ^ m ^ t, добавление которых к частичному туру Тт-х приводит к появлению пяти ребер из х, не допустимых для частичного тура Тт) но допустимых для 7т_ь a z/2 — суммарный вес тех ребер ет, 1 ^ т ^ ц добавление которых к частичному туру Тт-\ приводит к недопустимости не более четырех ребер из х, допустимых для Тт_д. т. е.
02= 5 с(ет) —m=l
Считаем, что у” = уз = 0. Рекуррентно введем величины уз, у\, I = = 0, 1, ..., s, полагая уз = с (М), у® = 0,
Уз = Уз"1, У* = У4~*» если |х,+1| — | xz | ^ 4,
и^3 = Уз-1 — с (ха — с UtY
Уд —- уд-' + С (Xz) -J с (Xi), если | xt+11 — | xt | = 5,
где Хь x'i — ребра, смежные ребру et из паросочетания Д4.
По индукции, используя только определение величин у{, у^ у^ $ и тот факт, что на каждом шаге i градиентного алгоритма выбирается ребро еь имеющее максимальный вес среди допустимых ребер, легко выводим неравенства
5у{ + 4у17> с (xw) — 0 (М П х),(4.28)
У^>с(М П х\(4.29)
В силу максимальности паро< четан ия М верно, что с (е^ ^ о (xj + + с (Xf) для i, если | х^\ | — | х, | = 5. Отсюда следует
*>у\.(4.30)
Кроме того, в силу определения величин у^ у1^ имеем у^ + у{ = с (7И). Используя известный факт, что в (714) > е (х)/2, получаем
ук + уд>с(х)/2.(4.31)
Неравенства (4.28) — (4.31) справедливы на любом шаге I градиентного алгоритма, в том числе и на последнем шаге s. Но xs+i = х. Поэтому, сложив неравенства (4.28), (4.29) с утроенным неравенством (4.31), получим
5у? + 4у® 4- 4уз г Зу! > 5с (х)/2.
Учитывая неравенство (4.30), имеем
4у( + 4у? + 4у^ + ^уд > 5с (х)/2.
Но
с (хв) = S с (е0 4* ® (М) “ Ух + У* + Уз + А« i=\
Из двух последних соотношений вытекает, что с (хй)/с (х) >.
Покажем, что оценка 6/8 неулучшаема. Для этого рассмотрим матрицу весов,вкоторойл =66, 03/4-1,3/4-2 = 2,03/4-2,3/4-3 = 03/4-3,3/4-1 =
— 1, f =0,1, ...,2к —1, Сд^к—Л = С?,в»—6= ... = Сз*—2,3*4-3 — 1.
Значения остальных элементов равны нулю. Тогда х= {(1, 2), (2, 3), ... ..., (66-1,66), (66,1)) ис (х) = 86, а М ={(1, 2), (4, 5), (7, 8),...
..., (66 —2,66 — 1),(3, 66), (6, 66 — 3), ....(36, 36 + 3)}; ребрами
с ненулевыми весами в х”18 являются ребра
{(1,2), (4, 5), ... , (66 — 2,66—1), (1,66), (4,66 — 3),...
..., (36—2, 36 + 3), (36, 36 + 1)}.
Таблица 12
Алгоритм
Трудо емкость
Точность
«Иди в дальний^
О (п2
1
2
Градиентный
О (л3)
1п
Паросочетание + градиентный
О (л3)
5
8
Паросочетание + паросочетание + разрыв + градиентный
О (л8)
2 — сочетание + паросочетание
О nV
13
18
Паросочетание + паросочетание в модифицированном графе
О :л3)
3
Серия из четырех туров для метрической задачи
О (п4'
Поэтому 0 Vxmg>> = 46 + к + L Следовательно, для ЗКМ с такой матрицей весов
^8*8^8 Хп *
Теорема доказана.
Задача о назначении является частным случаем задачи о паросо- четании и состоит в нахождении паросочетания в двудольном графе.
2-сочетанием называется такое множество ребер S^E, что каждой вершине графа инцидентно точно два ребра из этого множества. Трудоемкость алгоритма нахождения максимального по весу ребер 2- сочетания — О (/г4).
Пусть S — 2-сочетание максимального веса в графе G. Если S — не гамильтонов цикл, то S состоит из подциклов, включающих не менее трех ребер. Удалим из каждого такого цикла ребро минимального веса и достроим полученный частичный тур градиентным алгоритмом до гамильтонова цикла. Так как вес 2-сочетания S не меньше, чем вес гамильтонова цикла максимального веса, и из S удаляется не более трети ребер, то гарантированная оценка такого алгоритма — 2/3. В несимметричной ЗКМ, решив задачу о назначении на максимум, можем получить орциклы из двух дуг, и поэтому при разрыве таких орциклов удаляется не более половины дуг. Следовательно, гарантированная оценка градиентного алгоритма, начинающего работу с решения задачи о назначении (после разрыва циклов) в качестве начального частичного тура, равна 1/2.
В табл. 12 представлена сводка результатов об алгоритмах с известными гарантированными оценками решения симметричной ЗКМ.
Глава 5
АЛГОРИТМЫ РАЗБИЕНИЯ ДЛЯ РЕШЕНИЯ ЗАДАЧ МАТЕМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ СО СМЕШАННЫМИ ПЕРЕМЕННЫМИ
МЕТОД ВЕНДЕРСА
Рассмотрим метод разбиения, предложенный Вендерсом [187], для решения задач математического программирования следующего вида:
max ^с£х + f (У^/Ах + F (у^^Ь» х>0, у gS}. (5.1)
Здесь матрица А имеет размерность т X р, х £ Ер (Ер — р-мерное евклидово пространство); b £ Ет\ с £ Ер; S — произвольное подмножество Eq\ f — скалярная функция от у; F — /и-вектор, компоненты которого являются функциями от у.
Решение задачи (5.1) методом Вендерса сводится к поочередному решению двух задач — задачи математического программирования над множеством S, которая может быть линейной, нелинейной, дискретной, и задачи ЛП над Ер. Допустимая область первой задачи постепенно сужается путем последовательного добавления ограничений. Задача ЛП служит для испытания на оптимальность решений задачи математического программирования над множеством S и, если необходимо, порождает новые ограничения.
Пусть D а Ер X S — множество допустимых решений (х, у) задачи (5.1)2. Определим множество G ст Е X S следующим образом:
G = {(х0, у) € Е х S/x £ Ер, (х, у) £ D, d'x -НкУ» я0}.
Отсюда вытекает, что множество G не пусто тогда и только тогда, когда D не пусто, и в случае существования оптимального решения задачи (5.1)
шах {х0Кх0, y^G^ = max ^х + / (уУ(х, y^D^.
Используя теорию двойственности ЛП, можно по выпуклому многогранному множеству
Р = {u £ EjA^u "^с, м > 0}
и выпуклому многогранному конусу
Со = {“ € Ет]АТи ^ 0, и > 0}
Ь Ь I х Ь записы- у) \у) \у) \и)
ваются соответственно в виде (х, у), (х0, у), (х0, х, у), (и01 и).
получить следующее представление множества G:
G = {(^о» У^Ф — F ку^и >хй — (^ Для u е Р,ф — F^f и>0 для и£С0}.
Следовательно, G является множеством решений системы неравенств Хо^НУ^А-ф — Р^Уи1, t=l,
Ф-р^Уи^о, 1 = 1,
где и^ Z = 1, ..., а,— вершины выпуклого многогранного множества Р; vs I = 1, ..., Р,— направляющие векторы неограниченных ребер выпуклого многогранного конуса Со.
Метод Вендерса основывается на том, что Р является множеством допустимых решений задачи
mVn№ — F^Vu/u^PV(5.2)
двойственной к (5.1) при произвольном постоянном у.
Решая эту задачу при различных у, можно определить и1 и г)^ постепенно выписать все ограничения, определяющие область G, и найти решение задачи
max{xo/(*o, y^GV(5-3)
В случае получения оптимального решения ^х^ у) задачи (5.3) следует выполнить еще один шаг для нахождения оптимального решения х € € Ер задачи ЛП
шах{стх/Лх^6 — F (у), х^О}.(5.4)
Таким образом, для отыскания оптимального решения задачи (5.1) следует решить задачи (5.3) и (5.4).
Необходимо отметить, что решение задачи (5.3) затруднительно в силу того, что для каждой вершины выпуклого многогранного множества Р и для каждого направляющего вектора одного из ребер конуса Со имеется по одному ограничению, так что их общее число даже для задачи средней размерности может быть очень большим.
Так как нахождение оптимального решения задачи (5.3) в данном случае представляет больший интерес, чем построение множества G, то достаточно построить только те ограничения из G, которые определяют оптимальное решение этой задачи. Метод Вендерса [187] предназначен для получения таких ограничений, т. е. он позволяет решать задачу (5.3) без знания всех вершин выпуклого многогранного множества Р и всех направляющих векторов неограниченных ребер конуса Со.
Предположим, что множество S замкнутое и ограниченное и что / (у) и компоненты F (у) являются непрерывными функциями на Eq.
Вендерсом [187] доказана следующая лемма.
Лемма 5.1. Если выполнены перечисленные выше предположения относительно функций Ну), F (у) и множества S и задача (5.3) имеет допустимое решение, то х0 не имеет конечной верхней границы на G тогда и только тогда, когда выпуклое многогранное множество Р является пустым.
Рассмотрим задачу математического программирования следующего вида! '?
max {х0/х0 ^/(у) + Ф — F(у))ти1, I€ /а, ф— F(у))ти1 >О,
*€/в» У €5},(5.5)
где /а и /р — соответствующие подмножества индексов 1, ..., а и 1, ... ..., 0. Множество допустимых решений этой задачи описывается с помощью некоторого подмножества ограничений, определяющих область G. Если задача (5.5) не имеет допустимых решений, тогда в силу того, что G ^ G (Q) (G (Q) — множество допустимых решений задачи (5.5)), задача (5.3) также не имеет допустимых решений.
Вендерсом [187] установлен также следующий критерий оптимальности.
Лемма 5.2. Если (х0, у) — оптимальное решение задачи (5.5), то оно является оптимальным для задачи (5.3) тогда и только тогда, когда
min \ф — Р ШТ и^ ^— f (у).
Если критерий оптимальности не выполняется, то в задачу (5.5) вводится одно или два новых ограничения. Эти ограничения дает задача (5.2).
Перейдем к краткому изложению алгоритма Вендерса.
Алгоритм
Рассматриваем задачу (5.5), в которой имеется только несколько ограничений или нет ни одного, кроме ограничения у ^ S.
Решаем задачу (5.5). Если она не имеет допустимых решений, то их не имеют и задачи (5.3), (5.1). В противном случае находим оптимальное решение (xj, у*) или получаем информацию о том, что эта задача не имеет конечного оптимального решения. Если ^*=00, то в качестве у* выбираем произвольный элемент из S.
Решаем задачу ЛП (5.2) при у = у*. Если она не имеет допустимых решений, то на основании леммы 5.1 задача (5.1) не имеет конечного оптимального решения, если она допустима. Если задача (5.2) имеет неограниченное решение, то переходим к п. 6.
Если'
Ф — F (у*))т и* = Xo — f (у*),
где и* — оптимальное решение задачи (5.2), то согласно лемме 5.2 (хо, у*) является оптимальным решением задачи (5.3). Далее находим решение х* задачи (5.4). Тогда (х*, у*) — решение исходной задачи (5.1).
Если
Ф — F (у*))т и* < хо — / (у*),(5.6)
то решение у* не удовлетворяет ограничению
Ф — Р(у)У и*>х0 — Цуу(5.7)
Добавим это ограничение к задаче (5.5) и перейдем к п. 2.
Если задача (5.2) не имеет конечного оптимального решения, то находим вершину и* выпуклого многогранного множества Р ни* — направляющий вектор одного из ребер конуса Со такие, что целевая функция задачи (5.2) стремится к — оо на луче и = и* + Хи*, X ^ 0. В этом случае, очевидно,
(6—f(y*))Tv*<0,так что у* не удовлетворяет ограничению(b-F^Tv*>0.
Добавим это ограничение к задаче (5.5). Если для найденной вершины и* выпуклого многогранного множества Р выполняется условие (5.6), то в задачу (5.5) вводим также ограничение (5.7). Переходим далее к п. 2 алгоритма.
Замечание. Вендерсом предложен также алгоритм для решения задач вида (5.1), отличающийся от описанного выше тем, что в п. 3 вместо двойственной задачи (5.2) решается прямая (5.4), если она допустима.
Алгоритм Вендерса заканчивается за конечное число шагов. Это следует из конечности числа ограничений в задаче (5.3).
В конце каждого шага алгоритма Вендерса можно вычислять верхнюю и нижнюю границы значения х0 на множестве G, причем такие, которые сходятся к оптимальному значению тогда, когда в процессе решения достигается оптимальность.
ПРИБЛИЖЕННЫЙ АЛГОРИТМ
Нахождение точного решения задачи (5.1) по алгоритму Вендерса часто связано со значительными затратами машинного времени и не всегда приводит к успеху. Известен широкий круг прикладных задач, сводящихся к моделям вида (5.1), которые решаются в условиях ограниченных ресурсов (например, времени работы центрального процессора, периферийного оборудования вычислительной системы и др.), причем, как правило, имеющиеся ресурсы изменяются с течением времени. В этих условиях обычно есть возможность получить лишь приближенное решение задачи, которое при необходимости может быть улучшено, если позволяют отпускаемые на решение задачи ресурсы.
В настоящем параграфе рассмотрим алгоритм [137] для приближенного решения задач вида (5.1), использующий идеи Вендерса [187]. Этот алгоритм в отличие от алгоритма Вендерса позволяет ограничиваться на каждом шаге лишь приближенным решением задачи математического программирования над множеством S. Последовательность значений целевой функции задачи (5.1), получаемая в ходе применения приближенного алгоритма, является возрастающей.
Здесь будем использовать обозначения, введенные в предыдущем параграфе. Предположение об ограниченности множества S не обязательно.
Обозначим С — выпуклый многогранный конус в Ет^\ вида
С = {(и0, и)!А'и— си^О, и^О, ио^О9 и^Ет, иа— скаляр}.
Рассматриваемый ниже алгоритм основывается на использовании следующей леммы [137].
Лемма 5.3. Если выпуклое многогранное множеству Р не пусто, то для*того, чтобы точка (х0, у) принадлежала множеству G, необходимо и достаточно, чтобы
min \ф — F (у))' Щи ^Р^х0— [ ^У
Алгоритм
Задаем Q0 — некоторое конечное подмножество конуса С, полагаем v = 0. Определяем множество
G(Q°) = fl фхв, y^u^-Vu'F^ — uJVy^u'b, y^S\ <ими^Ом
как допустимую область задачи (5.5). Если в качестве Q0 выбрано множество, состоящее из одной точки — нулевого вектора из Ет^\, который всегда принадлежит С, то G (Q0) включает только одно ограничение вида у С S.
Если множество
G № - А {(х0, У^и6хй + UTF (у) — uj (у) ^ и’Ъ, у eS} («o,u)€Qv
пусто, то при v = 0 или при Q4”1 ^ Q1, / = 1, ..., v, исходная задача не имеет допустимых решений; при Q1™1 = Qz, I £ {1, ..., v), последняя найденная в области G точка (х0, у) является оптимальным решением задачи (5.3). Переходим к п. 8.
Если G (Qv) У= 0, то выбираем некоторую точку (xq, yv) из этого множества.
Решаем задачу ЛП
min {(6 — F (yv))T и/и 6 Р}.(5.8)
Если она не имеет допустимых решений, т. е. Р = 0, то исходная задача или недопустима, или не имеет конечного оптимального решения. Очевидно, что такая ситуация может встретиться лишь для v = 0. Если задача (5.8) имеет неограниченное решение, то переходим к п. 7.
Если задача (5.8) имеет конечное оптимальное решение и
Ф - F (yv)Y u^v >x"0-l (у\(5.9)
то согласно лемме 5.3 (хХ, yv) g G. В случае, когда можно ограничиться приближенным решением задачи (5.1) со значением целевой функции, не меньшим х^, переходим к п. 8, обозначая (х^, у^ через (х0, у). В противном случае образуем множество
< - (Qv+‘) - {(х0, у) е G (Qv)/x0 > ф - F W и^х + f (yv)}, (5.10) полагая Qv+I = Qv. Заменяем v на v + 1 и переходим к п. 2 алгоритма.
Если
Ф — F ОТ «v+’ < х? - f (yv),(5.11)
т. е. точка (1, «v+1) из С не принадлежит Qv, то образуем множества
Qv+' =QV и ((1, «’+’)},
G(Qv+1) = G ФП П ((x0, Mb- F (y^mv+1 >x0-f (y)}.(5.12)
Множество G (Qv+1) получаем из множества G (Qv) добавлением ограничения вида
(6-F(y))TMv+l>x0-f(y).(5.13)
Заменяя v на v + 1, переходим к п. 2 алгоритма.
Если задача (5.8) имеет неограниченное решение, то симплекс- метод позволяет найти точку и^х и луч vv+1 такие, что значение целевой функции в задаче (5.8) стремится к — оо вдоль луча
и-и^ + ^\ Х>0.
В этом случае очевидно, что
ф—РОТ^+'<0>(5.14)
т. е. точка (0. yv+1) Qv.
Если выполняется неравенство (5.9), то образуем множества Qv+' = Qv U ((0, yv+')},
G(Qv+,) = G(Qv) П {(x0, yW-FWtF^OV (5.15)' Если имеет место неравенство (5.11), то образуем множества
Qv+‘ = Qv у {(1, ц^, (0, vv+*)},
G (Q^*) = G ^ f| {(x0, yW - F (y))T uv+' >x0-f (z/), (5.16) Ф — F(y))Tyv+’>0}.
Таким образом, если выполняется условие (5.9), то множество G (Qv+I) получаем из G (Qv) добавлением ограничения вида
Ф-Р^У^>0.(5.17)
Если имеет место неравенство (5.11), то G (Qv+1) получаем из множества G (Qv) путем добавления двух ограничений вида (5.13) и (5.17).
Заменяя v на v + 1, переходим к п. 2.
Решаем задачу ЛП
max ^стх/Ах-^Ь— F (у), х;>0}.(5.18)
Пусть х — ее оптимальное решение. Если переход на данный пункт алгоритма осуществлен с п. 2, то (х, у) — точное решение задачи (5.1). В противном случае (х, у) — приближенное решение задачи (5.1) со значением целевой функции, не меньшим х0, т. е.
сх + f (у) > хо.
В результате последовательного применения рассмотренного приближенного алгоритма отыскивается возрастающая последовательность значений целевой функции задачи (5.1). Действительно, если (хо, у1\ (хо, У7), G / 6 {0, 1, ..., v}, I < /,— найденные по алгоритму точки из области G, то на основании формул (5.9), (5.10) имеем
Ф — F + / (/) < Ж <(6 - F W и'+' + f (у'), откуда
Ф-F (VW и‘*х + f (yz) < (b - F ^ЛУ uw + f (у1).
Используя теорему двойственности для задач ЛП, заключаем, что стх* -Vtkyh<c'^
где (хх, у% (х/, у^ — допустимые решения задачи (5.1); xl, xi — оптимальные решения задач вида (5.18), полученные при у, равном соответственно у1, yL
Теорема 5.1. к-е (к = 1, 2, ...) допустимое решение задачи (5.1) отыскивается с помощью описанного алгоритма за конечное число шагов, не превышающее величины N + R — I + k, где N и R — соответственно общее число вершин и направляющих векторов неограниченных ребер выпуклого многогранника множества Р и конуса Со, / — число таких случаев, когда за один шаг алгоритма отыскиваются одновременно новая (по сравнению с ранее найденными) вершина Р и новый направляющий вектор одного из ребер конуса Со.
Доказательство. В процессе выполнения алгоритма могут встретиться такие случаи: (xq, yv) С G, (хо, у^ G, где v £ {0, 1, ...}. Рассмотрим каждый из этих случаев отдельно.
Если (хо, у^ € G, то выполняется неравенство (5.9). В случае, когда надо продолжить итерационный процесс, образуем множество G (Qv+1) по формуле (5.10), полагая Qv+1 = Qv-
Если на v-м шаге алгоритма окажется, что (хо, у^ С G, то точка (1, uv+1), найденная на этом шаге, может совпадать с одной из точек множества Qx. Таким образом, если по рассмотренному алгоритму найдено к точек из области G, то это значит, что в процессе выполнения алгоритма не более к вершин выпуклого многогранного множества Р могло быть найдено повторно.
Рассмотрим случай, когда (хо, y^^G, т. е. когда имеет место или неравенство (5.11), или неравенство (5.14), или одновременно неравенства (5.11) и (5.14).
Если выполняется условие (5.11), то (1, wv+1) g Q\ т. е. на v-м шаге алгоритма получена новая вершина выпуклого многогранного множества Р. Образуем множества Q^1 и G (Qv+l) по формулам (5.12).
При выполнении неравенства (5.14) (0, uv+1)gQv, т. е. на v-м шаге найден новый направляющий вектор одного из ребер конуса Со. Множества Qv+1 и G (Qv+1) образуем по формулам (5.15).
Если условия (5.11) и (5.14) выполняются одновременно, то (1, ^v+1)^Qv, (0, yv+1) ^ Q\ В этом случае на v-м шаге найдены новая
вершина Р и новый направляющий вектор одного из ребер конуса Со. Образуем множества Qv+1 и G (Qv+1) по формулам (5.16).
Следовательно, максимальное число случаев (xq, yv)(? G, v £ {О, 1, ...}, которые могут встретиться в процессе выполнения алгоритма, равно N + R — /.
Теорема доказана.
ПРИМЕНЕНИЕ МЕТОДА ВЕНДЕРСА ДЛЯ РЕШЕНИЯ
ОДНОГО ТИПА ЧАСТИЧНО ЦЕЛОЧИСЛЕННЫХ
ОПТИМИЗАЦИОННЫХ ЗАДАЧ
Рассмотрим частично целочисленную оптимизационную задачу следующего вида:
max {tfx + xTZ)x+/(у)/Лх+7^^х>0, y£S},(5.19)
где х € Ер; S — ограниченное множество целочисленных векторов из Eq; Л — матрица размерности т X p\D — симметричная отрицательно определенная матрица порядка р\ b и с — фиксированные векторы в Ет и Ер соответственно; ) (у) — скалярная функция, определенная на 5; F (у) — m-компонентная векторная функция, также определенная на S.
Задачи вида (5.19), имеющие квадратичную целевую функцию при непрерывных переменных, возникают при исследовании реальных проблем и имеют, как правило, большую размерность.
Изложим основанный на идеях декомпозиции Вендерса алгоритм для точного решения задач вида (5.19) [119].
Введем некоторые обозначения и сформулируем теорему и леммы, необходимые для понимания алгоритма.
Обозначим С — множество из Е^р^х вида
С = {(«о, и, х)/Аги—2Dxu0— cuQ^0, u^O, х^О,
О^«о^1, и^Ет, х^Ер, uQ — скаляр},
Со — выпуклый многогранный конус в Ет вида
Со = {а/Л^О, и>0\,
Р — выпуклое многогранное множество в Ет^р вида
Р = {(и, х^А^и — lDx>ct w^O, х^О}.
Перепишем задачу (5.19) в эквивалентной форме, обозначив х0 скалярную переменную:
шах {х0/х0 — слх — xTDx — f (у) ^ 0, Ах + F (у) Ь,
х>0, х^Ер, y^Sy(5.20)
Очевидно, что (х0, х, у) — оптимальное решение задачи (5.20) тогда и только тогда, когда (х, у) — оптимальное решение задачи (5.19) и х0 = сТх + х Dx + / (у).
Определим следующее множество:
6 = П{(х0, у)/и^ + uTF (у) — uj (у) ^ uTb — u^Dx, y^S\.
(ue,utxKC
Теорема 5.2. 1. Задача (5.19) не имеет допустимых решений тогда и только тогда, когда задача
тах{я0/(я0, y^G\(5.21)
не имеет допустимых решений.
Если (х, у) — оптимальное решение задачи (5.19) и х0 — с^х + + xTDx A- f (у\ то (х0, у) является оптимальным решением задачи (5.21), ах — оптимальным решением задачи квадратичного программирования
max {clx + x^Dx/Ax< b—F(у), я>0}.(5.22)
Если (х0, у) — оптимальное решение задачи (5.21), то задача (5.22) допустима и оптимальное значение ее целевой функции равно я0 — / (yY Если же х — оптимальное решение задачи (5.22), то (х, у) является оптимальным решением задачи (5.19) с оптимальным значением xG для ее целевой функции.
Доказательство. Рассмотрим задачу выпуклого программирования
min {0 • х/— сЧ — x^Dx ^ / (у*) — Хо,
Ax^b — F^Y y*£S, я>0, x^EPY(5.23)
область определения которой совпадает с областью определения задачи (5.20) при фиксированных у* Е S и Яо.
Обозначив г скалярную переменную, рассмотрим вспомогательную задачу
min {2/— г — сТх — x^Dx ^ — Яо +
г-^у*), Ах^.Ь— F(у*), у* Е5, я^О, х^Ер, z^O}, (5.24)
где у* £ S и Яо фиксированы.
Если множество допустимых решений задачи (5.24) не пусто, то она имеет конечное оптимальное решение в силу ограниченности снизу целевой функции. Точка (я, z), где z = 0, является оптимальным решением задачи (5.24) тогда и только тогда, когда х — допустимое решение задачи (5.23).
Очевидно, что для нелинейного ограничения — г — с х — х Dx ^ ^ —хо 4- / (у*) задачи (5.24) выполняется условие регулярности.
Выпишем задачу, двойственную к (5.24): найти
max (L ^и0, и, я, 2) = z + Цо (— 2 — ^х — ххDx + Яо — / (у*)) +
А- и ^Ах— b A- FVy*Y\(5.25)
при ограничениях
^= _ ц6с — 2u0Dx + Лтм> 0,(5.26)!
^=1-«0>0,(5.27)
мо^О, и^О.(5.28)
Если одна из задач(5.24) и (5.25) — (5.28)разрешима, то и другая
также разрешима, причем экстремальные значения обеих равны.
Неравенство (5.26) транспонируем и умножаем справа на
х ^ 0 • — uocvx — 2uoxTDx + и'Ах ^ 0.
Отсюда
Su^Dx ^ ит Ах — иосгх.(5.29)
Если (х, 2) и (и0, и, х, z) — соответствующие допустимые решения пары двойственных задач (5.24) и (5.25) — (5.28), то
г — uQz — и^х — u^Dx + uoxo — uj (у*) + иУАх — uTb + urF (у*) ^ z.
Учитывая (5.29), получаем
иахо — uof (х*) + uTF (у*) ^ итЬ — u^Dx + uoz. (5.30) !
Это неравенство имеет место для любых (и0, и, х) из С и произвольного 2|> 0.
Следовательно, при произвольных хо и у* £ S задача (5.23) (а одновременно и задача (5.20)) является допустимой тогда и только тогда, когда выполняется условие (5.30) для любой точки (и0, и, х) £ С и 2 = 0.
Дальнейшее доказательство теоремы аналогично доказательству соответствующей теоремы из [137].
Если функции / (у), F (у) имеют такие свойства, что задача' (5.21) может быть решена известными методами, то из теоремы следует, что решение задачи (5.19) может быть получено с помощью двухшаговой процедуры. Первый шаг включает решение задачи (5.21), в результате которого приходим к одному из следующих выводов:
задача (5.19) не имеет допустимых решений;
задача (5.21) имеет оптимальное решение (х0, у); после его получения требуется второй шаг для нахождения оптимального решения х из Ер задачи квадратичного программирования (5.22).
Следует отметить, что решение задачи (5.21) затруднительно, потому что для этого требуется построение полного множества ограничений, определяющих область G. Представление об этом множестве ограничений дает следующая лемма.
Лемма 5.4. Если Р ^ 0, то для того чтобы (х0, у) ^G. необходимо и достаточно, чтобы
min {ф — F (у))т и — x^Dxl(u, х) £ Р} > х0 — / (у).
Оптимальное решение задачи
min фЬ — F (у))т и — x^Dx!(u, х) £ Р},
область определения которой не зависит от у, достигается в одной из точек выпуклого многогранного множества Р или стремится к —оо при движении вдоль одного из лучей конуса Со.
Область G определяется конечным числом ограничений. Действительно, множество S ограничено и каждому его элементу соответствует одна из точек выпуклого многогранного множества Р или один из лучей конуса Со. Но число ограничений, определяющих область G, может оказаться очень большим.
Так как мы заинтересованы в нахождении оптимального решения задачи (5.21) больше, чем в самом множестве G, то достаточно построить только те ограничения из G, которые определяют оптимальное решение этой задачи. Рассматриваемый ниже алгоритм предназначен для получения таких ограничений.
Обозначим Q — непустое подмножество из С. Определим подмножество G (Q) из £^4-1 по формуле
G (Q) = А {(х0, y)lu^ + uTF (у) — uj (у) ^ uTb — uoxTDx, y^SV (u9,u,x)€Q
Рассмотрим задачу целочисленного программирования следующего вида:
max {х0/(х0, y)£G(Q)}.(5.31)
Если эта задача недопустима, тогда в силу того, что G Е G (Q), задача (5.21) также недопустима.
Лемма 5.5. Если (xQi у) — оптимальное решение задачи (5.31), то оно является также оптимальным решением задачи (5.21) тогда и только тогда, когда
min {(6 — F (у))т и — xTDx/(^, х) £ Р} = х0 — / (у).(5.32)
Алгоритм
Задаем Q0 — некоторое конечное подмножество С. Полагаем v = 0. Определяем множество
G(Q°) = А {(Хо, y)luox(l-FutF{y) — u()f(y)^.iFb — uoxsDx, y^S\. (u^u,x)^Qn
Решаем задачу целочисленного программирования следующего вида:
max{x0/(x0, y)CG(Qv)},(5.33>
где
G (<Л = А {(х0, уМиохо + uTF (у) — uof (у) С uTb — uoxTDx, у ^S}. (uitutx)eQv
Если она недопустима, т. е. G (Qv) = 0, то алгоритм заканчивается, так как на основании того, что G ^ G (Qv), и п. 1 теоремы 5.2. заключаем, что задача (5.19) недопустима. В противном случае находим оптимальное решение (xq, yv) задачи (5.33).
Решаем задачу квадратичного программирования вида
min {(6 — F (yv))T и — x^Dxliu, х) £ Р}.(5.34>
Если она недопустима, т. е. Р = 0, то задача (5.19) недопустима. Алгоритм заканчивается. Очевидно, что такая ситуация может встретиться лишь для v = 0. Если задача (5.34) имеет неограниченное решение, то переходим к п. 6.
Если задача (5.34) имеет конечное оптимальное решение (и^\ х'4"1) и
ф-F(^Гu^1 -xTv+1Dxv+* <xvQ-f ^,(5.35)
т. e. точка (1, uv+1, xv+1) из С не принадлежит Qv, то образуем множества
Qv+' = Qv J {(1, uv+I, xv+1)},
G (Qv+1) = G (Qv) f) ((^o. Mb- F (ytf u^1 - x^Dx^ >x0-f (x)}.
(5.36)
Заменяя v на v + 1, переходим к n. 2 алгоритма.
Если
(6 - F (yv))T wv+1 - x^Dx^1 = x^-f ^\
то на основании леммы 5.5 точка (xq, yv) является оптимальным решением задачи (5.21), a (xv+1, уЛ—оптимальным решением задачи (5.19) с оптимальным значением Хо для ее целевой функции. Алгоритм заканчивается.
Если задача (5.34) не имеет конечного оптимального решения, то находим множество /v лучей i^+1, вдоль которых целевая функция этой задачи стремится к —оо. Очевидно, что
ф— F ^У и^х <0 для всех 1^Г.(5.37)
х е. (0, уГн, 0) (Д Qv. Образуем множества
Qv+' = QV и {(0, иГ+1, 0), (0, У^\ 0), ... , (0, yzvv+1, 0)}, (5.38) 6 (Qv+I) = G (Qv) П {(x0, y)/min (b - F^У y?+1 > 0}.
где Zv = 7V, 7V — мощность множества Г. Заменяя v на v + 1, переходим к п. 2 алгоритма.
Рассмотрение вместо одного луча множества Г лучей в п. 6 алгоритма позволяет на каждом шаге добавлять к задаче целочисленного программирования (5.33) Г ограничений, что ведет к уменьшению числа шагов алгоритма.
Нетрудно показать, что описанный алгоритм заканчивается за конечное число шагов с получением оптимального решения задачи (5.19) или с заключением о том, что эта задача недопустима
Характерной особенностью этого алгоритма является возможность вычисления в конце каждого шага верхней и нижней границ значения х0 на множестве G, причем таких, что они сходятся к оптимальному значению тогда, когда в процессе решения достигается оптимальность.
Таким образом, для максимального значения целевой функции в задаче (5.19) имеем
шах ^(Ь— F (i/*))1 г?+* — xT,'+1Dxfe+v +f (у*)} ^ max {х0/(х0, у) С 0} ^ Хо. k^v
Найденное по данному алгоритму первое допустимое решение задачи (5.19) является и оптимальным.
§ 4. ПРИБЛИЖЕННОЕ РЕШЕНИЕ ЧАСТИЧНО ЦЕЛОЧИСЛЕННЫХ ОПТИМИЗАЦИОННЫХ ЗАДАЧ
Опишем алгоритм для приближенного решения задач вида (5.19), использующий идеи алгоритма, изложенного в § 2 данной главы.
В работе [801 для нахождения приближенных решений задач, подобных (5.19), предложен другой подход, в основе которого лежит схема декомпозиции Вендерса. Отмечено 1801, что этот подход применялся для решения задач ЧЦЛП.
Алгоритм
Этот пункт алгоритма совпадает с п. 1 алгоритма, рассмотренного в § 3.
Если множество G (Qv) не пусто, то выбираем некоторую точку (хо, yv) € G (Qv) и переходим к п. 4 алгоритма.
Если множество G (Qv) пусто, то при v = 0 или при Q1-1 =^ Ф Q^ i = 1, ..., v, задача (5.19) недопустима и работа по алгоритму заканчивается: при QZ i = Q\ i ^ {1, • •, v}, последняя найденная в области G точка (х0, у) является оптимальным решением задачи (5.21); если х — оптимальное решение задачи (5.22), то (х, у) — оптимальное решение задачи (5.19).
Решаем задачу квадратичного программирования вида (5.34). Если она недопустима, то задача (5.19) недопустима. Работа по алгоритму заканчивается.
Если задача (5.34) имеет конечное оптимальное решение (и^, х^) и выполняется условие (5.35), то по формулам (5.36) образуем множества Qv+I и G (Qv+1). Заменяя v на v + 1, переходим к п. 2.
Если
(6 — F (yv))T и^ - xT^Dx^ >x^-f (yv),(5.39)
то в силу леммы 5.4 (хо, yv) 6 G. В случае, когда можно ограничиться приближенным решением задачи (5.19) со значением целевой функции, не меньшим Хо, алгоритм заканчивается. Точка (xv+1,yv) является приближенным решением задачи (5.19). В противном случае образуем множество
G(Qv+I) = {(х0, у) 6 G ^jx0 >(b-F ^)У uv+* -
— xTv+1Dxv+‘ + / (z/v)}.(5.40)
Полагаем Qv+I = Qv, заменяем v на v + 1 и переходим к п. 2.
Если задача (5.34) имеет неограниченное решение, то находим множество Г лучей u?+1, i £ Р, вдоль которых целевая функция задачи стремится к —оо.
Очевидно, что имеет место неравенство (5.37). Образуем множества Qv+I и G (Qv+1) по формулам (5.38). Заменяя v на v + 1, переходим к п. 2.
Нетрудно доказать, что данный алгоритм позволяет найти некоторую последовательность допустимых решений задачи (5.19), упорядоченных в порядке возрастания значения целевой функции.
Теорема 5.3. к-е (k = 1, 2, ...) допустимое решение задачи (5.19) отыскивается с помощью описанного алгоритма за конечное число шагов, не превышающее величины S — R + F + к, где R — общее число направляющих векторов неограниченных ребер конуса Со, F — такое множество, что ^ Р = R.
Доказательство. В ходе работы алгоритма могут встретиться такие случаи: (хо, yv) ^ G, Uo, yv) € G, где v Е (О, 1, ...|. Рассмотрим каждый из них отдельно.
Случай (хо, у^ & G означает, что имеет место неравенство (5.35) или (5.37). Если выполняется условие (5.35), то (1, й^, xv+1) £ Qv. Образуем множества Qv+l и G (Qv+1) по формулам (5.36). Если имеет место неравенство (5.37), то это означает, что (0, w7+I, 0) ^ Qv, i Е Г. По формулам (5.38) образуем множества Q^' и G (Qv+1).
Таким образом, если (хо, у^ £ G, то на v-м шаге алгоритма отыскивается или одна новая точка выпуклого многогранного множества Р, или Р новых направляющих векторов неограниченных ребер конуса Со. Так как целевая функция задачи (5.34) зависит от у £ S, а множество S ограничено, то максимальное число найденных по алгоритму новых точек из Р и новых направляющих векторов конуса Со не превышает S. Следовательно, максимальное число шагов для получения новых точек выпуклого многогранного множества Р не превышает S — R. Поскольку на одном шаге алгоритма отыскивается Р новых направляющих векторов неограниченных ребер конуса Со, то для нахождения R таких векторов потребуется F шагов алгоритма, где £ Р = R.
Случай (хо, yv>i Е G означает, что имеет место неравенство (5.39). При этом возможно, что (1, и^, xv+1) Е Qv. Образуем множество G (Qv+I) по формуле (5.40), полагая Qv+1 = Qv.
Таким образом, если на v-м шаге алгоритма окажется, что (хо, ух) Е Е G, то точка (1, mv+', х^1), найденная на этом шаге, может совпадать с одной из точек множества Qv. Если по алгоритму найдено к точек из области G, то это значит, что не более к точек выпуклого многогранного множества Р могло быть найдено повторно. Теорема доказана.
Алгоритм был запрограммирован на языке ФОРТРАН-IV для ЕС ЭВМ. Решались частично целочисленные оптимизационные задачи еле.
дующего вида:Таблица 13
max {c[x + xTDx 4- c^y!Axx 4- x^y
-VA^y^b, x^0, x^Epl y^Sa EQ}9
tn
р
q
t
Тип ЭВМ
10
10
10
И
БЭСМ-6
20
20
20
19
БЭСМ-6
где cn c2 — фиксированные век
20
20
100
56
ЕС-1040
торы в ED и Eq соответственно;
20
100
100
85
ЕС-1060
Л3 и Л2 — матрицы размернос
50
100
50
100
50
20
105
96
ЕС-1040
ЕС-1060
ти т X р и т х q соответственно; D — симметричная отрица-
тельно определенная матрица порядка р; 6 — вектор в Ет\ S — множество ^-мерных векторов с компонентами 0 или 1.
При реализации алгоритма для решения задач квадратичного программирования применялся метод Франка — Вулфа, а для решения задач целочисленного программирования — подход, основанный на использовании метода вектора спада [1371.
Был проведен на ЭВМ машинный эксперимент по решению тестовых задач, условия которых генерировались с помощью датчика псевдослучайных чисел. Коэффициенты матриц Ль Л2 выбирались целыми числами, равномерно распределенными на [—10, 101, а компоненты векторов съ с2и b — целыми числами, равномерно распределенными на [—5/4, 101, I—10, 10] и [1, 10 р^ соответственно, где р— число непрерывных переменных. Элементы dkv, h^i, квадратной матрицы D порядка р выбирались целыми числами, равномерно распределенными на [—5, 51 таким образом, что'
р
daCO, ^,<Х\йек\.(5.41)
где р dn -Vl\dtk\ = ^, Р€(-5,0].
Известно [1681, что при выполнении условий (5.41) матрица D отрицательно определена.
Результаты вычислений приведены в табл. 13, где т — число ограничений; р и q — число непрерывных и целочисленных переменных соответственно; t — время решения задачи, с.
§ 5. ПРИМЕНЕНИЕ МЕТОДА ВЕНДЕРСА
ДЛЯ РЕШЕНИЯ ЗАДАЧ ЧАСТИЧНО ЦЕЛОЧИСЛЕННОГО
ПРОГРАММИРОВАНИЯ СПЕЦИАЛЬНОГО ВИДА
Рассмотрим следующую частично целочисленную оптимизационную задачу:
min {maxq^yj^ аих, ^dt, i^M ^ {1, ... , m},
k^JR i^N
S */ + Ук = Ьк, k^R = {1, ... , r}, yk>0, keR, (5.42)
xf;>0, х$ — целое, j ^N {1, ... , n}}.
Здесь Nk a N для к e R, Ns f) Nt = 0 при s ^ t, s, t £ R, элементы векторов q = фг) ..., qr) и b = фъ ..., br) — соответственно положительные и неотрицательные вещественные числа.
К моделям вида (5.42) приводят задачи, возникающие в современных сетях связи [89], и др.
В работе [89] рассмотрен частный случай задачи (5.42) — полностью целочисленная задача, в которой элементы матрицы А = [а^] и векторов d = (db .., dm) и b — неотрицательные целые числа.
В данном параграфе доказана теорема о допустимости и существовании оптимального решения задач вида (5.42), предложены алгоритмы, базирующиеся на использовании идей декомпозиции Вендерса [1871, для точного и приближенного решений таких задач, доказана шх сходимость [118].
Перепишем задачу (5.42) в эквивалентной форме, обозначив 0 скалярную переменную:
min{0Mx^d, Tx + y = b, у — сб^О, //^0, x^S}. (5.43) Здесь матрица А, векторы d, b — те же, что и в (5.42); Т — матрица размерности г X п, которая используется для матрично-векторной формы записи соответствующего условия задачи (5.42); с = (^, ... ..., сг) = (1/^, ..., Uqr); S — множество неотрицательных целочисленных векторов в Еп ^Еп — n-мерное евклидово пространство).
Очевидно, что (0, х, у) является оптимальным решением задачи (5.43) тогда и только тогда, когда (х, у) — оптимальное решение задачи (5.42) и 9 = max qkyk.
Обозначим С — выпуклый многогранный конус в Ещ^ вида
С = {(«1, и^ и^ iQIE (иг — и3) 4- Еи4 ^ 0, ut ^ 0, / — 1, ... , 4),
где Е — единичная матрица порядка г.
Определим следующее множество:
G = П {(9, x)Rd— Ах)1 их + ф—Тх)тф2— и3) + сби^С, ки^и^и^и^С
о>о, %е sb
Теорема 5.4. 1. Задача (5.42) не имеет допустимых решений тогда и только тогда, когда множество G пустое.
Если (х, у) — оптимальное решение задачи (5.42) и ^ = = max qkyk) то (0, х) — оптимальное решение задачи
min {0/(0, x)eG),(5.44)
а у удовлетворяет системе соотношений
Тх + у = Ь, у — с0 0, у^О.(5.45)
Если (0, х) является оптимальным решением задачи (5.44), то задача (5.45) допустима. Если у удовлетворяет системе соотношений (5.45), то (х, у) — оптимальное решение задачи (5.42).
Доказательство. Рассмотрим задачу ЛП вида
шах {0 • у 10 • у ^ d— Лх*, у^Ь— Тх*, —у^—ф— Тх%
У<с9*. y>OV(5.46)
область определения которой совпадает с областью определения задачи (5.43) при фиксированных х* £ S и 6*.
Выпишем задачу, двойственную к (5.46):
min ^d — Лх*)т иг + ф — Тх*У ф2 — и^ + c^uJE ф2 — и^ +
+ Ем4>0, щ>0, г = 1,...,4}.(5.47)
Если одна из задач (5.46), (5.47) разрешима, то и другая также раз» решима, причем экстремальные значения целевых функций этих за» дач равны. Если у и фъ и^ и3, и^ — соответствующие допустимые решения пары двойственных задач (5.46) и (5.47), то
ф — Лх*)т их + (6 — Тх*)т ф2 — и3) + с9*и4 ^ 0.(5.48)
Это неравенство справедливо для любой точки фъ и2, и3, и^ £ С.
Таким образом, при произвольных 0* и х* £ S задача (5.46) (одновременно и (5.43)) является допустимой тогда и только тогда, когда выполняется условие (5.48) для любой точки фъ и2, и3, и^) £ С.
Следовательно, если (0*, х*, у*) — допустимое решение задачи (5.43), то (0*, х*) — допустимое решение задачи (5.44). Если (0*, х*) — допустимое решение задачи (5.44), то существует такая точка у*, что (0*, х*, у*) — допустимое решение задачи (5.43). Так как задачи (5.42) и (5.43) эквивалентны, это доказывает п. 1 теоремы 5.4. Отсюда также следует, что если (х, у) — оптимальное решение задачи (5.42) и 0 = max qkyk, то (0, х) — оптимальное решение задачи (5.44).
Если (0, х) является оптимальным решением задачи (5.44), то существует такая точка у, что (0, х, у) — оптимальное решение задачи (5.43). Тогда 0 = max qkyhv. Так как у — с0 ^ 0 для любого допустимого ре-
шения (х, у) задачи (5.42) , получаем, что у удовлетворяет системе соотношений (5.45). Теорема доказана.
Таким образом, решение задачи (5.42) может быть приведено к решению задачи (5.44) с определением (0, х), а также к нахождению у из системы соотношений (5.45). Следует отметить, что решение задачи (5.44) затруднительно в силу того, что для этого требуется построение полного множества ограничений, определяющих область G. Представление об этом множестве ограничений дает следующая лемма.
Лемма 5.6. Для того чтобы точка (0, х) принадлежала множеству G, необходимо и достаточно, чтобы
min ^ф — АхУ их + ф — ТхУ ф2 — и^ +
+ свиДфи и2 и3. иу £ С} = 0.(5.49)
Доказательство леммы следует из определения множества G и того факта, что оптимальное решение задачи
min{(d— Дх)т«1 + (6 — ТхУ(и2 — и^ + c^uJ^Uv и2, и^ и4)^С^ независимо от величин х, 0 достигается в нулевой точке — вершине выпуклого многогранного конуса С — или стремится к —оо при движении вдоль одного из лучей конуса С.
Если были бы известны все направляющие векторы неограниченных ребер конуса С, то можно было бы согласно лемме 5.6 выписать все ограничения, определяющие область G, и найти оптимальное решение задачи (5.44). Однако практически это трудно, так как число направляющих векторов неограниченных ребер конуса может быть очень большим.
Поскольку нахождение оптимального решения задачи (5.44) представляет больший интерес, чем построение множества G, то достаточно построить те ограничения из G, которые определяют оптимальное решение этой задачи. Для получения таких ограничений и предназначен описываемый ниже алгоритм.
Обозначим Q — непустое подмножество из С. Пусть подмножество G (Q) из Е^ определено по формуле
G(Q) = П {(9, x^d — AxV^ + Cb-Txy^-^-b tivU^uaiu^Q
+ с6гг4>0, 0>О, x^Sy
Рассмотрим задачу следующего вида:
min {0/(0, x)eG(Q)}.(5.50)
Если она недопустима, тогда в силу того, что G ^ G(Q), задача (5.44) также недопустима. Если для допустимого (оптимального) решения задачи (5.50) выполняется условие (5.49), то оно является также допустимым (оптимальным) решением задачи (5.44).
Алгоритм I
. Задаем Q0 — некоторое конечное подмножество конуса С, полагаем v = 0. Определяем множество
G (Q0) = А {(9, x^Kd. — Лх)' Ы1 + (6 — ТхУ (и2 — w3) + (u1$u2$u8$u4)EQu
+ с6м4^0, 9^0, xgS}.
Решаем задачу следующего вида:
min {9/(9, x)€6(Qv)},(5.51)
где
G(QV) = А {(6, x)/(d — АхУи, + (Ь-Тх)т(и2 — и8) + (u1?«8#«8,U4)€Qv
4-c0u4^O, 9>0, х^З).
Если множество G (Qv) пусто, то на основании включения G ^ G (Qv) и л. 1 теоремы 5.4 заключаем, что задача (5.42) недопустима, и алгоритм
заканчивается. В противном случае находим оптимальное решение (0V, xv) задачи (5.51).
Решаем задачу ЛП вида
min ((d — ЛхУ ut + (6 — Tx^ (ua — «3) + c0vu4/(u1( иг, u8, и4) € С}.
(5.52)
Если оптимальное решение (ui"+l, и?*1, из+\ и?"1"1) задачи (5.52) достигается в нулевой точке — вершине конуса С, то
{(d - Лх^ uv+‘ + (6 - Tx^Y (u2v+‘ - мГ') + «+1 = 0. (5.53) Согласно лемме 5.6 (0V, xv) € G. Эта точка является оптимальным решением (5.44). Переходим к п. 5 алгоритма, обозначая (0v, xv) через (9, хУ
Если задача (5.52) имеет неограниченное решение, то находим множество Г лучей кЦу^, и^', из?1, и!?1), вдоль которых целевая функция этой задачи стремится к —оо. Очевидно, что
(d - Лх^ и^' + (6 - TxvY (ы^1 - Ыз^‘) + с0 W < 0(5.54)
для всех 1^Г,
т. е. ^?\ и%?\ из?2, ы«*"’) £ Qv. Образуем множества
Qv+* =QV U {(ы^1, и??1, «?+', щГ1), («Г, и#1, и^\ иЩ...
(u?/t\ «?^ «^ ^^(5.55)
G^Q^ = G (Q*) fl {(6, x)/min {(d - Ax? u^' +
+ (6 - Txf (u2vz+‘ - Й+') + M?' > 0}, где Zv = T. Заменяя v на v 4- 1, переходим к п. 2.
Пусть у удовлетворяет системе соотношений
Тх-Vy — b, у — ^^0, у>0.(5.56)
Тогда (х, у) — оптимальное решение задачи (5.42), а 6 = max qkyk — оптимальное значение целевой функции. Работа по алгоритму заканчивается.
Теорема 5.5. Оптимальное решение задачи (5.42) отыскивается с помоид^ью описанного алгоритма за конечное число шагов, не превышающее величины F + 1, где F — такое множество, что X Р = R» R — общее число направляющих векторов неограниченных ребер конуса G.
Доказательство. В процессе работы алгоритма (9\ ^ ^ g G. Если (0v, xv) ^ G, то работа по алгоритму заканчивается.
Если (0v, xv) ^ 6, то имеет место неравенство (5.54). Образуем множества Qv+l и G (Qv+1) по формулам (5.55). Таким образом, если (9\
xv) ^ 6, то на v-m шаге алгоритма отыскивается Г новых направляющих векторов неограниченных ребер конуса С.
Максимальное число найденных по алгоритму новых направляющих векторов конуса С не превышает R. Так как на одном шаге алгоритма отыскивается Г новых направляющих векторов неограниченных ребер конуса С, то для нахождения R таких векторов потребуется Т шагов алгоритма, где ^Т = R.
Если (0v, xv) € G, то это значит, что вершина выпуклого многогранного конуса С, найденная на этом шаге, может совпадать с одной из точек множества Q\ т. е. может быть найдена повторно. Теорема доказана.
Для приближенного решения задач вида (5.42) рассмотрим алгоритм, использующий идеи алгоритма I и алгоритма, изложенного в § 2. На каждом шаге этого алгоритма требуется лишь приближенное решение задачи целочисленного программирования над множеством S.
Алгоритм II
Этот пункт алгоритма совпадает с п. 1 алгоритма I.
Если множество G (Qv) пусто, что при v = О или при Q,-r ^ Q1, i=l, ..., v, задача (5.42) недопустима, и работа по алгоритму заканчивается; при Q'-1 = Qz, / € (1, .... v}, последняя найденная в области G точка (6, х) является оптимальным решением задачи (5.44); если у найдено из (5.45), то (х, у) — оптимальное решение задачи (5.42).
Если множество G (Qv) не пусто, то выбираем некоторую точку (0\xv)cG(<n
Решаем задачу ЛП вида (5.52). Если выполняется условие (5.53), то в соответствии с леммой 5.6 точка (0v, xv) принадлежит области G. Если можно ограничиться приближенным решением со значением целевой функции, не большим 0v, то переходим к п. 6, обозначая (0v, xv) через (0, х). В противном случае образуем множество
G (Qv+1) = {(0. х) € G (Qv)/e < ev}, полагая Qv+I = Qv. Заменяя v на v + 1, переходим к п. 2.
Если задача (5.52) не имеет конечного оптимального решения, то находим множество Г лучей, вдоль которых целевая функция стремится к —ОО.
Очевидно, что справедливо неравенство (5.54). По формулам (5.55) образуем множества Qv+1 и G (Qv+I). Заменяя v на v 4- 1, переходим к п. 2. ■
Пусть у удовлетворяет системе соотношений (5.56). Тогда (х, у) — приближенное решение задачи (5.42) со значением 0 = max qkyk
целевой функции.
т
и
г
р
Г ип ЭВМ
к
д
100
100
50
2
5
ЕС-1040
20
182
200
100
50
2
0,81
ЕС-1060
4
21
400
100
50
2
6,7
ЕС-1040
6
1043
400
200
100
2
15
ЕС-1060
5
218
1000
20
10
2
0,08
ЕС-1060
3
31
1000
40
20
2
0,4
ЕС 1060
8
35
1000
80
40
2
2,81
ЕС 1040
6
60
1000
100
50
2
2
ЕС-1060
6
1044
50
1000
50
2
8.43
ЕС 1040
20
321
50
1000
50
2
3,08
ЕС-1060
20
321
50
2000
50
3
20
ЕС 1040
7
212
100
1000
100
3
20
ЕС 1040
4
112
Очевидно, что алгоритм II позволяет найти некоторую последовательность допустимых решений задачи (5.42), упорядоченных в порядке убывания значения целевой функции.
Теорема 5.6. к-е (k = 1, 2, ...) допустимое решение задачи (5.42) отыскивается с помощъю^алгоритма II за конечное число шагов, не превышающее величины F + к.
Доказательство этой теоремы аналогично доказательству теоремы 5.5.
С целью исследования эффективности алгоритма II был проведен на ЕС ЭВМ машинный эксперимент (язык программирования ФОР- TPAH-IV). Условия задач формировались при помощи датчика псевдослучайных чисел. Независимо выбиралась каждая из (тп + т 4* г + + г) величин ath db bk. qfe по следующему правилу! коэффициенты ath dh Ьк) qk — целые числа, равномерно распределенные соответственно на отрезках [—20, 201, 10; 3,6 х nV Ю, nV [0, г]. Мощность множества Nk выбиралась равной ^j, где |-~j — наибольшее целое, не превышающее —. Число элементов искомой последовательности допустимых решений ограничивалось двадцатью.
Результаты машинного эксперимента приведены в табл. 14. В ней использованы следующие обозначения! р — параметр метода вектора спада, используемого для решения задачи вида (5.51), t — время (мин) решения задачи (5.42), к — число найденных по алгоритму допустимых решений исходной задачи, А — разность значений целевой функции в найденных по алгоритму первой и А-й допустимых точках задачи (5.42).
Анализ результатов машинного эксперимента свидетельствует о том> что алгоритм II хорошо зарекомендовал себя при решении тестовых задач большой размерности.
§ 6. РЕШЕНИЕ ОДНОЙ ЗАДАЧИ ОБОБЩЕННОГО ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ
Для многих практических задач, математические модели которых описываются в терминах дискретного программирования, невозможно точно определить исходную информацию. Это обусловлено динамическим характером описываемых процессов, наличием неопределенности, присущей многим характеризующим реальные процессы факторам, зависимостью исходных данных от одного или нескольких поддающихся регулированию параметров, а также погрешностями, возникающими при вычислении этих данных. Таким образом, существует ряд задач дискретного программирования, в которых известны лишь диапазоны изменения исходных данных либо то, что они принадлежат некоторым выпуклым многогранным множествам. Для решения таких задач не обосновано применение методов, предполагающих, что исходная информация задана точно, так как задачи дискретного программирования даже при небольших изменениях в исходных данных во многих случаях ведут себя неустойчиво.
В данном параграфе изучается задача целочисленного программирования, векторы условий которой и коэффициенты целевой функции принадлежат выпуклым многогранным множествам.
Рассмотрим целочисленную оптимизационную задачу следующего вида: максимизировать
£ CjXj(5.57)
/=1
при условиях
S QjXj ^ b,(5.58)
/=1
х^ 0, / — 1,..., п,(5.59)
Xj — целое, j = 1,..., п,(5.60)
где каждый вектор-столбец (а,, с/) £ Kj и Kj является выпуклым многогранником в £т+ь b — фиксированный вектор в Ет.
Задача (5.57) — (5.60) может быть изучена по двум различным стратегиям — консервативной и оптимистической.
По консервативной стратегии ведется поиск оптимального решения задачи, одновременно допустимого для всех возможных (а,, с,) 6 Kj. Использование такого подхода к построению решения для задач вида (5.57) — (5.59) приводит к математическим формулировкам задач неточного линейного программирования. Для таких задач можно использовать принципы минимакса (оптимальное решение находится в «наихудшем» случае) и абсолютной гарантированности (оптимальное решение является «лучшим» в «наихудшем» случае) [Д70]. Более простые задачи такого вида с обычным линейным критерием и с множественнозначными параметрами в ограничениях рассматривались в работах [Д70, Д83, Д87, Д881.
По оптимистической стратегии осуществляется поиск оптимального решения, которое является допустимым хотя бы для одного kah Cj) Q.
£ Кь j — 1, •••> п- Таким образом, это решение можно рассматривать как наилучшее возможное решение задачи. Задачи линейного программирования с переменными векторами сц и коэффициентами целевой функции с^ изучаемые при помощи оптимистической стратегии, называются задачами обобщенного линейного программирования [Д5].
Задачи целочисленного программирования вида (5.57) — (5.60) в литературе не исследовались. В работе [217] рассмотрен частный случай задачи целочисленного программирования вида (5.57) — (5.60), в которой параметры множества ограничений заданы точно и неопределенность имеется только относительно коэффициентов целевой функции. На основе пессимистической стратегии (принцип минимакса) предложены алгоритмы решения этой задачи.
Исследуем задачу целочисленного программирования вида (5.57) — (5.60) при помощи оптимистической стратегии.
По аналогии с линейным программированием назовем задачу вида (5.57) — (5.60), изучаемую по оптимистической стратегии, задачей обобщенного целочисленного программирования и запишем в следующем виде: найти
шах у С/Х//=!
при условиях
п
J] QjXj^b хотя бы для одного (а/, с^Кр (5.61)
xz^0, X/ — целое, / = п.
Оптимальным решением задачи (5.61) является тройка (Л, с,_х\ где Л = (av ..., а^ — матрица размерности т х п, с = (с1}.,., сп\ х -= (хр..., хп), элементы которой (az, q) ^Кф xb / ^ 1, ..., п, такие, что
У, аре, ^ Ь, Х/^ 0, X/ — целое, /'^ 1,..., п, и /=|
У С/Х/ > £ С/Х/ /=1/=1
для всех (^ip ch € Кь хь / = L • • •, я, таких, что
У a{Xi ^ Ь, х{ ^ 0, X/ — целое, / = 1, ..., п, /=1
Задача (5.61) не является задачей ЦЛП, так как она содержит произведения переменных. Однако с помощью принципа разложения Данцига — Вулфа она может быть приведена к задаче частично целочисленного программирования специального вида.
Так как Kb j € (L ••> л}, является ограниченным выпуклым многогранным множеством, то любая точка (аь С/) этого множества
может быть представлена в виде
(Оу, с,) = 2с^, £ Х/6 = 1, kik >0, к = 1г„ (5.62)
6=4к=\
где (а/, С/) — крайние точки множества Кф
Подставив (5.62) в (5.61), получим задачу1, найти л г/ ь max 5 ^ CjX^Xj j=\ к=\ при условиях
f 2 a^x^b,(5.63)
/=1 &=]
5 Х/6 = 1, / = 1 6=1
kjk> 0, к = I,..., Г/, / = 1,..., п, х, ^ О, Xj — целое, / = 1,..., п.
Пусть U/n = KjfeXj,(5.64)
тогда ^ u/ft = X/, / = 1,..., п. 6=i
Учитывая (5.64), запишем задачу (5.63) следующим образом: найти max 5 ^ CjUjk /=1 ь=\ при ограничениях
2 aiuik Ь, i=\ 6=1
^Ujk — x^O, j=lп,(5.65)
6=i
«/6>0, к=\,...,г}, j=\,...,n, х, > О, х} — целое, / = 1п.
Пусть ы/6, f = 1 п,к = 1, .... г/, X,, / = 1, ..., п,— оптимальное
решение задачи (5.65). Перейдем теперь к построению оптимального решения задачи (5.61).
Если для некоторых / € (1, ..., п) все Ugh = 0, к = 1г/, тог
да Xj = 0 и (a,, Cj) в задаче (5.61) могут принимать любые значения. Если для некоторых / £ {1, .... п} по крайней мере одна переменная Ujk, к = 1, ..., г,, положительна, то х/ > О,
^/6 =. к = 1,..., г,, / = 1,..., п,
(й/, Су) = ^ ^/6 (^/> Cj), / = 1, . . . , /1. 6=1
Задача (5.65) является задачей частично целочисленного программирования специального вида с т + п ограничениями, 2 г/ непрерыв- /=1 ными переменными и п целочисленными переменными.
Так как даже при небольших т и п размерность задачи (5.65) значительно возрастает по сравнению с исходной, то для ее решения целесообразно применять методы декомпозиции.
Предлагаемый в работе [Д56] подход основан на использовании основных идей метода Вендерса [137, 1871 и принципа разложения Данцига — Вулфа [871.
Введем скалярную переменную х0 и перепишем задачу (5.65) в эквивалентном виде
max (х0/х0 ^ сТи, Au^b, Fu — х = О,ц^О, u^Eb I = ^ rf> x^S^./=1
Здесь матрица А = (а',..., а[‘, аг,..., o'") размерности т х 5 гь /=1
вектор b — тот же, что и в (5.65), с = (с},..., с?, Сг,..., c'n), F — п
матрица размерности п х ^ гь которая используется для матрично век- /=1
торной формы записи соответствующего условия задачи (5.65), и = = («п,..., «и,, «21Unr^, х = (х,х„), S — множество не
отрицательных целочисленных векторов в Еп.
Пусть
С = {(оо, и, ty)/—со^ + Лти + F*w^0, v0>0, и^О,V € Ет, w£En, и0 — скаляр} —
выпуклый многогранный конус в Em+n+t.
Определим множество
G = П {(х0, х)/—иохо + bTv + xTw^ 0, x^S}.
Теорема 5.7. 1. Задача (5.61) не имеет допустимых решений тогда и только тогда, когда задача
max{x0/(x0, х)СО}(5.66)
не имеет допустимых решений.
Задача (5.61) допустима, но не имеет оптимального решения тогда и только тогда, когда задача (5.66) допустима, но не имеет оптимального решения.
Если (Л, с, х) — оптимальное решение задачи (5.61) и х0 = с1 х, то (х0, х) — оптимальное решение задачи (5.66), а вектор-столбцы матрицы А и компоненты вектора с определяются с помощью оптималь-
кого решения и задачи линейного программирования: найти п ri k
max s s CjUjk/=1 6=1
при условиях
S ^ OjUjk ^ 6, /=1 fc=]
uik = Xj, i = 1,..., n,(5.67)
h=\
uik>0, h = \,...,rh /=!,...,«, следующим образом:
Г^, если Xj>0,
(a„ e,) = ^ X,(5.68)
любые значения, если X] = 0, / = 1,..., n-
Если (x0, x) — оптимальное решение задачи (5.66), то задача (5.67) допустима и оптимальное значение целевой функции этой задачи равно х0. Если и — оптимальное решение задачи (5.67) и компоненты век- тора_с и вектор-стблбцы матрицы А определяются по формуле (5.68), то (Л, с,_х) — оптимальное решение задачи (5.61) с оптимальным значением х0 для ее целевой функции.
Доказательство этой теоремы приведено в [Д561.
Для решения задачи (5.61) в работе [Д561 применяется декомпозиционный подход, аналогичный описанному в данной главе. Поэтому не будем останавливаться на нем подробно.
Глава 6
ВОПРОСЫ УСТОЙЧИВОСТИ, ПАРАМЕТРИЧЕСКИЙ И ПОСТОПТИМАЛЬНЫЙ АНАЛИЗ ЗАДАЧ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ
ОБЩАЯ ПОСТАНОВКА ПРОБЛЕМЫ
В настоящее время при решении задач математического программирования все большее значение приобретают вопросы устойчивости получаемых решений, параметрический и постоптимальный анализ решаемых задач. Их ценность в практических приложениях сейчас не вызывает сомнений. Методика проведения подобных исследований достаточно разработана и освещена в отечественной и иностранной литературе лишь для непрерывных задач, в том числе для задач линейного и квадратичного программирования [9, 19, 29, 45, 194, 202, Д15, Д34т Д45, Д71, Д73, Д77, Д86, Д891. Для задач целочисленного программирования подобные исследования составляют новую, интенсивно развивающуюся, но еще не в полной мере сформировавшуюся область, хотя им посвящен целый ряд работ, например [183, 198, 204, 225, Д8, Д81, Д85, Д861. Необходимость в таком изучении возникает по тем же традиционным причинам, которые порождают подобную проблематику в ЛП, а также и по некоторым другим. Действительно, как и в задачах ЛП, в задачах ДО известны в большинстве случаев не точные исходные данные, а лишь диапазоны их изменения. Это обусловлено не только погрешностью вычислений, но и тем, что многим факторам, характеризующим реальные процессы, присуща неопределенность. (В частности, это относится к планово-экономической информации, необходимой для решения задач долгосрочного планирования на 10—20 лет вперед). Возникает вопрос, насколько велика может быть указанная погрешность при условии, что она не повлияет на искомое оптимальное решение той или иной задачи. Подобные вопросы выясняются при анализе устойчивости соответствующих оптимизационных задач. Кроме того> многие практические задачи по существу являются динамическими в том смысле, что исходные данные, необходимые для их решения, изменяются некоторым систематическим образом. В результате появляются семейства оптимизационных задач одинаковой структуры, отличающихся лишь значениями некоторых коэффициентов. Речь идет о решении ряда экономических и производственных задач в условиях, когда такие показатели, как стоимость производства единицы продукции, количество запасов сырья, величина капитальных вложений, производственные мощности, изменяются во времени и зависят от района размещения объекта, способа переработки сырья и т. п. Такие задачи можно эффективно решать методами параметрического программирования.
Еще одной важной областью применения параметрического и постоптимального анализа является экономический анализ хозяйственной деятельности предприятий, который лежит в основе различного рода технологических и организационных нововведений. Этот анализ включает сравнение многочисленных вариантов мероприятий, что связано с необходимостью решения большого числа однотипных оптимизационных задач.
Существуют также некоторые причины, обусловливающие интерес к вопросам устойчивости, параметрическому и постоптимальному анализу, которые характерны лишь для задач дискретного программирования. В основном это связано с тем, что при небольших изменениях в исходных данных модели целочисленного программирования (в отличие от моделей ЛП) ведут себя, как правило, неустойчиво и непредсказуемо. Исследование устойчивости, параметрический и постоптимальный анализ той или иной целочисленной задачи обычно проводятся на основе некоторого определенного подхода (метода), применяемого для решения этой задачи. Разными авторами предложены процедуры проведения указанных исследований на основе различных методов целочисленного программирования.
Изложению результатов, полученных отечественными и зарубежными учеными в данной области, а в отдельных случаях их краткому обзору, и посвящена настоящая глава. Более полный список литературы по этому вопросу дан в [67, Д86].
При анализе устойчивости задач математического программирования в общем случае выясняется вопрос о том, соответствует ли малым изменениям коэффициентов той или иной задачи малое изменение ее оптимального решения. В рамках дискретного программирования исследование устойчивости обычно сводится к определению тех пределов изменения коэффициентов задач, в которых оптимальное решение остается неизменным.
Следует особо отметить статью [198], в которой изложены результаты большой работы по систематизации достижений в области исследования устойчивости оптимальных решений (а также в области постоптимального и параметрического анализа) и намечены перспективы дальнейшего развития. Предположим, что задача (В) вида min{cxMx^&, х^О, Xi — целое, }£1е\1п}),
где А — (т х п)-матрица, с С Rn, b С R™, х = (хх, ..., хп\ решена численно и получено ее оптимальное решение х*. Необходимо определить, какие изменения в исходных данных не нарушат оптимальности х* для измененной задачи.
Введем понятие сужения задачи (В), которое позволило получить следующие полезные результаты, базирующиеся на элементарных наблюдениях.
Определение. Задачу (Q) назовем сужением задачи (В), если допустимая область Q задачи (Q) полностью содержится в допустимой области В задачи (В) и если в каждой точке х допустимой области (Q) значение целевой функции f (х) задачи (Q) не меньше, чем значение целевой функции /в (х) задачи (В).
Утверждение 6.1. Если оптимальное решение х* задачи (В) является допустимым решением задачи (Q) и если fB (х*) = /° (х*), то х* — оптимальное решение задачи (Q).
Этот результат оказывается особенно полезным, когда ограничения задачи (В) изменяются следующим образом: некоторые элементы матрицы А уменьшаются, некоторые компоненты вектора b увеличиваются, компоненты вектора с тоже могут незначительно изменяться.
Из утверждения 6.1 вытекают такие следствия.
Следствие 1. Пусть матрица А' удовлетворяет неравенствам А* ^ ^ А и А'х* ^ Ь. Тогдах* остается оптимальным решением задачи (В) с матрицей условий, замененной на А' (причем для любого / такого, что X/ = 0, соответствующий столбец матрицы А может быть уменьшен произвольно).
Следствие 2. Пусть вектор 6' удовлетворяет неравенствам Ах* ^ ^ Ь' ^ Ь. Тогда х* остается оптимальным решением задачи (В) с вектором правых частей, замененным на Ь'.
Следствие 3. Пусть вектор с удовлетворяет условиям с] ^ Cj для всех / таких, что х* = 0, и с, = с, при х* =/= 0. Тогда х* остается оптимальным решением задачи (В) с вектором коэффициентов целевой функции, замененным на d.
Следствие 4. Предположим, что в ограничения Ах ^ b задачи (В) включены верхние границы и, на переменные ху для / С J ^ (1, ... ..., п\. Пусть вектор d удовлетворяет неравенствам с( ^ q для всех j £ J таких, что х* = и^ и с, = Cj при х* < uf. Тогда х* остается оптимальным решением задачи (В) с вектором с, замененным на d.
Возможные изменения исходных данных задачи (В), указанные в следствиях 1—4 из утверждения 6.1, могут происходить одновременно без возмущения оптимальности х*.
Утверждение 6.1 связано с изменениями в исходных данных задачи (В), которые вызывают либо сужение допустимой области В, либо увеличение значений целевой функции в точках, отличающихся от х*, либо то и другое вместе. Изменения исходных данных, в результате которых могут появиться новые допустимые решения задачи, очевидно, могут повлиять и на оптимальность х*. Оптимальность х* находится «под угрозой» также при любом изменении вектора с, так как это может улучшить оценку других допустимых решений по сравнению с х*. Однако возникают ситуации, в которых оптимальность х* сохраняется, несмотря на изменение вектора с. В частности, имеет место следующее утверждение.
Утверждение 6.2. Пусть переменная xz принимает значение 0 или 1. Предположим, что оптимальное значение целевой функции задачи (6) при условии, что X/ = 0, не меньше, чем ^в (х*) + Д/э где Дг > 0. Тогда х* остается оптимальным решением задачи (В) с коэффициентом с^ замененным любым коэффициентом с/, удовлетворяющим С/ ^ с^ ^ < С/ + Д/.
Приведенные выше результаты являются весьма полезными с точки зрения вычислительной практики, хотя и имеют довольно простые
доказательства. Остановимся на некоторых более трудоемких результатах, базирующихся на достаточных условиях оптимальности, которые в свою очередь основываются на понятии релаксации (ослабления).
Определение. Задачу (/?) назовем релаксацией задачи (В), если допустимая область задачи (7?) включает допустимую область задачи (В) и tR (х) ^ fB (х) для всех х g В.
Очевидно, что понятия сужения и релаксации задачи противоположны в определенном смысле: задача (7?) является релаксацией задачи (В) тогда и только тогда, когда задача (В) является сужением задачи (7?). Таким образом, оптимальное значение fB (х*) есть верхняя (нижняя) граница любой своей релаксации (сужения).
Утверждение 6.3. Если х° — допустимое решение задачи (В) и сх° совпадает с оптимальным значением целевой функции задачи (7?), то х° является оптимальным решением задачи (В).
Существует следующий общий метод построения интервалов изменения исходных данных (В), сохраняющих оптимальность решения х*.
Опираясь на известное решение х*, строим некоторую «плотную» релаксацию (7?°) задачи (В); заканчиваем процесс вычислений, когда оптимальное значение целевой функции задачи (7?°) строго меньше, чем fB (х).
Определяем интервалы изменения исходных данных задачи (В), для которых х* является допустимым решением любой измененной задачи со значением целевой функции, равным оптимальному значению функции цели соответственно измененной задачи (7?°). Согласно утверждению 6.3 х* остается оптимальным решением для этих интервалов изменения исходных данных задачи (В).
Сформулируем общую задачу исследования устойчивости для ЦЛП. Рассмотрим задачу ЦЛП общего вида
ext {сх/Лх<: 6, х>0, x£Zn\, (6.1)
где 7? — множество n-мерных целочисленных векторов. Обозначим р упорядоченную тройку (Л, Ь, с), представляющую собой набор значений всех коэффициентов задачи (6.1). Пусть Р cz PmXn х Rm X Rn — множество всех возможных значений коэффициентов задачи (6.1). Для любого р0 g Р определим множества Q (р0) и А (р0) соответственно всех оптимальных и всех допустимых решений задачи (6.1) с коэффициентами, составляющими набор р0. Предположим, что Q (р0) =# 0.
Согласно [2281, общая задача исследования устойчивости состоит в том, чтобы заданному решению х° g Q (р0) поставить в соответствие такое подмножество Р (х°) = {р g Plx° g Q (р)}.
Обозначим G— множество допустимых решений задачи (6.1): G = = {х g Zn)Ax ^ b, х^О}. Введем в рассмотрение также множество Р = Р (х°) = {(Л, Ь)1Ах? ^ 6} cz RmXn х Rm. Очевидно, что вектор х° будет оптимальным решением задачи (6.1) только тогда, когда х° g g д conv G, где д conv G — граница выпуклой оболочки множества G. Пусть Р = {(Л, 6) g Р/х° g д conv G). Любой фиксированной паре
(Л, 6) £ Р поставим в соответствие множество
Р(х°; Л, 6) = {c/ext сх = сх0^.
x^G
В результате получим область устойчивости для х°:
Р^ = {(Л, Ь, с)/(А, Ь)£Р, с^Р^хР; Л, 6)} П Р.
Таким образом, для построения множества Р (х°) необходимо вначале описать Р, а затем для каждой пары (Л, b) £ Р определить множество Р (х°; Л, Ь\ Оба эти этапа чрезвычайно сложны, а первый из них осуществить практически невозможно. В работе [228] описаны множества Р (х°; Л, 6) для задачи ЦЛП вида (6.1) и аналогичное множество для одномерной задачи о ранце. В статье [229] результаты, полученные в [2281 и касающиеся нахождения областей устойчивости для задач полностью целочисленного линейного программирования, переносятся на случай ЧЦЛП.
На наш взгляд, интересен и несколько расширенный вариант постановки общей задачи устойчивости: для заданных р0 Е Р. Е ^ (р0) и некоторого множества W cz Zn, включающего х°, определить подмножество P(W) в Р такое, что из существования х £ Q (р) f) W, где р ^Р, следует принадлежность р £ Р (U7) cz Р, и наоборот. Если W = = {х0}, то данная постановка задачи устойчивости совпадает с формулировкой, приведенной выше.
В работе [85] проведен анализ устойчивости следующей линейной так называемой траекторной дискретной задачи: из множества допустимых траекторий заданной вещественной матрицы А выделить такую траекторию, сумма элементов матрицы вдоль которой минимальна. (Частными случаями этой задачи являются известные задачи о назначениях, коммивояжера, кратчайшей связывающей сети, о кратчайшем пути на графе и т. д.) Исследована также устойчивость линейной функции f (х) = сх, заданной в Rn на конечном подмножестве точек из/?”-
С помощью оригинальных результатов, полученных в [85], были изучены вопросы устойчивости целевой функции и матрицы условий общей задачи ЦЛП относительно некоторого ее локального решения [143].
Параметрический анализ задач математического программирования проводится на основе моделей и методов параметрического программирования, предметом которого являются задачи оптимизации, все или отдельные коэффициенты которых суть функции одного или нескольких параметров. В рамках параметрического программирования ставится вопрос об описании оптимумов и решений всех задач из некоторого семейства без необходимости исследовать каждую из них при конкретных значениях параметров.
Наиболее типичной ситуацией является линейное изменение коэффициентов целевой функции и правых частей ограничений в соответствии с единственным числовым параметром [1981. В этом случае возникают, например, следующие целочисленные задачи параметрической оптимизации:
(Вх): min {сх/Лх> b 4- Xbf, х>0, x£?xRn"3(BK)imin{(c + Xc')x/Ax^bt х^О, x^Z5 х Rn~s^
в которых 1 ^ s ^ л и без потери общности можно допустить, что числовой параметр X удовлетворяет условию 0 ^ X ^ 1. Более простыми для изучения оказались семейства задач (Вх), поскольку в них изменения параметра не влияют на допустимую область.
Определение. Семейство задач (Вх) называется монотонным, если Ь' ^ 0 или Ь' ^ 0.
Достаточно рассмотреть семейство задач (Вх) при V ^ 0, так как случай Ь* ^ 0 может быть сведен к предыдущему путем эквивалентной параметризации, с параметром 6=1 — X.
Монотонное семейство (Вх) характеризуется тем, что задачи этого семейства являются вложенными сужениями друг друга или, что то же самое, вложенными релаксациями друг друга (в зависимости от того, рассматривать значения параметра X как возрастающие от 0 до 1 или как убывающие от I до 0).
Утверждение 6.4. Если Ь' ^ 0, оптимальное значение целевой функции задач семейства (Вх) является монотонной неубывающей функцией на интервале [0, 11 изменения параметра X и любое решение, допустимое при некотором X', остается допустимым при любом X ^Х'.
Следствие. Если Ь' ^ 0, любое оптимальное решение задачи (Вх*) является оптимальным для всех X ^ X', для которых оно остается допустимым решением.
При исследовании любого семейства (Вх) полностью целочисленных задач, имеющего ограниченную допустимую область при X = 0, данное следствие (базирующееся также на утверждении 6.1) подразумевает, что достаточно выполнить лишь конечное число повторных оптимизаций при X, меняющемся от 0 до 1.
К сожалению, если семейство (Вх) не является монотонным, то результаты, сформулированные в утверждении 6.4 и следствии из него, не имеют места в общем случае. Это объясняется тем, что изменение значений параметра X приводит к сокращению одних частей области допустимых решений и расширению других.
Независимо от того, является ли семейство (Вх) монотонным, нижние границы оптимального значения целевой функции для всех X обычно можно легко получить как относительно нетрудоемкий сопутствующий продукт решения любого частного члена семейства (Вх). Такие нижние границы могут использоваться совместно с верхними, вычисленными на основании известных допустимых решений, для получения полезных выводов о задачах семейства (Вх), которые не были еще решены.
Утверждение 6.5. Оптимальное значение функции цели задачи (Вх) для 0 ^ X ^ 1 является кусочно-линейной, непрерывной и выпуклой функцией параметра X на конечном множестве допустимых решений.
Этот хорошо известный результат является прямым следствием того факта, что допустимую область задачи (В1) можно в принципе заменить ее выпуклой оболочкой (целочисленным многогранником) без изменения оптимального значения целевой функции. Таким образом, исследование семейства (Вх) может быть проведено в рамках линейного параметрического программирования. (Речь идет о задачах ЛП с па-
раметром в целевой функции, для которых характеристика, данная ь утверждении 6.5, уже давно установлена).
В большинстве приложений допустимая область задачи (В1) является ограниченной, и тогда число отрезков, образующих кусочно-линейную функцию, о которой шла речь в утверждении 6.5, является конечным.
Общую задачу параметрического программирования можно сформулировать следующим образом:
ext {/ (х, Х)/х 6 М (X) cz L}, X £ Л,(6.2)
где X — параметр; L и Л — некоторые заданные множества, М (X) = {х б Llgi (х, X) ^ 0, / = 1, ..., т; hf (х, X) = 0, / = 1, ..., р^ f U, ^), gi (я, ^) G = 1, ••., т\ hj (х, X) (/ = 1, ..., р) — заданные числовые функции, определенные на L X Л.
Решение задачи (6.2) сводится к описанию следующих отображений и множеств:
М : Л 24, Х — М (X);
фгЛ-*/?1, X -► ф(Х) == ext {/(х, Х)1х^М (X)}; ф:Л->£, Х-*ф(Х) = \х£М (К)/Цх, X) =Ф(Л)};
81 = (Х£Л/ф(Х)=^0}; Ф = {Х£Л/Л1(Х)^0}, где 2Ь — множество всех подмножеств множества L.
В научной литературе изучены лишь некоторые классы задач параметрического целочисленного линейного программирования (ПЦЛП). В работах [137, 198] рассмотрен случай, когда L = Z", Л = [а, р] cz R1, t (х, X) = (с, 4- Хс2) х; сь с2 £ Rn; М (X) = D cz Z"; D — заданное многогранное выпуклое множество, одно и то же для всех X g Л. В работе [2211 изучены возможности решения такого семейства задач, которое можно описать моделью (6.2) при условии, что L = Z\ Л = (1, 2р\, f (х, X) = скх, cx^R" и М (X) = D с Zn.
В [138, 183, 198] предполагается, чтоД = Z", X = [а, р] cz R1, f (х, X) = = сх; с £ R\ gi (я, Х) = ape — bt — Х^\ at £ Rn; bb b'i £ R1 {I £ /); hj (x, X) = a(x — b( — Xbj, aj £ R\ b(, b] £ Z?1 (/ £ 7); 1, J — некоторые (возможно, пустые) подмножества множеств {1, ..., т\ и (1, ... ..., р^ соответственно. Постановка задачи ПЦЛП, рассматриваемой в [206], отличается от предыдущей тем, что L = Zs X Rn-S (s = 1, ... ..., п), т. e. рассматривается семейство не полностью, а частично целочисленных задач ЛП. Далее, в [136, Д60] исследована задача (6.2) в предположении, что L = Zn, Л = [а, р] cz R1, f (х, X) =3 (с 44- Хс') х, с, с* £ R", М (X) = (х £ Ых £ В, (а 4- Ха*') х ^ b 4- ^-Ь'\, где В — выпуклое ограниченное множество неотрицательных векторов из Rn; а, а' £ Rn; b, b* £ R1. В [66] с помощью теоретико-групповых построений определяются значения параметра X (X ^ Z1), при которых заведомо не существует целочисленных решений системы (А 4- Mt) х = = b + Xbt. (Все коэффициенты системы целочисленны). Изучению
задачи (6.2) при условии, что L = Z^ X Rn s, Л с Rn^”\ X — (ц, ц), у g R\ Т) g /?т, / (х, X) = / (х, pi) = pix, М (X) = М (Т)) - {хе и Ах = = т), х > 0}, А — рациональная (т X п)-матрица, b — рациональный m-мерный вектор, 0 ^ s ^ и, посвящена работа [186].
Можно отметить также работы [191, 219], в которых рассматривав ются задачи нелинейного параметрического целочисленного программирования. В статье [219] приведен алгоритм, являющийся вариантом алгоритма, предложенного ранее ее авторами и основанного на направленном переборе точек допустимой области, для решения задачи с квадратичной целевой функцией вида
min \xTQx!Ax^b + Xb', xf = 0 или 1, /=!,..., и}, гдеф — симметричная (п X п)-матрица; А — (т X и)-матрица; b и Ь'— m-векторы, Ь' — (6^,0, ..., 0), b\ > 0, X g [0, 1].
В работе [191] рассмотрена задача вида
max tv j^x^ hi^x^bi + ^b i = 1, ...» ^; x^Z^ v=i /=i
/ = 1,/г|,
где X g {Xo, Xx, ..., Xz}, 0 = Xo < Xi < ... < Xz; rt > 0, I = 1, ..., m; fj\Zp^ Rp, / = 1, ..., n; hq ! Zp -> Rp, / = 1, ..., n,— функции, не убывающие относительно Х/, причем при X = 0 допустимая область задачи не пуста.
В [Д79, Д86] на основе теории точечно-множественных отображений рассмотрена задача (6.2) при условии, что L = Zs х Rn~s, Л d с Rn+m, X = (и, л), И € Я". П € R"\ f (X, X) = / (X, и) = хтСх + + цх, М (X) = М (т]) = {х g UАх ^ т], х ^ 0}, А — рациональная (/и X п)-матрица, С — рациональная симметричная (и X п)-матрица, b — рациональный /тг-мерный вектор, 0 ^ s ^ п.
В сообщении [30] рассмотрена параметрическая траекторная задача. Элементами ее матрицы являются вещественнозначные функции от параметра X, X g [а, р]. Требуется при каждом фиксированном X g [а, р] найти траекторию с минимальной длиной. Утверждается, что в случае, когда элементы матрицы являются полиномиальными функциями от X, X g [0, +оо), траекторная задача является «конечнозначной» на интервале [0, +оо) при любом множестве допустимых траекторий. Иными словами, на интервале [0, +оо) можно найти конечное число значений параметра таких, что решение задачи при этих значениях определит ее решение и на всем интервале [0,+<ю). В [Д81 получены критерии конечнозначности для траекторных задач, исходные данные которых зависят от одного или нескольких параметров.
На этапе постоптимального анализа оптимизационных задач обычно предусматривается решение следующих вопросов:
как изменится оптимальное решение конкретной задачи, если некоторым определенным образом изменить значения ее коэффициентов;
2j как использовать информацию, полученную при решении некоторой задачи тем или иным конкретным методом, для решения измененной задачи;
какую минимальную дополнительную информацию необходимо накопить при решении исходной задачи с целью эффективного решения измененной задачи.
На практике постоптимальный анализ задачи ЦЛП состоит из двух фаз: решения исходной задачи с накоплением необходимой минимальной дополнительной информации и собственно постоптимального анализа. В научной литературе [212, 221, 222, 225, 226] рассмотрены вопросы постоптимального анализа задач ЦЛП при изменении коэффициентов целевой функции, вектора правых частей и матрицы системы ограничений, исследованы также возможности введения нового ограничения в задачу и исключения какого-либо ограничения, введения новой переменной с соответствующими коэффициентами и исключения какой-либо переменной.
При проведении постоптимального анализа задачи ЦЛП может оказаться полезным следующее утверждение.
Утверждение 6.6 [Д81]. Если заданы целочисленная (m X л)-мат- рица Д и векторы с, 6 и У такие, что оптимальные решения задач max \сх!Ах ^b, х ^ Zn} w шах \сх!Ах t^. b', х ^ Z”} существуют, то для каждого оптимального решения х первой из указанных задач существует оптимальное решение х1 второй, такое, что
р' (х, х') ^ лА (Д) (р' ф, Ь^ 4- 2).
Здесь А (Д) — максимальная из абсолютных величин определителей всех квадратных подматриц матрицы А, р' (х, у) = max | х, — у, |.
§ 2. ПОСТОПТИМАЛЬНЫЙ И ПАРАМЕТРИЧЕСКИЙ АНАЛИЗ ЗАДАЧ ЦЛП НА ОСНОВЕ МЕТОДА ГОМОРИ
Обзор результатов можно начать с подхода [204, 212], базирующегося на методе отсечений Гомори. Для этого обратимся снова к задаче (6.1), без потери общности полагая, что необходимо найти максимум целевой функции и все коэффициенты задачи целочисленны.
Применение метода отсечений к задаче (6.1) подразумевает решение соответствующей задачи ЛП, к которой присоединено достаточное число (г) дополнительных ограничений (отсечений). Эта задача имеет вид
гдегде(6.3)(6.3)шах фх/А'х <^ЬГ, х^ 0},шах фх/А'х <^ЬГ, х^ 0},
где
где
(6.3)
(6.3)
шах фх/А'х <^ЬГ, х^ 0},
шах фх/А'х <^ЬГ, х^ 0},
представляют собой исходную матрицу ограничений и вектор правых частей, соответственно расширенные с учетом г отсечений вида
akx^bk (А = 1,..., г).
С целью проведения постоптимального анализа задачи (6.1) выразим уравнения отсечений, применяемых в методе Гомори, через небазисные переменные исходной задачи. (Обычно уравнения отсекающих гиперплоскостей выражаются через небазисные переменные, соответствующие оптимальному опорному плану текущей вспомогательной задачи ЛП, причем множество этих переменных изменяется от итерации к итерации, при переходе от r-й вспомогательной задачи к (г + 1)-й).
Обозначим В — базис текущей вспомогательной задачи ЛП, содержащий к — 1 отсечений (к ^ г). Любая /-я базисная переменная х® может быть выражена через текущие небазисные переменные по формуле
х^ = Xi — ^ YtjXb(6.4)
j^N
где N — множество индексов небазисных переменных; х = В-^™1 и Y = В-хАк”х. (В частности, xt = B7xbfe-X и Yu = ВТхАк-х, где В?х и Л/-1 — соответственно i-я строка матрицы В"”1 и /-й столбец матрицы Л^1).
Уравнение к-го отсечения, основанного на i-й строке как на производящей, имеет вид
lAxJ — [й| х, — V ([/гУ0] — [/г] Уо)х,>0,(6.5)
ie.N
где h — ненулевой скаляр; [al, {a} — соответственно целая и дробная части числа а. Тот или иной выбор h ведет к различным отсекающим гиперплоскостям.
Отсечение (6.5) можно выразить через текущие небазисные переменные исходной вспомогательной задачи ЛП:
акх<Ьк,(6.6)
где
ак = [{Л№}(6.7)
Ьк = [{W1} б6-1].(6.8)
Рассмотрим задачу ЧЦЛП вида
шах {сцхц + снхн/Лцхц + Лнхн ^6; хц 0, хц — целое, хн 0}, (6.9) где Лц — матрица размерности m X пп; Лн — матрица размерности /и X пн; сц, сн, хц хн — векторы соответствующих размерностей.
Решение задачи (6.9) методом отсечений (так же, как и задачи (6.1)) подразумевает решение соответствующей задачи ЛП, к которой присоединено достаточное количество (г) отсечений. Эта последняя задача определяется аналогично задаче (6.3) с учетом того, что Аг = (Лц : Лн).
Не существует общего вида, подобного (6.4), для записи отсечений в задачах ЧЦЛП. Воспользуемся отсечением, впервые предложенным
Гомори. Пусть В — базис текущей вспомогательной задачи ЛП, содержащей к — 1 отсечений (к г). Отсечение Гомори, основанное на l-й строке, соответствующей одной из целочисленных переменных, имеет вид
{^} Н* Zj {^М *ц/4~ S ^jYifXHj 0,(6.10)
'1, если Y^ ^ 0,
а/ ~— , если У”/ < 0,
где №ц и ^н — множества индексов соответственно целочисленных и непрерывных небазисных переменных; xu Y^f и У"/ определяются аналогично тому, как это сделано в (6.4).
Перепишем частично целочисленное отсечение (6.10) в терминах небазисных переменных исходной вспомогательной задачи ЛП:
ахххи + анхн < Ьк,(6.11)
где = (1 -а,)В?'АТ1 + оЛ^"1, / = 1 , ...» иц; а? = [В?1 Л^1] + -Ь ®Лу , / = 1, ..., мн; Ь, = [В^ b ] 4- mb ; co = (coj,..., u>m+.t—1)> причем для любого / = 1 m 4- k — 1
0, если B^1 ^ 0,
Ю' " 1—B^7(l - {ВГ'б*-1}), если ВТ/ <0.
Теорема 6.1. Отсечение Гомори в форме (6.5) или (6.6)> а также частично целочисленное отсечение в форме (6.10) или (6.11) не исключают ни одно допустимое решение задач (6.1) и (6.9).
Ниже сформулируем ряд утверждений [212], на основании которых можно проводить постоптимальный анализ полностью целочисленных задач ЛП. Аналогичные утверждения могут быть сформулированы и для задач ЧЦЛП.
Предположим, что задача (6.1) (или (6.9)) уже решена методом отсечений и при этом были использованы г отсечений Гомори, для каждого из которых запоминался один из векторов: ^НВ7Х\ или By1. Через В обозначим оптимальный базис задачи (6.3).
Теорема 6.2. Для любых b и с целочисленный вектор хв является оптимальным решением задачи (6.1), если
хв = В"1 Ьг > 0, с^В~х Аг — с > 0.(6.12)
Здесь с^ — вектор, составленный из компонент вектора с, соответствующих базисным переменным; Аг и Ьг определяются рекурсивно с помощью формул (6.7), (6.8), А0 = А, 6° = Ь,
Доказательство. В силу теоремы 6.1 хв — допустимое решение задачи (6.1). Поскольку хв является к тому же оптимальным решением задачи ЛП, соответствующей (6.1), то оно является оптимальным решением и для (6.1).
Следствие 1. (Изменение правых частей системы ограничений). Если вектор хд = вЬ^ неотрицательный и целочисленный, то он является оптимальным решением задачи (6.1), в которой вектор b заменен на b + А. Здесь А — некоторый m-мерный вектор; 6Д— вектор, определенный рекурсивно с помощью формул (6.8) и 6Д = (бд™1, Ьк^\ к = 1, ..., г, причем 6Д = Ь + А.
Следствие 2. (Изменение коэффициентов целевой функции). Оптимальное решение задачи (6.1) остается оптимальным при любых изменениях вектора с, при которых выполняется условие (6.12) двойственной допустимости.
Необходимо отметить, что первоначально полученное оптимальное решение задачи (6.1) остается оптимальным и для более широкой области изменения вектора с.
^Следствие 3. (Введение новой переменной). Введение в задачу (6.1) новой переменной хп_ь, с коэффициентом ^+1 целевой функции и соответствующим столбцом Д„+1 матрицы ограничений не улучшает оптимального значения целевой функции, если
с5в-‘л;+1-с„+1>о.(6.13)
Здесь вектор 4^+1 определим рекурсивно, опираясь на формулу (6.7).
Комбинируя следствие 1 со следствием 3, получим следующее достаточное условие для введения в задачу новой переменной х„+|.
Следствие 4. Определим вектор 6Д так же, как и в следствии 1. Если А = —4rt+i и
сп-н + CgX^>CgXB + L(6.14)
хд = В-16д >0 и хд — целое,(6.15)
то xn+i ^ 1 в любом оптимальном решении.
Доказательство. Предположим противное, что для задачи (6.1) с введенной (п + 1)-й переменной существует оптимальное решение с хп+) = 0. Тогда расширенный вектор (хв, 0), где хв = В-ХЬГ, является оптимальным решением этой задачи, а соответствующее оптимальное значение целевой функции равно с~хв. С другой стороны, нетрудно показать (по индукции, используя формулу (6.7)), что Ь\ ^ ^ Ьг — Учитывая (6.15), находим 6хд = 6Д ^ 6Д — Ап-ц. Следовательно, хд = (х = хд, xn+i = 1) — допустимое решение со значением целевой функции с^хд +> с^хв (в силу (6.14)). Но
это противоречит тому, что x^i = 0 в оптимальном решении.
Замечание. Из формулы (6 13) можно извлечь простой критерий для введения новой переменной в задачу ЛП: с^вАн^х — Сл+j < 0. Формула (6.14) гарантирует, что введение xn+i в задачу (в базис задачи) приводит к увеличению оптимального значения целевой функции по крайней мере на 1.
Хотя следствие 3 сформулировано для случая введения в задачу новой переменной, оно применимо и к небазисным переменным, вводимым в базис, и, следовательно, может быть использовано при изменениях столбцов матрицы А, соответствующих небазисным переменным.
Рассмотрим процедуру дискретного параметрического анализа, предложенную в работе [204] для задачи ЦЛП следующего вида:
max \сх!Ах = b + А, х^О, х— целое}, (6.16)
где А — матрица размерности т X п\ с, х — п-векторы; 6, А — т-век- торы. Без потери общности предположим, что все параметры задачи, в том числе и А, целочисленны.
Предположим, что задача (6.16) решена при А = 0, для чего был использован алгоритм отсечения («дробный» алгоритм или полностью целочисленный алгоритм Гомори) с сохранением определенной информации о построенных отсечениях.
Пусть В — базис задачи ЛП, соответствующей задаче (6.16) при А = 0; N — множество индексов небазисных переменных. Отсечение Гомори, основанное на Лм ограничении задачи, примет в данном случае следующий вид:
S (Ift^d — [/t] УфXj + s= фх^ — \h\xb
где h — ненулевой скаляр; s — целочисленная слабая переменная; Y = В"1 А; х = B~]b.
Введение параметрической правой части задачи (6.16) в отсечение Гомори приводит к равенству, которое называется параметрическим отсечением:
Е - |ft] Уф X,- + s = \hB7' (ft + A)] - |ft] В?1 ф + A) =
= Vhxt\ — [ft] "xt + фгВ7х ] — [ft] S'1) A + 6,(6.17)
где 6 = [{ftx,} + \hB7x\ A]; B7X — i-я строчка матрицы В-'.
Уравнение параметрического отсечения (6.17), выраженного с помощью исходных переменных задачи (6.16), имеет вид
VJiB^ А]х-' s=[{hB7x}b] +6
и является уравнением отсечения Гомори, параллельно сдвинутого на 6.
Описываемая процедура решения параметрической задачи (6.16) основана на использовании соответственно сдвинутых отсечений задачи, решенной при А = 0. Если найденное в результате применения процедуры решение является допустимым, то оно и оптимально. Если
же оно недопустимо, т. е. нецелое или отрицательное, то необходимо дальнейшее применение алгоритма отсечений для решения задачи при Д =#0.
Алгоритм
Решаем задачу (6.16) при Д = 0. Пусть при этом было использовано г отсечений. Для каждого &-го отсечения, к = 1, ..., г, запоминаем *ик = \hxt\ и ^ = ^ИВТ^ где i — индекс производящей строки для к-го отсечения.
Для каждого к-го отсечения вычисляем рекуррентно параметрический сдвиг 6* по формуле
6* = [? -J. иМк^
где dk = (Дъ ..., Дт, б1б*-1), к = 1,..., г.
Вычисляем параметрическое решение хд по формуле
x^ = Bq 60 + Bq dM
где Во — оптимальный базис задачи (6.16) при Д = 0, включающей дополнительно все г отсечений; 60 — соответствующий вектор правых частей; dr = dr+1. Если хд ^ 0 и целое, то хд— решение задачи (6.16) для заданного Д.
Если хд не является целочисленным или хд < 0, то используем базис Во и хд как исходную точку для построения последующих отсечений.
Представляет интерес также работа [183], в которой идеи методов отсечений применены к решению следующей задачи ПЦЛП:
шах {сх/Ах^ 64- tbf, х^О, x^Zn\,(6.18)
где b* ^ R^, t — вещественный параметр, t £ [0, 11.
Для решения указанной задачи предлагались два алгоритма, названные алгоритмами сжатия.
Первый алгоритм разработан для случая, когда Ь’ ^ 0. Вначале задача (6.18) решается методом отсечений при фиксированном / = 1. Найденное оптимальное решение х^ подставляется в каждое ограничение и определяется минимальное значение / (например, /*), при котором полученное решение остается допустимым для (6.18). Тогда х°> будет оптимальным и для семейства задач вида (6.18) при ^* ^ / ^
Затем строится подходящее отсечение, которое исключает х(1) из допустимой области задачи (6.18) при / = /*. Далее методом отсечений, основанным на лексикографически двойственном симплекс-ме- тоде (использующем столбцовые таблицы), ищется новое оптимальное целочисленное решение х<2). Решение х(2) подставляется в каждое ограничение задачи при 1 = 1* для определения минимального значения /** параметра /, при котором это решение остается допустимым, а следовательно, и оптимальным. Затем строится новое отсечение, исключающее х<2) из допустимой области задачи (6.18) при / = /**, и про-
цедура повторяется снова до тех пор, пока допустимая область не «сузится» до случая t = 0. Алгоритм заканчивается, когда решена задача (Во) и найдено оптимальное целочисленное решение для каждого значения t £ [0, 1].
Второй алгоритм предназначен для решения задачи (6.18) параметрического программирования в случае, когда на компоненты вектора Ь' не накладывается условие неотрицательности. Применение этого алгоритма предполагает предварительное разбиение ограничений задачи (6.18) на два класса: класс I содержит ограничения с неотрицательными компонентами вектора 6', а класс II — остальные ограничения. Соответственно можно представить и область допустимых решений задачи (6.18) как пересечение двух множеств, первое из которых определяется ограничениями из класса I, а второе — из класса II.
Второй алгоритм основан на тех же идеях, что и первый, но увеличение количества отрицательных компонент У в значительной мере усложняет исходный алгоритм.
Авторы алгоритмов сжатия кратко описывают результаты машинного эксперимента по решению 1800 тестовых задач вида (6.18) разной размерности — 5 X 10, 5 X 15, 5 X 20 — с помощью первого и второго алгоритмов. По их мнению, применение первого алгоритма можно считать эффективным для решения 40—50 % членов семейства ^Bt)/i £ € Ю, 11). Кроме того, параметрические задачи с отрицательными компонентами вектора Ь’ требуют для своего решения, как правило, больше времени, чем задачи с Ь’ ^ 0. Однако второй алгоритм сжатия дает возможность полностью решать на 10,7 % больше задач, чем первый.
§ 3. ПРОЦЕДУРЫ ПОСТОПТИМАЛЬНОГО АНАЛИЗА НА ОСНОВЕ МЕТОДА ВЕТВЕЙ И ГРАНИЦ
Существует некоторая аналогия между процедурами проведения постоптимального анализа задач ЛП на основе симплекс-метода и задач ЦЛП на основе метода ветвей и границ. Обычно при исследовании задач ЛП используют признак оптимальности решения задачи ЛП, который состоит в требовании неотрицательности (неположительности, в зависимости от принятых обозначений) элементов «окаймления» конечной симплекс-таблицы. Можно изменить коэффициенты первоначальной задачи ЛП и проверить, будет ли для соответственно измененной конечной симплекс-таблицы выполняться признак оптимальности. Эта таблица соответствует некоторому эквивалентному представлению полученной задачи. Если указанная таблица не удовлетворяет признаку оптимальности, то для ее дальнейшего преобразования с целью решения измененной задачи ЛП применяют симплекс-метод (прямой или двойственный). Так же, как и в ЛП, в ЦЛП можно изменить коэффициенты исходной задачи и проверить, будет ли соответственно модифицированное ветвление содержать рекордное допустимое решение новой задачи. Естественно, что это потребует накопления дополнительной информации в ходе решения первоначальной задачи. Затем можно продолжить зондирование некоторых кандидатов, уточ-
няя, если необходимо, ветвление задачи или же модифицируя релаксации рассматриваемых кандидатов.
Первым применил данный подход к постоптимальному и параметрическому анализу задач ЦЛП Рудман [225, 226]. Его сообщение на эту тему [225] было связано с аддитивным алгоритмом Балаша [12], лежащим в общем русле идей метода ветвей и границ, но не использующим релаксацию рассматриваемых задач.
В статье [2251 рассмотрена задача ЦЛП с булевыми переменными min {z = ex!Ах ^ b, х$ = 0 или 1,/ = 1,..., п},(6.19)
где А = ^^ — (m X п) — матрица; с = (сь ..., сп), х = (хп ..., хп)э b = (61, ...» Ь^ — векторы соответствующих размерностей. Частичным решением s назван набор, состоящий из нулей и единиц, соответствующих некоторым компонентам вектора х. Эти компоненты названы фиксированными, остальные (не входящие в частичное решение) — свободными. Если xi — переменная, входящая в s, то ее значение (0 или 1) обозначим X/. Определены следующие множества индексов:
Js = {//ху — фиксированная переменная},
7s = ^j/Xj — свободная переменная},
7L = {/7/6 7s, cf<0^
J^ = M/jEJs» cf>ov
Частичное решение s соответствует следующей задаче-кандидату: min jz = ^ CjXi 4- z7^ a^x^b^ (i = 0, 1, ..., rn^ х, = О
I rjs ich
или 1(/6?)},(6.20)
где
zs = £ с^, ецц — Cj (/ = 1,..., n\
b' =^ анхь t = 0, 1,..., /и,
b0 — верхняя граница значений целевой функции на множестве допустимых решений.
Для частичного решения s определяются величины:
ft^bi—- }2 аахь Р/ = Е min [az/, 0},iUsiW
о" = S аи» 1 = °, 1, ..., m.
Зондирование задачи-кандидата по алгоритму Балаша основано на проверке выполнения каждого из ограничений задачи с использованием величин It. р/, О/ (/ = 0, 1, ..., т).
Тесты, с помощью которых зондируются задачи-кандидаты (т. е» исследуются частичные решения), состоят в следующем.
Тест 1 Если а- ^ ^ (г = О, 1, ..., /п), то ветвление кандидата прекращается. Полагаем х, = X/ (/ g Js), xz — О (/ g Js+), xz= 1 (/ 5 Js_). Запоминаем полученное решение задачи (6.20) и соответствующее значение целевой функции (рекорд).
Тест 2, Если р;- > // для некоторого i g {0, 1, ..., m}, то ветвление кандидата также прекращается. В этом случае допустимая область задачи (6.20) либо пуста, либо не содержит допустимых решений, лучших рекордного.
Тест 3. Если pj + | а^ |> t* для некоторого i g {0, 1, ..., т^ и некоторого / g Js (предположим, что для i — к и / = г), то из дальнейшего рассмотрения удаляются все потомки зондируемой задачи-кандидата, которые соответствуют частичным решениям s' с
. [0, если аь <0, .
Хг = . . п х, = X/ при / g У .
[1, если akr 0, 1 г
Каждому из зондируемых частичных решений можно поставить в соответствие номер I Ц g (0, 1, ..., т}) некоторого ограничения исходной задачи. Так, если частичное решение s зондируется с помощью теста 1, ему ставится в соответствие индекс I = 0; если же зондирование производится с помощью теста 2, то решение s становится в соответствие индекс f, для которого pz > t^ а при использовании теста 3 — индекс к, для которого р£ + I akr [ > tL
Предложенная в работе [225] процедура постоптимального анализа задачи (6.19) состоит из двух фаз: решения задачи и собственно постоптимального анализа.
Фаза решения заключается в следующем.
А. Формулируем и решаем (применяя аддитивный алгоритм) задачу
min (z — c^xlA^x ^ 6+, х1 = 0 или 1, / — 1, ..., п}, (6.21 где Л+ = (а^); b^ = (bt, ..., b^; с^^ а^ — наибольшие интересую-) щие нас значения коэффициентов q и а(/ соответственно; Ь") — наименьшее интересующее нас значение bi. Очевидно, что допустимая область задачи (6.21) содержится в допустимой области задачи (6.19).
Б. Каждый раз, когда зондируется какое-либо частичное решение задачи (6.21), сохраняем информацию о нем и о соответствующем ему ограничении.
В конце фазы решения множество 9? всех прозондированных частичных решений задачи (6.21) разбивается на т + 1 ненересекающих- ся множеств. Обозначим 9?А (к — 0, 1, ..., т) — множество частичных решений, которым соответствует индекс к, т. е. к-е ограничение задачи (6.21). Очевидно, что
U 9?z П 92,- 0, i^k.
z=0
Можно сделать несколько замечаний, касающихся указанного разбиения множества 9J, полученного на фазе решения.
Если увеличить правую часть к-го ограничения задачи (6.21), а остальные коэффициенты задачи оставить неизменными, то оптимальное решение первоначальной задачи останется допустимым и для измененной задачи. Лучшее решение измененной задачи, если оно существует, будет продолжением некоторого частичного решения s £ Ч1к.
Оптимальное решение первоначальной задачи останется оптимальным при увеличении Ьк, не превышающем ик, где
ufe = min {pl — tkV
Пусть в оптимальном решении первоначальной задачи переменная хг принимает нулевое значение. Если уменьшить соответствующий ей коэффициент сп оставив неизменными все остальные коэффициенты задачи, то оптимальное решение первоначальной задачи может и не быть таковым для измененной задачи, однако любое ее лучшее решение (если оно существует) будет продолжением некоторого частичного решения s g Э?о, для которого переменная хг либо является свободной, либо xsr = 1.
Если хг = 0 в оптимальном решении первоначальной задачи, то указанное решение останется оптимальным и при уменьшении коэффициента сг на величину wn где wr = min {Ф5} и минимум ищется среди всех s £ 9t0, для которых либо хт — свободная переменная, либо Хг = 1:
ф5 Ро—^о + ^г, если хгС^,I ро — to в противном случае.
Если xr = 1 в оптимальном решении первоначальной задачи, то никакое уменьшение сг не изменит оптимальности решения.
Постоптимальная фаза заключается, с одной стороны, в исследовании устойчивости оптимального решения, полученного на первой фазе, а с другой — в параметрическом анализе задачи.
Исследование устойчивости текущего оптимального решения при изменении правых частей ограничений и коэффициентов целевой функции может быть проведено на основании замечаний 2 и 4. Исходя из этих замечаний приходим к выводу, что текущее оптимальное решение останется таковым при любом изменении коэффициента ^ (1 ^ ^ ^ ^ т) в интервале (6^" — т^, b"t + и^, где т^ — величина невязки в к-м ограничении для текущего оптимального решения, а также при любом значении коэффициента сп превышающем величину ct — wn если хг = 0 в текущем оптимальном решении.
Анализ устойчивости при изменении коэффициентов ограничений может быть основан на утверждении: текущее оптимальное решение останется оптимальным для акг £ (а^ — икГ) atr + tJ, где окг = = min {ф5} и минимум берется по всем s £ ^, в которых хг либо свободная переменная, либо равна единице. Здесь
$ | Р^ — 4 + акг. если хг — свободная переменная и акг ^ О, №—tk в противном случае.
Перейдем к рассмотрению предложенной в [2251 процедуры параметрического анализа, проводимого в рамках постоптимальной фазы решения задачи (6.19).
Каждому частичному решению s можно поставить в соответствие задачу-кандидат вида
min lz = c^Xj + z7 5 сГ^х, ^b* (t = 0, 1, ..., m^ Xj = 0
или 1(/E«/S)^, (6.22)
где ?s = £ ctxsh b^ = bt — S atiXSj. t£js j$Js
Каждое решение частичной задачи (6.22), присоединенное ks, называется расширением s для задачи (6.21). Очевидно, что оптимальное решение задачи (6.22) приводит к наилучшему расширению частичного решения s для задачи (6.21); в то же время любое (не)допустимое решение (6.22) приводит к (не)допустимому расширению s для (6.21).
в Параметрический анализ, проводимый с целью изучения влияния изменений какого-либо одного из коэффициентов исходной задачи, состоит в следующем.
Г. В случае изменения Ьк для каждого s ^Ч1к сформулируем задачу (6.22), используя измененное значение Ь^ и первоначальное значение г = г, соответствующее наилучшему допустимому решению, полученному на фазе решения или при решении любой предыдущей задачи-кандидата. Решаем построенные задачи, используя аддитивный алгоритм. В результате решения всех задач (6.22), s £ 9t^, будет найдено новое оптимальное решение (если оно существует), соответствующее измененному значению Ьк.
^. В случае изменения сг для каждого s £ 9%, в котором х* Ф 0, сформулируем задачу (6.22), используя измененное значение сг и значение z = z такое же, как указано в пункте Г. Решаем все построенные задачи с помощью аддитивного алгоритма, в результате чего получаем новое оптимальное решение (если оно существует).
Аналогичные процедуры параметрического анализа предложены для случая одновременного изменения многих коэффициентов задачи: при одновременном изменении bh bk. ..., bt решаем задачу (6.22) для всех s £ 9?£ (J ^ U -• U ^ь при одновременном изменении cq. сг. .... ct решаем задачу (6.22) для всех s g 9?0 таких, что xq =/= 0, х, ^ ^ 0, ..., X/ у= 0. При одновременном изменении нескольких коэффициентов ограничений (a£q. акг. .... ам^ необходимо для каждого решения s £ s^ (J ^ U ••• U ^ь в котором ни одна из компонент xq. х?, .... xst не равна нулю, сформулировать задачу (6.22), используя измененные значения atq. акг. .... ац и первоначальное значение г = = z такое же, как указано в п. Г. В результате решения всех задач (6.22) с помощью аддитивного алгоритма будет найдено новое оптимальное решение (если оно существует).
В статье [225] предлагается применять описанную процедуру параметрического анализа и в случаях необходимости удаления из задачи ряда ограничений (например, с номерами i, к, ..., /) или введения новых переменных (например, х^, хг, ..., xj. В первом случае процедуру параметрического анализа можно провести на основе увеличения соответствующих коэффициентов 6(, 6^, ..., bt или, что эквивалентно, путем исключения ограничений с номерами z, к, ..., I из каждой задачи (6.22). Во втором случае проще всего ввести в задачу (6.21) все интересующие нас переменные с соответствующими большими значениями коэффициентов^, см ..., съ а затем, уменьшая их, применить процедуру, описанную в п. 2'.
В [225] указано, что проведен небольшой эксперимент на ЭВМ по применению постоптимального анализа на основе изложенных выше процедур, описан пример.
В статье [226] развиты процедуры постоптимального анализа для задач частично целочисленного программирования на основе метода ветвей и границ.
Рассмотрена задача (П) вида
max {2 = сх!Ах ^ 6, х, = 0 или 1 (/ = 1,. .., р^0^х,^1(/ = р+ 1,..., и)}.
Результаты статьи могут быть распространены на случай, когда х, — целые (/ = 1, ..., р) и х-, ^ 0 (/ = 1, ..., п\
Аналогично 1225] определяются понятия частичного решения, фиксированных и свободных булевых переменных, вводятся индексные множества Js и Js = lp \ J\ где Ip = {1, ..., р\.
В ходе работы алгоритмов ветвей и границ, основанных на применении техники ЛП, каждому частичному решению s ставятся в соответствие две задачи. Во-первых, это задача-кандидат (IIs) вида
{
пп
2=5 CjXj + 5 cixi + zSl 5 aiJXi + 5 aiixi ^ ^ ^jsi-p-v\^jsi=p^
(i = 0, 1,..., m), xz = 0 или 1 (/ £ 7s), 0 ^ x,1 (/ = p + 1,... , /t)}, где
2s = 5 cixb $ = bi— 5 aHxbKJS/eJs
Очевидно, что каждое (не)допустимое решение задачи (ГГ), соединенное с s, дает (не)допустимое решение задачи (П).
Вторая задача, ставящаяся в соответствие решению s, представляет собой релаксированную задачу-кандидат (IIs), которая является задачей ЛП и формируется на основе (IF) путем замены требования xz = = 0 или 1 (/ £ Js) более слабым: 0 ^ х; ^ 1 (/ 6 JSY
Обозначим 2 — рекорд, т. е. значение наилучшего допустимого решения задачи (П), полученного к моменту исследования частичного решения s и его расширений. Кроме того, обозначим v (IIs) и и (П*) —
оптимальные значения целевой функции задач (IIs) и (IIs) соответственно. Зондирование кандидата (IIs) проводится согласно трем тестам:
выполняется ли неравенство и (Ш) ^ г?
является ли оптимальное решение (IIs) допустимым для (IIs)?
(Ш) не имеет допустимых решений?
В случае успешного зондирования можно считать, что неявно перебраны все расширения частичного решения s.
В работе [2261 изучается процедура постоптимального анализа в случае изменения коэффициентов целевой функции и правых частей системы ограничений. Отмечается, однако, возможность использования данного подхода и при изменении коэффициентов матрицы ограничений. Рассматривается следующая задача (Т), полученная из (П):
max (z = с^х/Ах ^ 6+, х/ = 0 или 1 (/ = 1,..., р),
0^xz^ 1 (/=РН- 1,п)},
гдес+ = (с+, ...,с+);6+ = (bt, ..., bt); cf, bt — минимальные интересующие исследователя, значения с, и bt соответственно. Очевидно, что допустимая область задачи (Т) содержится в допустимой области задачи (П). Увеличение коэффициентов bt или сь возможно, повлечет за собой улучшение оптимального значения целевой функции.
По аналогии с (IIs) и (IIs) для задачи (Т) могут быть сформулированы задачи (Ts) и (Ts) соответственно.
Обозначим 9? — множество всех прозондированных частичных решений задачи (Т), а К — число элементов этого множества. Поскольку каждое решение задачи (Т), допустимое или недопустимое, является расширением лишь одного какого-либо элемента из 9£, то множество 9? порождает разбиение множества решений задачи (Т) на К непере- секающихся подмножеств.
Если известно множество 9f, то оптимальное решение задачи (Т), в формулировке которой увеличины некоторые из коэффициентов Ьи ch можно найти простой перепроверкой каждого элемента из 9Z. Это потребует для каждого s g 9i реконструирования задачи (Ts) с использованием новых значений ее коэффициентов и изучения расширений s с целью поиска решений, лучших, чем первоначальное оптимальное решение. Для описания этой процедуры введем дополнительно следующие обозначения.
Пусть х* = (х*, ..., х^ — первоначальное оптимальное решение задачи (Т), г* — соответствующее значение целевой функции.
Предположим z* (А) — значение функции цели в точке х* при изменениях А в задаче (Т). Более конкретно,
z* ^Cj) = г* 4- x*Acz,(6.23)
z*(A6t) = z*.(6.24)
Обозначим (Т (А)) — задача, полученная из (Т) изменением А ее коэффициентов. Для каждого s £ 9i обозначим (Ts (А)) и (Г (А))
задачу-кандидат и ее релаксацию соответственно, в которых учтены изменения А.
Пусть 9ta, 9t6, 9^ — множество частичных решений, прозондированных с помощью тестов (а), (Ь) и (с) соответственно при решении задачи (Т), причем 9t = 9?0 U U s^c.
Для каждого s ^9la и 9?6 введем в рассмотрение: ys = (у?, ... ..., У^ — оптимальное решение задачи (Т,), причем у- = X/, если / С Js.
6/ — максимальное приращение сь для которого у4 остается оптимальным решением (TJ), причем для / g Г можно выбрать 6/, равным достаточно большому числу;
у® — максимальное приращение Ьь для которого базис оптимального решения ys остается допустимым для (Т,);
Л/ — двойственная оценка i-го ограничения в (Т*) для оптимального решения ys.
Для каждого s ^91с определим 0/ как максимальное приращение Ьь при котором полученное на последней итерации решение (возможно, недопустимое) задачи (Т^) остается таковым. Вычисление 0;s зависит от того, прямой или двойственный симплекс-метод применяется. Для прямого симплекс-метода недопустимость решения, полученного на последней итерации, определяется тем, что в нем искусственные переменные положительны. В этом случае 0? является максимальным приращением Ьь для которого найденное решение остается допустимым. При применении двойственного симплекс-метода недопустимость решения, полученного на последней итерации, определяется тем, что отрицательная базисная переменная не может быть увеличена до нуля. В этом случае 0, представляет собой такое значение Д6<, при котором указанная переменная принимает нулевое значение.
И, наконец, для каждого s £ 9? введем в рассмотрение следующие величины:
гр/ — критическое значение Дс/ такое, что при Дс/ ^ гр/ ни одно из решений задачи (Ts (Дс,)) не даст допустимого решения задачи (Т (Д^))» лучшего, чем х*;
Ф$ — критическое значение Дй, такое, что при ^Ь£ ^ ф? ни одно из решений задачи (Ts (Д^)) не даст допустимого решения (Т (Д6^)), лучшего, чем х*.
В работе [2261 предлагается вычислять величины гр/ и ф^ следующим образом.
Пусть s £ 9ta. Известно [226], что для каждого / = 1, ..., п v (Т? (Ас/)) — кусочно-линейная выпуклая функция аргумента Де,-, а для каждого t = 1, ..., т и (Т, (ДЬ^) — кусочно-линейная вогнутая функция аргумента Д^. Поведение этих функций показано на рис. 1 и 2 (сплошные линии).
Очевидно, что для 0 ^ Дс/ ^ 6/
v (Т; (Дс/)) = и (Tsr) + у^Ср(6.25)
Более того, по определению в любом допустимом решении задачи (Т, (Ac,)) Xj ^ 1. Поэтому для Ас, > 6} выполняется неравенство
v (Т? (А^)) < [и (Т?) + У/б)] + (А^/ - 6*).(6.26)
Объединяем формулы (6.25) и (6.26) для получения при любых Acz верхней оценки функции и (Т^ (Acz)), которая представлена на рис. 1 штриховой линией.
Очевидно, что для 0 ^ А6Г ^ уу
Из вогнутости функции и (Т* (A6J) вытекает, что
v (Т? (A&z)) < и (Т^) + М(6.27)
для всех \bt. Таким образом, формула (6.27) дает оценку сверху для функции и(Т,(А6у)). Эта оценка изображена на рис. 2 штриховой линией.
Для каждого коэффициента с^ и каждого частичного решения s £ € ^а необходимо найти такое ф/, чтобы для приращения Асу ^ ф) выполнялось неравенство и (Т, (Дс$ ^ г* (А^). Если это условие будет удовлетворено, то ни одно из решений задачи (Ts Дс^ не даст допустимого решения задачи (Т (Ас,)), лучшего, чем х*.
Из формул (6.23), (6.25), (6.26) следует, что и (Т® ДЬ()) ^ z* (Acz), если 0 ^ Acz ^ б} и
и(Т*) + у5Дс1 < 2* + х? Ас,(6.28)
или если Acz > бу и
и (Т?) - (1 - у^ 6* + А^/ ^ 2* + хДср(6.29)
Для (6.28) определим величину
|[z* — u(Tsr)]/[yz— х-V если y^x*hесли у/ = xz,
где М — достаточно большое число. Для (6.29) определим величину
j [z* — и(Т‘) + (1 — у/)6/]/[1 — хЦ, если х/< 1,
А /2 =
М, если xj = 1.
Тогда ф/ можно выразить следующим образом:
(/?/Ь если 0 ^ /?}1 ^ 6/, фу = \
\RSj2 в противном случае.
Заметим, что фу = М, если х* = 1.
Для каждого коэффициента bt и каждого s € ^а необходимо найти такое Ф*, чтобы для приращения kbt ^ Ф? выполнялось неравенство v (Tr (A6J) ^ г* (A&i). Из формул (6.24) и (6.27) следует, что последнее неравенство будет иметь место для всех А^ таких, что‘
1<) + лМ^г*.(6.30)
Поскольку н^ ^ 0, можно положить
ф$h z* — и (Т')]/л^, если л,- > 0,
1|/И, если л/ = 0.
Пусть s g 9^. Поскольку для каждого частичного решения s из ^й выполняется неравенство v (Т,) ^ г*, то в данном случае вычисление величин ф/, Ф? можно провести аналогично предыдущему,
Пусть, наконец, s g s3lc. В этом случае задача СП) не имеет допустимых решений. Увеличение коэффициентов с^ целевой функции ничего не изменит, поскольку допустимая область останется той же. При изменении А^ < 0J допустимая область задачи (Т (A6J) будет пустой. При kbt = 0/ решение задачи (Тг), полученное на последней итерации, может оказаться и допустимым, для чего необходимо положить Ф? = 0/ — е, где 8 — достаточно малая положи тельная константа.
Перейдем непосредственно к описанию алгоритма постонтимального анализа частично целочисленной задачи (П). Как и в работе 1225], здесь вычислительный процесс состоит из двух фаз: решения и постоптимального анализа. На первой фазе решается задача ( Г) и накапливается необходимая информация; на второй — исследует< я устойчивость полученного решения и изучается влияние изменения коэффициентов задачи на ее решение.
Фаза решения. Сформулируем задачу (Т) и решим ее с использованием метода ветвей и границ. При этом модифицируем обычную процедуру следующим образом. Когда уже прозондировано частичное решение s, необходимо запомнить s (формируя одновременно WG, 9^ и 9ic) и вспомогательную информацию вида'
и(Т?), у/, 6/(/ = 1, ..., л), л, = 1, ..., /л), если s € Э?а U ^,
или
6/ U - 1, ..., т\ если s ^Rc.
В конце фазы решения с помощью указанной вспомогательной информации и уже полученных х* и г* можно вычислить ф/ (/ = 1, ...
п) для каждого s Е sJio U s^b и ф? (I = 1, ..., т) для каждого s Е 6 9?а U ^ U ^-
Постоптимальная фаза. Анализ устойчивости. 1. Для С/ пусть
df = mm ^/s^Q U ^}.
Текущее оптимальное решение останется оптимальным для любого Су Cj ~}“ dj.
Для Ь( пусть
gi = min (Ф^Е 9Z« U ^ U ^}.
Если т, — невязка при подстановке текущего оптимального решения в 1-е ограничение, то текущее оптимальное решение останется таковым для всех bt Е Vbf — ть bt + gj.
Параметрический анализ. 1. Изменение С/. Для каждого s Е ^а U s^> лля которого А^ > ф/, сформулируем и решим задачу Tr (Acz). При этом в качестве начального рекорда выбираем лучшее из допустимых решений, найденных ранее. Любое s Е Е ^ U ^ь» Для которого Асу ^ ф/, можно исключить из рассмотрения. Когда же будут перебраны все s Е ^а U ^ь» будет найдено новое оптимальное решение (если оно существует).
И з м е н е н и е бу. Для каждого s Е s^, для которого Абу > Ф?, сформулируем и решим задачу (Т, (A6J). Причем в качестве начального рекорда выбираем лучшее из допустимых решений, найденных ранее. Значениями s Е s^> для которых Аб, <^ ф,\ можно пренебречь. В итоге просмотра всех s Е ^ будет найдено новое оптимальное решение (при условии, что оно существует).
В работе [226] предлагается также следующая модификация изложенного выше подхода к постоптимальному анализу задач ЧЦЛП.
Обозначим (Т*) задачу ЛП, полученную из (Т) при фиксированных X/ = X/, / = 1, ..., р. Оптимальное решение задачи (Т*) обозначим х*; у (Т*) = г*. Кроме того, пусть (Т* (А)) — задача, полученная из (Т*) при изменении А коэффициентов задачи. Оптимальное решение у* (А) задачи (Т* (А)) интересно для нас тем, что оно, во-первых, всегда допустимо для задачи (Т (А)), а во-вторых, является не худшим решением задачи (Т (А)) по сравнению с х*, поскольку у (Т* (А)) ^ 2* для любого возможного А. Таким образом, задачу (Т* (А)) и ее оптимальное решение у* (А) можно использовать с целью усиления процедуры постоптимального анализа. Для этого имеются следующие возможности.
Величина [и (Т* (А)) —2*] является оценкой снизу увеличения целевой функции при изменении А коэффициентов задачи (Т), посколь
ку и (Т* (А)) > 2*.
Описанная ранее процедура постоптимального анализа задач ЧЦЛП использует х* в качестве начального рекорда при решении задачи (Т (А)). В общем случае удобнее использовать у* (А) в качестве начального рекорда.
Для того чтобы установить пределы изменения коэффициентов задачи (Т), для которых у* (А) является оптимальным решением (Т (А)), необходимо при вычислении фу и Ф; для каждого s £ Э?о и $fc воспользоваться величиной и (Т* (А)) вместо 2* (А). Так, при вычислении ф; вместо формулы (6.30) необходимо применить неравенство
и(ТНА<и(Т*(АМ.и(ТНА<и(Т*(АМ.(6.31)(6.31)
и(ТНА<и(Т*(АМ.
и(ТНА<и(Т*(АМ.
(6.31)
(6.31)
Некоторая полезная информация для усиления процедуры постоптимального анализа может быть извлечена и непосредственно из оптимального решения задачи (Т*). Если у/ —максимальное увеличение 6Z, для которого базис, соответствующий х*, остается допустимым для задачи (Т*), то
и (Т* (Аб;)) = 2* + Л* Аб; ДЛЯ 0 ^ Аб; ^ У; ,
где Л; — двойственная оценка г-го ограничения в задаче (Т*) для х*. Пусть
г** (Аб;) =г** (Аб;) =г* + л/Аб;, если 0 ^ Аб; ^ у?, 2* + л/’у*, если Аб; > у*.
г** (Аб;) =
г** (Аб;) =
Очевидно, что 2** (A6Z) образует нижнюю границу для у (Т* (Аб;)), т. е. и (Т* (Аб;)) ^2** (Аб;) для всех Аб; (поведение этих функций отражено на рис. 3). Следовательно, при вычислении Ф; вместо неравенства (6.31) можно воспользоваться соотношением
У(Т^ + лМ^2**(Аб;).
Причем, как и раньше, у* ДЬ^ будет оптимальным решением задачи (Т (Аб;)) для всех Абг, находящихся в пределах некоторого интервала устойчивости, определяемого на основе вычисления Ф/. Однако при gi > Т* функция у* ДЬ^ не определена для части этого интервала
(Т* < Д6, < gj.
Использование задачи (Т*) при проведении анализа устойчивости коэффициентов целевой функции требует лишь простого расширения изложенных выше соответствующих процедур. Это связано с тем, что функция 2* Дс^ обеспечивает нижнюю границу функции и (Т* (Ас,)) для всех Ас, (рис. 4). Величины ф} и d, могут быть получены так же, как и раньше. Оптимальным решением задачи (Т Дс^) при 0 ^ Ас, ^ ^ dj является у* Де,). Однако при d, > 6*, где 6, —максимальное увеличение Ср для которого х* остается оптимальным решением зада-
чи (Т*), функция у* (Ас,) оказывается неопределенной для интервала (6У, dj.
В заключение работы [226] Рудман сообщает о проведенном машинном эксперименте и отмечает, что вычисление данных, необходимых для постоптимального анализа, увеличивает время выполнения фазы решения на 5—10 %. Например, в задаче, включающей 15 булевых переменных, 13 непрерывных переменных, 10 ограничений, 6 коэффициентов функции цели были увеличены на 30 %. Для нахождения 6 новых оптимальных решений задачи потребовалось 57 симплексных итераций, в то время как решение каждой из 6 новых задач в отдельности потребовало 219 симплексных итераций.
Другим обобщением идей первого сообщения Рудмана [225] явилась работа [221], в которой его подход развит в следующих направлениях:
улучшены формулы, необходимые для проведения анализа устойчивости решения и определяющие границы изменения коэффициентов, в которых найденное оптимальное решение остается таковым;
предусмотрены возможности изменения коэффициентов задачи не только с целью расширения допустимой области, но и сужения ее; разработаны соответствующие алгоритмы постоптимального анализа;
предложена эффективная структура накопления данных, неявно используемых в процедуре постонтимального анализа;
с целью программной реализации предложенной процедуры разработано семейство однотипных алгоритмов.
В работе [221] описаны ностоптимальные процедуры, применяемые при изменениях коэффициентов в правых частях ограничений, в целевой функции и матрице ограничений.
ПОСТОПТИМАЛЬНЫЙ АНАЛИЗ ЗАДАЧ ЦЛП С ИСПОЛЬЗОВАНИЕМ ТЕОРИИ ДВОЙСТВЕННОСТИ
Следующее направление в рассматриваемых нами исследованиях связано с использованием теории двойственности, разработанной для целочисленного программирования, при проведении постоптимального анализа в задачах ЦЛП вида (6.1). Основополагающей в этом на прав-
лении можно считать работу Уолси [232], на некоторых результатах которой мы здесь остановимся.
Перепишем модель (6.1) в следующем виде:
{
пп1
У CjXj/^ ape, ^ b, Xj 0, х} — целое, / = 1, ..., пл . (6.32)
Предположим, что сц Ц = 1, ..., п) и & — векторы из Z™. Обозначим Г ^R^ — множество всех функций F : Rm ->- Z?1. Функцию F £ Г Ц^ назовем супераддитивной на подмножестве А ^ Rm, если F (о^) + + F (а2) ^ F (о^ + а2) Для всех аь а2> ат + а2 € А- Выделим подмножество Г™ множества Г (R"1), включающее все те супераддитивные и неубывающие функции из Г (Rmy которые принимают в точке О нулевое значение. Запишем задачу, двойственную к задаче (6.32):
min {F ф^/F (я,) ^ сь / = 1,..., п; F ^Гту (6.33)
Пусть х*, F* —соответствующие оптимальные решения исходной пары двойственных задач (6.32) и (6.33). Изучим влияние изменений в исходных данных задачи (6.32) на ее оптимальное решение в предположении, что функция F* известна. Обозначим г1 — оптимальное значение целевой функции, а х‘ — оптимальное решение задачи (6.32) после изменений, внесенных в ее условия.
Заменим в условиях задачи (6.32) вектор b на Ь'. В этом случае функция F* останется двойственно допустимым решением. Так как для любых допустимых решений х и F пары двойственных задач справедливо неравенство ex F фу то F* ф'у
Введем в рассмотрение множество
I* = L/F*^ а^Х = 5 с,у\ .
I \/=1/ м )
Если F* останется оптимальным решением задачи, двойственной к измененной задаче (6.32), то любое допустимое решение измененной прямой задачи (6.32) принадлежит множеству /*, т. е. х' £ /*.
Изменим целевую функцию задачи (6.32): с -> с'. Поскольку х* в этом случае останется допустимым решением новой задачи, то z' ^ ^ с'х*. Если для всех /£ {1, ..., п\ выполняется неравенство с,^ ^ F* ф^у то F* останется двойственно допустимым решением и, следовательно, j ^ F* фу Если ск ^ F* (а/) при к £ у/х* = 0) и ск = = ск при к £ у!х* > 0}, то решение х* сохранит свою оптимальность.
В задачу (6.32) введем новую переменную с коэффициентами с и а. При этом х* останется прямо допустимым и сохранит свою оптимальность, если F* (а) с. п
В задачу (6.32) введем дополнительное ограничение: ^й/Х/ ^ /=1
й0. Если при этом решение х* останется прямо допустимым, то оно будет и оптимальным. В связи с тем что функция F : R171^ ->- /?\ оп-
ределяемая равенством F (а, ат+!) = F* (а), двойственно допустима для новой задачи, выполняется следующее соотношение:
г’ ^ z = F ф, /г0).
АНАЛИЗ УСТОЙЧИВОСТИ РЕШЕНИЙ НА ОСНОВЕ ТЕОРИИ ТОЧЕЧНО-МНОЖЕСТВЕННЫХ ОТОБРАЖЕНИЙ
Анализу устойчивости решений задач (частично) целочисленного программирования на основе теории точечно-множественных отображений посвящены работы [186, Д22, Д34, Д79, Д86].
В работе [186] приводится задача параметрического программирования вида
max{f(x, р) = рх/х^ М (л)},(6.34)
где р 6 R'\ т] С Rm» /И (т]) = (х £ Rn!Ax = т], х = (хп х^, х О, (хь ..., xs) g Zs}, 0 ^ s ^ п, X = (р, т]) — вектор параметров. Задача (6.34) является частным случаем общей задачи (6.2), ее решение также сводится к описанию множеств Ф и Я и отображений Л4, ф и гр, о которых шла речь в § 1 данной главы. Исследование задачи (6.34) опирается на некоторые определения, которые приведем ниже.
Пусть (С^ cz %— некоторая последовательность подмножеств множества X.
Нижним пределом последовательности \С^ называется множество Нт С1 = (z С Х/lim р (2, Cz) = 0}, —/
где р (2, Cz) — расстояние (в евклидовой метрике) от точки 2 до множества С1.
Пусть заданы два нормированных пространства А и X. Отображение Г, которое каждой точке множества А ставит в соответствие некоторое подмножество множества X, называется точечно-множественным отображением А в X и обозначается Г : А 2х.
Точечно-множественное отображение Г называется в точке Х° £ А:
полунепрерывным сверху (п.-н. св.) по Бержу, если для любого открытого множества й такого, что Г (Х°) с: й существует такое 6 — = 6 (Й) > 0, что Г (X) с: й для любого X £ Од (Х°, 6);
полунепрерывным снизу (п.-н. сн.) по Бержу или открытым, если для любого открытого множества Й такого, что Г (Х°) П й Ф 0 существует 6 = 6 (Й) > 0 такое, что Г (X) Q Й ^= 0 для любого X £ € Од (Х“, 6);
п.-н. св. по Хаусдорфу, если для любого е > 0 найдется такое 6 > 0, что Г (X) с: Ох (Г (Х°), е) для любого X £ ОА (Х°, 6) (здесь Ох (Г (X»), е) = (х 6 X | inf (|| х - у || /у € Г (X0)} < 8});
п.-н. сн. по Хаусдорфу, если для любого е > 0 существует 6 > О такое, что Г (Х°) cz Ох (Г (X), е) для любого X Г Од (Х°, 6);
замкнутым, если для любой пары последовательностей {Х^} cz А, \хп1 cz X со свойствами Хп -^- Х°, хп £ Г (Х„), хп х0, выполняется условие х0 g Г (Х°);
непрерывным по Бержу (Хаусдорфу), если отображение п.-н. св. ■ и п.-н. сн. по Бержу (Хаусдорфу).■
Заметим, что из того, что отображение Г п.-н. св. по Бержу, еле- ■ дует, что Г п.-н. св. по Хаусдорфу; из того, что Г п.-н. сн. по Хаусдор- ■ фу, следует, что Г п.-н. сн. по Бержу. Кроме того, если Г п.-н. св. Я но Хаусдорфу и Г (1°) замкнуто, то Г замкнуто в точке А,0; если Г Я замкнуто и X компактно, то это отображение п.-н. св. по Хаусдорфу; Я если Г п.-н. сн. по Бержу и замыкание Г (Х°) компактно, то Г п.-н. сн. Я по Хаусдорфу в точке АЛЯ
Определение. Рецессивным конусом непустого выпуклого множества ■
Сс Rn называется множество■
0+С - {« g Rnlx + сш £ С для всех х^С и а ^ 0).
Определение. Двойственным конусом к произвольному множеству
С с: R11 называется следующее множество:j
С* = {х £ Rn | их ^ 0 для всех и £ С}.J
Пусть Сс Rn — произвольное выпуклое множество; х G С. Обоз- ? начим Qx (С) — множество всех и £ Rfl таких, что х + аи £ С для всех а £ [0, а01, где а0 — некоторое положительное число.
Определение. Множество S сс Rn является звездным, если в нем существует такая точка г, для которой любое множество \у 5 Rn/y = I = ах + (1 — а) г, 0 < а < 1), где х £ S, полностью содержится в S. j
Множество 21 называется множеством разрешимости. Функцией - разрешимости называется отображение ф: 91 -> R\ которое определяется посредством формулы ф (X) = шах {/ (р, х)/х £ М (q)}. Множеством допустимых параметров называется множество ф.
В работе [1861 введены следующие определения устойчивости задачи (6.34) в некоторой точке (р°, т]°) £ 21 и множества устойчивости этой задачи.
Задача (6.34) называется устойчивой в точке (р°, q°) € 51, если выполняются условия:
отображение М п.-н. св. по Хаусдорфу и п.-н. сн. по Бержу в точке q°;
отображение ф непрерывно в точке (р°, т|°);
отображение гр п.-н. св. по Хаусдорфу сверху в точке (р°, q°).
Подмножество 2 cz 21 называется множеством устойчивости зада
чи (6.34), если для любой пары (р, л) € ^ выполняются условия:
сужение отображения М на 2 п.-н. св по Хаусдорфу и п.-н. сн. по Бержу в точке q;
сужение отображения ф на 2 непрерывно в точке (р, iq);
сужение отображения гр на 2 полунепрерывно сверху в точке (и. п).
Результаты, полученные в работе [186], могут быть кратко сформу- лированы в виде следующих теорем.
Теорема 6.3. Множество 21 задачи (6.34) является непустым, замкнутым и удовлетворяет условию
21 - U* х Ф,
где U* — двойственный конус к рецессивному конусу U * \и^_ Rn!Au ■* = 0,’
и>0^ Ф {q£ Я^/М (q)=^ 0}.
Теорема 6.4. Множество 91 связно, если 0 ^. s <L п и
dim {о £ Rm!Ax -=v, х > 0} = т.
где к = (Хд+1, xj £ Rn-P — непрерывный вектор; А — соответствующая х подматрица матрицы А
Теорема 6.5. Пусть s = п. В этом случае задача (6.34) обладает следующими свойствами:
множество 91 моэюет быть разделено на счетное число максимальных множеств устойчивости вида
V (q) = U* х {q} = {(р, Л) € Rn X Rm^ ^U\ q = i]}, где q £ Ф, причем каждое из этих множеств является непустым многогранным конусом с вершиной в точке (0, q) £ Rn X Rm;
сужение (р на V (q) является выпуклой кусочно-линейной функцией на V (q);
каждое множество устойчивости V (q) может быть разбелено на конечное число многогранных конусов вида
РхХ {q}, где
х £ £ (q) cz ext conv М (q), Рх = [Qy (conv М (q))]*,
Рх с: {(ц, q) ^ 9l/q = q}, причем функция ср линейна на Рх X fq}.
Теорема 6.6. Если 0 ^ s < п, то существует разбиение множества 91 на счетное число звездных множеств устойчивости вида
2 (л) = и* X Q (л),
где л€Ф» 9(Л)=Т (Л ЕФ/ЭД(х, q)#=0 при x£T(q);
SSR (я, Л) = 0 при х^Т (q)}, Т (q) = {x£Zs/x>0,
401 (я> Л) =# 0}, ЭД (х, q) = t^ Е Rn!x = (х, х),
х^ Rn-\ Ах + Ах = q, х^О}, (Л, Л) == Д,
причем в общем случае S (q) — ни открытое, ни замкнутое множество.
Теорема 6.7. При 0 < s < п отображение ср является п.-н. св. по Хаусдорфу во всех точках множества 91„ сужение отображения ср на множество V (q) = U* х {q} является выпуклой кусочнолинейной функцией при любом q G Ф.
Рассмотрим теперь с тех же позиций задачу вида ext {сх/х£ Gm<A. 6)},
где Gm (Л, 6) = Р Q {х £ Rn!Ax ^ b}, Р cl R\ A — вещественная (m X /г)-матрица, c $ R’1, b £ Rm. Если P = Zs X Rn”' (0 < s ^ n), то при фиксированных (Л, b, с) сформулированная задача сводится к задаче ЧЦЛП.
" Рассмотрим вначале отображение Gx (а, Р) в предположении, что Р произвольное множество из R^ а Q R\ р £ Р1. В [Д22] доказано следующее утверждение.
Теорема 6.8. Если множество Р ограничено, то Gx (а, Р) п.-н. св. в точке (а, Р) тогда и только тогда, когда lim Gx (a, pn) cz cl G (а, р) для любой последовательности рл р.
Доказательство. Пусть множество Р ограничено и lim Gx (a, PJ cz cl Gx (a, P) для любой последовательности {Рл}, сходящейся к р. Тогда для любого е > 0 найдется такое 6 > 0, что sup {р (х, Gx (а, Р))/х ^ G (а, р + 6)} < е. Поэтому Gx (а, Р) cz Gx (а, р + + 6) cz О (Gx ^ р), в).
Разность ах — р можно трактовать как скалярное произведение векторов (а, Р) и (х, —1) в пространстве /?п+1. Поскольку во всяком конечномерном векторном пространстве все нормы эквивалентны, найдется такое вещественное число С, что для любых у, г £ Rn-B уг ^ ^ С || у || || г ||. Кроме того, поскольку множество Р ограничено, || (х, —1) || < М, где х g Р. Положим 6г ^ -^ 6. Пусть (а, Р) С 0^+* ((я> Р), 6J. Покажем, что Gx (а, Р) cz ORn (G (а, Р), е). Рассмотрим произвольный вектор х из Gx (а, Р). Тогда
(я—а)х — (р — р)<С||(а, р) — (а, Р)||||(х, — ОПУСТИ х
X || (а, Р) — (а, Р) || и ах — р ^ (ах — р) + СМ6Х.
Поскольку ах — Р ^ 0, то ах — р ^ 6. Тем самым показано, что Gx (а. Р) cz ORn (Gx (а, Р), 8).
Предположим теперь, что множество Р ограничено и Gx (а, Р) п.-н. св. по Хаусдорфу. Тогда для любого 8 > 0 найдется такое 6 > 0, что G (а, Р) cz ОRn (G (а, Р), 8) как только (а, Р) cz O^n+i ^а» Р), 6). В частности, G (д, Р) cz О (G (а, Р), 8) как только (а, Р) g O^+i kVat Р)» 6). Поскольку в конечномерном пространстве все нормы эквивалентны, можно предположить, что
р((а, Р), (а, р))^С(||а-а|| + |Р-р|),
где С — некоторая константа, не зависящая от выбора (а, Р), (а, Р). Поэтому р ((а, Р), (а, Р)) ^ С | р — Р|). Итак, как только 6Х < -^-, Gj (а, ф + dj cz ORn (Gx (a. P), e), t. e. sup {p (x, Gx (а, P) !x^ Gx {a, p + + 6i)} < 8. Отсюда следует, что lim (a, PJ cz cl Gx (a, P) для любой последовательности {pj, сходящейся к р. Теорема 6.8 доказана.
Заметим, что теорема 6.8 доказана без традиционного предположения о выпуклости множества Р.
В качестве следствий из теоремы 6.8 можно получить такие известные факты.
Следствие 1. Если множество Р компактно, то отображение Ог (а9 Р) п.-н. св. по Бержу.
Следствие 2. Если множество Р выпукло и ограничено и int Gx ^а, Р) ^ 0, то Gx (а, Р) п.-н. св. по Хаусдорфу.
Утверждение 6.7. Если Gx (дь Р/) ^ Sc: R\ i = 1, ..., р, то
/ рр\
G^ | У । (хд^у ^j azpf j cz t$\z=lt=l/
P
для любых az^0, У ai=^
Доказательство. Нетрудно показать, что
Gi («А + а2а2, а^х + «2Р2) <= Gx («1, Pi) U Gi («2, P2) при любых az ^ 0, ^ + «2 = 1.
Дальнейшее доказательство проводится по индукции. Пусть утверждение верно при к = р — 1. Докажем его при к = р. Если ар — = О V 1> то доказываемое включение справедливо по предположению индукции. Если ар О V 1, то
(р— 1р—1\
СЛУУ pJczS,
"^р S 1 -ар /
/ рр\/р—1
GJ X a-tab 2 аА = Gx (1 — ар) £ , ^ a( + apap,\z—T/={/\Z=1p
P— 1\/Р—1
0 " ap) 2 j pi 4- apPpj c Gi ^S 1 _ ap a‘* p—1\
S ттгк U GM’ McS-
Утверждение 6.7 доказано.
Отображение Gm (Л, 6) можно представить в виде Gm (Л, 6) = = П Gx (a„ Pi), где
<€{l.....m}
Л = П ’ ^ = (Р1> • • •, PJT-
\6Zm/
Из того факта, что пересечение п.-н. св. отображений по Бержу, образы которых замкнуты, является п.-н. св. по Бержу, следует утверждение.
Утверждение 6.8. Если множество Р компактно, то отображение Gm (Л, 6) п.-н. св. по Бержу.
Рассмотрим теперь множество Фт (Р) всех таких пар (Л, Ь\ для которых Gm (Л, 6) =# 0.
Аналогично [Д86] можно доказать следующее утверждение.
Утверждение 6.9. Если множество conv Р компактно, то множество Фт (Р) замкнуто.
Доказательство. Пусть (Ло bt) £ фт (Р) и (Л„ 6,) -> ~> (Л0, Ь0У Покажем, что (Ло, 60) £ Фт (Р). Поскольку (Ап Ь^ € ~ Ф^ (Р), то существует xz g Gm ^Ао b^ cz P, следовательно xz £ <Pc conv P. Поскольку последовательность {xzj принадлежит ком
пактному множеству, то из нее можно выделить сходящуюся подпоследовательность. Не теряя общности, считаем xz х0. Поскольку р
conv Р компактно, то х0 С conv Р. Тогда х0 = ^ ^х1, где \ > О, i=i
р( р\
5 ^ = 1, # g Р. Поскольку At^ ^ bt, то Лохо ^ Ьо и Ло I 5 МИ ^
z=l\i=l/
Р
^ Ьо или 2 ^t Ио^ — 60) ^ 0. Это значит, что существует такой ин-
деке /0, что ЛдХ^ — Ьо ^ 0. Иными словами, х£» £ Gm (Ло, Ь^, т. е, ^т Ис М ^ 0’
Утверждение 6.9 доказано.
Нетрудно показать, что Ф^ (Р) — конус с вершиной в нуле.
Замечание 1. В случае, когда множество Р неограничено, можно привести примеры таких точечно-множественных отображений Gm (Л, 6), что Ф^ (Р) не замкнуто.
Пример. Пусть Р cl Z\ Р =Цх с ХЧУ2 хг — х2 > 0, х2 > 1} 0
р q ’р q ’Г) {х g R2/ах ^ Р}. Тогда (]/2, —1, 0) £ Р3 \ Ф2 (Р), однако в любой окрестности точки (1^2, —1, 0) найдутся точки из ф2 (Р). Действи
р q ’
р q ’
тельно, для любого в > 0 найдется такое рациональное число
A<^2, что |(/2, — 1, 0) —— 1, 0)|<е.
Однако (—- , — 1, о) g Фх (Р), поскольку (р, q) g GT ^-~ , — 1) , 0).
Замечание 2. Если множество фт (Р) замкнуто, то не обязательно conv Р компактно.
Пример. Р = ({(х, у) С Р2/(х - I)2 + (у - I)2 ^ 1} U {(х, у)еР2/0<х<1, 0^ у 1}) \ {(1 0)}.
Утверждение 6.10. Множество Rn^"v \Ф1 (Р) выпукло для любого Р из Rn.
Доказательство. Нетрудно показать, что для любых (аъ Р1)> (^2, Р2) € Rn+1 и «1, а2 € ^ таких, что а1$ а2 ^ 0, о^ + а2 = 1 выполняется Gt (а^! + а2а2, 04^ + а2^2) cl Gt (яь ^) J Gt (a2f Р2)- Поэтому, если Ог (at, РЛ = 0, I = 1, 2, то
(а^л 4- а2а2, а^ + a^J g /?"+1\ф1 (Р).
§ 6. ОПРЕДЕЛЕНИЕ ОБЛАСТЕЙ УСТОЙЧИВОСТИ РЕШЕНИЙ В ЗАДАЧАХ ЦЛП
Проблемы исследования устойчивости в дискретных задачах рассматриваются в работе [228], в которой определяются области устойчивости решений в задачах полностью ЦЛП.
Для задачи ЦЛП вида (6.1) в § 1 настоящей главы была сформулирована общая задача устойчивости и определены множества Р, Q ^рА. А (ро), G, Р, Р, Р (х°; А, 6) и Р (x^Y В работе [228] исследуется возможность определения множества Р (х°; A, b^ cl Rn всех векторов с таких, что x°£Q(p0) при /?0 = (Л, Ь, с). Теоретически Р(х°; А, Ь) определить нетрудно. Пусть S = {х С RnHilx ^ hl\ i Е Ц — выпуклая оболочка множества G допустимых решений задачи (6.1). Обозначим /0 — множество индексов активных ограничений в точке х° : 10 = {/£ Uhlx° =hl°Y Пусть К — V Rn!tix^. О, I £ /0} — полиэдральный конус, К* = к/с = ^Xihf.Xi 0, / ^ 1Д — двойственный к К ()
полиэдральный конус.
Теорема 6.9. Множество Р (х°; А, Ь) совпадает с двойственным конусом К*.
Определение множеств S и К в общем случае очень затруднительно, поэтому данная теорема имеет скорее теоретическое значение. Только для некоторых специальных задач, таких, например, как задача о паросочетании с максимальным весом, имеющая вид шах \сх/Ах^ е, х — (0, 1) — вектор},
где А — матрица инциденций неориентированного графа, возможно точно описать множество S. Что касается описания выпуклой оболочки множества допустимых целочисленных точек в задаче о ранце, то в этом направлении в последнее время получены значительные результаты, которые дают возможность определить множество Р (х°; А, by Существует возможность получения подмножеств множества Р (х°;
Л, 6) относительно простого вида. Пусть х* —оптимальное решение непрерывной задачи, соответствующей (6.1). Обозначим Ко—конус, определенный ограничениями, активными в х*. Гомори показал, что граничные плоскости выпуклой оболочки целочисленной решетки, лежащей в этом конусе, содержат допустимые базисные решения некоторой линейной задачи оптимизации. В этом случае, когда х° — крайняя точка этого полиэдрального множества (углового полиэдра), можно с помощью активных в х° ограничений получить некоторое подмножество области устойчивости Р (х°; А, Ь) (рис. 5). Однако в общем случае определение граничных плоскостей углового полиэдра весьма затруднительно. Поэтому в работе [228] описывается и другой путь определения подходящих подмножеств.
Если z = а00 + V а0 (—х^ является строкой целевой функции в /^N симплексной таблице, отвечающей оптимальному решению х* соответствующей непрерывной задачи, то а0/- ^ 0, j £ N. Предположим, что а^ > 0, j £ N и, следовательно, х* — единственное оптималь-
Рис. 5Рис. 5
Рис. 5
Рис. 5
ное решение. Обозначим d — значение определителя базисной матрицы, соответствующей % *. Тогда
аоо = ^* > «о/ = -^- U € NY
где Роо, Ро/ (/ Е W) - целые.
Для целочисленной задачи оптимизации имеем
20 = а00 + J] а0/ ( хД
Обозначим о0 — наименьшее целое число о> 1, для которого диофантово уравнение zod— do = Poo — У Ро/^/ с неотрицательными /£N
j £ N разрешимо. Рассмотрим х* (/£ N) — точки пересечения гиперплоскости
20 °о — аоо 4~ Xj «о/ ( ^/)
с ребрами конуса Ко. Точки xi, j £ N, можно легко определить из симплексной таблицы, соответствующей х*.
Пусть далее
Кт = \х(х = У X/ (х/ — х°); Xz ^ О, KNV1 j^NJ
и предположим, что точка х° определена однозначно. Тогда справедливо включение conv G а х° + Ki (рис. 6).
Замечание. В общем случае трудно установить, однозначно ли определено х°. При некоторых ограничивающих предположениях это сводится к вопросу, имеет ли легко определяемое диофантово уравнение единственное неотрицательное целочисленное решение.
Пусть ^l — двойственный к Ki конус, т. е.
К* = \cHpc1 — х°) с ^ 0, / € Л^}.
Теорема 6.10. Справедливо соотношение
K*xclP^\ A.bY
Конус К* значительно легче определить, чем К*.
Рис. 7
Теперь откажемся от требования, что точка х° определена однозначно, и предположим, что задача (6.1) имеет несколько оптимальных решений: х0£> i £ J = {1, ..., Ц. Для любого непустого подмножества Jo — ^1ъ ..., /г) множества J введем в рассмотрение множество Р (/0; Д, 6) всех векторов с таких, при которых все точки xot, i С 70, остаются оптимальными решениями задачи (6.1). Обозначим Р (0; Д, Ь) — множество всех векторов с таких, при которых хотя бы одно из решений х01, i £ J, оптимально.
Определим дополнительно еще ряд множеств:
L (70) = \х!х = 5 ^v (х0*1 — х°Ч ^v — любое!,IV—2)
L (/о)1 — ортогональное дополнение к L U0V М (70) = {с/сх°‘ ^ c^s i ,
^_( Муо\ если |J0| = 1,
М °’ — 1L(7O)1 П Му0\ если |70|>2.
Теорема 6.11. Справедливо соотношение
п Ki п КУ^^РУ^ А,Ь\
Теорема 6.12. Справедливо соотношение
и К* сР^0; Д, Ь).
Замечание. Очевидно, что
U/C = и [.П^ПКОШ
Теоремы 6.10—6.12 поясняются рис. 7.
Введем обозначение: с6 = с + 0с°, 0 ^ 9 ^ 1.
Вернемся к предположению о том, что точка х° определяется однозначно. (В противном случае можно применить теоремы 6.11 и 6.12 вместо 6.10).
Пусть известны хЛ j £ N, и о0. Определим
X/ = c°xJ — с°х°, / Е N, No = {/ Е N/x^ > 0},
Оо = min-^ , 0О = min {1, 05}.
/G^o
Теорема 6.13. Если N^ = 0, то с$ £ Р (х°; Л, 6) для 0^0^ L Если No=# 0 ^ то Cq^ Р (х°; Л, Ь) для 00 < 0О.
В работе [228] указывается еще ряд возможностей определения подмножеств множества Р (х°; Л, 6). Одна из них состоит в следующем. Решаем задачу (6.1) методом Гомори (применяя дробный алгоритм) и определяем х°. Исходя из конечной таблицы, соответствующей х°, выделяем ограничения, активные в х° (с учетом отсечений, присоединенных в ходе решения): g{x ^ g^, i Е /.
Пусть K*g—двойственный конус к К& = ^x/g^ ^ 0, / Е П> т. е. К* = \с!с = ЦХ^; Х(- ^ 0, f Е /I.
Теорема 6.14. Имеет место включение
Kg^P(A A.bY
Утверждение теоремы 6.14 можно обобщить на отсечения любого вида. Легко заметить, что условие f Е Р (х°; Л, Ь) справедливо, если неравенство fx ^ /0 определяет произвольное (не обязательно согласно Гомори) отсечение.
В работе [228] изучаются области устойчивости решений одномерной задачи о ранце:
шах (г = сх/ах^ а0, х^О, x£Zn],(6.35)
где с = (съ ..., сп\ с, ^ 0, Ci — целое, / = 1, ..., п; а = (аъ ... а^, а{ ^ 0, а, — целое, / = 1, п; а^ ^ 0, <70 — целое.
Предположим, что х° — некоторое оптимальное решение задачи (6.35), с — фиксированный вектор. Изменяться могут а и а0. Введем в рассмотрение множество устойчивости Р (х°; с) = {(а, <20)/шах сх = xC_G
= сх0}, где G— область определения задачи (6.35).
Теорема 6.15. Р (х°; с) представляет собой множество решений следующей системы соотношений:
(
х° \/ xv \
_J^0; (^«о)(
(а, а^ ^ 0 и а, а^ — целые,
где хХ1 (у = 1, ..., г) — крайние точки множества conv {х g Zn!x ^ ^ 0, сх ^ сх° + 1}.
Замечание. Для элементов множества Р (х°; с) выполняются условия:
если (а1, 4), (a2, d^ Е Р (^°; с), то (а1, ао) + (а2, ао) £ Р (х°; с);
если (а, а^) Е Р (x°*> с) и т — наибольший общий делитель чисел (аъ ..., ап; а0), то — (а, а0) £ Р (д^; с) для всех Xg N, где N — множество всех натуральных чисел.
Теорема 6.16. Множество Р (х°; с) представляет собой точечный выпуклый конус, т. е.
из (а, а^ £ Р (^; с) следует, что X (а, а^ £ Р (х°; с) для всех целых X 0;
из (а1, 4), (я2, ао)€ Р ^; с) следует, что (а1, ао) + (а2, 4)^ £ Р (х°; с).
Далее в [228] показано, что в случае, когда %/^ {0, 1), / = 1,... ..., п, множество Р (х6; с) представляет собой точечный полиэдральный конус.
В статье [229] результаты, полученные в [228] о нахождении области устойчивости для полностью целочисленных задач, переносятся на случай частично целочисленного программирования.
ВОПРОСЫ УСТОЙЧИВОСТИ ДЛЯ ТРАЕКТОРНЫХ ЗАДАЧ.
УСТОЙЧИВОСТЬ И 8-УСТОЙЧИВОСТЬ СИСТЕМЫ
ЛИНЕЙНЫХ НЕРАВЕНСТВ
И ЛИНЕЙНОЙ ЗАДАЧИ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ
В. К. Леонтьев предложил [85] нетрадиционный подход к исследованию поведения оптимальных решений линейной дискретной задачи как функции исходных данных, определяющих ее условия. Он рассмотрел класс задач оптимизации, которые можно описать следующей общей схемой. Заданы конечное множество G, состоящее из точек в пространстве Rn, и линейный функционал / (х) —сх. Необходимо из множества G выделить точку х*, доставляющую минимум этому функционалу. В связи с этой задачей оптимизации, называемой «прямой», можно сформулировать две основные задачи.
Задача 1 («обратная» задача оптимизации). Описать все целевые функции (из фиксированного класса F функций, определенных на G), для каждой из которых точка х* £ G является точкой оптимума на G.
Задача 2. В заданном классе F целевых функций, определенных на G, который включает функцию / (х) (т. е. / £ FY выделить такие функции, «близкие» к / (х), для которых точка х* (или любое другое оптимальное решение прямой задачи) является точкой оптимума на G.
В задаче 2, в отличие от задачи 1, требуется найти не все функции из заданного класса, имеющие фиксированную оптимальную точку, а только те из них, которые близки к / (х). Поэтому можно считать, что задача 1 характеризует «глобальную», а задача 2 — «локальную» устойчивость прямой задачи.
Основным объектом исследования В. К- Леонтьева являются так называемые траекторные задачи оптимизации, которые составляют весьма широкий класс, включающий оптимизационные задачи на графах, задачи теории расписаний и др. В общем случае траекторная задача — это задача отыскания оптимальной (в смысле некоторого выбранного функционала) траектории т в заданном множестве траекторий М^п = Сч, ..., т^). При этом каждая траектория т,—это некоторое подмножество номеров элементов заданной матрицы А = = (г^) размером т X п.
Вполне правомерно ожидать, что «небольшие» изменения матрицы Л либо не выведут за пределы множества оптимальных траекторий исходной задачи, либо сохраняют некоторые их важные свойства. Поэтому представляется необходимым изучить вопрос о том, какие локальные «возмущения» исходных данных приводят к оптимальным траекториям исходной задачи. Это весьма важно с практической точки зрения, так как позволяет использовать информацию, полученную при решении исходной траекторной задачи для решения задач с «возмущенными» матрицами Л. В связи с этим в работе [851 получены, в частности, следующие результаты. Введено понятие радиуса устойчивости матрицы Л, получено его аналитическое выражение, доказан ряд его алгебраических свойств. Рассмотрены различные варианты определения устойчивости матриц и показана их общность с принятым определением.
В работе [85] исследована также устойчивость системы линейных неравенств относительно некоторого ее фиксированного решения х0 в предположении, что возмущениям подвергаются либо все коэффициенты этой системы, либо только часть из них. Остановимся подробнее на этом случае, когда возмущениям подвергается лишь часть коэффициентов системы неравенств вида
а^х ^bb i — 1, ... , т,(6.36)
где at = (ал, ..., а^, х =(хъ ..., хп) — векторы n-мерного действительного линейного пространства Rn с нормой, определенной по формуле
||х|| = max |xj.\^k^n
Через || х ||* обозначим норму в пространстве, сопряженном с Rn\k II* =^1^1-
Пусть х0 = (х01, ..., %оп) — некоторое решение системы (6.36). Введем в рассмотрение множество Nn = {1, ..., п} со всеми его подмножествами 1Ь ..., 12п* Каждому подмножеству /s (s = 1, ..., 2") будет соответствовать один из возможных вариантов возмущения рассматриваемой системы неравенств. Обозначим R^ — подпространство пространства Rn, состоящее из тех его векторов, у которых хг = О при г С ls. Элементы из подпространства /?$ обозначим Xs.
Систему линейных неравенств (6.36) называем г-устойчивой относительно решения х0 при возмущении /$, если х0 является решением измененной системы линейных неравенств вида
(^ + h^ х ^ bb i = 1, ... , т,
при любом векторе || Л| | ^ е.
Справедлива следующая теорема.
Теорема 6.17. Система неравенств (6.36) г-устойчива относительно решения х0 при возмущении ls тогда и только тогда, когда выполняется
неравенствонеравенство8^ min\^i^m8^ min\^i^mbj — atx0 ll^o II ’bj — atx0 ll^o II ’(6.37)(6.37)
неравенство
неравенство
8^ min
\^i^m
8^ min
\^i^m
bj — atx0 ll^o II ’
bj — atx0 ll^o II ’
(6.37)
(6.37)
где xo = (4ь . .. 4n), 4r = 0 при r £ /s; x^r = xr0 при r^Nn\ ls.
В случае, когда возмущениям подвергаются все коэффициенты системы неравенств (6.36), имеет место утверждение, аналогичное теореме 6.17, причем вектор Хо в соотношении (6.37) заменяется вектором х0.
Рассмотрим также понятие е-устойчивости решений системы (6.36).
Решение х0 системы (6.36) называем г-устойчивым относительно возмущения 1S1 если вектор у = xQ -V К является решением этой системы при любом векторе hs таком, что ||AS||^ е.
Аналогом теоремы 6.17 в этом случае является следующее утверждение.
Теорема 6.18. Решение х системы (6.36) является г-устойчивым относительно возмущения ls тогда и только тогда, когда выполняется неравенство
, Ь^а^
е^ min —>
еде asi = (ah, a^), aV = 0 при r £ /s; ah = а^ при r^Nn\ Is.
В. К. Леонтьевым исследована также локальная устойчивость задачи дискретной оптимизации, состоящей в минимизации линейной функции /(х) = сх на некотором конечном множестве М = {х0,, ... ..., Xvm)V В связи с этим определено понятие е-устойчивости целевой функции / (х) этой задачи при возмущении тех координат вектора с =; ^(Ср ..., с^, номера которых составляют множество/s.
Функцию f (х) называем г-устойчивой на системе векторов М, если некоторая точка х^ £ М, которая является точкой минимума функции / (х) на М, остается таковой и для любой функции ср (х) = = с + hsx при || V |1 ^ е. Число ps (7И) = sup е называется радиусом устойчивости системы М относительно возмущения Is. Справедлива следующая формула:
р$ (Д4) minр$ (Д4) minIIx(h ^И* wIIx(h ^И* w
р$ (Д4) min
р$ (Д4) min
IIx(h ^И* w
IIx(h ^И* w
видвидр (УЧ) = minр (УЧ) = min8^ min8^ minII х(0 хю II*II х(0 хю II*
вид
вид
р (УЧ) = min
р (УЧ) = min
8^ min
8^ min
II х(0 хю II*
II х(0 хю II*
Если возмущениям подвергаются все координаты вектора с, т. е. /$ = = N^, формула для вычисления радиуса устойчивости приобретает
/ ^ха) / (*(т>)
II *(0—^)1!* ’
Для е-устойчивости функции / (х) необходимо и достаточно выполнение следующего неравенства)
ОДИН ПОДХОД К РЕШЕНИЮ ЗАДАЧ ЦЛП В УСЛОВИЯХ НЕОПРЕДЕЛЕННОСТИ КОЭФФИЦИЕНТОВ
Существуют и совершенно иные подходы к решению целочисленных задач, для всех или некоторых коэффициентов которых известны лишь диапазоны их изменения. Одному из таких подходов посвящена работа [217]. В ней рассматривается задача (6.1) в предположении, что необходимо найти максимум целевой функции и что относительно коэффициентов этой функции имеется неопределенность.
Рассматривается следующая проблема. Пусть задано множество С всех возможных векторов с. Необходимо решить задачу (6.1) при условии, что о векторе коэффициентов целевой функции известно лишь то, что он принадлежит С.
Возможны следующие подходы к ее решению:
выбрать произвольный вектор из С и решать задачу (6.1) с таким вектором (в общем случае нет правила для такого выбора);
рассмотреть задачу (6.1) как задачу многоцелевого программирования (в общем случае с бесконечным числом целевых функций);
применить две экстремальные стратегии «пессимистическую'» и «оптимистическую».
Пессимистическая стратегия состоит в нахождении оптимального решения х* задачи (6.1), которое обеспечивает наибольшее значение целевой функции среди всех допустимых решений при предположении, что с является наихудшим из всех возможных. Это означает, что для любого допустимого х справедливо следующее неравенство:
min сх* ^ min сх.севсес
Пессимистическая стратегия дает минимальную гарантированную «прибыль»:
у(Р, С) =- mincx*. -с^С
Оптимистическая стратегия состоит в выборе такого допустимого решения х**, которое максимизирует целевую функцию при условии, что вектор с является наиболее подходящим, т. е. для любого допустимого х справедливо следующее неравенство:
max сх** ^ max сх.
• сессес
Оптимистическая стратегия дает верхнюю границу всех возможных «прибылей»:
и ^Р, С) = шах сх**.
Определив значения и (Р, С) и и (Р, С), можно характеризовать задачу (6.1) и ее устойчивость к изменениям исходных данных.
Предположим, что задано множество С и для отдельного с° £ С найдено оптимальное решение х° задачи (6.1). Областью устойчивости для х° является множество Р (х°; А, Ь) всех векторов с таких, что с £
£ Р (х°; Л, 6) тогда и только тогда, когда х° является оптимальным решением задачи (6.1) при с =с, Справедливо следующее утверждение.
Утверждение 6.10. Если С cz Р^х°; Л, Ь), то х* — х*:?' = х°.
В связи с тем что множество Р (х°; Л, 6) часто трудно определить, в некоторых случаях вместо него можно воспользоваться некоторым его подмножеством, полученным как недорогой побочный продукт решения задачи (6.1).
Пессимистическая стратегия приводит к следующей минимаксной задаче:
х* = arg max min сх»x£G ceG
где G— допустимая область задачи (6.1).
В рассматриваемой работе [217] предложены алгоритмы нахождения х* и доказана их конечность.
Оптимистическая стратегия приводит к задаче
х** = arg max max ex.
xQG c£G
Нахождение x** оказывается более трудной задачей, чем поиск х* даже в том случае, когда С является выпуклым многогранником. Можно только доказать, что х** является вершиной conv G.
В работе 1217] сформулирована также проблема исследования устойчивости решения задачи (6.1) в случае, когда известно вероятностное распределение вектора с. В этом случае можно применить различные стратегии, характеризующиеся ожидаемой прибылью и уровнем риска. Две такие стратегии являются наиболее приемлемыми. Первая из них состоит в выборе допустимого вектора хм £ G, который максимизирует ожидаемое значение прибыли, т. е.
хм arg max ^М (с) х/Ах ^6, х > 0, x£Zn^
где М (•)—математическое ожидание.
Вторая стратегия состоит в вычислении допустимого решения xD £ 5 G, которое минимизирует дисперсию прибыли в предположении, что ожидаемое значение прибыли не меньше, чем заданная величина q. В этом случае должна быть решена задача нелинейного программирования вида
xD = arg min {/(х)/Лх^Ь, cx^q» х>0, x£Zn^
где / (х) = М (сх — М (сх))2 представляет собой квадратичную функцию.
Глава 7
МОДЕЛИ И МЕТОДЫ ПАРАМЕТРИЧЕСКОГО ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ
§ 1. ПРИБЛИЖЕННОЕ РЕШЕНИЕ ЗАДАЧИ ЦЛП*
С ПАРАМЕТРОМ В ЦЕЛЕВОЙ ФУНКЦИИ
Рассмотрим задачу ЦЛП, коэффициенты целевой функции которой за* висят от некоторого параметра t.
Пусть £ ^ / ^ Ф, где Ей Ф — произвольные действительные числа. * Для каждого фиксированного значения параметра / на отрезке [gt ; ф] необходимо найти локальное решение задачи минимизации функ-’ ции
/(X, 0= S kCjA-tc^Xj(7.1)
/=1 при условиях и
X at/xi ^ ^> i = 1, ... , т,(7.2)
/=1
Х/>0, /=1,(7.3)
X/ — целое, / = 1, ... , п.(7.4)
Описанный в [137] метод решения таких задач состоит в последо- [ вательном приближении решения задачи (7.1) — (7.4) при некоторых^ фиксированных значениях параметра и вычислении границ изменения' параметра для получаемых локальных решений. Для решения задачи, (7.1) — (7.4) при фиксированных значениях параметра будем использовать модификацию метода направляющих окрестностей, совпадающую в основном с методом, описанным в гл. 3, но базирующуюся на = иных определениях понятий перспективного и подходящего направлений в точке, которые несколько расширены по сравнению с определениями, приведенными в § 3 гл. 3.
Будем использовать в дальнейшем введенные в гл. 3 понятия окрестности заданного радиуса, минимума относительно окрестности, направляющей окрестности Sr и множества S. Обозначим G — область, ; определяемую условиями (7.2) — (7.4), G cz Z". Считаем, что G 0; V, М — множество всех возможных направлений s из направляющей окрестности Sp в произвольной точке х £ G;
Д1 (s) = £ CjSh Д2 (s) = 5 CjSh/=|/=1■
Д (^ s) = £ (С, + /С,) Sj = Д, (S) + ^2 (8).•
Зафиксируем некоторое значение t параметра L ,'
Определение 1. Элемент s^ S a Zn назовем перспективным направлением в точке х £ G, если выполняется одно из двух условий: 1) А (Г, s) < 0; 2) А (f, s) = 0 и Д2 (s) < 0.
Определение 2. Возможное направление s £ 5 в точке х £ G назовем подходящим, если оно является перспективным направлением в этой точке и при А (/', s) = 0 не удовлетворяет условию: х + Xs g G для всех целочисленных Х> 1.
Положим t = f и применим к задаче (7.1) — (7.4) модифицированный метод направляющих окрестностей, задавая при этом некоторый радиус г>0и начальное приближение. В результате либо найдем х— точку минимума функции (7.1) относительно окрестности радиуса г, либо придем к выводу; что при t —t целевая функция (7.1) нс ограничена снизу в области G. В первом случае справедливо следующее утверждение.
Утверждение 7.1. Если х— точка минимума функции/* (х, /) от- еосительно окрестности радиуса г, найденная по модифицированному мнтоду направляющих окрестностей при фиксированном значении параметра t = f. то х будет также точкой минимума функции / (х, /) относительно окрестности радиуса г для всех значений параметра /, удовлетворяющих неравенствам / ^ / ^ t при t =f или неравенствам ^^/<7 при 7>f, где
— оо, если A2(s)^0 для всех s£Vr(x) или Vr (х) = 0,
t = \,,(7.5)
-(S) I
шах {в противном случае;
I s£VrW
( Д2($)>0
(7.6)(7.6)если A2(s)^0 для всех s£Vr(x), или Vr (х) = 0,
(7.6)
(7.6)
min I—aTsTJ в пРотивном случае.
s€VrW 2
Д,($)<0
При 7 = f задача имеет неограниченное решение для всех t >• t.
Если же целевая функция не ограничена снизу в области G при / = f, то это означает, что в процессе решения найдена точка х £ G и такое направление s g Vr (х), для которого выполняются условия
Д (Л s) < 0,
х + Xs £ G для любого целого X > 0.
В этом случае справедливо следующее утверждение.
Утверждение 7.2. Если целевая функция / (%, /) задачи не ограниче- I на снизу в области G при фиксированном значении параметра / = f| I то она не ограничена в области G при любом значении t из интервала! (/, /), где / и 1 вычисляются по формулам
t = ■
— оо,еслиA2(s)^0,Я
Ai (s)А1
Ц^-,еслиA, (s) < 0;,
1 Д2 (5)|
t = ■
'4-оо,еслиА2(8)^0,!
д. ($)* z~\ п(7.8 ,
Ч=А-,если A, (s) > 0.■ Д2 (s)'
Запишем алгоритм дачи (7.1) —(7.4).
приближенного решения параметрической за- 1
Алгоритм
Выбираем начальное приближение х° £ G и задаем целочисленный радиус г 2> 0.,
Полагаем к = \, t0 ^^
На каждой к~й итерации алгоритма применяем для решения задачи (7.1) — (7.4) при фиксированном значении t = tk—\ модифицированный метод направляющих окрестностей, задавая в качестве началь- • ного приближения х? = хм.5*
Если на некотором й-м шаге модифицированного метода направля- *; ющих окрестностей получена точка xh локального минимума / (х, f) при / = ik—\, переходим к п. 4.
Если в результате решения установлено, что целевая функция Цх, f) не ограничена снизу в области G при / =1^, т. е. получена точка xh £ G и такое направление st £ Vr (xh\ что А (/, sh) < 0 и х!1 + ! + Х^ £ G для любого целого X > 0, то переходим к п. 5.।
Вычисляем величины,
— оо, если Д2 ($) ^ 0 для всех s £ К (xh)
или Vr <xh^ = 0,'
^A "/(s) I,
* max <—в противном случае;
A8(s)>0|
+ оо, если A2(s)^0 для всех s^Vr(xh)1
или УДхн^ = 0,
f A. (s) 1
min <—в противном случае.
Если tk =tk—\> то точка Xй является точкой локального минимума функции / (х, 0 для всех / £ [^, 4], а для всех /> 1Ь целевая функция задачи не ограничена снизу. Переходим к п. 7.
Если7^ > ^i, то xh является точкой локального минимума функции f (х, 0 для всех t £ ил, tk\ Переходим к п. 6.
Вычисляем величины
' — оо, если А2 (sa) ^ О, tk = Дт (sA) -в противном случае;
'+ оо, если Д2(s^ ^ О,
Ik = Ai ^
А ( 5" В ПР0ТИВН0М слУчае>
такие, что для всех t £ (^, 4) задача (7.1) — (7.4) имеет неограниченное решение. Переходим к п. 6.
Если tfe *> ф, переходим к п. 7. В противном случае полагаем хк = х\ t =tk, заменяем к на к + 1 и переходим к п. 3.
Работа по алгоритму заканчивается, поскольку задача (7.1) — (7.4) исследована при всех значениях t £ [£, ф].
Назовем величины tk, tk, вычисляемые в ходе выполнения изложенного алгоритма, критическими значениями параметра t.
Сформулируем теорему о сходимости алгоритма.
Теорема 7.1. Последовательности ^ и {4} критических значений параметра t, построенные в результате применения алгоритма для решения задачи (7.1) — (7.4), конечны, а число итераций алгоритма не превышает величины | Sr | + 1, где | Sr | — мощность множества точек направляющей окрестности Sr.
Доказательство теоремы 7.1 приведено в [137].
АЛГОРИТМ ПРИБЛИЖЕННОГО РЕШЕНИЯ
ЗАДАЧИ ЦЛП С ПАРАМЕТРОМ В ПРАВЫХ ЧАСТЯХ ОГРАНИЧЕНИЙ
В настоящем параграфе описывается приближенный метод решения задач ЦЛП с параметром в правых частях ограничений. Предлагаемый в [138] подход состоит в приближенном решении серии целочисленных линейных задач исходной размерности при помощи метода направляющих окрестностей.
Рассмотрим задачу ЦЛП, у которой правые части системы ограничений зависят от некоторого параметра t.
Пусть Е ^ / ^ Ф, где g и ф — произвольные действительные числа. Для каждого фиксированного значения параметра / на отрезке [£, Ф] необходимо найти локальное решение задачи минимизации функции
ХС1Х1<7-9)
/5=1
при условиях
5 aijXj^bt + tbb(7.10)
xz^0, j = 1, ..., гц(7.11)
Xi — целое, / = 1, .n.(7.12)
Предполагается также, что bi ^ 0 для всех i = 1, ..., m.
Допустимую область задачи (7.9) — (7.12) при фиксированном значении параметра / обозначим Gt. В дальнейшем будем считать, что G^ =# #= 0. При введенных предположениях выполняются следующие условия: Gt. Gr для всех /',/” Е [£, ф] таких, что /' < Г, uGt=^ 0 для всех t £ Й, ф].
В дальнейшем будем использовать определенные в гл. 3 понятия окрестности заданного радиуса, минимума функции относительно окрестности, направляющей окрестности, а также понятия перспективного, подходящего и возможного направлений, необходимые для применения метода направляющих окрестностей. Обозначим OGt (х, г) окрестность с центром в точке х Е Gt радиуса г, a Sr — направляющую окрестность радиуса г.
Для любой точки х Е 2? в множестве S, выделим подмножество вида
Sr(x) = Sr/5x+s>0, £ aij^Xj-V sj^^bi
I /=i/=i
для f E {1, ♦. ♦, m^ таких, что b't = 0
Согласно методу направляющих окрестностей, для того чтобы точка х Е Gt была точкой минимума функции / (х) относительно OGt (х, г), необходимо и достаточно, чтобы в точке х не существовало ни одного подходящего направления s, принадлежащего Sr.
Справедливо следующее утверждение.
Утверждение 7.3. Если целевая функция задачи (7.9) — (7.12) ограничена снизу при / = £, то она ограничена снизу и при любом фиксированном / > £; в противном случае она не ограничена снизу при любом / > £.
Поскольку случай неограниченной целевой функции не представляет существенного интереса, в дальнейшем будем предполагать, что целевая функция задачи (7.9) — (7.12) ограничена на G^ и, следовательно, на Gt при всех / Е l£> фЬ
Имеет место утверждение.
Утверждение 7.4. Если х — точка минимума функции / (х) относительно окрестности радиуса г при фиксированном f Е I?, фЬ то х будет также точкой минимума функции / (х) относительно окрестности 216
радиуса т для всех значений параметра t £ к, /), где
£ at^j-bt
t= max —;,(7.13)
b'.>0
IS atl(xj + sl)-bl_
- min max —;, если 8Дх^Ф0.
1Лх ^i^mbt(/.14)
sW b>o
+ ooв противном случае,
и только для этих значений параметра, причем имеют место неравенства
t^f» t>f.
Доказательство. Пусть Gt» — допустимая область задачи при t =f. Поскольку при уменьшении величины параметра t допустимая область задачи сужается, то наименьшее значение t параметра /, при котором х является точкой минимума функции / (%) относительно окрестности радиуса г, совпадает с наименьшим значением параметра /, при котором точка х принадлежит допустимой области Gt. Поэтому t^f и вычисляется по формуле (7.13).
Перейдем к доказательству второй части утверждения. Поскольку х — точка минимума функции / (%) относительно окрестности радиуса т при t =f, то любое перспективное направление, принадлежащее множеству 8Г, не является возможным в этой точке при данном значении I. При увеличении значения t допустимая область задачи расширяется. Значение / можно увеличивать без нарушения локальной
оптимальности точки х до тех пор, пока некоторое перспективное на
правление не станет возможным, а значит, и подходящим в точке х^ 6 Gt- с Qt.
Для произвольного t^ t' необходимые и достаточные условия того, чтобы некоторое направление s из 8Г было перспективным и возмож
ным в точке х g Gt» г Gt1 имеют вид
i = 1, ... , m.i = 1, ... , m.(7.15)(7.15)X] + S/> 0, /=!,..., n,X] + S/> 0, /=!,..., n,Е ац (х,- + s/) < ^ + tb£, i=i
i = 1, ... , m.
i = 1, ... , m.
(7.15)
(7.15)
X] + S/> 0, /=!,..., n,
X] + S/> 0, /=!,..., n,
s 6 Sr W,s 6 Sr W,Условия (7.15) эквивалентны условиям:
s 6 Sr W,
s 6 Sr W,
(7-16)
2 Oii Vхi + s/) ^ bt + tbt для i £ {1, ... , m\ таких, что b*t > 0.
Поэтому, если Sr (х) = 0, то ни одно перспективное направление из множества Sr не является подходящим при любом значении t. Если же Sr (х) =# 0, то каждое s g Sr (х) будет подходящим направлением в точке х при всех t из интервала Us, + оо), где
£ at^x,-Vs^—btts = max ;.
l^l^/ПЬ{
Следовательно, величина t, вычисляемая по формуле (7.14), является наименьшим значением параметра t, при котором существует подходящее направление в точке х.
Таким образом, для всех значений t из интервала \t. f) х является точкой минимума функции / (х) относительно окрестности радиуса г.
Запишем алгоритм приближенного решения параметрической задачи (7.9) — (7.12).
Алгоритм
Выбираем начальное приближение х° £ G^ и задаем целочисленный радиус г > 0. Полагаем к = 1,70 = £•
На каждой к-й (к = 1, 2, ...) итерации алгоритма применяем для поиска локального решения задачи (7.9) — (7.12) при t = tk_v метод направляющих окрестностей, задавая в качестве начального приближения х° = х*~1.
В результате применения метода направляющих окрестностей на некотором h-м шаге его работы будет получена точка хк минимума функции / (х) относительно окрестности радиуса г.
Вычисляем величины п
tk = max ——;,(7.17)
— X^i^m bi
bt>0
5 a£f(^ + $/)— btmin max —;s^s A n^mbtl^>o5 a£f(^ + $/)— btmin max —;s^s A n^mbtl^>oесли Sr (x^) 5^ 0,(7 18)в противном случаеесли Sr (x^) 5^ 0,(7 18)в противном случае
5 a£f(^ + $/)— bt
min max —;
s^s A n^mbt
l^>o
5 a£f(^ + $/)— bt
min max —;
s^s A n^mbt
l^>o
если Sr (x^) 5^ 0,(7 18)
в противном случае
если Sr (x^) 5^ 0,(7 18)
в противном случае
такие, что хА будет точкой локального минимума функции / (х) для всех значений t £ \tk, tk\
Полагаем хк = хА. Если tk ^ ф» то заменяем к на к + 1 и переходим к п. 2, в противном случае — к п. 4.
Таблица 15
и о
L к 2 ml
О
о s
Sil
О 5 ЙО §5 о. £
ё о л
3 §
к 2 2 й я
CQ л
о са s
в!» |&2 585
£8
CU Q.
ЮХ 10
0,5
12
2
50 X 50
1,5
4
1
10 X 10
0,2
5
2
30 X 70
1,3
1
1
20 X 40
0,21
3
1
30 X 70
1,5
2
1
20 X 40
0,86
5
1
80 X 100
4,2
2
1
50 X 50
1
3
1
80 X 100
6,9
4
1
100 X 150
18,9
3
1
Работа по алгоритму заканчивается, поскольку исследован весь отрезок [g, <р] изменения параметра I.
По алгоритму построена последовательность точек локального минимума х1, х2, ..., хи, ... и соответствующая последовательность интервалов Ub ZJ, [/2, /2), ..., \tk) tk^ ... таких, что хк будет точкой локального минимума задачи для всех значений / из интервала 14, ikY к = 1, 2, ... . ~
Значения tk, Зк (к = 1, 2, ...), вычисляемые по формулам (7.17) и (7.18), назовем критическими. Справедлива следующая теорема.
Теорема 7.2. Последовательности {/^} и {/^} критических значений t, построенные по алгоритму для решения задачи (7.9) — (7.12), конечны, а число итераций алгоритма не превышает величины
fW — с
minminпП1
min
min
^ epi /s^S*, ^ с pi Ф О
s;s;/=1/=1.
s;
s;
где с — такое постоянное число, что f (х) ^ с для всех х £ Сф, определено в § 3 гл. 3.
Доказательство этой теоремы основано на следующих рассужде
ниях.
Выполнение для задачи (7.9) — (7.12) условий Ь\ ^ 0, i = 1, ... ..., т, влечет за собой построение (согласно рассматриваемому алгоритму) последовательности (xfe) локальных решений задачи (7.9) — (7.12), являющейся одновременно последовательностью точек из области Оф. Поскольку переход от точки к точке осуществляется лишь при условии уменьшения значений целевой функции / (х) (т. е. «вдоль» перспективных направлений), то имеют место неравенства
ииf^>f(х^> ... >f(xk)>f(xfe+1')>. ...
и
и
f (xk) — / (%*+') ^ minf (xk) — / (%*+') ^ minпп
f (xk) — / (%*+') ^ min
f (xk) — / (%*+') ^ min
5 CjSj /s£S*, 5 c,s/Cn, & = 1, 2, ...
/=i/=1J
С учетом ограниченности f (х) на бф из последних неравенств следует справедливость теоремы.
Предложенный алгоритм реализован в виде программы для БЭСМ-6 (язык ФОРТРАН) в рамках мониторной системы «Дубна». Результаты машинного эксперимента по численному решению тестовых задач вида (7.9) — (7.12) представлены в табл. 15. Примеры решались при п
g = 0, ф = 1 и метрике р (х, у) = £ [ х, — У; |. /=1
§ 3. ЗАДАЧА ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ С ПАРАМЕТРОМ В ЦЕЛЕВОЙ ФУНКЦИИ
И ОДНОМ ИЗ ОГРАНИЧЕНИЙ
Рассмотрим задачу следующего вида:
тах{с(0х/хЕО(0 Л ^"},(7.19)
где t — параметр, / Е [g, ф] Е R1; с (О = с + tc*, с, с' Е Rn; D (t) = = D Л \х!а ^ х<.Ъ (0); а (О = «i + to», аъ а» Е 7?"; b (t) = 6Г + + /Ь2, 6Ъ 62 Е R1; D — выпуклое подмножество множества неотрицательных векторов из Rn. Исследуя задачу (7.19), определим, при каких значениях параметра t Е [g, ф1 допустимая область задачи пуста, а также исследуем поведение функции
/ (/) = max (сх/х Е D (О Л 2,п\,
} (О = max (с (0 х/х Е О (О Л 2"}.
В работах [136, Д60] изучены основные свойства этих функций, построен алгоритм нахождения приближенных решений задачи(7.19). Попутно установлены некоторые свойства более общей задачи вида ext {d(0x/xEM(0},(7.20)
где d (0 = (dx (0, .... dn (0), М (0 = {х Е D Л ZnIA (0 х < b (0}, А (0 = <ам (0), b ^ = (61 (0. .... bm № ам (0, bt <t), d, (0 (i = 1,... .... т, j = 1, .... n) — полиномиальные функции от параметра t Е R1, и исследована функция
g (t) = ext {d (0 x/x E M (/)}.
В целях изучения задачи (7.19) введем в рассмотрение следующие множества (рис. 8, 9):
Р^= {х/а(0х>6(0), РГ = {х/а(0х^Ь(0},
Dr = D Л /т A Pt. 01(0 = 0! Л D(0, o2 = on/^n/V,ОДО = о2 Л 0(0, De = D л р? Л Р^.
Очевидно, что:
О (О =DT (0 и О2 (0 и О3;
Dx (0) 2D Oj (Z2), О2 (/J с О2 (Г2) для любых 0, ta € К, ф! таких, что о ^ 0;
Рис. 8Рис. 8
Рис. 8
Рис. 8
если для некоторого tx из [g, q>l существует такое у ^Dx (/J Л П Z", что / (/]) = су, то / (/) = шах \сх!х Е Dx (О f| Zn^ для g ^ < t ^ tx и f (р^ > f (р2) для g < pt < р2 < tv
Для доказательства этого свойства полагаем у £ Dt (^) Л Zn, f (У = су, tx Е [g, ф]. Поскольку D (4) = Dx (t^ U D2 (У U D3, то max \сх!х Е Ф» (Л) U D3) П 2"} ^ f уг) = max {сх/х Е Dx (^) f) Л 2Л). Далее в силу свойства 2 (Z)2(0 U ^з) Л 2" с ф2 (t^ J D3) f) П 2Л и Вг (/г) f| Zn с Dx (t) f| Z" для любого t из [g, ^j. Тогда
max (cx/xE (Д2 (0 U ^з) Л Z") ^ max {cx/x E (Д2(У U D3) П 2Л} ^^ max \cxlx E Dx ^ П 2"}
для любого t из [g, /J. Отсюда следует, что f (f) = max {cx/x E Dt (/) f) fl Z"} для t E [gAL To, что /' (px) > f (p2) для g ^ pv < p2 < tu также следует из свойства 2.
Если для некоторого g из 1g, ф] существует такое z Е D2 (g) f| П Zn, что f (g) = cz, to f (Z) = max (cx/x E O2 (/) f) 2"} для t E E lg, <pl и f (tx) < f ^ для g < tx < t4 < ф.
Доказательство свойства 4 аналогично доказательству свойства 3.
Если Dv (р) П2" =0, О2(g)П 2° = 0при некоторыхр,
g ^ К, ф1, Р < g, и D3 П 2"= 0,тоD (0 () Z"=0 при t Е lp,gj.
Действительно, в силу свойства 2
^i W Л2" czDx (р) ПZ" =0при любомр <21 ^ ф,
D2^ П2" сD3(g) П2" =0при любом5^<<gf.
Поскольку р ^ g и D (О =DX (/) (J Og (О U D3, то О (О Л 2" =0 при любом t Е lp, gl.
Если D3 Л 2" Ф 0, то / (/) ^ max {cx/x Е D3 f| Z”} и определена при любом t ИЗ (в, ф].
Свойство 6 является непосредственным следствием свойства 1.
Далее докажем теоремы, отражающие основные свойства функции / (О-
Будем говорить, что точке х f D соответствует значение параметра t =t (х), если a У (х)) = b У (х)). (Отметим, что любой точке х из DT П О2 соответствуют все значения параметра / из LE, ср]).
Введем в рассмотрение величины:
если Dt П D2 f| 2" # 0,
Рх = sup {/(x)/xgDt П Z"}, если DT Q Zn ^ 0 и Dv Л D2 Л Z" = 0,
если Dx f] Z" = 0;
если Dx fl D2 П Z^0,
p2 = inf У (x)/x£D2 f] Z"}, если D2 fl Zn Ф 0 и Dt f| D2 Л Zn = 0,
если D2 fl Zn = 0.
Будем говорить, что значение pi У = 1, 2) достигается, если
Di^ (\Zn^0.
Результаты исследований допустимой области задачи (7.19) можно сформулировать в виде следующей теоремы.
Теорема 7.3. 1. Если pi> р2, то D У) (\ Zn =^= 0 для всех 1^ € 1g, ф1.
Если рх = р2, то:
D У) Л Zn ^ 0 для всех / £ [Е, ф] \ {рг};
D (рУ f] Z" = 0 тогда и только тогда, когда Da Л Z" = 0 и ни одно из значений pY, р2 не достигается.
Если рх < р2) то:
D У) f| Zn ф 0 для всех t £ ^, ф! \ [рь р2Ь
D У) Q Z" = 0 при t g (рх, р^ тогда и только тогда, когда
Оз fl Z — 0;
D (pt) f| Zn = 0 У = 1, 2) тогда и только тогда, когда D3 fl
f] Z" = 0 и pt не достигается.
Доказательство. 1. Поскольку рх> Рз и рх, рй Е IL ср], то существует такое р £ (р2, Рх), что Dx (р) fl Z" ^ 0 и О2 Vp) П Zn ^ Ф 0. Далее, Dx (0 f| Zn td Dx (р) П Z" при / € 1^, р\ и О2 у^ П Zn zd ^d D2 {p) Л Zn при t £ Yp, ф]. Поскольку D У) Л Zn ro YPx (0 U u D2 У)) Л Z\ то D (0 л zn Ф 0 при / е К, ф].
Пусть рх=Рз- Возможны следующие случаи:
если рх == р2 = ^, то О2 (О Л Z" Ф 0 при t^ (£, ф];
если рх = р2 = ф, то Dx У) Л Zn ^ 0 при t^ g, ф);
если ё<^1 = Р2<Ф, то Di У) Л Zn Ф 0 при f6[g, р-У и Д2(0Л Л Z"#= 0 при t^y>x» фК
Таким образом, подпункт а) п. 2 теоремы доказан, подпункт б) является следствием того факта, что
D(pd (AZ^ (D^Pi) U D.^ U D.^ Л Z\
Доказательство n. 3 аналогично предыдущему.
Утверждение 7.3. Если множество D ограничено, то существует конечное число точек хк g D и соответствующих им интервалов изменения параметра Z таких, что хк — оптимальное решение задачи (7.19) при Z £ т^ и [J Tfe полностью покрывает множество тех значений пара
метра t £ [£, <р], при которых функция / (Z) определена.
Данное утверждение является следствием сформулированных и доказанных ниже теорем 7.4 и 7.5, в которых речь идет о свойствах более общей задачи (7.20).
Теорема 7.4. Если множество D ограничено» то существует конечное число открытых интервалов 1% = (—оо, 4)> Л1 = &> ti, • ••» Чк = = (Zk, + 00) таких, что — оо < /!<... < ^ < +оо, М (0J = М (02) для любых 0J02 С Ль М (t) cz М (IA f] М (/^г) для всех t £4ui = = 1,..., К.
Доказательство. Поскольку D ограничено, то множество D Л Zn конечно. Упорядочим последнее множество: пусть D Q Л Zn =^/1 = 1, ...» L}. Если матрицу А (Z) представить в виде
ргУ)\
Л У) =1 : I, где а1^ = (аи^ ..., atn^\ i = 1, ... , т, xPm (0 /
и положить qu (t) = at (Z) хг — bL (Z), i = 1, ..., m, то очевидно, что M (f) = \xt(\ I ^ L, qu 0, i = 1, ..., m\. Так как qu — полиномиальная функция от t» то возможны следующие варианты:
qu^">^ Для всех Z^/?1;
qu (0 < 0 Для всех Z С Z?1;
существует конечное число вещественных корней полинома qu (t).
Далее будем считать, что хотя бы один из полиномов qu (Z) имеет вещественные корни (иначе допустимая область задачи (7.20) не зависит от параметра Z). Перенумеруем вещественные корни всех полиномов в порядке их возрастания, исключив совпадающие значения. В результате получим конечную последовательность 1Ъ ..., 1к, удовлетворяющую неравенствам — оо << 1Х <... < 1К < +оо. Введем в рассмотрение интервалы т]0 = (— оо, ZJ, Л1 = (^i, У, •••, Лк = (Zk, + 00), на каждом из которых значения полиномов qu (Z)(Z = 1, ...,m;Z = 1,..., L) не меняют своих знаков, поэтому М (0Х) =М (02) для всех 0Ь 02g € Лй, h = 0, ..., К.
Следствие 1. Если множество D ограничено, то функция g (t) либо всюду определена на 7?1, либо нигде не определена на 7?1, либо определена на 7?1, за исключением некоторых интервалов из множества {V^ - о, ..., KV
Следствие 2. Если вектор коэффициентов целевой функции задачи (7.20) не зависит от /, то функция g (t) постоянна на тех интервалах из множества {^/^ =0, ..., /С}, на которых она определена.
Следствие 3 [198]. Если d/(/) = di + td], j =1, ..., n, то функция g (t) является кусочно-линейной и выпуклой на тех интервалах из множества {^/^ =0, ..., К^, на которых она определена.
Теорема 7.5. Если множество D ограничено и функция g (^определена на некотором интервале ^(^6(0, 1, .... К}), то существует его разбиение на конечное число интервалов т^и, и = 1, ..., U (k), для каждого из которых найдется точка хкн € М (0), 9 g y^, такая, что g ^ =d ^хки для всех t £ ^и.
Доказательство. Обозначим М* (/) множество точек экстремума вида arg ext \d (f) x/x ^ M (/)}, где t^x\k. Так как множество D ограничено, то в соответствии с теоремой 7.4 М (0 = = {^/г = 1, ..., /?} для всех ^ y^. Введем в рассмотрение функции gri (/) =d (t) (хТ *- х^ (г, I = 1,... । R). Для определенности будем считать, что в задаче (7.20) речь идет о поиске max (d (0 xlx g М (Z)}. Тогда очевидно, что М* (f) =ЦхД ^ г ^ R, gri^^O, I = 1, ..., г}. Так как grl (/), г, / = 1, ..., R — полиномиальные функции от I, то дальнейшее доказательство аналогично доказательству предыдущей теоремы.
Замечание. О похожем результате, полученном для параметрических траекторных задач, сообщается в [30]. Там утверждается, что в случае, когда элементы матрицы ограничений являются полиномиальными функциями от параметра t £ [0, оо), можно найти конечное число таких значений параметра, которым соответствуют точки экстремума целевой функции задачи, определяющие ее оптимальные решения на всем интервале [0, + оо).
Перейдем теперь к описанию процедуры поиска приближенных решений задачи (7.19) в предположении, что множество D ограничено и с* =^ 0.
Нашей целью является нахождение конечного числа точек хк £ 5 D (t) П Zn и соответствующих им интервалов т^ изменения параметра t таких, что при фиксированных значениях t € *4, хк — точка максимума функции ф (Z, х) = с (/) х относительно некоторого заданного радиуса г > 0 и (J тд полностью покрывает область определения функции / (/). Аналогично доказательству теоремы 7.5 доказательство существования указанных точек хк и соответствующих интервалов т^ может быть проведено для более общего случая — задачи (7.20). Отметим, что в этом доказательстве вместо М* (0 следует рассмотреть множество {хк /1 ^ к ^ R, gw (I) ^ 0 для всех I Ц, где L — - {//1 ^/<R, р (х„ х,)<г}.
Для произвольных t 6 IL ф] и х £ D (t) П %п и заданного радиуса г > 0 введем в рассмотрение множество подходящих направлений в точке 1
Sr(^x)={seOzn(x°,r)Zx+seZ)(/) nzn, c(0s>0),
где х° — нулевой вектор в Rn. Обозначим хк точку максимума функции Ф (/, х) относительно окрестности радиуса г при некотором значении tk параметра t. Очевидно, что Sr Uk, хк) = 0. Изучим следующие всевозможные случаи.
А. Пусть D2QZ" = 0, t<_tk. При этих предположениях Sr(t, хк) = = {sEOzn(x°, r)/e(^)s>0, c's^O, хк + s Е Di П Л t (xk 4- s) "> A (J U {$ E Oz„ (x°, r)/c (^) s > 0, c,s>0, xk + sEDx A Zn, #(x6 + s)>^> >^-} u |sEOzn(x°, r)/c(^)s<0, c's<0, X*+ s^Dx A Л t<xk-V
+ s)^t<z^-}. В этой записи первое из множеств, входящих в Sr(t, хк), пусто при любом t>»tk\ где
.п | max К (xt + s)/sE А^1}, если А^^й,
tk ~ 1Л(П
~(— оо,если Ак — 0,
А*” = {s Е 0гп (х°, r)/c2s < 0, с (tk) s > 0, хк + s Е Dx А Л > второе из множеств пусто при t > f?, где
_ | max {/ (х* + s)/s Е Af'}, если А^ ^= 0,
*|—оо,если Ак* = 0,
А® = |sEOzn(x°, г)/с(У s>0, c's>0, Цхк + s)> --£-,
хк + s € Di A 2n^, третье из множеств пусто при t^tk', где
J max {^/s Е А*^, если А^ =/= 0,
_I —оо,если = 0,
fk = min р (хк + s), — ^-} ,
А(? ^{seOzn (х», rVc {tk) s ^ 0, 6»s<0, xfe + s Е Dj А Л -
Очевидно, что £к\ tk'<.tk, так как иначе хк -f- s Е Di &) А ^п и с {tk) (х6 + s) > с (tk) хк, что противоречит определению точки хк. Кроме того, t^^tk. Покажем это; с одной стороны, по определению 1к ^^-, с другой — для любого s Е А® выполняются неравенства
c?s < 0, о V^ s = cs + tkc's ^ 0, и, следовательно, tk ^^-, поэтому
1^ ^Ч-
Введем в рассмотрение величину
Ч = max {$’, t^, ^.
Очевидно, что S, (t, хк) = 0 при / g ^к, t^. Заметим, что S, (1Ь. г*) = 0 тогда и только тогда, когда 43> > $’» ^.
Б. Пусть Dx^\Zn = 0, t^tk. Аналогично предыдущему случаю можно показать, что S, (t, хк) = 0 при t g fo, t^ и Sr (tk, хк) = 0 лишь при <1ки, tk', где tk = min tk1,
^| min V (x* + s)/s £ B*0}, если B^ ф 0,
I4- oo,если Bvk = 0,
(2) min К (^ + s)/s € 5®}, если B^2) ф 0,*|+ oo,если B^1 = 0,
(3)( min {7*/s £ B^}, если B}3) Ф 0,
~,o(3)—,
I + oo, если Вгк = 0,
it = max {/ Uk + s), — -p|~},^ - {s e ог„ и», rye (tk) s > o, cs > o, xk + s e na n znyB^k = |s 6 Ozn (X°., rye (tk) s > 0, c's < 0, xk 4- s 6 Ог f) Zn,tVXk 4-s)< — -g-},S^3) = \s^OZn (x°, r^c's > 0, c (^) s < 0, xk + s c D2 fl ZnVНа основании формул, полученных при изучении случаев А и Б,можно построить процедуру, о которой шла речь выше. Суть ее со-стоит в следующем.
Исходную задачу (7.19) разобьем на две подзадачи: (Щ1 шах {ё (0 х/х £ фх (0 О3) П 2П) (У): шах Со(^х/х ^Ф2(П U Оз) (\Zny обладающие тем удобным для построения алгоритма свойством, что при увеличении значений параметра t допустимая область задачи ((/) может только сужаться, а задачи (V) — расширяться. Соответственно и функцию 7 (0 представим в виде
Й0 = тах{/х(0, /2(0}> где
ft (0 = max {с (/) х/х 6 Gt (/) = (В, (/) U В3) П Zny i = 1, 2.
Для приближенного решения задачи ф) воспользуемся следующей процедурой.
С помощью какого-либо из алгоритмов локальной оптимизации най дем при t = 1г = рх точку хг максимума функции ф (/, х) на х g D П П Z" относительно окрестности заданного радиуса г. С учетом формул, определяющих ръ приходим к выводу, что 1Х = t ^хху По формуле вычисления tkl положив к = 1, определим величину tv На основании выводов, сделанных в случае А, заключаем, что хг — точка максимума функции Ф (/, х) на Gx (О относительно окрестности радиуса г при t € (^i, GL Если tv = —оо, то задача поиска локальных решений задачи ((/) решена полностью.
В противном случае следует перейти к точке хг + Sj, где sL — такой элемент окрестности Ozn (х°, г), на котором достигается значение tY параметра при к = 1. Выбрав точку хх + $г в качестве начального приближения и применив алгоритм локальной оптимизации к задаче (U) при / = ^, найдем точку х2 максимума функции Ф (/ь х) на GT (/х) относительно окрестности радиуса г. Пусть /2 = tv Положив к = = 2, определим величину /2 и т. д. Будем повторять эту процедуру до тех пор, пока не найдем некоторое tk, равное £ или —оо. В результате получим последовательность пар точек и соответствующих им значений параметра хг> tv х2, tv ... такую, что при t £ (4+ь tk\ xk (к = = 1, 2, ...) является точкой максимума функции Ф (/, х) на Gx (/), причем tY = рг, tk =tb-A для любого к>\.
Покажем, что полученная последовательность конечна. Предпо* ложим противное: пусть получены бесконечные последовательности точек \хк!к =1,2,...} и соответствующих значений параметра \tjk = 1, 2, ... }. По построению 1к ^ t^v, к = 1, 2, ... Кроме того, /^^{/(хУхе^Пг"}')) — -^Is^O^,^, cs<o), к=\, 2, ... и, следовательно, мощность множества возможных значений параметра конечна, поэтому бесконечность последовательности {/^} означает, что, начиная с некоторого номера
/€{2, 3, ...}, ^=4 = 1^ = ...
В силу конечности множества D П 7? найдется бесконечная последовательность Kx^jv = 1, 2, ...) cz \хк1к = 1, 2, ...} такая, что /1< < Z2 — и xZl X/, =... Предположим, что алгоритм локальной оптимизации, применяемый на каждом шаге рассматриваемой процедуры, обязательно увеличивает значение целевой функции задачи ((7) при переходе от итерации к итерации. Тогда согласно описанной процедуре xlcVq = xl<Vq_x + st^, q — 1, ..., Z^t — lb где slrVq — элемент из Az^_i, на котором достигается максимум в формуле для вычисления 1к\ Итак, для всех q = 1, ..., 1^ —U в силу включения s/,+q £ Л^-, z-T-i-G выполняются неравенства c's^-cO и, следовательно, с* У, sz.+(/<:0.
4q=\1
Иначе, для любого /= 1, 2, ... верны равенства хц — xi^ = Хц +
+ У. 81{+д, откуда следует, что
9=1
liWltЧаа~11
Xi $1А-д =^’ СSSlfVq =О*
<7=11(7=11
Таким образом, получены противоречивые соотношения, которые доказывают, что предложенная выше процедура конечна.
Поиск приближенных решений задачи (7) и соответствующих им интервалов изменения параметра t предлагается осуществлять согласно процедуре, аналогичной описанной выше, опираясь при этом на формулы для случая Б и начиная вычисления при t = р2. В результате будет получена последовательность хь ^; ...; х^к такая, что хк (к = 1, ..., v) —точка локального максимума задачи (V) при /£ € Ufe-b О, где /0 = р2-
Теперь, завершив исследование задач (1Г) и (У), вернемся к исходной задаче (7.19), решение которой сводится к решению множества задач шах {Д (/), /2 (/)}, t^ [£, ф1, и которую можно решить, например, графически.
Нахождение локальных решений задачи (7.19) в предположении с* = 0 значительно проще. В этом случае нет необходимости решать задачу шах {Д (/), /2 (0), поскольку справедливы следующие теоремы.
Теорема 7.6. Если, pt<p2u D3 fl Zn = 0, D (t) П Zn — 0 при t Е ^Ръ Р2)» то функция
max ^сх/х 6 Di (/) Л Zn\ при t £ [g, pj (/ £ [£, р^
max \сх/х £ D2 (/) Л Zn\ при t С [р2, <р] (t £ (р2, <р]).
ку сочно-постоянна, не возрастает при t £ [^ pj, не убывает при t Е \р^, фк не определена при t £ ^ръ р2).
Заметим, что в точках ри р2 функция / (0 может быть не определена. В случае, когда рх = р2, теорема 7.6 останется справедливой с той лишь разницей, что в точке t = рх = р2 может нарушиться монотонность функции / (0.
Доказательство. Действительно, отп2п=Р1(0П2"^Р1’
U 1 D2(0 Л 7? для 1>рг.
Поэтому в силу свойств 3, 4 функция / (/) не возрастает при t ^ р21 не убывает при t ^ р2, и справедлива доказываемая формула. То, что функция кусочно-постоянна на отрезках l^, pj], lp2, (pl, следует из ее монотонности на этих отрезках и того, что она отображает [g, pj U U 1р2> ф1 в счетное множество \сх!х ^ Zn^. Теорема доказана.
Теорема 7.7. Если рх > р2 либо D3 П Zn ф 0, то функция f (t) определена при любом значении / и существует такое d £ [£, q?L что
f (t) не возрастает при t Е U, dA (t E [£, d)), не убывает при t E Yd, <p] (t ^ (d, ср]), является кусочно-постоянной функцией и
(тах^х/хЕ^Ои^)!! ^nY если t^d\ (^E^d)), max \cx/x E (D2 (0 (J D3) Л Z"}, если t E (d, <p] (^ E Yd, ф])*
Теорема 7.7 является следствием предыдущих теорем и свойств 2—4 исходной задачи.
Процедуру нахождения локальных решений задачи (7.19) в случае с’ = 0 можно значительно упростить.
Обозначим S* (х, 6) = {s/s Е Ozn (0, г), х + s Е G, cs > 0}. Здесь G — некоторое заданное множество из Zn; 9 — нулевой вектор в Zn.
Теорема 7.8. Пусть D^ Л Zn = 0 и х — точка локального максимума задачи при t = р относительно окрестности радиуса г.
Если S* (х, фх (j D3) Л Zn) = 0, то х — точка максимума задачи при любом t Е [^ рА относительно окрестности радиуса г.
Если S* (х, (Dx (J D3) Л Zn) ^ 0, то х— точка максимума задачи при t ^ (tv рА относительно окрестности радиуса г, где
tx = max {/ (х + s)/s Е S? (х, фх (J D3) Л Zn)}.
Доказательство. Пусть S* (x, фх (j D3) Л Zn) = 0. В силу условия теоремы О2 Л Zn = 0, х Е фх (р) U D^ (\ Z\ х — точка максимума задачи при t = р относительно окрестности радиуса г. Далее,
®(£>,uD3)nZn (^’ г) = х + Sr (х, фх (J D3) Л Z ) U
U {s/s Е Ozn (9, г), х + s Е Фх U D3) Л Z\ cs ^ 0}.
Поскольку S* (х, фх [J D3) Л Zn) = 0, то су ^ сх для любого у из O^uo^nz^ (х> rV Тем самым первое утверждение теоремы до казано.
Пусть 8* (х, фх (J D^ Л Zn> ф 0 и tx = max {/ (х + s)/s Е Е S* (х, фг (J D3) Л Z”)}-Покажем, что S* (х, О (0 Л ^”) = 0 при/> > tv Предположим противное S* (х, D (/) Л Zn^ Ф 0. Тогда существует s0 Е 5* (х, D ф Л Zn") cz S* (х, ф3 (J D3) Л Zn) такое, что с(х + + s0) > ex и х + s0 Е D ф Л Zn. Поскольку с (х + s) ^ сх для любого ODMnzrt(x, г), то х + s0 Е D ф \ D (р)ир> t(x + s^> t > tx.
Это противоречит тому, что
tx = max {/ (х -h s)/s E S* (x, фх (J D3) П Z”)}.
Итак, S* (x, D ф Л Zn) t= 0 при t > tv Дальнейшее доказательство аналогично доказательству для случая S„ (х, фх (j D3) Q Zn) = 0.
Теорема 7.8 доказана.
Теорема 7.9. Пусть Вг ft Zn = 0 и х — точка максимума задачи (7.19) при некотором / = g относительно окрестности радиуса г. Если S* (х, (D^ (J D3) П Zn) = 0, то х — точка максимума задачи при любом t £ \g, q?] относительно окрестности радиуса г. Если S* (х, (D2 (J D3) fl Zn) #: 0, то х — точка максимума задачи при k^ t^ g относительно окрестности радиуса г» где tx = min (/ (х + + s)/ses; и, ф2 и °з) п ^)}.
Доказательство теоремы 7.9 аналогично доказательству теоремы 7.8.
Построим алгоритм нахождения приближенных решений задачи вида (7Л9) при с' = 0 для каждого фиксированного t^ [g, ф], если D3 П0.
Алгоритм
Выбираем начальное приближение х° С О3 П ^ и задаем некоторый целочисленный радиус г > 0.
Применяем метод направляющих окрестностей или метод вектора спада для решения задачи
max \ сх!х^ D3 П 7?\.
Находим х° — точку локального максимума задачи
max \cx)x^D3 fl Zn\.
Применяем вспомогательный алгоритм нахождения приближенных решений на множестве DT (J D3. Находим (х^, tU) кх^Д =1,..., lv
Применяем вспомогательный алгоритм нахождения приближенных решений на множестве О2 U О3. Находим (X/, t2b 4Х/"!,—
Если txk ^ t2f и cxk ^ cxh то хр (р ^ fe) отбрасываем.
Если {'хи > /2/ и схи ^ сх\, то xD (р ^ /) отбрасываем.
Конец.
Запись (хь t\tt t'xi) (соответственно (х;, t^^ t^ означает, чтох^ (х^) — точка локального максимума задачи относительно окрестности радиуса г при t б [4, tx^ и € (4, 41).
Построим вспомогательный алгоритм нахождения локальных максимумов задачи max (ex | х g (Dl (t) (J D3) ft Zn) (/ = 1, 2), /£ € le, ф].
Вспомогательный алгоритм
Пусть k 5=0, xk = x°.
Если S* = S^ (хл, (Z)3 U Dd f] Zn) = 0, то переходим к п. 3, иначе — к п. 4.
Выводим <х*, р, gy где
' Цх), если й> 0;
р ^ Ф, если к = 0 и I = 1;J£, если I = I;
к £, если к = 0 и I = 2; ^ — I ф, если I = 2.
Переходим к п. 7.
Определяем
tk~t (хк + s^) =tk~t (хк + s^) =max \t (х^ + s)/s g S*}, если /=1, min \t (xfe 4- s)/s 6 S*}, если / = 2.
tk~t (хк + s^) =
tk~t (хк + s^) =
Выводим (xb t (x^, tk).
Применяем метод направляющих окрестностей для решения задачи max (сх | х £ | G}, G = ф3 (J Dt (tk)) Q 2Г Находим xfe+) — точку локального максимума задачи.
Если / (x^+i) ^ [£, ф], тох° = х^ и переходим к п. 2 основного алгоритма, иначе заменяем к на к + 1 и переходим к п. 4.
Конец.
Достаточные условия сходимости за конечное число шагов описанного алгоритма аналогичны достаточным условиям сходимости метода направляющих окрестностей.
Теорема 7.10. Если сх ^ С (С = const) для всех х £ D и \ с (х* — — х")| ^ 6 > 0 (6 = const) для всех х', х С Ф^ U D2 |J D3) П ^п таких, что сх' ^ сх". то предложенный алгоритм решения задачи (7.19) сходится за конечное число итераций, не превышающее величины (С — с^ 6-1.
Доказательство теоремы непосредственно вытекает из того факта, что значение целевой функции в каждой последующей определяемой по алгоритму (как по основному, гак и по вспомогательному) точке х £ фг (J ^2 U ^з) П 7? превышает значение целевой функции в предыдущей точке.
Описанный подход реализован в виде программ на языке ФОРТРАН для ОС ЕС ЭВМ для задачи ЦЛП с вещественным параметром в целевой функции и водном из ограничений Результаты машинного эксперимента приведены в табл. 16, в которой использованы следующие обозначения: т — число ограничений задачи; п — число переменных; г — максимальный радиус окрестностей; х = -^-, где хг — время решения
Таблица 16
т
п
г
к
X
т
а
г
к
X
10
10
2
8
3,2
100
100
1
6
1,7 *
10
10
2
10
2,9 ♦
100
100
2
8
2,7
50
50
1
8
2,1
100
100
2
10
2,5 *
50
50
1
10
1,6*
150
150
1
8
2,9
100
100
1
8
3.6
150
150
1
6
2,1 *
задачи параметрического программирования указанного типа> х2 — время решения этой же задачи при фиксированном / (/ = £), К — число найденных отрезков оптимальности. Звездочкой обозначена строка данных о задаче без параметра в целевой функции. Эксперимент проводился на ЕС 1060.
§ 4. ИССЛЕДОВАНИЕ ДОПУСТИМОЙ ОБЛАСТИ ЗАДАЧ
ЦЕЛОЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ
С ЦЕЛОЧИСЛЕННЫМ ПАРАМЕТРОМ
Настоящий параграф посвящен исследованию допустимой области некоторых классов задач целочисленного программирования с целочисленным параметром на основе теоретико-групповых построений.
Некоторые определения и теоремы теории коммутативных групп.
Напомним некоторые определения и теоремы теории групп [561.
Определение 1. Множество G с бинарной операцией «+» называется абелевой (коммутативной) группой, если оно является группой относительно этой операции:
операция ассоциативна: (о + Ь) + с = а + (Ь + с) для любых а, Ь, с из G;
в G существует такой элемент 0 (нуль), что а + 0 = 0 + а для любого а из G;
) операция гарантирует противоположные элементы: для любого а из G существует такой элемент х (обратный к а), что п+х=х + + а = 0;
операция коммутативна: а + b = b + а для любых а, b из G.
Определение 2. Взаимно однозначное отображение одной группы в другую, сохраняющее сложение, называется изоморфным (изоморфизмом).
Группы изоморфны (в символах: G ~ G*), если существует изоморфизм одной из них на другую.
Определение 3. Пусть Gv G^ ..., Gm — абелевы группы. Легко проверить, что множество G = Gx © G^ ф ... © Gm последовательностей (gb 52,•, 5m), 5а Е G, с покомпонентным сложением
<51> - - , 5m) + <51, - - . , 5rn) = <51 + 51> • - • » 5m + 5m>
является абелевой группой. Ес называют декартовой суммой групп Ga, а сами G^ — се слагаемыми.
Если часть Н группы G замкнута относительно сложения, т. е. вместе с любыми двумя своими элементами а, b содержит и их сумму а + 6, то сужение сложения на Н будет алгебраической операцией в Н; говорят, что эта операция индуцирована сложением из G.
Определение 4. Если Н — группа относительно индуцированной операции, то ее называют подгруппой группы G и пишут Н ^ G
Легко видеть, что пересечение любого множества подгрупп — подгруппа. Если М — произвольная часть группы G, то пересечение (Л4) всех подгрупп, содержащих М, называется подгруппой, порожденной множеством М, а само М — образующим подмножеством подгруппы
(Af). Иногда говорят, что элементы множества М являются образующими элементами подгруппы (Л4).
Теорема 7.11. Если М— подмножество группы G, то
(М){^1 + • • • + ^гМ £М, ^ = ± 1, т = 1, 2, ...}.
Определение 5. Подгруппа (а), порожденная одним элементом а, называется циклической.
С каждой подгруппой Н группы G можно связать подмножества g + н = {g + Мг^щ, g^G, которые называются левыми смежными классами группы G по подгруппе Н.
Аналогично определяются правые смежные классы.
В теории коммутативных групп эти понятия совпадают.
Определение 6. Говорят, что подгруппа Н группы G нормальна в G и пишут Н A G, если х 4- Н = Н + х для любого х из G.
Очевидно, всякая подгруппа абелевой группы G нормальна.
Согласно одному из исходных определений отображение группы в группу называется изоморфизмом, если оно взаимно однозначно и сохраняет операцию. Отказываясь от первого требования, приходим к понятию гомоморфизма.
Определение 7. Отображение ф группы G в группу G* называется гомоморфным (^гомоморфизмом), если <р (о о 6) = ф (а) о ф (6) для любых элементов а, b из G.
Пусть ф — гомоморфизм группы G в группу G*.
Определение 8. Множество всех элементов из G, отображающихся в нуль, называется ядром гомоморфизма и обозначается Кег ф.
Пусть С — группа, Н — се нормальная подгруппа, G/H — множество классов G по Н (сейчас нет нужды говорить о левых или правых смежных классах — ввиду нормальности Н они совпадают).
Легко понять, что G)H — группа относительно поэлсмснтногс умножения классов; она называется фактор-группой группы G по нормальной подгруппе Н.
Непосредственно видно, что отображение ф: G -> G/Н по правилу Ф (^) = S ° Н есть гомоморфизм. Такие гомоморфизмы называют естественными.
Теорема 7.12. Если ф — гомоморфизм группы G с ядром Н, то Ф (G) ~ G/Н. Более того, гомоморфизм ф равносилен последовательному выполнению естественного гомоморфизма ^: G~^ G/Н, а затем некоторого изоморфизма т : GIH -> ф (G).
Теорема 7.13. Если Н ЛО, A &G и Н ^ А, то (GIH)l(AlH) ~ ~ GIA.——
Системы линейных диофантовых уравнений с параметром. Рассмотрим системы линейных диофантовых уравнений с параметром, которые (в матричной форме записи) имеют вид’
(A -VtAT)x= b + tbv(7.21)
где А, АТ — целочисленные (т х ^-матрицы; b, Ьг — целочисленные /тг-векторы; х — искомый целочисленный /г-вектор; t — целочисленный параметр.'
В работе [66] получены одно достаточное условие несовместности в целых числах системы (7.21) и способ отыскания соответствующих значений t; решается вопрос, при каких значениях / существует только тривиальное решение однородной системы, соответствующей (7.21); строятся формулы общего решения для одного типа нелинейных диофантовых уравнений.
Введем обозначения, принятые в [661: {Л} — группа с обычной операцией сложения, порожденная столбцами матрицы Л; {A)d — группа, порожденная столбцами матрицы Л, взятыми по модулю d; b — вычет вектора b по модулю d; а — вычет числа а по модулю ск
Пусть S — нормальная форма Смита матрицы А. Напомним [62], что нормальной формой Смита прямоугольной (т X п)-матрицы А ранга г называется матрица
ei1
е20 i
S = UAV =’ . I 0 ’
О8Л \
_ о i о_
где Et делит 8^+i при i = 1, 2, ..., г— 1; U — унимодулярная (т X X ^-матрица; V — унимодулярная (и X ^-матрица. (Здесь и далее при обозначении матрицы используются как квадратные, так и круглые скобки).
Лемма 7.1. {Л}^ ^ 1^^} © {е2е2} ф ... ф {егег}. Здесь еъ е2, ... ..., ег — базис, в котором представлена матрица S.
Доказательство. Рассмотрим естественный гомоморфизм группы [Л} в группу {Л}^. Пусть D — ядро этого гомоморфизма, т. е. множество всех равных нулю по модулю d элементов группы {Л}. По известной теореме 7.12 о гомоморфизмах групп \A\d = {A}/D. Далее, |Л|={ЛИ}. Используя оператор, определяемый матрицей U, изоморфно отобразим группу \А^1 в группу \UAV\ При этом изоморфизме образ D' группы D также будет являться множеством всех равных нулю по модулю d элементов группы UAV и \UAV\d s ^ \UAV\lD' Следовательно, H}d ^ \S\lD* = {S}d и, окончатель
но, {Л}d = {е^Д ф (е2е2) ф ... ф (Мг). Лемма 7.1 доказана.
е20 :
Лемма 7.2. Пусть S = UAV =. ц
Оег |
_0 I °-
есть нормальная форма Смита матрицы Л, Ub = (6ь ..., br, b\\9... Ьту. Для того чтобы Ь £ {Л}, U > 0), необходимо и достаточно, чтобы:
t было взаимно просто с kJ HOD (b{, ej, i = 1,2, ..., г;
I было делителем bj, j = г Ч- 1, ..., т.
Доказательство. Необходимость. Пусть b С £ {Л}г Тогда в силу доказательства леммы 7.1 Ub g {S}o т. е. существуют такие целые ^, у2, •••> Уг* что
Ь, = у^ (mod 0» * = 1» 2, . .. , г; Ь{ = 0 (mod t\ j = г + 1, .. . , т. Известна теорема [62], что для того чтобы существовало целочисленное решение уравнения к = ха (mod /), необходимо и достаточно, чтобы к делилось на HOD (f, а). Из первых г равенств следует, что HOD (b^ г^ делится на HOD (/, et) и, поскольку t взаимно просто с zjHOD (t, ef), то t тем более взаимно просто с г^НОО (Ьь ^). Из последних т— г равенств непосредственно следует условие 2.
Достаточность. Рассмотрим ez = *ot HOD (Ьь ez) (i = 1, 2, ..., г). В силу условия 1 HOD (t, u^ = 1, и поэтому HOD (f, e() делит HOD (bi, fy) и тем более bt. Согласно упомянутой выше теореме [62] существуют такие целые yt, что bi = г1у1 (mod /), i = 1, 2, ... ..., г. Из условия 2 следует, что bj = 0 (mod /) (j = г + 1, ..., т), т. е. Ub g \UAV\t, b g {Л},. Лемма 7.2 доказана.
Теорема 7.14. Если значение / (t ^ 0) системы (7.21) не удовлетворяет хотя бы одному из условий 1), 2) леммы 7.2, то при этом значении / система (7.21) не имеет целочисленных решений.
Проиллюстрируем применение этой теоремы на небольших числен-
ных примерах.
Рассмотрим системуРассмотрим систему10 1010 2010 1010 20для которой /10UAV-\ оИтак, что тогодля которой /10UAV-\ оИтак, что тогоПример 1.
Рассмотрим систему
Рассмотрим систему
10 10
10 20
10 10
10 20
для которой /10
UAV-\ о
Итак, что того
для которой /10
UAV-\ о
Итак, что того
чтобы существовало целочисленное решение этой системы, необходимо (но не достаточно), чтобы / было взаимно простым с 10. Иначе говоря, при / = 2s, t = 5k система заведомо не имеет целочисленных решений.
Пример 2. Рассмотрим систему
Приведем основную матрицу к нормальной форме Смита
А0\/ 100\/ 2\
/УЛV = I 011,/7 =1—1101,//6 =11).
\0О/\—621/\—2/
Поэтому в силу условия 2 целочисленные решения возможны только при I = 1,2.
Рассмотрим систему однородных уравнений
(7.22)(7.22)(Л — tA-^ х - - 0.
(7.22)
(7.22)
Здесь, как и ранее, А, Аг — целочисленные (m х ^-матрицы; t— целочисленный параметр.
В [66] установлено, при каких значениях t существует только тривиальное решение системы (7.22). Исследование будем проводить для случая т ^ п, так как в противном случае, очевидно, при любом целом / существует нетривиальное и даже целочисленное решение системы (7.22).
Лемма 7.3. Группа {Л}^ обладает неприводимой системой образующих, состоящей менее чем из п элементов, тогда и только тогда, когда существует матрица Т, обеспечивающая нетривиальное решение системы
(7.23)(7.23)(A — dT)x^Q.
(7.23)
(7.23)
Доказательство. Необходимость. Пусть (A\d обладает неприводимой системой образующих, состоящей менее чем из п элементов. Не теряя общности, в качестве такой системы возьмем аъа2, ..., at (/ < и). Тогда а; = ^ аиа1 (mod d) (/ ^ /). Поскольку aj = at + dtj (/ = 1, 2, ..., n), to
_/
а,- = X to + <Hi) + Agi U > I)-
Рассмотрим систему векторов
af A-dt^ (/ = 1,2,..., Z); a3 + d (/$ — gs) (s = Z + 1, ... , ny
Ранг этой системы равен Z < п. Если взять
~ [Zi> • • . , ^ь ^i^5s+i> • • • » Zn £n],
то T обеспечит нетривиальное решение (7.23).
Достаточность. Пусть при некоторой целочисленной матрице Т = [/j, /2, •••, tn\ существует нетривиальное решение системы (7.23). Это значит, что ранг системы векторов аг — dtlf а2 — dt2) ... ап — dtn меньше п.
Приведем Л — dT к нормальной форме Смита
U(A — dT)V =U(A — dT)V =В силу леммы 7.1В силу леммы 7.1
U(A — dT)V =
U(A — dT)V =
В силу леммы 7.1
В силу леммы 7.1
Н^жА-ат^у^^® ... @{8^}, т. е. {Л}^ обладает неприводимой системой образующих, состоящей не более чем из г < л элементов.
Лемма доказана.
Теорема 7.15. Если t не является делителем гп в нормальной форме Смита
S = U АУ =
О еп
матрицы А, то существует только тривиальное решение системы (7.22).
Доказательство. Пусть при некотором целом / существует нетривиальное решение системы (7.22). Тогда по лемме 7.2 группа {Л}|^ обладает неприводимой системой образующих, состоящей менее чем из п элементов. В силу леммы 7.1 это значит, что матрица А приводится к нормальной форме Смита S, в которой е„ = = 0 (mod /]). Теорема доказана.
Эта теорема дает лишь необходимое условие, налагаемое на параметр /, при котором существует нетривиальное решение системы (7.22). Естественно поэтому попытаться описать те матрицы Аг, для которых сформулированное условие является и достаточным. С этой целью необходимо решить относительно Аг неравенство т (Л — ^Л) < п (здесь t — заданное целое число; А — заданная целочисленная (т X X ^-матрица; АТ — искомая целочисленная (т х п)-матрица; г(Л4)— ранг матрицы М в предположении, что t делит гп в нормальной форме Смита матрицы А.
В работе [661 описаны все целочисленные матрицы X такие, что
г (Л — /X) - 1.(7.24)
Сформулируем вначале необходимое и достаточное условие существования решений этого уравнения.
Теорема 7.16. Для того чтобы существовало целочисленное решение относительно X уравнения (7.24), необходимо и достаточно, чтобы {Л}^ была циклической группой.
Доказательство аналогично доказательству леммы 7.3.
Будем считать HOD (Л, /) = 1, так как в противном случае Л — IX можно разделить на этот наибольший общий делитель, не меняя X.
Пусть S = UА V — нормальная форма Смита матрицы Л = = (Оь ...,а^. Пусть ut/, Уц — соответственно элементы и алгебраические дополнения матрицы У, 6 = det V. Тогда первый столбец матрицы
LT^S, I = У, Unfti, взятый по модулю t, будет образующим элементом z=i
группы {Л(г.
Теорема 7.17. Если {Л}/ — циклическая группа, то все целочисленные решения уравнения (7.24) описываются формулой X = Х° + GV~\ где Х° = (х?,х”.... х"), х? = (а, — SVpiyt (/ = L 2, .... n), G = ^gi, а2 U — tgY •••. ап U — tgYY Здесь at — произвольные целые числа! g — произвольный целочисленный вектор.
Доказательство. Поскольку I — образующий элемент группы (А), и а{ = 6U-XS (Уд, ••■, VtnY, at = bVnl (mod 0» To at — — t$(i = 1, .... n) линейно зависимы и г (A — /Х°) = 1. Рассмотрим
(
8! О ... 0\
О О ... О J
6 66/
Пусть G = (gv g^, ..., g^ — произвольная целочисленная (т X X ^-матрица такая, что г (S1 — /С) = 1. Тогда существует такой целочисленный вектор q и такие целые числа yz (/ = 1, 2, ..., п^ что (въ О, .... О)1 — tgx = ^xq, tgj = ^-q (j = 2, ..., nY
Поскольку HOD (Л, /) = 1, то ^ взаимно просто с 1, т. е. порядок группы (Л}, равен I. В силу этого HOD (в — tgw tg^, ..., igm) = 1, и потому Yj = 1 и q = (ег, 0, ..., 0)т — tgv Поскольку первая компонента вектора tgj (j ^ 2) делится на t, а первая компонента вектора q не делится на I, то необходимо положить tg^ = a^q или gt = ад (j ^ 2), где а/ —целые числа. Получили, что если г (^! — tG^ = 1, то существует такой целочисленный вектор g и такие целые числа az, что
gi = g« gi = a-i^v 00)т —/g) (/ = 2, ... , nY (7.25)
Обратное тоже верно: если столбцы матрицы G задаются формулой (7.25), то г ^—IG) = 1.
Очевидно, матрица G является решением уравнения г (Sx—/К) =; = 1 тогда и только тогда, когда
X - Х° + UGV~'
является решением уравнения г (Л — /X) = 1. Поскольку g — произвольный целочисленный вектор, a U — унимодулярная матрица, то последнюю формулу можно упростить:
где G = (g, g2, .... g„Y gj^^j^ — tg) (/>2).
Теорема 7.17 доказана.
/«i а3\(хг хД
В случае, когда Д = I I, X = I I, (7.24) эквивалентно \^4 й2/\"^4 ^2/
диофантову уравнению
(^4 — а^ (/х2 — а2) — (/х3 — а3) (tx4 — я4) = 0.(7.26)
К решению уравнения (7.26) и определению условий его разрешимости в целых числах сводится, в частности, следующая задача.
Задача. Пусть на плоскости в декартовой системе координат заданы две сетки с шагом t, сдвинутые вдоль оси ОХ соответственно на величины ах, а^ вдоль оси OY — на величины а3, а4. Указать необходимое и достаточное условие того, что луч, исходящий из начала координат, наблюдается в узлах обеих сеток. Определить координаты этих узлов.
Для того чтобы (7.26) было разрешимо в целых числах, необходимо и достаточно, чтобы
fl^ — а3а4 = 0 (mod (HOD (aji = 1, 2, 3, 4)/)).
(Считаем HOD ({^|f = 1, 2, 3, 4), /) = 1).
Все решения уравнения (7.26) задаются формулами
хх = ^2тх — аи2 (/mj — 1ху х2 би^— (о^з + avx (tm2 — /2),х3= — юхтх + ai^ (tmx — /j), х4 = co2m2 —av2 (tm2 — /2) — su26.
/^ ^X
Здесь mv m2, a—любые целые; V — I I — унимодулярная мат- \U2 (O2y
Г1 °^у/2 st)Г1 °^у/2 st)рица, соответствующая операциям над столбцами при приведении к нормальной форме Смита матрицы А:
Г1 °^у/2 st)
Г1 °^у/2 st)
det И — б, AV -=
Пример 3. Уравнение №х — 2) (2/2 - 1) — (2/3 — 5) (2^4 — 1) = 0 не имеет решений в целых числах.
Пример 4. Уравнение
(^х - 2) (4/2 - 2) - (4^3 - 3) (4^ - 4) = 0 имеет решения
tx = 2х -|- z (4х — 1), /2 = Зу + 2 (4 У + 2) 4- 2,/З=3х+г(4х—1), t4-2у+г(4г/ + 2) + 2.
Здесь х, у, 2 — любые целые числа.
Алгоритм определения значений параметра Л при которых заведомо не существует решений систем линейных диофантовых уравнений с параметром. Определение указанных значений параметра — необходимый этап решения оптимизационных задач, допустимая область которых задана системой вида (7.21).
На основании теорем 7.14 и 7.15 можно построить алгоритм, позволяющий не только определить те значения параметра, при которых допустимая область заведомо пуста, но и те, при которых она содержит единственную целочисленную точку. Действительно, с помощью теоремы 7.15 можно определить те значения параметра, при которых существует только тривиальное решение однородной системы, соответствующей (7.21). Известно, что любое решение системы линейных диофантовых уравнений Ах — b представляется в виде суммы частного решения х0 такого, что Ах0 = Ь, и некоторого решения однородной системы Ах = 0. Поэтому для определенных в теореме 7.12 значений параметра решение системы (7.21) либо единственно, либо не существует вообще. Последнее обстоятельство позволяет значительно уменьшить время решения задачи при данном значении параметра, поскольку тогда отпадает необходимость в проверке оптимальности первого найденного допустимого решения.
Итак, для того чтобы существовало целочисленное решение системы вида (7.21), необходимо, чтобы / было взаимно просто cs^, i= 1, 2,... ..., г, и было делителем s (/),/ = г + 1, ..., /и. Если при этом т^ п = = г и t не является делителем С, то решение системы единственно, если существует.
Предполагаемый ниже алгоритм позволяет для заданных целочисленной ^т х ^-матрицы А и целочисленного /п-вектора b определить ранг (г) матрицы Л, вектор (s (1), ..., s (/и)), число С.
Алгоритм
Приводим матрицу А к нормальной форме Смита S = UAV.
Вычисляем Ub = (bj, ..., bm).
Вычисляем s (/) = eJHOD (bV ez) (t = 1, ..., г).
Если г < /и, то переходим к п. 5, иначе — к п. 6.
Положим s (/) = bj (/ = г + 1, ..., /п).
Если г = п т, то С = ег.
Конец.
Программа, реализующая изложенный алгоритм, разработана для ЕС ЭВМ (язык ФОРТРАН).
Результаты машинного эксперимента по применению данного алгоритма к изучению допустимой области задачи целочисленного про-
Таблица 17
® § *
° X § i^s !Т о ?
§
Тип ЭВМ
о л о s = 3 5 £ 5 h §
и оа
s ^* я я S S 2 %
л" ”
Тип ЭВМ
10
5
0,2
ЕС-1060
150
150
254,3
ЕС-1060
15
10
0,5
ЕС-1040
200
150
206,3
ЕС-1060
25
20
10
ЕС-1060
200
200
299
ЕС-1060
100
75
43,1
ЕС-1060
100
700
201,4
ЕС-1060
100
95
57,2
ЕС-1040
100
1000
288
ЕС-1060
100
100
115,2
ЕС-1040
граммирования с целочисленным параметром приведены в табл. 17. Данные для задач генерировались с помощью датчика псевдослучайных чисел. Элементы матрицы и столбца ограничений выбирались случайным образом с равномерным распределением соответственно на отрезках [0, 10] и [0, п). Приведенные в таблице результаты эксперимента позволяют сделать вывод о хорошей работоспособности алгоритма при решении задач большой размерности. Алгоритм реализован в ПП ДИСПРО.
§ 5. РЕШЕНИЕ ЗАДАЧ ЧЦЛП С ПОМОЩЬЮ МЕТОДОВ
ПАРАМЕТРИЧЕСКОГО ПРОГРАММИРОВАНИЯ
Если в предыдущих параграфах данной главы мы рассмотрели некоторые подходы к решению параметрических задач целочисленного программирования, то здесь мы остановимся на использовании методов параметрического программирования как инструмента для решения обычных задач целочисленного программирования. Методы параметрического линейного программирования уже нашли свое приложение в ЦЛП. В частности, они достаточно эффективно используются при решении задач этого класса методами ветвей и границ, где в процессе ветвления исходной задачи с их помощью получают оценки целевой функции для подзадач [192]. Такой подход позволяет более рационально производить выбор задачи-кандидата для разветвления и исключать из рассмотрения те подзадачи, область допустимых решений которых не содержит оптимального решения.
В подходе [5], описанном в настоящем параграфе, предлагается использовать методы параметрического программирования для определения минимальных корректирующих смещений (см. § 2, гл. 4), позволяющих найти базовый вектор задачи ЧЦЛП в результате решения некоторой задачи параметрического программирования.
Рассмотрим задачу ЧЦЛП1 минимизировать функцию
Ес^+^/у,(7.27)
/=|/=1
при ограничениях
ацх, + 2 ^пУе ^Ьь i = 1, ... , т, (7.28) /=|/=1
Х/^0, /=1, ...,к;У/^0, /= 1и, (7.29)
X] — целое, / = 1, ..., к.(7.30)
Как и в § 2 гл. 4, введем в рассмотрение следующие величины г = = min (m, fe), о( = X lao I, 1 = Ь •••> т> гДе ач 0 = 1» —> О — наибольшие по абсолютной величине коэффициенты t-ro ограничения (I = 1, ..., /и) при переменных, на которые накладываются условия целочисленности.
Рассмотрим задачу параметрического линейного программирования, заключающуюся в отыскании вектора (х, у) = (х^ ..., хк. yv ...
..., t/n), минимизирующего функцию (7.27) при ограничениях (7.29) ’ и
кпе1
Е Е diiy^bi — \оь / = 1, ... , m, (7.31) 7=1/=1
где X— параметр, принимающий значения из интервала ^0, -^-j.
Для нахождения базового вектора исходной задачи (7.27) — (7.30) достаточно определить минимальное значение X, при котором для каждого значения переменной хь / = 1, ..., А, справедливо одно из следующих соотношений*
Xj— [Х/КХ,(7.32)
k/] + 1 — х,^к(7.33)
Очевидно, что при X = — для всех Xj(j = 1, ...,&) выполняется одно из них. Поэтому при решении задачи параметрического программирования достаточно рассматривать интервал ^0, -^ изменения параметра X. , Теорема 7.18. Если вектор (х\ у°) — решение задачи (7.27), (7.29), - <7.31) при X = X g |^0, -i-j и для всех х/, / = 1, А, справедливо одно из соотношений (7.32) или (7.33), то вектор (х', у0), первые k компонент которого вычисляются по формуле
,[Х/1, если хЗ — [%/] ^ X,
X/ ='ОП(7.34)
[х“| + I, если [х/1 + 1 —Х/^Х, / = 1, ... , й, является допустимым решением исходной задачи.
Доказательство. Первые k компонент вектора (Z, у0), как вытекает из (7.34), являются целыми числами. Следовательно, условия (7.30) выполнены. Очевидно также, что компоненты вектора (х°, у0), как решения задачи параметрического линейного программирования (7.27), (7.29), (7.31), будут неотрицательны. Поэтому выполняются условия (7.29). Покажем, что вектор (%', у0) удовлетворяет условиям (7.28). Для этого выберем произвольное значение i £ {1,... ..., т} и подставим(х', у0) в левую часть f-ro неравенства системы (7.29)
^ Ui/Xjг Еd^yf ~ 2 &И k^i ^/) "4* Е aijXj-]-^j dijyj ^
/=17=17=1/=1/=1
2 I aa 11 x'i —x^X — bj — Xat. /=!
Отметим, что непосредственно из (7.34) следует справедливость соотношений
| х/ — X® | ^ X, / = 1, .... к,
i\ai/\lxl — x°/\<^i‘
Тогда
X aifXi 4" X ^гУ^ ^ ^°i + ^ — ^°i — ^<« /=1/=i
Итак, (V, у0) удовлетворяет произвольному t-му неравенству системы (7.28), что и доказывает теорему.
Из теории параметрического линейного программирования следует, что при решении задачи (7.27), (7.29), (7.31) будет получена последовательность интервалов изменения параметра Xi [Х^ Х2], ..., [X^i, XJ, где Хх = О, Xw = -^-, на каждом из которых базис оптимальной угловой точки остается неизменным.
Рассмотрим один из этих отрезков [Xv, Xv+J. Обозначим базисные переменные оптимальной угловой точки задачи (7.27), (7.29), (7.31) при X £ [Xv, Xv+J следующим образом!
^» у^) = C^v,» • • •, *vz, У^1^ • • •» У^п)*
Составим из базисных столбцов матрицы (Л, D) матрицу Т. Тогда 7 (jp, yv) = 6 — Ха. Матрица Т не вырождена, следовательно, существует матрица 7*”^ обратная матрице 7, и
(Xе, у^ =Т-Чь — Хо\
Таким образом, каждая компонента вектора базисных переменных является линейной функцией параметра Xi
W у^ = qp — Хр»,(7.35)
где ^ - (^ .... ^) = Т-'Ь, р* = (рГр^ = Т-Ч
Для каждого xV/, /= 1, ..., /, определяем следующее множество! XV/ “ {-^vyoc/^vya ^^ 0, Х^,^ ■■ Целое, Х-у^ g \уj — Хур j , Ai ™* ^"v+lP/l|- Обозначим через |XV. | количество неотрицательных целых чисел, содержащихся в отрезке Vli — Xvp/> aI — Х^р,]. Определим также множество SVlj = {X/3xv.a gXv , |^ — Хр/ — xV/e| <Х), которое представимо |XV/I
в виде SV/= U <SV/a> гДе SV/a = (X/|p/— Хр/— xV/a| ^Х}. Очевидно, множество S^ содержит все свои крайние точки. Пусть Хх и Х2 g Sv a. Тогда любое X'= рХ, + (1—р)Х2, pg [О, 1], принадлежит SV/a. Действительно, | <// — Х'р/ — xV/a | -= | q] — pX^J — (1 — р) Х^/ — xVja\ ^
Р I Ai - 4Pi - ^1 + (1 ~ Р) I Al - М - ^,а | ^ рх, + (1 - р) Х2 = = х\
По определению множества SVy« это означает, что V g SV/a; следовательно, множество SV/« является отрезком. Границы этого отрезка можно вычислить по формулам
"е W^-* ^" i-pf
Теорема 7.19. Если Q Sv ф 0 и X* £ f] Sv., то существует до- /=1 1 /=1 1
пустимое решение задачи (7.27) — (7.30), получаемое по формуле (7.34) из решения задачи параметрического программирования при X = X'.
Доказательство. Пусть X £ f] SV;. Из определения мно- /=i'
жеств SV/, / = 1,/, следует, что существуют целые числа xV/<z€
^ Av / = 1, ..., I, для которых справедливы соотношения
|^ —^'Р/—^v/al^V; / = 1, ..., I.
-i-j. Следо--i-j. Следо-Из (7.35) следует, что q^- — Х'р] есть значение базисной переменной xV/ при X = X'. Поэтому | xV/ — х»^ | ^ X'. Покажем, что либо xV/a = UV/L либо xV/a = [xvJ 4- I, Действительно, предположив противное, полу
-i-j. Следо-
-i-j. Следо-
чим |xV/— xv/a|>l, что противоречит условию X'£ О,
вательно, для значения каждой базисной переменной xV/, / = 1, ...,/, при фиксированном значении X = X' справедливо одно из соотношений (7.32) или (7.33). Согласно теореме 7.18 это решение будет базовым вектором исходной задачи (7.27) — (7.30) и по формуле (7.34) из него можно получить допустимое решение исходной задачи из области, в определенном смысле близкой к оптимальному решению.
Приведем алгоритм приближенного решения задачи (7.27) — (7.30).
Алгоритм
Решаем задачу ЛП (7.27), (7.29), (7.31) при X = 0. Если полученное решение не удовлетворяет условию целочисленности, определяем отрезок [Хь Х2], на котором базис оптимальной угловой точки множества допустимых решений остается неизменным. Полагаем и = 1, I — равным количеству базисных переменных, на которые накладываются условия целочисленности, и переходим к п. 2. В случае выполнения условий целочисленности получим решение исходной задачи, и работа по алгоритму прекращается.
Для отрезка [Xv, Xv+J строим множества Xv/ и Svf. Если i
f) Sv = 0, переходим к п. 5; в противном случае — к п. 3.
у=1
Выбираем переменную, которую необходимо исключить из числа базисных, и переменную, вводимую в множество базисных переменных. Если выясняется, что для любого значения параметра X, большего Xv+l, задача параметрического программирования не имеет ни одного допустимого решения, переходим к п. 4. В противном случае полагаем I равным количеству базисных переменных, на которые накладываются условия целочисленности, и заменяем v на v + 1. Определяем отрезок [Xv, Xv+iJ и переходим к п. 2.
Работа по алгоритму заканчивается в связи с тем, что данный подход не применим для решения рассматриваемой задачи.
Определяем минимальное значение X по формуле Xmin =
=min VX)X С П Sv.}. Согласно (7.35) получаем оптимальные значения /=1 7
базисных переменных при X = Xmin, а затем согласно (7.34) получаем приближенное решение исходной задачи. Работа по алгоритму на этом
заканчивается.
Отметим, что в п. 2 алгоритма множество XV/ легко можно получить по значениям Xv, Xv+b а множество SV/ представляется в виде объединения множеств S^p а = 1, |XVJ, / = 1, L
Конечность данного алгоритма следует из конечности множества угловых точек многогранника допустимых решений исходной задачи.
Замечание. Данный алгоритм может быть модифицирован для получения не одного, а целого ряда допустимых решений исходной задачи, что важно в том случае, когда алгоритм используется для нахождения начальных приближений, необходимых для применения алгоритмов локальной оптимизации. В этом случае после п. 5 выполнение алгоритма следует продолжить с п. 2, положив Ху = Xmin + е, где е — достаточно малая положительная величина. Работа по алгоритму прекращается по достижении значения Хю.
§ 6. ИССЛЕДОВАНИЕ УСТОЙЧИВОСТИ ЦЕЛЕВОЙ ФУНКЦИИ И МАТРИЦЫ УСЛОВИЙ ЗАДАЧИ ЦЛП ОТНОСИТЕЛЬНО ЛОКАЛЬНОГО РЕШЕНИЯ
В настоящем параграфе рассмотрен один подход [143] к исследованию устойчивости целевой функции и матрицы условий задачи ЦЛП относительно локального решения. Предлагаемый подход использует результаты по устойчивости линейных дискретных задач, представленные в [85].
Рассмотрим задачу ЦЛП общего вида
min (х) = ^ CjXjfx С б!,(7.36)
где
G = \x^Znl^ aijXj^bb i = 1, ... , m, x^okI /=iI
Zn — множество векторов с целочисленными компонентами в Rn. Определим норму в Rn:
||х|| = max | хД.
\^j^n
Сопряженное к R" пространство обозначим (/?")*. Как известно, норма в (/?")* имеет вид
и* = £|х,|.
7=1
Обозначим р (х, у) = Цх — у|| — метрику в Rn.
Пусть 0С1 (х, г) — окрестность в множестве G с центром в точке х £ G и радиусом г > 0. Введем в рассмотрение множества:
D^x, г) = ^у/у^Оо^х, г), у — соседняя точка с х),
O2(x,r) = \yly^Ozn^x) r\ y^O, у — соседняя точка с х}.
Под соседней точкой с х понимаем целочисленную точку такую, что интервал (х, у) не содержит целочисленных точек.
Для получения локального решения задачи (7.36), т. е. точки минимума функции / (х) относительно окрестности радиуса г, могут быть использованы различные методы локальной оптимизации, в частности метод вектора спада или метод направляющих окрестностей (см. гл. 3).
Предположим, что в результате применения к задаче (7.36) метода локальной оптимизации мы нашли х — точку минимума функции / (х) относительно окрестности О а (х, г).
Определение. Целевую функцию / (х) задачи (7.36) назовем е- устойчивой относительно локального решения х, если х является точкой минимума относительно окрестности Og (х, г) для любой целевой п
функции ф (х) = 2 (с, + М xi ПРИ h С Rn> ИМ ^ 8
/=1
Справедлива следующая теорема.
Теорема 7.20. Для того чтобы целевая функция задачи (7.36) была ^-устойчивой относительно решения х, необходимо и достаточно, чтобы выполнялось условие
8 ^8 ^minx^DVvX.nх+хminx^DVvX.nх+хf (х) -_/ to Ik-*11* -f (х) -_/ to Ik-*11* -(7.37)(7.37)
8 ^
8 ^
minx^DVvX.nх+х
minx^DVvX.nх+х
f (х) -_/ to Ik-*11* -
f (х) -_/ to Ik-*11* -
(7.37)
(7.37)
условиюk—x||* *условиюk—x||* *Доказательство. Поскольку x является точкой минимума функции / (х) относительно окрестности Ос, (х, г), то / (х) ^ / (х) для любой точки х £ Ос (х, г). Учитывая это и согласно работе [85), получаем, что для е-устойчивости / (х) относительно х необходимо и достаточно, чтобы в удовлетворяло
условию
k—x||* *
условию
k—x||* *
8^ min
xgC^f*,/)х*х
Так как любая точка х из окрестности Оо (х, г), не являющаяся соседней с х, может быть представлена в виде х = х + а (х' — х), где х* ^ Вх (х, г), а — целое, и
/to-/to _ fW-IW
TOmink^Oq^oTOmink^Oq^oIk— *1* Ik'—*11* ’
TO
mink^Oq^o
TO
mink^Oq^o
/ (x).
~=77“ = min P-^-.
11 * x" xeo.^r) Ik—*11*
x^x
Рассмотрим также случай, когда возмущениям подвергается только часть коэффициентов линейного функционала. Введем в рассмотрение множество N = {1, ..., п} и 1Ъ /2, ..., /2„— все подмножества множества N. Тогда каждому подмножеству /^ =(& =1, ..., 2П) будет соответствовать один из возможных вариантов возмущения коэффициентов целевой функции. Обозначим Rk — проекцию пространства Rn на координатные плоскости х, = 0 при / ^ 1к; хк — векторы из подпространства Rk*
Определение. Целевую функцию / (х) задачи (7.36) назовем 8- устойчивой относительно локального решения х при возмущении 1к, если х является точкой минимума относительно окрестности OG (х, п
г") для любой целевой функции ф (х) = £ (с/ + ^/) xf ПРИ И^&|| ^ е-
Для е-устойчивости целевой функции / (х) относительно локального решения х при возмущении 1к необходимо и достаточно, чтобы выполнялось условие
8^8^minxQPxCx^х+хminxQPxCx^х+х|| хк — хк ||*|| хк — хк ||*(7.38)(7.38)
8^
8^
minxQPxCx^х+х
minxQPxCx^х+х
|| хк — хк ||*
|| хк — хк ||*
(7.38)
(7.38)
Отметим, что при нахождении локального решения задачи (7.36) по методу локальной оптимизации мы можем воспользоваться и дру- п
гой метрикой, например метрикой р (х, у) = 2|х/— уД. В этом случае формулы (7.37) и (7.38) остаются справедливыми, меняется только структура множества Oq (х, г), Dx (х, г). Аналогично можно определить понятие е-устойчивости матрицы условий Л = ^Д задачи (7.36) относительно локального решения х. Наряду с матрицей Л рассмотрим возмущенные матрицы вида В = (а^ + И^Д. Обозначим G (h) — область определения задачи с матрицей условий вида В, а Oq (я, г, А) — окрестность в множестве G (й) радиуса г > 0 с центром в точке х £ G (ft).
Определение. Матрицу условий Л = ^Д задачи (7.36) назовем е-устойчивой относительно локального решения х, если х является точкой минимума функции / (х) относительно окрестности 0G (х, г, К) при любой матрице условий В = (д^ 4- к(Д, где hL £ R’\ \\кД\ ^ ^8, / =1, ..., т.
Пусть точка х не является решением системы линейных неравенств atx ^ bt, i = 1, ..., т. Определим, при каких значениях 8 точка х не является решением любой системы неравенств (^ + кД х ^ ^Ь(, I = 1, ..., /и, где ht £ Rn, || 1г( || ^ е, i = 1, ..., т. Справедлива следующая теорема.
Теорема 7.21. Для того чтобы точка х не являлась решением любой системы неравенств (а( + ht) х ^ bh i = 1, ..., т, где h
е< шах1^ i^mе< шах1^ i^m^e, i = 1, ..., m, необходимо и достаточно, чтобы выполнялось условие
е< шах
1^ i^m
е< шах
1^ i^m
(7.39)
Доказательство. Достаточность. Допустим, что 8 удов- а,х—Ь,
летворяет неравенству (7.39). Пусть шах достигается при
1^™||х||*
некотором значении feg{lт\. Поскольку х не является решением системы неравенств a£x^b£, t = 1, ..., т, то акх">Ьк. Тогда согласно работе [851 точка х является решением неравенства (дк + А») х > Ьк
для любого hk^Rn при ||/it Ц ^ в < ———. А это значит, что точках не будет удовлетворять любой системе неравенств (az -f- h£) х Ьи 1 = 1, .... т, где h££Rn> II/ifII^8< - ^-~-^ = max ™_ - . ||х||* t^i^m || х|]*
atx — Ь»
Необходимость, Предположим противное, что 8^ max—-
l^i^m ||Х||* и точка х не удовлетворяет системе при любом h{£ R"^h£^^e. Обозначим М (х)— подмножество всех значений i, ig{l, ..., т\, для кото- а.х —aix —
рых atx >Ь(. Тогда при 8^ max= max для любого UF го Н^Г
i^M (x) существует такое h^ ||hc||^ 8, что (^, hd x ^ bb Отсюда следует, что x будет решением системы (at + Н^х^Ьь где hi — О для f ^ М (х) и hi = hi для i £ М (х), что приводит к противоречию. Теорема доказана.
Теорема 7.22. Для того чтобы матрица условий Л задачи (7.36) была г-устойчивой относительно локального решения х, необходимо и достаточно, чтобы выполнялось условие
А Е^, где
Ех = 18/0^ s^ minI\^.i-^.mЕх = 18/0^ s^ minI\^.i-^.m
Ех = 18/0^ s^ min
I\^.i-^.m
Ех = 18/0^ s^ min
I\^.i-^.m
(
+ оо, если f(x)^f (х) для всех x^D^ (х, г)
min max —г—— в противном случае x^Dj5c.n К^ И
1W</W
Доказательство. Действительно, для того чтобы точка х была точкой минимума функции / (х) относительно Оо (х, г, А) при любой матрице В = (а^ + Ы,\ где Ц^|| ^ е, i = 1, ..., /и, необходимо и достаточно, чтобы для всех матриц вида В при \\ht || е выполнялись условия
l)xCG(/i); _
/ (х) ^ / (х) для любого х ^ Oq (х, г, К).
Как следует из работы [85] и теоремы 7.21, для выполнения каждого из этих условий в отдельности необходимо и достаточно, чтобы е принадлежало соответственно множествам Еъ Е^. Выполнение условий одновременно обеспечивается при е g Ег П Е^.
Аналогичные формулы можно получить для определения е-устой- чивости матрицы Л относительно локального решения х при возмущении /^, а также в случае, когда возмущениям подвергается лишь часть строк матрицы Л.
Глава 8
МОДЕЛИ И АЛГОРИТМЫ РЕШЕНИЯ НЕКОТОРЫХ ПРИКЛАДНЫХ ЗАДАЧ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ
В первых двух параграфах настоящей главы приводятся содержательные и математические постановки задачи определения оптимального грузопотока на сети с сохранением «плечевого баланса» на дугах. Для решения этой задачи предлагаются точный и приближенный алгоритмы [61, учитывающие специфику структуры матрицы ограничений. Приближенный алгоритм предназначен для решения достаточно широкого круга задач, область же применения точного алгоритма более ограничена. Машинный эксперимент по решению тестовых и практических задач подтвердил эффективность обоих алгоритмов, которые были включены в состав математического обеспечения ПП ПЛАНЕР [98]. В § 3 рассматривается задача определения оптимального варианта развития электрической сети, которая сформулирована как частично дискретная задача оптимизации. Четвертый параграф посвящен формализации одной типовой задачи, возникающей на этапе автоматизированного проектирования печатных плат. В результате построена модель комбинаторного типа.
ЗАДАЧА ОПРЕДЕЛЕНИЯ ОПТИМАЛЬНОГО ГРУЗОПОТОКА НА СЕТИ С УСЛОВИЕМ СОХРАНЕНИЯ БАЛАНСА НА ДУГАХ
Рассмотрим следующую задачу планирования перевозок грузов.
Пусть задано некоторое множество городов N = {1, ..., п), между которыми производится обмен грузами, и множество дорог (маршрутов) /, связывающих эти города:
1 = U^ Ь!1 €N> KN^Nx N.
Предполагается, что длина каждого маршрута известна и равна s^, (Г Ь € Л кроме того s^ = S/,. Предполагается также, что из (z, /) С следует (/, О € Г Каждый из городов располагает определен- ными ресурсами груженых и порожних транспортных единиц, причем груженые транспортные единицы уже распределены по маршрутам, т. е. для каждой из них уже известен город, в который эта транспортная единица может быть отправлена. Пусть г,/, (z, /) £ /,— количество груженых транспортных единиц, которые могут быть отправлены из z-ro в /-й город.
. По каждому из маршрутов могут отправляться как груженые, так и порожние транспортные единицы, при этом требуется, чтобы выпол-
нялось условие плечевого баланса, т. е. чтобы количество транспортных единиц, отправляемых из одного города в другой, равнялось количеству транспортных единиц, отправляемых в обратном направлении.
Каждый город имеет план отправлений, т. е. задано количество bt транспортных единиц, которые должны быть отправлены из города. Кроме того, из реального смысла задачи следует, что количество пустых транспортных единиц, отправляемых из Z-го города в /-й и обратно, не может одновременно быть отличным от нуля, т. е. обмен порожними транспортными единицами между городами не допускается.
Требуется определить количество отправлений транспортных единиц из каждого города множества N по каждому маршруту, чтобы сумма всех транспортных единиц, отправляемых из /-го города, отличалась от плана на величину, не большую tb количество отправлений пустых транспортных единиц из /-го города не превышало заданного числа Рь а также чтобы пробег пустых транспортных единиц был минимален.
Обозначим хц, Ц, j) £ /,— количество груженых транспортных единиц; у^', (/, /) ^ Л— пустых транспортных единиц, отправляемых из города / в город /.
В терминах целочисленного программирования данная задача напишется в следующем виде (постановка 1): минимизировать
S $иУп(8.1)
(М>€/ при условиях
S (^/ + tit/) — + 6t- i C N,(8.2)
0^xif^zih (iJ)EL(8.3)
x// + tiif = xfi + yib (h i) E Л(8.4)
^/>0, (/,/)€/,(8.5)
S ^/<Л, ^N,(8.6)
xti, Ун — целые, (t, /) g /,(8.7)
Ун У a = 0, (i, /) 6 /.(8.8)
Здесь бь i £ N,— параметр, принимающий целые значения из отрезка I—tb ^L
Очевидно, что yi}' = 0, если z^ ^ zit. В этом случае
Xt/ — Хц -{- У/i, Uji ^^ ZifZji — ^jb yij = 0.(8-9)
Обозначим 1г — множество
/i № iWL DEL ^^Zji} U № 1Ш /) EL zM = zib i<lV
С учетом сказанного выше исходная задача может быть переписана в следующем виде (постановка 2): минимизировать
£ 5цУи(8. Ю)
(W)66
при условиях
S (х</+У</)+ S (хн + Uib = bi + 6<, i^N, (8.11) W>а.лел
0^xi(^zih Q^ya^Zii, (t, /КЛ,(8.12)
S Уи^Рь UN,(8.13)
ч,пи,
xth У и — целые, ((, ^g/p(8.14)
Очевидно, что мощность множества 1г вдвое меньше мощности множества /. Следовательно, исходная задача в постановке 2 содержит вдвое меньше переменных по сравнению с постановкой 1. Значения переменных, исключенных из задачи в постановке 2, будут однозначно определяться после решения задачи (8.10) — (8.14) по следующим формулам:
Хц = хм + уф ук = 0, (/, 0 € / \ к*
Таким образом, условия (8.8) позволяют при решении исходной задачи рассматривать лишь половину переменных, что в значительной мере сказывается на требуемой памяти и времени решения данной задачи с помощью ЭВМ.
Следует особо отметить, что во многих практических задачах ограничения (8.13) не являются существенными, т. е. не оказывают никакого влияния на определение оптимального решения. В этом случае вполне закономерно исключить такие ограничения и рассмотреть модель (постановка 3), отличающуюся от постановки 2 отсутствием ограничений (8.13).
Остановимся на некоторых особенностях матрицы ограничений описанной задачи. Для этого предварительно рассмотрим квадратную матрицу Аг порядка г, все элементы которой принадлежат множеству {0, —1, 1}, причем каждый вектор-столбец этой матрицы содержит в точности два ненулевых элемента. Справедлива следующая теорема.
Теорема 8.1. Определитель квадратной матрицы Ar> r^l, равен либо 0, либо ±121, где I £ |1, ..., [-тг]}-
Доказательство. Докажем эту теорему по индукции.
Проверяем справедливость теоремы при г = 2. При г =2 матрица А2 имеет следующий вид:
#11#12
#21#22.
где а^ £ {—1, 1} для всех z и /; ее определитель, вычисляемый по формуле А = апа22 — а12а21, примет значение из множества {0, —2, 2). Итак, для случая, когда г = 2, теорема справедлива.
Предположим, что теорема справедлива для г = к, где k^ 2.
Покажем справедливость теоремы для случая г = к + 1. Рассмотрим матрицу Д^+1 и обозначим q — минимальное число элементов, отличных от нуля, в строке этой матрицы. Отметим, что 0 ^ q ^ ^ 2. Действительно, каждый столбец матрицы А^\ содержит два эле-
мента, отличных от нуля. Следовательно, общее число ненулевых элементов равно 2 (ft + 1). Если q > 2, то каждая строка матрицы Л^+1 содержала бы по крайней мере три ненулевых элемента, следовательно, общее число ненулевых элементов в матрице было бы не меньше 3 (£ + 1), что невозможно.
Рассмотрим три возможных случая: 1) q = 0; 2) q = 1; 3) q = 2.
Случай 1. Если q = 0, то матрица Л^+1 содержит нулевую строку и ее определитель равен нулю. Для этого случая утверждение теоремы справедливо.
Случай 2. Если q = 1, то матрица Л^+) содержит строку, в которой лишь один элемент отличен от нуля. Допустим, что этот элемент стоит на пересечении f-й строки и /-го столбца. Разложим определитель матрицы по /-й строке
Д/г+1 = (— l)^7 atf^e
Учитывая, что ац^\—1, 1} и Д*^{0, ±2'}, где /^!1, ..., Г—, ' I 2 JJ получим
A»+i € {0, ± 2'}, где /е(1, .... [4]}с{1, ...» [-^у2"]}-
Итак, для случая q = 1 теорема справедлива.
Случай 3. Если q = 2, то каждая строка и каждый столбец матрицы Л^+1 содержат два отличных от нуля элемента. Переставляя строки и столбцы матрицы Л^ (не изменяя при этом абсолютной величины ее определителя), придадим ей следующий вид:
а11
0
0
aut
—
Й21
0
0
0
0
06—16—1
0
5 Ом
■= Л^+ь
0
0
^161
йци
0 м
где Ом—нулевая матрица.
Обозначим матрицу в верхнем левом углу А1о причем 1Х ^ 2. Если А + 1 = iT) то
△л-ы = ± | Л^1 ** ± | А^ |, где
Мб | = ^11^22 • • - а6Л + ( 0W ^21^82 • • • а1Лх— ь
Так как в последнем выражении все элементы по абсолютной величине равны единице, то | Л;, | £ {0, ±2} и, следовательно,
Аб+1 {0, -2, 2}с{0, ±2Z), где /g{l[“Ч^-]}-
Если А + 1 > 1\, то ft + 1 — ц ^ 2, так как матрица Л»+!_(1 не может состоять из одного элемента, ибо это противоречило бы предпо-
ложению о структуре матрицы Л^+1. По предположению индукции для матрицысправедливо утверждение теоремы. Тогда
I ^+1I == I At I • | А^-ц | Е {0, ± 2Z},I ^+1I == I At I • | А^-ц | Е {0, ± 2Z},/б{1,/б{1,^ + 1^ + 1
I ^+1I == I At I • | А^-ц | Е {0, ± 2Z},
I ^+1I == I At I • | А^-ц | Е {0, ± 2Z},
/б{1,
/б{1,
^ + 1
^ + 1
следовательно, теорема доказана.
Следствие 1. Если определитель матрицы Ат равен ±2Z, /£ |1,„. •••»[т"]}’ то Равно числу блоков, на которое можно разбить Ат путем перестановки строк и столбцов [16].
Это утверждение следует из самого хода доказательства теоремы.
Следствие 2. Если определитель матрицы Аг равен ±2, то алгебраическое дополнение любого элемента этой матрицы равно ±1.
Действительно, если Аг получается из А, путем вычеркивания одной строки и одного столбца, то перестановкой строк и столбцов можно привести Ат к виду, аналогичному Atv> при котором ненулевые элементы будут расположены по одну сторону от главной диагонали. Таким образом, | Аг | = ±1.
Из определения множества 1Х следует, что в нем не содержатся две пары (i, /), (/, 0 одновременно, т. е. если (0 /) g 1Ъ то (/, Г) ^lv Следовательно, каждая переменная Хц и у^ входит лишь в Z-e и /-е равенства системы (8.11), т. е. матрица ограничений (8.11) состоит из нулей и единиц, причем каждый столбец этой матрицы содержит две единицы.
Отбросим условие целочисленности и сведем неравенства в условиях задачи к равенствам введением искусственных переменных (кроме того, положим 6< = 0, / £ NY получим задачу ЯП, которую решаем одним из методов линейного программирования. Пусть и — решение этой задачи uit) ..., uik —соответствующие ему базисные переменные, где к — количество ограничений задачи. Матрицу, составленную из вектор-столбцов матрицы ограничений, соответствующих базисным переменным, обозначим В. Тогда выполняется следующее равенство:
Ви = Ь.
Определитель матрицы В отличен от нуля. Более того, справедлива следующая теорема.
Теорема 8.2. Для матрицы В |B|g{±2z}, где /^|о, ..., [тг]} ♦
Доказательство. Допустим, що ..., и^ — часть базисных переменных, соответствующих неискусственным переменным задачи ЯП, a Ui^, ..., щк —часть, соответствующая искусственным переменным этой задачи. Тогда матрицу В, не ограничивая общности, представим в следующем виде:
В =В =С \0мС \0мEl DEl D
В =
В =
С \0м
С \0м
El D
El D
Здесь матрица С состоит из нулей и единиц и составлена из вектор- столбцов матрицы ограничений (8.11), соответствующих переменным Xv> Уч» V» /) € К» входящим в базис; Е—единичная матрица; D—матрица, составленная из нулей и единиц, причем в каждом ее столбце содержится лишь одна единица. Раскладывая определитель матрицы В по строкам и столбцам, содержащим одну единицу, получим
/ С : Ом \
| В| = \= |С'|,
\Е \ D J 1
где матрица С' получается из матрицы В вычеркиванием из нее строк, содержащих одну единицу, и столбцов, соответствующих этим единичным элементам. При этом возможны два случая.
Случай 1. В результате процедуры вычеркивания получаем матрицу С', порядок которой равен единице. Тогда, очевидно, | В | = = ± 1.
Случай 2. Если в результате процедуры вычеркивания получаем матрицу С', размерность которой превышает единицу, то она будет состоять из нулей и единиц, причем каждый столбец этой матрицы будет содержать две единицы. Тогда согласно теореме 8.1 |С'|£ 1€ {0, ±2'}, где /^{1, ..., ["j']} > г—порядок матрицы С\ Так как В|=#0, то |В|= |С'|6{±2'), где I g (1, ..., [^-]] = [1, ..., [4г]} * ^так’ теоРема доказана.
Отметим также, что в случае, когда I # 1, матрицу С', а следовательно, и матрицу В можно разбить на блоки (см. следствие 1 теоремы 8.1), причем определители матриц, составляющих каждый блок, будут равны ±2. Поэтому ниже более подробно остановимся на случае, когда | В | = ±2.
Теорема 8.3. Если | В| = ±2 и все компоненты вектора правых частей b четны, то решение задачи линейного программирования будет целочисленно.
Доказательство. В связи с тем что определитель | В | = = ± 2, значения каждой базисной переменной определяются по правилу Крамера
где матрица В1 получается из матрицы В путем замены /-го столбца вектором правых частей. Так как все компоненты последнего четны, то можно вынести общий множитель 2 за знак определителя. В результате получим
/=1к,
причем матрица В', / = 1, .... к, состоит из целых чисел, следовательно, ее определитель (и значение переменной w^) будет целым числом. Теорема доказана.
Можно показать, что требование четности всех компонент вектора правых частей может быть ослаблено. Для этого рассмотрим определитель | F|, полученный из определителя | В| путем разложения его по элементам строк, содержащих лишь один ненулевой элемент. Предположим, что при этом были вычеркнуты строки с номерами 1Ъ ... ... it и столбцы с номерами /\/,. Тогда переменные с индексами h, „.,
...,/, будут принимать значения целых чисел Ь{1, ..., Ь(1 соответственно.
Очевидно, каждая строка определителя | F | содержит два ненулевых элемента и определитель F может быть записан в следующем виде)
Нетрудно убедиться, что матрица
' (ЛТ* Ом
-^Е
будет обратной матрице F.
Из того что матрица F состоит из нулей и единиц,причем каждая строка этой матрицы содержит два ненулевых элемента, а каждый столбец матрицы А' также содержит два ненулевых элемента, следует, что значения переменных ujW> ..., и^ в оптимальном решении будут либо все целочисленны, либо все нецелочисленны одновременно.
Если значения этих переменных целочисленны, то и оптимальное решение линейной задачи будет целочисленно, т. е. будет оптимальным решением целочисленной задачи.
Рассмотрим случай, когда переменные Ц/,+1, ...» Ujk принимают нецелочисленные значения.
Определитель матрицы А принимает значения из множества {—2, 2}. Алгебраическое дополнение любого элемента этой матрицы принадлежит множеству { —1, 1}, следовательно, все элементы матрицы г*"1 будут принимать значения из множества j— у, yl.
Значение каждой переменной и}р1 р = / + 1, ...» к, определяется по формуле
S (±-г)6<«-
Если £ 6/ — четное число, то значение переменных «/ > р = I + $=/4-1 5р
+ 1, ..., к, целочисленны. Справедливо и обратное утверждение.
Из предположения нецелочисленности значений переменных uipt к
р = I + 1, ..., к, следует, что £ bt нечетна. Поэтому, изменив зна-s=/4*i 8
чение одного из bt , р^{1 + 1, ..., к^, на единицу, получим целочисленные значения переменных и, , р = / + 1к, которые можно принять в качестве оптимального решения исходной задачи.
Изменения btp1 р £ {/ + 1, ..., fe}, означают изменения плана отправлений из ip-ro города. Поэтому выбор номера ip из множества {i/4-i, ..., 1^ и знак изменения величины плана (на +1 или —1) целесообразно проводить в интерактивном режиме.
Предлагаемый метод (Т/?-метод) [6] поиска оптимального решения задачи целочисленного программирования в постановке 3 состоит в решении задачи линейного программирования с последующим изменением при необходимости некоторых элементов вектора правых частей (количество таких элементов не превышает числа блоков, на которые можно разбить базисную матрицу оптимального решения задачи ЛП).
Остановимся на некоторых особенностях применения симплекс- метода для решения указанной задачи ЛП. Анализ симплекс-метода, на котором базируется предлагаемый метод решения, показывает, что основной момент, позволяющий осуществлять переход от одного опорного плана к другому, состоит в разложении каждого из векторов, не входящих в базис, по векторам базиса. В обычном симплекс-мегоде для получения такого разложения в новом базисе по определенным формулам преобразовывается вся симплексная таблица, в модифицированном симплекс-методе — все элементы обратной матрицы. Известно также, что при применении симплекс-метода для решения задач ЛП наиболее трудоемким процессом являются именно эти преобразования, т. е. построение матрицы, обратной к новой базисной матрице. Однако при решении специальных задач (например, транспортной), учитывая их специфику, удается избежать таких трудоемких процессов, применить другие приемы, которые позволяют получать оценки, необходимые для построения нового базиса на каждой итерации симплекс-метода.
Схематично опишем подход, позволяющий с учетом специфики матрицы ограничений избегать построения обратной матрицы в модифицированном симплекс-методе. Рассмотрим задачу ЛП в общем виде
min \сх!Ах = Ь, х^ 0}.
Предположим, что известен некоторый опорный план х? этой задачи. Пусть В — матрица, составленная из вектор-столбцов матрицы условий А, соответствующих базисным переменным. В этом случае опорный план можно выразить таким образом:
х° = В~ХЬ.
Для перехода к следующему опорному плану х? необходимо определить величины
z^ = c°B~xAh j = 1, ..., n, где с? — вектор, состоящий из коэффициентов целевой функции, соответствующих базисным переменным задачи. Известно, что в случае, когда г/ — с, ^ 0 для всех / = 1, ..., п, полученный опорный план является оптимальным.
Для вычисления значений величин zt предварительно вычислим вектор со =с°В”*х.
Чтобы не вычислять матрицу В \ элементы вектора w — V^v ... ..., w^ определим, решая следующую систему линейных уравнений:
b11w1 + • • • + bmVwm = с?,
Ь\т^1 “Ь •••-]- btnmWm — Сщ.
Структура исходной матрицы условий изучаемой нами практической задачи позволяет сделать вывод о том, что каждое из уравнений системы содержит либо три ненулевых коэффициента, либо один такой коэффициент. Более того, не ограничивая общности, считаем, что каждый из последних (к — п) столбцов матрицы содержит либо один, либо два ненулевых элемента, причем в последнем случае один из двух ненулевых элементов будет единственным в строке (к — количество ограничений задачи; п — количество городов).
Таким образом, определяя значения переменных по строкам, содержащим один ненулевой элемент, и исключая эти ограничения из системы вместе с соответствующими переменными, получаем матрицу меньшей размерности, каждая строка которой имеет либо два, либо три ненулевых элемента. Далее исключаем из системы те переменные, с которыми связаны вектор-столбец полученной матрицы с одним ненулевым элементом и соответствующие уравнения системы, так как значения этих переменных определяются из этих исключаемых уравнений, когда известны значения всех остальных переменных, входящих в эти уравнения, и т. д.
В результате таких преобразований будут получены либо значения переменных, по которым можно установить значения всех переменных исходной системы уравнений, либо подсистема линейных уравнений, матрица условий которой в каждой строке и каждом столбце содержит два ненулевых элемента. Матрица такого вида при надлежащей перестановке строк и столбцов имеет блочно-диагональное строение, причем размерность этой матрицы будет не более п.
Предположим, что указанная матрица подсистемы системы уравнений состоит из одного блока (в противном случае такая подсистема может быть разбита на независимые подсистемы, количество которых равно числу блоков). Путем перестановки уравнений и изменения порядка переменных нашу подсистему можно свести к подсистеме следующего вида:
ш/, + У»к = С?,,^/2 + а>ь = с°„
+ wiq = culq.
В том случае, когда известно значение одной переменной, входящей в эту подсистему, определить значения остальных переменных
можно достаточно просто, например так же, как определяют значения потенциалов при решении транспортной задачи методом потенциалов.
Если не известно ни одно значение переменных, входящих в систему, можно из первого уравнения вычесть второе, прибавить третье и т. д. Отметим, что число q нечетно, так как в противном случае определитель этой подматрицы, а следовательно, и всей системы равен нулю, что противоречит предположению о том, что матрица В состоит из вектор-столбцов, составляющих базис матрицы. В результате процедуры сложения и вычитания уравнений подсистемы получим
2tyZ1 = 5?, — ^z2 + • • • + ^» откуда
После этого последовательно вычисляем значения следующих переменных по формулам
^t, = с°(н1 — w(/_v / = 2q.
Значения остальных переменных системы уравнений могут быть теперь легко определены по известным значениям переменных в порядке, обратном порядку исключения столбцов из матрицы в процедуре, описанной выше.
Итак, определены значения компонент вектора w. Учитывая формулу вычисления коэффициентов Z/, / = 1, ..., п, запишем
Z/ = wAh / = 1, ... , п.
Рассмотрим величины Z/— ch j = 1, ..., п. Если все эти величины неположительны, полученный базис является оптимальным. Если же для некоторого значения индекса выполняется соотношение 2р — Ср >> > 0, то /'-й вектор-столбец матрицы условий исходной задачи должен быть введен в базис. Для определения вектор-столбца матрицы В, который должен быть выведен из базиса, следует найти коэффициенты в разложении вектора Ар по базисным вектор-столбцам, а также значение вектора х° из системы
х° = ВГХЬ.
Коэффициенты разложения Ар находятся из системы
Ви = Ар.■
Обе системы могут быть решены так же, как и йсходная система, причем в результате решения одной из них получаем решения сразу обеих систем.
В том случае, когда базис является оптимальным, вектор х° — решение исходной задачи. В противном случае по значениям компонент векторов х° и и можно определить вектор-столбец Ар, который выводится из базиса и вместо которого в базис вводится столбец Ар.
Таким образом, рассмотренный вариант симплекс-метода отличается от модифицированного симплекс-метода тем, что на каждой его итера-
ции вместо обращения базисной матрицы решается система линейных уравнений. Особенности матрицы этой системы уравнений позволяют достаточно просто получить ее решение, что в значительной мере снижает время решения исходной задачи и экономит оперативную память при решении задачи с помощью ЭВМ.
Кроме того, специфика матрицы ограничений может быть использована для выбора начального базиса, что в определенной степени уменьшает количество итераций при решении исходной задачи описанным выше алгоритмом. Так как первые 26 вектор-столбцов матрицы ограничений исходной задачи линейно независимы (здесь к — количество маршрутов) и вероятность вхождения в оптимальный базис вектор-столбца, соответствующего переменной х^, больше вероятности вхождения в базис вектор-столбца, соответствующего переменной yqt то в базис следует вводить вектор-столбцы первого вида. Ввод в базис осуществляется последовательно, а переменным, которые вводятся в опорный план, присваивается их максимальное значение, при этом не должно быть нарушено ни одно из ограничений.
ПРИМЕНЕНИЕ МЕТОДА ВЕКТОРА СПАДА
ДЛЯ ПРИБЛИЖЕННОГО РЕШЕНИЯ ЗАДАЧ МИНИМИЗАЦИИ ПРОБЕГА ПОРОЖНИХ ТРАНСПОРТНЫХ ЕДИНИЦ
Применительно к рассматриваемой в § 1 задаче обозначения, введен ные в гл. 3, можно интерпретировать следующим образом:
G — множество допустимых решений задачи, т. е. множество планов перевозок;
х — некоторый (текущий) план перевозок; 0g (х, г) — множество всех планов перевозок, отличающихся от плана х не более г перевозками, где под перевозкой понимается перевозка одной транспортной единицы по одному из маршрутов;
f (х) — величина пробега пустых транспортных единиц при плане х, т. е.
f W = S 8цуи.
Как следует из описания общей схемы метода вектора спада, для его применения требуется знание некоторого начального приближения, являющегося допустимым решением исходной задачи. Для построения искомого допустимого решения исследуемой нами задачи вводятся дополнительные переменные, названные искусственными. Коэффициенты функции цели, соответствующие этим переменным, должны быть достаточно большими числами. Это вызвано тем, что значения искусственных переменных совпадают с отклонениями от планов отправлений по каждому городу и в искомом оптимальном решении они должны иметь минимально возможные значения.
С учетом этих замечаний описанная в § 1 задача в постановке 2 имеет следующий вид: минимизировать
S 8ц-у0 + 2 ^i^<
при условиях
bi ti ^ Е (хс/ 4-* уij) -I- E C^/7 + yjh + ^i ^ b[ 4* ^ьi € N,
0 < xM zib 0 yti Zib (i, j) 6 lv
E Уи^Рь i^N,(i.№i
Хф у и — целые, (i, /) £ lv
где Mi — достаточно большие числа, i £ N.
Очевидно, вектор (х°, у0, w°) = (0, ..., О, Ьг — tv ..., bn — Ц является допустимым решением этой задачи и его можно взять в качестве начального приближения.
Для каждого плана (х, у» до) величину Е Mtwt назовем штрафным i^N
пробегом. При решении такой задачи методом вектора спада переход от одной точки метрического пространства М к другой представляет собой переход от одного плана к другому с одновременным уменьшением функции цели, т. е. уменьшением пробега порожних транспортных единиц либо штрафного пробега.
Алгоритм
Выбираем некоторое приближение (х°, у0, до0) и радиус г > 0.
На каждом (г + 1)-м (г = 0, 1, ...) шаге алгоритма, получив на предыдущем шаге значения (х', у1, w*) £ G, осуществляем следующие действия.
1. Строим окрестность Qg ((х', у1, до1'), г) радиуса г с центром в точке (х1\ у*, до').
2. С помощью вектора спада Ar (х', у', до') находим точку (х'+*, yW^ ^4-1) £ Og ((х', yS W1), r) Q G, для которой / (х', у1, w^ > > / (х'+‘, у*^4, до'+4; заменяя i на i + 1, переходим к п. 2.1.
Если такая точка (х'+!, у^\ до'+!) найдена не была, т. е. f (и) ^ ^f^, у1', до') для всех v £ Og ((х', у', до'), г), то (х', у', до') является точкой локального минимума функции / (х, у, до) относительно окрестности выбранного радиуса г. Работа алгоритма на этом прекращается.
Процедура решения исходной задачи состоит из двух этапов. На первом этапе процесс решения задачи с помощью метода вектора спада начинается из точки (х°, у0, до0). Из множества Og ((х, у, w\ г) выбираются лишь те планы, для которых штрафной пробег меньше штрафного пробега текущего плана, т. е. выбираются векторы (х', у', до'), у которых сумма значений искусственных переменных меньше суммы значений искусственных переменных вектора (х, у, до), соответствующего текущему плану.
Допустим, в результате применения первого этапа была получена точка (х, у, до). Далее переходим ко второму этапу, а именно к этапу минимизации пробега порожних транспортных единиц с помощью алгоритма метода вектора спада. Проведение первого и второго этапов
чередуются до тех пор, пока на одном из них получение новой точки станет невозможным.
Таким образом, суть данного алгоритма заключается в переходе от одной точки множества G к другой его точке, в которой значение функции / (х, у, w) уменьшается.
Остановимся вкратце на особенностях перебора точек в окрестности Og ((х, у, w), г) при реализации первого и второго этапов. Вначале должны быть просмотрены те векторы окрестности Оg ((я, у, ^), г), сумма значений искусственных переменных которых меньше суммы значений искусственных переменных вектора (х, у, w), что даст возможность уменьшить отклонение от планов b^ i £ N. Если множество Og ((я, у, wY г) Q G не содержит таких векторов, то дальнейший перебор элементов этого множества следует осуществлять с равной вероятностью, так как в противном случае некоторые переменные будут неявно наделены определенным приоритетом, а это в свою очередь, как показывает практика, отрицательно сказывается на результате решения. Кроме того, необходимо исключить возможность просмотра каждого плана более одного раза.
Важно отметить, что при таком подходе к перебору векторов в окрестности 0g ((х, у, ш), г) следует использовать некоторую адаптацию метода вектора спада к входным параметрам задачи. Из содержательной постановки задачи следует, что переменные, соответствующие количеству отправлений груженых транспортных единиц, должны иметь определенный приоритет над переменными, соответствующими количеству отправлений порожних транспортных единиц. Поэтому все переменные задачи перенумеровываются следующим образом:
искусственные переменные получают номера с 1 по п, где п— количество городов;
каждой переменной X;/, соответствующей количеству отправлений груженых транспортных единиц из пункта i в пункт /, ставится оценка ^ = min {&о 6/}, (г, /) 5 Л, и затем эти переменные перенумеровываются в порядке убывания величин ^z;
переменные уц, (i, j) 5 1и соответствующие количеству отправлений порожних транспортных единиц, перенумеровываются в произвольном порядке.
В такой перенумерации переменных и заключается адаптация предлагаемого алгоритма к параметрам задачи. Далее выбирается случайная перестановка чисел /, ..., Л + п; в порядке, определяемом полученной перестановкой, производится перебор точек в окрестности Оо^х, у, со), г). Для получения случайной перестановки указанных чисел используется датчик псевдослучайных чисел Коробова, равномерно распределенных на интервале [0, 1].
К преимуществам данного подхода к перебору векторов в окрестности, безусловно, следует отнести возможность получения с помощью описанного выше алгоритма целого множества локальных решений данной задачи исходя из одного допустимого решения как начального приближения.
Рассмотрим исходную задачу с некоторыми дополнительными условиями. Предполагается возможность транзитных перевозок, т. е.
некоторые груженые транспортные единицы могут быть направлены из /-го города в /-й через /-й город, и пусть 2щ — количество таких транспортных единиц. Задано множество транзитных маршрутов, которые в дальнейшем будем обозначать
J = Wb b tyb b l^N. <1, jy (Ц l^IV
При этом условие плечевого баланса заменяется так называемым условием «нестрогого плечевого баланса», которое состоит в том, что количество транспортных единиц, отправляемых из /-го города в /-й и обратно, может быть не равно; отличаться же они могут лишь на величину, не большую 1. Отметим, что транзитная перевозка по маршруту (/, /, /) входит в план /-го и j-го городов и должна быть учтена в ограничениях плечевого баланса.
Каждый /-й город, кроме того, должен производить погрузку порожних и разгрузку прибывших груженых транспортных единиц, количество которых должно быть не менее Ht.
С учетом этих ограничений рассматриваемая модель имеет следующий вид: минимизировать
X &аУа(8.15)
при условиях
Ь( ii ^ X ^Ч 4* У th + X xijl 4" X xHl ^ bl 4" ti, i £ N, u.ne.i«.Miu wmj
(8.16)
X Уа^Рь i^N,(8.17)
Pi- X Уи^ X Уа-V X хц-V X хш>Нь (8.18) u.jKi tj.nei u.i^i и.ьоы
1 < ( X хш 4- X xHj + xu 4- №/1 —\(^Л/)СУЦЛЛУи/
и.ьпи илл^а /0^хи1^2ии ^ /, l)U,(8.20)0^xi(<zih (/, /) € Л(8.21)O^yth kbiKh(8.22)Хць kb b IK J; Xth yih kb /) 6/, — целые. (8.23)и.ьпи илл^а /0^хи1^2ии ^ /, l)U,(8.20)0^xi(<zih (/, /) € Л(8.21)O^yth kbiKh(8.22)Хць kb b IK J; Xth yih kb /) 6/, — целые. (8.23)^Xji-Vyji-V X xMt + S(Л/)Е/,(8.19)
и.ьпи илл^а /
0^хи1^2ии ^ /, l)U,(8.20)
0^xi(<zih (/, /) € Л(8.21)
O^yth kbiKh(8.22)
Хць kb b IK J; Xth yih kb /) 6/, — целые. (8.23)
и.ьпи илл^а /
0^хи1^2ии ^ /, l)U,(8.20)
0^xi(<zih (/, /) € Л(8.21)
O^yth kbiKh(8.22)
Хць kb b IK J; Xth yih kb /) 6/, — целые. (8.23)
Таким образом, количество отправок порожних транспортных единиц из /-го города не должно превышать заданное число Ри а сумма имеющихся в t-м городе порожних транспортных единиц и транспортных единиц, поступивших из других городов для разгрузки, должна быть не меньше заданного числа Ни
В такой постановке значительно увеличивается число переменных задачи, что приводит к определенным сложностям при поиске ее решения. Так, при применении метода вектора спада для решения задачи
в такой постановке целесообразно применять радиус г = 2 или г - 3.
После решения задачи в постановке 3 (без учета транзитных рейсов) нами проводилась коррекция полученного решения, которая заключалась в замене двух перевозок по смежным маршрутам одной транзитной перевозкой. Переменная Хф, соответствующая количеству транспортных перевозок из f-го города в /-й через /-й город, входит в два уравнения подсистемы (8.19). Поэтому для изменения значения хщ следует изменить (если позволяют остальные ограничения задачи) значение переменной, соответствующей встречной транзитной перевозке, т. е. Хф, либо изменить значения двух переменных, соответствующих перевозкам из /-го города в /-й и из /-го в /-й. После указанных замен вновь решалась задача в постановке 3, но уже с измененным вектором правых частей, а именно: минимизировать
S 8^Уи
при условиях
bi — ti ^ 5] (хц + у^) + 5j (хи + У/f) ^ bf + ^> i^N» (8.24) (M€/,(/./)€/,
о ^ Уц < Zth 0 < хм ^ г*/, (/, /) е Л,(8.25)
Хф Ун — целые, (/, /) С1Х.(8.26)
где
^7 — Z(jХф, (i, /) £ 71»(8.27)
b\ = bt— ^ xil4 — ^ xUh i^N,(8.28)
(Л/,/)€У kMj^J
хщ < zuu (i, /, /) e J.(8.29)
В качестве начального приближения для такой задачи выбирался вектор, значения всех компонент которого равны значениям компонент вектора решения предыдущей задачи после проведения указанных замен.
Описанный выше процесс, состоящий из чередования этапа решения задачи методом вектора спада и этапа замены двух отправок по смежным маршрутам одной транзитной перевозкой, продолжается до тех пор, пока все ограничения задачи не будут удовлетворены (т. е. значения всех искусственных переменных будут равны нулю) или пока с помощью метода вектора спада станет невозможным получить новый план. После этого замены производятся лишь в том случае, когда одна из двух смежных перевозок является перевозкой порожней транспортной единицы, т. е. до тех пор, пока станет невозможным проведение замены порожней транспортной единицы транзитной без нарушения ограничений задачи.
Данный процесс решения задачи является конечным, т. е. на первом этапе решения величины £ Vxa + Ун) + S (хп + У ft) + £ Хф + (i.hUikj.WiU,b№
+ S хиь ^N, возрастают, а по условиям задачи они ограничены kMjXJ
величинами bb i £ N, на втором этапе эти величины не изменяются, но возрастают значения Хф, которые также ограничены величинами гць Ц» i, t) € J*
Для решения описанных задач были составлены три программы. Первая из них использовалась для решения задачи в постановке 3 и представляет собой описанную модификацию симплекс-метода VTR- метод) для решения задач ЛП; вторая программа применялась при решении задачи (8.9), (8.24) — (8.29) в два этапа с помощью модификации метода вектора спада; третья — при решении задачи (8.9), (8.14) — (8.20) с помощью метода вектора спада.
В процессе решения задач большой размерности с помощью описанной модификации симплекс-метода может выясниться, что выделенного ресурса машинного времени недостаточно для получения оптимального решения. В этом случае рекомендуется продолжить процесс решения методом вектора спада и использовать текущее базисное решение в качестве начального приближения.
Алгоритм метода вектора спада позволяет достаточно быстро получать приемлемое решение. К преимуществам этого метода, безусловно, следует отнести возможность его применения в интерактивном режиме, что позволяет пользователю оказывать активное воздействие на процесс решения задачи, разумно перераспределять имеющиеся в его распоряжении ресурсы. Такое активное вмешательство пользователя имеет особое значение при решении практических задач, поскольку довольно часто область допустимых решений для них является пустой и вследствие этого требуется изменять ограничения для получения приемлемого решения. Отметим, что в таких случаях применение методов поиска точного решения нецелесообразно из-за значительного снижения ценности получаемого решения.
При решении задачи (8.9), (8.24) — (8.29) в два этапа решается задача в постановке 3. Решение этой задачи выбирается в качестве начального приближения, и далее с помощью метода вектора спада решается задача (8.9), (8.24) — (8.29) начиная со второго этапа, т. е. этапа замены двух отправлений по смежным маршрутам транзитной перевозкой. После проведения всех таких замен снова переходим к решению уже видоизмененной задачи (8.9), (8.24) — (8.29). Такой
Таблица 18
Метод решения
Количество пунктов
Количество маршрутов
Количество транзитных маршрутов
Время решения (ЕС-1040), мин
TR
39
73
4
Вектор спада
39
73
0,6
Вектор спада
39
73
240
1,9
Модификация метода вектора
39
73
240
и
спада (два этапа)
процесс чередования первого и второго этапов в модификации метода вектора спада прекращается после того, как один из этапов гпозволит получить новый план.
В табл. 18 приведены некоторые характеристики задач, описанных в § 1 и 2, которым соответствуют задачи ЦЛП с 292 и 532 переменными соответственно. Как следует из таблицы, время решения задач достаточно большой размерности сравнительно невелико, что позволяет сделать вывод о возможности использования предложенных алгоритмов решения указанных задач в автоматизированных системах управления транспортными перевозками.
ЗАДАЧА ОПРЕДЕЛЕНИЯ ОПТИМАЛЬНОГО ВАРИАНТА
РАЗВИТИЯ ЭЛЕКТРИЧЕСКОЙ СЕТИ
Известно, что электроэнергетика имеет огромное значение для народного хозяйства страны. В связи с большими затратами материальных ресурсов государства, направляемых на ее развитие, очень важно добиваться оптимального с экономической точки зрения развития энергетических систем и их объединений.
Одной из задач, возникающих при проектировании электроэнергетических систем, является задача оптимизации развития электрической сети.
Под электрическими сетями понимают [179] устройства, предназначенные для распределения электрической энергии. Они состоят из электрических линий, подстанций, распределительных и переключательных пунктов, связывающих источники электрической энергии и ее потребителей.
Применительно к электрическим сетям задача оптимизации может быть сформулирована таким образом. Пусть известны размещение и величины нагрузок потребителей, размещение и режимы работы электростанций, существующая электрическая сеть и возможные способы ее развития. Требуется обеспечить наиболее экономное развитие и эксплуатацию системы в рассматриваемый период при соблюдении технических требований к качеству электроснабжения. Эта задача очень сложна. Ее решение возможно лишь при определенных упрощениях, допустимость которых зависит от конкретной постановки задачи.
В настоящее время для задач оптимизации развития электрических сетей разработан ряд математических моделей [78 и др.].
В данном параграфе рассматривается нелинейная математическая модель определения оптимального варианта развития электрической сети, разработанная для Алма-Атинской энергосистемы (в разработке этой модели принимали участие В. Г. Жильцов и Н. В. Семенова). В данной модели электрическая сеть представляется в виде графа, в вершинах которого приложены нагрузки потребителей и генерация мощностей электростанций. Существующие и планируемые к сооружению сетевые объекты — линии электропередачи и подстанции связи сетей разного напряжения — изображаются дугами графа.
Рассмотрим s-контурную (/ = 1, ..., s) электрическую сеть, состоящую из п сетевых объектов (/ = 1, ..., п) и т узлов (i = 1, ..., m) 266
(граф сети содержит соответственно п дуг и т вершин). Пусть S — множество независимых контуров сети, /-й контур сети состоит из множества Ji с J = (1, ..., п} объектов. Известно, что множество J ^J сетевых объектов находится в эксплуатации, а остальная часть
J \ J планируется к сооружению.'
Для постановки задачи определения оптимального варианта развития электрической сети введем следующие обозначения: Л/— приведенные затраты на сооружение /-го сетевого объекта и эксплуатационные затраты, не зависящие от потоков активной мощности для этого объекта; В/ — стоимость потерь электроэнергии при передаче единицы потока активной мощности по /-му сетевому объекту; П/ и z^ — соответственно предельная пропускная способность и сопротивление /-го сетевого объекта; Pi — нагрузка или генерация мощности в r-м узле сети; hj — коэффициент трансформации /-го сетевого объекта; гц — числа объектов, планируемых к сооружению в /-м контуре сети.
Введем следующие переменные:
X/ — поток активной мощности по /-му сетевому объекту;
_ (1, если /-й сетевой объект выбирается для построения, ч” |0 в противном случае.
Используя приведенные выше обозначения, сформулируем задачу определения оптимального варианта развития электрической сети следующим образом: минимизировать
iUiU(8.30)
iU
iU
при ограничениях
П/1 л 1пдЕ X/ = Рь КО,П/1 л 1пдЕ X/ = Рь КО,при j £ 7,при j £ 7,(8.31)(8.31)i = 1, ... , т,i = 1, ... , т,(8.32)(8.32)
П/
1 л 1пд
Е X/ = Рь КО,
П/
1 л 1пд
Е X/ = Рь КО,
при j £ 7,
при j £ 7,
(8.31)
(8.31)
i = 1, ... , т,
i = 1, ... , т,
(8.32)
(8.32)
(8.33)(8.33)S х^Д- = о, I е s \ l,
(8.33)
(8.33)
2 х^Д^М (nt — 2 бЛ . l^L,lUg\ r£F; /
где Dt — подмножество дуг графа сетй, сходящихся в f-м узле; Ft cz а Jt — множество объектов, планируемых к сооружению в l-м контуре сети; L ^ S — подмножество независимых контуров сети, в каждом из которых планируется к сооружению хотя бы один объект.
Целевая функция (8.30) задачи определяет общие затраты на сооружение новых сетевых объектов и эксплуатацию электрической сети.
Ограничение (8.31) учитывает предельную пропускную способность /-го сетевого объекта.
Ограничения (8.32) и (8.33) аналогичны соответственно первому и второму законам Кирхгофа. Учет ограничений (8.32) обеспечивает баланс мощностей в узлах сети, а (8.33) — потокораспределение по всем
независимым контурам электрической сети, которые содержат сетевые объекты различных классов напряжений, соединенные между собой трансформаторами в различных узлах сети.
Задача (8.30) — (8.33) является задачей частично целоцисленного программирования с квадратичной целевой функцией при непрерывных переменных.
Выполнив замену переменных
Х/ = У/ —Пу, j^J,
задачу (8.30) — (8.33) перепишем в следующем виде: минимизировать
5 Л/бу+S В/(У/-П/)2(8.30')
при ограничениях
о^уу^гп,., ju,
П, (1-6,) ^^^^(1+6,), jU\J, (8.3Г)
s <yt — nz) = Pb t = 1, ... , m,(8.32')
/€D.
S (у,—Пу)г,^ = 0, Z€S\L,
,У'(8.33')
J] VUi П,) Zjkj ^ M (щ^ бД , l£L.
Как видно, (8.30) — (8.33) и (8.30') — (8.33') являются частично дискретными оптимизационными задачами. Для их решения можно использовать алгоритмы разбиения, изложенные в § 3, 4 гл. 5.
ФОРМАЛИЗАЦИЯ ОДНОЙ ЗАДАЧИ
АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ ПЕЧАТНЫХ ПЛАТ
Для автоматизации изготовления фотошаблонов печатных плат и сверления отверстий в системах автоматизированного проектирования предусмотрено формирование массивов информации, выполняющих роль управляющих программ для устройств с программным управлением (координатографов, сверлильных станков). Вычерчивание рисунка печатного слоя и сверление отверстий производится движением луча координатографа или сверла, путь прохождения которых задается такими программами. Печатная плата представляет собой изоляционное основание с нанесенным на нем печатным монтажом. Печатный монтаж — это система печатных проводников, обеспечивающая соединение элементов электрической схемы. Элементами печатного монтажа являются проводники, контактные площадки, экраны, вырезы в экранах, зазоры, отверстия, маркировка, зенковка. Печатный монтаж, лежащий в одной плоскости на изоляционном основании, называется печатным слоем. Система ортогональных линий, нанесенная с заданным шагом на чертеж печатного слоя — координатная сетка — служит для определения положения элементов печатного монтажа на поверхности платы.
Для уменьшения времени изготовления печатных плат на этапе их автоматизированного проектирования важно решить задачу минимизации суммарного пути прохождения лучом или сверлом заданных элементов печатного монтажа. Кроме нахождения минимальной суммарной длины, поиск оптимального решения в этих задачах может производиться и с учетом ряда других факторов. Так, для ряда устройств с программным управлением важно минимизировать частоту изменения направления движения.
Сформулируем одну из задач такого типа. Пусть имеется печатный слой с расположенным на нем печатным монтажом и нанесенной на его плоскости координатной сеткой с заданным шагом. Рассмотрим п объектов, которые являются элементами печатного монтажа. Точки, соответствующие концам проводников, отверстия, контактные площадки расположены на поверхности таким образом, что их центры совпадают с узлами координатной сетки. Кроме этих точек, введем в рассмотрение начальную точку, в которой находится луч координатографа или сверло. Итак, считаем, что на плоскости задана (n + 1) точка и определены расстояния между каждой парой точек. Как правило, в задачах этого типа под расстоянием между точками а = (х^, у^ и b = U/> У,) понимается функция 3
d(a, b) = l^ —x/l + lf/z —У/1-
Считаем также, что задана матрица Д = (6,/)пхп, каждый элемент которой определяется так:
( 1, если i-я точка соединена проводником с /-й точкой; ^l/ ~ I 0 в противном случае.
Пусть р = (рь р2, ..., р^ — произвольная перестановка чисел 1, 2, ..., п, а Р = {р} —множество всех таких перестановок. Каждой перестановке поставим в соответствие маршрут по естественному правилу: после начальной точки переходим в точку рь затем — в р2 и т. д., а после точки рп возвращаемся в исходную точку.
Как следует из сказанного выше, проблема может быть сведена к специальной задаче коммивояжера вида: найти путь минимальной длины, включающий все заданные точки, при условии, что заданы некоторые пары точек, которые должны быть соседними в этом пути. Итак, задача заключается в следующем: найти р = (pi, ..., pn) С п—1
€ D с Р такое, что р* = arg min / (р), где/ (р) = d0,P1 + 2 dp Рк.,+ pED^P6=1 R
+ dp^; dtj (i, j = 0, ..., и) — элементы матрицы расстояний; D — подобласть области Р, определяемая условиями: для всех р = ^pv... ..., Рп) € Р справедливо: если 6^ = 1, то в р существует такая пара компонент рк, pk^\, что рк = i, pw = j или рк = /, pA+i = i.
Как уже отмечалось, вычисление элементов матрицы расстояний может производиться по разным формулам. В задачах автоматизации проектирования цифровой аппаратуры, кроме того, могут встречаться другие ограничительные условия, определяющие область допустимых вариантов решения D. Например, для некоторых точек может фиксироваться заранее их место в искомом пути, из отдельных точек возможен переход не во все остальные точки, а лишь в заданные их подмножества и т. д. Вычисление цены пути может осуществляться по другим формулам — скажем, с учетом весов или числа соединений между парами точек, числа поворотов и изгибов в найденном пути и т. п.
Отметим особо, что задачи такого рода являются типовыми при решении целого комплекса сложных задач конструкторского проектирования, выступая в качестве отдельного этапа поиска оптимальных решений. В то же время они представляют и большой самостоятельный интерес как в теоретическом, так и в прикладном плане.
При соответствующей интерпретации параметров моделей приведенных выше задач (пространства решений, целевой функции, ограничительных условий) они могут применяться и в других сферах приложений математических методов оптимизации — экономике, планировании производства, проектировании сложных технических систем. К задачам типа задачи коммивояжера сводится много других проблем выбора оптимальных решений, что делает целесообразным разработку эффективных алгоритмов оптимизации, позволяющих решать как отдельные задачи, так и целые их классы. С этой точки зрения изложенные выше постановки задач представляют собой класс типовых задач дискретной оптимизации, формулируемых в терминах комбинаторного программирования [134].
ИССЛЕДОВАНИЕ И РЕШЕНИЕ ОДНОГО КЛАССА ЦЕЛОЧИСЛЕННЫХ МНОГОКРИТЕРИАЛЬНЫХ ЗАДАЧ ЗЕМЛЕПОЛЬЗОВАНИЯ
Методологические и содержательные аспекты исследуемой задачи читатель может найти в [Д39, Д13, Д29]. Для рассматриваемой ниже задачи ЦЛП, которой представлена изучаемая задача, предлагаются алгоритмы, основанные на процедурах агрегирования и координации [94], исследуется вычислительная сложность задачи и ее разрешимость в классе алгоритмов линейной свертки критериев. Используя [Д49], остановимся на этих вопросах подробнее.
Формулировка многокритериальных задач землепользования. Для содержательной и математической формулировки задачи, возникающей при обосновании наиболее рациональных вариантов землепользования в регионе, введем следующие обозначения: v= 1, ... N — номера хозяйств рассматриваемого региона; I = 1, ..., п — номера выращиваемых в этих хозяйствах культур; sv — площадь пахотных
N
угодий v-ro хозяйства, s = 5 sv, где sv — положительные целые чис- V—1
ла, v = 1 N;svi— максимально допустимая площадь посевов
п
Лй культуры в хозяйстве v, ^ svz- ^ sv, i = 1n, v = 1N;
t=1
u^ — Урожай i-й культуры, засеянной на единице площади угодий по предшественнику / в хозяйстве v; 6? — минимально необходимый объем производства i-й культуры в хозяйстве v для собственных нужд; Bt — суммарные по всем хозяйствам плановые поставки i-й культуры государству. Всякий допустимый вариант или план землепользования определяется трехиндексной матрицей х = ||х?/||, i, / = 1, ..., л, v = = 1, ..., N, которая удовлетворяет условиям:
S^o/=S<.‘0 = 1.(8.34)
/=1/=1
^ х), ^ sVf, i = 1, . .. , п, v = I, ... , N, (8.35)
^z/€ (0, 1, ... , sVi}, i, j = п, v = 1, ... , n, (8.36)
v=lN,(8.37)
<=i /=1
fi = 1,, n, v = 1N, (8.38)
/=i
N nN
Y ^ и^^В^ ^ Ы i =(8.39)
v=l /=1V=1
Соотношения (8.34) — (8.37) определяют выполнение условий севооборота [Д1], соотношения (8.38), (8.39) обеспечивают выполнение минимально необходимых объемов производства. Через X = {х} обозначим множество всех допустимых планов.
На X определена векторная целевая функция (ВЦФ)
F to = <Ft (х), ... , Fk (х)Fm (х)),(8.40
где
^Ч to = 2 S S c^Xti» к = 1, ... , т, (8.41) v-1 1=1 /=1
максимизируемые критериальные функции, которые представляют либо объем выращиваемой продукции в соответствующих единицах (зерновых, протеиновых, рублях и т. д.), либо агрономические характеристики состояния угодий в зависимости от пары «культура i — ее предшественник /».
При m ^ 2 ВЦФ (8.40), (8.41) определяет собой паретовское множество X <= X [94, 101, НО].
В общем случае для выбора и принятия решения [Д39, 94, 101] требуется иметь определенное множество альтернатив (МА) из X. В отношении МА предъявляются, вообще говоря, противоречивые требования. МА должно быть возможно более представительным (в смысле представления образа F (X) в критериальном пространстве). В то же
время необходимо, чтобы МА было обозримым для лица, принимающего решение. В свете указанных требований не представляется возможным дать единое, приемлемое для «всех случаев жизни» определение МА. Ясно лишь, что процесс решения многокритериальной задачи предполагает нахождение некоторого множества представителей из X, в то время, как для однокритериальной задачи требуется обычно отыскание единичного представителя из X.
В настоящей работе рассматривается наиболее интересный с мате- матичёской точки зрения случай, когда в качестве искомого МА требуется найти полное множество альтернатив (ПМА). ПМА определяется как подмножество Х° г X минимальной мощности и такое, что
F (Х°) = р (X), где F (X*) = \F(x)/x £ X*}, X* с X.
Проблема состоит в том, чтобы для массовой задачи, определяемой соотношениями (8.34) — (8.41), построить достаточно эффективный алгоритм нахождения ПМА. Попытка разрешить эту проблему наталкивается на принципиальные вычислительные трудности, присущие задачам комбинаторной оптимизации [Д9, Д44, Д52, Д75]. С целью анализа этих трудностей и обоснования приемлемых методов их частичного преодоления рассмотрим представленную ниже двухиндекс- ную задачу. Содержательно она является задачей землепользования для отдельного хозяйства.
На множестве допустимых планов X определена ВЦФ
F(x) = (F^x), .... Fk(x), Fm(x)),(8.42)
гдеFk (х) = 5 S ^цХц, к = 1, ..., т,(8.43)
i=i /=1
максимизируемые функции, планы х 6 X — целочисленные п х п- матрицы х = || xti ||, которые имеют неотрицательные элементы и удовлетворяют условиям
лп
X ^о/ = S хи0> *о = 1> • • • > ^>(8.44)
/-1Z=1
л п
2 2 х^-М,(8.45)
Z=1 /=1
п
S utixtj>Bb 1 = 1, ... , п,(8.46)
/=1
М и Bi — заданные натуральные числа; иц ^ 0, /, / = 1, ..., п.
Условимся называть «задача (8.42) — (8.46)» («задача (8.34) — (8.41)») массовую проблему отыскания ПМА для целочисленной задачи с ВЦФ (8.42) — (8.43) (ВЦФ (8.40) — (8.41)) и условиями (8.44) — (8.46) (условиями (8.34) — (8.39)).
Оценка вычислительной сложности задачи (8.42) — (8.43). В самой общей постановке вопрос о вычислительной сложности задачи выглядит следующим образом. Пусть сформулирована массовая задача [Д9] или, в терминологии [105], дано семейство оптимизационных
задач вместе с доступным для методов источником информации о каждой решаемой задаче из этого семейства. Спрашивается, каковы потенциальные нижние границы вычислительной сложности, т. е. трудоемкости всевозможных методов для задач рассматриваемого класса? Точная постановка этого вопроса требует формализации понятий «алгоритм» и его «вычислительная сложность», «решение задачи» и т. д. Недостающие строгие определения используемых нами терминов и понятий читатель может найти в [Д9, Д44, Д76, 105]. Мы ограничимся в основном уточнением некоторых определений, отражающих специфику дискретной многокритериальной оптимизации.
Используя понятие «вычислительная сложность алгоритма», принимаем во внимание известный тезис Черча: любой алгоритм может быть выражен, как машина Тьюринга, и любая машина Тьюринга выражает некоторый алгоритм. В качестве меры вычислительной сложности алгоритма принимается время работы машины, в худшем случае как функции от размера входа. Термин «время работы» означает число тактов работы машины при преобразовании исходного слова в заключительное.
В качестве нижней оценки вычислительной сложности и нахождения ПМА рассматриваем сложность представления заключительного слова по окончанию работы алгоритма. Уточним смысл термина «представление» (слова). Особенностью сформулированной выше задачи является то, что всякий план х £ Х° своей структурой определяет значительный объем неформализуемых данных, связанных'с агрономическими, социальными, экономическими и другими факторами. Поэтому заключительным словом является искомое ПМА Х°, элементы которого должны быть перечислены явно вместе со значениями ВЦФ F (х) для каждого х С Х°. Таким образом, неприемлемым является представление ПМА каким-либо неявным способом, например, в виде высказывания «ПМА включает в себя все планы х, удовлетворяющие условиям (8.34) — (8.39)». Заметим, что задачи, для которых выполняется равенство Х° = X = X, в действительности существуют [108].
Из сказанного выше вытекает, что представление множеств Х° и F (Х°) на ленте машины Тьюринга потребует не меньше, чем | Х° | тактов ее работы, где | X | — мощность множества X.
Из определения ПМА вытекает следующая лемма, на которой базируется идея обоснования оценок мощности ПМА.
Лемма 8J. Какова бы ни была ВЦФ F (х), мощность ПМА совпадает с мощностью образа паретовского множества | F (X) | в критериальном пространстве.
Теорема 8.4. Существует задача (8.42) — (8.46), для которой при т^ 2 мощность ПМА | Х° | > (п\)Ч
Доказательство. Покажем сначала, что существует 2-кри- териальная задача (8.42) — (8.46), для которой |Х° | > (п!)2. Рассмотрим индивидуальную задачу (8.42) — (8.46), где
/ п\
А1==( 2), Bi = uti=l, I, /=1, п. (8.47)
Пары (i, /), представляющие собой индексы переменных хц, i, j = = 1,..., п, перенумеруем числами v = v (i, j),v = 1,2,..., n2. В соответствии с этими номерами в ВЦФ (8.42), (8.43) при т = 2 значения коэффициентов с^), к = 1, 2, определим следующим образом:
ДО Д2) n -(1)/о дох
Cq — q , Сц — Сц,(о .4о)
где Ro = qn* + 1 и q — произвольное натуральное число, превосходящее п2. Тогда согласно (8.43), (8.45), (8.47) и (8.48) получаем
/ п \
^i (х) + F2 (х) = I 2 ) R» для всех х^Х. (8.49)
Оценим мощность | X |. Через X* = {х*} обозначим множество всех планов из X, удовлетворяющих условиям:
каждая строка и каждый столбец в х* = || хц Ц содержит только один ненулевой элемент;
вектор а* = (а?а„)—некоторая перестановка элементов
п
2, ..., п, где al = ^ Xq.
/=1
При любом фиксированном а* имеем п\ матриц, удовлетворяющих условиям а) и б). Поскольку вектор а* можно выбрать п\ способами» то | X* | = (п!)2. Заметим теперь, что множество X \ Х° непусто, поскольку существуют планы х, которые хотя и не удовлетворяют условиям а), б), однако удовлетворяют условиям (8.44) — (8.46). Таким образом, получаем строгое неравенство
|Х|>(и!)2.(8.50)
Согласно теории представления действительных чисел систематическими дробями [Д41 ] из (8.48) вытекает, что для всяких двух различных планов х', х” 6 X будут иметь место несовпадения
Fi (х') =^ Fx (х"), Р2 (х') ^ Р2 (х").(8.51 >
При этом согласно (8.49) получаем: если Рг (х') >• Рг (х"), то Ра (х') < < Р2 (х"), и наоборот. Эти строгие неравенства с учетом (8.49) и (8.51) означают, что любая пара планов х' =# х" является векторно несравнимой по F (х) = Ц^ (х), Р4 (х)). Следовательно, X = X, т. е. согласно (8.50) | F (X) | = | X | > (п!)2, а поэтому с учетом леммы 8.1 получаем доказательство теоремы для т = 2.
Очевидно, соотношения X = X, | F (X) | > (п!)2 остаются в силе и при m ^ 3, если для к = 1, 2 значения <$ определены согласно (8.48), а для остальных к ^ 3 — произвольным образом. Отсюда с учетом леммы 8.1 теорема 8.4 доказана полностью.
Интересным является вопрос о максимальной мощности ПМА | Х° | при достаточно большом значении правой части Л4 условия (8.45). Есть основания предполагать, что нижней оценкой для максимума | Х° | служит величина <р (п, п) — максимальное количество вершин транспортных многогранников порядка п X п [43].
Приближенный алгоритм для 1-критериальной задачи. Рассмотрим задачу (8.42) — (8.46) в случае, когда ВЦФ (8.42), (8.43) состоит из одного критерия, т. е. при /тг = 1. Тогда по определению искомое ПМА является одноэлементным множеством, и решение задачи означает нахождение такого плана х, на котором критерий (8.43) достигает максимума.
Условимся называть «задача ЛП (8.43) — (8.46)» отыскание нецелочисленного плана х = || xtj ||, который максимизирует значение целевой функции (8.43) для А = 1 и удовлетворяет условиям (8.44) — (8.46). При этом требование целочисленности искомого плана х = || хц || заменяем на условие неотрицательности х^ ^ 0, t, / = 1, ..., п.
При практическом приближенном решении задач вида (8.42) — (8.46) хорошо зарекомендовал себя следующий простой метод, который условимся называть «алгоритм Агк Работа А) состоит из трех этапов, причем третий этап может применяться несколько раз.
Этап 1 — это решение однокритериальной задачи ЛП (8.43) — (8.46). Этап 1 реализуется с помощью любого доступного пользователю метода решения или стандартной, или 2-индексной задачи ЛП. Его результатом является некоторый, вообще говоря, нецелочисленный план х^ = || х//1|, удовлетворяющий условиям (8.44) — (8.46). Если все элементы матрицы х(1> целочисленны, то алгоритм Аг заканчивает работу. В противном случае следует перейти к этапу 2.
При описании следующих этапов применительно к какому-либо плану х(г) = || х$ ||пхп транспортной задачи или задачи (8.43) — (8.46) будем использовать обозначения: ut = ut (x(r)) (и; = ^ (^tr))) — минимум (максимум) среди тех элементов иц, / = 1, ..., п, для которых в г-й строке плана х значения х^-^О; акп = ^Г» •••> аР* •••> ^п) — вектор поставки и Ь<п = ф\г\ ..., Ьр, ..., Ьр)—вектор потребления транспортной задачи порядка /г х ^ причем такие, что Ьр = ар, / = 1, ..., п; А',л = t. “и^ - S<; ^п = I аГ" - аТ |; Z = {1, 2, ...» п); /? (/^ - /=1
множество всех индексов 1^1, для которых АГ <0 (0 ^ А*/1 < uty Z® = 1 \ у?> и /?); А!^ = S ^^ м® = М-М»\ Рг = S а'Г^-
— М®; [а] (]а[)—ближайшее к а целое, не большее (не меньшее) числа а. По определению плана х(1) множество Z? = 0.
Этап 2 начинается с формирования вектора а2 следующим образом. Для каждого i С /i1 полагаем значение а® = Ja^'l и вычисляем Аф = = М — М^, где М^ — 5 а®- Далее, определив множество Zf* =
= / \ Zi0 и разность р2 = £ а*/1 — М^, пропорционально значениям ^щ} разбиваем р2 на п® — | Z*2 | величин d®, I € Zp. Искомые значения компонент a®, I 1®, получаются путем округления до подхо-
дящего (ближайшего большего или меньшего) целого соответствующих разностей а^— d®, i^I®. При этом требуем выполнения равенства
юр
Завершается этап 2 решением транспортной задачи с целевой функцией (8.43) при к = 1 и с векторами поставки-потребления а^ и Ь^ = = (Я. Если по окончании решения этой задачи полученный план х^ = = ()^ || удовлетворяет условию (8.46), где xq = х^, i, j = 1, ..., п, то алгоритм Av заканчивает работу с результатом х(2), который для решаемой задачи является допустимым целочисленным планом из X. Если для хЯ условие (8.46) не выполняется, то следует переход к этапу 3.
Этап 3 может, вообще говоря, применяться многократно. Суть его состоит в том, что для полученного на предыдущем шаге плана транспортной задачи х(и корректируются векторы поставки, потребления, после чего для скорректированных целочисленных векторов а^-Н) и b^W решается новая транспортная задача.
Опишем работу этапа 3, когда исходными данными для него служит целочисленный план транспортной задачи хг, г ^2, с целочисленными векторами аР, bv\ Вначале формируются множества /?, /г\ /Э и вектор а(г+1), компоненты которого вычисляются следующим образом. Для всех i С Ip значения аТ^ = ар. Для каждого I £ /? значение а^^ = аР + JA^F1!, «i = и^х^). Далее вычисляем Мр^ = = М -Мг^—М^, где Л4(Д1 = £ аР, М?гЛд = 2 аР> и разность юрю®
Рг+1 = S аТ — Л1^1. После чего пропорционально значениям АГ«7\ юр
и^щ^у разбиваем целое р2 на пр = 11р | величин d^4"0, i^lp. Искомые значения компоненты а(/+п получаются путем округления до подходящего (ближайшего большего или меньшего) целого соответствующих разностей аР—^г4"1), 1^1Р, что и завершает формирование вектора а(г+1). При этом требуем выполнения равенства ^ ар = Л4^+1).
юР
Вектор Ь<Г^Х) = (&Г+1), ..., Ь^х\ ..., bt^ совпадает с вектором а(г+1), т. е. b^u = ак[^х\ j = 1, ..., п.
Завершается этап 3 решением транспортной задачи с векторами а(г+ь? ^(г+d и целевой функцией (8.43) при к = 1. Если по окончании решения этой задачи полученный целочисленный план х(Л+1) = ||х//+1)|| не удовлетворяет условию (8.46), где xq = х^+1), t, / = 1, ..., л, то осуществляется повторное применение этапа 3, но уже по отношению к матрице х(г+1).
В процессе последовательного применения этапа 3 алгоритм Лп варьируя векторы а(п, Ь(п, строит оптимальные целочисленные планы транспортной задачи х^п, г = 3, 4, ..., /, и заканчивает работу при не- 276
котором г = I в одном из двух случаев: либо когда план х^ = Ux^ji удовлетворяет условию (8.46), где хц = х^-, I, / = 1,..., и,либо в случае, когда в начале шага / полученный вектор а^ совпадает с построенным ранее вектором ^, 3 ^ г < I. Последнее означает безрезультатное окончание работы алгоритма Av
относительногоотносительногоПостроение плана х1, удовлетворяющего условию (8.46), означает, что для 1-критериальной задачи (8.42) — (8.46) получено, вообще говоря, приближенное решение x<Z) ^ X с апостериорной оценкой
относительного
относительного
уклонения е от искомого оптимума: е ^
Ft (^Ft (^-, где х(1) — оптимальный план задачи ЛП (8.43) —
Ft (^
Ft (^
(8.46), т. е. результат работы этапа 1.
Для возникающих на практике реальных задач землепользования алгоритм Аг находит план хи^ как правило, ценою одно- или двукратного применения этапа 3 (/ ^ 4), при этом е < 0,05. Последнее объясняется тем, что у индивидуальных задач, построенных на реальных исходных данных, оптимальные планы обладают определенной устойчивостью в том смысле, что относительно небольшие изменения правых частей условия (8.46) незначительно отражаются на структуре оптимальных планов задачи ЛП (8.42) — (8.46). Однако этот факт остается недоказанным. Поэтому алгоритм Ат нельзя отнести к семейству так называемых алгоритмов с оценками эффективности, т. е. априорными оценками точности, трудоемкости, а также области результативной применимости [134].
Алгоритмы с оценками эффективности. Приведем описание алго- горитма Л2 для задачи (8.42) — (8.46), используя при этом обозначения, введенные для алгоритма Av Отличительная особенность алгоритма Л2 в том, что он использует процедуру разложения допустимого плана на циклы и процедуру синтеза допустимого множества циклов. Обозначим их соответственно лх и л2.
Процедура л1е Пусть дан какой-либо допустимый план х = = |! х*/1| задачи ЛП (8.42) — (8.46), в котором элементы главной диагонали — нулевые: хц = 0, i — 1, ..., п. На первом шаге выбираем в х какую-либо строку ц и в ней отметим звездочкой * первый по порядку ненулевой элемент х^. На втором шаге в строке z2 отмечаем звездочкой первый по порядку ненулевой элемент Хц,3, идем в строку i3 и начинаем осуществлять шаг 3 — поиск в ней первого по порядку ненулевого элемента. Продолжая этот процесс, мы на некотором шаге р ^п придем в некоторую строку ц повторно и отметим звездочкой первый по порядку ненулевой элемент X/ ^+1, 1 ^ к < р. После этого снимаем звездочки со всех тех элементов, которые мы отметили до того, как первый раз попали в строку ik. Пусть d = min хц — минимум среди отмеченных звездочкой элементов вх*. Через у^ = || yty J обозначим п X ^-матрицу, в которой укц = d, если хц отмечен в х звездочкой.
и ^7 = 0 — в противном случае. По построению каждая строка и каждый столбец матрицы у^ содержит не более одного ненулевого элемента, равного d. Причем, если в какой-либо строке i0 сумма ее элементов п п
S Ум Равна d, то и в столбце 10 сумма его элементов У, уий равна d, и /=1 /=1
наоборот, т. е. матрица у(1) удовлетворяет условию вида (8.44). По определению индексы ненулевых элементов матрицы ytx\ или, что то же самое, индексы отмеченных элементов в х*, образуют циклическую подстановку
. . + U (iK, iK+t, ... , ц) (8.52) *К-Н ^К+2 • • • ^К/
степени I— К + 1. Однократное применение процедуры лх заканчивается построением матрицы укХ\ которую для краткости условимся называть циклом.
При повторном применении процедуры л: из х вычитаем у(1). В результате получим матрицу х1э которая удовлетворяет всем условиям вида (8.44) — (8.46), если в них величину М заменить на М — (/ — — К + 1) d. При этом в хт по сравнению с х количество ненулевых элементов по крайней мере на единицу меньше. Применив к хт процедуру л1> придем к новому циклу у(2). Вычитая из хА цикл у, получим матрицу х2, в которой количество ненулевых элементов по крайней мере на один меньше по сравнению с хР
Нетрудно видеть, что процедура лх разлагает на циклы всякую матрицу х = || xij |, Хц ^ 0, 1, / = 1, ..., п, удовлетворяющую условиям (8.44) — (8.45).
Пусть N = N (х) — количество отличных от нуля элементов матрицы х. Согласно определению л: существует натуральное N ^ N такое, что после У-кратного применения процедуры л^ получаем разложение матрицы х на циклы:
X =/’+ у® + ••• + А (8.53) При этом, если исходная матрица х содержит ненулевые элементы на главной диагонали, то каждому хи + 0 сопоставляется цикл в виде некоторой матрицы tfrX = ||^/||, содержащей единственный ненулевой элемент у^) = х//. В этом случае подстановка (8.52) имеет вид
Для оценки значения N воспользуемся основной теоремой ЛП и теоремой о структуре координат угловой точки многогранника задачи ЛП (8.42) — (8.46) [Д55]. Поскольку план х принадлежит множеству базисных опорных планов и система (8.44), (8.45) содержит не более, чем п линейно независимых соотношений, то с учетом (8.46) матрица х включает не более, чем 2п отличных от нуля элементов: 278
N ^ 2n. Аналогично, если x? — оптимальный план задачи с целевой функцией (8.43) при К = 1 и условиями (8.44), (8.45) («задача ЛП (8.43) — (8.45)»), то х? содержит не более, чем п отличных от нуля элементов. Таким образом, имеет место следующая лемма.
Лемма 8.2. Справедливы следующие оценки для количества циклов разложения (8.53): если х = х, то N ^ 2м; если х = х\ то N ^ п.
Процедура л2. Она осуществляет синтез достаточного множества циклов (ДМЦ). Вначале берем матрицу м = ||м^|| из условий (8.44) — (8.46), и для каждой строки i = 1, ..., п, вычисляем максимум и( = шах иц. Через и = || иц || обозначим п X м-матрицу, в _/=1п_
которой иц = оь если иц = ии и иц = 0 — в противном случае. Далее строим п X м-матрицу w = || wti ||, где юц = JB^T"1!, если иц = = иц и юц = 0, если иц = 0. Не теряя общности, можно предположить, что в w отсутствуют нулевые строки. Для матрицы w формируем последовательность
^. ^ • • • ^ t% ^ • • • ^ ^с^(8.54)
где wt = max Фц. На этом подготовительная часть процедуры л2за- /=1п
канчивается и следует переход к построению циклов по аналогии с работой процедуры лп однако с некоторыми отличиями от лх. В процессе работы л2 всякий раз после получения очередного цикла элементы последовательности (8.54) корректируются и упорядочиваются по неубыванию заново. Следующий цикл начинается с той строки матрицы [у, номер которой совпадает с индексом первого элемента скорректированной последовательности (8.54).
При построении первого цикла z^X) = | 2ц |, /, / = 1,..., м, на первом шаге в строке Ц отмечаем звездочкой * первый по порядку ненулевой элемент wix£1. На следующих шагах отмечаем звездочкой элементы фщИ w^^ •••, ^цсцл по аналогии с процедурой лР Отличие от лх возникает на некотором шаге I + 1, когда приходим в строку £/4-1 = = 1к> 1 ^ К ^ /, которая уже содержит отмеченный элемент ^zz/4_r Возможны два случая.
Если i/+i =; iv то в матрице w приравниваем к нулю все неотмеченные элементы, а все отмеченные заменяем на число ^,. Полученную п X м-матрицу обозначаем z(1) = || 2ц || и переходим к построению матрицы и/1).
Если t/.^ = ц, то снимаем метку * с элемента twzzz+1 и в строке it ищем такой ненулевой элемент ^z/z, что строка /z не содержит отмеченного элемента. Если такой элемент Wt^ найдется, то отмечаем Wi^ звездочкой, идем в строку h и продолжаем расстановку меток согласно процедуре лх до тех пор, пока снова не придем в строку, содержащую отмеченный элемент. Если же в строке ц все ее нулевые элементы Wit/ таковы, что каждая из строк / содержит отмеченные элементы, то отмечаем звездочкой нулевой элемент wil4. После этого строим матрицу z^ так, как указано выше для случая ii^ = к с тем лишь
отличием, что в матрице ^ нулевой элемент Wi^ заменяем на число ну^ и переходим к построению матрицы оу(1 .
В матрице ну называем отмеченными те строки, которые содержат отмеченные элементы. Матрица ^(1) получается из матрицы ну путем вычитания числа нуц из каждого ненулевого элемента отмеченных строк. При этом, если имеет место второй из рассмотренных выше случаев (i^x^i^, то в строке iz из ненулевых ее элементов осуществляется не вычитание числа wto а замена каждого из них на число ХВц — — w^Ui^) v^'l, где величина Btl берется из условия (8.46). Неотмеченные строки остаются без изменения. Полученную матрицу обозначаем оХ1> = || ^ ц, f, / = 1, ..., п.
Матрица ^ имеет такую же циклическую структуру, как и матрица у(1), построенная с помощью лР Поэтому z(1) называем циклом.
После получения г^ и ^(1) строим последовательность из ненулевых элементов
где Wj = max Wj /. В этой последовательности количество элементов Г /=1, Г
п* < л, так как в о/0 кроме строки iT могут оказаться еще некоторые строки.
Процедуру л2 применим повторно, но уже к матрице мХ1), начиная со строки /р В результате получим цикл z^ и матрицу пи^\ содержащую по крайней мере на одну нулевую строку больше по сравнению с w^. Процесс повторного применения процедуры л2 заканчивается, как только будет построена такая пара z^\ пу^\ в которой матрица ww состоит только из нулевых элементов.
В результате не более, чем л-кратного применения процедуры л2 получим последовательность циклов
z^\ ... , z^, ... , z^\ v^n,(8.55)
которая и представляет собой искомое ДМЦ. Сумму всех матриц ^ = || г(//1| из ДМЦ (8.50) обозначим г° = || z?/||, где zz/ = 2 ^}* ^=1
z, / = 1, ..., л.
Описанию алгоритма Л2 предпошлем ряд новых понятий. Условимся называть /^-планом всякий оптимальный план р0 = || р?7 Ц задачи с максимизируемой целевой функцией
Л(Р)=2^Х(8.56)
Z=1 /=1 и условиями пп
5 Рм = 2 Ри., i = 1П,(8.57)
/=1Z=1
2 2р</ = Я> ^>0.(8.58)
z=i /=1
Через ^r обозначим множество всех /?-планов, определенных согласно (8.56) —- (8.58). Легко доказывается рассуждением от противного следующая лемма.
Лемма 8.3. Множества ^r для различных R равномощны и совпадают с точностью до мультипликативных констант, т. е., если дана пара положительных R, R', то для всякого у0 С ^r существует R’~ план р' 6 ^r- такой, что р' = -^- р.
Справедлива также и такая лемма.
Лемма 8.4. Для всякого положительного R множество ^r содержит R-план, состоящий из единственного цикла у0 степени у0 п.
Доказательство. Применим к произвольному /?-плану р* £ ^r процедуру Лх и разложим его на циклы y^r\ r= 1, ..., /, которые проранжируем по невозрастанию удельной величины /х (у(п) = —L. Рг (у(% где у(г) — степень цикла у^г\ т. е. количества ненулевых элементов в матрице у^х
k^>k^> ••• >k<Ak^>k^> ••• >k<A(8.59)(8.59)
k^>k^> ••• >k<A
k^>k^> ••• >k<A
(8.59)
(8.59)
Построим п х n-матрицу р(1) = || р^ || следующим образом: рУ = Rh14, если в цикле у^ = || yVp II элемент у^) > 0, и р$ = — О — в противном случае. Нетрудно убедиться, что р(1) является /?-планом, т. е. р(1) С ^r* С учетом леммы 3 из выражения Рг (у*) =
= £ ^х ^г^ получим, что если в последовательности (8.59) имеется
хотя бы одно строгое неравенство, то Рг (р(1)) > Рг (р*), что противоречит определению /?-плана р*. Таким образом, все члены последовательности (8.59) равны между собой. Тогда всякая матрица, построенная по правилу р(// = R/^r\ является /^-планом, если в цикле у(г> элемент yV) > 0, и р^ = 0 — в противном случае. Действительно, каждая из матриц р<г> =0 удовлетворяет условиям (8.52), (8.53) и при этом имеет место равенство РТ (р(1)) = Рг (р(20 = ... = Рг (р^). В завершение доказательства леммы 8.4 заметим, что каждая из матриц р(И является циклом и по определению степень всякого цикла не превосходит п.
Примечание 1. Доказательство леммы 8.4 конструктивно, т. е. определяет собой метод нахождения /?-плана, состоящего из одного цикла.
Приведем описание алгоритма Л2, предназначенного для построения целочисленного плана задачи (8.42) — (8.46). Алгоритм состоит из пяти этапов.
процедуры л2. Вычислим значение R = М — ^ ^ Аь z=l /=1процедуры л2. Вычислим значение R = М — ^ ^ Аь z=l /=1Этап 1. Построим ДМЦ (8.55) и матрицу г° = || г?/1| с помощью
процедуры л2. Вычислим значение R = М — ^ ^ Аь z=l /=1
процедуры л2. Вычислим значение R = М — ^ ^ Аь z=l /=1
Этап 2. Решим задачу ЛП (8.56) — (8.58) с целью нахождения некоторого 7?-плана р*, разложим последний на циклы с помощью
процедуры лт и построим на основе леммы 8.4 и примечания 1 /?-план р°, представляющий собой цикл степени у0.
Примечание 2. Если р° — целочисленная матрица, то после этапа 2 следует переход к этапу 5, при этом считается, что у — пх «-матрица с нулевыми элементами. В противном случае следует переход к этапу 3.
Этап 3. Построим на базе р°=||р®/|| целочисленный цикл р = = Цр1/| степени у0 согласно формуле рц = [р?,], I, / = 1, .... п; вы- п п~
числим целые Ro = 2 S Р°/ и у = 7?— /?0.
1=1 /=1_ _
Этап 4. Построим булеву « х «-матрицу у = |у//|, которая П ~п _
удовлетворяет условиям: 1) 2 Уа^^* i— Ь п> 2) S Уч^Х, / = 1, ..., «; 3) £ yUi = £ уи„ i0 = 1, .... «; 4) 5 S Уи = Т. /=11=\,=1 /=1
матрица у максимизирует значение FT (у) = £ X сиУа на ^, гДе i=i /=1
Y — множество всех булевых п X n-матриц, удовлетворяющих условиям 1) —4). Под обозначением у будем подразумевать приближенное решение этой задачи, получаемое в два подэтапа. Сначала на матрице || ^.у || строится цикл с^ ,d^ , ..., ^°л, который на каждом шаге, кроме последнего, строится по известному принципу «иди в самый дальний». Затем каждый из у элементов этого цикла заменяется на единицу, а оставшиеся п? — у элементов заменяются на нули.
Этап 5. Построим целочисленный план задачи (8.42) — (8.46) в виде суммы
х = г° + р°+у.(8.60)
Алгоритм Л2 заканчивает работу в двух случаях: либо при получении суммы (8.60), либо по окончанию этапа 1 окажется, что величина R имеет отрицательное значение. В этом последнем случае алгоритм Л2 завершает работу безрезультатно.
п
Примечание 3. Неравенством ^ р, где р = X Н/г — сумма эле-
Г=1
ментов последовательности (8.54), является необходимым для разрешимости целочисленной задачи (8.42) — (8.46), т. е. для того, чтобы множество планов этой задачи X было непустым. Достаточным условием того, чтобы найденное с помощью алгоритма Л2 множество планов было непустым, является неравенство М ^ 2р. Можно отметить, что возникающие в практике сельскохозяйственного землепользования конкретные задачи, как правило, удовлетворяют этому неравенству. Добавим, что равенство р = М по существу означает «отсутствие
оптимизации», поскольку в этом случае все допустимые планы по необходимости должны быть оптимальными.
Условимся называть /?Т-вектором всякий вектор (7?р ..., Rh ••• т
.... Rf) с неотрицательными компонентами такими, что У, R( = R, п п
7>1. Через p(^z) ^Hpz/Ц, i, j = 1, .... п, и (р (/?<)) = ^ S( cJ/P;/ обозначим соответственно /?-план при R = Rt и значение ЦФ Рг (х) на этом плане. Тогда в этих обозначениях из леммы 3 получаем следствие.
Следствие 1. Для всякого /?Т-вектора /?-план р (R) можно пред- т
ставить в виде суммы р (R) = 5 Р №)• При этом значения целевых /=!
функций Рг (х) на этих планах удовлетворяют равенству Рг (р (R)) =
= S Л (р №))•
(=1
В силу следствия 2 и леммы 8.3 справедливо равенство 7
FT1 (Р (Я)) S Fi (Р ГО = № + • • • + Я/ + • • • + Rt)/R- (8.61)
По определению /?-план представляет собой оптимальный план задачи ЛП (8.56) — (8.58). Опустив требование оптимальности (8.56), можно говорить о допустимом /?-плане. Для какого-либо Rt > 0 допустимым Rrпланом будем называть всякую п X n-матрицу р* (Rt) = = || p*z ||, которая не содержит отрицательных элементов и удовлет- п п
воряет условиям вида (8.57), (8.58) при R = Rt = 2 S Ри- Например, <=i /=1 '
матрицы х, 2®, р® и у в (8.60) представляют собой допустимые /?гпланы, определенные для следующих значений R( : Ro = М, Rt = р, R2 = = М — р — L, R3 = L. Очевидно справедлива следующая лемма.
Лемма 8.5. Для всякого допустимого Rt-плана р* (Rt) справедлива оценка Рг (р* (/?<)) PY (р (R^), где р (Rd — R-план, определенный согласно (8.56) — (8.58) для R = Rt.
Заметим, что по построению для матриц г®, р® и у выполняются соотношения
Р^р^-РАрМ,(8.62)
L^n^p,(8.63)
Рг (х) = Рг (г«) + 71 (Р°) +Рг (У\(8.64)
Здесь равенство (8.62) означает, что допустимый /?2-план р° представляет собой /?-план для R = М — р — L.
Перейдем теперь к обоснованию асимптотических свойств алгоритма А 2, для чего сформулируем одно замечание, относящееся к исходной содержательной постановке исследуемой нами задачи. На
практике переход от задачи землепользования для одного хозяйства к задаче землепользования для региона означает, что размерность п (количество возделываемых культур) возрастает мало по сравнению с величиной М (площадь всех пахотных угодий). В соответствии с этим определим асимптотику однокритериальной задачи (8.42) — (8.46) следующим образом. Величины р и М представим как растущие от п функции: Л4 = М (п), р = р (п). Введем в рассмотрение сколь угодно медленно растущую от п функцию ф (и), lim ф (и) = со. Считая, вообще говоря, зависимыми от п значения Ui^ с$, t = 1, ..., п, обозначим через 8 = 8 (и) относительную погрешность плана х по сравнению с оптимумом х°: 8 = 1 — Рг (х) / Ft (х°). Условимся говорить, что для некоторой области значений исходных данных алгоритм является асимптотически точным, если Нт е = 0 при выполнении условий, П-юо
определяющих эту область. Справедлива следующая теорема.
Теорема 8.5. При выполнении неравенства М ^ рф (п) алгоритм Л 2 является асимптотически точным.
Доказательство. Пусть х° — оптимальный план однокритериальной задачи (8.42) — (8.46). Согласно лемме 8.5 справедлива оценка
(8.65)(8.65)ЛИ<Л(р«
(8.65)
(8.65)
где р (М) — /?-план задачи ЛП (8.43) — (8.46) при R = М. Согласно (8.62), (8.64) и (8.65) имеем"е - 1 — FT (х) / ^ (х°) ^ 1 — Л (р №2))/ / Fx (р (М)), откуда в силу соотношений R2 = М — р — L, (8.63) и (8.61) получаем
М — u — L8^1пмМ — u — L8^1пмР + пМР + пМ(8.66)(8.66)
М — u — L
8^1п
м
М — u — L
8^1п
м
Р + п
М
Р + п
М
(8.66)
(8.66)
Оценку (8.66) с учетом неравенства (8.63) и условий теоремы можно продолжить следующим образом:^—> 0 при п -> оо.
Теорема 8.5 доказана.
Примечание 1. Относительную погрешность 8 можно оценить при более широких предположениях, чем в теореме 8.2. Если Мир удовлетворяют условию М ^= ср, где на величину с накладывается лишь требование ограниченности снизу: с ^ 2, то из (8.66) и (8.65) получим -1 . п2
8^ .
С срс
Алгоритмы линейной свертки. Рассмотрим сначала задачу о представителе ПМА, т. е. проблему выделения из X отдельного представителя ПМА или, в терминологии [НО], парето-оптимального плана х g X. Практически без существенных изменений для этой задачи применимы алгоритмы Аг и А2. Отличие от представленного выше их описания составляет лишь наличие предварительного этапа, суть которого сводится к замене критерия Рг (х) на максимизируемый кри-
тер ий
т п пto = V V V W$xih(8.67)
/г=1 Z = 1 /=!
гдеХ = (Хь ..., X*,..., Х^) — вектор со строго положительными компонентами Хк > 0, k = 1, ...,m, назначаемый пользователем алгоритма.
Сформулированная целочисленная задача о представителе ПМА, определяемая соотношениями (8.44) — (8.46), (8.67), означает не что иное, как скаляризацию дискретной многокритериальной задачи (8.42) — (8.46) с помощью линейной свертки критериев [94, 101, НО] F(^ (х) = T^XfeFfe (х). Отсюда алгоритмы Аъ Л2 условимся называть алгоритмами линейной свертки (АЛС), если они используются для нахождения плана х, оптимального по целевой функции (8.67). Как известно [94, 101, 110], построенный таким образом план х является па- рето-оптимальным относительно ВЦФ (8.42), если х — точное решение целочисленной задачи ЛП с целевой функцией (8.67) и условиями (8.44) — (8.46).
Известно [НО], что многокритериальная задача ЛП разрешима в любой нецелочисленной постановке в следующем смысле. Для всякого образа f £ F (X) существует такой вектор X(f), что при X = X(f) значение свертки F^ (х) достигает максимума на некотором парето-оп- тимальном Xi £ X. Причем если существует другой план х* такой, что F (х*) = F (х^), то при X = Х(^ значение этой свертки достигает максимума и на х*. Таким образом, разрешимость линейных задач означает следующее. Для каждого образа f £ F (X) с помощью АЛС может быть найден хотя бы один прообраз х £ X такой, что F (х) = /, т. е. всякое конечное подмножество ПМА можно выделить из X с помощью какого-либо точного АЛС при надлежащем задании соответствующего множества векторов X.
Примечание 2. Разрешимость с помощью АЛС не гарантирует, что с помощью одного и того же АЛС можно найти все эквивалентные по F парето-оптимальные планы. Иными словами, если с помощью определенного АЛС выделено из X некоторое ПМА Х°, то нет гарантии, что с помощью этого же алгоритма будет выделен из X некоторый па- рето-оптимальный план х £ (X \ Х°).
Если на многокритериальные линейные задачи наложить условие целочисленности, то, вообще говоря, получаем такие индивидуальные случаи этих задач, которые неразрешимы с помощью АЛС. Здесь неразрешимость означает существование такого образа f £ F (X), для которого невозможно определить с помощью какого-либо точного АЛС хотя бы один его прообраз х 5 X, F (х) = /, т. е. невозможно найти ПМА с помощью АЛС. Справедлива следующая теорема.
Теорема 8.6. Если т^ 2, то для всякого /г ^ 3 существуют индивидуальные задачи (8.42) — (8.46), неразрешимые с помощью АЛС.
Доказательство. При некотором п^ 3 рассмотрим следующую двухкритериальную задачу (8.42) — (8.46): М = п; для i = = 1, ..., 3 значения иц — Bt = ц j = 1, ..., п; для всех i = 4, ..., п значения щ,- = Bt = i, если j = I, и Щ/ = 0 — в противном случае; для I, / = 1, 2, 3 значения с^ определены следующим образом:
С)3 ~ ^21 — ^32 = ^» К = L 2,
^> = ^ = ^>=1, й = 1, 2,(8.68)
4? ^sk, i=l, 2, 3, к= 1, 2,
где гг = 4, г2 = 0, Sj = 0, s2 = 4; для i = 1, 2, 3, / = 4, ..., п и для I = 4, ..., п, j = 1, ..., п значения 4/ = £?/ = 1. Множество X планов этой задачи состоит из шести планов х^, t = 1, ..., 6, каждый из которых представляет собой булеву п X /г-матрицу. Эти подматрицы совпадают между собой по последним п — 3 строкам и последним п — 3 столбцам: х« = 1, г = 4, ..., п, x^j = О — для остальных элементов этих строк и столбцов, / = 1, ..., 6. Таким образом, планы х^ С Я различаются между собой только 3 х 3-подматрицей, образованной строками i = 1, 2, 3 и столбцами / = 1, 2, 3. В дальнейшем планы х1 будем идентифицировать этой подматрицей.
Непосредственной проверкой убеждаемся, что паретовское множество X содержит все планы х<^ g X, за исключением плана х<6) = = II )$ Ц , в котором Х12 = х^ = Хз? =1, а остальные элементы указанной 3 X 3-подматрицы равны нулю.
Индексы / — 1 и / = 2 присвоим следующим парето-оптимальным планам: х(1) = || х?/1|, где х(1з = хг? = Х32 = 1, а остальные х$ = О, I ^ Ь /^ 3; х(2) = (х^Ц, где х$ = 1, I = 1, 2, 3, а остальные х$ = О, 1<Л /<з.
Очевидно, что при любом векторе X =(Х1# Х2), где Хг > О, Х2 > О, Хх + Х2 = 1, имеем max (2l1F1 (х(0) + Х2Г2 (хю)) > п + 3. Вместе с тем, /=1,2
при любом векторе Х = (Х1$Х2), Х1 + Х2=1, справедливы равенства 4^1 ^ + Х2Р2 ^й) == ^ (и + 2) + Х2 (п + 2) = п + 2, t- 3, 4, 5. Из этих соотношений следует, что с помощью АЛС парето-оптимальные планы x(Z), t = 3, 4, 5, найти нельзя.
Примем во внимание тот факт, что ПМА Х° по необходимости должно включать в себя х(1), х<2) и один из планов x(Z), t = 3, 4, 5, так как в критериальном пространстве образ F (X) состоит из следующих трех точек: F (х^) = (и + 9, п — 3), F (х<2>) = (п — 3, п + 9), F (х<'>) = = (п + 2, п + 2), t = 3, 4, 5. С учетом леммы 8.1 получаем | Х° | = = | F (X) | = 3.
Из приведенных рассуждений вытекает, что с помощью АЛС можно найти не более двух планов множества X, в то время, как мощность 286
ПМА равна трем. Полученное противоречие доказывает теорему 8.6 для случая т = 2.
Полное доказательство теоремы 8.6 получаем в том случае, если для всех к = 3, ..., т положим с^ = с®.
Очевидно, что в результате применения какого-либо точного АЛС к задаче (8.42) — (8.46) получим непустое подмножество ПМА. Тогда в свете доказанной теоремы 8.6 актуальным является вопрос: какие планы гарантированно выделимы из X с помощью АЛС. Для ответа на этот вопрос рассмотрим такую постановку многокритериальной задачи, когда критерии Fk (х), к = 1, ..., т, упорядочены по важности (и перенумерованы) так, что каждый предыдущий несравненно важнее, чем все последующие. Тогда говорят о лексикографической задаче оптимизации [Д501. Суть ее в том, чтобы добиваться сколь угодно малого приращения более важного критерия за счет сколь угодно больших потерь по всем остальным, менее важным критериям.
Нам потребуются дополнительные обозначения и определения [Д49].
Пусть В = (Р) — множество всех ml перестановок чисел 1, ..., т. План х' £ X называется лексикографическим оптимумом (ЛО), если в В найдется такая перестановка Pi = къ .... кт, что для всякого х* £ X выполняется одно из двух условий: a) Fk (хе) = Fk (х'), к — = 1, ..., т; б) существует / £ (1, ..., т) такое, что Fkl (х') > Fkl (х*) и Fkf (х') = Fkr, г = 1, .... I — 1.
Пусть Xiex — множество всех ЛО, определенных для всех Р € В. Лексикографическое множество альтернатив (ЛМА) Xiex = Х° П П Aiex — это минимальное по мощности подмножество Х?ех £ Xiex такое, что F (Х°ех) = F (Xiex). {т
Х:Х=(Х1, ..., Xm), £ Х4 = 1, Xt>0, 6=1
к = 1, ..., т\; х(К} — план, удовлетворяющий условию В (х<Х)) = maxB(v);
X (А*) = (х<« : X 6 A*}, A* s Аот. Будем говорить, что проблема нахождения ЛМА рассматриваемой задачи разрешима с помощью АЛС, если для всяких значений параметров этой задачи найдется множество А* с Ат, удовлетворяющее условию F (X (А*)) = F (Xiex).
Для доказательства разрешимости проблемы нахождения ЛМА используем следующие обозначения: ск = 4 max Fk (х), к = 1т;
Хр — множество всех ЛО данной задачи для случая, когда критерии Fk (х) из ВЦФ (8.42) представлены в порядке убывания их относительной важности согласно последовательности Р, р £ В; Pi = 1m. По определению для всякого Р С В множество Хр ^ 0 и Ц Хр =
Р€В
= Xiex. Рассматриваемую задачу называем целочисленной, если значения всех ее параметров целочисленны.
Теорема 8.7. Проблема нахождения ЛМА целочисленной задачи (8.42) — (8.46) разрешима с помощью АЛС.
Доказательство. Для tn = 1 теорема 8.7 очевидна. Действительно, в этом случае имеем: Х?ех = Xй, Xiex = X, | Х°| = 1, причем X (Х°) представляет собой множество всех оптимумов (один произвольный оптимум) однокритериальной задачи, и АЛС — это точный алгоритм нахождения одного оптимума этой задачи.
к\—1к\—1Рассмотрим /и 25$ 2, выберем какой-либо план хг £ Хр, и вектор X* £ Ат, удовлетворяющий условию
к\—1
к\—1
^ = П cz , к = 2, ..., т, Л* = 1 — S ^.(8.69)
(8.70)(8.71)(8.70)(8.71)Доказательство теоремы 8.7 для выбранного т проведем рассуждением ют противного. Пусть некоторый АЛС, используя указанный вектор X*, выделил план х* £ X такой, чтох* £ Хр,, то есть х* удовлетворяют условиям: существует г ^ (1, ..., т— 1), для которого выполняются соотношения
(8.70)
(8.71)
(8.70)
(8.71)
Fk (х*) = Fk (х1), 6= 1, ...» г—1,Fr (х*) < Fr (х^,
и при этом для некоторого подмножества Lt s (г + 1, ..., т\ имеем
(8.72)(8.72)Ffc (х*) > Fk (xj, к € Ln
(8.72)
(8.72)
FkW^Fk^, k^L,, L2 = ({г + 1mlXLa. (8.73)
(8.74)(8.74)Рассмотрим разностьРассмотрим разностьTo, что план x* найден с помощью АЛС при X = X*, означает выполнение неравенства
(8.74)
(8.74)
Рассмотрим разность
Рассмотрим разность
А = ^х*' (xj - F0^ (х*)) ( fl Хк V = Ar + £ А» + S А»,
гдегдек\— 1к\— 1kQLt k£L2
где
где
к\— 1
к\— 1
А» = ( П сД (Fk(X1) — Fk(x*)),\Z=r+l /
и учтено, что в силу (8.70) значения А* = 0, к = 1, ..., г.
В силу условий теоремы 8.7 (целочисленность) из неравенства (8.71) имеем Аг^1, а из (8.72), (8.73) получаем оценки У А6^0,
S Ал < 0, в результате чего можем записать к^
к^Цк^Цtk = \r— ЦД, >1— 2 4г~*>0,
к^Ц
к^Ц
к=г-Н
что противоречит (8.74). Таким образом, для всякого р £ В с помощью АЛС можно найти хотя бы один план х^ £ Х^ для чего в свертке (8.67) вектор X достаточно определить согласно (8.69).
Определяя свертку (8,67) согласно (8.69) последовательно для каждого |3 ^В, в результате ml-кратного применения АЛС получим множество X = {хр ! р g В), для которого, очевидно, имеет место включение Х^ех X. Если для каждого элемента / образа F (X) = {/} оставить лишь по одному представителю xh F (х^ = ^ то получим искомое ЛМА Х?ех. Теорема 8.7 доказана.
Конструктивное доказательство теоремы 8.7 по существу определяет собой метод нахождения такого множества X*, которое гарантированно содержит ЛМА, т. е. для которого имеет место включение Х?ех ^ X* ^ Х°. Иными словами, результат X* на выходе АЛС можно рассматривать как аппроксимацию искомого ПМА целочисленной задачи (8.42) — (8.46), причем X* содержит гарантированную часть в виде ЛМА. Таков ответ на вопрос, сформулированный после доказательства теоремы 8.6.
Примечание. Нетрудно убедиться, что результаты теоремы 8.7 можно распространить и на случаи, когда все параметры задачи (8.42) — (8.46) являются рациональными числами.
Известно, сколь важно для обоснованного выбора и принятия решения иметь описание паретовского множества X и его образа F (X) в критериальном пространстве 194, Д52, 101, НО]. Мы рассматриваем линейные многокритериальные задачи, для которых множество достижимости [101] F (X) всегда полиэдрально [ПО]. В силу этого обстоятельства ЛМА Х1°ех содержит в себе достаточно богатую информацию о структуре ПМА и его образе F (Х°) = F (X) в критериальном пространстве. Кроме того, после нахождения множества Xiex появляется возможность более эффективно использовать метод ограничений [94] для нахождения тех планов х £ X, которые невыделимы с помощью АЛС.
О свойствах задачи (8.34) — (8.41). Рассмотренная выше задача (8.42) — (8.46) для одного хозяйства по существу является частным случаем задачи (8.34) — (8.41), которая содержательно представляет собой задачу о землепользовании в регионе. По этой причине задача (8.34) — (8.41) наследует основные свойства своего частного случая. Оставляя практически без изменения технику предыдущих доказательств, можно установить для нее справедливость утверждений, аналогичных теоремам 8.4, 8.6, 8.7.
Теорема 8.8. Существует задача (8.34) — (8.41), для которой при т^ 2 мощность ПМА | Х° | = (nl)2yv.
Теорема 8.9. Существуют индивидуальные задачи (8.34) — (8.41), для которых проблема нахождения ПМА неразрешима с помощью АЛС.
Теорема 8.10. Условия теоремы 8.7 являются достаточными для выделения из X множества лексикографических планов Х?ех задачи (8.34) - (8.41).
К проблеме метода для задачи (8.34) — (8.41). Отличительной особенностью задачи (8.34) — (8.41) является то, что множество всех ее планов X можно представить в виде объединения определенных
комбинаций планов-представителей х 6 Хк^\ где Xw — множество планов задачи (8.42) — (8.46) для хозяйства v, v = 1, ..., N. При этом в каждой из этих задач (8.42) — (8.46) соответственно принимаются значения М = S^ и b£ = bl, где величины Sv и bl определяются из исходных данных задачи (8.34) — (8.41). Кроме того, все планы из X(v) должны удовлетворять дополнительному условию (8.35).
В силу указанной особенности задачи (8.34) — (8.41) каждый ее парето-оптимальный план можно представить в виде объединения некоторых N планов, построенных соответственно для N задач вида (8.42) — (8.46). Заметим только, что составные части этого объединения определяются неоднозначно для одного и того же результата.
Из сказанного выше естественным образом вытекает следующий подход к использованию алгоритмов ^ и Л2 для решения задачи (8.34) — (8.41).
Для использования АЛС генерируется множество векторов Л = = {Л}, X = (Хп ..., Хт), Хк >• 0, к = 1, ..., т, причем с таким условием, чтобы Л содержало векторы, соответствующие лексикографическим планам.
Для каждого X g Л (путем использования подходящего алгоритма решения задачи ЛП) найти эффективный план х^ такой задачи ЛП, планы которой определяются условиями (8.34), (8.35), (8.37) — (8.39), а целевой функцией служит свертка
N п п т- £ S S Sv=l Z=1 /=1 k—\
критериев, определенных согласно (8.41); X (Л) = (х*^ :Х£Л}. Выделить из X (Л) такое подмножество X = (х) минимальной мощности, что F (X) = F (X (Л)). Множеству X поставить во взаимооднозначное соответствие множество Л = {X}, Л s Л, где X— вектор, при котором был найден оптимум х свертки F^M (х). Для каждого плана х = || х^ || вычислить множество значений
ЬТ = Ь^ = ^иих1ь v=lN.
i=i
Всякий нецелочисленный план х £ X преобразовать в целочисленный следующим образом. Для каждого v = 1, ..., N выделить из х подматрицу х? = || хУД, i, / = 1, ..., п, и если окажется, что xv не является целочисленной, то применить к xv алгоритм Аг (Л2). Иными словами, с помощью этих алгоритмов осуществить решение однокритериальной задачи (8.42) — (8.46) при следующих условиях. Целевая функция определяется выражением (8.67), в котором X ="Х, с^ = = с^; параметры М и bt принимают соответственно значения Sv и Ь7\ i = 1, ..., п. При этом считаем, что для алгоритма Аг (Л2) первый этап уже осуществлен, в результате чего получен нецелочисленный план х*0 = Х^ (х = xv).
Предлагаемый метод представляет собой, вообще говоря, приближенный алгоритм с апостериорными оценками точности, поскольку содержащиеся в X нецелочисленные лексикографические планы определяют собой верхние оценки значений частных критериев в целевой функции (8.40), (8.41).
8. Многокритериальные транспортные задачи. Специфическая особенность многокритериальной транспортной задачи состоит в том, что переменные х£/ представлены квадратной матрицей, Z, / = 1, ..., п. Хотя эти задачи можно представить как некоторое обобщение целочисленных транспортных задач, они представляют интерес и как самостоятельный класс задач векторной оптимизации.
Среди возможных многокритериальных постановок выделим ^-кpи- териальную полиматричную целочисленную транспортную задачу, постановка которой состоит в следующем [Д11]. Заданы целочисленные векторы а = (аъ ..., а^ b = (bv ..., b^. at, bj^Y, 1 = 1, т. тп
/ = 1, .... п, £ а< = S bh и матрицы Ск = |с^|^хп> ^=1, .... N. i=i/=1
Множество планов X состоит из всех целочисленных матриц х = = ll^/lkxn. удовлетворяющих известным условиям транспортной задачи!
^ хц = ab i= 1, ..., т, 5 хи = bj, j = 1, .... п, х^^О, 1= 1, ... /=1/=1
.... т, / = 1, ..., п. На X задана векторная целевая функция F (х) = т п
= (Л(я), -м Fn^Y ^to^S S ck?)xtj» определяющая при W>2 /=i /=1
и условии максимизации ^(х), &= 1, ..., N, паретовское множество
Х^Х. Многокритериальная ^^2) транспортная задача порядка т х п состоит в нахождении ПМА Х°.
Аналогично теореме 8.4 нетрудно показать, что справедлива следующая теорема.
Теорема 8.11. Существует двухкритериальная транспортная задача размерности т X п, 2 ^ т ^ п, п ^ 3, для которой мощность ПМА равна пт^.
Теорема 8.12. Для всякого п^ 3 существуют двухкритериальные транспортные задачи порядка п X пэ для которых | X | > п!, | Х° | = = 1.
Доказательство. Рассмотрим последовательность двухкритериальных транспортных задач; т = п, п £ {3, 4, ... }; компоненты векторов а и b принимают значения; а£ = Z, b^ = /, t, / = b ..., n; матрицы Ck = || di) ||, k = 1, 2, определены равенствами; c$ = Z, / = b ..., n, i = 1, ..., n, di) = n + 1 — c^, ц 1=^ 1, ..., n. Множество всех планов x транспортной задачи указанного вида порядка п X п условимся обозначать Х(т.:-
Индукцией по п докажем сначала, что для п ^ 3
|Х(л)|>п!(8.75)
Для /г = 3 неравенство (8.72) выполняется, так как | Х^ | = 12, в
чем нетрудно убедиться, построив все планы из Xе’. Фиксируем п ^ 4 и рассмотрим подмножество X* s Xw, элементы которого строятся следующим образом. Выделим из х^-^ некоторый план х0 = = II Х°ц II (П-1) х (п-1) И для пары (х°,/0Ь /0 € {1. 2, ..., л), поставим в соответствие план х* £ Х№, х* = || х*/1| п х п, определяемый соотношениями:
если jo — n, то х?/= х®/, I, / = 1, .... п—1, х™ = п, х„/= О, / = 1, .... л — 1, х^ = О, i = l, .... п — 1;
если /0<п, то x*j=x°ij, 1 = 1, ..., п — 1, /=А/0, п, х?/ = х?/о t = l п — 1, / = п, х’/ = О, i = 1, ..., п — 1, / = /0, х*,/ = О, / 1у П> ХПП = И /0, Xnjg = ]0.
Объединение по всем парам (х°, /„), /0 = 1п, построенных таким образом планов х* обозначим М (х°). Требуемое множество X* получается путем объединения множеств М (х°) по всем х° £ х(п~'\ По построению все планы х* € X* различны и принадлежат Х(п), т. е. X* s Х№. Следовательно, | М (х°) | = п и | Х(”) | ^ | X* | = = | Х^' | п, откуда, согласно индуктивному предположению | Х<п-1> | > > (л—1)1, получаем доказательство неравенства (8.75).
В соответствии с определением матриц ск, к = 1,2, векторная целевая функция рассматриваемой задачи принимает одинаковое значение:
^(х) = (Л(х), F2(x)) =(S i2, f i(n+l— i)), x^X№. (8.76) V=I Z=1/
В соответствии с определением парето-оптимального плана равенство (8.76) означает, что паретовское множество X =Х<п\ откуда, согласно (8.75), | X | > п\, если п ^ 3. Из равенств (8.76) вытекает, что образ паретовского множества F (X) является одноточечным, откуда, согласно лемме 8.1, имеем | Х° | = 1. Теорема 8.12 доказана.
Для выяснения верхней оценки мощности ПМА рассмотрим класс %т$ 2-критериальных транспортных задач порядка т х щ для которых элементы с^ £ {1, 2, R^ к = 1, 2.
Теорема 8.13. В классе двухкритериальных транспортных задач ^т*п справедлива следующая оценка мощности ПМА;
т
|Х°|< 1 + (R- 1) ^ аь
Доказательство. Прежде всего заметим, что из свойства элементов паретовского множества X для двухкритериальной транспортной задачи вытекает равенство
|Л(Х)|=И2(Х)| = |Г(Х)|.(8.77)
Действительно, если бы это было не так, то нашлась бы пара х', х" £ X, 292
обладающая, например, свойством Ft (х') = Ft (х"), F4 (х') у= Fe (х") (или Ft (х') Ф Fx (х"), F8 (xz) = F2 (х")). Однако это означало бы, что один из планов х', х" не является парето-оптимальным.
Поскольку значения функций Fk (х), к= 1, 2, являются целочисленными, то в критериальном пространстве мощность множества Ft (X) не может превосходить количества целочисленных точек отрезка [ръ Afx], где р,х = min Fx (х), Мх = max Fx (х), т. е.
1.(8.78)
Так как для всякого плана х = Цх^Цшхп транспортной задачи
S S хи где а = 5 а 1 ^с*1/ < R, i = 1, ..., т, j 1, а, <=| /=1<=1
то получаем оценки
Мх = max ^ S c^jXi/^aR,
т п
Pi = min 2 S с^хцТ>а,
х£Х 1=1 /=1
которые позволяют продолжать неравенство (8.78) следующим образом:
|F(X)|^1+«(/?-!).(8.79)
Принимая во внимание лемму 8.1, на основании соотношений (8.77) и (8.79) получаем полное доказательство теоремы 8.13.
Глава 9
ФОРМАЛИЗАЦИЯ И РЕШЕНИЕ ОПТИМИЗАЦИОННЫХ ЗАДАЧ КОМБИНАТОРНОГО ТИПА
§ 1. ОБЩАЯ ПОСТАНОВКА КОМБИНАТОРНОЙ ЗАДАЧИ И НЕКОТОРЫЕ ПОДХОДЫ К ЕЕ РЕШЕНИЮ
Пусть А — некоторое дискретное множество. Предположим, что А — конечное, хотя многие результаты настоящей главы могут быть обобщены для случая счетного множества. Комбинаторным пространством X = ХА назовем совокупность всех комбинаторных объектов определенного вида из элементов множества А. В дальнейшем будем рассматривать метрические комбинаторные пространства, т. е. пространства, каждой паре элементов которых может быть поставлено в соответствие некоторое число, удовлетворяющее аксиомам метрики. Под оптимизационной задачей в комбинаторном пространстве понимаем следующую задачу: определить точку х* ^ R г X, доставляющую экстремум некоторому функционалу / (х), т. е.
fW = ext /(х). (9.1)
xER^X
Как известно, многие оптимизационные задачи комбинаторного типа могут быть сведены к задачам целочисленного программирования. Оказывается, однако, что такое сведение не всегда целесообразно. Это объясняется тем, что некоторые задачи, являющиеся на первый взгляд исключительно численными по характеру, требуют для эффективного решения не только подходящих численных методов, но и подходящего выбора структур данных и методов работы с ними. Сведение же задачи от одного вида к другому приводит к потере возможности естественного учета части ее свойств. Поэтому и расстояние в комбинаторном метрическом пространстве целесообразно вводить такое, которое максимально учитывало бы физическое содержание задачи.
Введение метрик в комбинаторных пространствах позволяет развить класс методов локальной оптимизации, а также установить некоторые важные свойства определенных классов дискретных функций. Пользуясь метрикой, мы можем, например, придать конкретное толкование понятию конструктивной близости элементов множества [48, 49, 128], а именно близкими элементами считать элементы, принадлежащие одной окрестности.
Шаром с центром в точке х0 и радиусом г назовем совокупность точек х С X, удовлетворяющую неравенству р (х0, х) ^ г. Окрестностью Ох (х, г) точки х ^ X назовем всякий шар с центром в этой точке и радиусом г, отличным от нуля, таким, что
Ох (х, г) \ х =# 0.
Примерами метрических комбинаторных пространств являются4, пространство Мд выборок из множества А, пространство перестановок Рд из элементов множества А, пространство разбиений Na и др
Метриками для этих пространств могут быть соотношения:
Рм С^р ^2) ~ I (^i U ^2) \ (^i П *^2) 1> (9*2)
Pn <xv х2) = max min рм (^ n) + max min pM g, t]). (9.3) ^x nGr/ nSv ^X
Некоторые метрики других комбинаторных пространств приведены в [134]. Отметим также, что соотношения (9.2), (9.3), как и другие метрики, могут быть перенесены на соответствующие комбинаторные пространства с повторяющимися элементами.
Комбинаторные оптимизационные задачи являются весьма сложными с вычислительной точки зрения. Методы решения этих задач развиваются в двух основных направлениях: точные и приближенные. Такое разделение является, однако, весьма условным в силу того, что каждый конкретный класс задач (даже отдельная задача) предъявляют свои требования к методу решения. Например, метод ветвей и границ для решения задач большой размерности имеет модификации, доставляющие приближенное решение, так как точный метод практически не применим. С другой стороны, многие приближенные методы для определенного частного вида задач могут давать точные (глобальные) решения.
Остановимся кратко на основных методах.
Метод ветвей и границ в комбинаторной форме был предложен в работе Литтла и других авторов для решения задачи коммивояжера. Основными понятиями, используемыми при построении алгоритма метода ветвей и границ, являются правило ветвления и способ вычисления нижней границы функции / (х) на допустимом множестве. В других работах указываются многие возможные применения метода ветвей и границ [22, 71, 78].
Еще один широкий класс алгоритмов — это последовательные алгоритмы оптимизации. Наиболее универсальным среди них является метод последовательного анализа вариантов [92, 93]. В основе метода лежит идея представления процесса решения в виде многоступенчатой структуры; каждая ступень связана с проверкой наличия тех или иных свойств у подмножества вариантов и ведет к сокращению этого подмножества. Для построения численной схемы метода на основе формальной постановки задачи необходимо установить множество признаков, позволяющих производить отсев ненужных вариантов; затем следует производить выбор рационального порядка проверки признаков, позволяющего в наиболее короткое время сделать отсев и найти оптимальное решение. Этому методу посвящено много работ, например 194—96, 99, 100].
Метод построения последовательности решений [39, 40] предполагает: существование конечного расширения /?° ^ R и функции-миноранты g (х) ^ f (х) для всех х £ R; наличие алгоритма ф, который на к-м шаге находит хк 5 R0 такой, что g (^ = min {g (х)/х Е R° х х {Xi, ..., x^-i}}. Решение конкретной задачи дискретной минимизации
состоит в нахождении с помощью алгоритма <р последовательности Х( решений в порядке неубывания миноранты до выполнения критерия оптимальности.
Отдельно следует упомянуть класс задач размещения геометрических объектов. Он обладает той особенностью, что в записи общей формулировки задачи область допустимых решений имеет свойство I R | = оо, что потребовало разработки специального класса методов [149, 150]. В работе [150] рассматриваются задачи поиска наиплотнейших решетчатых укладок невыпуклых многоугольных объектов на плоскости. Изучаются два типа решетчатых укладок конгруэнтных объектов: укладки одинаково ориентированных объектов и укладки, выполненные с использованием поворота объектов на угол л. Показано, что в обоих случаях базисы решеток, допустимых для формирования укладок объекта, могут быть составлены из значений вектор-функций плотного размещения пары одинаково ориентированных и пары повернутых на угол л по отношению друг к другу объектов. На основе параметрического представления вектор-функций многоугольных объектов проводится декомпозиция задач поиска на плоскости наиплотнейших решетчатых укладок обоих изучаемых типов. Решение указанных задач сведено к решению конечной совокупности задач математического программирования с квадратичными функциями цели и многоугольными областями допустимых решений — в одном случае и многогранными — в другом. В обоих случаях исследовано расположение точек локальных экстремумов и предложены алгоритмы поиска точных решений поставленных задач.
Важным вкладом в теорию решения многоэкстремальных задач явилось создание локальных алгоритмов вычисления информации [48, 49]. Эти алгоритмы могут быть охарактеризованы двумя параметрами: величиной окрестности, изучаемой на каждом шаге, и признаками, запоминающимися о каждом элементе. Одним из наиболее полно изученных и успешно применяемых методов локальной оптимизации является метод вектора спада [128].
В последние годы началось изучение свойств отдельных классов дискретных оптимизационных задач и использование этих свойств при построении алгоритмов решения [1471. Имеется ряд обзорных публикаций, охватывающих определенные классы задач и методы их решения [105, 145]. В частности, в настоящее время разработан ряд методов итерационного типа [134, 145], достаточно универсальных и позволяющих вместе с тем учитывать конкретную специфику задачи.
Приведем в качестве примера один способ решения комбинаторной оптимизационной задачи, близкий по идее к методу вектора спада [128] и П-методу [134].
Пусть S — задача (9.1). Фраза «у является решением задачи 5 алгоритмом Л° исходя из начального приближения х» запишется следующим образом: у = A0 (S, х).
Далее, пусть задано множество алгоритмов итерационного типа (Л,)/^, использующих в своих вычислениях начальное приближение. В принятых выше обозначениях обобщенная схема П-метода (IP-метод) запишется следующей последовательностью действий.
а. Решаем последовательность задач исходя из начального приближения X®:
xt= Л1(5,х?);
х2 = X2(S, х^\
№) ^т ™ ^т (^» ^т—l)»
р. Полагаем хт = х^, сравниваем Хо и хо; если Хо = Хо, то вычисления прекращаем и х0 является приближенным решением задачи S. В случае же Хо Ф хо вычисления повторяем исходя из начального приближения хо и т. д. до тех пор, пока не будет достигнуто на некотором шаге к равенство Хо = Хо-1.
В схеме а подразумевается, что итерационные алгоритмы Ль ..., Ат дают локальные решения задачи (9.1); возможен, однако, переход к следующему пункту алгоритма согласно некоторому признаку, например если на n-й итерации алгоритма At окажется, что | / (х?-1) — — / (^^ | ^ ^ где е — заданная величина.
Можно с этой целью применять и временные показатели, например превышение времени, допустимого на одну итерацию, и др.
Очевидным является тот факт, что на результат счета, кроме других факторов, влияет последовательность, в которой применяются алгоритмы Af, в приведенной выше схеме множество алгоритмов А упорядочено согласно возрастанию индекса i, i = 1, ..., т. Возникает, таким образом, задача: как упорядочить множество А алгоритмов^ чтобы построить оптимальный в заданном смысле и на заданном классе задач алгоритм П*-метода. По-видимому, при решении этой задачи окажутся полезными накопление и статистическая обработка данных, касающихся результатов счета на заданном классе задач по алгоритмам П*-метода, и последующее изменение порядка применения алгоритмов А(, 1 = 1, ..., т, согласно полученным выводам. "
Многие ученые подчеркивают важность комбинаторного представления определенных классов дискретных оптимизационных задач. В частности, в книге [180] отмечено, что теоретико-множественный подход способствует достижению наибольшей общности результатов; здесь же приводятся некоторые комбинаторные оптимизационные задачи: оптимальные коды, исправляющие ошибки, блок-схемы могут рассматриваться как экстремальные совокупности подмножеств, удовлетворяющие определенным теоретико-множественным ограничениям; сюда же относятся задачи о делимости.
Комбинаторные модели могут быть применены для представления оптимизационных задач, возникающих при оптимальном размещении на графах. Покажем это на примере [2301.
Пусть G — конечный связный неориентированный граф с множеством вершин V (G) и множеством ребер Е (G). Каждое е — = (и, v) £ Е (G) по определению имеет положительную длину, обозначаемую L (е) или L (и, и). Пусть Р = (иь ех, и2, ^2, •••, yHi) h
имеет длину L (Р) = ^ L ^е^ и при этом, если и и и — вершины графа GT
расстояние от и до и определяется как путь от « к v с минимальной длиной, обозначаемой d (и, и). В научной литературе рассматривают два класса задач, связанных с решением следующих вопросов:
определить вершину и 6 V (G) такую, чтобы минимизировать эксцентриситет
е ^ = max d (и, и);
v£V(G)
найти медиану графа G, т. е. определить вершину и £ V (G) так, чтобы минимизировать величину
d (ц) = S d (и, v).
v£V(G)
Если в графе G выделим совокупность S = {Sb ..., Sm} связных подграфов, то придем к определению S-эксцентриситета вершины и и S-расстояния вершины и соответственно:
Е (и, S) = max min d (и, о/),
l^i^m cy€V(Sa
т
D (v, S) = V min ' d (v, w).
^V(S.
Подмножество V* вершин в G с минимальным эксцентриситетом называется S-центром графа G, а подмножество V0 вершин графа G с минимальным S-расстоянием — S-медианой.
Обозначим
Е (I/*, S) = min max min d (v, w),uC-V l^i^mw^S.
D (V°, S) = min у min d (u, w).ver £x<^st
Очевидно, что значения минимального S-эксцентриситета и минимального S-расстояния (S-медиана) зависят от разбиения S графа на подграфы. Возникают, таким образом, оптимизационные задачи с функциями цели
Е (У*, S*) - min Е (V*, S),
D(V*, S*) -min D(D1V% S),
где S — точка метрического пространства Ny разбиений [134] при условии, что вершины, входящие в Sh i — 1, ..., т, образуют связный подграф графа G.
Рассмотрим еще несколько оптимизационных задач комбинаторного типа.
Задача о максимальном устойчивом множестве. Дан граф. Найти в нем максимальное число попарно несмежных вершин.
Задача отыскания связывающего дерева максимального веса с дополнительными ограничениями. Дан связный неориентированный п-вершинный
граф G (V, U) с множеством вершин V = {и,, 1 ^ / ^ и} и множеством ребер U = \иь \ ^ i ^т]. Каждому ребру ut приписаны вес ct ^ О и длина at ^ 0. Гребуется выделить такой подграф D = (Vd, Ud) графа G, называемый остовным деревом, чтобы сумма длин всех ребер подграфа не превышала величины Л, а сумма весов его ребер была максимальна среди всех остовных деревьев, обладающих указанным выше свойством.
Хотя задача без ограничения суммы длин всех ребер подграфа решается эффективно, для точного ее решения с указанным ограничением эффективные (в смысле Карпа) алгоритмы неизвестны.
Приведенные выше две оптимизационные задачи на графах могут быть сформулированы как условные оптимизационные задачи в метрическом пространстве выборок М [134].
Пусть имеем некоторое натуральное и > 0. Обозначим Рп — множество всевозможных перестановок чисел 1, ..., п, т. е.
Рп = {/?= (Р1PnVPiEUt . «}>Pi^Pf. i, j=V, ... , а).
Линейная задача о назначениях. Имеется п должностей и п исполнителей, причем задана «цена» сц назначения z-ro исполнителя на /-ю должность (z, / = 1, ..., п\ Каждый исполнитель назначается на одну из должностей. Необходимо найти такой вариант распределения исполнителей по должностям, который минимизировал бы общую «цену».
Комбинаторная модель этой задачи выглядит следующим образом: найти элемент р* £ Рп такой, что
Р* = arg min f с£р
гдеР = (PiРп\
Квадратичная задача о назначениях. Дано п пунктов, между которыми указаны расстояния в виде матрицы D = = kdthnxn* Кроме того, задано п объектов, подлежащих назначению в указанные пункты, причем для всех пар объектов i и / известна интенсивность (стоимость) перевозок между ними. Необходимо найти такое назначение объектов в выделенные позиции, при котором минимизировалась бы суммарная стоимость перевозок.
Математическая модель этой комбинаторной задачи может иметь такой вид: найти такой элемент р* £ Рт для которого выполняется соотношение
Р* = arg min c£id
Как и прежде, р = (рь ..., р^ а вариант назначения объектов в выделенные позиции определяется по перестановке р = (рь .... рг) так: объект I назначается в пункт ри i = 1, ..., п.
Во многих случаях выполняются соотношения дц, с^ ^ 0 для всех /, / = 1, ..., п, хотя в общем случае рассматриваются произвольные значения этих элементов.
Задачи коммивояжера. Постановка этого типа задач заключается в следующем. Пусть имеем п + 1 город а0, аъ .... ап и между каждой парой городов (аь а^ определено расстояние сЦ/ ^ О, i, / = О, 1, ..., п. Коммивояжеру нужно побывать в каждом из этих городов, начиная и заканчивая свой маршрут городом а0. Он не имеет права дважды заезжать ни в один из городов аъ ..., рп. Необходимо найти такой маршрут обхода этих городов, который имел бы минимальную суммарную длину.
Формально задачу коммивояжера можно записать в таком виде: найти р* £ Рп такое, что
(
и—1\
У dp + dp о + d0,Pl , &/
где р = (ръ ..., рпу Элемент р определяет маршрут обхода городов следующим образом: а0, aPl, aPi, ..., ар^ а0.
Эта математическая модель охватывает и тот случай, когда между некоторыми городами as и at запрещен непосредственный переход — здесь следует положить dst = оо.
Сформулированная задача находит широкое применение в различных приложениях математических методов. В ряде случаев учет специфики конкретных областей применения приводит к усложнению математической модели. Например, иногда возникает необходимость в установлении такого маршрута обхода городов, в котором на определенных этапах находились бы указанные города. Пусть задано к < п городов, каждый из которых следует посещать только на заданном этапе маршрута. Опишем эти условия посредством матрицы S = ksifW*^ в ней при каждом i, i = 1, ..., к, элемент sL равен номеру этапа маршрута, на котором обязательно необходимо посетить тот город, номер которого определяется элементом sl2.
Выделим из пространства Рп подпространство G, которое обладает следующим свойством: G = ^р = (рь ..., pn) g Рп; если i = sri при некотором значении г (1 ^ г ^ к, 1 ^ I ^ п), то pt = srJ.
Тогда задача коммивояжера с фиксированным порядком обхода некоторых городов запишется в виде следующей модели комбинаторного программирования: найти р* £ G cz Рп такое, что
(
n—1\
5 dPi»Pi4-\ + d°tPt + ДРП^ ) • 1=1/
Отметим, что задача коммивояжера является WP-полной задачей.
Задача размещения компонентов цифровой аппаратуры. Рассмотрим типичную для современных ЭВМ конструкцию: прямоугольная плата, внутри которой находится поле позиций для установки приборов, а вдоль одной из сторон — контакты внешних выводов. Позиции представляют собой равные прямоугольники, центры которых размещены в узлах равномерной ортогональной сетки, а контакты позиции расположены вдоль двух противоположных ее сторон, причем расстояния между соседними контактами, находящимися на одной стороне, равны. Считаем, что все устанавливаемые
модули имеют одинаковые размеры, т. е. каждый модуль может помещаться в любую позицию.
Проведем нумерацию позиций, перебирая их слева направо и снизу вверх; обозначим п — общее число позиций на плате. Множество модулей, которые подлежат размещению на плате, обозначим М = \т1, т2, ..., гпп^ где гц — число модулей. Пусть пг = п.
Назовем электрической цепью множество контактов схемы, которые в любой момент времени являются точками с равным электрическим потенциалом. Если среди этих контактов в некоторой электрической цепи есть и внешний контакт платы, то такую электрическую цепь назовем внешней, в другом случае — внутренней.
Задачу размещения модулей на плате можно сформулировать так.
Пусть задана схема связей между контактами модулей, содержащихся в М (в описание связей должны входить как внутренние, так и внешние цепи). Требуется найти такое размещение модулей на плате, которое бы оптимизировало некоторый критерий (целевую функцию задачи).
Для простоты изложения рассмотрим наиболее распространенный тип конструкций ЭВМ, у которых внешние выводы расположены вдоль одной из сторон. Поскольку внешние выводы конструкций представляют собой, как правило, множество инвариантных контактов, то их окончательное закрепление за конкретными электрическими цепями осуществляется после этапа размещения — этот случай и подразумевается в работе. Рассмотрим для конкретности задачу минимизации суммарной длины всех соединений [33].
Множеством всех вариантов размещения, как отмечалось выше, будет пространство Рп всех перестановок элементов множества М = = (1, 2, ..., п^ причем каждая перестановка р = ^ръ ..., рп) £ Рп определяет вариант размещения модулей по следующему правилу! позиция л, занимается модулем с номером р^ i: = 1, ..., п.
На практике в ряде случае возникает необходимость поместить модули из некоторого определенного подмножества М с: М в заданные позиции. Построим математическую модель задачи, учитывающую это ограничение. Пусть заданное соответствие определяется функцией <р (х), значение которой для всякого х 6 М равно номеру позиции, в которую следует поместить модуль с номером х.
Выделим из Рп подпространство Р следующего вида: для р = (рь ... ..., рп) £ Р справедливо: р^ = i, если i 6 М — назначенный в позицию р^ модуль, подпространство Р с Рп и представляет собой множество допустимых вариантов решения поставленной задачи.
Предполагая, что число внешних цепей равно w, целевую функцию задачи представим в виде п—1 п к кw
f(P) = Z 2 S S «/Ж &/>) + £ Мр), (9.4) i=l /=f-H s—1 <=1<=1
^jt —^jt —если s-й контакт г-го модуля соединен проводником с t-м контактом /-го модуля;
^jt —
^jt —
О в противном случае;
d (Ss, ^, p) — геометрическое расстояние между s-м контактом /-го модуля и /-м контактом /-го модуля при размещении р £ Рп; т^ (р) — минимальное возможное расстояние между внешними контактами платы и контактами модулей, входящих в /-ю внешнюю цепь.
Обратим внимание на то, что величины п1^ нельзя задать априорно. Дело в том, что трассировка соединений в цепях производится уже после размещения модулей, притом совсем не обязательно, чтобы между любыми двумя элементами одной цепи существовало непосредственное соединение (которое и входит в подсчет длины по формуле (9.4)) — они могут быть связаны через другие элементы этой же цепи. В исходных данных указывается лишь совокупность элементов (контактов), входящих в каждую цепь. Поэтому подсчет целевой функции удобней вести не по принципу упорядочивания слагаемых по принадлежности к модулям, как записано в (9.4), а путем группировки в слагаемые выражений, относящихся к одной цепи. Исходя из этого целевую функцию удобней представить в следующем виде:
У+tyW
8 (I, р) + S Tk (Р).(9.5)
1—1i=l
где S (/, р) — длина внутренних соединений f-й цепи при размещении р; v — число внутренних цепей.
Чтобы определить S (/, р) как длину t-й цепи, необходимо представить /-ю цепь в виде полного взвешенного графа, принимая за вершины контакты модулей, содержащихся в цепи, и решить задачу выделения из этого графа такого дерева-остова, которое имело бы минимальный суммарный вес своих ребер (такое дерево-остов называется еще минимальным связывающим деревом). Вес, приписываемый каждому ребру полного графа, в большинстве случаев соответствует расстоянию на плате между инцидентными ему вершинами. При решении ряда задач размещения (особенно в случае проводного монтажа соединений) возникает также требование ограниченности локальных степеней вершин искомого остова [91].
В нашем случае вес ребра совпадает с геометрическим расстоянием между инцидентными вершинами, поэтому длина минимального связывающего дерева для /-й цепи при заданном размещении р и будет определять величину S (/, р). Значение т^ (р) также зависит от размещения модулей, контакты которых входят в t-ю внешнюю цепь, и способа соединений точек коммутации в каждой цепи.
Иной подход к оценке суммарной длины связей предложен в [61]. Здесь для каждой цепи с номером I, которая при некотором размещении р должна объединять контакты с координатами а\ (л^, у^, а^ (х2, у2), ... ...» ait к^ь yt) V— число точек коммутации; (xs, ys) — декартовы координаты этих контактов), вычисляют величины xt = шах | хг —
— xs I, у* = max I у* — ys I и полагают, что оценкой длины мини- l^r.s^
мального связывающего дерева Q (I, р) является величина
Q(t, р) = х' + у‘, i= 1, ..., и,
где и = и + w — общее число цепей в схеме. Тогда
ии
W^Q^-TA^.A-y^(9.6)
1=11=1
Учитывая сказанное, нашу задачу можно сформулировать так: требуется найти элемент р* С Р с: Рп, для которого
р* = arg ext f^,(9.7)
Р^РсРп
где / (р) подсчитывается по формулам (9.5) (критерий 1) или (9.6) (критерий 2).
Из (9.5), (9.6) следует, что помимо собственно задачи размещения (9.7) необходимо решать еще вспомогательные оптимизационные задачи (определение S (/, р), Q ^1. р) и г); (р)).
Задача о взаимном расположении двух множественных объектов. Пусть имеем множество А = = {^}?=i объектов и множество В = (6/}/=i объектов другой природы. Разместить объекты из множеств Л и В в строго чередующемся порядке, т. е.
0ь ^ь #2, Ь^, ... , ап_ 1, 6П—ь йп так, чтобы достичь экстремума стоимости расположения, т. е.
пп—1п—1
F (р, Р) = g di ^ + g 0, ^ + g / (aw, bib\ а^, № € R».
В более общем виде задача может быть записана в такой постановке.
Пусть задано N множеств At, i = 1, ..., N, и соответственно N комбинаторных пространств ХЪХ4, ..., Хм. Определить условный экстремум функции N переменных
F (х*) = F (Хь ..., xjv) = ext F (ххxNy x^RCXX^ i=lN
В частности, к задачам указанного выше типа относятся следующие две задачи:
дан порядок соединения N частей трубопровода; определить способы соединения отдельных частей трубопровода таким образом, чтобы свести суммарные затраты к минимуму;
дано множество N частей трубопровода, которые должны быть соединены последовательно; определить порядок их соединения и способы соединения таким образом, чтобы свести суммарные затраты к минимуму.
Задача взаимного размещения двух множеств. Рассмотрим один класс оптимизационных задач на пространстве Рп.
Пусть заданы множество точек А и его подмножество Av В точках множества Л \ Лх разместить элементы множества В, | В | ^ | А \ Лх |, так, чтобы минимизировать взвешенное суммарное расстояние от элементов множества В до множества Аг. Другими словами, найти такое размещение х* элементов множества В в точках множества А \ Аи
чтобы
5 Cidt (х*) = min 2 ctdt (x), t=lx^n i=l
где | В | = | A \ At | = n; (Cb ..., cn) — вектор весовых коэффициентов; d( (x) — расстояние от элемента bi Е В до множества Аг при размещении х Е Рп» вычисляемое следующим образом:
di (х) = min 6 (С, bi (х)),
КА
где 6 (£, Ь( (х)) — евклидово расстояние между точками £ Е ^i и Ь( Е В при размещении х.
Сформулированная выше задача является безусловной. На практике, однако, необходимо выполнение некоторых условий, например соблюдение наложенных ограничений на расстояние между некоторыми (или всеми) элементами множества В, фиксированное положение некоторых элементов и др. В частности, если элементы множества В составляют электрическую схему, то налагаются условия, диктуемые этой схемой.
Далее, критерием оптимизации может служить функция Цх) =
= £ cid°a (х), где (^/ (х) = шах 6 (6, (х), С).
<=1КА
Таким образом, мы имеем класс задач (условных и безусловных), представляемый целевыми функционалами в пространстве Рп:
пп
fl W = 5 Cidi (х); f2 (х) = 5 Cid!} (х).
i=IZ = !
Отличительной особенностью этого класса задач является специфика целевого функционала: в его определение входит экстремум величины 6 (£, т]) по переменной £ Е ^i- Такие задачи так же, как и рассматриваемые нами ранее [1341, успешно могут решаться итерационными методами комбинаторного типа, в частности методом вектора спада или его модификацией — П*-методом, изложенным выше.
Приведем постановки двух задач оптимального разбиения множества на подмножества.
Задача оптимального разрезания графа. Эта задача состоит в отыскании разбиения множества вершин на заданное число подмножеств определенной мощности, при котором число ребер, соединяющих вершины из разных подмножеств, было бы минимальным.
Формальная постановка этой задачи следующая.
Пусть G = (Е, V) — заданный граф, где V — множество вершин; Е — множество ребер; у = (Ух, ..., V^ — некоторое разбиение множества на заданное число к непересекающихся подмножеств Vu i = = 1, ..., к, a Y — совокупность всех таких разбиений; qv..qk— заданные мощности Vx, ..., Vk\ F (у) — число ребер графа G, которые соединяют вершины из разных подмножеств при разбиении у.
Требуется найти у* £Y такое, что
F (у*) = min F (у\
Задачи разбиения множества интегральных схем на подмножества, соответствующие конструктивным узлам ЭВМ [331. Пусть задано множество X = \хъ ..., хп\, состоящее из п интегральных схем, каждая из которых принадлежит к одному из т заданных типов, т. е. для любого i, 1 ^ I ^ п, xt С Т', где Т, j = 1, ..., m,— подмножество множества X, которое состоит из интегральных схем, принадлежащих к типу /", m
причем Т А Т = 0, i Ф j,ij = 1, ..., m, J ^ = X. Пусть также м
задано / множеств Sz таких, что St а X, причем в общем случае Si А AS/^0, Л i = L .•> ^ Содержательно St означает множество интегральных схем, входящих в одну электрическую цепь.
Задача разбиения состоит в отыскании такого разбиения у* множества X на заданное число к подмножеств YXs Y^ ..., Yb для которого достигался бы минимум заданного критерия оптимизации и выполнялись бы следующие условия:
Yt А ^/ = 0, МЛ Л / = L ..., ^;
и Y t — X;
VYiA^tUh i= Y ... , к; j =1, ... , m, где Yij — множество интегральных схем типа /, входящих в множество Y ь Qi# — заданные ограничения на мощность множеств Уц. Содержательно УгУ к означают множества интегральных схем, размещаемых в конструктивных узлах ЭВМ с номерами соответственно 1,2..., к.
Основным критерием, оценивающим качество разбиения, является число электрических цепей, интегральные схемы которых размещаются в различных конструктивных узлах:
m
F^ = X S sign|S< Г) УДi=l /=1
Однако при непосредственном подсчете этой величины оказывается, что много вариантов разбиения имеют одно и то же значение целевой функции. Поэтому наряду с основным целесообразно применять другие критерии, которые более дифференцированно оценивают качество разбиения, например:
^i (#)5 I ^ I — £ шах | St A Y, |,
1=11=1 1 ^J^m
3»$3»$FaUh = F (У) + 4" F1 (У),гдес — const, с ^ max F (у).ч
3»$
3»$
20 7—1903
ФОРМАЛЬНОЕ ПРЕДСТАВЛЕНИЕ ЗАДАЧИ КЛАСТЕРИЗАЦИИ В КОМБИНАТОРНОМ ПРОСТРАНСТВЕ
Важный аспект приложения комбинаторного программирования — теория классификации и кластеризации, изучающая вопросы разделения заданного множества элементов на непересекающиеся подмножества. Возникающие при этом оптимизационные задачи могут быть представлены в терминах комбинаторных пространств, в частности пространства разбиений [38, 59, 182, 200].
Рассмотрим основную задачу кластерного анализа, заключающуюся в определении разбиения п объектов на т непересекающихся подмножеств (кластеров), которое удовлетворяет некоторому критерию оптимальности и условиям однородности внутри кластеров. Эта задача может быть сформулирована как задача математического программирования [38, 59]. Подавляющее большинство методов, предложенных для решения этой задачи, не универсально, так как существенно связано с конкретными данными и критериями оптимальности. Наиболее универсальным является метод полного перебора, который, однако, неосуществим при достаточно больших пит. Существенной особенностью задачи являются сложность и разнородность употребляемых целевых функционалов.
С учетом указанных свойств целесообразно развить подход, который был бы в некоторой степени универсальным, т. е. давал решение задачи для целевой функции из заданного класса и мало зависел бы от размерности задачи и условий однородности.
Эффективность универсального подхода к решению основной задачи кластеризации подтвердилась, в частности, в работе [200], исходящей из известного результата Рао о представлении кластерной задачи как задачи о разбиении заданного множества на т частей; на ряде примеров, ранее описанных в литературе, в работе [2001 показано, что подход приводит к лучшим значениям целевой функции, чем широко используемые эвристические методы, но требует при этом больших затрат машинного времени. В указанных исследованиях применялась следующая модель задачи кластеризации.
Пусть множество I, \ I \ = п, обозначает точки евклидового пространства, подлежащие разделению на кластеры. Далее, пусть J0 — множество всевозможных разбиений множества / на кластеры; Rf — множество объектов, входящих в кластер j Е J £ JQ- Для каждого кластера j £ J можно определить величину
' UeRj UeRjU^i.)
где и,- — число объектов в кластере; <й1б11 — квадраты евклидова расстояния между объектами 1Ъ 14; Ц, i3 £ I.
Задана матрица инциденций А = {а;/}, причем
[1, если i^Rj;
аЦ ^ 1 л
в противном случае;
В этих предположениях задача кластеризации записывается следующим образом: минимизировать величину
Ха cixi
при условиях
CLi/Xj 1, f С Л i^a
^ Xj = т,
xze{o, i|, /ел
В работе [59] предложено представлять основную задачу кластерного анализа как оптимизационную задачу на комбинаторном пространстве разбиений, что позволяет уменьшить количество переменных в формулировке задачи и положительно сказывается на требуемом для решения задачи машинном времени. Приведем в связи с этим необходимые понятия.
Пусть задано некоторое конечное дискретное множество А, подлежащее разбиению на кластеры; | А | = п; Na — множество всевозможных разбиений множества А. На множестве N = Na введем метрику следующим образом [59]:
Ру (х, у) = max min рм (£, т)) + max min рЛ1 (£, т]).
Здесь х, yEN, х= (^, .... &), у = (ii!, ..., 1]S); рм (£, П) = I (С U (J ^Х (С Л ч)| — расстояние между выборками С, т) из множества А.
Предположим также, что существует некоторое множество наблюдаемых показателей или характеристик С = {съ ..., cs}. (В описанной выше целочисленной модели множество С представлялось точками евклидова пространства). Результат измерения характеристики ct объекта а/ обозначим Pz/; таким образом, каждому индивиду а.; соответствует вектор измерений В, = {Pz/}z=i. Всему же множеству А соответствует множество векторов измерений В = {ВтВ„).
Пусть т ^ п. Задача I кластерного анализа заключается в том, чтобы на основании данных, содержащихся в множестве В, разбить множество объектов А на т кластеров (подмножеств) Аъ ..., Ат так, чтобы каждый объект at С A, t = 1, ...» га, принадлежал одному и только одному кластеру и чтобы объекты, принадлежащие одному и тому же кластеру, были сходными, в то время как объекты, принадлежащие разным кластерам, были несходными (понятия сходства и несходства должны быть формализованы).
Задача 2 кластерного анализа состоит в том, чтобы на основании данных, содержащихся в множестве В, разбить множество А на кластеры таким же образом, как и в задаче 1; она отличается от задачи 1 тем, что число т не задается, а определяется в ходе решения. Следовательно, задача 2 более сложная в вычислительном отношении, чем задача 1.
Решением задач 1 и 2 будет служить разбиение, удовлетворяющее условиям внутренней однородности кластеров и доставляющее
оптимум целевой функции. Этот критерий может представлять собой некоторый функционал F (х), х^ Na, выражающий уровни желательности различных разбиений. В связи с этим задачи 1 и 2 формально представляются следующим образом:
F (х*) = ext F(x^ F (х*) = ext F (x),x^G(ZNaC1Na ^GqNa
где Na — подмножество множества Na, элементы которого являются разбиениями, состоящими из т групп; область G включает только разбиения, удовлетворяющие заданным условиям (если такие условия указаны в постановке задачи).
ЗАДАЧИ ЭФФЕКТИВНОЙ ОРГАНИЗАЦИИ ОБРАБОТКИ ДАННЫХ В ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ
Важным классом задач, возникающих в вычислительных системах и сетях ЭВМ, являются задачи планирования и организации вычислительного процесса для потока заявок на требуемый промежуток времени. Приведем примеры таких задач 11621.
Задача I. Построить оптимальное расписание обслуживания п требований множества ^ = {1, ..., и} в системе из трех приборов с ограниченным буфером объема и системы для хранения требований. Каждое требование должно быть обслужено первым, вторым и третьим приборами. Время обслуживания требования i прибором к, i = 1, ... ..., п, к = 1, 2, 3, равно ^. Предполагается, что все требования поступили на обслуживание в некоторый начальный момент времени /0, который можно принять равным нулю, и для каждого требования I задан директивный срок pt, к которому требование должно быть обслужено. Предполагается также, что порядок обслуживания требований один й тот же для всех приборов. Для каждого требования отводится место в буфере с момента начала его обслуживания первым прибором и до окончания обслуживания третьим прибором. Объем, необходимый для хранения г-го требования в буфере, равен vie Если буфер заполнен, первый прибор не начинает обслуживания следующего требования до тех пор, пока не освободится место в буфере. Требуемое расписание должно быть оптимальным по одному из критериев:
по общему времени обслуживания требований;
по времени простоев какого-либо из приборов.
При этом на систему накладываются условия: каждый прибор в определенный момент времени обслуживает лишь одно требование и приступает к обслуживанию следующего требования после окончания обслуживания предыдущего без неоправданного простоя.
Примером такой задачи может служить задача обработки множества А = {Л,}”^ заявок, каждая из которых содержит обрабатываемые данные и ссылку на соответствующий программный модуль Ej из множества модулей Е = ^Е^ь с помощью которого должна быть выполнена обработка. Обслуживание каждой заявки состоит в последовательном выполнении ее на устройствах «прием», «обработка», «выдача».
Задача 1 является задачей теории расписаний. Для ее решения могут быть использованы различные подходы. В частности, она может быть сформулирована в виде частично целочисленной задачи линейного программирования. Однако получаемая при этом математическая модель будет иметь слишком большую размерность, даже приближенное решение при таком подходе является затруднительным. С другой стороны, условие ограниченности буфера, а также наличие директивных сроков не дают возможности применить к задаче 1 метод Джонсона.
Поэтому более целесообразным оказалось представление исследуемой задачи в комбинаторной постановке.
В качестве дискретного метрического пространства, в котором представляется задача 1, выберем множество всех перестановок элементов множества требований N = { A^i- Каждая перестановка й = (cob (о2, ..., <oj 6 Р определяет некоторую последовательность обслуживания требований.
Рассмотрим элемент й = (о)!, ..., <о„) £ Р и введем переменную Tto.k — момент времени начала обслуживания на приборе к требования о\, стоящего на i-м месте в очереди, определяемой данным элементом Й. Тогда каждое расписание из множества возможных расписаний однозначно определяется некоторой перестановкой Й £ Р и соответствующим этой перестановке множеством значений
r(fi) = IT.,
Каждое требование <о< 6 й находится на обслуживании в системе из трех приборов в течение временного интервала
Hto, = [Рф^ь Рф^з +^31»
а каждым из приборов обслуживается на интервалах
Hto(k = (P®z/?> ^№.к + ^.J, к = 1, 2, 3,
причем предполагается, что Ttoj = 0.
Перестановка Й £ Р является допустимым решением задачи, если соответствующее ей множество значений ^Tto.k^=il=i удовлетворяет условиям
^«^ “Ь ^®з ^ Роул t = L 2, ... , ft;
Т<й.к + ^.к ^ Рфл-н, i = 1 > • • • > ft, к = 1, 2;
Ittzg Q\
Hи).к A Htojk ™ 0) t ^ Ь h / = 1, .., , tt; h = 1, 2, 3,
S (% + M<°’ i. i , n.
Совокупность допустимых решений составляет множество G ^ Р. Выберем в качестве критерия оптимальности общее время обслужива-
ния требований. Тогда целевая функция при введенных обозначениях примет вид-
F(Q^ — Т(о^з + /ш^з, а задача 1 — видх
min {F (Q) — Тш^з -|- t^^lQ £ G}.
Придерживаясь введенных определений окрестности, точки локального экстремума, вектора спада, сформулируем алгоритм метода вектора спада применительно к рассматриваемой задаче.
Алгоритм
Выбираем начальное допустимое решение Qh С G. Помечаем h = 0.
Строим окрестность Ом (Q\ г) заданного радиуса г точки й\ Если при h = 0 Ом (^, г) Л G \ {Qti} = 0, то переходим к п. 4. В остальных случаях переходим к п. 3.
Находим отрицательную компоненту A (Q^, Qz) вектора спада R (Q^), полагаем QA = Йх, заменяем h на h + 1 и переходим к п. 2.
Если все компоненты вектора спада R (QA) неотрицательны, то Q'? — точка локального минимума функции F (Q) в области G. Заканчиваем работу алгоритма.
Выбираем другое начальное приближение либо радиус г большей величины и повторно применяем алгоритм.
Полученное таким образом решение является в общем случае локальным экстремумом и может не совпадать с глобальным экстремумом. Однако опыт решения практических задач показывает, что решение является удовлетворительным как по точности, так и по затрачиваемому машинному времени для его получения.
Задача 1 представляет также практический интерес для случая, когда в качестве критерия оптимальности выбрано время простоев какого-либо из приборов. Например, при минимизации простоев второго прибора целевая функция имеет вид
F (Q) = ^ (Т^^ — ^®^^ш^)*
Приведенный выше алгоритм решения задач в случае критерия F (Q) не претерпевает изменений.
Задача 2. Построить оптимальное расписание обслуживания п требований множества N = {1, 2, ..., и} в системе из трех приборов с ограниченным буфером объема V системы для хранения требований и с условием, что первый и третий приборы не работают одновременно. Все остальные характеристики — условия и исходные данные — совпадают с характеристиками задачи 1.
В частности, к задаче 2 можно свести задачу обслуживания п требований множества N = {1, 2, ..., и} двумя приборами с условием, что каждое требование должно быть обслужено сначала первым прибором, потом вторым и снова первым; буфер системы ограничен по объему.
Сформулируем задачу 2 в терминах комбинаторного математического программирования. Допустимые решения этой задачи, кроме условий (9.8), должны также удовлетворять условию
Hto.x f) 77tof3 = 0, /,/=],..., п.(9.9)
Обозначим G — область, определяемую условиями (9.8), (9.9). В качестве целевых функций можно выбрать в зависимости от требований целевые функции задачи 1. Таким образом, получаем задачи дискретного программирования
шт{Г(Й)==Т^з + ^з/Й^ и
min |F (Q) = S (Г^ - Т^ - t^/Q € Gj.
§ 4. ДЕКОМПОЗИЦИОННЫЕ СХЕМЫ РЕШЕНИЯ ОДНОГО КЛАССА ЗАДАЧ ЭКСПОНИРОВАНИЯ
Класс задач экспонирования возникает на последнем (технологическом) этапе автоматизации проектирования больших интегральных схем (БИС) и состоит в генерировании рисунков послойной топологии БИС генератором изображений (ГИ). Такой процесс достигается путем синтеза простейших плоских фигур (элементов покрытия), которые генерируют ГИ. Постановка и методы решения данного класса задач существенным образом зависят от типа ГИ, например оптического или- электронно-лучевого.
В математическом плане задача сводится к отысканию оптимальной, согласно некоторому критерию, последовательности элементов покрытия (или — для некоторых типов ГИ — их объединений, фрагментов рисунка топологии) для их экспонирования ГИ и относится к управлению ГИ [75].
Ограничимся рассмотрением ГИ с однотипными элементами покрытия и опишем его набором дискретных параметров Г (ух, ..., уг), характеризующих тип ГИ и наличие в нем различных операций над элементами покрытия. Параметры у/, / = 1, ..., г, задают количество дискретных единиц, которыми измеряются соответствующие операции (шаги операций). Каждая операция имеет свою «временную цену» ip / = 1, ..., г,— длительность одного шага /*-й операции.
Рассматриваемую задачу экспонирования формулируем в виде комбинаторной оптимизационной задачи (по критерию — минимум суммарного времени экспонирования), целевой функционал которой определен на пространстве, порожденном множеством элементов экспонирования. Последние соответствуют изолированным элементам покрытия или их совокупностям. Местоположение некоторого элемента экспонирования в упорядоченной последовательности всего множества задает настройку ГИ вектором-строкой значений его параметров на экспонирование этого элемента. Тогда настройка ГИ на экспонирование
всего множества элементов задается матрицей размерности k х г> состоящей из вектор-строк значений его параметров
Суммарное время экспонирования рисунка послойной топологии БИС вычисляется по формуле
/=1 ,=] [/=] J
где выражение в квадратных скобках определяет время экспонирования одного элемента покрытия (т0 — время экспозиции; т — время подготовки ГИ в одной операции на другую; 6//— двоичные величины! Чи = 0 -> 6j£ = 0; ^/< =^ 0 ^/1 = 1); сумма по i = 1, ..., st — время экспонирования одного фрагмента (sz — количество элементов покрытия в одном фрагменте); сумма по Z — 1, ..., к — время экспонирования всего рисунка (^ — количество фрагментов).
Оптимизационная задача экспонирования формулируется в виде! найти р* из уравнения
т (р*^ = min Т (р),
Р€ПСП
где П — метрическое пространство перестановок (множество решений задачи); П cz П — подмножество допустимых решений, задаваемое некоторыми ограничениями; р — точка пространства П, координаты которой суть элементы экспонирования.
Задачу можно решить с помощью приближенных алгоритмов, основанных на локальных итерационных методах направленного перебора и методах декомпозиции — расчленения задачи на ряд более простых в вычислительном отношении.
Описанная методика формализации и решения данного класса задач прошла практическую апробацию — машинные эксперименты, проведенные с этой целью, подтвердили ее работоспособность и целесообразность практического применения. Предложенный подход к решению класса задач экспонирования позволяет решать их независимо от используемых в каждом конкретном случае генераторов изображений, а также построить устойчивую подсистему экспонирования в системах автоматизации топологического проектирования БИС.
Рассмотренный класс задач характеризуется большой размерностью. Поэтому одним из подходов к решению задач является декомпозиция (расчленение) на более простые задачи.
Опишем две схемы приближенной декомпозиции класса оптимизационных задач, целевой функционал которых имеет аддитивный вид и определен на комбинаторном пространстве размещений с повторениями, включающем в себя подпространства обычных размещений и перестановок [751 (а значит, и рассмотренную выше задачу). Эти схемы, названные параллельной и последовательной соответственно, являются приближенными, так как в данном случае цепочка декомпозиционных задач, на которые расчленяется исходная задача, соответствует ей только частично.
Проиллюстрируем принцип построения предлагаемых декомпозиционных алгоритмов на общей задаче типа размещения, состоящей в выборе по определенному правилу конечного числа элементов из дискретного множества произвольных геометрических объектов и оптимальном, согласно некоторому критерию, размещению этих элементов на заданных позициях. При этом допускается случай размещения одинаковых элементов в различных позициях.
Основная идея предлагаемых схем декомпозиции исходной задачи состоит в разбиении множества, порождающего комбинаторное пространство определения ее целевого функционала, на подмножества и замене исходной задачи на цепочку декомпозиционных задач, целевые функционалы которых определены на множестве выборок-размещений из теоретико-множественных произведений подпространств, порожденных этими подмножествами.
Остановимся сначала на способах разбиения множества элементов, порождающего решения задачи. Приведем два таких способа — параллельный и последовательный. Пусть В = (6J?=i — множество с определенной внутренней структурой некоторых объектов. Для элементов множества В введем понятие их свойств, которые определяются природой самих объектов. Обозначим такие свойства оь и пусть {o/}fci — конечное множество этих свойств. Зададим на множестве В одноместный /г-значный предикат w (2), z £ В, следующим образом [37]:
И, если г обладает свойством of,
^(2)= L. 1(9.Ю)
'(0 в противном случае, t = I, ... , к— 1.'
Свойства Оь i = 1, .,., к— 1, выбираются здесь такими, что должны взаимно исключать друг друга. Тогда предикат w (2) разбивает множество В на к непересекающихся подмножеств Bt таких, что
U В( = В; n(=|BJ; ^ nt = п; Bt{\Bj = 0, t^/. (9.11)
It=l
Это параллельное разбиение множества В на подмножества В£.
Последовательное разбиение можно осуществить с помощью ряда двузначных предикатов (А/(z)}/^, которые задаются аналогично (9.10), однако здесь система свойств о< может быть отличной от первого случая. Например, требование взаимоисключения свойств не является обязательным, а предикаты A; (z) могут иметь сложную иерархическую структуру по отношению к Сь Каждый предикат Aj (2) разбивает множество В на два подмножества В/ и Bh на которых он соответственно выполняется и не выполняется: В = В, \j В,. Подмножество В,, в свою очередь, разбивается другим предикатом Л/_|_1 (2) на два подмножества В^х иВ^ и т. д., пока Bt не окажется пустым подмножеством; на некотором /-м шаге В = HJ Bs) (J В/. Очевидно, что с помощью \$=1 /
ряда двузначных предикатов можно осуществить параллельное разбиение множества В на подмножества, а также выборочно использовать предикаты из заданного списка.
Обратимся непосредственно к задаче и ее декомпозиционным алгоритмам — параллельному и последовательному.
Пусть множество / = {1, ..., т\ задает упорядоченные «посадочные места» элементов bu i = 1, ...» п, множества В, притом допустимы соотношения т^п. Пусть Р— общее пространство размещений с повторениями из п по т элементов множества В, | Р | = пт. Очевидно, что при т = 1 пространство Р совпадает с множеством В, а при т = п — охватывает подпространство всех перестановок элементов множества В. Пусть также на пространстве Р определена некоторая функция / (х), имеющая аддитивный вид, и необходимо решать задачу! найти х* из уравнения
f (х*) = min /(х),(9.12)
x^DcP
где D — область допустимых решений, задаваемая некоторыми ограничениями. Точки х € Р имеют т координат: х (0П ..., 0^), где 0; = bs при i £ I, bs^ В; притом допускается случай, когда 0; = 0S, i б I. Для удобства считаем, что величина т играет роль параметра множества В при разбиении последнего на подмножества; обозначим его В (т). Пусть также для параметра т задано к составляющих величин таких, что 2 mt = т. Величинам mt соответствуют подмножества It cz Is для которых mt = | Zt- | (в общем случае для получения mt можно применить к множеству / изложенные выше способы разбиения его на подмножества It cz I такие, что пц = | 1Д). Тогда в зависимости от величин mt и с помощью введенных выше предикатов разбиваем множество В (т) на подмножества Bt (т^ а В (т)9 для которых выполняется условие (9.11) и щ = \ Bt (mt)\, i = 1, ..., к. Всякому подмножеству Bt а В соответствует некоторое частичное6 подпространство Рь образованное размещением элементов 6(Z) £ Bt в mt позициях, |Л| = = п^.
Алгоритмы декомпозиции исходной задачи (9.12), целевой функционал которой определен на пространстве Р, состоят в замене ее на аналогичную задачу меньшей размерности, целевой функционал которой определен на множестве Р выборок-размещений размерности к из произведения вида P<h X Р^ X ... X Ркк\ где Рт £ {Л}?=1 и Рщ Ф Ф Р4^ при / Ф j. Пусть х (х^л, ..., х^) ^Р — точки подпространства Р cz Р, компонентами которых являются х1 ^ Р^ j = 1, ...» к. При таких предположениях очевидно, что Р совпадает с множеством всех перестановок из Pt, I Р | = к\ П ntL i=\
§ Слово «частичное» употреблено здесь для различимости Р/, точки xt (Р1(-, ..• ..., 0^) £ Pt которого имеют mt < т компонент, от обычных подпространств пространства Р, содержащих менее чем тт точек х (0Ь ..., 0^) С Р.
Алгоритм параллельной декомпозиции основан на том, что для всех точек х С Р функционал / (х) можно представить в виде
к
f^ = ^ h^+^f^,(9.13)
1=1
где fi (хО — функционал, определенный на частичном подпространстве Pt) a А/ (х) определен для всех х € Р. В данном случае исходная задача (9.12) с целевым функционалом f (х) заменяется на аналогичную с функционалом/ (х) вида (9.13).
Лемма 9.1. Для функционала f (х), определенного на пространстве Р и обладающего свойством (9.13), при условии неотрицательности функций ft (Xi) и &f (х) справедливо неравенство
f (х*) < V min fi (xi) + min bf (x).(9.14)
1=1 x^P{"
k
Доказательство очевидно, так как |Р|<|Р|, klH п^<пт. По
Z=1 кк
построению ^ щ =п; У т, = т\ пусть nt = п]к, i = 1, ... , к, и z=ii=i^
/7?* = min (maLi. Тогда пТпТ ... п^п™, k™^ п^ = пт; ктПп^>
> ккт* П ^ > kk П и"?! > к\ п п^.
Алгоритм параллельной декомпозиции задачи (9.12) при введенных ограничениях можно строить в двух видах: как одношаговый, по которому функционал f (х) минимизируется сразу на всем подпространстве Р, и как двухшаговый, по которому f (х) минимизируется по частям соответственно правой части выражения (9.13). Остановимся на втором типе этого алгоритма как на более быстродействующем и таком, который позволяет распараллеливать вычислительный процесс, хотя здесь имеет место более значительная потеря точности решения, чем в первом случае. Алгоритм сводится к решению ряда вспомогательных и одной основной декомпозиционных задач. Вспомогательные задачи имеют вид
fl (х,‘) = min fl (х().(9.15)
x^DHP.
Решая (9.15) для i = 1, ..., к, получаем ряд частичных решений Х|, ... ..., х^. Основная декомпозиционная задача строится для минимизации функционала А/ (х), значение которого зависит от последовательности компонент хУ^ 6 Рь Однако основная декомпозиционная задача решается только на части Р° пространства Р/Р° с Р, состоящей из точек х (хп, ..., xL), Хи £ Pb х'^ С Ps» и имеет вид
Д/(х*) = min ^f{x\(9.16)
x^D(\P»
Решение х* задачи (9.16) является приближенным решением задачи (9.12) в силу неравенства (9.14) и того, что точки х (х^, ..., х^) единственным образом представляются в виде упорядоченного объединения компонент xw € Рь
Утверждение 9.1. Если для всякого х £ Р найдется х° С Р° такое, что | f (х) — f (х°)| ^ б = const, то решение х* задачи (9.16) является приближенным решением задачи (9.12) и удовлетворяет неравенству /(х*) — f (х*) < 6.
Доказательство. Пусть х°£Р° удовлетворяет соотношению f W — / W = min (/ (х°) — f (х*)). Ясно, что / (х0) — / (х*) < 6. Тогда х°ер°
f (х°) — / (х*) = f (х®) — / (х*) + / (х*) — f (х*) С 6. Однако / (х°) — / (х*)^ ^ 0, / (х*) — f (х*) ^ 0, т. е. / (х*) — / (х*) < б, что и требовалось доказать.
Алгоритм последовательной декомпозиции задачи (9.12) является пошаговым, базируется на последовательном разбиении множества В (т) на подмножества В, ^mj). Однако в данном случае, как уже отмечалось, на каждом шаге имеется только два подмножества В/ (т^ и В/ (/и,) такие, что 6 (m) = I U Bs vn^ U В, (т,) и п, = | В,-|, п, ~ 's=l'
= | В/1, где /71/ = //г — У ms> гц = п — У ns. Значение параметра S=IS—1
ntj на каждом шаге задается или определяется как т^ = | //1 при последовательном разбиении множества / на подмножества // с помощью списка некоторых двузначных предикатов, заданных на множестве /. Как и в предыдущем случае, всякое подмножество B^mj), отделяемое от В (т) на /-м шаге с помощью некоторого предиката из списка {A, (2))/=i, определяет частичное подпространство Рр состоящее из размещений с повторениями из гц по ntj элементов подмножества Bj ^mj^ CZ 6 (/72).
Схема алгоритма последовательной декомпозиции задачи (9.12) сводится к решению цепочки задач вида
/(х‘)= min f(x^(9.17)
x^DCXP^—XPj
Однако для ускорения вычислительного процесса в случае громоздких задач алгоритм можно построить таким образом, чтобы учитывалось решение предыдущей промежуточной задачи, т. е. искать решение /-й задачи в виде х*-_\ (J Хр х} £ Рр
Решение X* последней задачи в списке (9.17) принимается в качестве решения задачи (9.12), которое также будет приближенным в силу выполнения условия леммы.
Отметим, что предложенные в работе [75] алгоритмы декомпозиции широкого класса комбинаторных задач оптимизации обладают рядом преимуществ по сравнению с прямыми методами решения. К таким
преимуществам следует отнести, например, быстродействие и возможность распараллеливать вычислительный процесс, а также простоту реализации их на ЭВМ. Кроме того, декомпозиционные методы не зависят от начального приближения, как, например, итерационные методы, хотя все декомпозиционные задачи в обеих схемах можно решать точными и приближенными методами.Описанные алгоритмы де-преимуществам следует отнести, например, быстродействие и возможность распараллеливать вычислительный процесс, а также простоту реализации их на ЭВМ. Кроме того, декомпозиционные методы не зависят от начального приближения, как, например, итерационные методы, хотя все декомпозиционные задачи в обеих схемах можно решать точными и приближенными методами.Описанные алгоритмы де-1Методf (X*)Время счета, с159 352129 60877,4226 68933,7238 671128 22648,9223 84625,2321 027120 22613,2220 2281,8———1—122 0288,81—221 5887,5——2—122 0269,62—223 1877,51Методf (X*)Время счета, с159 352129 60877,4226 68933,7238 671128 22648,9223 84625,2321 027120 22613,2220 2281,8———1—122 0288,81—221 5887,5——2—122 0269,62—223 1877,5Таблица 19Таблица 19композиции прошли практическую апробацию и показали удовлетворительные результаты как в смысле качества получаемого решения, так и в смысле затрачиваемых ресурсов ЭВМ. Эти алгоритмы применялись для решения реальных NP-полных задач — задач покрытия, возникающих при автоматизации проектирования больших интегральных схем. Целевой функционал общей задачи покрытия определен на пространстве размещений с повторениями, однако этот класс расчленяется на ряд подзадач, имеющих свои целевые функционалы и подпространства их определений. Так, на частной задаче экспонирования из этого класса проводился машинный эксперимент по сравнению предлагаемых схем декомпозиции с итерационными методами направленного перебора — методом вектора спада и методом секториальных направлений. Задача экспонирования в общем виде состоит в упорядочении последовательности прямоугольников, произвольно расположенных на плоскости, с целью оптимального (минимального) времени их отработки (экспонирования) генератором изображений. Целевой функционал задачи экспонирования определен на пространстве перестановок прямоугольников заданного множества и представляется в виде взвешенной суммы операций данного генератора изображений, каждая из которых характеризуется «временной ценой» Ограничительные условия этой задачи задавались конструктивно и несущественно влияли на ее условный характер, т. е. задача решалась как безусловная с последующей проверкой решений на выполнение этих условий.
преимуществам следует отнести, например, быстродействие и возможность распараллеливать вычислительный процесс, а также простоту реализации их на ЭВМ. Кроме того, декомпозиционные методы не зависят от начального приближения, как, например, итерационные методы, хотя все декомпозиционные задачи в обеих схемах можно решать точными и приближенными методами.
Описанные алгоритмы де-
преимуществам следует отнести, например, быстродействие и возможность распараллеливать вычислительный процесс, а также простоту реализации их на ЭВМ. Кроме того, декомпозиционные методы не зависят от начального приближения, как, например, итерационные методы, хотя все декомпозиционные задачи в обеих схемах можно решать точными и приближенными методами.
Описанные алгоритмы де-
1
Метод
f (X*)
Время счета, с
1
59 352
1
29 608
77,4
2
26 689
33,7
2
38 671
1
28 226
48,9
2
23 846
25,2
3
21 027
1
20 226
13,2
2
20 228
1,8
—
——
1—1
22 028
8,8
1—2
21 588
7,5
—
—
2—1
22 026
9,6
2—2
23 187
7,5
1
Метод
f (X*)
Время счета, с
1
59 352
1
29 608
77,4
2
26 689
33,7
2
38 671
1
28 226
48,9
2
23 846
25,2
3
21 027
1
20 226
13,2
2
20 228
1,8
—
——
1—1
22 028
8,8
1—2
21 588
7,5
—
—
2—1
22 026
9,6
2—2
23 187
7,5
Таблица 19
Таблица 19
В табл. 19 приведена часть результатов машинных экспериментов на БЭСМ-6 по решению задачи экспонирования в применении к фотооптическому генератору изображений — микрофотонаборной установке. Задача решалась для 28 прямоугольников с помощью алгоритмов метода вектора спада, секториальных направлений и описанных декомпозиционных схем. В таблице использованы обозначения: метод 1 — метод вектора спада; метод 2 — метод секториальных направлений; метод 1-/ — алгоритм параллельной декомпозиции, причем декомпозиционные задачи решены /-м методом (/ = 1, 2), метод 2-/ — алгоритм последовательной декомпозиции, причем промежуточные задачи решены /-м методом (/ = 1, 2); i — номер начального приближения ре
о *.
шения xt; Xi — решение, полученное из i-ro начального решения Xi соответствующим методом.
Как видно из табл. 19, машинные эксперименты подтверждают эффективность и целесообразность практического использования предлагаемых декомпозиционных алгоритмов — при незначительном ухудшении качества получаемого решения достигается весьма значительная экономия машинного времени.
Описанные декомпозиционные алгоритмы реализованы на языке ФОРТРАН для БЭСМ-6 в виде автономного комплекса программных модулей, предназначенных для решения класса задач покрытия в применении к микрофотонаборным установкам, и используются в одной из систем автоматизированного проектирования БИС. Программные модули, предназначенные для решения задачи экспонирования, включены в состав проблемного математического обеспечения одной из версий пакета прикладных программ семейства ВЕКТОР.
§ 5. ФОРМАЛИЗАЦИЯ И ИССЛЕДОВАНИЕ
ОДНОГО СПЕЦИАЛЬНОГО КЛАССА ЗАДАЧ РАЗМЕЩЕНИЯ
Одной из важных задач, возникающих при размещении различных объектов — деталей, производственных единиц, планировании застроек жилищных массивов и т. п., является следующая задача.
В евклидовом пространстве Е задано множество точек А = (ап ... ..., а^. Положение каждой из этих точек щ характеризуется вектором координат at = (aZi, а,2, ..., atr), i = 1, ..., п; г — размерность пространства Е.*#
Задача 1. Найти местоположение Р* = (р*, ..., Рг) для некоторой точки b такое, чтобы выполнялось равенство
...,«„) = ext/(p,an ...,a„).
Здесь / (•) —целевая функция определенного вида. В частности, целевой функцией может служить
Ц^, а„ ..., а„) = Д »<0Р—а4(9.18)
Здесь || • || — норма элемента пространства Е, заданная известным образом; ct — весовые коэффициенты. Целевой функционал (9.18) используется в обобщенной задаче Вебера [156]. Более сложной является задача, когда ищется местоположение не одного объекта, а целого множества (задача 2).
Задача 2. Найти местоположение р* = (Pf/, ..., р^,) для точек В = (ЬгЬ^, чтобы выполнялось равенство
f (Pi» • • •, Pm> av ..., <х„) = ext f (Р1; ... , Pm, alt ... , a„).
в£Е
/=1т
Для многомерной обобщенной задачи Вебера целевой функционал имеет вид
т пт j—1
/ (Р1« Pm> а1> • • • » an) “ X X cij || Р/aZ II ~h X X ^4/ IIР/ — Р» II-
/=1 ;=1/=2 4=1
(9.19)
Итак, пусть в условиях многомерной задачи Вебера необходимо разместить множество В = (6i}zLi элементов. Естественно решать эту задачу как последовательность задач 1 для элементов bv ..., 6m, соответственно, включая предыдущий, уже размещенный элемент bi_\r в множество At = (ах, ..., ап, bv ..., 6^1) постоянно размещенных элементов для задачи размещения последующего элемента Ь^ Таким образом, возникает последовательность задач
ИР*. аь ... , ccj = ext / (Pi. “i, • • • . “Д
f (Р*, av ... , а„, рГ) = ext / (р2, ап ... , а„, рГ),
/ (Pm, а1> • • • , ап, Р1, • • • , Pm— 1) == ext / (Pm, ап ... , а„, рГp^-i).
Следует отметить, что приведенная выше задача имеет свою важную практическую интерпретацию, а именно оптимизация последовательности построения и введения в строй промышленных объектов. Ясно, что в этом случае, вообще говоря, выбор последовательности определения точек р * не безразличен. Однако, если функционал имеет вид
HPv р„, а,a„) = f f М₽/~а4 (9J9) /=11=1
задача 2 минимизации целевого функционала (9.19) и последовательность задач
/ (РГ, а„ ..., а„) = min 2 ciX | Pi — at ||,
е,€Е t=i
ИРг’, av ... , а„, рГ) =min^ ^2||Р2 —az||,(9.20')'
f (Pm, а1> • • • э O^n, Р1 > • • • » Pm—1) — min V С(т || Pm (Zf [|
эквивалентны, т. е. приводят к одному и тому же решению. Последний факт следует из аддитивности целевой функции (9.19) и независимости точек р*, ..., Pm- В случае условной задачи (например, на расстояния между точками рп ..., рт наложены ограничения) это утверждение не имеет места.
Относительно задачи 1 минимизации целевого функционала (9.18) известна следующая теорема.
Теорема 9.1. Пусть it ^ 0 для I — 1, ..., п. Если р = р* является решением задачи 1 минимизации целевой функции (9.18), то ^ является
решением задачи 1 минимизации целевой функции
Г (р. “1«„)= X Ci IIР — р* + Ч (Р* — О.^ ||.
1=1
Легко показать, что справедлива аналогичная теорема в случае задачи минимизации целевой функции (9.20).
Теорема 9.2. Пусть 1€1 ^ 0 для i = I, ..., п, / = 1, ..., т. Если последовательность р* = (Pi, ..., pm) является решением задачи 2 минимизации целевой функции (9.20), то она представляет решение такой же задачи с целевой функцией:
п т
f (Pi, • • • , Pm> аь • • • , ап) = X X ^/ IIР/ Р/ + ^а (Р/ — ад II*
Z=1 /=1
Доказательство. Пусть 0* = (0*, ..., 0^) — решение задачи
птпт
S S ^1Р/-^»= ™in S £ МР/~<М-(9.21)
1=Л /=1v^E /=1 /=1
/=1,...^
Покажем, что последовательность р* также является решением задачи минимизации с целевым функционалом f.
Действительно, полагая t = max tih имеем
/=1,...Л
/=1,...#т
птпт
S S сИ || 0; - 0; +14 ф; - «а и = 5 s сИ1ц ц 0; - а< н
1 = 1 /=14=1 /=|
— X Xi (^< А/1| Р/ai || — СИ^ || Р/ — а< || + cljt II Р/ — °^ ||) —
<=1 /=1
птпт
= t X X СИ IIР/ — af II X X ^ц V — M IIР/ — «z || ^ 1=1 /=1Z«1 /=1
+ 0/) — «/1— S S Cij (t — tij) II0,’ — a, |.+ 0/) — «/1— S S Cij (t — tij) II0,’ — a, |.
+ 0/) — «/1— S S Cij (t — tij) II0,’ — a, |.
+ 0/) — «/1— S S Cij (t — tij) II0,’ — a, |.
Последнее неравенство следует из того факта, что Р* является реше/ р _р* \т
нием задачи (9.21), и, таким образом, Р'——.——+P/Iпри
\//=1
всяком р = (Рх, ..., рт), Р/ f Е, доставляет значение целевому функционалу, не меньшее, чем значение этого функционала при р = р*. Используя неравенство треугольника в применении к рассматриваемой норме, из приведенных выше рассуждений получаем
Г (01. •. • , 0m, «1, • • • . «л) ^
п т
^ S S ки || 0, - 0; +1 (0; - «а || - см а -1£/) и 0; - a< 11 к /=1 /=!
^2 § с0-8Р, -Р* + /(Р, — а) —)(р; —аа! =
“ X S СИ Р/ Р/ + ^/ (Р/ ad il’
f (Pl > • • • , Pm» а1» - • • , ^J ^ f (Pit * - • > Pzn> al> • • • > an)> что доказывает теорему.
Представим задачу 2 в дискретном варианте.
Задача 3. В заданной совокупности точек 6° поместить множество элементов В так, чтобы достичь минимума функционала f (Pi (р), • ••> Pm (р)> ai, —, «J; здесь ру (р) —вектор координат точки из множества В0, где расположен элемент bj (р) из множества В; р £ Р — элемент множества перестановок из множества В; bj (р) — элемент множества В, расположенный на /-м месте в перестановке р; an ... ..., ап — векторы координат точек, в которых находятся элементы множества А.
- Задача 3 является дискретным вариантом задачи 2 и состоит в отыскании такой перестановки р* £ Р, что
Z(Pi(P*X • •• » Рт(Р*\ ^ъ • • , «н) == ext/(р, (р;, р„(р), аь _ . , ап\D^P
Легко показать, что имеет место следующая теорема.
Теорема 9.3. Пусть 0 ^ h, ^ 1 для / = 1, ..., п, / = 1, ..., т. Если р = р* решение задачи 3 с целевым функционалом
f^iU^ban) -=2 2 CollP/W — aJI> (9-22)
z=i /=1
то р = р* является решением задачи минимизации 3 с целевым функционалом
Г (Р1 (Р), . » Pm (Р), «1, .... а„) -
= S 2 см II р/ (р) - РУ (р*) + tM (Р, (р*) -аа ||.(9.23)
г=1 /=1
Доказательство аналогично доказательству теоремы 9.2.
Определим V (р*) и покажем, что / (р*) ^ V (р}\
/'(р*) = 2 2 см||р,(р*)-р,(р*) + 1М(р,(р*)- «ан /=1 /=1
= 2 2 ^A/IIP/(p*)-«dl =t=l /=1
= 22 \cti Un IР/ (P*) - «z II - IIР/ (P*) ~ «, H || P, (p*) - осД )] = z = ! /=1
птпт
= 2 £ ^Z||pz(p*)—«а— S S cz/a-z^ip/W-^K
1=1 /=11=1 /=1
< 2 2 Си — а< — 0 — ^и) (Р/ (Р*) — “.) II =z=i /=1
= 22 сц || рх (р) - р/ (р*) + tu (Р, (р*) - а,) || = Г (р). г=1 /=1
Последнее неравенство вытекает из свойств метрики.
Итак, f' (р* ^ V (/?) для всех р ^Р, что и требовалось доказать. Аналогичная теорема справедлива и для случая р*-точки локального экстремума функции / (/?*).
Представив /' (р*) в виде
п т
Г (p*) = S S соММ/'*)—«4г=1 /=1
из теоремы 9.3 получим такое следствие.
Следствие. Если нужно изменить положение некоторого Ь/о (р*) без изменения полученной ранее точки решения р*, то его можно переносить в такую точку, которая уменьшает величины || р/о — at-1|, / = = 1, ..., п.
Отметим, что задача 3 имеет важное практическое применение. Задачей такого типа, например, является задача оптимального размещения ВЦ коллективного пользования (ВЦКП) [120], когда задано множество абонентов (предприятий) с координатами х и у, объемом обрабатываемой информации абонента (количество знаков в секунду) и объемом необходимых вычислительных мощностей (тысяч операций в секунду) для обработки этой информации. Требуется разместить конечное число ВЦКП в тех населенных пунктах, в которых находятся предприятия с установленными в них ЭВМ. При этом должны соблюдаться условия на типовые размеры ЭВМ ВЦКП, их стоимость и эксплуатационные затраты. Другой задачей подобного рода является задача оптимального размещения предприятий, производящих один продукт [1] и т. д.
Формальная постановка задач этого типа может быть, например, следующей. В заданной совокупности точек Л поместить множество элементов В, | Л | > | В |, так, чтобы диаметр множества Лх cz Л, занятого элементами В, был минимальным. Эту же задачу можно сформулировать с некоторыми дополнительными условиями, например, чтобы расстояние между точками занятого Лх cz Л и незанятого Л \ Лх не превышало заданную величину.
Рассмотрим решение одной из таких оптимизационных задач в пространстве перестановок Рп элементов некоторого дискретного множества Л.
В множестве точек Л \ В разместить множество элементов W (|М | ^ ^ | Л \ В |) так, чтобы минимизировать взвешенное суммарное расстояние элементов множества N к множеству В, т. е. найти такое размеще- 322
ние х* множества элементов N в точках множества Л \В, чтобы
V ед (х*) = min У ctd{ (х). 1=1 х^рп i=\
Здесь | ^ | = | Л \ В | = и; {^}/=| — вектор весовых коэффициентов; dt (х) — расстояние элемента Nt £ N до множества В при размещении х £ Рп, которое вычисляется следующим образом»
dt (х) -minSM (У),
где 6 ^N ^ (9) — евклидово расстояние точек Nt £ N до точек множества В. При этом на точки множества N могут быть наложены некоторые ограничения, такие, как, например, ограничения на расстояния между элементами множества N или ограничения на положение некоторых из них по отношению к другим и т. д.
Будем решать задачу исходя из следующих предположений. Пусть задано множество, состоящее из двух элементов. С помощью этих элементов представим множество Л так, чтобы оно являлось г-выборкой с ограничениями на повторения, заданными спецификацией {ль и2}, где nt — количество элементов f-го типа, i = 1, 2; п = гц + п2 — общее число элементов множества Л; г = п. В множестве Л элементы /-го типа равноправны, образуют семейство представителей типа, поэтому обозначим их одинаковыми символами а и Ь. Например, если п = = пг + п2 = 3 + 4, то Л = \aaabbbb^.
Построим множество перестановок Рп с помощью транспозиций элементов множества Л. Итак, пусть множество Л состоит из/^ элементов типа а и п2 элементов типа Ь. Введем оператор Р (k$ -> f), который ставит в соответствие множеству Л совокупность множеств Р ^^ / -> /) А, образованных из Л таким образом, что к элементов типа b остаются неизменными, а каждый i-й элемент типа а последовательно взаимно заменяется на каждый из остальных элементов типа Ь.
Определение 1. Совокупность множеств, образованных из любого множества С в помощью оператора Р (А, / -> /), / = 1, ..., п^ к = = 0, 1, ..., гц — 1, / = 1, ..., и2 — к, при любом фиксированном значении переменных / и к, назовем строкой S* множеств пространства перестановок Рп.
Например, пусть дано множество ^aaabbbb^ пг = 3, гц — 4. Применим к нему оператор Р (к, i j) при i = 1, к = 0, / = 1, 2, 3, 4. Тогда заданный оператор вырождается в оператор Р (/ -> /) [135], и мы получим следующую строку 5] множеств пространства перестановок Рп'.
S® — P(l-*h {aaabbbb} = \ЬаааЬЬЬ\ {baababb} {baabbab} {baabbba}.
Определение 2. Производной строкой R^ назовем совокупность множеств пространства РП1 полученных в результате действия оператора Р (k, i ->- jY i = 2, ..., nt; к = 1, ..., n2 — 1; / = 1, ...» n2 — к, на строку множеств S/Z}, причем при переходе от одного множества строки S^zi к другому значение переменной к увеличивается на единицу, т. е.
Pt = р (^, i-*h skd = $? и s*+’ и • • • и s?-'.
Например, применяя оператор Р (к, i -> /) при I = 2, к = 1, 2, 3; j = 1, 2, 3 к строке S?, образованной в приведенном выше примере, получим
/?2 = Р (k, 2/) (^baaabbb\ \baababb\ {baabbab} {baabbba}) =
= Р (1, 2 -> j) \baaabbb\ (J Р (2, 2/) \baababb\ J
U P (3, 2 -> /) \baabbab\ - S2 U S2 U S2, где
S2 = {bbaaabb} \bbaabab^ ^bbaabba^
S2 = \bbabaab\ {bbababa}, S^ = \bbabbaa\.
Определение 3. Совокупность строк S? множеств P (k, i -^ П Л, полученных из множества А с помощью оператора Р (к, I fY i = = 1, ..., n^ к = 0; / = 1, ...» п2, назовем окрестностью 1-го порядка пространства перестановок Рп. Совокупность множеств, полученных в результате действия оператора Р (^к, i j); i = 2, ..., zz^ к = 1, ... ...,n2—I;/ = l,...,n2— к, на строки множеств окрестности 1-го порядка, назовем множествами окрестности 2-го порядка и т. д.; совокупность множеств, образованных в результате применения оператора Р (А, I -> j); i = гц; к = n2 — 1; / = 1, ..., n2 — к, к производным строкам множеств окрестности (пг — 1)-го порядка, назовем множествами nrro порядка. Это значит, что все множества, попавшие в окрестность 1-го порядка, получены с помощью одной транспозиции элементов множества Ли т. д., все множества, попавшие в окрестность ^-го порядка, получены с помощью пх транспозиций элементов множества А.
Применяя оператор Р (k, I -> /) к множеству Л, строкам множеств окрестности 1-го порядка и производным строкам множеств окрестностей 2-го, 3-го и т. д., (мх — 1)-го порядка, построим окрестности 1-го, 2-го и т. д., пх-го порядка пространства перестановок Рп) т. е.
О0 = {Л};
о, = {Р(^, I /) а0}; I = 1, ... , пй к = 0; / = 1, ... , п2;
о2 = \Р(к, i->- /) Cj); i = 2, ... , пт; к = 1, ... , п2 — 1;
/ = 1, ... , п2 — к\
о3 = ^Р(к, i-^hOaY» 1 = 3nV, к = 2n2—1;(9.24)
/ = 1, ... , п2 — к
0П|-1 = {^(^, ^-►/Зо^-г}; 1=пг—1, гц; к = п2— 2, п2—И
/ = 1, .. . , п2 — к;
0„, = ^G(k, (-►Do^-iV, 1 = 14; к = п4—1; ] = 1, ... , пг — к; или
По =М};
01 — (J St", i=i
02 =02 =U, RuU, Ruи и ^.2 U ••• и R\,.n,-v,и и ^.2 U ••• и R\,.n,-v,(9.24')(9.24')°з = I U ^.2 I Uи=з J°з = I U ^.2 I Uи=з J2 U Ru Ui=4 J2 U Ru Ui=4 JS.U^LjU ••• U (ni-2) ^„„,-ьS.U^LjU ••• U (ni-2) ^„„,-ь
02 =
02 =
U, Ru
U, Ru
и и ^.2 U ••• и R\,.n,-v,
и и ^.2 U ••• и R\,.n,-v,
(9.24')
(9.24')
°з = I U ^.2 I Uи=з J
°з = I U ^.2 I Uи=з J
2 U Ru Ui=4 J
2 U Ru Ui=4 J
S.U^LjU ••• U (ni-2) ^„„,-ь
S.U^LjU ••• U (ni-2) ^„„,-ь
е,— s,"—»;—-/?;<^Рис. 10е,— s,"—»;—-/?;<^Рис. 10
е,— s,"—»;—-/?;<^
Рис. 10
е,— s,"—»;—-/?;<^
Рис. 10
О^ — *хпъп—1>
где R^i (t = 1, ..., nv j = 1, ..., л2 — 1, / = 1, ..., пх— 1) — производные строки, полученные в результате действия оператора Р (к, I ->
/) на строки S?-i, i=l, nv ок- ег— - s®
рестности 1-го порядка, производные
строки окрестности 2-го ит.д., (пх —\^
— 1)-го порядка. Если условно обозна-^-
чим стрелкой (->) результат действия оператора Р (к, I -> /) на строки и производные строки окрестностей порядка г = 1, пг—1, то алгоритм (9.24') образования множеств пространства Рп можно представить в виде схемы (рис. 10), которая является основой его машинной реализации. Из этой схемы видно, что оператор Р (к, i -^ j) действует на строки и производные строки множеств пространства Рп последовательно (на схеме — сверху вниз). При этом число множеств, попадающих в окрестность порядка г = 1, ... ..., пх, вначале, начиная от nv п^ увеличивается, а затем по достижении г значения, равного -—-, убывает (за счет увеличения индексов I и k) и при г = пх становится равным единице.
Докажем, что полное пространство перестановок Рп множества А состоит из объединения множеств ок-
рестностей at, i = 0, 1, ..., nv построенных по алгоритму (9.24), т. е.
Рп = Н, °и
или, что то же самое, мощность пространства Рп о = :—г .
Для доказательства данного утверждения достаточно разбить множество всех перестановок Рп на два подмножества так, чтобы одно подмножество не содержало ни одной перестановки, в которой первый элемент находился бы в своей исходной позиции, а второе должно содержать все перестановки с этим элементом в его исходной позиции. Для двух таких подмножеств данное утверждение справедливо.
Точное численное решение поставленной задачи не всегда представляется возможным (особенно при больших значениях переменных nY и п^ ввиду больших затрат машинного времени. Поэтому будем искать приближенное ее решение такое, которое достаточно хорошо удовлетворяет некоторым наперед заданным условиям. Для этой цели воспользуемся одним из итерационных методов, применяемых для решения дискретных оптимизационных задач подобного типа, а именно методом вектора спада. Не останавливаясь на нем подробно (метод достаточно хорошо описан, например, в [134]), отметим только то, что поиск решения задачи f (х) = ext f (х), где X — n-мерное простран- x£RcX
ство, каждый элемент х которого является упорядоченной совокупностью перестановок элементов av а2, ... ап некоторого дискретного множества, ведется в локальной области Охр to, г) Q R; Р — метрика, определенная в пространстве X; хг — некоторое начальное значение х. Изменяя соответствующим образом значение г от единицы до п, мы тем самым расширяем область локального поиска решения задачи до области глобального поиска при г = п.
Если в нашем случае в качестве областей Охр (xh г) Q 7? взять окрестности радиусов г6 = 1, ..., и, то становится возможным построить один из алгоритмов приближенного решения поставленной задачи с помощью метода вектора спада.
В качестве примера найдем численное решение поставленной задачи в двухмерном пространстве, когда элементы множества А заданы координатами 10 точек, а элементы множества В — координатами 3 точек. В множестве А требовалось разместить 5 элементов множества N так, чтобы минимизировать взвешенное суммарное расстояние элементов множества N к множеству В, т. е. минимизировать функцию / (х) так, чтобы расстояние между элементами множества N достигло 15 и более условных единиц.
В данном случае множество А состояло из 10 элементов (az = 10), из которых 5 должны были остаться свободными, так что пг = 5, az2 = = 5. К множеству А применялся оператор Р ^к, i -> /); i = 1, ..., 5; к =? 0, 1, ..., 4, / = 1, ..., 5, с помощью которого по алгоритму (9.24)
Таблица 20
Элемент множества А
t
2
3
4
5
6
7
8
9
10
Минимальное расстояние до множества В
1
0
8
85
63
45
50
100
80
56
35
30
2
8
0
83
65
44
47
100
78
65
40
37
3
85
83
0
45
40
36
30
14
93
60
28
4
63
65
45
0
31
40
40
30
50
28
13
5
45
44
40
31
0
10
56
35
65
25
20
6
50
47
36
40
10
0
58
35
75
35
29
7
100
100
30
40
56
58
0
22
90
66
45
8
80
78
14
30
35
35
22
0
80
50
29
9
56
65
93
50
65
75
90
80
0
40
28
10
35
40
60
28
35
35
66
50
40
0
21
строились окрестности 1-го, 2-го и т. д., 5-го порядков пространства перестановок Рп. Расчеты велись по методу вектора спада. До начала работы алгоритма на основании координат элементов множеств А и В были построены две таблицы: таблица попарных расстояний между элементами множества А (формируется и используется в виде правого треугольника матрицы с нулевыми диагональными элементами) и таблица минимальных расстояний каждого элемента множества А до элементов множества В (табл. 20). Пространство перестановок Рп для этой задачи состояло из 252 перестановок. Из них | а01 = 1, | ат | = 25, | а21 = 100, | а3 | = 100, | а4 | = 25, | а51 = 1. Множества 1-й и 2-й окрестностей ох, а2 были найдены и проверены на ЕС-1040 за 0,16 с. Полное пространство перестановок Рп (5,5) было проверено за 1,17 с. Значение f (х) улучшалось 98 раз и улучшилось на 17 % по сравнению с начальным приближением.
6. ОБ УСТОЙЧИВОСТИ ВЫЧИСЛИТЕЛЬНОЙ СХЕМЫ
МЕТОДА ВЕКТОРА СПАДА ПРИ РЕШЕНИИ
ОДНОГО КЛАССА КОМБИНАТОРНЫХ ЗАДАЧ
Вычислительные задачи прикладной математики отличаются тем, что решения принимаются в условиях неполной информации: числовые величины, как правило, известны лишь с некоторой точностью. Поэтому необходимо изучение зависимости так называемой устойчивости решений по отношению к допустимой неточности числовых данных.
Естественно, что определение устойчивости решений для различных классов задач имеет свои особенности, и каждый класс задач требует отдельных исследований по вопросам устойчивости решений. Примером таких исследований служат устойчивость по Ляпунову, корректность. Для решения некорректных задач А. Н. Тихонов предложил метод регуляризации [152], нашедший широкое применение. Устойчивость в задачах математического программирования исследовалась, например, в работах [28, 57, 85]. Общая схема устойчивости приведена в [57]. Основными понятиями этой схемы служат: исходные данные, на основе
которых принимаются решения, и способ переработки исходных данных в решение, называемый моделью. Очевидно, любая рекомендуемая для практического применения модель должна быть исследована на устойчивость относительно допустимых колебаний исходных данных.
В работе [135] рассмотрены вопросы устойчивости алгоритмов метода вектора спада на одном классе комбинаторных оптимизационных задач.
Итак, пусть задано конечное дискретное множество U, на котором определена функция рл («) со значениями на отрезке [0, 1], или, другими словами, определено нечеткое множество Д, характеризующееся функцией принадлежности рл (a) 1. и [0, 1].
Пусть W = Wu, М = Мд — множества комбинаторных объектов, порождаемых множествами U и А соответственно; для конкретности предполагаем, что Wu и Мд — множества всех подмножеств U и А. Далее, J (w, рм (до)) — функционал, определенный на множестве W.
Рассмотрим безусловную задачу минимизации функционала J (до, рм (яу)) на множестве W•
J (w*, рм (до*)) ^ J (до, рм (до)), w^W,(9.25)
и «возмущенную» задачу
J (w*, рм (до*)) ^ / (до, рм (w)^ w£Wt(9.26)
где рл (и), и £ U^ удовлетворяет условию
О ^ рл (п) — 6в (а) ^ рл (и) ^ рл («) + 6в (и) ^ 1.(9.27)
Здесь 6в (и) — некоторая неотрицательная функция, определенная на U. Из соотношения (9.27) следует, что 6в (и) принимает значения из отрезка [0, Пи может рассматриваться как функция принадлежности некоторого размытого множества В; функции рл (м) и 6в (^) связаны соотношением (9.27).
Рассмотрим решения задач (9.25) и (9.26) методом вектора спада и попытаемся определить условия, при которых названные алгоритмы описывают устойчивый вычислительный процесс, или, короче, являются устойчивыми.
Под устойчивым вычислительным процессом решения задачи (9.25) понимаем вычислительный процесс такой, что для всякого наперед заданного е >> О существует такое 6 >> 0, что если 6в (м) ^ 6, и £ U, то
I / (^°*, рм (o'0*)) — J (^°*, рм (^°*)) | < е,
причем до0» = до0*. Здесь J (до0*, рм (до0*)), J (до0*, рм (до0*)) — решения, полученные для задач (9.25), (9.26) рассматриваемым алгоритмом. Изучим устойчивость одного из алгоритмов метода вектора спада [128] в применении к задаче (9.25). Остановимся кратко на общей схеме метода [134] в применении к задаче (9.25).
Алгоритм
Определение начального приближения ш0 £ W; i = 0.
Построение множества Ow (^z, г) — окрестности радиуса г с центром в точке wt.
Решение (точное или приближенное) локальной задачи
J (ш/+ь рм te+i)) < J (w, рм (ш)), w^Ow (т, г).
Проверка выполнения условия конца вычислений (это может быть, например, равенство wt = t^z+i); в случае невыполнения этого условия — переход на п. 2 при t + 1 = L
Как видно из постановки задач (9.25) и (9.26), п. 1 и 2 алгоритма при решении этих задач совпадают; положим, что п. 4 также не зависим от значений рм (ш) (как признак окончания вычислений выбрано, например, выполнение равенства ш,+1 = ^) и уточним п. 3 алгоритма, а именно: при заданном порядке перебора точек единичной окрестности Ow (wt) 1) точкой ww служит первая точка, для которой выполняется неравенство
J (WW> рм (^Z+O) < / (Wb рм W)-
Изучим устойчивость этого алгоритма. В дальнейшем для сокращения будем называть его алгоритмом 1 МВС.
Предположим вначале, что(
J («у, рл1 (ш)) = 2 СИМ (ui).(9.28)
Упорядочим величины ^рл (mz), i = 1, 2, ..., п; \ Щ = п, согласно возрастанию; для простоты предположим, что элементы множества U уже пронумерованы в порядке возрастания величины с^а kutY
Схрл (^i) ^^ ^гРл (^2) ^^ * * * ^^ ^«рл (^п)’(9.29)
Пусть имеем задачу (9.26) с возмущенными (измененными) значениями функции принадлежности рл (и) такими, что упорядоченность (9.29) не нарушалась, т. е.
£1Рл (^1) ^С ^гРл (^2) ^^ * * • ^^ ^иРл (^п)*(9.30)
Тогда легко доказать, что алгоритм 1 МВС устойчив при решении задачи (9.25) в описанном выше смысле.
Действительно, точки окрестности Ow (^z, И единичного радиуса (такой радиус окрестности определяет точку локального экстремума [134]) в наших предположениях относительно множества W образуются двумя способами: исключением из Wt одного элемента или прибавлением к wt одного из элементов множества U \ wt. Учитывая вид целевого функционала (9.28) и последнее замечание, заключаем, что алгоритм 1 МВС на каждой итерации будет находить точку t^z+i, общую для обеих задач, если только сохраняется условие упорядоченности (9.30) для задачи (9.26), т. е. при этих условиях для обеих задач (9.25) и (9.26)
будет получена одна и та же точка локального экстремума. Оценим величину
I J (tW°*.(да0*)) — J (w0*, ЦМ (да0*)) I
< Е к(||цл(и<)— Цл(«ЛК S |cj|^(tiz)— цл(«0|, (9.31) и^.и^и
max |c, ||^(«i) -цл^ОК^-,(9.32)
получим
| J (да0*, им (да0 )) - J (да0*, цм (ф°*)) | < е,(9.33)
чем и доказана близость экстремальных значений целевого функционала.
Допустим, что целевой функционал J (со, рл (со)) удовлетворяет условию: при w £ W
| J (да, рм (да)) — J (да, рм (^)) | ^ С | рм (да) — рм (w) |, С = const, (9.34)рм (да) = V Нл («с),
U.^tV
где операция V выбирает максимальное значение из списка величин. Тогда имеет место следующая теорема.
Теорема 9.4. Необходимым и достаточным условием устойчивости алгоритма 1 МВС при решении задачи (9.25) и соблюдении условия (9.34) является выполнение равенства
sign (J (w, рм (^)) — / (w\ рм (о/))) = sign (J (^, рм W—J (ш\ рм (w^,
(9.35)
где функция sing х определена общепринятым способом.
Отметим, что аналогичные исследования целесообразны и для других классов комбинаторных оптимизационных задач и типов алгоритмов.
§ 7. ИССЛЕДОВАНИЕ УСЛОВИЙ ЛОКАЛЬНОЙ
ОПТИМАЛЬНОСТИ РЕШЕНИЯ ОДНОЙ СПЕЦИАЛЬНОЙ ЗАДАЧИ
Вопрос о количестве локальных экстремумов функции является весьма трудным и не новым. Для гладких функций эта проблема решается благодаря использованию понятия производной. Для других же классов функций, особенно функций дискретных, методы определения количества локальных экстремумов разработаны мало и, более того, не указаны необходимые и достаточные условия существования таких экстремумов. Примером может служить функция
f to = Е Е Мп W»(9.зб)
а^А а.^А
где х — перестановка элементов конечного множества А мощности п. Каждой перестановке х соответствует множество действительных чисел \dij (х)}?,/=!, зависящих от положения элементов аь а^ в перестановке х; это могут быть, в частности, евклидовы расстояния между элементами аь а, С А, в перестановке х; d/ — интенсивность связей
между элементами at) aj £ А (сц задаются матрицей связей С = ||^/||?,/=ь где п = | А |, Си = 1). Этот пример взят из области проектирования и является одной из классических целевых функций в комбинаторной оптимизации.
Общеизвестно, что функция (9.36) многоэкстремальна. Ясно, что количество локальных экстремумов этой функции зависит от мощности множества А и заполненности (количества ненулевых элементов) матрицы С. Однако вопросы, касающиеся количества локальных экстремумов этой функции, необходимых и достаточных условий локальной оптимальности, остаются открытыми.
В работе [58] установлено условие, гарантирующее, что некоторая точка х £ X не является локальным экстремумом функции / (х).
Рассмотрим задачу минимизации функции (9.36), определенной на метрическом пространстве Р = Ра перестановок из множества А, | А | = = п.
Пусть х° — точка локального максимума, х — точка из пространства Р, достижимая из х° последовательностью элементарных перестановок л = (лх, ..., л^). Далее, пусть W — множество элементарных перестановок, уменьшающих значение / (х0), т. е. / (х°) > / (дох0), если w £ W.
Лемма 9.2. Если имеется элементарная перестановка wQ£W uwQ^ п такая, что элементы множества А, образующие wQ, не связаны с элементами, образующими последовательность элементарных перестановок л, то точка х, достижимая из точки локального максимума х° последовательностью элементарных перестановок л, не может быть точкой локального минимума.
Доказательство. Применим элементарную перестановку до0, удовлетворяющую перечисленным в лемме условиям, к некоторой точке х 6 Р. Пусть AWo — множество элементов из А, образующих элементарную перестановку до0, Ал — множество элементов из Л, образующих последовательность элементарных перестановок л, А* = — Л\(Лйуо U Лл).
Представим в связи с этим функцию (9.36) в виде
= S / 5 смаИ^А- X смйц^А- S сИ4ц(хЙ а^А \a^Aw„а^Ала^А’/
ИЛИ
/ to = S 5 Сцйц to + 5 £ chdij to + 2 Е Cijdij (х) + ai^-Aw0 aj^Aw0Qi^wtt а^-Ала^-Аи)0 a{^A'
+ 2 S Cijdij (x) + 2 S Cijdij (X) + 2 S Сцйц to + а£Ая U,^A®„а£Ал а^Алa£An a^A'
+ S S Cijdij^-v S 2 Cijdij(xH £ S CijdiiVxY (9.37) a^A' QjEAWoa.^A' a^A^a^A' a^A'
Поскольку по условию леммы элементы множеств Л^ и Лл не связаны между собой, то соответствующие ci, в таблице интенсивности связей равны нулю; таким образом, для / (х) второе и четвертое слагаемые в выражении (9.37) равны нулю.
Пользуясь выражением (9.37) и равенствами, вытекающими из условий леммы 9.2,
X X Cijdij (х) = X X Cijdij (t^ox), а^-АЛ aj^AJlа^АЛ aj^An
X X Cijdtj^ = X ^] Cijdij (t^ox);
о^Ал aj^A'a£An aj^A'
X X Cijd(x)X X Cijdij(Ы^дХ),
a^A' a^A’a^A' a^A'
имеем
Цх)— f (wox) - £ S Mi, (x) + S S ctldtito + °1€Лш0 aj£AwQafiAw0 ai^A*
+ X x Cijdij (x) + 2 V M«W + S X Cijdij (x) + ai^An а1^Алaj^An ai^A'Q£A’ a^Aw0
4“ X X Cijdij (^) 4~ X X Cijdij (x) Xj X Cijdij (WqX) — a^A' a^Ana^A' a.^A’afiAw0 aj^Aw0
X X c^dq (WqX) X X Cijdij (x)X X Cijdij (x)—
a£AW0 Qj^A*а^АЛ aj^An^^Ал a^A*
^j Cijdij (t^gX)^ 2 Cijdij (йУдХ) JJ ^j C{jdij(x) =
a^A* a^Ayy^a.^A' a^A^a^A* a^A*
== 5j Xj Cijdij^x^ 4~ 5j 5j cijdij^x^ 4~ Xj 5j Cijdij (x0) —— a^Aw0 aj^Aw0a£Aw0 aj^A'ai^ a^AWc
5j Xi Cijdij ^W^X^ Xj X Cijdij (t^o-^o)
at^^tt>0 п/^А|Уоai^-Aw0 aj^A*
— ^ S Сцац (tyoxo) = f (x0) — f (tyoxo).
a^A' a^A^
Здесь использованы равенства между определенными слагаемыми, входящими в представление (9.37).
Итак,
fW — f (WOX) = f (х^ — f (фохо) > О
вследствие локальной максимальности х0. Этим лемма доказана.
Естественно, что если элементы, образующие элементарную перестановку w0, не связаны с элементами последовательности элементарных перестановок л, достигающей элемента х, то эта связь также отсутствует при изменении порядка элементарных перестановок в последовательности л, т. е. w0 W соответствует | Лл У различным точкам пространства Р, не являющихся локальными минимумами функции f (х). Множества таких точек, соответствующих элементарной перестановке wr £ IF, обозначим Nr.
Теорема 9.5. Мощность множества точек, не являющихся локальными минимумами функции (9.36), ограничена снизу числом |S|, где
Подобные исследования могут быть проведены и для других дискретных функций, например для целевой функции задачи о назначениях, задачи коммивояжера.
Полученные результаты могут использоваться при построении вычислительных схем, в частности при определении экстремального элемента в окрестности (метод вектора спада и его аналоги).
§ 8. ВОПРОСЫ МНОГОКРИТЕРИАЛЬНОЙ ОПТИМИЗАЦИИ
ПРИ РЕШЕНИИ КОМБИНАТОРНЫХ ЗАДАЧ
Источники возникновения многокритериальных задач и некоторые их постановки. Практически всякая реальная задача оптимального проектирования схем, конструкций, составления сетевых графиков, планов и т. д. требует, чтобы искомое решение находилось с учетом многих критериев качества. Последние, как правило, противоречивы и разнородны в том смысле, что качество сравниваемых альтернатив невозможно адекватно выразить одним комплексным или интегральным критерием, представляющим собой некоторую свертку исходных (частных) критериев. Это замечание означает, что аппарат классической (т. е. однокритериальной) оптимизации становится недостаточным для поиска и принятия наиболее целесообразных решений. Таким образом, приходим к необходимости разработки более широкой и общей теории, которую чаще всего называют многокритериальной оптимизацией [94, 101, ПО].
Исследования в области многокритериальной оптимизации в настоящее время особенно интенсивно стимулируются практическими потребностями АСУ и систем автоматизированного проектирования (САПР). Ниже рассмотрим ряд многокритериальных постановок задач, возникающих при проектировании электронно-вычислительной аппаратуры (ЭВА). Применительно к САПР ЭВА можно сказать, что математический аппарат дискретной многокритериальной оптимизации в значительной степени превратился из абстрактной теории в инструмент практической деятельности [109].
При постановке конкретных задач, рассматриваемых в настоящем параграфе, используются технические термины, определение которых можно найти в работах [90, 123]. Наиболее изученной можно считать математическую постановку многокритериальной задачи компоновки схем узлов ЭВА, которая охватывает два этапа проектирования: 1) покрытие вентилей или логических схем типовыми ячейками (корпусами микросхем); 2) разрезание полученной на предыдущем этапе электрической принципиальной схемы (ЭПС) прибора на такие же схемы его конструктивных узлов. В практике САПР за этими этапами закрепились названия: задача покрытия и задача разбиения (разрезания). Условимся, что мы также будем придерживаться этих названий.
Задача разбиения приводится в конце параграфа. Она формулируется в терминах гиперграфов и охватывает лишь разрезание исходной схемы на подсхемы без размещения, т. е. без привязки ее элементов к точкам коммутационного поля [123, 90].
Математическая постановка задачи покрытия сводится к нахожде- нйю покрытия данного n-вершинного графа G {I, U) типовыми графами из заданного набора 9?. Ниже рассматривается случай покрытия ячейками с несвязными элементами [123], когда набор 91 представляет собой множество простых цепей, называемое множеством допустимых типов (покрывающих цепей). Ограничимся случаем, когда вершины исходного графа G и вершины цепей из 91 однотипны, т. е. цепи различаются только своей длиной /, где под I понимается количество вершин в соответствующей цепи: 9? = {/} представляет собой множество допустимых типов покрывающих цепей.
Покрытие графа G = (/, (7), l = \i^ U = {и^, 1 ^ i С / ^ п, представляет собой множество х = \ЬД цепей Lr = [tj, ..., i\ ], irf 6 A на графе G, lr £ 91, r = 1,2, ..., |x|, которые попарно не пересекаются, и каждая вершина i £ / инцидентна одной цепи из х. Покрытие х определяет собой допустимое решение формулируемой задачи, если все цепи Lr £ х имеют допустимый тип и являются цепями графа G, т. е. если всякое ребро цепи Lr — это некоторое ребро из множества U ребер заданного графа. Пусть X = {х} —множество всех таких покрытий, или, в другой терминологии, множество допустимых решений задачи покрытия, качество которых определяется рядом критериев Fk, составляющих множество F = {^l или вектор F = (Aj, ..., Fk, ... ..., F^, где т — количество критериев.
В нестрогой формулировке многокритериальная задача о определенными на X целевыми функциями Fk (х), й = 1, т, состоит в отыскании такого элемента х0 £ X, на котором достигали бы минимума значения Fk (х). Легко увидеть противоречивость такой формулировки, так как в общем случае для всякого элемента х0 £ X найдется элемент х' С X такой, что для некоторого к = к0 выполняется строгое неравенство Fko (х') < Fko (х0). Поэтому под терминами «задача с критериями Ft ..., Fm» или «задача с векторным критерием F» подразумевается задача отыскания некоторого подмножества Х° паретовского множества X ^ X [101, ПО]. Смысл Х° будет определен ниже.
Вектор (J\, ..., F^ условимся обозначать F в случае, если речь идет о произвольных постановках многокритериальных задач, для которых целевые функции Fk (х), к = 1, ..., т, не конкретизированы. Если компонентами этого вектора являются конкретные критерии Fk задачи покрытия графа цепями, то используем для него обозначения вида F^\ v = 1, 2, ... Целевые функции Fk (х) указанной задачи покрытия определяются следующим образом:
/^ to — взвешенное количество типов цепей, использованных при построении покрытия х:
Fi W = S U(ti to, (9.38)
где tv (х) = I, если х содержит цепи /-го типа, и tt (х) = 0 в противном случае; yz — весовой множитель: значение vt тем больше, чем выше затраты, связанные с постановкой типовых ячеек Z-го типа для производства проектируемой ЭВА; F^ (х) — суммарное количество цепей, образовавших покрытие х, т. е. F^ (х) = |х|; F^ (х) — удельный вес покрытия х.
В общем случае F^ представляет собой множество F3 = {F3} однотипных критериев, в котором F3 = Fl (х) = —Цг- 2 S aV s =
= 1, ..., у, где ац — приписанный ребру иц £ U вес s-ro вида. Веса at/ отражают степень влияния на соответствующую связь таких факторов, как задержка сигнала, воздействие помех и т. п. Веса at, принимают целочисленные значения из отрезка [1,7?SL
Условимся обозначать F^ — критерий FT в случае, когда в выражении (9.38) для всех / С ^ значение весового множителя yz = 1, т. е. когда FT = F? — количество типов цепей, использованных при построении покрытия х. В дальнейшем будем рассматривать постановку задачи покрытия графа цепями в трех вариантах с векторными критериями
= (F?, F2, Fl),(9.39)
= (Р°ь F2, Fl, Fl),(9.40)
= (^1, F2, Fl).(9.41)
Пытаясь подытожить пока еще начальный опыт практического использования аппарата дискретной многокритериальной оптимизации, остановимся на некоторых общих методологических проблемах, к которым привело развитие этого направления на современном этапе.
К проблеме построения эффективного алгоритма решения многокритериальной задачи. С позиции системного анализа [101, 1451 можно говорить о полном решении задачи с векторным критерием F в том случае, если из множества допустимых решений X выделено его паретовское множество X [101, ПО]. По аналогии с классической или однокритериальной оптимизацией два решения хъ х2 5 X эквивалентны, если F (хх) = F (х2). Тогда всякое Х° ^ X представляет собой точное или полное решение конкретной задачи с векторным критерием F = (Fv ..м F^, если
F(X0) = F(X),(9.42)
где F (X) = {у 6 Ет/у = F (х) = Ц\ (х), ..., Fm (х)), х 6 X} — множество достижимых (векторных) оценок [1101.
Множество достижимости F (х) представляет собой образ отобра- Fw
жения X -> Ет в /n-мерном евклидовом пространстве Ет, F (X) — па- ретовская граница для F (X).
Возвращаясь к однокритериальной оптимизации как к частному случаю многокритериальной, заметим, что классическим требованием
является нахождение одного оптимума х°, а не всех х* £ X таких, что f (х*) = f (х°). Аналогично под решением многокритериальной задачи подразумевается минимальное по мощности подмножество Х°
с X, удовлетворяющее равенству (9.42).
В случае однокритериальных постановок вектор F состоит из единственного элемента Fb в результате чего мощность | Хо | = 1, т. е. искомое решение Х°, состоит из единственного элемента х°. Для однокритериальных задач с конечным множеством допустимых решений X уже выработано общепринятое понятие эффективного алгоритма или эффективно решаемой переборной задачи, когда время, за которое гарантируется выделение Х° на X, ограничено полиномом от размерности задачи [35]. Напомним, что задачу называют неразрешимой эффективно (алгоритмически неразрешимой, ХР-полной, трудноразрешимой [35]), если известные алгоритмы ее решения гарантируют нахождение искомого оптимума х° лишь в результате перебора экспоненциального числа вариантов х X.
Для многокритериальных задач наименьшая мощность |Х°|, при которой еще выполняется равенство (9.42), может в принципе иметь скорость роста, превосходящую какой-либо полином от размерности задачи. Иными словами, мощность искомого решения Х^ настолько велика, что оно не может быть представлено в виде выражения, длина которого была бы ограничена полиномом от длины входа. В этом случае получаем задачу, трудноразрешимую в самом сильном смысле, причем трудноразрешимость ее доказуема [35].
В терминологии [35] задача с векторным критерием вида (9.39), (9.40) или (9.41) называется массовой. В отечественных публикациях (см. [23] и др.) такая постановка называется просто «задача»: задача покрытия, задача коммивояжера и т. д. При фиксации всех параметров задачи получаем задачу индивидуальную [351 или конкретную [23]. Если для этих параметров указаны соответствующие области или множества значений, то приходим к понятию «класс конкретных задач» или кратко «класс задач». Например, если для задачи с векторным критерием (9.39) ребра utj исходных n-вершинных графов взвешены натуральными числами а^ £ [1, 7?1 и множество 9? типов покрывающих цепей состоит из единственного значения / = 10, то получаем класс задач, который обозначим Кп®к; при 19? | ^ 2 этот класс обозначаем Kn.R •
При разработке алгоритмов для решения задач с векторными критериями вида (9.39) — (9.41) очень важно обосновать возможно более точную нижнюю оценку р максимальной мощности | F (X) | паретов- ской границы. На вычислении таких оценок базируется доказательство [108].
Теорема 9.6. Задача с векторным критерием (9ЛО) трудноразрешима в самом сильном смысле [35], как требующая в общем случае экспоненциальной трудоемкости для гарантированного получения искомого решения.
Доказательство. Обозначим Кп — какой-либо класс конкретных задач с векторным критерием (9.40) фиксированной размер- 336
ности п, подразумевая, что область значений параметра 91 — всевозможные подмножества множества {2, 3, ...,п\. Пусть Кп — множество всех тех представителей класса Кт У которых 91 состоит из одного элемента п. Порождающую класс Кп постановку задачи покрытия можно назвать «гамильтонова задача». В терминологии [35] это означает, что имеет место сводимость задачи к задаче с векторным критерием (9.40).
Из включения Кп ^ Кп следует, что рл ^ рл, где рп (рл) — максимум значения | Х° |, взятый по всем конкретным задачам из Кп (из КпУ Мы получим требуемое доказательство, если укажем такую конкретную гамильтонову задачу, для которой значение | Х° | не ограничено сверху полиномом" от п. С этой целью рассмотрим задачу с векторным критерием (9.40) для случая покрытия гамильтоновой цепью исходного n-вершинного графа G (/0, (70), в котором ребра Uq £ Uo взвешены по правилу! аХц = 2\ ^/ = Со — 2Л, где г = 1, 2, ..., М,— порядковая нумерация ребер в UQ, М = | Uo |; константа Со > 2м. Для этого случая в множестве X = (х) всех гамильтоновых цепей х — Lr = = [Zf, ..., Q графа Go всякая пара хи х2 является векторно несравнимой по (Fa, F2), т. е. паретовское множество X = X и мощность паре- товской границы | F(2) (X) | = | X | = | X |. Отсюда следует, что искомое решение Х° единственно и определяется равенством Х° = X = X, причем для мощности | Х° | достижимым является значение (и — 1)1 Тем самым теорема 9.6 доказана, поскольку в рассмотренном случае трудоемкость записи искомого полного решения Х° превосходит значение экспоненты от размерности задачи.
# Справедливость теоремы 9.6 устанавливается в достаточно широком классе задач, например, когда диаметр области [1, #J значений весов с2*
aq превосходит е п. Сужение класса ведет к понижению уровня труд- норазрешимости задачи. Чтобы подтвердить этот факт, рассмотрим частный случай задачи с векторным критерием (9.40), когда в двухкритериальной задаче с векторным критерием
F4 - (F^, F23)(9.42')
ищется покрытие n-вершинного графа гамильтоновой цепью. Для этой задачи справедливо утверждение [108], устанавливающее верхнюю оценку для паретовской границы F (X).
Теорема 9.7. Если веса asq ребер покрываемого п-вершинного графа для положительных Rx, R^ принимают целочисленные значения aq € € [1, /?iL aq С [1, R^» то оценка
| F (X) | < ЗС^„ (min {/?ъ Я2}), »0 = [-£-] + 1, для паретовской границы множества достижимости задачи с вектор* ным критерием (9.42*) справедлива, где [6] — наибольшее целое, не превосходящее Ь.
Доказательство. При фиксированном F2 целевая функция Fa (х) может принимать не более чем (п — F2) Rs значений; в свою очередь
^WCU.S, п0-1}, и0 = [-2-] + 1.(9.43)
Отсюда для количества различных значений образов Fa (X) и Fa (X) справедлива верхняя оценка
I^3 WI< I Fsa (X)| < "s (и - F2) R3 = 3Cn0Rs. (9.44) f2=i
Выделим из X наименьшее по мощности подмножество Хо такое, что I F (Хо) | = | F (Х)|.
Рассуждая от противного, предположим, что условия теоремы 9.7 не выполняются, например при 7?х < R2 мощность | F(4) (X) | ^ СХДи и в то же время для всякой пары паретовских решений задачи с векторным критерием (9.42) хп х2 £ Хо имеет место несовпадение в смысле ^ Ui) =# ^(4) W- Отсюда с учетом (9.44) имеем Fa (xj = Fa (х2) при Fa (Xi) 5^ Fa (x2). Эти соотношения означают доминирование одного из решений над другим, откуда вытекает требуемое для доказательства теоремы 9.7 противоречие: по определению паретовское множество не может содержать доминируемых решений.
Пусть Rs = Rs (и), s = 1, 2,— полиномы от п. Из теоремы 9.7 вытекает, что при выполнении указанного полиномиального ограничения на веса ац неправомерно распространять утверждение теоремы 9.6 на рассматриваемые нами классы задач с критериями вида (9.39) — (9.42).
Замечание. Пусть X = {х} — множество допустимых решений произвольной дискретной задачи с векторным критерием F* = | (F*, Fg, F3) и Мк = |Ffe (X) | — количество различных значений, которые принимает функционал F^ = F^ (х) на X, к = 1, 2, 3. Тогда для множества достижимости F* (X) и его паретовской границы F* (X) справедливы верхние оценки следующего вида: |F* (Х)| ^ | F* (X) | ^ П Mfe. Более того, рассмотрим, например, задачу с векторным критерием F = (Fi*, F2), которая представляет собой двухкритериальную подзадачу задачи с векторным критерием F*. Тогда теорему 9.7 можно обобщить следующим образом:
| F* (X) |< Л121F (X) | ^ M2min (Л^, М3}.(9.45)
Подстановки задач с векторными критериями вида (9.40) — (9.42) чаще встречаются в так называемых полиматричных задач коммивояжера [108]. Рассматриваемые нами задачи покрытия чаще оказываются задачами с одним критерием Fa — элементом множества F3. Для таких 338
задач справедливо утверждение [108], устанавливающее верхнюю оценку мощности их полного решения.
Теорема 9.8. Если ребра покрываемого п-вершинного графа взвешены числами а\{- ^ {/,2, ..., Ег^ то при достаточно больших п для паре- товской границы множества достижимости задачи с векторным критерием (9.41) справедлива оценка | F3' (Х)| ^ ~ min |-|- п2 (п + + I) Rv ^Vn-ms^ где А = я f/^ В = Из — е„, Нт е„ = 0.
Доказательство. Применительно к (9.38) введем обозначения: N = | 911, где множество 92 = {/} допустимых типов покрывающих цепей условимся везде в дальнейшем представлять упорядоченным по возрастанию значений /, т. е. в виде вектора 9? = (/п ..., 1Ь ...
1^, где 1г < ... < lk < ... < In. Тогда каждому х С X можно поставить в соответствие вектор у = у (х) = (угук> ..., уп), где у^ — количество цепей длины 1Ь вошедших в покрытие х. Будем говорить, что множество X порождает множество Y = {у} = ^у (х)/х £ X).
Известно, что Y является собственным подмножеством множества Z = (z), г = ^ц» • •> 2Zfc, ..о Z/^) всех решений в натуральных числах диофантова уравнения 5 tob = п 162]. В комбинаторном анализе [108] мощность |Z\ —это количество всевозможных разбиений числа п. Асимптотическое поведение | Z | достаточно хорошо изучено Рами- нуджаном и Харди [108]:
|Z|«—(9.46)
IZI
где знак ««» означает, что limг-1—!——— = 1. Принимая во вни-
1gAVп
4п/з
мание условие 4^2, 6 = 1, .... N, получаем строгое неравенство
I^KRI.(9.47)
С учетом определения (9.38) при фиксированном 91 рассмотрим отображение X -> Т (X), Т (X} = {/ (х)/х € X}, где / (х) = (Zz, (х), ... ..., hk (х) ..., hN (х)). Вектор t (х) можно определить несколько иначе, чем в (9.38); tik = yk, если в у (х) значение ук = 0, и tife (х) = 1 в противном случае. Отсюда
|7(Х)|<|У|.(9.48)
Количество различных значений, которые принимает на X функционал Ft (х), удовлетворяет неравенству | Ft (X) | ^ | Т (X) |. Отсюда с учетом (9.46) — (9.48) при соответствующем выборе е„, lim е„ = 0, получим
22‘22‘339
22‘
22‘
Для завершения доказательства теоремы 9.8 остается в замечании к теореме 9.7 положить F* = Fv F^ = F3 = F3 и использовать в (9.45) условие (9.43) и оценки (9.49), (9.44).
Асимптотический подход к дискретным многокритериальным задачам и алгоритмы с оценками. Вытекающие из теоремы 9.6 выводы можно сформулировать следующим образом. Нет смысла ставить вопрос о создании достаточно общих методов, которые бы оказались эффективными для задач с векторными критериями вида (9.39) или (9.40). Необходимо сознательно идти по пути разбиения общей многокритериальной задачи на более узкие классы и, пользуясь их спецификой, разрабатывать для них эффективные алгоритмы, или, что более перспективно, алгоритмы с оценками [23]. С учетом большой размерности возникающих на практике реальных задач (п ~ 104 4- 10е) представляется целесообразным так называемый асимптотический подход [107]. Например, применительно к задачам с векторным критерием (9.39) ставится вопрос о выделении достаточно широких классов /С^, в пределах которых можно существенно сократить перебор при решении почти всех конкретных задач данного класса [71].
Рассматривая какой-либо класс конкретных задач, например задач с векторным критерием (9.39), предполагаем, что область значений каждого параметра определена, вообще говоря, как функция от п. Например, если веса щ, ребер данного графа — натуральные числа из отрезка [1, 7?s], то Rs = Rs (п); в частности, Rs может быть не зависящей от п константой. Поэтому уместно рассматривать этот класс как последовательность множеств Кп. п = 1, 2, ..., где Кп — класс конкретных задач фиксированной размерности п, |/Сп|—его мощность. Пусть Кп — подкласс всех конкретных задач из Кп, обладающих свойством со, и К = U Кп* Говорят, что почти все задачи из К обладают свойством со, если доля таких задач в Кп стремится к 1 с ростом п, т. е.
1 при п -> оо. Особый интерес при этом представляют
классы Кп\я такие, что для почти всех конкретных задач из К^к искомое полное решение Х° состоит из единственного элемента х°, на котором достигают своих оптимумов ak = min Fk (х) все критерии Fk £
£ F : Fk (х°) = ак, к = 1, 2, ..., т (здесь и далее F^ обозначаем F3). Отсюда, в частности, следует, что в этом случае паретовская граница F (X) множества достижимости F (X) состоит из одной точки: \F (Х)| = 1.
В прикладном плане, например, с точки зрения создания математического обеспечения САПР ЭВА, особую ценность приобретают указанные выше результаты в том случае, если они носят конструктивный характер, точнее, если получаются вследствие использования конкретного малотрудоемкого алгоритма.
Предполагая п кратным Z, обозначим az — следующий «параллельный» алгоритм построения покрытия х = х (Z) графа G (/, LT) цепями фиксированной длины I. На нулевом этапе множество / разбивается 340
на I равномощных подмножеств 7V, | /v| = A, v = ]у е#м /. Далее все ^ = -^- цепей Lr^x строятся параллельно по этапам v = 1, ... ..., / — 1. На этапе v выделяется совершенное паросочетание Pv минимального веса в двудольном графе G = (Iv, /v+i, U^, где U^ состоит из всех таких ребер щ, € U, концы которых принадлежат разным долям: i € 7V, j € Ан-ь Обозначим Av — матрицу весов ребер графа Gv. Выделенные на этапах v = 1, ..., / — 1 ребра и^ £ Рх образуют nil цепей длины L которые и составляют искомое покрытие х.
Паросочетания Р^ можно находить посредством решения задачи о назначениях [107] для матриц Av или с помощью специализированных алгоритмов поиска совершенных паросочетаний [2051. Трудоемкость
/ п
одного этапа составляет примерно I — I элементарных операций. Если предполагать произвольное или случайное разбиение множества вершин / на подмножества /v, v = 1, ..., Z, то требуемая для алгоритма az память составляет ~п211 ячеек.
Введем следующие обозначения: 9?^ — множество всевозможных матриц А = || а//1| весов графов G в классе задач ^^, Со = 2 + 6П, ^п = 4S—^ 0, ф (п) оо при п оо. В [1071 установлено, что при 7? ^ *с ”п п для почти всех матриц А £ 9?л,я оптимальное решение задачи о назначениях состоит из минимальных (для данной матрицы) элементов. Опираясь на этот результат, можно показать справедливость следующих утверждений относительно задач с критериями (9.39), (9.41).„
Теорема 9.9. Если I = /0 — константа, R ^ гтт / и \ > ^
для почти всех конкрет ных задач из K^r алгоритм а, находит покрытие х°, оптим альное по каждому из критериев F^ € Fa\ k = 1, 2, 3
Из теоремы 9.9 вытекает следствие.
Следствие. Если для заданного упорядоченного набора типов 9? = = \1к\к=л и функционала (9.38) значение OtN удовлетворяет условию ViM = min о,, то для почти всех задач из /С^р алгоритм а, находит 'би
покрытие х°, оптимальное по каждой из компонент вектора F®.
Большой прикладной интерес представляет случай априорного определения в K^.r классов Kn,R> в = (8lt е2, е3), таких, что для почти всех (или всех) конкретных задач из Kn,R с помощью некоторого алгоритма а малой трудоемкости находится е-оптимальные решения задач с критериями (9.39) — (9.41) Xs с X, удовлетворяющие неравенствам
шах min ■ * ^ ^—^- ^е*, к = 1, 2, 3.(9.50)
^х ^Еех= Fkto
В неравенстве (9.50), приближенное решение Xе может не содержать оптимальных паретовских решений х £ X. Более сильное требование сводится к нахождению одного решения х* ^ X такого, что
6=1, 2,3, (9.51)
где гк — некоторые приемлемые априорные оценки относительно погрешности по критериям Fk соответственно. Результаты, относящиеся к приближенному подходу в смысле (9.50), (9.51), приведем во взаимосвязи с таким кибернетическим понятием, как иерархичность [101].
Иерархическая структура и декомпозиция. Необходимость иерархической организации [101] в сложных системах, в том числе в сложных многокритериальных проблемах,— это следствие их сложности и большой размерности, когда одновременная, единоразовая обработка всей информации просто невозможна либо требует такой затраты ресурсов (времени, памяти и т. д.), которая недопустима по техническим и экономическим условиям. *
Основная цель, преследуемая при введении иерархической организации, или, что то же самое, иерархической структуры,— декомпозиция всего объема переработки информации на реализуемые части и распределение этих частей по элементам уровней иерархии. Например, рассматриваемая в п. 1 общая постановка задачи компоновки оказалась разбитой на две иерархически соподчиненные задачи: на нижнем уровне — задача покрытия, результат решения которой служит исходной информацией для верхнего уровня — задачи разбиения.
По-видимому, одно из первых исследований иерархической «лестницы» оптимизационных задач представлено в работе [176] на примере постановок, связанных с выбором оптимального количественного соотношения и оптимальных технических характеристик различных технических устройств. В этой работе осуществлена оценка величины отклонения от точного решения задачи (/и + £)-го уровня в зависимости от погрешности данных, являющихся результатом решения задачи /n-го уровня. Результаты [176] относятся к непрерывным задачам; их обоснование осуществлено при весьма жестких ограничениях, накладываемых на целевые функции, таких, как непрерывная дифференцируемость (дважды) и др. Применительно к дискретным многокритериальным задачам компоновки (в смысле разбиения) методология иерархичности рассматривается в [18].
Для задач с критериями (9.39) — (9.41) вопрос об иерархической организации алгоритма сформулируем в виде: при каких условиях становится возможным разбить множество критериев вектора FM на подмножества Ф„, и = 1, 2, ..., определяющие собой задачи нескольких уровней, и при этом, чтобы результат решения задачи с множеством критериев Фи в достаточно малой степени сказывался на решении задачи последующего уровня с множеством критериев Ф«+ь
Указанный подход для задач можно реализовать следующим образом. Множество критериев векторов F^ или F^ разбиваем на два
подмножества: одноэлементное Фх = {Т-з} и двухэлементное Ф2 = = ^. F2} или Ф2 = ^Flt F2}. Смысл решения задачи с критерием Фт заключается в нахождении гамильтоновой цепи L минимального веса для исходного графа G. Задача с критериями (F?, F2) состоит в разбиении L на цепи длины In = max Z, задача с критериями (Ft, F^ — в определении значений Zo £ 9?, наиболее целесообразного с точки зрения критериев Ffe £ Ф2 ,и разбиения L на цепи длины Zo.
Пусть ф (п) — произвольная, растущая от п функция; Игл ф (п) = = оо. В [107] для задачи нахождения минимального гамильтонова цикла (цепи) содержится описание алгоритма Аф, который является локальным [48, 49, 134] и работает в окрестности первого и второго порядков; его трудоемкость ~п2. Из результатов [1071 вытекает, что при R ^ —т-^ указанный выше двухуровневый подход (редукция F^ (Фх, Ф2)) для почти всех конкретных задач на Кп\ приводит к решениям х8, асимптотически точным по Fa и точным по F0!, F2.
Методы декомпозиции [167, 134] по своей сути реализуют идеологию иерархической организации исходных данных решаемой задачи. Это утверждение особенно наглядно проявляется в исследуемом классе задач покрытия, для которых целевые функции Fa сепарабельны как по переменным, так и по группам переменных, порождаемых декомпозиционными преобразованиями. Последние рассмотрим для простейшего случая, сводящегося к разбиению исходного графа G на подграфы Gv, v = 1, ..., d. Условимся обозначать а^ — всякий алгоритм, применяемый для нахождения покрытия цепями каждого из подграфов Gv, а в результате и всего графа G.
Нас интересуют вопросы, формулируемые в смысле параметрической декомпозиции [167]: какому закону при варьировании параметром d подчиняется изменение таких показателей эффективности алгоритма, как трудоемкость т = т ^^ требуемая оперативная память, граница R (данного класса /С^), в пределах которой достигаются точные или асимптотически точные решения, и др.
В [107] исследован случай, когда алгоритм a(d>, работающий по известному принципу «иди в ближайший», применяется для решения задач с критериями (9.39), (9.41) в классе Sin,/? полных п-вершинных графов, ребра uq которых взвешены числами aq £{1,2, ..., 7?}. В этом случае асимптотическая оптимальность по Fa сохраняется при выполнении условий R ~ ^^ , т ^ -~ п2. При снятии ограничения на R оценка е3 относительно уклонения значения Fa (х) от оптимума аз обратно пропорциональна величине т (для почти всех G £ 21п,/?).
Отказ от оптимальности по Fv F2 позволяет существенно расширить границу R. Более точно, в этом случае при значении d = 2 алгоритм типа a(d) строит точные по Fa покрытия х для почти всех задач из K^.r» если R ^„ ■.
о In п
Как отмечено выше, в общем случае задача покрытия состоит в нахождении покрытия, другими словами, разбиения графа G типовыми графами из набора 9?. Для последующих этапов проектирования элементы (цепи или типовые графы) покрытия представляются вершинами. Но электрические связи, существовавшие между этими вершинами, сохраняются без изменения. В результате получаем гиперграф [90], который представляет собой исходную информацию для следующего этапа проектирования прибора — этапа разбиения или разрезания схемы прибора на ЭПС конструктивных узлов. Соответствующую этому этапу задачу формулируем независимо от предыдущей, допуская при этом повторное использование некоторых символов.
Математическая постановка многокритериальной задачи разбиения. Электрическая принципиальная схема прибора адекватно представляется в виде n-вершинного гиперграфа Н = (/, t7), в котором вершины пронумерованы числами i = 1, 2, ..., п, а цепи ur £ U — числами г* = 1, ..., R*, иг = {^, ..., t/J. Каждой вершине 1^1 приписаны веса; t^ — высота; со^ — рассеиваемая мощность; р^ — размер монтажного пространства.
Компоновка ЭПС прибора в ЭПС конструктивных узлов (КУ), например, печатных плат, пронумерованных числами р = 1, ..., М, представляется разбиением Н на подгиперграфы Нр = (Jp, Up), где ребра и^ ^ Up определяются пересечениями иг П 1Р- Переменные задачи удобно представлять булевой п X Л4-матрицей х = Цх^Ц, где XiP = 1, если I £ /р, и xip = 0 в противном случае. Множество X = {х} всех таких матриц, удовлетворяющих заданной системе ограничений, называется множеством допустимых решений.
На множестве X определим целевые функции F1 (х), составляющие некоторый критерий F* = (F*b Fl, F^p
м
^1 (*) = S (max utxip),(9.52)
P=1 l^/^n
(
n\
S ®iXtPI.(9.53)
z=i/
M R»
fз (X) = S S Isign (4 — zrp)l sign zrp,(9.54)
0=1 r=l
где zr„ = X xip — количество вершин ребра ur, включенных в подгиперграф Нр; по определению sign г = 1, если z > 0, и sign z = О в противном случае.
Содержательный смысл критериев: F* — суммарная высота пакета скомпонованных КУ; F^ — степень равномерности распределения рассеиваемой мощности в объеме прибора; F3 — суммарное количество внешних связей КУ [108]. Критерии Fl, k = 1, 2, 3, требуется также минимизировать.
Поскольку для каждого Fl £ F* значение ак = min Fl (х), то х^Х
относительное уклонение полученного с помощью некоторого алгоритма а приближенного решения Ха cz X задачи с критериями (9.52) — (9.54) от искомого оцениваем сверху вектором г = (еъ е2, е3), где
Ч = min -!- фк (х) — ак\
Алгоритмы декомпозиции и агрегирования для задачи разбиения. Используемая при решении задачи с критериями (9.52) — (9.54) процедура декомпозиции основана на известных подходах [134, 167] с учетом специфики данной постановки. Существенной новизной отличаются разработанные для задачи с критериями (9.52) — (9.54) приемы агрегирования.
Предлагаемое (при фиксированной степени декомпозиции d) семейство А = {а9} приближенных алгоритмов решения этой задачи базируется на использовании двух процедур агрегирования, где q — степень агрегирования, указывающая, из какого количества вершин i £ I должна образовываться каждая групповая (агрегированная) вершина. Кроме параметров q и d, работа алгоритма а? управляется вариацией компонентов вектора X* = (Xf, Х2, Х3), Хк ^ 0, k = 1, 2, 3, У А = 1.
z?=i
Директивной последовательности X1, ..., X7* соответствует на выходе алгоритма а° последовательность допустимых xz g X, образующих некоторое приближенное решение Х^ = {х*} конкретной задачи с векторным критерием F*.
Поиск одного х^Ха<7 базируется на минимизации свертки o(Xf) — з
= 2 ^Fk при фиксированном К. Реализовать этот принцип оказа
лось возможно лишь в результате аппроксимации критериев Рь^-^ min, к = 1, 2, 3, новыми однородными целевыми функциями ф^ (х) ви
да Фй (х) = 2 S S ^jXipXjp -> max, где а^ = min {—^-, —^}; а® = Р=1 <=1 /=1I v/ и< J
= 1 — min , 4Ц ; а® = _!_ Сц, Стах = max си, си — количество ребер иг^и, содержащих пару вершин i» j.
Формирование подгиперграфов Нр осуществляется последовательно по шагам s = 1, 2, ... На шаге s к текущему множеству Ip-n cz /р присоединяется та из свободных вершин is, которая максимизирует 3
сумму 2 У ХкаТ?, р = 1, ...» М. Вычислительная схема каждого /с/р”1 fe==1 s
шага фактически базируется на (ставших уже общеизвестными) локальных принципах направленного выбора [134].
Для задачи с критериями (9.52) — (9.54) с помощью массового машинного эксперимента установлены закономерности взаимозависимого изменения оценок гк или, что равносильно, нормированных значений Fk = — Fl и нормированных трудоемкостей тн = тн ^q, d) для
представляющего практический интерес класса гиперграфов Н. Полученные закономерности аппроксимируют собой паретовские границы множеств достижимости [101] для указанного класса задач [108].
Наиболее существенным результатом, полученным в процессе машинного эксперимента, является установление такого свойства алгоритмов а^ Л, как их управляемость посредством вариации значений компонентов Х^ ^Х1. Желаемая управляемость выражается в том, что определенное известными правилами изменение относительных значений Х^ g Xz обеспечивает на выходе алгоритма предсказуемое перемещение получаемых образов F* (V) по паретовской границе в нужном направлении.
Выявление указанного свойства управляемости существенно облегчает проблему полного решения многокритериальной задачи F*. В этом случае отпадает необходимость выделять из X множество Х(е), достаточно представительное в том смысле, что его образ F* QC.^ аппроксимирует собой всю паретовскую границу F (X).
В реальной производственной ситуации, предусматривающей использование САПР ЭВМ, в качестве окончательного выбирается одно решение х* £ Х(е\ Тогда при наличии управляемости вместо выделения Х^ можно в режиме, близком к диалоговому, построить достаточно экономную последовательность xz, t = 1,2, ..., приводящую к х*.
Глава 10
ИССЛЕДОВАНИЕ НЕКОТОРЫХ ВОПРОСОВ ВЫПУКЛОГО АНАЛИЗА ПРИ РЕШЕНИИ ЗАДАЧ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ
Одним из путей повышения эффективности решения задач ДО является исследование множеств допустимых решений и целевых функций этих задач с целью использования характерных их свойств при построении соответствующих алгоритмов. В последнее время разрабатываются различные подходы к вопросу об условиях совпадения локального и глобального экстремумов в задачах оптимизации, которые основываются на введении понятий, аналогичных общеизвестным понятиям выпуклого множества и выпуклой функции, и соответствующей переформулировке известного утверждения о совпадении локального минимума с глобальным для выпуклых функций, определенных на выпуклых множествах [Д51].
Одним из первых примеров такого подхода было рассмотрение В. П. Черениным при разработке метода последовательных расчетов [174] функций, обладающих довольно общим, указанным ниже свойством, в некотором смысле аналогичным свойству обычной выпуклости. Этот метод предназначен для нахождения экстремума функции / (х), определенной на множестве X всех подмножеств некоторого конечного множества А и удовлетворяющей условию
/ W + / (У) < f (X и y) + f(x П у)
лля произвольных х и у из X. Последнее неравенство и определяет свойство выпуклости в смысле В. П. Черенина (называемое часто условием субмодулярности) функции / (х) для случая решения задачи min {/ (х)/х X}.
В последнее десятилетие получены интересные результаты в области создания метрических аналогов понятий выпуклого множества и выпуклой функции. В работах П. С. Солтана и его учеников развивается направление, связанное с понятиями d-выпуклого множества и d-выпуклой функции (см. [14, 146] и цитированную там литературу). Часть полученных ими результатов обобщена В. П. Солтаном при разработке аксиоматической теории выпуклости [146]. Имеется ряд приложений результатов, связанных с понятиями d-выпуклости, в комбинаторной геометрии и теории экстремальных задач на графах [14, 147]. Некоторые аспекты d-выпуклого анализа освещены в § 2 данной главы.
Существует и другое направление в разработке метрических аналогов понятия выпуклости, отраженное в § 1. В работе [8] вводятся понятия r-выпуклых множества и функции, отличающиеся от соответствующих понятий d-выпуклого анализа так же, как отличается требование принадлежности множеству вместе с любыми двумя его точками х и у хотя бы одной кратчайшей (в смысле выбранной метрики), соединяющей х и у, от требования принадлежности множеству всех кратчайших, соединяющих х и у. В работе [133] получены еще некоторые результаты в этом направлении, применимые для случая дискретных множеств, а в [134] изучаются понятия выпуклости и линейности функции определенной на множестве всех подмножеств некоторого конечного множества.
Представляют интерес исследования, проведенные для случая, когда на множество накладываются условия порядковой выпуклости [3]. Примером такого подхода служит цикл работ В. А. Емеличева, М. М. Ковалева, В. Г. Овчинникова, в которых на основе порядковой выпуклости и матроидных структур рассмотрены координатновыпуклые функции и сформулированы условия совпадения локальных и глобальных экстремумов этих функций на частично упорядоченных множествах. Некоторые результаты, полученные в этом направлении, освещены в § 3.
Понятие г-выпуклости было введено нами первоначально для дискретного множества такой структуры, что условие r-выпуклости, накладываемое на какое-либо из его подмножеств, оказалось эквивалентным требованию включения в данное подмножество вместе с любыми двумя его точками хотя бы одной точки на соединяющей их кратчайшей. Это наблюдение послужило основой для развития понятия г-выпуклос- ти в применении к дискретным множествам более общей структуры и без предположения о введении в них метрики. В работе [142] предложен подход к выпуклому дискретному анализу, позволивший обобщить модели выпуклости, лежащие в основе работ [8, 63, 133, 147] и отраженные в первых трех параграфах данной главы.
В § 4 изложен ряд результатов, полученных в [142], которые касаются достаточных условий совпадения локальных и глобальных экстремумов выпуклых и r-выпуклых функций на выпуклых и /--выпуклых множествах.
§ 1. УСЛОВИЯ СОВПАДЕНИЯ ЛОКАЛЬНОГО И ГЛОБАЛЬНОГО ЭКСТРЕМУМОВ В ЗАДАЧАХ ОПТИМИЗАЦИИ.
ПОНЯТИЕ г-ВЫПУКЛОСТИ
Рассмотрим и в некоторой части обобщим основные результаты, полученные в работах [8, 133], которые возникли в связи с замеченной возможностью перенесения ряда понятий, получивших большое распространение для функций, определенных на n-мерном евклидовом пространстве Еп с метрикой
Р (*. У) = ^Д кЧ — У^,
где х = (хъ ..., хп), у = (уъ ..., уп^ £ Е\ на функции, задаваемые на других метрических пространствах, с другими метриками и другой структуры. Речь идет об одном обобщении общеизвестных понятий выпуклого множества и выпуклой функции и соответственной переформулировке известного утверждения о совпадении локального минимума с глобальным для выпуклых функций, определенных на выпуклых множествах.
Пусть F (х) — действительная функция, однозначно определенная на некотором множестве X, которое будем рассматривать как метрическое пространство с метрикой р (х, у), где х, у g X.
Введем величину
6 = inf {р(х, у)/х, у^Х, х^У^,(ЮЛ)
характеризующую в определенном отношении структуру множества X. Отметим, что возможны два случая: 6 = 0 и 6> 0. Будем считать, что при 6 > 0 рассматриваемое метрическое пространство X таково, что
р(х, у) = пб,(10.2)
где п £ (0, 1, 2, ...}, х и у — произвольные точки из X.
Определение 1. Множество G cz X назовем г-выпуклым, если для каждой пары точек х, у £ G такой, что р (х, у) > 6, и любого числа X из множества
({X10 < X < р (х, у)^при 6 = 0,
" [{6, 26, ... , р(х, у) — 6} при 6>0 выполняется условие
Мх(х, у) ПС#=0,(10.3)
где
Ж (X, у) = \zx е х/р (X, у) = р (X, Z^) + р (Zx, У), P (х, 2х) = X}.
Множество G а X, состоящее из одной точки х или из двух точек х, у, для которых р (х, у) = 6, будем считать г-выпуклым.
Определение 2. Отрезком М (х, у), соединяющим две произвольные точки х и у г-выпуклого множества X, для которых р (х, у) > 6, назовем любое множество вида
м (х, у) - (и мх (X, у)) и (х, у),
удовлетворяющее для всех X £ Л условиям
Мх (х, у) Л) Мх (х, у) ф 0.
При р (х, у) = 6 под отрезком М (х, у) будем понимать множество
Имеют место следующие очевидные утверждения.
Утверждение 10.1. Некоторое подмножество G г-выпуклого множества X является г-выпуклым тогда и только тогда, когда выполняется условие 1: множество G cz X вместе с любыми двумя своими точками х и у, для которых р (х, у) > 6, содержит хотя бы один отрезок М (х, у).
Утверждение 10.2. При б > 0 множество Gc X г-выпукло тогда и только тогда, когда выполняется условие 2: множество G а X вместе с любыми двумя своими точками х и у, для которых р (х, у) > 6, содержит хотя бы одну точку 2 £ U Мх (х, у).
Очевидно, что условия 1 и 2 являются эквивалентными условиями, необходимыми и достаточными для г-выпуклости множества G cz X, в том случае, когда 6 > 0 и X г-выпукло.
Определение 3. Функцию F (х) назовем r-выпуклой (соответственно г-квазивыпуклой) на G с X, если для любой пары точек х, у ^G такой, что р (х, у) > 6, и каждого числа X £ А, удовлетворяющих условию (10.3), найдется хотя бы одна точка zx £ Мх (х, у) f] О» для которой выполняется неравенство
F w < ЛЛлЛк f (,) + ^Ц1 F Ш (10.4)
7 р (х, у) 7 р (х, у)х 7
(соответственно
F(zx)^max\F(x), F (у)}).(10.4')
Определение 4. Функцию F (х) назовем строго r-выпуклой (соответственно строго r-квазивыпуклой) на G cz X, если, во-первых, для любой пары точек х, у £ G такой, что р (х, у) > б, и каждого числа X £ А, удовлетворяющего условию (10.3), найдется хотя бы одна точка zx £
Мх (х, у) П G» Для которой выполняется строгое неравенство
(10.5)
х ' р (х, у) Х ' 1 р (X, у) хэ'v 7
(соответственно
F ^ < max {F (х), F (у)}),(10.5')
и, во-вторых, при б > 0 для любых точек и, v £G таких, что р (м, и) = = 6, выполняется неравенство
F(u)^F(v).(10.6)
Под (открытой) окрестностью Uq (х, г) с центром х^ОсХ и радиусом г > 0 будем понимать открытый шар вида
UG (х, г) -= {у е G/p (х, у) < г}.
Определение 5. Точку х С G назовем точкой локального (соответственно строгого локального) минимума функции F (х) на G, если найдется хотя бы один радиус г > 0, удовлетворяющий двум условиям:
UG (х, г)\{х} =/= 0(10.7)
и для всех х ^ Uq (х, г)
F(x)^F(x).(10.8)
(соответственно
F(x)<FW).(Ю.8')
Определение 6. Точку х* ^ G с X назовем точкой глобального (соответственно строгого глобального) минимума функции F (х) на
G, если для любой точки х £ G
F(x*^F(x) (10.9) (соответственно
F(x*)<F(x)). (10.9')
Теорема 10.1. Если функция F (х) r-выпукла на r-выпуклом множестве ОсХ и имеет на G точку локального минимума, то в этой точке достигается и глобальный минимум F (х) на G.
Доказательство теоремы проведем от противного. Предположим, что существует такая точка х £ G локального минимума г-выпуклой функции F на r-выпуклом множестве G, которая не является одновременно и точкой глобального минимума на G, т. е. хотя бы для одной точки у £ G выполняется неравенство
F(x)>F(yY _ (10.10)
В соответствии с определением 5 для точки х как точки локального минимума найдется окрестность радиуса г, удовлетворяющая условиям (10.7) и (10.8). Из соотношения (10.7) вытекает, что г > 6, ас учетом условий (10.8) и (10.10) р (х, у) ^ г > 6.
Покажем, что при высказанном выше предположении о ложности теоремы в любой окрестности Ug (х, г) радиуса г > 6 найдется точка г, для которой
F(z)<F(xY (10.11) что противоречит предположению о локальной минимальности F (х). Так как функция F г-выпукла на r-выпуклом множестве G и р (х, у) > > 6, то в соответствии с определениями 1 и 3 в окрестности Ug (х, г) произвольного радиуса г > 6 найдется точка г = Zx £ Мх (х,| у), где 0 < X < г при 6 = 0 и X = 6 при 6 > 0, удовлетворяющая при х = х неравенству (10.4). С учетом условия (10.10) это означает выполнение неравенства (10.11). Теорема доказана.
Теорема 10.2. Если функция F (х) r-квазивыпукла на г-выпуклом множестве G аХ и существует точка х строгого локального минимума этой функции на G, то х является одновременно и точкой строгого глобального минимума F (х) на G.
Доказательство теоремы проведем от противного по аналогии с доказательством теоремы 10.1. Предположим, что хотя бы для одной точки у £ G
Р(^>Е^ (10.12)
Согласно определению 5 найдется радиус г > 0, для которого выполняются условия (10.7) и (10.8'). Следовательно, р (х, у) > г > 6. В соответствии с определениями 1 и 3 в окрестности Uq (х, г) при г > 6 найдется точка г = Zx £ Мх (х, у), где 0 < X <; г при 6 = 0 и X = 6 при 6 > 0, удовлетворяющая при х = х неравенству (10.4'). Так как верно соотношение (10.12), то из (10.4') следует F (2) ^ F (х). Последнее противоречит условию теоремы о том, что F (х) — строгий локальный минимум F на G. Теорема доказана.
Теорема 10.3. 1. Множество S cl G cl X всех точек глобального минимума г-выпуклой (r-квазивыпуклой) функции F (х) на г-выпуклом множестве G является г-выпуклым. 2. Строго r-выпуклая (строго г- квазивыпуклая) функция F (х) достигает своего глобального минимума на G cl X только в одной точке этого множества.
Доказательство. 1. Рассмотрим произвольную пару точек х, у £ S, для которой р (х, у) > 6. Очевидно, что F (х) = F (у) ^ ^ F (г) для любого г ^G. Из г-выпуклости функции F на г-выпуклом множестве G следует, что для каждого X £ Л найдется хотя бы одна точка 2х £ Мх (х, у) Q G, удовлетворяющая неравенству (10.4). Это означает, что F (zx) = F (х) и, следовательно, Zx € S для всех X g Л. Таким образом, r-выпуклость множества S при r-выпуклой функции F доказана. Для г-квазивыпуклой функции F (х) доказательство первой части теоремы отличается от предыдущего лишь тем, что вместо неравенства (10.4) рассматривается (10.4').
2. Пусть функция F строго г-выпукла (строго г-квазивыпукла) на G cl X. Предположим, что вторая часть теоремы не верна и существуют две различные точки х и у, в которых достигается глобальный минимум функции F на G. Следовательно,
F(x) = F(y).(10.13)
Если р (х, у) = 6 > 0, то согласно определению 4 (см. неравенство (10.6)) F (х) ^= F (у), и мы пришли к противоречию с (10.13). Если Р (*, У) > 6, то согласно определению 4 для любого X £ Л, удовлетворяющего условию (10.3), найдется хотя бы одна точка Zx £ Мк (х, у) Q П G, для которой выполняется неравенство (10.5) (соответственно (10.5')). С учетом, что верно (10.13), приходим к соотношению F (zx) < С F (х). С другой стороны, F (zx) ^ F (х), так как х — точка глобального минимума F на G. Получили два противоречащих друг другу неравенства. Тем самым доказательство теоремы завершено.
Сделаем ряд замечаний относительно использования результатов данных теорем.
Замечание 1. В том случае, когда в качестве метрического пространства X рассматривается евклидово пространство Еп или одно из его подпространств, понятие r-выпуклой функции равносильно понятию обычной выпуклой функции. Таким образом, из теоремы 10.1 следует известный в теории математического программирования факт о совпадении локального минимума выпуклой функции, определенной на некотором выпуклом множестве G cl Еп, с ее глобальным минимумом.
Замечание 2. Наряду с приведенным выше вариантом определения окрестности точки, связанным с понятием открытого шара, рассмотрим другое ее определение, связанное с понятием замкнутого шара.
Под окрестностью Оо (х, г) с центром x(GcX и радиусом г > 0 будем понимать замкнутый шар вида
Оо 0^ 0 = \У^ G/p (х, у) < г).
Имеет место следующая теорема.
Теорема 10.4. Если множество G cl X r-выпукло и выполняется условие 6 > 0, то для любого радиуса г > 6 найдется такой радиус г0,
что Ug (x,r) = Og (x, r0) для всех x ^ G и пб-^ rn <. г, где
-^— 1, если -^целое,
Данная теорема позволяет для случая, когда 6 > 0, результаты, сформулированные в предыдущих теоремах, перенести непосредственно и на тот случай, когда понятие локального минимума функции F (х) связывается с указанным выше вторым вариантом определения понятия окрестности, использование которого во многих случаях целесообразно (см., в частности, гл. 3).
Определение 7. Точку х £ G назовем точкой локального (соответственно строгого локального) минимума функции F (х) на G, если найдется хотя бы один радиус г > О, удовлетворяющий двум условиям:
Оо (х, г)\(х) =# 0
и для всех х £ Оо (х, г) верно неравенство (10.8) (соответственно (10.8')).
Замечание 3. Целесообразно рассмотреть следующее определение понятия окрестности точки, отличное от предыдущих. Пусть X — г-вы- пукло и 6 >- 0. Отрезком [х, у\, соединяющим любые две точки х, у £ X, назовем упорядоченную совокупность точек xt £ X, i = 1, ..., п, которые удовлетворяют условиям
Р (x,xt) + р (хь у) = Р (X, у), 1=1, ...,п, где
хг = х, хп = у, р (х, х,) < р (X, Х/+1),
р ^хь х,+1) = 6, i = 1, ..., п — 1.
Введем обозначение: (х, у) = [х, у]\ {х, у}. Окрестностью То (х) точки х £ G с X радиуса а £ (1, 2, ...} назовем множество вида
Т,^= \У^О!\кх, ^К® — 1).
где | (х, у) | — мощность множества (х, у).
Справедливо следующее утверждение.
Утверждение 10.3. Для произвольной точки х r-выпуклого множества G с X любая окрестность То (х) совпадает с окрестностью Og (х, г), где г = бо.
Доказательство. Покажем, что Оо (х, г) zd То (х). Действительно, пусть у — произвольная точка из То (х), тогда | (х, у) | = = к — 1, где к ^ о. Так как множество G r-выпукло, то р (х, у) = = /гб ^ об = г. Следовательно, у £ Оо (х, г). С другой стороны, То (х) zd Оо (х, г), так как для любой точки у из Оо (х, г) р (х, у) = = кб ^ г, где к ^ о. Таким образом, у £ТО (х), и утверждение доказано.
На основании утверждения 10.3 результаты, полученные в теоремах данного параграфа, можно перенести и на тот случай, когда понятие локального минимума функции F связывается с понятием окрестности вида То (х).
35Э35Э23 7—1903
35Э
35Э
Замечание 4. В соответствии с общей направленностью настоящей монографии представляет интерес вопрос об условиях совпадения локального минимума с глобальным в задачах дискретного математического программирования. Теоремы 10.1 и 10.2 указывают один из возможных подходов к решению этого вопроса."
Рассмотрим задачу целочисленного программирования вида min \F (х)/х ^G cl Zn}9 где Zn — множество всевозможных n-мерных целочисленных векторов. На наш взгляд, для любой задачи такого вида актуальной является проблема выбора такой метрики р, чтобы одновременно выполнялись два условия: множество G с введенной на нем метрикой р r-выпукло и функция F (х), определенная на нем, г- выпукла (или r-квазивыпукла). Положительное решение этой проблемы во многих конкретных случаях позволит применять для отыскания глобального решения оптимизационной задачи методы локального поиска.
§ 2. d-ВЫПУКЛЫЙ АНАЛИЗ
Множество А в метрическом пространстве X с некоторой метрикой р называется й-выпуклым9 если для любых точек х, у g А определяемый ими метрический отрезок (х, у) = {zg Х/р (х, z) + р (z, у) = р (х, t/)} содержится в А [Д84]. (Относительно различных свойств d-выпуклых множеств в метрических и нормированных пространствах см. [14, 1461).
Определение [1481. Функция f ; X -> R1 называется d-выпуклой (соответственно d-квазивыпуклой), если для любых различных точек х, у g X и г g (х, у^ выполняется неравенство
f (?) < -^-Ф f (X) + ^’г\ f (у)
' х ’ р (х, у) 1 v 1 р (х, у) 1 (соответственно / (z) ^ шах {/ (х), f (#)}).
Отметим, что в линейном нормированном пространстве Е с обычной метрикой р (х, у) = ||х — у || d-выпуклые множества и функции являются выпуклыми в обычном смысле, причем понятия выпуклости и d-выпуклости совпадают тогда и только тогда, когда пространство Е строго нормировано.
Далее излагаются основные результаты d-выпуклого анализа в произвольном метрическом пространстве X с метрикой р.
Теорема 10.5. 1. Для любых d-выпуклых функций f19 f2, определенных на X, и чисел alf а2 ^ 0 функция а^ + a2f2 d-выпукла.
Если f — d-выпуклая функция на X, <р : R1 -^R1 — неубывающая выпуклая функция, то их композиция ср о f d-выпукла.
Супремум произвольного семейства d-выпуклых функций есть d-выпуклая функция.
Предел сходящейся последовательности d-выпуклых функций есть d-выпуклая функция.
Теорема 10.6. Для d-выпуклой функции f, определенной на X, и любого числа а £ R1 множества {z g X/f (г)а}, (г g X/f (г) < а}, а
также dom / = {z g X/f (х) < + оо} являются d-выпуклыми.
Как известно, пространство X называется выпуклым по Менгеру, если (х, у) ^ (х, у\ для любых различных точек х, у g X.
Теорема 10.7. Если пространство X выпукло по Менгеру, то любая d-выпуклая функция f : X -^ R1 обладает на d-выпуклом множестве АсХ не более чем одним локальным минимумом.
Теорема 10.8. Пусть X — пространство, выпуклое по Менгеру, АсХ — d-выпуклое множество и f1# ..., /т —d-выпуклые функции, определенные на X. Тогда возможен только один из двух случаев:
существует такая точка г ^Х, что fx (z) < 0, ..., fm (z) < 0;
найдутся такие числа Xj ^ 0, ..., Хш0, не все равные нулю, что Mi М + ... + Wm to > 0 при всех х£ А.
Рассмотрим задачу d-выпуклого программирования в Xi
inf {/0 W/fi (х)0, / = I, ... , т; х^А^ (10.14)
где ft : X R\ i = 0, 1, ..., т, — d-выпуклые функции; А с: X — d-выпуклое множество. Будем говорить, что пространство X М-выпук- ло, если для любых точек х, у £ X и любого числа 0 ^ % ^ 1 существует точка z £ <х, у), удовлетворяющая соотношению р (х, z) = Хр (x,yY
Теорема 10.9. (Аналог теоремы Куна — Таккера). Пусть X — М- выпуклое пространство, f0, fi, ..., fm— d-выпуклые функции, АсХ — d-выпуклое множество. Если х есть решение задачи (1014), то найдутся множители ЛагранжаХ^ ^ 0 Дг ^ 0, ..., Хт ^ 0, не все равные нулю, для которых выполняются условия:
{
т _\т __
2 Xfefk (х)1х € Л > = ^ Xjk (х) — принцип минимума1, At=U)fr—0
Х^ (х) = 0, i = 0, 1т, — условие дополняющей нежесткости.
В рамках теории d-выпуклости можно построить метрический аналог теории двойственности. Функция f i X ->- R1 называется d-аффинной, если для любых различных точек х, у £ X и г £ <х, у)
f (г) = Р <г- У) / (Х) . Р<х* г> / (у)р(Х> у) ' W + р(х, у) J КУ).
Фиксируем произвольную точку х0 £ X и рассмотрим совокупность X* всех d-аффинных функций /, определенных на X и удовлетворяющих условию f (х0) = 0. Нетрудно показать, что X* — линейное пространство, причем функция f = 0 принадлежит ему.
Для произвольной функции /, определенной на X, функция /*: : X* -^-R1 вида /* (р) = sup {р (г) — / (z)/z g X} называется сопряженной к / (или преобразованием Лежандра — Юнга — Фенхеля). Функция /** (z) = sup (р (г) — /* (р)/р ^ X*}, где z ^ X, называется второй сопряженной к f, Легко показать, что для любой функции /, определенной на X, функция f** не зависит от выбора точки х0 ^ ех.
23*23*Теорема 10.10. Функции f* и /** обладают следующими свойствами: 1) функция f* выпукла, a f** — d-выпукла; 2) f (г) + f* (р) > ^ р (г) для любых z ^Х, р ^ X* (неравенство Юнга); 3) /** ^ р —
23*
23*
355
— conv f; 4) если f (z) ^ h (z) для всех z(X, mo P(z) ^ h*(z) и P* (2) ^H** (z).
Будем говорить, что пространство X неограничено в каждом направлении, если для любых х, у ^Х и & > О существует точка z £ X, удовлетворяющая соотношению р (х, у) + р (у, z) = р (х, z) ^ к.
Теорема 10.11. Если пространство X неограничено в каждом направлении, то всякая ограниченная сверху d-выпуклая функция f : X -^ ->- R1 постоянна и для любой d-аффинной функции Ина X имеем И** = = И.
Точка х £ X называется проходимой, если для любой точки у £ X существует такая отличная от х точка z £ X, что
Р (У> *) + Р (X, 2) = Р (у, ZY
Теорема 10.12 (Аналог теоремы Фенхеля — Моро). Пусть пространство X неограничено в каждом направлении и обладает хотя бы одной проходимой точкой. Кроме того, любая d-выпуклая функция f : X -> R1 представима в виде супремума d-аффинных функций. Тогда для любой функции f : X -> R1 имеем: 1) р* (z) = sup ^h (z)/ h(z) — ^d-аффинная функция и h (z) ^ f (z) для всех z £ Д1}; 2) (/**)*= p\
p* = I ( = ) f d-выпукла.
Использование d-выпуклых функций позволяет получить метрический аналог теоремы Крейна — Мильмана об экстремальных точках выпуклого компакта. Точка х£ Л называется d-экстремальной в Л, если X $ <У, z) для любых у, 2 £ Л \ {х}.
Теорема 10.13. (Аналог теоремы Крейна — Мильмана). Пусть пространство X такое, что для каждого относительно компактного d-выпуклого множества ВсХи точки z $ В существует такая d-выпуклая, полунепрерывная на В функция ) : X -^R1, что / (z) > sup {/ (х)/ Ух £ BY Тогда всякое компактное d-выпуклое множество в X совпадает с замыканием d-выпуклой оболочки своих d-экстремальных точек.
d-Выпуклость имеет ряд приложений к задачам типа размещения. Разработаны эффективные алгоритмы минимизации функций вида
f(z) = £ n(x)p(z, х), ц.(х)>0,(10.15)
х£Х
для случая дискретного медианного пространства (пространство (X, р) называется медианным, если для любых точек х, у, z £ X множество (х, у) П (х, 2> П (у, 2> одноточечно). Отметим, что в таких пространствах всякая функция вида (ЮЛ5) является r-выпуклой. Это обстоятельство позволяет минимизировать функции (10.15) методом прямого спуска. В связи со сказанным выше возникает вопрос об описании класса всех дискретных пространств, в которых функции / (г) принадлежат классу г -выпуклых или d-выпуклых функций. Такое описание сделано только для случая d-выпуклости в обыкновенном графе G, снабженном стандартной метрикой р (х, yY равной числу ребер кратчайшего пути в G, соединяющего вершины х, у.
Теорема 10.14 [1481. Для графа G = (X, LT) эквивалентны следующие условия: 1) любая функция вида (10.15) на X d-выпукла; 2) любая
функция вида (10.15) на X d-квазивыпукла; 3) G — триангулированный граф, не содержащий подграфов вида
В связи с теоремами 10.12 и 10.13 отметим следующие результаты [Д 63].
Теорема 10.15. Для графа G эквивалентны следующие условия:
всякая d-выпуклая функция на G есть супремум семейства некоторых d-аффинных функций;
либо классы d-выпуклых и d-аффинных функций на G одновременно тривиальны, либо G есть простая цепь.
Теорема 10.15'. Для графа G эквивалентны следующие условия: 1) для любого d-выпуклого множества А в G и любой вершины z ^ А существует d-выпуклая функция f на G, удовлетворяющая соотношению f (z) > sup {/ ^!х^А\, 2) любое d-выпуклое множество в G есть d-выпуклая оболочка своих экстремальных точек; 3) G — триангулированный граф, не содержащий подграфов вида (10.16).
§ 3. КООРДИНАТНО-ВЫПУКЛЫЕ ФУНКЦИИ
Пусть S — частично упорядоченное отношением < множество. Если а < b — два элемента из S, то множество тех элементов х из S, для которых одновременно а < х и х < Ь, обозначается 1а, 6] и называется интервалом. Подмножество DcS называется упорядоченно-выпуклым в S, если для каждой пары a, b ^D интервал 1а, 61 есть подмножество D.
Порядковая выпуклость изучалась многими авторами (см., например, [195]) в связи с аналогом теорем Хелли, Каратеодори и Радона для выпуклых множеств.
Здесь ограничимся рассмотрением только случая, когда S есть решетка /^.-мерных целочисленных векторов с неотрицательными компонентами и координатным отношением порядка: х ^.у в том и только в том случае, когда xt ^Уь f = 1, ..., п.
Правым (левым) градиентом по переменной xt (/-градиентом) функции / (х) на решетке Z+ в точкех называется число grad/1" / (х) = f (х + + (—) ^) — / W, где в£ — /-й единичный орт. Ясно, что grad? f to = = — grad/" Цх — etY Заметим, что grad^ / (х) и grad?" / (х) представляют собой координаты вектора спада функции / (х) в окрестности Ozn (х, 1) в метрике £ |х, — уД = р (х, у). Уточним, что для функции / (х), заданной на булеане 2N, N = {1, ..., п\, grad/" / (х) = / (х U /) — — f (х)- Правый градиент второго порядка по переменным хь X; функции f (х) вычисляется по формуле grad/" (grad+ f (х)).
Функция f (х) называется координатно-выпуклой на решетке Z^ если каждый ее правый градиент второго порядка неотрицателен.
В [Д21] доказано, что множество D с: Zn упорядоченно-выпуклое тогда и только тогда, когда оно совпадает с множеством нулей некоторой координатно-выпуклой функции.
Важным примером координатно-выпуклых функций служит функция, которая является сужением на Z^ выпуклой функции на Rn в предположении, что она сепарабельна, т. е. представима в форме / (х) = у fi (xj. Без этого предположения легко построить функцию,
выпуклую на Rn, но не являющуюся координатно-выпуклой на Z%.
Теорема 10.16 [63]. Определению координатно-выпуклой функции эквивалентны следующие высказывания. 1) grad^ / (х) — неубывающая функция на Z\\ 2) / (х) — супермодулярная функция, т. е. f (х) + + / (у) ^ /" (х V У) + / U Л У) w grad+ / (х) — неубывающая функция по переменной xt при фиксированных значениях остальных переменных; 3) f (у)— fW> Л (*< —^)grad^f(x) + £ (у,— xf) grad? х i%N'о™
х (х V у), где N' = 1^ N/x(> у^, N" = Ц^ Njxt<L yty, 4) если n
х^у, то f (у)— f (х) > 5 (Уi — ^) grad^ / (х).
/=|
Символы х Д у, х V У — стандартные в теории решеток операции пересечения и объединения (в решетках Z^ вектор хДу (х\/у) имеет координаты min \xb yt\ (max ^xb yj), а в решетке 2^ операции V > Л совпадают соответственно с операциями U > А -
Таким образом, координатно-выпуклые функции обладают свойством монотонности производных выпуклых функций; для них также справедливы неравенства, которые, как и в выпуклом программировании, являются основным инструментом формулировки условий экстремума и получения оценок отклонений от оптимума. Свойство 3) устанавливает связь с более широким классом хорошо известных в дискретной математике супермодулярных функций. Отметим, что в случае, когда S — Вп (булеан), второе утверждение из высказывания 2) автоматически выполняется и поэтому из теоремы 10.16 вытекают также известные свойства супермодулярных функций на булеане.
Рассмотрим задачу минимизации координатно-выпукл ой функции / (х) на упорядоченно-выпуклом множестве D a Z^.. Представление о результатах построенной в [63] теории локальных экстремумов таких функций могут дать следующие теоремы, вытекающие из свойств 1) и 2) координатно-выпуклых функций, указанных в теореме 10.16. Введем порядковую топологию, определив окрестность О (х°) точки х° С D как множество точек, сравнимых с ней: О (х°) = (х £ D/x ^ х° или х ^ х0}.
Теорема 10.17.1 [63]. Точка х° ^D является локальным в порядковой топологии минимумом координатно-выпуклой функции в .том и только в том случае, когда х° есть точка минимума относительно метриче- 358
ской окрестности О о (х°, 1) в пространстве Zn с метрикой р (х, у) = п
1=1
2 [Д21]. Точка х* локального минимума всякой сепарабельной координатно-выпуклой функции f относительно метрической окрестности
,1 / п
Od (х*, 1) в пространстве Zn с метрикой р' (х, у) = -s-1 2 IXi—
ппV=i
п
п
— ^d + ^ (х<- — У0 является точкой глобального минимума лишь в i=i
случае, когда D — координатно-выпуклое множество, т. е. множество, обладающее свойством: для любых двух точек х, у £ D существует соединяющая их цепь х* = х1, х2, х^х^х = у, что xl £ D,
р' (xY xz+‘) = 1, х + (xW —х^бп^х*, О> 1 = L . .., p'(x, УУ
Эта теорема устанавливает унимодальность координатно-выпуклой функции на каждой цепи и отсутствие у такой функции локальных минимумов, отличных от глобального. В частном случае минимизации супермодульной функции на булеане Вп эта теорема есть известный принцип отбраковки вариантов в методе последовательных расчетов В. П. Черенина [174].
Упорядоченно-выпуклое множество bZ^c единственным минимальным а = (аъ ..., а^ (максимальным b = (Ьъ ..., Ьп)) элементом называем УВН (У BE)-множеством. Понятия УВН- и УВЕ-множества двойственны, т. е. УВЕ-множество есть УВН-множество в двойственной решетке. На булеане Вп такие множества называют независимыми системами или монотонными булевыми функциями. Важнейшая характеристика УВН-множеств —кривизна, с ее помощью оценивается точность градиентных алгоритмов. Кривизной УВН-множества D £ Z+ называется число
(10.17)(10.17)е(О) = т1п^У*^^
(10.17)
(10.17)
С^ max {p(ti> ^^^ах
где Отах — множество максимальных элементов в Ос = О Q [а, с]. Аналогично, если заменить Отах на Отт, где Omin — минимальные элементы в О П [с, 6], определяется кривизна УВЕ-множества.
Координатный вариант градиентного метода максимизации координатно-вогнутой функции на УВН-множестве D cz Z\ состоит в следующем [63]. Начиная с точки х° = (ар ..., а^ строим решение xq по итерационному правилу: х1^ — х1 + ец, где ц = arg шах {grad^ f (x^—^/f EX, xz + ^ e D^. Если V £ Nix1 + ^ E O} = 0 или grad^f (xz) ^ 0, то процесс вычислений заканчивается: полученное при этом решение называется градиентным. Нетрудно видеть, что изложенная схема является вариантом метода вектора спада.
Учитывая, что на булеане grad^ / (х) = ct при / (х) = сх, приходим к выводу, что частным случаем градиентного метода является
известный в иностранной литературе gr^d^-алгоритм решения задач комбинаторной оптимизации, восходящий к Краскалу, Эдмондсу и др, В СССР термин «градиентный алгоритм» в дискретной математике, по- видимому, впервые появился в работах С. Я. Яблонского.
Пусть 91 — класс алгоритмов решения задачи максимизации координатно-вогнутой функции на УВН-множестве£) максимальной высоты 6, где h= max {р(а,х)/х С D^ трудоемкость которых измеряется числом ср (D) обращений к процедуре, проверяющей, принадлежит ли данная точка х множеству D. Отметим, что градиентный метод входит в класс 91 и его трудоемкость не превосходит nh. Если / (х) — сепарабельная функция, то, организовав дихотомию в области значений градиентов, получим градиентный метод с трудоемкостью в среднем О (log2 А). Следующая теорема показывает, что не существует в 91 полиномиальных алгоритмов с большей точностью, чем у градиентного.
Теорема 10.18. 1. Для градиентного решения хЯ задачи максимизации координатно-вогнутой сепарабельной функции на УВН-множестве D кривизны 0 справедлива оценка f (xq) ^ 0/ (хопт/ 2. Пусть при 6 Ф 1 алгоритм Л £ 91 для каждой индивидуальной задачи с координатновогнутой сепарабельной функцией строит решение хА со свойством f (хА) > 0/ (х°ПТ). Тогда у (А) не меньше числа попарно несравнимых элементов куба 7? f| 1а, 6], \а, 61 td D.
УВН (УВЕ)-множество в Z^ кривизны 1 называется целочисленным полиматроидом. Последний на булеане называется матроидом, а в пространстве Rn — полиматроидом (в Rn метрика определяется по
правилу £ I ai — bi |
Следствие. Решение х^, построенное градиентным алгоритмом в задаче максимизации координатно-вогнутой функции на УВН-мно- жестве D с Z^, является оптимальным в том и только в том случае,, когда D — целочисленный полиматроид, a f (х) — сепарабельная функция.
Этот результат без использования матроидного аппарата получен еще в 1973 г. Н. И. Глебовым.
Пусть о целевой функции стандартной задачи ЛП известна только такая перестановка л, что
^Л(1)^ ••• ^ ^Л(П) ^ 0,
а сами значения коэффициентов с( не известны. Тогда задачу отыскания точки, доставляющей на допустимом множестве D ^ Rn наибольшее значение «неизвестной» линейной функции с (х), назовем задачей ЛП с неполной информацией. Из следствия с использованием метода частичных порядков [631, в частности, выводится следующий результат [Д 12h всякую задачу ЛП с неполной информацией можно решить в том и только в том случае, когда множество Г)55 является полиматроидом, где D^ = {х £ Rn/x ^ у для некоторого у £ D^.
Следствие показывает особую роль матроидных структур в выпуклой дискретной оптимизации. Приведем их важнейшие, эквивалентные определению, свойства:
каждые два максимальных элемента УВН-множества D ^ Z4. имеют одинаковую высоту и удовлетворяют аксиоме замены Штейни- ца [2] : для любого индекса i такого, что Xi < yt существует индекс / такой, что у + ef — et £ D, x + e{ — £/ £ D, yj < xf,
, 2) (теорема Эдмондса [43]) УВН-множество D г Z^ задается условиями
Sx,<r(/), 7 62",
где г (/) — субмодулярная целочисленная функция на булеане 2^;
) УВН-множество D cz Z4. является координатно-выпуклым.
Таким образом, полиэдр Р в Rn есть полиматроид, если и только если существует такая субмодулярная функция г, что Р = Р (г), где
p(r) = (xc/?vS^<''(/)> /еИ
(г — называется ранговой функцией полиматроида). Очевидно, некоторые из этих ограничений могут оказаться избыточными, и поэтому полиматроидом может быть множество, заданное условиями при 1 £ F, где F с 2^. Естественно, что при этом требуется замкнутость F относительно операций объединения и пересечения для пересекающихся элементов Л, 5 £ F (элементы Л, В £ F называются пересекающимися, если непусто каждое из множеств Л \В, В\Л, Л Q 6), а условие субмодулярности функции требуется только для пересекающихся элементов. Если же F нс содержит таких элементов, то Р (г) — полиматроид при любой ранговой функции (древовидный полиматроид).
В заключение приведем результат, позволяющий определять кривизну УВН-множеств. Вместе с теоремой 10.18 он дает метод получения оценок точности градиентного алгоритма.
Теорема 10.19.1 [36]. Пусть Dv ..., Dm — УВН-множества кривизны ап ...,<хт соответственно. Тогда
е(О!ПО2П ••• nDJXar^ ••• Ч-а^Г1.
[Д 21]. Велм правые i-градиенты координатно-выпуклой функции g *. Zn -> Z^ g (0) = 0 принимают значения 0, 1, ..., а, то 0 ф^ ^ > 1/а, где Dg = {х £ Zn!g (х) = 0}.
В частности, если УВН-множество D есть пересечение целочисленных полиматроидов в Z^, то 0 ф) ^ шах (т-1, (п — I)-1).
§ 4. АКСИОМАТИЧЕСКИЙ ПОДХОД К ВОПРОСУ ОБ УСЛОВИЯХ СОВПАДЕНИЯ ЛОКАЛЬНОГО И ГЛОБАЛЬНОГО МИНИМУМОВ В ЗАДАЧАХ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ
Пусть X — произвольное множество. Будем говорить, что X является пространством отрезков, если любым двум точкам х, у £ X поставлена в соответствие некоторое содержащее их множество М (х, у) а Хг
которое назовем отрезком с концами х, у. Две различные точки х, у пространства отрезков X считаем соседними, если для них М (х, у) = {х, у}.
Множество X назовем пространством с выпуклой комбинацией точек, если любым точкам х, у £ X и любому числу X, 0 < X < 1, поставлено в соответствие некоторое множество Мх (х, у) d X. Заметим, что всякое пространство X с выпуклой комбинацией точек является пространством отрезков. Действительно, в X отрезком М (х, у) можно считать множество
М(х, у) = ( U Мх^х, у)) U U, у}.(10.18)
0<А<1
Именно так мы и будем в дальнейшем понимать отрезок в любом пространстве с выпуклой комбинацией точек.
Приведем некоторые другие примеры пространств отрезков.
В произвольном линейном пространстве X множество М (х, у) можно определить как обычный прямолинейный отрезок по формуле
М^ у) = \zlz = ^— ^x-V^y. 0<Х^ 1}.(10.19)
Для любого метрического пространства X с метрикой р множество М (х, у) можно определить как метрический отрезок по формуле
М(х, у) = {z^X/p(x, у) = р(х, z) + p(2, у)}.(10.20)
Пусть X — частично упорядоченное отношением -< множество. Тогда М (х, у) можно определить по формуле
Щх, у) = ^Х/х < 2< у) и (х, у}.(10.21)
Первые два примера пространств отрезков являются одновременно и примерами пространств с выпуклой комбинацией точек. Действительно, для любых х, у £ X и любого X, 0 < X < 1, в первом примере (см. 10.19) можно положить
Мк (х, у) = \zlz - (1 — X) х + Ху),
а во втором (см. (10.20))
УИ^(х, у) = {г/р(Х, 2) = Хр(х, у), р (2, у) = (1 — Х)р(х, у)}.
Определение 1. Множество G а X назовем слабо дискретным, если для любых различных точек х, у g G существует соседняя с х точка z £ М (х, у) Q G.
Определение 2. Множество G а X назовем R-дискретным, если для произвольных х, у £ G любая последовательность точек 2О 22, ... ... g G, удовлетворяющая соотношениям
2х^М^х, у), Zk+^M^x, 2^)\(2^}, k= 1, 2, ...,(10.22)
является конечной.
Будем считать, что некоторое подмножество G произвольного пространства отрезков X удовлетворяет условию Л, если для любых трех точек х, у, z g G, таких, что z g М (х, у), имеет место включение М (х, 2) cz М (х, у)..
Определение 3. Пусть X — произвольное пространство отрезков. Множество G с: X назовем выпуклым в X, если для любых точек х, у ^ £ G имеет место включение М (х, у) с: G.
Лемма 10.1. Если выпуклое множество G а X R-дискретно и удовлетворяет условию А, то оно и слабо дискретно.
Доказательство. Пусть х и у — две любые различные точки из G. Построим последовательность точек zv z2, ... € G, удовлетворяющую (10.22) и обрывающуюся на том значении индекса fe, для которого М (х, zk) = {х, zky Так как множество G R-дискретно, то эта последовательность конечна и завершается при некотором значении k = т. С учетом выпуклости G х и zm — соседние точки. Согласно условию А имеют место соотношения zm g М (х, z^-i) с: М (х, 2^-2) cz <z М (х, z^ а М (х, у), что и доказывает слабую дискретность множества G.
Пример 1. Пусть X = |± ^Ц^-/п = 1, 2, ...^ — подмножество числовой прямой, для любых точек х и у которого определено множество М (х, у) = X П k, i/L где [х, уА — замкнутый интервал с концами х и у на числовой прямой R1. Нетрудно проверить, что для любых точек х, у g X и z g М (х, у) выполняется (10.22) и что X, рассматриваемое как пространство отрезков, слабо дискретно Однако это пространство нс является R-дискретным
Пример 2. Пусть X — множество всех zz-мерных целочисленных векторов, на котором введена метрика по формуле
п
Ркх, у^^^-уД,(10.23)
/=1
где х = (хь ..., xn) Е X, у = (уъ .... уД Е X. Каждой паре точек х, у Е X поставим в соответствие отрезок М (х, у) согласно формуле (10.18), в которой Мх (х, у), 0 < X < 1,— произвольное подмножество множества Мх (х, у) = {z/p (х, z) = Хр (х, у), р (z, у) = (1 — X) р (х, у)}, непустое при Мх (х, у) Ф 0, т. е. при X = -^у? р^ГуТ’ L (Отмстим, что в данном примере понятие отрезка конкретизируется аналогично тому, как это было сделано в определении 2, приведенном в § 1 данной главы.) Очевидно, что в рассматриваемом случае условие (10.22) нс выполняется для трех любых точек х, у С X и z £ М (х, у), однако пространство отрезков X и R-дискретно, и слабо дискретно.
Определение 4. Пусть X — пространство отрезков. Множество G а X назовем r-выпуклым, если для любых нссоссдних точек х, у £ G существует отличная от них точка z g М (х, у), принадлежащая G.
Определение 5. Пусть X — пространство с выпуклой комбинацией точек. Функцию [ • X -^ R1 назовем выпуклой, если для любого X, 0 < < X < 1, и любых трех точек х. у g X и z g Мх (х, у) таких, что Мх (х, у) ^= 0, выполняется неравенство
/(z)^(l-X)/(x) + Z/(y).(10.24)
Функцию f ; X R1 назовем r-выпуклой, если для любых несоседних точек х, у g X существуют число X, 0 < X < 1, и точка z £ Мх (х, у) такие, что выполняется неравенство (10.24). Если в обоих случаях неравенство (10.24) выполняется как строгое неравенство
/(z)<(l-X)/(x) + X/(y)(10.25)
и / (w) #= / (у) Для любых соседних точек и, и £ X, то функцию / будем называть строго выпуклой (соответственно строго г-выпуклой).
Определение 6. Пусть X — пространство отрезков. Функцию f : X R1 назовем квазивыпуклой, если для любых трех точек х, у 6 X и z £ М (х, у) выполняется неравенство
f(z)<max{/(x), /(у)}.(10.26)
Функцию f ; X -> R1 назовем г-квазивыпуклой, если для любых несоседних точек х, у 6 X существует хотя бы одна отличная от них точка г С М (х, у) такая, что выполняется неравенство (10.26). Если в обоих случаях неравенство (10.26) выполняется как строгое неравенство
f(z)Стах {/(*). fUM
и f (и) Ф f (и) для любых соседних точек и, v £ X, то функцию / назовем строго квазивыпуклой (соответственно строго г-квазивыпуклой).
Для каждой точки z произвольного пространства отрезков X определим множество Ох (2), состоящее из точки z и всех соседних с г точек из X. Множество Ох (2) назовем окрестностью (или окрестностью соседства) точки z в пространстве X.
Определение 7. Точку х назовем точкой локального минимума функции f : X R1 на множестве G с X, если х ^G и / (х) ^ / (х) для любой точки х g G П Ох (2). Если при этом / (х) < / (х) для всех х £ ^G Q Ох (2) \ (х), то х назовем точкой строгого локального минимума функции / на G.
Определение 8. Точку х* назовем точкой глобального минимума {строгого глобального минимума) функции f : X -> R1 на множестве G с X, если х* g G и / (х*) ^ / (х) для любой точки х £ G (соответственно / (х*) С f (х) для любой точки х £ G, отличной от х*).
Теорема 10.20. Пусть X — слабо дискретное пространство отрезков с выпуклой комбинацией точек, G с X — выпуклое множество и f : X -> R1 — выпуклая функция. Если z — точка локального минимума функции f на G, то она является и точкой глобального минимума f на G.
Доказательство. Допустим противное: пусть f^>f{y)(10.27)
для некоторой точки у £ G. В силу слабой дискретности X найдется соседняя с z точка и ^ М (z, у). Так как множество G выпукло, то и £ G и, следовательно, и £ G f| Ох (2). Поскольку для пространства X с выпуклой комбинацией точек отрезок определяется согласно формуле (10.18), то и £ Мх (2, у) для некоторого числа 0 < X < 1. В силу выпуклости / справедливы неравенства
f(u)^(l-X)/(z) + X/(y) и с учетом (10.27)
Ц^<№
Но последнее неравенство противоречит выбору точки г как точки локального минимума функции /. Таким образом, теорема доказана.
Теорема 10.21. Пусть X — слабо дискретное пространство отрезков, G а X — выпуклое множество и f : X -^ R1 — квазивыпуклая функция. Если 2 — точка строгого локального минимума функции f на G, то она является и точкой строгого глобального минимума f на G. " Доказательство. Предположим противное. Пусть f (z) ^ ^ / (у) для некоторой точки у £ G, отличной от z. В силу слабой дискретности X найдется соседняя с z точка о g М (z, у), которая к тому же принадлежит и G П Ох (2), так как G выпукло в X. В то же время f (v) ^ max {/ (z), / (у)} = f (z), что противоречит выбору точки г как точки строгого локального минимума / на G.
Теорема 10.22. Пусть X — R-дискретное пространство с выпуклой комбинацией точек, GcX — выпуклое множество и f : X -> R1 — r-выпуклая функция. Если г — точка локального минимума функции f на G, то она является и точкой глобального минимума f на G.
Доказательство. Предположим противное: пусть f (z) > > / (у) для некоторой точки y^G. Так как f (и) ^ / (z) для любой точки v € G П Ох (2), то точки z и у не являются соседними. Из г-вы- пуклости функции / следует, что существует отличная от z и у точка Z! С Мх (2, у) cz М (z, у) такая, что f (zj ^ (1— X) f (z) + М (у) для некоторого 0 < X < 1. Следовательно, f (zj < / (z). В силу выпуклости множества G имеем гг g G. Но zx ^ G Л Ox (z), так как z — точка локального минимума / на G. Следовательно, z и zx — несоседние точки и с учетом r-выпуклости функции / существует точка z2 £ М (г, 2^, для которой f (z2) < / (z). Продолжая такие рассуждения, получим бесконечную последовательность точек zv z2, ... из G, удовлетворяющую условиям z^x С М (z, г^ \ {z^}, k = 1, 2, ... Но это противоречит R-дискретности пространства X.
Теорема 10.23. Пусть X — R-дискретное пространство отрезков, GcX — выпуклое множество и f: X -^ R1 — r-квазивыпуклая функция. Если z — точка строгого локального минимума функции f наО, то она является и точкой строгого глобального минимума f на G.
Доказательство. Предположим противное. Пусть / (z) ^ ^ / (у) для некоторой точки у £ G. Так как / (и) > f (z) для любой отличной от z точки и 5 G П Ох (2), то z и у не являются соседними точками. Из r-квазивыпуклости функции f следует, что существует отличная от z и у точка zx £ М (z, у), удовлетворяющая условию / (^ ^ ^ шах {/ (z), f (у)} = f (z). Поскольку множество G выпукло, то zx £ g М (z, у) с: G. Кроме того, 2^ G Q Ох (2), так как по условию теоремы г является точкой локального минимума / на G. Следовательно, 2 и Zj — несоседние точки, и поэтому с учетом г-квазивыпуклости / найдется отличная от г и 2г точка z2 ^ М (2, zj, для которой / (z2) ^ ^ / (z). Продолжая подобные рассуждения, получим, как и при доказательстве предыдущей теоремы, бесконечную последовательность ТОЧеК Zv Z2, ... ИЗ G, уДОВЛСТВОрЯЮЩуЮ УСЛОВИЯМ 2к^\ ^ М (z, zk^ \ {zfe}, k = 1,2, ..., что противоречит R-дискретности пространства X.
Теорема 10.24. Пусть X — R-дискретное пространство отрезков, G а X — r-выпуклое множество и f : X R1 — выпуклая функция. Если 2 — точка локального минимума функции f на G, то она является и точкой глобального минимума f на G.
Доказательство. Допустим противное: для некоторой точки у g G выполняется неравенство / (у) < / (2). Очевидно, что 2 и у — несоседние точки, так как для любой точки и ^ G (] Ох (2) имеет место соотношение f (и) Z^ f (2). г-Выпуклость множества G означает, что существует отличная от 2 и у точка zx g М (г, у) f) G. Поскольку функция / выпукла на G, то / (г^ ^ (1 — X) / (2) + V (уА и, следовательно, /(2^ </(2). В силу последнего неравенства 2т(и П Ох (2), т. е. точки 2 и 2t не являются соседними. Поэтому найдется отличная от 2 и 2! точка 22 М (z, z^ П 0, для которой / (22) < / (2). Рассуждая таким же образом, придем к тому же выводу, что и при доказательстве теорем 10.22 и 10.23, и тем самым завершим данное доказательство.
Теорема 10.25. Пусть X — R-дискретное пространство отрезков, G а X — r-выпуклое множество и f: X R1 — квазивыпуклая функция. Если существует точка строгого локального минимума функции f на G, то она является и точкой строгого глобального минимума f на G.
Доказательство аналогично предыдущему.
Рассмотрим вопрос о строении множества Gf точек глобального минимума некоторой функции f : X R1 на множестве G с X, где X — произвольное пространство отрезков. Положим
Gf = \z^G!f^ =cz/ = min ^f^/x^G^.
Теорема 10.26. Если множество G выпукло и функция f квазивыпук- ла, то множество Gf выпукло. Если множество G выпукло и функция f r-квазивыпукла либо если множество G г-выпукло и функция f квазивы- пукла, то множество Gf г-выпукло.
Доказательство. 1. Пусть G — выпуклое множество и / — квазивыпуклая функция. Выберем произвольные точки х, у Q Gf и z £ М (х, у). В силу квазивыпуклости / имеем / (2) ^ шах {/ (х), / (у)} = 04. Так как множество G выпукло, то 2 £ G, и поэтому f (2) ^ ^ 04. Получаем единственно возможное соотношение / (2) = af) т. с. 2 £ Gf. Это и доказывает выпуклость множества Gf.
Пусть множество G выпукло, а функция / г-квазивыпукла. Выберем произвольные несоседние точки х, у £ Gf. В силу r-квазивыпуклости / найдется такая отличная от х и у точка z £ М (х, у), что / (2) ^ шах {/(х), / (у)} = 04. Дальнейшее доказательство полностью совпадает с доказательством в первом случае.
Пусть множество G г-выпукло, а функция / квазивыпукла. Тогда для любых трех точек х, у ^Gf и z g М (х, у) выполняются соотношения / (2) ^ max {/ (х), / (у)} = а^. В силу г-выпуклости G хотя бы одна из точек 2 £ М (х, у) принадлежит G. Следовательно, для нес верно / (2) ^ 04. Очевидно, что единственно возможно f (2) = a,fy т. с. z g Gf. Теорема доказана.
Отметим, что в произвольном пространстве отрезков всякое выпуклое множество, очевидно, является и г-выпуклым, а всякая квазивыпуклая (строго квазивыпуклая) функция г-квазивыпукла (строго г- квазивыпукла). В пространстве с выпуклой комбинацией точек всякая выпуклая (строго выпуклая) функция является r-выпуклой (строго r-выпуклой). Естественно, возникает вопрос о совпадении понятий выпуклости и r-выпуклости. Этот вопрос изучен в работах [142, ДЗО].
Пусть X — произвольное пространство отрезков, которое будем считать и пространством с выпуклой комбинацией точек в тех случаях, когда речь идет о выпуклых и r-выпуклых функциях. Нетрудно доказать следующую лемму.
Лемма 10.2. Множество GcX выпукло (r-выпукло) тогда и только тогда, когда квазивыпукла (r-квазивыпукла) его характеристическая функция
(0, если x^G,
XG(x)= ,(10.28)
х 1+оо, если x^X\G.7
Если же в X определена выпуклая комбинация точек, то эквивалентным необходимым и достаточным условием выпуклости (/--выпуклости) множества Gc X является выпуклость (r-выпуклость) функции (10.28).
Теорема 10.27. Имеют место импликации 1) => 2) <=> 3), где
классы выпуклых и r-выпуклых функций на X совпадают;
классы квазивыпуклых и r-квазивыпуклых функций на X совпадают;
классы выпуклых и r-выпуклых множеств в X совпадают.
Доказательство того факта, что из утверждения 1) следует утверждение 2), проведем от противного. Предположим, что утверждение 1) верно, но существует г-квазивыпуклая функция /, определенная на X, которая нс является квазивыпуклой. Последнее означает, что найдутся три точки х, у ^ X wz ^ М (х, у) такие, что
(г) > max {/(х), Цу^=а.
Определим множество G (а) = ^и £ X /Ци^ ^ а}> которое не является выпуклым уже потому, что вместе со своими двумя точками х и у нс содержит точку z С М (х, у). Покажем, однако, что множество G (а) r-выпукло. Действительно, для произвольных точек uv и^ £ С G (а) в связи с r-квазивыпуклостью функции / найдется точка и3 С М (иь и^, для которой выполняется неравенство
Циз^тах^^, f(u2)},
и? следовательно, имеет место включение и3£ G (а). Таким образом, G (а) — r-выпуклос, но не выпуклое множество. Из r-выпуклости множества G (а) в соответствии с леммой 10.2 следует r-выпуклость его характеристической функции Xg. С другой стороны, так как множество G (а) нс выпукло, то в соответствии с той же леммой и функция Xq нс выпукла, что противоречит утверждению 1) и, следовательно, доказывает импликацию 1) => 2).
Доказательство импликации 3) => 2) аналогично предыдущему.
Теперь покажем, что 2) => 3). Предположим противное: пусть утверждение 2) имеет место, но в X существует некоторое г-выпуклое множество G, нс являющееся выпуклым. Так как G r-выпукло, то согласно лемме 10.2 функция вида (10.28) r-квазивыпукла, а в соответствии с утверждением 2) и квазивыпукла. Последнее, исходя из леммы 10.2, означает выпуклость множества G, что противоречит сделанному выше предположению и тем самым завершает доказательство теоремы.
Выясним обстоятельства совпадения классов выпуклых и г-выпук- лых множеств в X.
В дальнейшем будем считать, что М (х, х) = {х} для произвольной точки х любого рассматриваемого нами в дальнейшем пространства отрезков X.
Определение 9. Множество G а X назовем прямолинейным в X, если для любых точек х, у, z g G имеет место хотя бы одно из включений:
х^М^г, у), у^ (х, z), г^М^х, у).(10.29)
Определение 10. Множество G cz X назовем строго прямолинейным в X, если для любых различных точек х, у, z g G имеет место лишь одно из включений (10.29).
Определение 11. Множество G <z. X назовем симметричным, если М (х, у) = М (у, х) для любых точек х, у g G.
Считать, что множество G а X удовлетворяет условию В, если из соотношений х, у, zv г2 g G, zu z2£ М (х, у) \ {х} следует хф М (zn z2).
Лемма 10.3. Любое прямолинейное симметричное множество G cz cz X, удовлетворяющее условию В, является строго прямолинейным.
В самом деле, в силу прямолинейности множества G для любых различных трех точек х, у z из G выполняется хотя бы одно из включений (10.29). При выполнении х g М (z, у) из симметричности множества G и условия В вытекает, что у ^ М (х, z) и z ^ М (х, у). В тех же случаях, когда либо у £ М (х, г), либо z g М (х, у), по тем же причинам придем к выводу о невозможности двух других включений из (10.29).
Рассмотрим еще ряд условий, которые могут быть наложены на некоторое множество G а X.
Условие С: если х, у, zX) z2 £G, zv g M (x, у) и z2 g M (zu у), to zT g M (x, z2).
Условие D: если x, у, z g G и 2 g M (x, у), то M (x, z) [J M (z, y) = = M (x, y).
Условие E: если x, у, z g G и z g M (x, у), то M (x, z) g M (z, у) о ZD M (x, y).
Условие F: если x, y, z £ G и z g M (x, у), то M (x, z) U M (z, y) cz CI /И (x, y).
Имеет место следующая теорема.
Теорема 10.28. Для любого строго прямолинейного симметричного множества G cl X одновременное выполнение условий А, В и С влечет выполнение условия D.
Доказательство этой теоремы становится очевидным с учетом следую них двух лемм.
Лемма 10.4. Для любого симметричного множества G cz X условия А и F эквивалентны.
В самом деле, очевидно, что выполнение условия F для множества G влечет за собой и выполнение А для этого множества. Покажем теперь обратное. Так как множество G симметрично, то выполнение условия А означает, что для любых точек х, у, z g G, связанных соотношением z g М (х, у) имеют место включения М (х, z) cz /И (х, у) и тМ (г, у) cz Л4 (х, у). Следовательно, М (хг г) (J М (z, у) с М (х, у).
Лемма 10.5. Если множество GcX является прямолинейным и симметричным, то выполнение условий В и С влечет выполнение условия Е.
Доказательство леммы опирается на тот факт, что в силу В и симметричности множества G для любого набора точек %, у, г, v g G, связанных включением 2, и g М (х, у) \ {х, у^ выполняются соотношения х, у ^ М (z, и). Так как согласно лемме 10.3 множество G строго прямолинейно, то из последних соотношений следует выполнение в точности одного включения из каждой пары:
z g М (х, v) или и g М (х, z),z^M(u, у) или v£M(z, у).
Причем, если z g М (х, и), то в соответствии с условием С имеем о g g М (z, у). Если же и g М (х, г), то также на основании С получаем включение z g М (и, у). Таким образом, приходим к выводу, что z g g М (х, и) (J М (и, у) и v g М (х, 2) U М (z, у), т. е. множество G удовлетворяет условию Е.
Лемма 10.6. Любое прямолинейное множество G а X содержится в некотором максимальном по включению прямолинейном множестве из X.
Доказательство. Пусть LG — семейство всех прямолинейных подмножеств из X, содержащих G. Оно непусто, так как G cz cz LG. Введем в LG отношение частичного порядка: Ьл ^ L2 в том и только 1з том случае, когда Lx cz L2. Покажем, что если \Lt^ — произвольная цепь в Lg, то подмножество L = \j L( множества X, являющееся верхней гранью указанной цепи, прямолинейно. Пусть х, у, z — произвольные точки из L. Тогда для некоторых значений а, Р, у индекса I имеем: х g La, у g Lp, 2 g Lv. Так как множества La, L^ и Lv являются элементами одной и той же цепи в LG, то они сравнимы по включению. Не!теряя общности, предположим, что La cz Ц <z L^ и таким образом, х, у, 2 g Lv. Из L^ g Lg следует, что имеет место хотя бы одно из включений (10.29), а так как х, у, z— это произвольные точки из L, то приходим к включению L g /А В силу этого и согласно лемме Цорна 169] в Lg существует максимальный элемент, что и доказывает лемму.
Лемма 10.7. Если симметричное пространство отрезков X удовлетворяет условиям А, В и С, то всякое максимальное по включению прямолинейное множество в X г-выпукло.
Доказательство проведем методом от противного. Пусть некоторое максимальное по включению прямолинейное множество G cz X нс является r-выпуклым. Это означает, что существует пара несоссдних точек х, у g G, для которых М (х, у) (] G = (х, у}. Выберем произвольную точку z g М (х, у) \ {х, у), которая, очевидно, не принадлежит G, и определим множество G' = G (J {2}. Покажем, что G' прямолинейно. Для этого достаточно убедиться в том, что любые две различные точки и, w g G удовлетворяют хотя бы одному из включений z g Л/ (и, g М (2, w\ w g М (z, v).
Анализируя все возможные случаи" взаимного расположения точек х, у, и и w из G с X, приходим к выводу, что с учетом условий, наложенных на X, допустим лишь один из следующих случаев:
u^M^w,х),x)^M(w,yYx^M(vfy)fx^M^w,у);
vgM(&y,х),ag/W(^,yYу ЕМ (о,х),уЕМ(ю,х);
wg М (и,xYw^M(v9у)9хЕМ (и,yYхg М (^,у);
wEiM^xYw£M(v,yYу EM (vtx),yEM^w,x);
x£M(v,wYyEM(v,w)9x£M(v,yYyEM^w,x);
x^m\x),wYуЕМ^и,wYуЕМ^о,x),x£M(w9yY
Покажем, что в случае 1) имеет место включение v g М (z^, zY Действительно, с учетом условия С из соотношений х g М (w, у) и z g М (х, у) вытекает, что х g М (до, zY А так как выполняется и условие А, то последнее включение совместно с включением v g М (до, х) приводит к выводу, что v g М (до, zY Аналогично можно показать, что в случае 2) имеет место включение у g М (до, 2), а в случаях 3) и 4) — w g g М (a, zY
В случае 5) выполняется соотношение z g М (и, до). Действительно, с учетом условия А из включений х g М (и, у) и z g М (х, у) следует, что z g М (v, yY Отсюда и из включения у g М (и, до) также на основе А заключаем, что z £ М (v, wY Это же соотношение имеет место и в случае 6).
Таким образом, мы показали, что множество G' = G (J {г} прямолинейно, но это противоречит предположению о множестве G как о максимальном по включению прямолинейном множестве в X. Итак, G — r-выпуклое множество. Лемма доказана.
Теорема 10.29. Если пространство отрезков X симметрично и удовлетворяет условиям А, В и С, то для совпадения классов выпуклых и r-выпуклых множеств в X необходимо и достаточно, чтобы любой отрезок М (х, у) а X был прямолинейным множеством одного из четы
рех видов:
М (х, у) = {х, zv . . ., Zn-2, У}9(10.30)
Л4(х, у) = {х, zv z^ . .., у},(10.31)
м (X, у) = {х, . .., 22, zb у},(10.32)
Л1 (х, у) = {х, . . . , 2-1, 20, z19 . . ., у},(10.33)
где zt ^ М (х, Zj) для любых i ^ /, т. е. линейно упорядоченным множеством порядкового типа п9 со + 1, 1 + со*, 1 + (о* + со + 1 соответственно. 1
Доказательство. Необходимость. Предположим, что в симметричном пространстве отрезков X, удовлетворяющем условиям А, В и С, классы выпуклых и r-выпуклых множеств совпадают. Выберем произвольные несоседние точки х, у в X. Прежде всего, покажем, что М (х, у) — строго прямолинейное множество. Обозначим L (х, у) некоторое максимальное по включению прямолинейное множество в X, содержащее точки х и у. Такое множество существует согласно лемме 10.6 и r-выпукло в соответствии с леммой 10.7. Рассмотрим
множество
мь (х, у^ = М (х, у) n L (х, у\
которое, очевидно, тоже прямолинейно. Выберем две любые несоседние точки zx и г2 в Л1£ (х, у). Так как гъ г.2 5 L (х, у), а множество L (х, у) r-выпукло, то найдется точка z3 5 М (гх, г2) Q L (х, у) \ ^х, у}. Поскольку 2i> 22 € ^ (х, у), то на основании теоремы 10.28 приходим к выводу, что М (zx, г2) cz М (х, у). Следовательно, z3 £ М (х, у) П L (х, у), что и означает r-выпуклость множества Мь (х, у). Но в связи со сделанным предположением о совпадении классов выпуклых и г-выпуклых множеств в X заключаем, что множество Мь (х, у) к тому же и выпукло. Отсюда следует, что Мь (х, у) вместе со своими точками х и у содержит весь отрезок М (х, у) и, более того, М (х, у) = Мь (х, у). Итак, мы доказали, что М (х, у) — прямолинейное множество, а в силу леммы 10.3 оно и строго прямолинейно.
Очевидно, что множество М (х, у) можно линейно упорядочить по включению. С учетом условий Л, В и С и опираясь на теорему 10.28, приходим к выводу, что для любых различных точек и, v^M (х, у)\ {х, у) имеет место лишь одна из следующих пар включений: а) и £ М (х, у), у £ М (и, у) или б) у g М (х, и), и £ М (и, у). Приходим к выводу, что отношение линейной упорядоченности среди элементов отрезка М (х, у) можно ввести, положив и ^ и тогда и только тогда, когда и 5 М (х, у).
Покажем теперь, что множество точек любого отрезка М (и, и), где и, v — внутренние точки отрезка М (х, у), является конечным. Допустим противное. Тогда с учетом условий теоремы и линейной упорядоченности отрезка М (х, у) приходим к заключению, что существует бесконечная последовательность {^х, ^2,...J £ Л4 (w, у), удовлетворяющая одному из наборов включений:
M(wv y)czAl(ty2> y)cz • •• cl Муи» у), (10.34) М (щ Wx) cl М (и, ^2) cz • • • cz М (и, и).
Рассмотрение обоих случаев аналогично, поэтому ограничимся тем из них, когда выполняются включения (10.34).
Определим множество N = {х} U (J М О^ь ^)L Согласно условиям теоремы приходим к включениям и С М (х, у), и М (wb у), где t = 1,2, ... . Это означает, что отрезок, соединяющий точки х, у g N, содержит точку и $ N. Приходим к выводу, что множество N не является выпуклым. Покажем, однако, что оно r-выпукло. В связи с этим рассмотрим произвольную пару (у, q) несоседних точек из AL Возможны следующие варианты:
у, уС [J M(wit у); 2) р = х. q^ (J M^wb у). Z=l,2f... z=l,2,...
Вариант^!) означает, что р g М (wb у) и q £ М ^Wp у), где i^j £ {1, 2, ...} и, следовательно, р. q g М ^wb у), где к, = шах {г, /}. Указанные включения приводят к соотношениям М {р, q) cl М (ш^, у) cz N. В случае 2) для любой точки q ^М (wh у), где / g {1, 2, ...}, найдется точка :y/+i f М (у, q) f] N, Итак, множество N r-выпукло, но не
выпукло, что и доказывает нам конечность множествам (и, у). Конечность М ^и, и) означает /^-дискретность множества внутренних точек отрезка М (х, у), а с учетом выпуклости этого множества и леммы 10.1 и его слабую дискретность.
Таким образом, приходим к выводу, что отрезок М (х, у) можно представить в виде (10.30), если х и у имеют соседние с ними точки в М (х, у), в виде (10.31) или (10.32), если лишь одна из точек х или у соответственно имеет соседнюю точку в М (х, у), и (10.33), если обе 'точки х, у не имеют соседних в М (х, у).
Достаточность. Поскольку всякое выпуклое множество г- выпукло, то для доказательства этой части теоремы необходимо лишь убедиться, что произвольное r-выпуклое множество G cz X является выпуклым, т. е. вместе с любыми двумя своими несоседними точками х и у содержит и весь отрезок М (х, у).
Рассмотрим вначале случай, когда отрезок М (х, у) может быть представлен в виде (10.30). Поскольку предположили, что множество G r-выпукло, то найдется точка z^ i £ {1, л — 2), которая принадлежит Л! (х, у) П G\ {х, у). Обозначим ее 2<D. Вместо М (х, у) рассмотрим два отрезка М (х, z^ и М ^, у\ для которых в силу условий теоремы М (х, z^ J М (г^), у) = М (х, у) и М (х, z^ П М (^^ у) = (2(D). Если среди указанных отрезков есть такие, которые не содержат внутренних точек, то их можно исключить из дальнейшего рассмотрения, так как все их точки принадлежат G.
В силу r-выпуклости множества G на отрезках М (х, z^) и М ^х\ у), если они не исключены из рассмотрения, найдутся соответствующие точки z^ £ М (х, zW) \ {%, ^ и 2(3) С М <^х\ У) \ {^(D, у} которые принадлежат G и М (х, у) одновременно. Вместо предыдущих двух получим четыре отрезка, для которых в силу условий теоремы имеют место соотношения:
М (х, z^ (J М^\ z(x>) = M(x, 2(D),
М (X, 2(2)) 0 М^\ Z^= {2(2)},
M(2(D Z^ и М(2<3), у^М^х\ у\
М(2<», 2(3)) П М(2<3>, у) = (2(3)}.
Из дальнейшего рассмотрения можно исключить, как и прежде, от резки без внутренних точек, так как они полностью содержатся в G В каждом из оставшихся отрезков, опять-таки в силу r-выпуклости G найдется хотя бы по одной точке, принадлежащей G и /И (х, у) одно временно, и т. д. Продолжая эти рассуждения необходимое число раз и пользуясь конечностью М (х, у), приходим к выводу, чтоЛ4 (х, у) cz cz G.
Если отрезок М (х, у) можно представить в виде (10.31), то с помощью построений, аналогичных проведенным в первом случае, получим бесконечную последовательность точек 2<D, z^, ... из множества М (х, у) Q G. В силу условия А М (х, 2(D) cz М (х, у) для всех I = = 1,2, ... Так как любое множество М {х, г^ конечно и может быть представлено в виде, аналогичном (10.30), то М (х, г^^ cz G. Но и тогда и М (х, у) = { (J М (х, 2j} (J {у} cz G.
f=l,2#...
Предположив, что отрезок М (х, у) имеет вид (10.32), и применив рассуждения, аналогичные второму случаю, получим включение Л4 (х, у) a G.
Пусть отрезок М (х, у) представляет собой множество вида (10.33). С учетом r-выпуклости множества G найдется некоторая точка 2 ^ М (х, у) П G- Вместо отрезка М (х, у) рассмотрим два отрезка М (х, г) и М (2, у), которые имеют порядковые типы 1 + со* и (о и могут быть представлены в виде, аналогичном (10.31) и (10.32) соответственно. Очевидно, что в силу условий теоремы М (х, г) J М (2, у) = Л1 (х, у) и М (х, 2) П М (2> У) (2Ь Дальнейшее доказательство в данном случае аналогично доказательствам, приведенным для второго и третьего случаев.
Глава 11
ВОПРОСЫ РАЗРАБОТКИ ПАКЕТОВ ПРОГРАММ
ВВОДНЫЕ ЗАМЕЧАНИЯ И УТОЧНЕНИЕ НЕКОТОРЫХ ПОНЯТИЙ
В последнее время вопросам разработки пакетов программ уделяется значительное внимание [15, 25—27, 97, 139—141, 181, Д2, Д14, Д17, Д19, Д20, Д27, Д53, Д64, Д65, Д67] как в пашей стране, так и за рубежом. Это объясняется той ролью, которую играют современные ПП в деле повышения эффективности использования экономико-математических моделей и методов при решении на ЭВМ сложных задач управления, планирования и проектирования. Без используемых ПП трудно представить работу современных АСУ, автоматизированных систем проектирования и обработки данных, автоматизированных систем планирования (АСП), комплексное решение сложных оптимизационных задач (ОЗ), автоматизированную интегрированную обработку больших информационных массивов, управление сложными объектами и научными экспериментами и др.
Первые ПП появились в 60-х годах. С их помощью была предпринята попытка повысить эффективность уже существующих и находящихся в разработке библиотек программ. С этой целью были созданы всевозможные управляющие программы, которые в известном смысле обеспечивали оперативное использование одних программ (как заготовок) при работе других программ. С каждым годом такого рода управляющие программы усложнялись параллельно с развитием ЭВМ и их операционных систем (ОС), разработкой новых способов хранения программ и всевозможных данных, а также развитием методов динамического использования программ в процессе вычислений. В результате появились различные подходы к разработке ПП, разнообразные способы использования последних в вычислительном процессе.
В настоящее время ПП принято рассматривать как один из видов МО ЭВМ, ориентированный на автоматизацию процесса эффективного решения задач из одной или нескольких прикладных областей. Под современными ПП понимают комплексы прикладных и системных программ вместе с языковыми средствами, обеспечивающими взаимодействие пользователя с этими комплексами, и необходимой технической документацией, которая используется при программировании и решении задач определенного класса. Прикладные программы, составляющие функциональное наполнение пакета, осуществляют непосредственное решение задач из данной предметной области, а системные программы
Рис. 11
(т. е. системное наполнение пакета) обеспечивают взаимодействие пользователя с пакетом и автоматизацию процесса программирования и управления решением задач.
Разработка функционального наполнения ПП базируется на предварительном системном анализе задач соответствующей прикладной области и изучении тех математических методов, которые используются при решении задач из этой области. Сложность системного наполнения пакета зависит от тех функций, выполнение которых возлагается на пакет (реализацией этих функций обеспечивается максимум удобств пользователям при применении ПП).
Среди ПП различают (рис. 11): методо-ориентированные (общего назначения), реализующие определенную группу методов, которые позволяют решать задачи из различных предметных областей; проблемно-ориентированные (функциональные), использующие такие наборы методов, которые дают возможность эффективно решать задачи, характерные для данной предметной области (задачи планирования, управления и др.); информационные, предназначенные для накопления, хранения и ведения баз данных больших объемов; исследовательские, применяемые для решения задач по исследованию эффективности работы самих ПП и других компонент математического и технического обеспечения ЭВМ (они работают в сопряжении с ОС и информационными ПП). Иногда выделяют также операционные ПП, расширяющие возможности ОС.
Развитые современные ПП, как правило, могут работать в различных режимах. Они используются автономно и в сопряжении с другими ПП и программными комплексами. В частности, их используют в качестве составных частей АСУ, автоматизированных систем обработки данных (АСОД), других автоматизированных и автоматических систем. Ясно, что эффективность тех или иных применений ПП, как и различных режимов их работы, находится в тесной зависимости от того, насколько удачно реализованы соответствующие компоненты ПП в их программном обеспечении.
Наиболее часто используемыми в ПП являются пакетный и диалоговый (интерактивный) режимы, режимы телеобработки данных и реального масштаба времени, а также смешанные режимы, представляющие собой определенную комбинацию перечисленных режимов, и др. Режим телеобработки предназначен для принятия и пере-
дачи данных с помощью линий связи на расстояние, диалоговый — для решения задач при активном вмешательстве пользователя в вычислительный процесс, реального масштаба времени — для обработки данных, характеризующих работу объекта (реактор, химический процесс и др.) в реальном времени.
Особо отметим важность реализации в современных ПП развитого диалогового режима. Он представляет потребителю принципиально новые возможности при решении сложных задач обработки данных, в частности оптимизационных задач большой размерности. Используемые зачастую при этом видеотерминалы, световые карандаши, графопостроители и другие виды технического обеспечения ЭВМ делают этот режим работы ПП исключительно эффективным и незаменимым.
Развитие диалоговых системных средств справедливо часто связывают с развитием систем искусственного интеллекта. Для многих прикладных областей (оптимизация вычислений, оперативное управление сложными процессами и др.), когда возникает необходимость пошагового решения задач с возможностью интерактивного взаимодействия с ПП, оперативной корректировки данных, визуального наблюдения за вычислительным процессом, упрощения процесса обучения входным проблемно-ориентированным языкам и др., применение интерактивных способов взаимодействия пользователей с пакетами программ становится настоятельной необходимостью.
Методы ведения диалога и степень «разговорчивости» ПП существенно зависят от особенностей их предметной области и способов организации вычислительного процесса (ВП) в пакете. В зависимости от того, в чьих руках находится инициатива ведения диалога, различают командные и инициируемые диалоговые ПП. Системы первого типа предоставляют инициативу ведения диалога пользователю, вторые — пакету, причем во втором случае вопросы пользователю задаются по готовому сценарию. Простейший вид инициируемых языков — заполнение окон в макетах готовых конструкций, а ответы ПП — это «да», «нет» или одно из возможных значений ряда параметров. В более сложных интерактивных системах диалоговые языки задаются в виде сцепления их грамматик.
Существуют современные пакеты, в которых инициатива ведения диалога находится поочередно то у ПП, то у пользователя.
Первыми диалоговыми языками принято считать языки APL и BASIC, а началом интенсивного развития диалоговых систем — начало 60-х годов. В СССР в последние два десятилетия достигнуты существенные результаты в этой области.
Основными составными частями ПП являются (рис. 12): 1) входной язык (ВЯ); 2) управляющая программа (монитор), организующая вычислительный процесс при решении задач и реализующая такие основные функции, как трансляция текстов заданий, планирование вычислений, генерация данных, программ и отчетов с помощью соответствующих генераторов: ГД, ГП и ГО; 3) базы данных пакета, содержащие модели предметных областей и прикладные программы; 4) подсистема 5Х накопления и обработки данных, характеризующих ра-
Входной языкВходной языкБазы данных и система их дздения\Базы данных и система их дздения\Подсистемы ППS1 - изучение „опыта” работы ГП j и Выработка рекомендаций jПодсистемы ППS1 - изучение „опыта” работы ГП j и Выработка рекомендаций j11Рис. 12Рис. 12S2-модернизация МО ПП и его структурыS2-модернизация МО ПП и его структурыS3-контроль и диагностика сбоев и ошибокS3-контроль и диагностика сбоев и ошибокS- сопряжение с другими ПП и системамиS- сопряжение с другими ПП и системами3- анализ результатоврешения задач3- анализ результатоврешения задачIГенераторы ПП। Г7Г। [Генератоо данныхIГенераторы ПП। Г7Г। [Генератоо данныхГенератор отчетовГенератор отчетовГенератор программ и СП I [ZTT2JГенератор программ и СП I [ZTT2J
Входной язык
Входной язык
Базы данных и система их дздения\
Базы данных и система их дздения\
Подсистемы ПП
S1 - изучение „опыта” работы ГП j и Выработка рекомендаций j
Подсистемы ПП
S1 - изучение „опыта” работы ГП j и Выработка рекомендаций j
1
1
Рис. 12
Рис. 12
S2-модернизация МО ПП и его структуры
S2-модернизация МО ПП и его структуры
S3-контроль и диагностика сбоев и ошибок
S3-контроль и диагностика сбоев и ошибок
S- сопряжение с другими ПП и системами
S- сопряжение с другими ПП и системами
3- анализ результатоврешения задач
3- анализ результатоврешения задач
IГенераторы ПП
। Г7Г
। [Генератоо данных
IГенераторы ПП
। Г7Г
। [Генератоо данных
Генератор отчетов
Генератор отчетов
Генератор программ и СП I [
ZTT2J
Генератор программ и СП I [
ZTT2J
боту ПП; 5) подсистема S2 усовершенствования МО ПП; 6) подсистема Sg контроля за правильностью функционирования ПП на всех этапах его работы и организации диагностических сообщений; 7) подсистема S4 организации совместной работы данного ПП с другими пакетами и программными комплексами; 8) подсистема S6 анализа полученных результатов решения задачи (задач) с помощью ПП; 9) генератор пакета и генератор специализированных пакетов (ГСП), предназначенных для эффективного решения определенных подмножеств задач, принадлежащих предметной области данного ПП.
Разумеется, что далеко не все перечисленные компоненты ПП реализованы в равной мере даже в хорошо развитых и ныне использующихся на практике пакетах. Это объясняется многими причинами. Во-первых, реализация в ПП тех или иных функций сопряжена со значительными трудностями и затратами, временными задержками
сроков окончания разработки ПП; во-вторых, выбор для реализации основного набора функций пакета определяется той ролью, которая ему отводится потребителем — будущим пользователем пакета; в-третьих, уровень разработки ПП в значительной мере зависит от степени исследования его предметной области; и, наконец, в-четвертых, проект реализации ПП сильно зависит от технической базы, на основе которой он будет функционировать. Учитывая сказанное, разработчики отдельных ПП идут, как правило, на реализацию только самых необходимых функций для каждого данного ПП, при необходимости наращивая их в процессе эксплуатации ПП, его модернизации или в следующих версиях его развития. Такая последовательная разработка ПП позволяет зачастую приблизить момент начала их эксплуатации, сделать необходимые усовершенствования пакетов и решить
ряд других важных вопросов.
Характерным для настоящего этапа развития ПП [139, 1401 является то, что они благодаря все более полной реализации перечисленных выше составных частей (функций) постепенно превращаются в так называемые интеллектуальные системы, обладающие развитыми средствами хранения, накопления и обобщения знаний из определенных предметных областей, необходимых для эффективного решения типовых задач, принадлежащих этим областям.
Заметим, что для развитых ПП знания, характеризующие опыт решения задач из данной предметной области, в виде отдельных характеристик представляются специализированными базами данных и модулями — отдельными фрагментами программ (или целыми программами), снабженными стандартными средствами для связи с другими модулями. Взаимосвязь этих знаний представляется специальной совокупностью сведений, которая интегрирована в так называемые модели предметных областей (МПО).
В зависимости от типа МПО и особенностей используемой организации ВП в таких системах выделяют интерпретаторы, генераторы и компиляторы, а также другие системы с автоматической организацией ВП. Развитые ПП этого направления располагают средствами планирования вычислений, оперативного сопряжения с другими программными компонентами, автоматизации операций по накоплению и усовершенствованию знаний о предметной области (по обновлению модулей, корректировке и расширению МПО и т. п.).
Основное назначение большинства из представленных на рис. 12 составных частей ПП является достаточно ясным из их названий. Сделаем, однако, несколько замечаний относительно входного языка ПП и уточним функции монитора как наиболее сложного элемента МО ПП. Функции других составных частей ПП частично будут обсуждены в данном и последующих параграфах.
Входной язык ПП, предназначенный для пользователя, как правило, должен быть непроцедурным. Он применяется для описания задач и заданий пакету на содержательном уровне. Поэтому он зависит от предметной области пакета и должен включать в качестве своих составных частей профессиональную терминологию, позволяющую пользователю легко, просто и лаконично формулировать задание пакету (описывать исходные данные, формулировать цели решения задачи и всевозможные условия ее постановки, задавать формы выдачи результатов решения задачи и др.).
Часто входной язык ПП расширяют языками средств инструментального характера, предназначенными для описания последовательности используемых при решении задач процедур, условий задачи и задания (заданий) на ее решение. Развитые входные языки пакетов могут иметь эффективные средства для изучения моделей решаемых задач, методов их решения, отладки включаемых в ПП дополнительных модулей и т. п. Иногда имеет смысл во входном языке пакета выделять различные его подмножества, которые должны адресоваться пользователям различных категорий и служить для различных целей — непосредственного решения задач, манипуляций по усовершенствованию пакета и отладке отдельных компонент МО пакета, решения задач в интерактивном режиме и т. д.
Системные программы, которые в комплексе образуют так называемый монитор, реализуют особенности процесса решения задач из заданной предметной области, обеспечивают связи по управлению и данным, выдают необходимую диагностику. Одной из основных задач монитора является трансляция заданий ПП, записанных во входном языке, на некоторый внутренний язык пакета, а также нланиро-
Задание
ЗаданиеГ ^.^f Задание
базы данных
Задание на Входном языке
НПО
банк
Отчет
ГСП
Генератор программ
JПрограмма- юользобателы
Генератор отчетов
Г°норатор данных
Вычислительная схема реализации задания^
Задание на
Внутреннем языке
1
Сообщение ^
Результат
счета
Рис. 13
Загрузчик- исполнитель
Ведениебаз данных
Программы интерфейса
Программ
Результат
счета
вание вычислений. Знания о вычислениях из данной предметной области и их взаимосвязь задаются, как уже отмечалось, в виде МПО. Обычно МПО представляются с помощью разного рода ориентированных нагруженных графов [Д47]. МПО является информационной составляющей ПП и часто реализуется в виде специализированных баз данных, отделенных от монитора. Монитор же во многом зависит от особенностей МПО, режима взаимодействия пользователя и пакета, режима использования ПП (автономно или в комплексе с другими компонентами МО), программно-технической базы, на которой он реализуется и функционирует (тип ОС, тип языка программирования, тип технического комплекса и т. п.).
Единую типовую структурную схему ПП для разных применений дать весьма затруднительно. В качестве примера приведем (рис. 13) одну из возможных схем ПП. Именно такого типа структурная схема ПП лежит в основе многих пакетов, созданных в Институте кибернетики им. В. М. Глушкова АН УССР и в ряде других организаций страны.
В общих чертах организация ВП при решении задач с помощью ПП выглядит следующим образом.
Задания ПП на решение прикладных задач формулируются на проблемно-ориентированном входном языке ПП и поступают в монитор. Последний, точнее, его резидентная компонента, находящаяся постоянно в оперативной памяти, осуществляет инициирование других системных его компонент: анализатора, планировщика, исполнителя и генераторов (ГП, ГД, ГО, ГСП), программ интерфейса и др.
Анализатор осуществляет синтаксический и семантический анализы текста заданий, т. е. проверяет корректность поставленных задач, переводит текст задания во внутреннее представление, с которым затем работает планировщик. Назначение планировщика — составить план ВП для реализации задания так, чтобы при этом удовлетворялись некоторые вполне определенные критерии эффективности организации ВП, например достигался минимум времени решения задачи или минимум памяти, занимаемой программой решения задачи, или максимум точности вычислений и т. п. Полученный таким образом план организации ВП обычно реализуется некоторой цепочкой программных модулей.
Различают статическое планирование, когда цепочки модулей могут быть определены ПП до решения задачи, и динамическое — когда элементы цепочки находятся в процессе решения задачи. Применение того или иного способа существенно зависит от МПО 1Д46].
Очевидно, что по построенному плану далее можно либо составить саму программу для выполнения задания, либо непосредственно решить поставленную задачу. В первом случае монитором вызывается для работы ГП (или ГСП), во втором — исполнитель. Информация о ходе ВП поступает в виде сообщений на заданные устройства вывода.
Для обеспечения оперативного сопряжения ПП с другими компонентами МО служат программы интерфейса. Их функции существенно
зависят от вида сопряжения (связь по управлению, по данным — односторонняя или двухсторонняя), инициатора сопряжения (ПП или компоненты МО), программно-технических средств, на которых реализованы ПП и сопрягаемые компоненты и т. п. Разумеется, что еслиПП работает в автономном режиме, то эта компонента МО ПП не используется.
В процессе функционирования ПП активно используются базы данных пакета. С целью повышения эффективности операций по ведению этих баз используется специальная программная компонента, которая совместно с этими базами данных представляет собой специализированную систему управления базами данных (СУБД).
Монитором подключаются к работе также те компоненты ПП, которые позволяют в процессе функционирования ПП использовать подсистемы Sr и S2, накапливающие и систематизирующие различного рода статистические данные о динамике использования составных частей МО ПП и его технической базы, а также дают возможность осуществлять модернизацию МО ПП и его структуры. Анализ такого «опыта» работы ПП ведет к более рациональной организации ПП в каждом конкретном случае его применения.
Как видим, современный ПП — это программный продукт весьма сложной структуры, реализующий функции многих современных видов МО. Поэтому задача создания передовой методологии и технологии построения ПП является весьма актуальной.
Следует отметить, что в последнее время вопросам разработки технологий построения больших программных систем уделяется значительное внимание. С помощью этих технологий пытаются с общих позиций решить вопрос об индустриализации процесса программирования сложных программных систем. В результате их разработки появились модульное программирование, программирование сверху вниз, ///РО-технология, R-технология, метод формализованных технических заданий и др. Эти технологии пригодны для построения ПП отдельных видов.
Широкое распространение получил следующий технологический прием, применяющийся при построении ПП: программные модули создаваемого пакета описываются на одном из базовых языков программирования (возможно, с помощью одной из действующих технологий программирования), а взаимосвязь программных модулей, т. е. сама интеллектуальная часть пакета, в виде МПО представляется на специально разработанном языке для данного семейства ПП, затем МПО транслируется и сопрягается с системными программами, входящими в монитор пакета. При этом заполняются словарь входного языка и другие вспомогательные таблицы. В результате получается пакет, ориентированный на заданный класс задач. При этом важно, чтобы МПО, для которых используются системные компоненты некоторого ПП, были аналогичными.
Здесь, однако, может возникать ряд технических затруднений. В частности, не всегда оказывается эффективным использовать один и тот же монитор для разных МПО, разных типов ЭВМ и технических устройств. Поэтому в настоящее время разрабатывается и другая,
более совершенная технология. Ее идея кратко состоит в том, что по аналогии с тем, как мы накапливаем знания о вычислениях с помощью библиотек прикладных программных модулей, необходимо накапливать знания об управлении процессом решения задач в виде различных системных модулей. Аналогично тому, как монитор собирает рабочую программу из прикладных модулей, некоторая система верхнего уровня собирает весь пакет по определенному описанию требований, предъявляемых к нему. При этом библиотека прикладных модулей и МПО выступают как самостоятельные составные компоненты МО ПП. Такого рода технология экспериментально проверяется в Институте кибернетики им. В. М. Глушкова АН УССР на создаваемой инструментально-базовой технологии сборочного программирования [Д16].
Построение ПП базируется на учете следующих основных принципов и требований:
обеспечение для пользователя простоты и удобства при решении задач;
автоматизация ВП, в том числе на этапе выбора наиболее подходящего метода решения задачи;
экономное распределение памяти ЭВМ;
возможность генерации рабочих программ и их комплексов, которые могут затем самостоятельно использоваться для решения задач;
совместимость по данным, входным языкам и иным параметрам с другими ПП, которые используются при решении задач из данной или смежной предметной области;
автоматическое накопление «опыта» работы ПП путем автоматического и автоматизированного сбора и обработки различного рода статистических данных (количественных, частотных, временных и других характеристик), характеризующих работу всего ПП и его отдельных составных частей;
модульность построения МО ПП, обеспечивающая пакету возможности адаптироваться, модифицироваться, расширяться, эффективно использоваться на протяжении продолжительного времени.
Опыт разработки и использования ПП показывает, что их «живучесть» находится в прямой зависимости от рационального учета при создании МО ПП перечисленных выше основных принципов. В зависимости от назначения ПП, способов его возможного использования и планирующихся (на этапе проектирования пакета) перспектив его дальнейшего развития одна часть из этих принципов может быть реализована в полном объеме, а другая — частично (или же совсем не реализована). На следующих этапах разработки ПП ранее нереализованные принципы могут найти свою реализацию, а уже учтенные требования получить дальнейшее развитие. Такой возможности постепенного наращивания функций пакета способствует использование модульной структуры их МО.
Особо отметим актуальность реализации в ПП подсистем SL и S2> обеспечивающих возможности автоматизированно и автоматически
накапливать и обрабатывать различного рода данные, характеризующие «опыт» работы ПП. Последнее позволяет обоснованно осуществлять процесс обновления МО пакета, строить его новые версии для уточненных предметных областей, лучше и быстрее проводить перестройку МО пакета в процессе его эксплуатации, в частности более рационально размещать в различных видах памяти ЭВМ отдельные компоненты МО пакета. Реализация этой возможности является, как правило, весьма сложной проблемой, которую требуется решить разработчикам ПП. При этом, разумеется, сбор, классификация и обработка собираемых и накапливаемых данных, характеризующих различные стороны функционирования пакета, а также выдача обоснованных рекомендаций по его переустройству не должны отрицательно сказываться на времени работы пакета, т. е. не должны слишком замедлять решение основных задач. Именно поэтому для каждого из режимов работы ПП и для конкретных условий его использования должны быть найдены наиболее обоснованные ответы на такие вопросы: когда, при каких обстоятельствах и с использованием каких средств следует накапливать «опыт» работы пакета; какие средства и какие критерии целесообразно использовать для обработки систематизированных данных; когда лучше, если это требуется, и каким способом осуществлять перестройку пакета; как рационально распределить функции решения сложных задач и адаптации пакета между человеком и системой.
Поиск ответов на поставленные вопросы приводит разработчиков пакетов к различным подходам решения данной проблемы. Один из них состоит в том, чтобы строить ПП в виде универсально-специализированных систем [140], которые в процессе функционирования могут улучшать свою структуру и порождать узко специализированные пакеты. Частично этот подход нашел свою реализацию при построении ряда АСОД, в частности автоматизированной системы обработки статистических данных [140], АСОД ФАП и др.
Большое значение при построении ПП различных классов имеет соблюдение требований их совместимости по различным параметрам. Это особенно касается тех пакетов, которые решают задачи из одной предметной области, а также тех случаев, когда для решения сложных комплексных задач необходимо использовать совместную работу сразу нескольких пакетов. Ведь при решении задач с помощью ПП процесс подготовки данных (особенно для задач большой размерности) играет существенную роль и требует значительного времени. Поэтому необходимо унифицировать для пакетов одного направления формы и форматы задания данных, способы их корректировки, обеспечить возможность непосредственного продолжения вычислений, начатых одним из пакетов семейства, другими пакетами этого же семейства. Нередко вопросы подготовки достоверных входных данных для работы ПП приобретают первостепенное значение, и если их дальнейшая обработка предполагает последовательное использование многих ПП, то совместимость последних по данным, а иногда и входным языкам и другим их параметрам становится важным практическим требованием.
На остальных принципах построения ПП мы остановимся дополнительно при рассмотрении отдельных типов пакетов, в частности ПП, предназначенных для решения оптимизационных задач. Это прежде всего касается вопросов автоматизации ВП в ПП, автоматизации выбора метода решения задачи и генерации программ с помощью ПП.
Современное состояние теории и практики разработки ПП характеризуется достаточно высоким уровнем развития способов интеграции МПО из разных областей (построением интегрированных ПП), специализацией ПП для данного применения (построением универ- сально-специализируемых ПП), объединением ПП в семейства для решения крупных народнохозяйственных задач. Развитие технологий построения отдельных видов ПП с учетом развития операционной системной среды (развитие ОС, СУБД, ЭВМ и их технического оснащения, условий применения математических методов и моделей и т. п.) неизбежно приводит к необходимости построения семейств ПП. Для решения сложных научно-технических и хозяйственных проблем, какой, например, является проблема построения ОГАС, разрабатываются и уже находят применение системы взаимосвязанных семейств ПП. Большие перспективы повышения эффективности решения задач с применением ПП открываются при использовании их на многопроцессорных ЭВМ, на которых реализованы идеи параллельных вычислений и макроконвейерной обработки. Реализация подсистем Si и S2 (см- Рис- 12) в ПП предполагает использование в них широкого набора критериев эффективности (КЭ), позволяющих в каждом конкретном случае определить, насколько эффективно применение пакета для решения данного класса задач, принять обоснованное решение о целесообразности внесения изменений в МО ПП. Заметим, что для разработки КЭ, предназначенных для определения значений различных характеристик ПП, необходимо 1125, 141, Д58] проводить специальные исследования структуры пакета, его МО, математических методов, степени использования пакетом устройств ЭВМ в различных режимах и др. Такие исследования, как показывает опыт [34, 125], могут существенно помочь повысить эффективность используемых ПП и ЭВМ, и для их осуществления целесообразно разрабатывать специальные средства [141].
О ПРИМЕНЕНИИ РЕЗУЛЬТАТОВ ТЕОРИИ РАСПОЗНАВАНИЯ
ДЛЯ АВТОМАТИЗИРОВАННОГО ВЫБОРА АЛГОРИТМОВ
РЕШЕНИЯ ЗАДАЧ В ПАКЕТАХ ПРОГРАММ
Разработка большого числа новых и различных модификаций известных методов привела к необходимости решения очередной проблемы — выбора наиболее подходящего метода решения, которая неизбежно возникает при появлении каждой прикладной задачи. К сожалению, имеющиеся теоретические исследования по эффективности большинства существующих методов дискретной оптимизации зачастую не позволяют решить эту проблему.
Известно, что для комплексного решения задач оптимизации на ЭВМ наиболее эффективными программными средствами являются пакеты программ. В этом случае проблема выбора метода решения стоит наиболее остро.
До настоящего времени при решении оптимизационных задач с помощью пакетов прикладных программ выбор алгоритма решения и определение значений его параметров проводились, как правило, пользователем субъективно на основании некоторых плохо формализуемых понятий, например интуиции или ряда эвристических правил, которые у каждого пользователя индивидуальны. В этом случае любая погрешность может привести к неоправданным затратам машинных ресурсов и увеличению времени решения. Вот почему одной из актуальных проблем, как уже ранее отмечалось, при создании современных ПП является проблема автоматизированного выбора метода решения конкретной задачи из предметной области ПП. Как правило, в развитых ПП [Д57] используются схемы таких методов, которые в зависимости от значений тех или иных параметров могут порождать целое семейство алгоритмов для решения некоторого класса задач. В связи с этим количество реализуемых в пакете алгоритмов может быть значительным, и поэтому при решении конкретной задачи с помощью ПП задача выбора наилучшего алгоритма является достаточно сложной. Следует также учесть, что множество пригодных для решения конкретной задачи алгоритмов существенно зависит от параметров последней и не хранится в явном виде в базе пакета, а генерируется при необходимости решения задачи поиска наилучшего из них. Такие задачи поиска алгоритма должны решаться в автоматическом (или автоматизированном) режиме системным обеспечением пакета. Один из подходов к ее решению на примере задач дискретной оптимизации, в частности, целочисленного линейного программирования (именно в этой области накоплен значительный опыт разработки и использования современных ПП), будет изложен в настоящем параграфе.
Задача выбора метода решения может быть сформулирована следующим образом: задано множество алгоритмов М = (Mx, ..., М^, с помощью которых решены задачи Zx, ..., Zq; известны описания этих задач, их оптимальные решения и описание вновь поступившей задачи Z; на основе этой информации требуется установить (с достаточно высокой степенью уверенности), какие из алгоритмов множества М окажутся приемлемыми по некоторому выбранному критерию для решения задачи Z, и, если это возможно, определить наилучший из указанных алгоритмов.
Сформулированная таким образом задача обычно относится к так называемым задачам распознавания или классификации [Д4].
В теории распознавания со стандартной обучающей информацией рассматриваются алгоритмы, осуществляющие отображение исходной информации в матрицу решений, которая составлена из символов О, 1, Л и имеет для каждой фиксированной задачи стандартные размеры /, /, где q* — число отдельных описаний (распознаваемых объектов); / — число классов.
В данном случае число классов / совпадает с числом методов решения задач дискретного программирования, из множества которых производится выбор.
Классы могут формироваться по следующей схеме. Задача Z дискретного программирования принадлежит классу Кь j Е (L •••, Ц» если метод М^ является приемлемым (оптимальным) для задачи Z. Если выбор метода производится одновременно для задач Ztl, ... ..., Z^,, то (^' X /)-матрица решений (fysj) интерпретируется следующим образом:
Pzs/= 1 : метод М? является приемлемым для задачи Zz$;
Р^/ = 0: метод М, является неприемлемым для задачи Z^,
pz z = А : алгоритм не установил приемлемость или неприемлемость метода М, для задачи Z^.
В теории распознавания принято считать, что описания анализируемых ситуаций или задач задаются набором значений конечного числа фиксированных признаков, область значения каждого из которых является метрическим пространством. Анализ близости двух ситуаций проводится на основе расстояний между значениями признаков, имеющих один и тот же порядковый номер. Номера признаков в описании ситуаций фиксированы, и в типичных схемах не принимаются во внимание расстояния между признаками с различными номерами. Это обстоятельство не позволяет автоматически перенести традиционные алгоритмы теории распознавания на случай выбора приемлемого метода для решения задач целочисленной оптимизации. Действительно, не ограничивая общности, можно полагать, что линейная оптимизационная задача, например задача ЦЛП, определяется тремя наборами данных: множеством коэффициентов функции цели С = \cji = 1, ..., п\, множеством коэффициентов вектора правых частей ограничений В = \bjl = 1, ..., пг\ и множеством коэффициентов (хи X п)-матрицы ограничений А = (^/). Таким образом, описание / (Z) задачи Z задается конечным набором числовых признаков
(Сх, . . . , Сп, дх» • • • > Ьт) йхх» • • • > ^тп)> (11 • 1) где т и п — соответственно количество ограничений и переменных оптимизационной задачи Z. В задачах оптимизации порядок ограничений, равно как и наименование переменных, могут быть выбраны произвольно, поэтому две задачи, задаваемые описаниями вида (11.1), могут оказаться при покоординатном сравнении далекими друг от друга и вместе с тем почти идентичными, если выполнить некоторую перестановку ограничений и переменных. Следовательно, для использования аппарата теории распознавания требуется существенная модификация имеющихся методов, учитывающая возможность перестановки координат описания (11.1) при вычислении близости между двумя задачами. Последнее может быть достигнуто следующим образом.
В описании (11.1) задачи ЦЛП выделяются две разнородные части: вектор коэффициентов функционала и матрица ограничений, развернутая линейно. Расстояние между описаниями двух задач определяется как линейная комбинация следующих двух расстояний:
между векторами коэффициентов функционала;
между матрицами ограничений.
Пусть в задачах Z и Z' векторы коэффициентов функционала имеют соответственно вид {cj /= 1, ..., п^ (с, | /= 1, ..., и). Составим (п х п)-матрицу (р ^Сь с^ и найдем перестановку Уи ..., in) £ Р такую, что
£ pfo, сЛ= min V р(е„ с')
(здесь Р — множество перестановок п чисел; р (х, у) — некоторая метрика в Rny
Решение этой задачи минимизации сводится к решению задачи о назначениях, для которой, как известно, существует эффективный венгерский алгоритм.
Пусть в результате решения сформулированной задачи найдена оптимальная перестановка (1Ъ ..., Q. Тогда в задаче Z* выполняется соответствующая замена переменных, и расстоянием р (с, ^) назы
вается величина у р (^, с. \
После фиксации порядка переменных аналогичным образом определяется порядок ограничений. Без потери общности можно считать, что ограничения в задаче Z имеют фиксированные номера 1, ..., т, а в задаче Z' они переставляются таким образом, чтобы было обеспечено их минимальное отклонение от ограничений задачи Z. Последнее также достигается решением соответствующей задачи о назначениях.
Как показывает опыт решения прикладных оптимизационных задач, одним из характерных признаков труднорешаемых задач является «близость» коэффициентов функции цели и матрицы ограничений. Иными словами, чем больше «разброс» этих коэффициентов, тем, как правило, больше шансов на успех при решении задачи точными методами, в частности методами типа ветвей и границ. Поэтому совершенно естественно в качестве расстояния между описаниями двух задач выбрать функцию, отражающую степень разброса значений указанных коэффициентов. Как уже было отмечено, любая линейная задача дискретного программирования задается тремя множествами данных А, В, С. Однако, проведя определенную «нормировку» за- дачи, разделив коэффициенты каждого t-ro ограничения на величину bb i = 1, .,., т, можно ограничиться множествами А и С. В этой связи рассмотрим следующую функцию, характеризующую степень разброса коэффициентов задачи Z:
i=l /=1 fe=j 'О1 Tl urt I
а в качестве метрики в пространстве описаний оптимизационных задач — функцию
p(/(Z), /(Z'))-|/?(Z)-/?(Z')|.
Как и раньше, предполагаем, что для каждой из решенных задач Zt, i = Y, .... q, задано некоторое действительное число ^ — вес задачи Zt. Расстояние от некоторой задачи Z до множества задач, принадлежащих классу К/, можно определить следующим образом!
P(/(Z), ?О-= 5 P(/(Z), 1^\
где / (IF/) — совокупность описаний задач Zt £ Кь
Потенциалом задачи Z относительно множества задач, принадлежащих К/, назовем величину
Я/ (/ (Z), / (О =,
где и^, су2, w3 — некоторые константы, величина которых определяется при выборе значений параметров алгоритма потенциалов.
В общем случае величину потенциала задачи Z относительно класса К/ обозначим Лу. Тогда алгоритмы типа потенциалов выполняются в в два этапа:
по задаче Z, подлежащей классификации, строится строка л = (ль ..., nz) значений потенциалов;
по набору потенциалов делается вывод о вхождении Z в класс К/, / = 1/.
Алгоритмы распознавания с рассмотренной метрикой в пространстве описаний задач целесообразно применять при / = 2, когда Мг— метод получения точного решения задачи дискретного программирования, а М2 — приближенный метод, в частности метод локальной оптимизации.
Известно, что все алгоритмы распознавания, работающие над стандартной обучающей информацией, представимы в виде композиций двух алгоритмов Л = Л^з, где Лт — отображение стандартной обучающей информации в числовую (^ X /)-матрицу оценок (Г,/); Л2 — поэлементное пороговое решающее правило, переводящее оценки в окончательные ответы.
Пороговое правило Л2 можно принять фиксированным для всех алгоритмов. Рассмотрим следующее правило:
Д2({Г^=1,
., ^; /= 1, ...,/}) =
q; j =Y,Ц.
1,
если х > Nv
Аг^ = 0,
если х < У2,
А,
если N2^.x^.Nv
где Мг и N2 — константы (^ > N2 > 0).
В дальнейшем будем рассматривать задачи с фиксированным числом ограничений, равным т. Определим класс операторов Ль переводящих исходную информацию в матрицу числовых оценок.
Определение оператора разбивается на четыре этапа.
Из множества номеров признаков {1, ..., Л/}, N = п + т X X п, выделяется система подмножеств Од, называемых в дальнейшем опорными.
Задается функция близости 6V (Z, Z'\ где v соответствует некоторому а^Ол; 2, Z'— произвольные задачи. Такая функция отражает степень схожести частей описаний / (Z) и / (Z'), соответствующих опорному множеству о. Задание функций 8V (Z, Z') может быть различным.
Основываясь на имеющемся экспериментальном материале решения задач ЦЛП, можно сделать вывод о том, что такая функция должна учитывать степень «параллельности» гиперплоскостей, задающихся ограничениями задач.
Пусть Ох,..., От — ограничения ранее не классифицированной задачи Z. Предположим, что при сравнении задач Z и Z* решены соответствующие задачи о назначениях, т. е. переменные одной из задач соответствующим образом перенумерованы, и ограничению 0^ задачи Z соответствует ограничение O,v задачи Z‘. Пусть также
Ov — <2-у1Хх “Ь е • • 4“ ^vn^n>
Ozv = ^-vlx+ • •• -Y<i^nXw
тогда наиболее естественные способы задания функции близости следующие:
а)а)В^'. Z) =В^'. Z) =если —= • • • = —F- , ^Z^1аЦп
а)
а)
В^'. Z) =
В^'. Z) =
0 — в противном случае;
пусть задано некоторое положительное число е, а х0 — решение оптимизационной задачи
min V х^~
тогдаBX(Z', =тогдаBX(Z', =1, если х01, если х0av/ °iv!av/ °iv!/ = 1, .... п,/ = 1, .... п,О — в противном случае.О — в противном случае.
тогда
BX(Z', =
тогда
BX(Z', =
1, если х0
1, если х0
av/ °iv!
av/ °iv!
/ = 1, .... п,
/ = 1, .... п,
О — в противном случае.
О — в противном случае.
т. е. части описаний задач считаются близкими, если нарушение пропорциональности коэффициентов незначительно. Отметим, что поиск решения х0 не представляет особого труда. Достаточно упоря-
дочить соотношения -~- , / = 1, ..., л, и положить
-,-- ■, если п— нечетно,
, если п— четно, где h = %h aivh+l)
пусть заданы 8t, ..., гп, е — положительные числа, обозначим к число выполненных неравенств
<&j, / = 1, . . ., я,<&j, / = 1, . . ., я,
<&j, / = 1, . . ., я,
<&j, / = 1, . . ., я,
тогда
B^Z\ Z^ =B^Z\ Z^ =’ 1, если к > е,
B^Z\ Z^ =
B^Z\ Z^ =
О— в противном случае;
пусть задано некоторое значение угла ф, О^ср^—.
Две части описаний считаются близкими, если угол между задаваемыми ими гиперплоскостями не превосходит ф, т. е.
BV(Z\ Z^BV(Z\ Z^1, если arccos1, если arccos^v> aQllav|| - ||az£xJ|^v> aQllav|| - ||az£xJ|
BV(Z\ Z^
BV(Z\ Z^
1, если arccos
1, если arccos
^v> aQllav|| - ||az£xJ|
^v> aQllav|| - ||az£xJ|
0—в противном случае.
В каждом конкретном случае выбор вида функции близости должен производиться с учетом специфики решаемой задачи и отражать ее структурные особенности.
Строятся оценки по опорному множеству о.
Предположим, что задаче Zb i {1, ..., ^}, кроме у/ (Z^) = y/z — ее веса, характеризующего «представительность» задачи Zt в классе Кр сопоставлен некоторый вектор параметров
©(za = (01(zi),.... ви^а).
Оценкой задачи Z по Z' и опорному множеству о назовем величину rv (Z, Z') =rv (0 (Z'), Bv (Z', Z)).
Тогда оценкой задачи Z по опорному множеству а и классу К/, является величина
Г( (Z) = Г' (Tv (Z, Z^, ..., rv (Z, Z,)\
где (Z<s), s = 1, ..., t,— подмножество решенных задач, принадлежащих классу Kj.
Как правило, на практике применяется следующее представление указанных оценок:
rv(Z, Z') = BV(Z', Z) 5 6^Z'\
r^ = ЭТТ S ^^)rv(Z, Z’),(a 0 Z^Kj 8
где ц (Kj)— мощность множества задач, принадлежащих классу Kj.
Строится суммарная оценка по заданному классу Kj.
Суммарная оценка Г/ (Z) по классу Kj определяется как функция от оценок Г^ (Z) по различным опорным множествам о £ оА.
В качестве Г/ (Z), как правило, выступает сумма указанных оценок (возможно, с некоторым нормирующим множителем):
Г/Ю- £ H(Z).
v-абол
В результате выполнения четырех описанных этапов строится распознающий оператор или оператор вычисления оценок Аг алгоритма Л, отображающий пару (7 (Z), I (Ц^, ..., Fz)) на множество векторов оценок (Гг (Z), ..., Tz (Z)).
В общем случае вычисление вектора оценок по приведенным выше определениям представляет значительную трудность, а в некоторых случаях практически невозможно. Однако, учитывая особенности структуры данных этих задач, можно получить практически эффективные формулы для вычисления величин Г/ (Z), / = 1, ..., /. При решении задач ЦЛП большинство существующих методов рассматривают коэффициенты каждого из ограничений в совокупности, поэтому в качестве опорных множеств следует выбирать множества индексов элементов описаний 7 (Z), соответствующих вектору целевой функции, v-й строки, v £ {1, ..., /и}, матрицы ограничений задачи Z. В этом случае мощность множества од равна т + 1, р (Kj) ~fj — мощность подмножества решенных задач, принадлежащих классу К,- Тогда ©v (Z) = S ®i (^) может интерпретироваться как «степень важности» v-ro ограничения, a 0m+i (Z) — оптимизируемой функции задачи Z. Оценка задачи по классу Kj и по опорному множеству о, представляемому индексами элементов описания v-й строки матрицы ограничений, может быть вычислена следующим образом;
Г(> (Z) = — 2 Yz (^i^ ®v (^Q ®v (Zi^ ^)>
а с учетом того, что мощность од = т + 1, получим
Таким образом, справедлива теорема.
Теорема 11.1. Если в качестве опорных множеств системы Од выбраны подмножества ov, v = 1, .,., т + 1, индексов описания v-й
строки матрицы ограничений оптимизационной задачи, то
V=1 Zi£Ki s 8 s
Из представления алгоритмов распознавания с фиксированным пороговым правилом А^ работающих над стандартной обучающей информацией, следует, что конкретный алгоритм А однозначно определяется набором значений параметров у, 0, выбором функции близости и системы опорных подмножеств Од.
В качестве опорных подмножеств при классификации задач ЦЛП следует выбрать такие подмножества множества числовых признаков, которые описывают ограничение задачи как единое целое. Зафиксировав систему опорных подмножеств и вид функции близости, приходим к необходимости выбора таких значений параметров у и 0, которые бы определяли алгоритм распознавания, наиболее точно классифицирующий имеющееся множество задач Zb ..., Zq. Зная принадлежность каждой из задач Zu i = !,...,(?, классам Къ •••> Kt и используя результат теоремы, нетрудно выписать условия правильной классификации каждой задачи
Г/ (2J =. |1 ^ X У/s^vsSv (Z , Zt) > Nv
т"Г 1 г/ — 1 v=l Z^K^Z^
если Zt^Kb или
Г/ (^i) = "/л л? 1 “ S 5j T/s®vs^v(2s, Z^ < М2,
если Z{ Kj.
В результате будет получена система неравенств, где в качестве переменных выступают у/s, 0Vs, Zs € К^ v = 1, ..., т + 1, / = 1, /. Данная система задает некоторое множество D, каждая точка которого однозначно определяет алгоритм распознавания, правильно классифицирующий Zv .... Zq.
Каждое ограничение системы неравенств представляет собой некоторую билинейную форму с коэффициентами из множества {0, 1}, которая в области у ^ 0, 0^0 представляет собой выпуклую функцию. Следовательно, используя методы выпуклого программирования, можно отыскать необходимые значения вектора параметров (у. 6)-
В том случае, когда Kt П К$ = 0 (что имеет место, например, когда для каждой задачи Zs. s = 1, ..., q, определен лишь один метод решения из множества Мъ ..., М^, система ограничений представляет собой систему линейных неравенств с переменными (у, 0). Более того, в этом случае она может быть задана в виде / независимых подсистем, каждая из которых определяет значение параметров 0VS, Zs^ Кр v = 1, ..., т + 1, соответствующих задачам из Kj» / € П> •••> 0 и может быть рассмотрена отдельно.
В общем случае система неравенств может быть несовместной. Тогда для определения искомого алгоритма распознавания необходимо определить максимальную совместную подсистему [Д18].
В заключение отметим, что правильный выбор метода решения оптимизационной задачи и значений параметров программного модуля из состава математического обеспечения ПП, который реализует данный метод, позволяет в значительной степени снизить трудоемкость вычислительного процесса, удовлетворить требования пользователей ПП в отношении точности решения, оперативной памяти ЭВМ. К методам дискретной оптимизации, реализуемым модулями такого типа, безусловно можно отнести методы локальной оптимизации [137], где в качестве параметров выступают величина радиуса окрестности, начальное приближение, способ перебора точек в окрестности и т. п. В методах отсечений и методах типа ветвей и границ к такою рода параметрам относятся, соответственно, способ построения отсекающего ограничения и стратегия ветвления при построении задач-«по- томков». Следует также подчеркнуть, что уже накоплен достаточный опыт решения практических задач, обобщая который с помощью рассмотренного подхода можно формализовать задачи выбора метода решения и определения оптимальных значений параметров алгоритмов. Решая эти задачи на предварительном этапе оптимизации методами, учитывающими имеющийся экспериментальный материал (в данном случае — методами распознавания), можно автоматизировать процесс выбора метода решения и определения его оптимальных параметров.
Отметим, что такой подход может быть успешно применим и при проектировании новых пакетов программ для определения его функционального наполнения. Результаты вычислительного эксперимента в этом случае имели и имеют большое значение [Д40], кроме того, они могут быть включены в качестве обучающей информации в базы данных будущего пакета.
§ 3. ОБ ОДНОЙ ТЕХНОЛОГИИ ПОСТРОЕНИЯ СИСТЕМНОГО ОБЕСПЕЧЕНИЯ ПАКЕТОВ ПРОГРАММ
В последние годы все более отчетливо проявляется противоречие между ростом потребности в программном обеспечении и кустарными способами его производства. Единственным методом разрешения указанного противоречия является перевод программирования на индустриальную основу, поддерживаемую инструментальными системами производства программ. Главные трудности, стоящие на пути создания эффективных инструментальных систем, связаны с разработкой технологий, отражающих глубинные сущности процесса конструирования программ.
Ниже описывается один метод построения системного программного обеспечения (СПО) ПП — функционально-композиционный метод (ФК-метод),— основанный на технологии формализованных технических заданий [Д7] и композиционной технологии программирования [Д54].
В основе ФК-метода лежат два общих принципа — функциональности и композиционности. Сущность принципа функциональности состоит в том, что программные модули, входящие в состав СПО, рассматриваются как именованные именные функции [Д54], т. е. функции со специально устроенными областями определения и значения, имеющие имена. В рамках ФК-метода принцип композиционности означает, что эти функции конструируются с помощью фиксированных правил (композиций) из базовых функций, считающихся первичными. Базовые функции — это программные модули, которые сами могут быть достаточно сложными. Класс композиций для каждого конкретного ПП или их семейства определяется декомпозицией СПО ПП на модули.
Реализация СПО ПП по ФК-методу включает следующие этапы:
определение структур исходных данных и результатов проектируемого СПО ПП;
разработку начального технического задания и функциональной модели СПО ПП;
построение алгоритма СПО ПП над абстрактными структурами данных;
декомпозицию алгоритма СПО ПП на модули;
введение стандартных структур данных;
реализацию алгоритма СПО ПП в стандартном языке программирования;
подключение к алгоритму СПО ПП средств взаимодействия с пользователем и программами СПО ПП.
В процессе развития проекта возможны циклы обратной связи, т. е. возврат на начальные этапы и уточнение или даже изменение их целей. Кроме того, седьмой этап может быть перемещен вверх вплоть до включения его во второй этап.
Для примера рассмотрим проектирование СПО некоторого гипотетического базового ПП, ориентированного на решение задач математической обработки данных. Под задачами математической обработки данных будем понимать задачи, для которых разработаны математические методы и алгоритмы их решения. Задачи математической обработки данных охватывают широкий круг задач, в который входят и ОЗ. Разработке СПО ПП предшествует анализ предметной области ПП и построение содержательной МПО. Обычно вычислительный процесс решения задачи математической обработки данных можно организовать в виде последовательного выполнения (интерпретации) загрузочных модулей с одним входом и одним выходом, являющихся фрагментами алгоритма решения задачи. При этом выходные данные каждого модуля из последовательности являются входными данными для последующих модулей (не обязательно непосредственно следующего). Другими словами, вычислительный процесс описывается аппликацией [Д54] F = FtFa ... Fn, 0 < л < оо, где Ft — программы из прикладного программного обеспечения (ППО) ПП. Сказанное выше справедливо для пакетного (в смысле недиалогового) режима работы, когда процесс решения задач полностью автоматизирован от ввода исходных данных до выдачи резуль-
татов. В режиме диалога в процесс решения задачи активно вмешивается человек, а именно, он определяет условие применимости того или иного программного модуля ПП, вследствие чего вместо элементов Ft в представлении программы решения задачи, элементами являются а ® ^>Fo Здесь а — D-именные функции; гр, Ft — (D, №)- именные функции; ® — операция циклирования [Д54]. Фиксированный элемент из области значений функции а определяет критерий окончания диалога с программой Ft из ППО ПП, гр — диалоговый монитор, т. е. программа, организующая обмен информацией между пользователем и Ft. Другими словами, диалог с программой Ft ведется до тех пор, пока не будет удовлетворен критерий его окончания. Этот критерий, как правило, выбирает пользователь.
Легко видеть, что приведенные выше рассуждения справедливы также для СПО ПП.
Модули ППО ПП программируются на алгоритмическом языке высокого уровня. Выбор языка обусловлен спецификой подкласса задач из обширного класса задач математической обработки данных и наличием компиляторов с этого языка на ЭВМ. Например, для задач, решение которых требует большого объема вычислений (в этот класс входят ОЗ), может быть выбран ФОРТРАН, ввиду того, что практически на каждой ЭВМ имеется компилятор с этого языка и богатая библиотека подпрограмм. Передача информации от модуля к модулю осуществляется с помощью механизма формальных/фактических параметров процедур.
Перейдем теперь к содержательному описанию МПО ПП. Ясно, что базы данных должны содержать информацию о синтаксисе входного языка. Кроме того, представляется целесообразным предусмотреть проверку корректности данных (примеры некорректности: значение вероятности не попадает в сегмент [0, 1], размерность массива представлена отрицательным числом и т. п.). Очевидно, что в МПО необходим файл, описывающий входную и выходную информацию каждого модуля ППО ПП. По традиции этот файл будем называть файлом паспортов модулей ППО. Базы данных содержат также информацию о схемах применяемых методов. Схема метода в простейшем случае представляет собой последовательность имен паспортов модулей ППО.
Основными требованиями, предъявляемыми к современным ПП, являются наличие удобного входного языка, близкого к профессиональному языку пользователя, и возможность простой перенастройки ПП на различные области применения [Д6]. Для задач математической обработки данных можно предложить язык, операторы которого определяются и записываются как некоторые обобщенные функции. Аргументом в пользу языка указанного вида служит, во-первых, общепризнанность понятия «функция» в математике, во-вторых, выразительность — возможность описания практически любой задачи математической обработки данных, и, в-третьих, простота и удобство описания задач — мнемоническое имя функции определяет вид обработки информации, которая задается аргументами функции. Точнее говоря, операторы непроцедурного входного языка представля-
ются как именованные (О, Поименные функции [Д54] и записываются в виде / (хх =аъ х2 = я2, ..., хп — anV где / — имя функции, определяющее задачу, которую необходимо решить, хь at (i — = 1, ..., п) — соответственно имена и значения элементов из именных множеств [Д54], составляющих область определения функции. Значениями могут служить числа, массивы чисел, иерархические структуры числовых данных, символьная информация и т. п.
Аналогично может быть устроена область значения функции f. В дальнейшем оператор, представленный именованной ф, ^-именной функцией, будем называть функциональным оператором. Кроме того, в языке необходимы операторы описания данных большого объема. Они используются для определения местонахождения и структуры исходных данных. Допускаются данные иерархической структуры. Для операторов описания данных возможна структура, аналогичная структуре функционального оператора—5(^/1=^, у2 = ^2, ••• -^Ут = Ьту Однако здесь g определяет не имя функции, а имя данного, которое устроено как угодно сложно. Имена компонент данного и их конкретные значения yt, bt У = 1, ..., mV определяют местонахождение данного с именем g и некоторые другие его характеристики.
Важнейшим критерием качества программного продукта является надежность. В настоящее время надежность программного обеспечения понимается в смысле его безошибочности. Сложность — одна из причин ненадежности. В общем случае сложность программного обеспечения существенно зависит от способа взаимодействия его компонент. В борьбе со сложностью здесь можно привлечь две концепции из общей теории систем: независимости и иерархичности 1Д32]. В соответствии с первой концепцией для минимизации сложности необходимо максимально усилить независимость компонент системы. Иерархическая упорядоченность позволяет обеспечить понимание, а следовательно, разработку, тестирование и сопровождение системы. Приведенные выше рассуждения определяют специальные принципы декомпозиции алгоритма СПО ПП на модули: независимости и иерархичности (критерий надежности).
В связи с тем, что проектирование СПО ПП — сложный процесс, его обычно разделяют на два этапа. Первые этап — перевод исходного текста во внутреннее представление — осуществляет прекомпилятор (анализатор) Fv второй — интерпретация внутреннего представления—производит интерпретатор (загрузчик-исполнитель) F^ т. е. весь этот процесс можно представить как аппликацию F = = F^. Для повышения уровня универсальности прекомпилятора и для обеспечения простоты его перенастройки на различные диалекты входного языка прекомпилятор ориентирован на определенный класс грамматик, который является общим для целого класса языков, операторы которых описываются именованными (D, W)- именными функциями. При изменении языков модифицируются лишь определения тех частей, которые, меняясь, дают различные диалекты. Естественно, что при этом Рг будет зависеть только от типа грамматики, а не от конкретной грамматики. Вследствие стандартизации
внутреннего языка (предложения внутреннего языка есть последовательности имен паспортов модулей ППО) имеется возможность реализации универсального, в смысле независимости от класса задач и языков, интерпретатора Рй. Реализация простоты перенастройки ПП на разные классы задач обеспечивается БД интерпретатора.
Перейдем к описанию этапов ФК-метода. Несмотря на обширность класса задач математической обработки данных и отсутствие привязки к конкретной ЭВМ, существует принципиальная возможность детального описания этапов ФК-метода. Здесь остановимся лишь на содержании некоторых этапов метода. Поскольку вычислительный процесс в ПП математической обработки данных состоит из прекомпиляции и интерпретации, этапы разработки СПО ПП описываются отдельно для прекомпилятора и интерпретатора.
Этап 1. Входной язык L ПП математической обработки данных достаточно подробно описан выше. Приведем здесь лишь описание на языке L конкретной задачи ЦЛП вида min \сх<Ах ^ Ь, х^ О, х — целочисленный вектор}:
РЕШИТЬ_ЗАДАЧУ _ ЦЛП (ЭКСТРЕМУМ = MIN, ФУНКЦИЯ = СХ, ОГРАНИЧЕНИЯ = (ЛХ<=В, Х> =0, X = ЦЕЛОЧИСЛЕННЫЙ _ ВЕКТОР), РАЗМЕРНОСТЬ _ X = (целое положительное число 1),
РАЗМЕРНОСТЬВ = (целое положительное число 2>,
МЕТОД = ВЕТВЕЙ _ И _ ГРАНИЦ, НАЧАЛЬНОЕ _ ПРИБЛИЖЕНИЕ = (целочисленный вектор»
ДАННЫЕЗАДАЧИЦЛП (С = (идентификатор 1>, А = = (идентификатор 2), В = (индентификатор 3))
В операторе описания данных идентификаторы указывают местонахождение исходной информации на внешних носителях данных.
Результатом работы прекомпилятора является текст исходного задания на внутреннем языке ПП и синтаксическое дерево задания на языке L. Для удобства обозначим именованный элемент — пару (х*, х) —х+, т. е. х+ = (х*, х), где х* —имя именованного элемента; х — его значение. Если значением именованного элемента является некоторое имя а*, то этот факт записывается следующим образом: (х*, a*Y Аналогично обозначим именное множество Х+, его множество имен X* и значений X. Пусть А* — множество имен формальных параметров паспортов модулей ППО. Тогда синтаксическое дерево программы на языке L — это именное множество
{«. д^, (д2‘, д2), ..., (д‘, д„)}, а* £А*, а££А, 1 = 1,..., п, (11.1) для функциональных операторов и
{(&*> ^1), (^2, 62)Фт, lU}, b^B*, bt^B, i = 1, ..., m, (11.2) для операторов описания данных, где В* — множество имен параметров оператора данных; В — множество значений параметров операторов данных, A f| В Ф 0; значения а( £ A, Ь£ £ В задаются в исходном задании.
Внутренним языком базового ПП является язык Lv предложения которого есть последовательности имен паспортов модулей ППО.
При этом одному и тому же функциональному оператору может соответствовать несколько таких последовательностей. Их количество определяется числом алгоритмов решения задачи. Пусть Р — множество имен паспортов модулей ППО, pt 5 Р, i = 1, ..., пр) являющееся терминальным алфавитом для языка, грамматика которого GIZ] имеет вид
Zw-S
Si : = Pi | P2 | . . . | Pnp | S, px | S, p2 | . . . | S, p%.
Язык Lx — подмножество множества всех цепочек указанного языка. Оно задастся вычислительными схемами алгоритмов из БД ПП (вычислительная схема — именованный элемент, значением которого является последовательность имен паспортов модулей ППО).
Исходные данные интерпретатора представляют собой результаты прекомпилятора, а результаты — результаты счета задач, знания о решении которых аккумулированы в ППО ПП.
Этап 2. Начальное техническое задание на построение прекомпилятора может быть сформулировано следующим образом. Требуется построить программу Рг, осуществляющую отображение Fx • и~> и\ и £ L, и* ^ Lv При этом синтаксическое дерево и £ L необходимо представить в виде именных множеств (11.1), (11.2).
Функциональная модель программы описывается на некотором алгоритмическом языке высокого уровня. Разработка этой модели включает в себя определение абстрактных структур данных. Приведем пример абстрактной структуры данных из БД прекомпилятора. Пусть ф+ — файл задач, который является множеством записей задач Ф+ g ф+, имеющих вид
ф+ = (ф*, ф), где ф = (№ (/х), а^, (х? (/2), а2) , • •.• а^> ">°-
Здесь ф* — имя записи, определяющее имя допустимого в языке функционального оператора (ф* хотя и совпадает с именем некоторого функционального оператора, но определяет не отображение данных, а сами данные); x*t — имя f-го элемента, которое определяет имя /-го допустимого аргумента для функционального оператора с именем ф*, если tt £ Тъ либо имя допустимого алгоритма из множества алгоритмов решения задачи с именем ф*, если ^£ Т^ it— символ, определяющий тип элемента записи задачи (tt ^ Тх J Т2); а* — имя, под которым будет храниться конкретное значение at аргумента х* функционального оператора с именем ф* в синтаксическом дереве этого оператора ка*1 —имя формального параметра, т. е. a*i g Л*), если t( g Ть либо имя записи алгоритма из множества алгоритмов решения задачи с именем ф*, если ^ g Тй. Подобным образом описывается начальное техническое задание и функциональная модель интерпретатора.
Этап 3. Представляет собой описание на алгоритмическом языке высокого уровня алгоритма над абстрактными структурами данных, введенными на предыдущем этапе.
Этап 4. Производится расчленение разрабатываемого ПП на иерархически упорядоченные уровни — уровни абстракции 1Д821; на первом уровне находятся единицы программного проекта, являющиеся базовыми функциями, на втором — единицы программного проекта, представляющие собой единицы программного проекта первого уровня и их композиционные схемы и т. д.
Здесь композиционной схемой называется программный модуль, реализующий одну из операций аппликации, ветвления, циклирования, либо модуль, реализующий некоторую комбинацию этих операций (производную операцию) над программными модулями.
Единицей программного проекта называется пара «композиционная схема), (совокупность программных модулей)).
Если композиционная схема отсутствует, то совокупность программных модулей состоит из одного базового модуля.
Опишем методику декомпозиции алгоритма СПО ПП на независимые модули. Входной информацией является композиционная схема алгоритма над абстрактными структурами данных, представленная ориентированным графом (аналог блок-схем).
Декомпозиция состоит из четырех этапов. Каждый этап состоит из двух шагов:
определение единиц программного проекта;
определение единиц программного текста.
Этапы декомпозиции отличаются между собой сущностью определения единиц программного проекта. На первом этапе шаг 1 — выделение максимальных сильно связных подграфов, на втором — выделение полуконтуров, на третьем — выделение частей графов с локальными степенями вершин, большими единицы, на четвертом — «стягивание» простой цепи в нуль-граф с РДной вершиной. Предполагается, что между независимостью вершин графа (модулей) и степенью связности графа существует обратно пропорциональная зависимость. При этом считается, что степень связности сильно связного графа больше, чем у полуконтура, у полу контура — больше, чем у ориентированного дерева, у ориентированного дерева — больше, чем у нуль-графа.
Сущность шага 2 заключается в анализе модулей, представляющих вершины выделенных на шаге 1 подграфов, на прочность, сцепление [Д32] и т. п. Цель анализа модулей на прочность и сцепление для определения единиц программного текста — усилить прочность, ослабляя сцепление. В сущности выделение на шаге 1 подграфов с указанными свойствами означает определение таких модулей, однако оно может оказаться слишком «грубым» Для единиц программного текста. Здесь необходимо учитывать и другие характеристики, оказывающие воздействие на независимость модулей: размеры, количество обрабатываемых файлов и другие, принимая во внимание различные виды сцепления и прочности модулей. Иными словами, шаг 2 является «коррекцией» шага 1. Анализ модулей для определе-
ния единиц программного текста можно формализовать, проводя выделение подграфов с указанными свойствами с учетом весов вершин и дуг, где составляющими веса вершины являются прочность модуля, количество обрабатываемых файлов, объем модуля, а весом дуги — сцепление. Критерием разбиения может быть, например, суммарный вес. Основная трудность здесь состоит в нахождении априори весов и порогового значения веса. Поэтому основную роль при определении единиц программного текста играют все-таки неформальные методы, причем немаловажное значение имеет опыт и интуиция проектировщиков и разработчиков СПО ПП. Шаг 2 аналогичен на всех этапах декомпозиции. В результате шага 2 возможен один из следующих трех случаев:
текущая единица программного проекта расчленяется на текущие единицы программного текста;
текущая единица программного проекта совпадает с единицей программного текста.
текущие единицы программного проекта объединяются в текущую единицу программного текста.
В случае а) анализируются композиционные схемы, которые реализуют на первом этапе декомпозиции операцию циклирования, поскольку на части расчленяется сильно связный граф, и, может быть, операции ветвления, аппликации или некоторые комбинации указанных трех операций; на втором и третьем этапах декомпозиции— операцию ветвления, поскольку на части расчленяются полуконтуры и деревья, и, может быть, операцию аппликации либо некоторые комбинации указанных двух; на четвертом этапе — операцию аппликации, поскольку простая цепь — «стягивается» в нуль-граф с одной вершиной. Заметим, что выбор композиционных схем неоднозначен. После выбора композиционной схемы из графа удаляются дуги и вершины, соответствующие производным композициям. Затем происходит возврат к началу текущего этапа, т. е. к шагу 1. В случаях б) и в) переходим на следующий этап декомпозиции.
Этап 5. Определяется конкретная форма представления на ЭВМ абстрактных структур данных, введенных на этапе 2. На этапе 6 реализуется алгоритм СПО ПП над стандартными структурами данных в выбранном алгоритмическом языке программирования высокого уровня либо языке ассемблера. Для задания основных синтаксических конструкций (оператор есть функция) можно использовать, например, диаграммы переходов Конвея. Нетерминальные символы грамматики, изменения в определениях которых дают различные диалекты, задаются в БД прекомпилятора. Этап определения средств взаимодействия целесообразно включить в этап 6. Легко видеть, что этапы 5—7 машинно-зависимы. Детальное описание процесса проектирования СПО ПП математической обработки данных, реализуемого на ЕС ЭВМ, приведено в [Д35, Д36].
Базовый ПП обеспечивает пользователя лишь самыми необходимыми средствами — решением задачи математической обработки данных, которая формулируется на удобном языке, близком к профессиональному языку пользователя. Это позволяет приблизить момент
начала его эксплуатации. В процессе развития проекта, как правило, возникают новые требования, реализация которых предоставляет дополнительные удобства пользователю. Учет новых требований осуществляется циклами обратной связи. Например, назрела необходимость решения целого множества задач, причем результаты решения некоторых из них могут использоваться в качестве исходных данных для последующих задач. Тогда изменятся цели этапа 1 ФК- метода. Указанное требование можно обеспечить, например, суперпозицией (£>, Ц?)-именных функций либо аппликацией (D, ^-именных функций, которая задает неявную суперпозицию этих функций и т. п. Обеспечение возможности редактирования исходных данных, задаваемой функциональным оператором, влечет изменение целей этапа 2 и т. д.
Описанный процесс проектирования является проектированием «сверху — вниз». Однако возможно и движение «снизу — вверх» Например, если возникла необходимость пошагового решения задач, то это можно обеспечить модификацией композиционной схемы F (монитор ПП), осуществляющей аппликацию F = FAF2. Режим генерации программ также может быть реализован композиционной схемой F (хотя процесс проектирования самого генератора программ осуществляется методом «сверху — вниз») и т. д.
§ 4. ОСОБЕННОСТИ ПОСТРОЕНИЯ ПАКЕТОВ ПРОГРАММ ДЛЯ РЕШЕНИЯ ЗАДАЧ ОПТИМИЗАЦИИ
Необходимость в решении с помощью ПП разнообразных задач оптимизации возникает при разработке и эксплуатации АСУ, АСОД, создании систем коллективного пользования, при автоматизации процессов планирования, управления и проектирования. При разработке ПП, предназначенных для решения ОЗ, целесообразно учитывать следующее:
ПП должны позволять решать ОЗ большой размерности (сотни и десятки тысяч переменных и ограничений);
необходимо иметь широкий набор меняющихся во времени форм задания данных в ПП и выдачи результатов решения ОЗ для пользователя;
решение некоторых сложных задач оптимизации целесообразно отыскивать в интерактивном режиме с уточнением по ходу ВП не только значений параметров используемого метода, но и параметров самой модели ОЗ;
необходимо предоставлять человеку возможность видеть и корректировать интересующую его информацию непосредственно на экране, а также использовать графопостроители и другие технические средства, предназначенные для наглядного представления данных;
необходима возможность оперативного решения сразу целого множества задач, причем результаты решения некоторых из них
могут использоваться в качестве исходных данных для решения других задач этого же множества;
должна обеспечиваться подготовка достоверных данных больших объемов, необходимых для решения ОЗ, что обычно занимает значительное машинное время; при этом часто требуется решать ОЗ с использованием различных критериев оптимизации для одних и тех же или незначительно измененных исходных данных;
необходима возможность сравнительно легкого подключения в МО ПП ранее созданных пользователем и хорошо проверенных на практике программ решения отдельных типов задач;
необходима возможность последовательного применения нескольких ПП, которые должны быть совместимы по данным, входным языкам, управлению и другим параметрам;
нередко требуется проводить послеоптимизационный анализ получаемых результатов решения ОЗ;
необходима возможность работать непосредственно с памятью прямого доступа;
для части пользователей ПП процесс выбора наиболее подходящего метода решения ОЗ является затруднительным и поэтому следует предусмотреть его автоматизацию;
необходима возможность перед началом решения ОЗ исследовать ее допустимую область (например, с целью установления факта существования хотя бы одного допустимого решения задачи);
эффективное решение задач пользователя может быть осуществлено не данным ПП, а некоторой его частью (подмножеством) или даже отдельной его программой, которые, разумеется, данный ПП должен иметь возможность генерировать на каком-либо языке программирования по заказу пользователя; при этом сгенерированные отдельные специализированные ПП и программы не должны нуждаться в дополнительной отладке;
для решения отдельных сложных ОЗ необходимо обеспечить возможность непрерывных вычислений на ЭВМ в течение длительного времени (нескольких часов).
Некоторые из перечисленных условий решения ОЗ с помощью ПП являются характерными [Д571 и для процессов решения других классов задач, особенно задач по переработке больших массивов информации, решаемых в рамках АСУ и АСОД, задач вычислительной математики и др Для учета в структуре ПП некоторых из них иногда требуется преодолеть существенные трудности. Остановимся на этом вопросе подробнее.
Отбор методов для реализации в МО ПП должен быть тщательным и нередко сопровождаться специальными исследованиями и машинными экспериментами. В тех случаях, когда среди имеющихся точных методов нет таких, которые позволяют эффективно решать ОЗ большой размерности, необходимо реализовать в ПП наиболее подходящие приближенные методы, особенно те из них, которые позволяют в зависимости от отпускаемых на решение задачи ресурсов (машинного времени, объема памяти, внешнего оборудования ЭВМ и др.) находить приближенные решения тем более близкие к точным, чем
больше выделяемые ресурсы. Эффективность решения с помощью ПП задач большой размерности тесно связана с реализацией в нем возможности непосредственно работать с памятью прямого доступа. Разумеется, что успешное решение в ПП проблемы задач большой размерности зависит, в первую очередь, от специалистов по разработке предметного математического обеспечения ПП, прогресса в развитии новых математических методов, хорошо приспособленных для решения такого рода задач.
Предусмотреть в разрабатываемом ПП на этапе его проектирования всевозможные формы ввода данных и выдачи результатов решения задач, которые могут потребоваться его пользователям, практически невозможно. Это связано с тем, что такие формы для различных категорий пользователей меняются со временем и количество их может быть достаточно большим. Поэтому наиболее подходящим выходом из такой ситуации является следующий: во-первых, необходимо предусмотреть в ПП в качестве основных форм ввоза данных и выдачи результатов некоторый небольшой базовый их набор, который может удовлетворять запросы многих потребителей ПП, и, во- вторых, обеспечить возможность сопряжения данного ПП с ГД и ГО, с помощью которых, разумеется, можно осуществлять выдачу результатов решения задачи в произвольной форме, а также генерировать данные по требованиям пользователей. В такой постановке решение рассматриваемого вопроса может осуществляться по-разному.
В частности, ГО и ГД могут быть реализованы не в виде самостоятельных ПП, а в качестве составных частей системного обеспечения разрабатываемого пакета. Конкретный выбор варианта их реализации зависит от многих причин: технической базы, на которой реализуется ПП, широты предполагаемой области внедрения пакета и перспектив его развития в будущем, планируемых возможностей использования данного ПП в сопряжении с другими пакетами и др. В тех случаях, например, когда в ПП предусматривается развитие интерфейса для связи с другими ПП, которым также в свою очередь понадобится связь с ГО и ГД, выгодно иметь реализацию ГО и ГД в виде отдельных ПП со стандартным интерфейсом.
Важность реализации диалогового режима работы в ПП различного назначения нами уже отмечалась. Здесь укажем те основные объективные причины [251, которые позволяют потребителю рассматривать диалоговые средства ПП как принципиально новую и эффективную стратегию решения ОЗ.
Нередко затраты на отыскание решений сложных ОЗ могут быть существенно уменьшены, если в ходе вычислений дать возможность специалисту оперативно корректировать (уточнять) используемый метод решения, а иногда п саму модель задачи. Это значит, что специалист, анализируя промежуточные результаты, может на основе своего опыта и знаний сделать такого рода корректировку хода вычислений, которую ПП если и в состоянии в принципе осуществить самостоятельно, то потратит на ее поиск слишком много времени и произведет много вспомогательных расчетов. Это объясняется тем,
что полностью формализовать и передать пакету опыт специалистов по решению ОЗ почти невозможно. Указанные «подсказки» могут касаться, например, изменения начального приближения, которое явилось отправной точкой в отыскании оптимального решения, изменения величины радиуса окрестности в алгоритмах локальной оптимизации, уточнения значений коэффициентов целевой функции, правых частей ограничений и г. д. Многое из того, что человеку станет очевидным в ходе вычислений, когда он увидит реальную сходимость ВП, промежуточные результаты и другие данные, трудно учесть без вмешательства человека даже для самого развитого ПП. До начала решения ОЗ часть значений параметров используемого метода специалист в известном смысле указывает без должного обоснования.
Для решения многих задач большой размерности, особенно ^ономических, значительной проблемой является квалифицированная подготовка соответствующих исходных данных. Ввиду того что эти задачи трудно формализуемы и процесс подготовки их часто затягивается во времени, а сами данные могут со временем меняться, проблема согласования изменений в данных по ходу решения задачи является актуальной. Пользователь, уточняя в процессе вычислений, какие именно виды данных оказывают влияние на формирование оптимального варианта решения ОЗ, а какие при этом вообще не учитываются, может принять обоснованное решение по подготовке необходимых данных. Заранее формировать всевозможные данные, в том числе и те, которые могут оказаться потом лишними, просто нецелесообразно. Поэтому частичное совмещение этапов решения ОЗ и подготовки данных может оказаться эффективным в общей организации поиска оптимального решения.
На практике часто приходится сталкиваться с проблемой решения многокритериальных задач, а также задач, характеризующихся многозначностью их решений. Дополнительная сложность возникает еще и в связи с тем, что не все используемые критерии хорошо поддаются строго формальному описанию. При решении такого рода задач участие человека в активном поиске оптимального решения может существенно уточнить ряд недостаточно формализованных критериев оптимальности и помочь их согласованию.
Диалоговый режим представляется рациональным использовать при осуществлении послеоптимизационного анализа полученных результатов. Этот анализ делать вручную иногда весьма сложно. Часто требуется уточнить, как влияют незначительные изменения, например некоторых коэффициентов в правых частях ограничений, на окончательный результат решения задачи. То же касается изменений коэффициентов в целевой функции. Может оказаться интересным также вопрос об исключении или добавлении некоторых ограничительных условий. В этих случаях требуется проследить степень влияния такого рода изменений на окончательные результаты решения задачи.
Целый ряд интересных исследований можно провести в рамках послеоптимизационного анализа. Это — получение всевозможных оце-
нок, характеризующих изменение целевой функции при заданных вариантах изменения входных данных (эти изменения данных могут соответствовать новым плановым заданиям, для реализации которых отыскивается оптимальный план), определение тех переменных, изменение значений которых наиболее сильно отражается на структуре искомого оптимального решения, установление зависимости найденного решения от возможных изменений коэффициентов в правых частях ограничительных условий задачи, уточнение положения значений переменных относительно ранее установленных для них границ и т. д. Получение ответов на ставящиеся вопросы при этом анализе является иногда сложной задачей, решение которой может быть эффективным при использовании интерактивного режима.
И, наконец, для эффективного решения задач большой размерности с помощью ПП, процесс решения которых продолжается длительное время, необходимо в системном обеспечении пакета иметь средства, позволяющие делать «фотографию» той части памяти ЭВМ, которая занята решением задачи. Последнее позволяет в случае непредвиденных сбоев в работе ЭВМ продолжить вычислительный процесс с того места, где была сделана последняя «фотография» содержимого памяти, т. е. зафиксирована последняя контрольная точка ВП. Возобновление вычислений может происходить в какое-либо другое время и даже на иной ЭВМ. Разумеется, что контрольная точка фиксируется таким образом, чтобы были известными значения всех необходимых переменных и тех величин, которые будут использоваться при дальнейших вычислениях или которые войдут в оптимальное решение уже без изменений. Другими словами, контрольная точка должна позволять продолжать начатые вычисления без повторения даже отдельных этапов ВП. Необходимо, чтобы средства контроля правильности вычислений на всех этапах решения ОЗ были исключительно развитыми.
Глава 12
О МАТЕМАТИЧЕСКОМ ОБЕСПЕЧЕНИИ ПАКЕТОВ ПРОГРАММ СЕМЕЙСТВ ДИСПРО И ВЕКТОР-2
В настоящей главе остановимся на характеристике пакетов программ семейств ДИСПРО и ВЕКТОР-2, разработанных в последние годы при участии автора в Институте кибернетики им. В. М. Глушкова АН УССР и нашедших широкое использование на практике при решении задач дискретной оптимизации различных типов. Пакеты этих семейств уже упоминались нами и частично характеризовались в гл. 1 (§ 5). Здесь мы опишем отдельные аспекты разработки конкретных пакетов этих семейств, а именно ПП ДИСПРО, ДИСПРО-3 и ВЕКТОР-2. Приводимое описание носит конспективный характер и не может служить пособием при использовании пакетов. Что касается ПП ДИСПРО, то дополнительно приведем только данные численного эксперимента, который был осуществлен при изучении предметной области пакета и может представлять самостоятельный интерес для специалистов по дискретной оптимизации.
Заметим, что пакеты программ семейств ДИСПРО и ВЕКТОР-2 снабжены хорошим системным обеспечением, в том числе средствами, дающими возможность пользователю активно вмешиваться в вычислительный процесс (исследовать используемые для решения задач математические модели и методы, осуществлять поиск решения в режиме диалога и т. п.). Последнее позволяет легко переориентировать эти пакеты на решение других задач дискретного типа, а также применять их при необходимости как средство для исследования эффективности различных методов дискретной оптимизации.
При разработке данных ПП были использованы результаты, приведенные в предыдущих главах. Более подробно эти пакеты описаны в [33, 97, Д43].
§ 1. НЕКОТОРЫЕ РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНОГО ИССЛЕДОВАНИЯ ЭФФЕКТИВНОСТИ МЕТОДОВ, ВКЛЮЧЕННЫХ В ПАКЕТ ПРОГРАММ ДИСПРО
Как отмечалось в § 1 гл. 1, одним из подходов к оценке эффективности алгоритмов решения задач ДО является вычислительный эксперимент.
Для исследования эффективности методов, включенных в ПП ДИСПРО (см. гл. 1) и, решались экспериментальные и прикладные
11 Следует отметить, что структура МО этого пакета вкладывается в общую типовую схему современных ПП, которая была описана в предыдущей главе.
задачи. Приведем результаты этих исследований, полезные, по нашему мнению, пользователям пакета, а также представляющие и самостоятельный интерес. Частичное описание этих результатов объясняется тем, что часть материала, касающегося численных экспериментов, изложена в предыдущих главах при рассмотрении методов решения задач дискретной оптимизации.
Теоретические аспекты разработанных методов дискретной оптимизации продвинулись достаточно далеко, однако считать, что они приемлемы для решения широкого круга практических задач, пока не представляется возможным. Кроме того, результаты теории сложности для оптимизационных задач показывают, что надежда на создание точных методов, гарантирующих решение задач ДО, приемлемых для многих практических целей, является, по-види- мому, иллюзорной. Хотя имеются примеры решения дискретных задач с несколькими сотнями переменных, нельзя пока гарантировать в общем случае получение оптимального решения в задачах с 30—40 целочисленными переменными.
Большинство специальных задач ДО оказываются теоретически столь же сложными, как и задача ЦЛП в общей постановке. Проведенный анализ сложности 9000 задач теории управления [224] показал, что эффективно разрешимыми являются 9 % этих задач, сложными — 77 % и не классифицированными по сложности — 14 %. Естественно, в класс эффективно разрешимых попали самые простые. Вероятно, такие же пропорции соответствуют классификации и всего класса задач ДО. Отсюда следует вывод о необходимости разработки и использования широкого спектра приближенных и эвристических методов для решения общих и специальных задач дискретного типа.
Вопросы, связанные с анализом, подготовкой, вводом и выводом исходных данных и решений задач ДО, возможностью активного вмешательства в процесс решения, просчетом целого ряда вариантов решения, как правило, не решаются отдельными программами. Для решения таких задач создаются ПП с развитыми сервисными и техническими средствами, возможностью диалога и т. д. Ряд таких ПП создан и для решения задач ДО (см., например, [214]). Пакеты, рассмотренные в [214], базируются на методе ветвей и границ и построение целочисленного решения осуществляют, начиная с оптимального решения соответствующей задачи ЛП. Они допускают вмешательство пользователя в подготовку процесса [ешения, позволяя ему выбирать стратегию решения и заканчивать решение при получении заданной величины функционала.
Одним из аргументов в пользу создания пакета с разнообразным набором оптимизационных модулей является различная эффективность этих модулей на различных классах задач. Кроме того, наличие пакета, допускающего быстрое и простое подключение к нему новых модулей, полезно для экспериментального исследования их эффективности.
Оценка эффективности алгоритмов решения задач дискретной оптимизации является очень важной проблемой. Для ее решения
тХп
ч
5 X 10
0,1
0,01
20 X 100
40,95
0,82
100 X 100
116,38
2,33
200 X 200
226,33
37,72
необходимы наличие представительного множества тестовых задач и детальный сравнительный анализ алгоритмов.
Как отмечалось в § 1 гл. 1, алгоритмы можно исследовать как с теоретической, так и с экспериментальной точек зрения. Так как первый подход может быть использован для весьма ограниченного круга задач, целесообразно рассматривать оценку эффективности алго
ритмов решения задач ДО в основном с помощью машинного экспери
мента. Такой подход кажется полезным и потому, что существующие
теоретические разработки относятся, как правило, к оценке трудоем
кости самых трудных задач исследуемого класса, в то время как трудоемкость реальных задач в среднем может быть существенно ниже.
Эффективность алгоритмов решения общих задач дискретного программирования целесообразно проверять как на специальных, так и на прикладных задачах. Следует ожидать, что исследование эффективности алгоритма при решении различных задач даст возможность предсказать общую эффективность алгоритма.
Целесообразность выбора того или иного алгоритма дискретной оптимизации в целях его практического использования определяется его эффективностью при решении данного класса задач дискретного программирования с помощью ЭВМ. Очевидно, что ни один из существующих алгоритмов дискретной оптимизации нельзя считать наилучшим по сравнению с другими алгоритмами для решения любых задач дискретного программирования.
Основные характеристики качества алгоритма дискретной оптимизации приведены в [116]. При экспериментальных исследованиях все эти требования были учтены в той или иной мере.
Следует отметить, что только на основе анализа всех алгоритмов решения данного класса задач ДО пользователь сможет выбрать наиболее подходящий метод решения своей задачи, а разработчик нового алгоритма — сравнить свой алгоритм с уже известным.
Перейдем к экспериментальному исследованию алгоритмов, реализованных в ПП ДИСПРО.
Задачи целочисленного программирования. Для точного решения задач ЦЛП вида min \сх/Ах ^ Ь, х ^ 0, х — целочисленный вектор} в ПП ДИСПРО реализованы метод ветвей и границ и возвращающийся алгоритм отсечений [169], а для приближенного — методы вектора спада [124] и направляющих окрестностей [83].
Вопросы, касающиеся эффективности реализованных в пакете приближенных методов решения задач ЦЛП, рассматривались в гл. 3, для точных методов они будут изложены при решении задач ЧЦЛП.
Для приближенного решения многомерных задач о ранце с целочисленными переменными в ПП ДИСПРО реализован предложенный А. Н. Голодниксвым алгоритм случайного поиска. Эффективность этого алгоритма проверялась путем решения тестовых задач
тхп
h
t
тхп
f
h.
t
5 X 10
—16
2
0,01
25 X 50
—36
13
0,54
5 X 20
—141
255
4,4
50 X 50
—36
90
2,5
5 X 30
—118
161
3,68
75 X 75
— 153
1
0,02
10 X 10
— 16
2
0,08
50 X 100
—94
120
13
15 X 30
—40
513
13
100 X 100
—73
105
10
30 X 30
—28
2
0,01
100 X 200
—84
2
0,1
5 X 75
— 1246
51
0,3
100 X 500
—950
164
62
5 X 100
—430
24
2,12
100 X 1000
—2052
151
60
с известным оптимальным значением целевой функции [116]. Результаты счета этих задач на ЭВМ ЕС-1040 приведены в табл. 21, где т X п — размеры матрицы коэффициентов ограничений; tT — время нахождения точного решения задачи, с; /2 — время получения приближенного решения с относительной погрешностью 1 %, с.
Эффективность алгоритма случайного поиска исследовалась также на тестовых задачах, генерируемых с помощью II датчика псевдослучайных чисел, который описан в § 2 гл. 3.
Результаты вычислений приведены в табл. 22. В ней (и в табл. 23—27) использованы следующие обозначения :m X п — размеры матрицы коэффициентов ограничений; / — найденное по алгоритму значение целевой функции; h — число итераций алгоритма; / — время решения задачи, с; & — число ограничений типа равенств в задаче; г — радиус окрестностей; /* — значение целевой функции в оптимальной точке.
Анализ результатов эксперимента показывает, что алгоритм случайного поиска хорошо себя зарекомендовал при решении тестовых задач большой размерности. Как видно из табл. 21, этот алгоритм позволяет за достаточно малый промежуток времени отыскать точку, в которой значение целевой функции лишь незначительно отличается от оптимального. Поэтому решение, найденное по этому алгоритму, можно использовать в качестве начального приближения для точных алгоритмов дискретного программирования.
Многие приближенные методы, в том числе и реализованные в пакете методы вектора спада и направляющих окрестностей, в своих вычислительных схемах предполагают предварительное задание начальных приближений, лежащих в допустимых областях. В общем, случае поиск допустимого решения весьма труден. При решении многих практических задач выбор начальных приближений можно осуществить исходя из учета специфики решаемых задач. В ПП ДИСПРО предусматривается возможность выбора начальных приближений как непосредственно пользователем, так и при помощи специальных алгоритмов. Для поиска допустимых решений в задачах ЦЛП в пакете реализованы алгоритмы управляемого случайного поиска, направляющих окрестностей и алгоритм, основанный на геометрическом подходе [137].
тХп
t
к
h
тХп
t
к
h
5 X 20
4,2
1
9
5 X 50
6,36
2
2323
5 X 20
15,28
2
938
10 X 50
31,44
2
5160
10 X 20
5,2
1
15
20 X 50
13,1
1
27
10 X 20
7,04
2
337
5Х 100
5,48
1
17
20 X 20
11,08
1
142
10 X 100
8,18
1
50
20 X 20
36,12
2
1829
20 X 100
13,68
1
67
5 X 50
5,74
1
12
Эффективность алгоритма управляемого случайного поиска исследовалась на тестовых задачах, условия которых формировались с помощью датчика псевдослучайных чисел (назовем его датчиком III), построенного так же, как и датчик II (см. гл. 3), на основе датчика псевдослучайных чисел Коробова. Коэффициенты матрицы и вектора правых частей ограничений выбирались целыми числами, равномерно распределенными на отрезке [—10, 10].
Вычислительный эксперимент на М-4030, результаты которого приведены в табл. 23, показал хорошую работоспособность алгоритма управляемого случайного поиска допустимых решений в задачах ЦЛП. Увеличение числа ограничений типа равенств в задаче обычно приводит к росту числа итераций и увеличению времени поиска допустимого решения по этому алгоритму.
Алгоритм направляющих окрестностей целесообразно применять для поиска допустимых решений в задачах ЦЛП в тех случаях, когда по этому же алгоритму будут находиться локальные решения задач, так как при этом используются одни и те же программные модули.
Допустимые решения в задачах ЦЛП (или ЧЦЛП) в ПП ДИСПРО могут отыскиваться с помощью алгоритма, основанного на геометрическом подходе. Результаты машинного эксперимента по решению тестовых задач этим алгоритмом на М-4030 приведены в [116]. Анализ этих результатов свидетельствует о том, что алгоритм, основанный на геометрическом подходе, хорошо себя зарекомендовал при решении тестовых задач большой размерности.
В ПП ДИСПРО представлены также параметрические модели целочисленного программирования. Для приближенного решения задач ЦЛП с параметром в правых частях ограничений, описанных в § 2 гл. 7, в пакете реализован алгоритм направляющих окрестностей. Реализован также изложенный в § 4 гл. 7 алгоритм определения тех значений параметра, при которых система линейных диофантовых уравнений с параметром заведомо не имеет решений. В седьмой главе рассмотрены также вопросы, касающиеся эффективности этих алгоритмов.
Для приближенного решения задач целочисленного квадрат ич- ного программирования вида
min ^d'x + x'CxIAx ^ b, х ^ 0, х — целочисленный вектор) в ПП ДИСПРО реализован алгоритм вектора спада.
^гХи
Г
f
п
5X5
5
—434
18
1
10 X 10
3
—6550
44
7
5 X 20
2
—11 100
101
15
10 X 50
1
—590 000
638
128
50 X 50
1
— 141 000
81
4
75 X 75
1
—537 000
339
122
100 X 100
1
—387 000
246
141
200 X 50
1
—3480
29
13
50 X 150
1
— 1314
46
91
300 X 200
1
— 19 457
137
120
Эффективность этого алгоритма исследовалась на тестовых задачах, условия которых формировались с помощью датчика псевдослучайных чисел. Коэффициенты матрицы Л выбирались целыми числами, равномерно распределенными на отрезке [—10; 101, а компоненты векторов d и b — целыми числами, равномерно распределенными на отрезках [—500, 101 и [1,5 X п\ соответственно, где п— число переменных. Элементы См, к =/= I, симметричной квадратной матрицы С порядка п выбирались целыми числами, равномерно распределенными на отрезке [—5, 51 таким образом, что
п
Си > о, си > £ I Си, |,
где
п
Си — S I Си, | = р, РЕЮ, 5]. к=\
Известно, что при выполнении этих условий матрица С положительно определена.
При проведении эксперимента во всех примерах в качестве начального приближения выбирался нулевой n-мерный вектор. Результаты вычислений приведены в табл. 24.
Для точного или приближенного решения задач целочисленного программирования с целочисленными матрицами условий в ПП ДИСПРО реализован третий алгоритм Гомори с использованием динамического программирования [531.
Задачи ЦЛП с булевыми переменными. Для точного решения задач вида
min \сх/Ах ^b, х = (xv ..., х^. xj = 0 V К / = К • • • > п(
в ПП ДИСПРО реализованы метод Балаша 112] и метод IT [20] последовательного анализа и отсеивания элементов возможных вариантов решения задач, а для приближенного — метод вектора спада [1371. Для нахождения начальных приближений, необходимых при исполь-
mXn
Алгоритм Балаша
Алгоритм вектора спада
Алгоритм управляемого случайного поиска
f*
f
/
1
i
5 X 10—145,22—141,28—142,6—14
10 X 10—146,18—141,54—142,08—14
10 X 20—72360,2—771,98—7524,26—77
20 X 20—25255,54—251,72—258,18—25
5 X 30—54419,06—559,32—5311,38—55
30 X30—17649,50—262,52—2650,0—26
5 X50—76359—962,26—6816,12—
25 X50—27152,40—322,94—2753,0—32
5 X 75—2871016—3054,54—26516,2—
75 X75—82409—10414,54—7751,22—
100 X 100—-—2914,16—2417,76—
зовании метода вектора спада, включен алгоритм управляемого случайного поиска.
Для сравнительного исследования алгоритмов Балаша, II? и вектора спада был проведен машинный эксперимент, результаты которого приведены в [116].
С целью исследования эффективности алгоритмов Балаша, вектора спада, управляемого случайного поиска [137] для решения общих задач ЦЛП с булевыми переменными был проведен на М-4030 машинный эксперимент по решению многомерных задач о ранце с булевыми переменными. Тестовые задачи генерировались с помощью датчика II псевдослучайных чисел, описанного в § 2 гл. 3 для задач ЦЛП. Результаты вычислений приведены в табл. 25.
Следует отметить, что в этом эксперименте по сравнению с упомянутым выше экспериментом использовалось другое, основанное на случайном поиске, правило перебора точек в окрестностях в алгоритме вектора спада. По этому алгоритму вычисления проводились при радиусе г = 2.
Только в трех из десяти решаемых по алгоритму Балаша задач оптимальные решения были найдены за указанное в таблице время.
С помощью алгоритма вектора спада во всех примерах, для которых были известны оптимальные решения, эти решения были получены. Максимальное время решения одной задачи размером вплоть до 100 X 100 по этому алгоритму не превысило 15 с. Таким образом, машинный эксперимент подтвердил преимущества метода вектора спада по сравнению с другими рассматриваемыми методами.
Алгоритм управляемого случайного поиска в этом эксперименте был ориентирован на получение последовательности допустимых решений задачи, упорядоченных в порядке убывания значения целевой функции. Приведенные в табл. 26 результаты эксперимента показывают, что алгоритм управляемого случайного поиска позволяет находить достаточно хорошие допустимые решения задач размером вплоть до 100 X 100 за время, не превышающее 1 мин.
На БЭСМ-6 по алгоритму вектора спада было решено также 18 прикладных задач размером 12 X 216. Результаты решения этих задач полностью удовлетворили заказчика
В [116] приведены результаты машинного эксперимента по нахождению допустимых решений в задачах ЦЛП с булевыми переменными с помощью алгоритма управляемого случайного поиска.
Для решения многомерных задач о ранце с булевыми переменными в ПП ДИСПРО реализован предложенный Ю. Ю. Черваком алгоритм лексикографического поиска [1711. На решение задачи размером 100 X X 100 в пакете поэтому алгоритму затрачено 45 с машинного времени.
Для приближенного решения многомерных задач о ранце с булевыми переменными в пакете реализован предложенный В. П. Шило алгоритм случайного поиска и модифицированный алгоритм Балаша. Исследование эффективности этих алгоритмов было проведено с помощью машинного эксперимента, результаты которого даны в [116].
Задачи ЧЦЛП. Для точного решения задач вида
min {ex + dy/Ax + By ^ b, х^ 0, у 0, х — целочисленный вектор} в ПП ДИСПРО реализованы возвращающийся алгоритм метода отсечений [169], метод ветвей и границ, метод Вендерса [187], а для приближенного—методы спада, направляющих окрестностей, приближенный вариант алгоритма Вендерса [137].
Реализованный в ПП ДИСПРО возвращающийся алгоритм метода отсечений имеет над алгоритмом Гомори то преимущество, что в нем в значительной мере ликвидировано отрицательное влияние накапливаемых ошибок округления. Это достигается тем, что метод дает возможность на любом шаге поиска решения задачи использовать начальные данные о рассматриваемой задаче (начальную симплексную таблицу). Периодическое обращение к исходной информации избавляет вычислительный процесс от отрицательного влияния накопленных ошибок округления.
Метод ветвей и границ для решения задач ЧЦЛП реализован в ПП ДИСПРО с помощью нескольких процедур ППП-ЛП АСУ [116].
В ПП ДИСПРО, кроме метода Вендерса, реализован также алгоритм [137] для приближенного решения задач ЧЦЛП, базирующийся на идеях декомпозиции Вендерса и обладающий его преимуществами. Для решения задач ЧЦЛП, в которых матрица В имеет блочно-диагональный вид, в ПП ДИСПРО реализован специальный алгоритм [137], использующий идеи приближенного алгоритма и учитывающий специфические особенности матрицы В условий. Применение этого алгоритма дает возможность выполнять необходимые вычисления на каждом шаге с использованием матриц меньших размерностей, чем матрицы В, а также позволяет добавлять на каждом шаге более одного (или двух) новых ограничений к задаче целочисленного программирования, что приводит к уменьшению числа шагов алгоритма.
С целью сравнительного исследования специального алгоритма и приближенного алгоритма был проведен на БЭСМ-6 машинный эксперимент по решению задач ЧЦЛП с блочно-диагональной матрицей В.
Коэффициенты матриц А, В выбирались целыми числами, равномерно распределенными на интервале (—10, 10), а компоненты векто-
т
р
q
ос
t
40
30
10
10 1
2,6
4,8
40
20
20
6
1
2,8
4,8
40
10
30
5
1
3,7
5,0
50
30
20
10 1
5,8
9,0
80
40
40
10 1
10,0
Не хватило оперативной памяти машины
ров с, d и b — целыми числами, равномерно распределенными в интервалах (0, 10), (—10, 10) и (—3, 6 (р + q)/a; 3, 6 (р + ^)/а) соответственно, где р и q — число непрерывных и целочисленных переменных; а — число блоков матрицы В. Было решено по двадцать задач каждого размера при пяти различных начальных значениях вектора у. Во всех задачах число элементов искомой последовательности допустимых решений ограничивались десятью.
В табл. 26 приведены результаты задач в таблице отведено две строки,В табл. 26 приведены результаты задач в таблице отведено две строки,решения этих задач. Для всех соответствующие случаям изо
В табл. 26 приведены результаты задач в таблице отведено две строки,
В табл. 26 приведены результаты задач в таблице отведено две строки,
лированного (а > 1) и совместного (а — I) рассмотрения диагональных блоков матрицы В. Анализ результатов эксперимента позволяет сделать вывод о преимуществах специального алгоритма для решения задач с блочно-диагональной матрицей В по сравнению с обычным приближенным алгоритмом.
Реализованный в ПП алгоритм вектора спада целесообразно применять для приближенного решения задач ЧЦЛП, в которых число непрерывных переменных невелико. Алгоритм направляющих окрестностей имеет смысл использовать для приближенного решения задач ЧЦЛП с большим диаметром множества допустимых решений. В ПП ДИСПРО для задач ЧЦЛП начальное приближение может выбираться или пользователем, или с помощью алгоритма, основанного на геометрическом подходе.
Для приближенного решения задач ЧЦЛП g булевыми переменными в ПП ДИСПРО реализован предложенный В. П. Шило алгоритм случайного поиска. Эффективность этого алгоритма исследовалась на тестовых задачах, генерируемых с помощью датчика псевдослучайных чисел. Коэффициенты матриц Д, В и векторов ct d выбирались целыми числами, равномерно распределенными на отрезках [0, 101 и [—10, 01 соответственно, а коэффициенты вектора ограничений b — целыми числами, равномерно распределенными на отрезке [0, 40 X ^1, где q—число целочисленных переменных.
Результаты вычислений приведены в табл. 27, где р — число непрерывных переменных задачи. Из нее видно, что приемлемое приближенное решение отыскивается по алгоритму случайного поиска за сравнительно небольшое время. В большинстве случаев этот алгоритм оказывается более эффективным, когда число целочисленных переменных в задаче превосходит число непрерывных перемен
ных.
Специальные задачи ДО. Для решения задач размещения производства с вогнутой целевой функцией и без ограничений на мощности
размещаемых предприятий в ПП ДИСПРО включен модуль, реализую щий метод ветвей и границ, который позволяет построить как точное, так и приближенное с заданной степенью близости к оптимуму по функционалу решение. Кроме задач размещения, к аналогичной постановке приводится задача унификации технических средств [13].
Задача одноэтапного размещения производства [13, 153] заключается в отыскании
(12.1)(12.1)min ^ 2 ttixtj + S h MZ=1 /=1Z=l
(12.1)
(12.1)
при ограничениях
У, х(/ = Bp £ xm Xb xq>0, i = 1, . . ., m, i = 1, . . ., n, l'=1/==1(12.2)
где ft (Х^, I = 1, ..., m,— функции с фиксированными доплатами вида
Л№) = {Л№) = {aiXi + btоaiXi + btопри Xz>0,при Xz>0,при Х( = 0.при Х( = 0.(12.3)(12.3)К задаче (12.1) — (12.3) сводится задача размещения производства однородного продукта с вогнутыми кусочно-линейными функциями затрат на производство [13, 21, 82, 153, 175, 193], которая формулируется следующим образом. Задано т пунктов возможного размещения производства однородной продукции и п потребителей этой продукции с потребностями Bb j — \> ..., п. Заданы матрица удельК задаче (12.1) — (12.3) сводится задача размещения производства однородного продукта с вогнутыми кусочно-линейными функциями затрат на производство [13, 21, 82, 153, 175, 193], которая формулируется следующим образом. Задано т пунктов возможного размещения производства однородной продукции и п потребителей этой продукции с потребностями Bb j — \> ..., п. Заданы матрица удельных транспортных затрат Т = (tij^Jy^ и функции затрат на производство Ft (Xi). Функции Fi (Х^ предполагаются вогнутыми куных транспортных затрат Т = (tij^Jy^ и функции затрат на производство Ft (Xi). Функции Fi (Х^ предполагаются вогнутыми кусочно-линейными . Т ребуется ности производства Х( ^ 0, каждого потребителя прикрепить к одному из мест производства так, чтобы минимизировать суммарные производственные и транспортные затраты. Задача размещения с произвольными вогнутыми кусочно-линейными функциями сводится к задаче (12.1), (12.2) с функциями вида (12.3) путем увеличения числа точек размещения т (подробнее способ сведения см.,например, в [21]).Для этой задачи в Институте кибернетики им. В. М. Глушкова АН УССР в 1968 г. разработаны достаточно эффективные методы решения,сочно-линейными . Т ребуется ности производства Х( ^ 0, каждого потребителя прикрепить к одному из мест производства так, чтобы минимизировать суммарные производственные и транспортные затраты. Задача размещения с произвольными вогнутыми кусочно-линейными функциями сводится к задаче (12.1), (12.2) с функциями вида (12.3) путем увеличения числа точек размещения т (подробнее способ сведения см.,например, в [21]).Для этой задачи в Институте кибернетики им. В. М. Глушкова АН УССР в 1968 г. разработаны достаточно эффективные методы решения,трЯt1010100,8—676,56282010203,4—810,78192020107—514,75462020203,46—892,771230103011,06— 1137,44630301032,94—581,82113020309,52— 1096,55830302011,8—975,596830303015,24— 1534,18840104010,22— 1385,3940401046,18—517,179640204020,6— 1902,88940402029,76— 1042,82403040327,28—2207,25440403083,59— 1660,33740404037,02—2054,009трЯt1010100,8—676,56282010203,4—810,78192020107—514,75462020203,46—892,771230103011,06— 1137,44630301032,94—581,82113020309,52— 1096,55830302011,8—975,596830303015,24— 1534,18840104010,22— 1385,3940401046,18—517,179640204020,6— 1902,88940402029,76— 1042,82403040327,28—2207,25440403083,59— 1660,33740404037,02—2054,009выбрать подмножество мест и мощ-выбрать подмножество мест и мощ-Таблица 27Таблица 27
Л№) = {
Л№) = {
aiXi + bt
о
aiXi + bt
о
при Xz>0,
при Xz>0,
при Х( = 0.
при Х( = 0.
(12.3)
(12.3)
К задаче (12.1) — (12.3) сводится задача размещения производства однородного продукта с вогнутыми кусочно-линейными функциями затрат на производство [13, 21, 82, 153, 175, 193], которая формулируется следующим образом. Задано т пунктов возможного размещения производства однородной продукции и п потребителей этой продукции с потребностями Bb j — \> ..., п. Заданы матрица удель
К задаче (12.1) — (12.3) сводится задача размещения производства однородного продукта с вогнутыми кусочно-линейными функциями затрат на производство [13, 21, 82, 153, 175, 193], которая формулируется следующим образом. Задано т пунктов возможного размещения производства однородной продукции и п потребителей этой продукции с потребностями Bb j — \> ..., п. Заданы матрица удель
ных транспортных затрат Т = (tij^Jy^ и функции затрат на производство Ft (Xi). Функции Fi (Х^ предполагаются вогнутыми ку
ных транспортных затрат Т = (tij^Jy^ и функции затрат на производство Ft (Xi). Функции Fi (Х^ предполагаются вогнутыми ку
сочно-линейными . Т ребуется ности производства Х( ^ 0, каждого потребителя прикрепить к одному из мест производства так, чтобы минимизировать суммарные производственные и транспортные затраты. Задача размещения с произвольными вогнутыми кусочно-линейными функциями сводится к задаче (12.1), (12.2) с функциями вида (12.3) путем увеличения числа точек размещения т (подробнее способ сведения см.,например, в [21]).
Для этой задачи в Институте кибернетики им. В. М. Глушкова АН УССР в 1968 г. разработаны достаточно эффективные методы решения,
сочно-линейными . Т ребуется ности производства Х( ^ 0, каждого потребителя прикрепить к одному из мест производства так, чтобы минимизировать суммарные производственные и транспортные затраты. Задача размещения с произвольными вогнутыми кусочно-линейными функциями сводится к задаче (12.1), (12.2) с функциями вида (12.3) путем увеличения числа точек размещения т (подробнее способ сведения см.,например, в [21]).
Для этой задачи в Институте кибернетики им. В. М. Глушкова АН УССР в 1968 г. разработаны достаточно эффективные методы решения,
т
р
Я
t
10
10
10
0,8
—676,5628
20
10
20
3,4
—810,7819
20
20
10
7
—514,7546
20
20
20
3,46
—892,7712
30
10
30
11,06
— 1137,446
30
30
10
32,94
—581,8211
30
20
30
9,52
— 1096,558
30
30
20
11,8
—975,5968
30
30
30
15,24
— 1534,188
40
10
40
10,22
— 1385,39
40
40
10
46,18
—517,1796
40
20
40
20,6
— 1902,889
40
40
20
29,76
— 1042,82
40
30
40
327,28
—2207,254
40
40
30
83,59
— 1660,337
40
40
40
37,02
—2054,009
т
р
Я
t
10
10
10
0,8
—676,5628
20
10
20
3,4
—810,7819
20
20
10
7
—514,7546
20
20
20
3,46
—892,7712
30
10
30
11,06
— 1137,446
30
30
10
32,94
—581,8211
30
20
30
9,52
— 1096,558
30
30
20
11,8
—975,5968
30
30
30
15,24
— 1534,188
40
10
40
10,22
— 1385,39
40
40
10
46,18
—517,1796
40
20
40
20,6
— 1902,889
40
40
20
29,76
— 1042,82
40
30
40
327,28
—2207,254
40
40
30
83,59
— 1660,337
40
40
40
37,02
—2054,009
выбрать подмножество мест и мощ-
выбрать подмножество мест и мощ-
Таблица 27
Таблица 27
\^ задачи
Размернеси задачи пгХп
Вектор фиксированных доплат
11 шальна^ нижняя тцрнк'’ 7'
1 (ачальна?* верхняя оценка
Оптимальное значение целевой функции Г
1
50 X 50
1000
8464
11 504
9359
2
50 X 50
3000
14 335
19 708
16 164
3
50 X 5()
5000
19 050
30 320
21 196
4
50 X 50
7000
23 004
34 073
25 196
5
50 X 50
500
5921
7850
6644
6
50 X 50
(R + 0,1) 1000
4969
7
100 X 100
7000
32 510
52 585
38 114
8
200 X 200
1000
17 335
26 529
20 508
9
10 X 20
(R -4- 0,1) 1000
3419
относящиеся к классу методов ветвей и границ [153]. Позднее аналогичный подход с успехом использовался для решения задач унификации [13]. Первая программа для ЭВМ, реализующая указанный метод, была разработана для ЭВМ М-20 в 1970 г. С ее помощью были успешно решены около 150 задач размещения баз ремонта промышленного транспорта по Советскому Союзу. (Работа проводилась совместно с Харьковским отделением Промтрансниипроект) Результаты использовались для размещения баз ремонта промышленного транспорта. В 1978 г. по аналогичной программе для БЭСМ-6 решались задачи размещения винпунктов на перспективу по УзССР [1031 и задачи размещения вертолетного парка но Тюменской области.
Для решения задачи размещения известны и другие алгоритмы [82, 193], основанные на модификации модели, в которой условия Ун ^ Yt заменены на более слабые условия у yij ^ nYь а также алгоритмы последовательных расчетов [175]. Последний алгоритм позволяет находить точное решение для задач в т ^ 30 ~~ 40. Эксперименты с алгоритмом Лебедева приведены в [82]. В них т ^ 50 и все задачи решались приближенно. С помощью алгоритма ветвей и границ была точно решена задача размерностью (m X п) ~ (190 X X 120), счетное время ^ 2 ч на БЭСМ-6, и ряд задач размером (56 X X 28) и (46 X 34), счетное время « 1 мин на задачу. Для задачи размерностью (190 X 120) приближенное решение с погрешностью 3,5 % было получено за 20 с. Хотя полного сравнительного анализа с алгоритмом Лебедева не делалось, проведенные эксперименты позволяют предположить, что предлагаемый алгоритм будет эффективен на задачах размещения большой размерности. Экспериментальные расчеты по решению задач, данные для которых генерировались о помощью подпрограммы псевдослучайных чисел, равномерно распределенных на отрезке [0, 1], приведены в табл. 28, где т — число точек возможного размещения; п — число потребителей.
Решались задачи с функциями затрат на размещение, которые являются линейными с фиксированными доплатами. При этом коэф- 416
I -Z" Iх
X10f %
Число итераций
Число изменений рекорд'
Время счета, мин
Средне^. время на одну итерацию. а
Тип ЭВМ
9
294
12
4,57
0,9
ЕС-1040
11
90
4
0,78
0,5
ЕС-1060
10
102
9
2,67
1,5
ЕС-1040
8
64
5
0,78
0,7
ЕС-1060
10
358
8
1,63
0,3
ЕС-1060
86
3
0,98
0,6
ЕС-1060
14
1489
5
182,32
7,3
ЕС-1040
15
15
190,12
ЕС-1040
5
1
0,02
0,2
ЕС-1060
фициенты Ci/ (транспортные затраты) представлялись целыми числами, получающимися путем округления случайных чисел, умноженных на 1000, а фиксированные доплаты одинаковы для всех пунктов размещения и записаны в третьем столбце таблицы. Для задачи 6 фиксированные доплаты вычислялись по соответствующей формуле, где R— случайное число из 10, 1]. Все задачи (кроме 8-й) решены точно. В задаче 8 процесс счета был прерван до доказательства оптимальности текущего решения. Незаполненные клетки таблицы означают отсутствие соответствующих данных.
Анализ алгоритма и результаты экспериментов позволяют сделать следующие выводы.
Время расчетов линейно зависит от числа потребителей и экспоненциально от числа точек возможного размещения производства.
Существенное влияние на время расчетов оказывает отношение средней величины фиксированных доплат к средней величине разности между максимальными и минимальными транспортными затратами для среднего потребителя. Трудоемкость задачи в среднем является выпуклой одноэкстремальной функцией от этого отношения, т. с. при малых и больших его значениях трудоемкость относительно мала.
С учетом достаточно быстрого построения оптимального (или близкого к оптимальному) решения целесообразно использовать модуль в диалоговом режиме, предоставив пользователю возможность прерывать счет при получении удовлетворяющего его решения. По этой же причине можно считать, что размерность решаемых задач ограничена объемом оперативной памяти существующих ЭВМ, а не их быстродействием.
Для решения двухэтапных задач размещения производства с вогнутой целевой функцией и без ограничений на мощности размещаемых предприятий первого и второго уровней в ПП ДИСПРО включен модуль, реализующий метод ветвей и границ, который позволяет строить точное и приближенное с заданной степенью близости к оптимуму по функционалу решение.
Размерность задачи IxJxK
Векторы фиксированных доплат
Начальная нижняя оценка 2*
Начальная верхняя оценка
Оптимальное значение целевой функции 2*
40 X 40 X 40
1500
8004
14 976
8746
40 X 40 X 40
1000
6402
12 741
72464
40 X 40 X 40
500
4448
6824
51901
40 X 40 X 40
300
3579
5703
4094:
40 X 40 X 40
№+0,1) 1000
4598'1
10 X 5 X 20
№ + 0,1) 1000
5329
5345
5345|1
6X6 X 25
№ + о,1) юоо
6329
6329
6329
ЮХ ЮХ 15
№+0,1) 1000
3453
4273
3453л
Задача двухэтапного размещения производства заключается в отыс- ' кании
1Jjк/J1
min 5S апхч+ XS bjkyjte + £^(Х,)+ ^ £j<y^1
/=,/=1ft=ii=i/=1jj
при ограничениях|
^yik = Bk, 6=1К,
1к1
1 ^0 " S У jk 5=2 Yp j — V • .. J>i
i=i6=1
2xM = Xb t = 1, .. .,;
7=1'
xtj ^ 0, i = 1, ... > L
Ур>^ /= 1, J, &= 1, K.I
Здесь ft <Х^Л -^ 1, ..., /, gj (YjV j = 1, ...» J— функции вида (12.3), J т. e. линейные функции с фиксированными доплатами.j
К этой модели сводится задача размещения производства одно-*
родной продукции с вогнутыми кусочно-линейными функциями за-•
трат на производство [1031 в случае, когда готовая продукция получается в результате обработки (или добычи) сырья и полуфабрикатов на двух этапах. Двухэтапная задача размещения позволяет выбирать места размещения предприятий первого и второго уровней из задан- I ного множества мест возможного их размещения в задачах, где одно-1
родный продукт до его использования проходит две последовательные•
стадии обработки. В отличие от одноэтапной задачи размещения для рассматриваемой задачи разработки других методов решения, кроме 1 предлагаемого автором, неизвестны.
С помощью разработанного модуля был проведен ряд экспериментальных расчетов по решению задач со случайно сгенерированными исходными данными. Результаты расчетов приведены в табл. 29, где / и J — число мест возможного размещения 1-го и 2-го уровней
I Z' - Z" lx
Число итераций
Число изменений рекорда
Время счета, мин
Среднее время на одну итерацию, с
Тип ЭВМ
I Z* Iх xioo, %
8
23
5
28,5
74
ЕС-1040
11
37
5
41,1
66
ЕС-1040
14
35
6
9,13
15
ЕС-1060
12
43
5
27,58
38
ЕС-1040
15
2
4,13
0,2
ЕС-1060
0,3
1
1
0,02
1,48
ЕС-1060
0
1
1
0,03
1,56
ЕС-1060
0
3
2
0,02
0,36
ЕС-1060
соответственно; К — число потребителей. Исходные данные формировались по тем же принципам, что и в задаче размещения. Точность решения задач — 0,05, т. е. отклонение полученного решения от оптимального не превосходит 5 %.
Анализ алгоритма и результаты экспериментов позволяют сделать выводы, аналогичные в целом выводам для одноэтапной задачи размещения.
В ПП ДИСПРО реализован метод последовательного анализа вариантов для нелинейной задачи о ранце (дискретной сепарабельной задачи оптимального распределения ограниченных ресурсов). Формально соответствующая задача математического программирования имеет вид
max Gi (х) = £ f/ ^IGt W = £ gt/ ^х^ ^g°p х^Х, — конечное
I /=1 /=1
множество, I = 2, ..., т, j = 1, ..., n|. (12.4)
Практическая интерпретация этой задачи приведена в [116].
Реализованная в ПП ДИСПРО версия алгоритма последовательного анализа вариантов в задаче (12.4) допускает получение приближенных решений посредством задания значений некоторых параметров алгоритма. Численные эксперименты с алгоритмом проводились на группе реальных задач с числом переменных 15 (каждая переменная принимала 5 значений) и числом ограничений от 1 до 3. Экспериментальная оценка времени счета (в мин) на БЭСМ-6 i Т = 0,3 X X 10-4 п (.МДУ, где МД — размер оперативной памяти, выделяемой для хранения параметров начального отрезка из множества вариантов на шаге L Детальный анализ результатов численных экспериментов приведены в [601.
Известно, что дискретные сетевые задачи оптимального распределения ограниченных ресурсов отражают широкий круг практических потребностей пользователей и, как модели оптимизационных задач, имеют самостоятельное значение.
Рассмотрим некоторые математические и алгоритмические аспекты, связанные с решением указанных задач на ЭВМ. В специальной литературе принято различать складируемые (накапливаемые) и нескладируемые (ненакапливаемые) ресурсы. Далее будет идти речь о ресурсах второго типа. Многие экстремальные задачи оптимального распределения нескладируемых ресурсов являются комбинаторными, дискретными и формулируются как специальные задачи целочисленного линейного или нелинейного программирования.
Пусть задан ориентированный конечный граф без петель и контуров (V, Е) со множеством вершин V = (1, ..., п\ и множеством дур Е ^ V х V. Предполагается, что множество вершин графа взаимнооднозначно сопоставлено некоторой совокупности реальных операций (действий, процессов и т. п.). Операция полностью описывается рядом количественных показателей: d^ tp^ / = L •••, п,к — 1, ..., К, где d, — длительность операции /, dj0 — целое; г^ — уровень потребления ресурсов к-го вида в процессе выполнения операции /. Выполнение операции / связано с предоставлением ей всех необходимых ресурсов на время dp начатые операции не разрешается прерывать. Иногда допускается несколько режимов выполнения операций со своими длительностями и потребностями в ресурсах, но этот более общий случай не будет нами рассматриваться. Дуги графа (У, Е) интерпретируются как заранее заданное отношение предшествования операций в процессе выполнения совокупности операций. Смысл его таков: если (/, /) £ Е, то операция / не может быть начата ранее, чем завершится операция I. Второе ограничение на порядок выполнения совокупности операций связано с ограниченными общими уровнями наличия ресурсов. Ставится условие, чтобы общие уровни потребления ресурсов в каждый момент времени из интервала планирования не превосходили заранее заданной величины Rm для каждого к = 1, ..., К. Переменная времени / считается целочисленной, причем 0 ^ / ^ Т, т. е. предполагается, что каждая операция начинается не ранее / = 0, а завершается не позднее Т. Если Т заранее не задано, предполагается, что его можно оценить априори. Перейдем к формулировке экстремальной задачи. С каждой операцией свяжем целочисленную переменную хи\ хц = 1, если операция i начинается в момент времени /, иначе хц = 0. Известными методами сетевого планирования могут быть найдены для каждого I: tt — наиболее ранний срок начала операции i при условии, что все операции сети начинаются не ранее /= 0; t, — наиболее поздний срок начала операции / при условии, что все операции сети должны завершиться не позднее t = Т. Предполагается, что со сроком начала каждой операции связана заранее заданная функция условных потерь ^ ^Y Содержание термина «потери» может быть самым различным; одна из интерпретаций — потери экономические от задержек сроков завершения строительства и ввода в действие того или иного производства. Обозначим Ср = Y (tY j = 1, ..., n, t — 0, ..., T. Тогда достаточно общая задача построения оптимального расписания выполнения заданной системы операций при ограниченных нескладируемых ресур- 420
''ах имеет вид: минимизировать
п ТЦх^^ £ сцХц(12.5)
/=1 t=u
при условиях
V x/f = 1, /=1, .. ., п,(12.6)
f==-i
V V r^^Rkt, к=\,...,К, 1 = 0, Т, (12.7) 1 t--max(U,/—dy+D
tТ
^tXit-VtXi.^di, (i, [RE,(12.8)
/=с
^//-OVLя, t 1, ...,7\(12.9)
Рассмотрим несколько специальных случаев задачи (12.5) — (12.9).
Вначале возьмем задачи, в которых сеть имеет вид независимых цепей специализированных операций. Отношение предшествования таково, что у каждой операции есть самое больше один предшественник и один последователь. Кроме того, в сети отсутствуют дуги (t, /) такие, что i принадлежит одной, a j— другой цепи. Специализация состоит в том, что хотя общее количество ресурсов К^ 1, каждая операция потребляет только один вид ресурсов. Для специализированной сети удобно уточнить принцип нумерации операций. Рассмотрим двойную индексацию операций, номер (/, j) будет обозначать /-ю операцию i-й цепи. В r-й цепи имеется гц операций. Уточним также функции g; (tf): будем полагать, что gj Vj) = 0 для всех операций, кроме последних операций каждой цепи, a gj (t]} для операций с номерами (/, п^ — монотонно неубывающие функции. Далее в тексте будут также ссылки на параметры а, р, q алгоритма. Параметры а и q используются как регуляторы выбора подзадач с учетом их опенок и ранга, р — шаг, с которым осуществляется пересчет множителей Лагранжа а, т. е. пересчет осуществляется для подзадач, ранг которых равен рп, п = 0, 1, 2, ... Несмотря на упрощения, задача (12.5) — (12.9) остается весьма общей задачей календарного планирования, является УУР-полной в смысле Кука— Карпа и для нее не известны эффективные, с полиномиальной оценкой трудоемкости, алгоритмы.
В ПП ДИСПРО реализован метод ветвей и границ, в котором для вычисления оценок используется двойственная задача.
Вычислительные эксперименты проводились на ЕС-1040 для серии из шести тестовых задач. Каждая задача просчитывалась при различных значениях параметров алгоритма. Время счета одного варианта — 10 мин.
Тестовые задачи составлялись из последовательностей операций двух типов (в каждой последовательности четыре операции, все операции потребляют один вид ресурса):
Таблица 30
№ задачи
Типы последовательностей
Количество наличного ресурса
1
1
9
2
1
8
3
2
9
4
2
8
5
1-я, 2-я, 3-я; 4-я
9
5-я — тип 1
6
тип 2
8
тип 1: dx => 3, d2 = 1, d^ —- I, d4 2; q =3, r2 = 4, r3 = 6, r4 = = 3; тип 2: dY = 3, d2 = 1, d3 = = 3, d4 = 2: rx =4, r2 = 6, r3 = = 2, r4 = 3.
Каждая задача состояла из пяти последовательностей; функции gi (ft)* z = I» ...» 5, и интервал планирования Т &ля всех задач одинаковы: Т = 30; g; (f^ = max (0, Si — Л), где Si = 1 + 2/, i = = 1, ...» 5. Таким образом, каждая задача определялась набором
последовательностей и количеством наличного ресурса (Rt — R — постоянная).
Характеристики каждой задачи приведены в табл. 30, а результаты счета — в табл. 31, где /— найденный рекорд; N — число построенных подзадач; N* — число построенных подзадач к моменту
последнего уточнения рекорда; а, р, q — параметры алгоритма.
Таблица 31
№ задачи
р
N
Односторонний обход дерева ветвления
Поиск по наилуч шей оценке
а = 1# у = 0.8
f
N*
F
N*
1
/V*
1
1
54
39
39
39
42
39
42
2
НО
39
39
39
42
39
54
3
160
38
60
39
46
38
109
4
200
39
70
39
46
38
108
2
1
54
53
44
62
44
58
6
2
ПО
57
41
58
47
51
68
3
160
57
44
51
121
51
72
4
200
51
60
51
НО
51
94
3
1
57
60
6
66
2
57
43
2
105
58
71
61
102
57
95
3
140
60
4
59
95
57
113
4
200
54
116
59
112
57
183
4
1
57
65
34
61
50
61
38
2
105
61
78
61
50
61
38
3
140
61
98
61
63
61
41
4
200
61
96
61
96
61
38
5
1
54
51
6
56
1
51
6
2
105
51
10
52
77
51
10
3
180
50
65
51
176
50
135
4
240
51
12
50
234
50
73
6
1
54
58
6
56
34
56
42
2
105
56
54
56
34
56
51
3
180
56
39
56
26
55
18
4
240
56
63
56
28
56
36
Из результатов эксперимента следует, чго для решения рассмотренных задач наиболее целесообразно применять смешанную стратегию (а 1, 7 = 0,8) с параметром р >1. Необходимо отметить также, что при р > 2 все стратегии дают гриближенно одинаковые решения.
Анализ работы алгоритма показал, что t ходе вычислений оценка снизу оптимального решения растет сравнительно медленно и по окончании работы алгоритма имеет близкие значения для всех вариантов счета одной задачи. Это можно объястить относительно малым числом построенных подзадач. Приведем оьенки оптимальных решений (ш<- — наилучшая оценка f-й задачи):
wt — 32,3; w2 36,4; w. = 46,5;
w4 — 51,1; w^ = 40,3;= 44,3.
Рассмотрим задачи с ациклическими сетями операций и одним видом ресурса. В приложениях наиболее часто речь идет о двух родственных экстремальных задачах. Это задача минимизации времени завершения всех операций при заданных уровнях наличия ресурсов (задача 1) и задача минимизации максимального по времени уровня потребления ресурсов при заданном сроке завершения всех операций (задача 2). Сформулируем их в терминах задачи (12.5) — (12.9). Дополним сеть (V, Е) операцией с номером (/ + 1), связанной дугами вида (n + 1) со всеми остальными операциями сети. Положим, что dnA.x = 0, r^i = 0, к = 1, ..., К. Целевая функция (12.5) в задаче 1 имеет вид
Цх) = £^+1)/.(12.10)
Задача 1 формулируется в следующем виде минимизировать (12.10) при условиях (12.6)—(12.9). В задаче 2 отсутствуют ограничения (12.7) и целевая функция в ней имеет вид
пt
f (x) = max 5£ rhxiv(12.11)
/=1 T=max(0J—d(4l>
Задача 2 формулируется в виде; минимизировать (12.11) при условиях (12.6), (12.8), (12.9). Обе задачи являются весьма сложными в вычислительном отношении комбинаторными проблемами, и для их решения в ПП ДИСПРО включен алгоритм ветвей и границ. Наиболее важной процедурой алгоритма являгтся процедура вычисления оценок (границ). Нижние границы в задачах 1 и 2 вычисляются следующим образом. Рассмотрим функцию
М (р, q^ ^ г,-min (| (Г, t + d^ fl (p. q). 1Уь t, + d,) fl (A q) |),где 1 ^ p < q ^ T, tj, ij — соответственн» наиболее ранний и наи-более поздний сроки начала операции /. Тогда нижняя граница
значения целевой функции в задаче 2 равна
R = max —K2-21L э \^D<q^T Я Р а в задаче 1 равна
T = D+ max (р — q + 4- М (р, ^г)) , ""\^P<q<F \К)
где D — длина критического пути в сети (V, £); R = R (f) ^ — const — общий уровень наличия ресурсов, учитываемый в ограничении (12.7).
Анализ численных экспериментов с алгоритмом ветвей и границ в задачах 1 и 2 рассмотрен в работе [1161. В ней приводятся данные для задачи 2, поскольку, как можно показать, задача 1 может быть решена путем многократного повторения задачи 2 при фиксированном Т (не более (7* — D) раз).
Для решения сетевых задач построения кратчайших расписаний в случае равнодлительных операций в ПП ДИСПРО реализован метод динамического программирования. Соответствующий алгоритм динамического программирования реализован в языке ПЛ/1, ОС ЕС ЭВМ. Он прошел апробацию на нескольких реальных задачах, описывающих процессы сборки судов на стапельном производстве судостроительного предприятия. Рассматривались сети с числом операций 40, числом видов ресурсов 5. Среднее время счета на ЕС-1040 — 12 мин.
Для решения задачи о кратчайшем покрытии гиперграфа: найти
min Xj
/=1 при ограничениях
У а^х,^ 1, i = 1, ..., m, Xj = 0 V Ь / = 1, ... э n, /=1
62;/0 V L 2 = 1, ...» /72, / = 1, . . . , /2,
которая возникает во многих областях проектирования схем, размещения, выбора оптимальных подмножеств и т. д., в пакет включен модуль, содержащий реализацию точного метода ветвей и границ [104] (метод 1) и четырех приближенных методов (методы 2—5), которые используются для построения начального приближения для метода 1.
В работе [104] проведено сравнение по трудоемкости метода ветвей и границ с известными точными методами.
Размерность задач, решаемых модулем, ограничена: /тг^512, п ^ 1000. При использовании приближенных методов следует иметь в виду, что метод 2 наименее трудоемок. Метод 4 требует на 5 % больше времени. Метод 3 примерно в пгп!^ ^aij раз более трудоемок, / !
чем метод 2, а метод 5 требует на 5 % больше времени, чем метод 3. Заметим, что трудоемкость метода 3 равна kml — ” ^. rh-L , где / —
т
п
1 р
/г
Nt
N,
1, МИЧ
30
200
0,77
3
205
610
0,52
30
200
0,43
2
85
6167
LJ3
30
200
0,28
3
5836
16 182
6.33
30
600
0,86
4
2408
477 <6
4,6
30
600
0,48
1
0
18 175
30
600
0,39
6
107 435
139 059
4(638
30
600
0.29
8
30
1000
0,87
3
176
7361
11,4
30
1000
0,49
3
9406
78 266
33,22
30
1000
0,39
1
0
79 629
36,67
100
800
0,79
6
4075
7646
23,15
100
800
0,61
4
35 060
76 849
42,4
100
800
0,44
2
340
98 864
42,75
100
1000
0,81
4
5176
13 611
35,65
100
1000
0,63
2
261
67 025
48,46
100
1000
0,45
2
—
—
—
длина решения; к — коэффициент пропорциональности. Метод I целесообразно применять для улучшения решения, полученного одним из приближенных методов, либо для нахождения точного решения задачи.
Для оценки эффективности метода 1 был проведен небольшой вычислительный эксперимент на ЕС-1022 по решению тестовых задач. Его результаты приведены в [116].
Для решения задачи пространственно-временого распределения машин по работам, которая заключается в отыскании оптимального расписания использования машин для выполнения заданного множества работ по критерию лексикографической максимизации г' = (zb— —^г»— 2з) либо г" = (гъ— г3,— z2), где zx — объем выполняемых (обслуживающих) работ; г2 — затраты на обслуживание работ; z3 — затраты на обслуживание машин, в пакет включены программы, реализующие метод ветвей и границ и приближенный метод. Эти программы разработаны В. Я. Насекиным. Им был проделан небольшой вычислительный эксперимент на ЕС-1020 с использованием критерия 2', результаты которого приведены в [116].
На основе результатов эксперимента и аналитических оценок трудоемкости можно сделать вывод, что для задач средних и больших размеров метод ветвей и границ целесообразнее использовать как средство улучшения решений, получаемых приближенными методами.
Для проверки эффективности предложенного В. А. Трубиным и Ю. В. Войтишиным алгоритма неявного перебора в сочетании с симплекс-методом для решения задачи разбиения множества был проведен вычислительный эксперимент на 16 случайных задачах, исходные данные для которых были получены при помощи генератора псевдослучайных чисел, равномерно распределенных на отрезке [0, 11. Результаты экспериментов приведены в табл. 32, где т — количество ограничений задачи; п — число переменных; р — плотность матрицы
|М|
N
А
f
t, мин
10
8
5
7,5
5,12
127
8
12
83,5
2,50
127
8
14
73,199493
2,75
150
15
50
73,999603
5,45
Таблица 33Таблица 33коэффициентов условий ; к — количество найденных допустимых решений; Л^ — количество вершин дерева, просмотренных к моменту получения оптимального решения; N. — общее число просмотренных вершин; / — процессорное время ЕС-1040 (шаг СО) (сюда включается время
Таблица 33
Таблица 33
на вычисление исходных данных и начального допустимого решения). Незаполненные клетки последнего столбца таблицы означают, что был исчерпан лимит времени (60 мин) до получения оптимального решения. Из результатов эксперимента следует, что алгоритм, в отличие от известных, работает заметно лучше на матрицах высокой плотности.
В ПП ДЙСПРО включен модуль, реализующий метод вектора спада для решения задачи об оптимальном размещении программного обеспечения в многоуровневой памяти ЭВМ. Алгоритм был апробирован на ЕС-1040. Результаты вычислений приведены в табл. 33, где | М | — число модулей программного обеспечения; N — число уровней памяти ЭВМ; к — число итераций алгоритма; / — значение функции пели; / — время счета.
Результаты экспериментальных исследований показывают, что многие методы, включенные в ПП ДИСПРО, эффективно работают на задачах средней и большой размерностей. Мы не считаем, что результаты эксперимента и выводы из них являются окончательными. Работы в этом направлении будут вестись и в дальнейшем.
Проведенные исследования будут полезны пользователям пакета и дадут возможность им в ряде случаев приближенно оценить время решения реальных задач в зависимости от их размерностей.
§ 2. ПАКЕТ ПРОГРАММ ДИСПРО-3
Описываемый в этом параграфе ПП ДИСПРО-3 [Д43] является новой версией в семействе пакетов ДИСПРО [97], разрабатываемом в Институте кибернетики имени В. М. Глушкова АН УССР. Он предназначен для решения различных типов общих и специальных задач дискретной оптимизации.
Основу МО нового пакета составило функциональное и системное обеспечение ПП ДИСПРО, получившее в нем дальнейшее развитие. При этом был учтен опыт использования ПП ДИСПРО, накопленный при решении сложных практических задач. По сравнению с пакетом ДИСПРО описываемый пакет обладает следующими преимуществами.
ПП ДИСРО-3 пополнен новыми прикладными модулями, предназначенными для решения ряда достаточно общих задач целочисленного программирования и реализующими метод точного решения задачи ЦЛП с булевыми переменными [7], метод приближенного
решения задачи ЧЦЛП [127], декомпозиционный алгоритм приближенного решения задачи частично целочисленного программирования с квадратичной функцией цели при непрерывных переменных [119]» алгоритм случайного поиска с использованием двойственных оценок для приближенного решения многомерной задачи о ранце с булевыми переменными, алгоритм вектора спада для приближенного решения задачи ЦЛП с параметром в матрице и правых частях ограничений.
Существенно расширена также библиотека прикладных модулей пакета, предназначенных для решения специальных задач дискретной оптимизации. Это открывает реальную возможность повышения эффективности решения задач данного типа, основанную на максимальном учете специфики решаемых задач. Включенные в ПП ДИСПРО-3 модули для решения специальных задач обладают преимуществами по времени счета в сравнении с универсальными модулями, реализующими алгоритмы решения задач общего вида. Отбор новых девяти модулей был осуществлен по принципу практической важности решаемых ими специальных задач и широты приложений.
Часть прикладных модулей пакета ДИСПРО, включенных и в ДИСПРО-3, модифицирована, что позволило увеличить размерность решаемых с их помощью задач или уменьшить время счета. Для ряда классов задач ДО предусмотрена возможность решения задач большой размерности с использованием внешней памяти ЭВМ на устройствах прямого доступа.
Выбор метода решения той или иной задачи осуществляется либо пользователем, либо с помощью средств пакета.
Как и в предыдущей версии семейства пакетов ДИСПРО, в основе ДИСПРО-3 лежит диалоговый способ решения задач, который является эффективным для задач большой размерности, при исследовании математических моделей задач, при решении задач в условиях ограниченных ресурсов ЭВМ (времени, памяти и других), в реальном масштабе времени и т. д. Диалоговые пакеты программ такого уровня предназначены обычно не только для решения определенных классов оптимизационных задач (хотя это и основная цель их разработки), но используются и в научных целях для разработки нового и исследования имеющегося алгоритмического обеспечения решения соответствующих классов задач.
Функционирование ПП ДИСПРО-3 осуществляется в пакетном и диалоговом режимах на ЕС ЭВМ (модель ЕС-1022 и выше) под управлением операционной системы ОСЛИУТ (версия 6.1) или ОС/МFT (версия 4.1). Различные части пакета реализованы на языках Ассемблера, ФОРТРАН-IV и ПЛ/1. Общий объем его программного обеспечения составляет 1900 Кбайт.
В плане усовершенствования способов эксплуатации пользователями пакетов семейства ДИСПРО важным является использование различных типов дисплеев и территориально удаленных пультов. В связи с этим для работы с ПП ДИСПРО-3 предусмотрено использование терминальных устройств ЕС-7066 и ЕС-7927. Кроме того, в этом же отношении представляются важными наличие в новом пакете
системных средств для прерывания и возобновления счета в прикладных модулях, а также имеющаяся возможность прямого и системного вывода информации на печать с помощью программ DSG и и WTR соответственно. Что касается дальнейших версий пакетов семейства ДИСПРО, интересными представляются их реализация на ЭВМ с параллельными вычислениями, использование в сетях ЭВМ, обеспечение мультитерминального режима их работы, предоставление возможности для работы с пакетом одновременно нескольким пользователям, совместимость с существующими системами информационного обеспечения (СУБД) и др.
Необходимо отметить, что по возможностям, предлагаемым пользователям для решения широкого круга задач ДО, семейство пакетов ДИСПРО не имеет прямого аналога в практике создания подобных программных средств как в нашей стране, так и за рубежом.
Функциональная часть пакета. В ПП ДИСПРО-3 представлен ряд достаточно общих моделей полностью и частично ЦЛП, а именно:
max \сх/Ах^ b, х^О, x^Zn^,(12.12)
max\сх/Ах ^b, х— (0, 1) — вектор из Zny (12.13) max\сх 4- dy/Ax + Ву^. b, х^О, x£Zn, у—(0, 1) —
вектор из Zpy(12.14)
max\сх + dy/Ax 4- Ву^ b, х^ 0, z/^0, x^R'\ y^Zpy (12.15) max \cx/Ax ^ b 4- tb\ x^O, x^Z"},(12.16)
max \cxRA 4- tA’^x^b 4- tb', x^O, x£Zny (12.17) где Rn и Zn — множества всех n-мерных действительных и целочисленных векторов соответственно, с £ R\ d £ Rp, b, b' £ Rn\ A, A' — действительные (m x и)-матрицы, В — действительная (m x рУ матрица, t—параметр, /£[£, <pl, S, Ф g R1.
В данном пакете для приближенного решения задач (12.12) — (12.14) методами вектора спада и направляющих окрестностей [1371 вместо пяти модулей, включенных в ПП ДИСПРО, реализован один модуль, позволяющий решать этими методами задачи большой размерности (до нескольких тысяч ограничений и десятков тысяч переменных). Данный прикладной модуль дает возможность осуществлять во время счета «подкачку» данных, организованных в файлы прямого доступа. В нем предусмотрена также процедура поиска допустимого решения исходной задачи, основанная на использовании метода вектора спада. Для поиска допустимых решений задач (12.12) — (12.14) в ПП ДИСПРО-3 имеются, кроме того, модули, реализующие методы направляющих окрестностей (для задачи (12.12)) и управляемого случайного поиска [ 137] (для задач (12.12) — (12.14)).
Для точного решения задач вида (12.13) в пакет включены метод последовательного анализа и отсева вариантов [20] и P-метод i 7], в котором сочетаются идеи алгоритмов Балаша [12] и лексикографического поиска. С целью сравнительного исследования P-метода и
п
т
G
^2
т
п
р
t
50
140
10
14,1
20
10
38
12
50
125
25
13,3
50
10
105
23
50
10
140
10,9
100
10
241
23
75
140
10
37,7
10
50
42
17
75
100
50
29,4
50
50
190
182
75
10
140
17,3
10
100
62
л2
100
140
10
26,6
100
100
402
206
100
100
50
24,9
100
10
140
24
алгоритма Балаша был проведен па ЭВМ БЭСМ-6 эксперимент по решению тестовых задач вида (12.13). Результаты эксперимента, частично отраженные в табл. 34, показали, что Р-метод является более эффективным по сравнению с алгоритмом Балаша и поэтому включен в данный пакет вместо последнего, реализованного в первой версии семейства ДИСПРО [97]. В табл. 34 1Х и /2 обозначают общее время, с, решения десяти задач размера т х п алгоритмом Балаша и Р-ме- тодом соответственно.
В тех случаях, когда в моделях ЦЛП (12.12) и (12.13) на все коэффициенты наложены дополнительные условия неотрицательности, т. е. когда речь идет о многомерных задачах о ранце с целочисленными или булевыми переменными, для их приближенного решения в рамках рассматриваемого пакета можно применить алгоритмы случайного поиска. Причем в соответствующем алгоритме для решения задач с булевыми переменными идея случайного поиска сочетается с использованием двойственных оценок. В ПП ДИСПРО-3 имеется также возможность решения многомерных задач о ранце с булевыми переменными при помощи алгоритма лексикографического поиска [171!.
Методы для решения задач ЧЦЛП вида (12.15) представлены в пакете ДИСПРО-3, как и в ПП ДИСПРО, методом ветвей и границ (алгоритм Лэнд и Дойг), возвращающимся алгоритмом метода отсечений [169] и приближенным алгоритмом метода Вендерса [137], который наиболее эффективно решает задачи вида (12.15) в случае блочно-диагональной матрицы Л при непрерывных переменных. Кроме того, в новом пакете реализован /7-метод [127], представляющий собой итерационную процедуру, в результате выполнения которой отыскивается «к-локальное» решение задачи (12.15) — допустимое решение, отличающееся от локально оптимального на величину, не превосходящую к > 0. Проведенный на ЭВМ М-4030 эксперимент по решению тестовых задач различных размеров подтвердил эффективность //-метода и целесообразность его включения в ПП ДИСПРО-3. Некоторые результаты эксперимента приведены в табл. 35, в которой / обозначает время, с, поиска /г-локального решения задачи размером т х (л + р) при к = 0, 1.
Для решения параметрических задач ЦЛП, представленных в пакете моделями (12.16) и (12.17), включены алгоритмы, основанные на идеях методов направляющих окрестностей и вектора спада соответственно. Для дискретных оптимизационных задач с допустимой областью, описываемой параметрической системой уравнений вида
(Л + tA^x = b + tb\(12.18)
где х £ Z", матрицы А и Л' удовлетворяют условию целочисленности, /— целочисленный параметр, в пакете имеется модуль [97], позволяющий определить те значения параметра I, при которых возможно существование целочисленного решения системы (12.18), а также при которых оно единственно (если существует).
Кроме рассмотренных выше моделей ЦЛП и ЧЦЛП, в пакете ДИСПРО-3 представлены также две общие модели квадратичного программирования. Одна— полностью целочисленная:
min {£%+ хтСх,Ах^ b, х^О, x£Zn\,(12.19)
другая — частично целочисленная;
max^сх + xTDx + dylAx + By^b, х^0, х£Rn*
у — (0, 1) — вектор из Zp^(12.20)
где С и D — симметрические положительно полуопределенная и отрицательно определенная матрицы порядка п соответственно. Для поиска точек локального минимума в задачах вида (12.19) реализован алгоритм вектора спада, а для приближенного решения вида (12.20), которые возникают, в частности, при определении оптимального варианта развития электрической сети, реализован алгоритм, основанный на идеях декомпозиции Вендерса [119]. Были проведены экспериментальные расчеты по решению задач вида (12.20), исходные данные для которых генерировались с помощью датчика псевдослучайных чисел. Некоторые результаты расчетов приведены в табл. 36, в которой / обозначает время в секундах для задачи размером m х (п + р).
пг
п
V
Тип ЭВМ
10
10
10
11
БЭСМ-6
20
20
20
19
»
20
20
100
56
ЕС-1040
20
100
100
85
ЕС-1060
50
50
50
105
ЕС-1040
100
100
20
96
ЕС-1060
Таблица 36Таблица 36В ПП ДИСПРО-3 достаточно широко представлены также специальные задачи ДО, т. е. имеющие специальную структуру матрицы ограничений, вектора ограничений и целевой функции. Программная реализация общих, а тем более специальных методов решения таких задач приводит, как правило, к сокращению времени их решения и требуемой памяти ЭВМ по сравнению с использованием программ, предназначенных для решения общих классов задач дискретного типа. Ясно, что недостатком таких программ является потеря универсальности. Их уже нельзя использовать для решения задач других классов. А поскольку их создание
Таблица 36
Таблица 36
связано с большими затратами времени и средств, критериями при выборе классов задач, для решения которых следует создавать специализированное программное обеспечение, являются:
широта области приложений;
степень увеличения эффективности по сравнению с лучшими из имеющихся программных средств;
трудоемкость создания нового программного средства;
возможность его стыковки со средствами обработки входных и выходных данных средствами диалога, СУБД, другими оптимизационными программами и т. д.
Наиболее часто на практике возникают задачи, которые можно объединить в следующие классы:
задачи размещения и реконструкции производства, оптимального проектирования систем коммуникаций;
оптимизационные задачи теории расписаний выполнения работ при ограниченных ресурсах;
задачи оптимального проектирования технических устройств и радиоэлектронных схем;
задачи транспортировки и обхода (целочисленные распределительные задачи, задачи развозки, многоэтапные транспортные задачи, задачи коммивояжера и обходчика);
неэкономические приложения (военные задачи, задачи классификации и другие).
ПП ДИСПРО-3 содержит 17 прикладных модулей, предназначенных для решения специальных классов задач ДО, в том числе девять модулей, не содержащихся в первой версии ДИСПРО. В данном параграфе указываются области приложения этих модулей, дается краткое описание математических моделей и методов решения. Основное внимание уделяется модулям, не включенным в первую версию пакета. Детальное описание задач и соответствующих модулей, имеющихся в первой версии дано в § 1 настоящей главы (их заголовки помечены звездочкой) и в [97, 116]. Описание модулей дается по областям их приложений в соответствии с приведенной выше классификацией, хотя эти области не всегда определяются однозначно (в последнем случае выбирается область с наиболее важными приложениями).
Для решения задач размещения производства и проектирования систем коммуникаций предназначены модули 1—5 из приведенного ниже их описания. Модули 6—8 предназначены для решения задач теории расписаний. Модули 9—12 могут использоваться при проектировании радиоэлектронных и других устройств и схем. Для решения задачи обходчика и ряда других может быть использован модуль 13. Наконец, модули И—17 применяются для решения задач покрытия, разбиения и распределения ресурсов, которые имеют многочисленные приложения в различных областях.
. Одноэтапная задача размещения без ограничений на мощности производства.
. Двухэтапная задача размещения без ограничений на мощности производства.
Задача размещения и унификации. Задачи этого вида возникают при выборе типов технических средств для выполнения заданных объемов работ в регионе и местах размещения с минимумом суммарных приведенных затрат на выпуск, размещение, техническое обслуживание технических средств и выполнение работ. Включенный в пакет модуль предназначен для решения следующей задачи: найти
т прпр
min 1 У V cljkxljk + £ №й + S ^Y^i^\ /= 1 £ = 1/=1/z=l
при ограничениях n p ^j ^j Pijk^ijk := E^ Z = I, • • • , /=1 A>=1
1 Xijk == ^ ь j - 1 » . . . , /Д,
1 = 1 Ai=l
X S ^^ци = Yk, к = 1, ..., p, 1=1 /=1
Xi/b ^ 0, z = 1, . .., m, j = 1, .. ., n, к I, ..., p.
Здесь Bt— заданные объемы работ, i = 1, ..., m; X/— неизвестное число технических средств типа /, j = 1, ..., п; Yk— приведенное к условным единицам неизвестное суммарное количество технических средств, размещенных в пункте к, к = 1, ..., р; )j(Xj) — функция затрат на проектирование, выпуск и эксплуатацию Xf единиц технических средств типа /, j = 1, ..., /г; фА (KJ — функция затрат на размещение и обслуживание условных единиц в месте возможного размещения к, к = \, ..., р. Предполагается, что все //(X,-) :i ф^ ^Y^ из того же класса, что и функции затрат на размещение в задачах I и 2; ^, рць — удельные затраты, производительность при выполнении работы I средством /, размещенным в пункте к, для всех наборов (z, /, к); Xj — коэффициент приведения для средства /, / = 1, ..., n; Xtjk — неизвестное количество технических средств типа /, размещаемых в пункте к и предназначенных для выполнения работы I для всех наборов (z, /, к).
Решение этой задачи осуществляется методом ветвей и границ, который обладает всеми особенностями и качествами методов решения задач 1 и 2 и построен на аналогичных принципах 11581. Результаты экспериментального исследования эффективности модуля приведены в [Д691.
Задача Штейнера на графе. Она возникает при проектировании систем коммуникаций различных типов (электрических, газовых, транспортных сетей), когда затраты на создание коммуникации не зависят от мощности потока, проходящего по ней. Формальная постановка задачи заключается в следующем. Задан ориентированный взвешенный граф G (К, Е), каждой дуге (z, /) £ Е которого поставлен в соответствие ее вес с^ > 0 (в общем случае с^ =^= ^), а все вершины V разбиты на три класса: вершина-источник (в дальней-
шем обозначается индексом 0), множество основных вершин ^ и дополнительных — И2. Требуется определить подграф — дерево Штейнера минимального веса Г (V, £), где 0 £ 1/, ^сУ, а по дугам (/, /) £ Е существует ориентированный путь из источника 0 в каждую основную ^ершину i £ Vv Таким образом, вершины из У2 входят в Т (1/, Е) только, если это необходимо уменьшает суммарный вес оптимального решения.
В случае, когда V2 = 0, задача Штейнера превращается в задачу об оптимальном ветвлении [ДЗЗ], для решения которой известен алгоритм полиномиальной трудоемкости. В общем случае задача относится к классу ^-трудных задач [35]. В пакете реализован метод ветвей и границ с односторонним ветвлением для точного или приближенного решения с заданной погрешностью. Приведем краткое его описание. Обоснование метода имеется в [Д72].
Математическая модель задачи записывается в следующей форме: найти
min у ctjxtj(12.21)
при ограничениях
V х,/>1,1, ...,К,(12.22)
(^е/)С^
^/>0, (I, j^E,(12.23)
Xo-OVL ^ h^E.(12.24)
Здесь Rk — ориентированный разрез, отделяющий источник 0 от множества вершин Хк, где Хк содержит хотя бы одну вершину из Vx. Разрез, как обычно, определяется разбиением множества V на две непустые части X и X, 0 £ X, X J X = V, состоит из тех и только тех дуг (/, /), для которых i С X. j ^ X, К — число таких разрезов.
Нижняя оценка функционала ф определяется путем приближенного решения двойственной к релаксированной задаче ЛП (12.21) — (12.23). Для решения используется специфический метод, который при условии V2 = 0 превращается в точный метод вычисления фу нк- ционала задачи (12.21) — (12.24). Алгоритм построения верхней оценки строит некоторое дерево Т, удовлетворяющее требованиям задачи, суммарный вес дуг которого равен F. Если F = ф, то Т — дерево Штейнера, оптимальное решение задачи (12.21) — (12.24). В противном случае в Т найдется вершина i 6 V2, которая определяет разбиение исходной задачи на две подзадачи в схеме ветвей и границ. Первая определяется условием: вершина I принадлежит дереву Штейнера, иными словами, в этой подзадаче i переводится из У2 в ^, вторая — противоположным условием, в этом случае вершина t вместе с инцидентными ей дугами исключается из G (7, Е).
Алгоритм, использующий описанный способ построения оценок и разбиения на подзадачи, реализующий одностороннюю схему 28 7—1903433
ветвления и позволяющий строить точное и приближенное с заданной погрешностью решение, включен в состав модулей пакета.
Минимаксная задача оптимального проектирования. Такая задача возникает, например, в современных сетях связи; формулируется в терминах частично целочисленного программирования
min (max qkyklV а^Х; ^db i £ M = {1, ..., m^, ^&(12.25)
2 Xj + Уь = bk, k£R = {1, ..., /j, yk>0, h^R,xz>0, x?— целое, ^^^ = {l, .n^.
Здесь Nk c: N для k £R, Ns П Nt = 0 для s V= t, s, t £ R, элементы векторов q = (qu ..., qr) и 6 = (6X, ..., br) соответственно положительные и неотрицательные вещественные числа. Для прибли
женного решения задач такого вида в пакете реализован декомпозиционный алгоритм [118], эффективность которого исследовалась на тестовых задачах, генерируемых с помощью датчика псевдослучайных чисел. Результаты вычислений приведены в табл. 37, где / обозначает время (в мин) решения задачи вида (12.25) размера (т + г) х (и + г). Анализ результатов машинного эксперимента свидетельствует о том, что указанный алгоритм хорошо зарекомендовал себя при решении тестовых задач большой размерности.
. Задача теории расписаний с ациклической сетью операций.
. Сетевая задача распределения ресурсов с независимыми цепями операций.
. Задача пространственно-временного распределения машин по работам.
Задача Штейнера на плоскости с прямоугольной метрикой. Эта задача является частным случаем задачи 4 для специальных графов. Она имеет приложения при проектировании схем соединений элементов монтажных плат и формулируется следующим образом. На плоскости с прямоугольной метрикой (расстояние между точками
Таблица 37
т
и
»
Тип ЭВМ
100
100
50
5
ЕС-1040
200
100
50
0,81
ЕС-1060
400
100
50
6,7
ЕС-1040
400
200
100
15
ЕС-1060
1000
20
10
0,08
»
1000
40
20
0,4
»
1000
80
40
2,81
ЕС-1040
1000
100
50
2
ЕС-1060
50
1000
50
8,43
ЕС-1040
50
1000
50
3,08
ЕС-1060
50
2000
50
20
ЕС-1040
100
1000
100
20
»
с координатами (хх, у^ и (х2, Уг) вычисляются по формуле г ((хх, y^s (Х2, t/2)) = | ^ — Х2 | + | уг — у2 |) задано положение п точек. Требуется построить дерево минимальной длины, соединяющие любую пару этих точек. Граф, соответствующий данной задаче, определяется следующим образом. Через каждую заданную точку проводятся прямые, параллельные осям координат. Из полученной решетки выделяется только та часть, которая находится внутри минимальной выпуклой оболочки заданных п точек, которые считаются основными
л
Л/
д
0,
р
R
о2
t I
20
13
3
4,6
32
2,3
4,04
30
4
3
4,1
15,2
1,5
1
2,5
9,97
40
2
3
3,8
9
2,83
12,74
50
2
3
5,1
15,6
1
3,15
51,6
100
1
3
8,5
1
0
8,5
120
вершинами графа. Точки, лежащие на пересечении двух прямых и не являющиеся основными, считаются вспомогательными вершинами, а полученная часть решетки, расположенная внутри и на границе выпуклой оболочки, индуцирует естественным образом множество дуг симметричного ориентированного графа с весами дуг, равными их длинам в данной метрике. В [Д28] отмечено, что алгоритмы, решающие эту задачу за приемлемое время для п ^ 10, не известны. В пакет включен модуль решения данной задачи методом, описанным для задачи 4 с учетом специфических особенностей графа. В табл. 38 приводятся некоторые усредненные данные по решению случайно сгенерированных задач данного класса. В ней п — число соединяемых точек, N — число задач, решенных с заданным п, 6 — требуемая точность по функционалу (в %), 6Х— точность, достигнутая после получения первой нижней и верхней оценок в методе ветвей и границ, 62 — достигнутая точность, Р — число шагов в методе ветвей и границ, R — число улучшений рекорда, / — время счета на ЕС-1040 (в мин). Неусредненные данные приведены в [Д691.
Задача разрезания графа без ограничений. Задан неориентированный взвешенный граф G (У, /?) с множеством вершин V и ребер R, | V | = п. Вес cq ребра (f, /) g R может принимать как положительное, так и отрицательное значение, либо быть равным — оо. Отсутствующие в R ребра интерпретируются как ребра нулевого веса. Требуется найти разбиение множества V па неизвестное число р ^ 1 подмножеств Уъ ..., Vp так, чтобы максимизировать суммарный вес внутренних связей
ЦС, р) = £ S ем.
6=1 ti.ny«Vk)
Здесь R (Vk) — множество ребер, инцидентных вершинам из 14, к = 1, ..., р.
Указанная модель широко применяется при решении задач классификации по матрице попарных связей. Решение задачи осуществляется алгоритмом типа ветвей и границ, реализующим схему последовательного объединения и разбиения подмножеств.
Небольшой вычислительный эксперимент был проведен на ЭВМ ЕС-1022. Исходные данные для просчитанных задач являются реальными корреляционными матрицами в задачах классификации с заданным порогом существенности. Примеры с одинаковым значением раз-
Таблица 39 личаются лишь величинами по-
п
N
д
18
3
0
0,68
24
3
3
1,09
26
3
3
1,17
33
4
5
1,30
постановке все см ^ 0. Кромепостановке все см ^ 0. Кромерога. Обозначения в табл. 39, где приведены данные расчетов, совпадают с аналогичными для задачи 8 (табл. 38).
постановке все см ^ 0. Кроме
постановке все см ^ 0. Кроме
Задача группировки точек по матрице расстояний. Как и в предыдущей задаче, задан граф G (У, 7?), | V | = п, с весами ребер Сц. В данной |, задана функция F (р) и число
Ртах такие, что F (р) — неубывающая функция от числа р под
множеств в разбиении, равная бесконечности при р > /7тах. Требуется построить разбиение (Уь ..., Кр) при условии р ^ ртах, р
минимизирующее ^5 сч + ^ кр\ Подобные задачи возникают при
к=\ UJXR^V^
компоновке печатных плат, сегментации программ, закреплении абонентов за вычислительными центрами, а также при обработке и классификации статистических данных [38]. Для их решения в пакете реализован метод ветвей и границ со специальной схемой построения нижней и верхней оценок функционала.
Проведено экспериментальное исследование временных характеристик программы на случайных примерах. Расчеты проводились на ЭВМ ЕС-1022, время счета, с, приведено в табл. 40.
Квадратичная задача о назначении. Задача имеет многочисленные приложения при проектировании схем, размещении оборудования в цехах и т. д.; формулируется следующим образом. Задано две (т х п)-матрицы А = (дц) и R = (п/) потоков и расстояний между п точками. Требуется найти перестановку ф* = (ф* (1), ... ..., ф* (я)), на которой достигается
п пminS SClijr^i )ф(/).t=l /=!
Иными словами, на заданных п точках необходимо разместить п взаимосвязанных между собой единиц так, чтобы суммарная работа по перемещению потоков (информации, материала и т. п.) была минимальной. Для решения задачи в пакет включен модуль точного и приближенного решения, который скомпонован из трех алгоритмов
Таблица 40
^тах
п
16
20
24
28
32
4
4
5,5
9
29
51
6
6
6,4
23
60 -
86
8
9,3
17,4
127
352
733
(ветвей и границ и двух эвристических), опубликованных в [Д80]. Метод ветвей и границ позволяет решать задачи сравнительно малой размерности (п ^ 12). Эвристический метод увеличения степени свободы имеет сравнительно невысокую трудоемкость и строит удовлетворительное решение при больших значениях п (п > 40).
Второй эвристический метод — метод отсечения и обмена — решает квадратичную задачу о назначениях в эквивалентной линейной целочисленной постановке. В этой постановке число ограничений растет как О (л2), а число переменных увеличивается вдвое. Это приводит к увеличению требуемой памяти для решения задачи. Применяемый метод основан на идеях метода декомпозиции Вендерса, но реализует их в виде специальной эвристики, строящей линейную задачу о назначениях на основе генерируемых отсечений Вендерса. Его целесообразно применять для решения задач средней размерности (12 < п < 40).
. Задача оптимального распределения ограниченных ресурсов.
Задача о минимальном покрытии. Формулируется в виде: найти
min 2 cixj
при ограничениях
У ^рс^ L t = 1, ..., т, X/ -= 0 V 1, / = 1, ..., п, /=1
где все aij=^\J 1, с^ 0. Эта модель возникает при решении задач оптимального размещения объектов, составления расписаний, минимизации логических схем и алгоритмов, при анализе и синтезе живучести транспортных сетей и т. д. Для решения задачи реализован метод неявного перебора с учетом специфики задачи.
15*. Задача о кратчайшем покрытии.
16*. Задача об оптимальном разбиении. Формулируется в виде: пп
найти шах У с^ при ограничениях У а^Х; = 1, i = 1, .. ., т» х^ = /=1/=1
= 0 V 1, / = 1, ..., л, где все а</ = 0 V 1, q— произвольные заданные числа.
17. Задача о минимальном паросочетании. Данная модель является частным случаем задачи 16 при дополнительном условии: матрица коэффициентов А = (а//) является матрицей инциденций вершины-ребра полного неориентированного взвешенного графа с четным числом вершин. В терминах графов задача состоит в отыскании множества ребер минимального веса такого, что каждая вершина инцидентна в точности одному ребру. Задача о паросочетании является основной оптимизационной частью задачи об обходчике, возникающей при оптимизации работы графопостроителей и в других ситуациях. Она является единственной задачей, включенной в ПП ДИСПРО-3, для которой время вычислений растет полиномиально от длины входа. В пакет входит модуль, реализующий метод кратчай-
Рис. 14
шего увеличивающего пути [Д80]. Описание схемы этого метода приведено в [Д80].
II. Системное обеспечение пакета. Системное обеспечение ПП ДИСПРО-3 является дальнейшим развитием соответствующего обеспечения известных пакетов ДИСПРО [97] и ПЛАНЕР [98]. Основными языковыми, программными и информационными средствами пакета являются (см. рис. 14): входной непроцедурный язык, программное обеспечение, включающее в себя управляющую программу, набор прикладных программ, сервисные программы и управляющие таблицы.
Входной язык является средством, с помощью которого составляется задание пакету. Он состоит из операторов и предназначен для описания решаемых оптимизационных задач, их исходных данных, параметров и результатов счета, а также для управления процессом решения в пакетном и диалоговом режимах. По функциональному назначению операторы языка можно разделить на две группы: 1) организации вычислительного процесса; 2) описания и обслуживания данных. К первой группе относятся операторы: НАЧАЛО, КОНЕЦ, ПЕРЕЙТИ, РЕШИТЬ, ОПРЕДЕЛИТЬ. Вторая группа включает в себя операторы: ДАННЫЕ, ЗАПИСАТЬ, СОХРАНИТЬ, МОДИФИЦИРОВАТЬ, ИЗМЕНИТЬ, УДАЛИТЬ, ВЫДАТЬ, ПЕЧАТЬ.
Операторы организации вычислительного процесса описывают начало и конец задания или шага, решаемые задачи, переход на следующие шаги задания при его выполнении
К операторам описания и обслуживания данных относятся операторы ввода исходных данных с перфокарт или магнитного диска, корректировки наборов данных (удаление, замена и добавление записей в наборах данных), записи данных в библиотеку на магнитном диске, вывода на печать данных и результатов решения, а также
записи результатов решения в библиотеку на магнитном диске с целью дальнейшего их использования.
Задание пакету, составленное из описанных операторов, может включать один или несколько шагов. В шаге задания может быть описана одна или несколько задач, т. е. он может содержать один или несколько операторов РЕШИТЬ или ОПРЕДЕЛИТЬ. Но шаг задания может и не содержать операторы РЕШИТЬ и ОПРЕДЕЛИТЬ, а состоять лишь из операторов описания и обслуживания данных. Описание исходных данных, необходимых для выполнения шага, может быть опущено в данном шаге, если они были описаны в предыдущих шагах. Деление задания на шаги позволяет пользователю управлять вычислительным процессом при работе с пакетом.
Программное обеспечение пакета ДИСПРО-3 имеет модульную структуру и выполняет следующие основные функции:
взаимодействие с ОС ЕС;
управление работой пакета в режимах диалога и пакетной обработки;
ввод заданий пакету с различных устройств (устройства ввода с перфокарт, терминалов ЕС-7066 или ЕС-7927-01, пишущей машинки, с НМД ЕС-5050 или ЕС-5061, с НМЛ ЕС-5010);
взаимодействие с пользователем на различных этапах работы (ввод задания пакету, вывод сообщений и запросов пользователю, прием ответов при трансляции и выполнении заданий в режиме диалога);
трансляция операторов входного языка;
ввод, контроль, преобразование, корректировка, хранение и вывод исходных данных;
организация автоматического выбора, выполнения и анализа завершения прикладных программ для решения задач в соответствии с заданной моделью предметной области;
выполнение шагов задания и всего задания;
перехват методов доступа при выводе информации на АЦПУ из разноязыковых программ;
создание контрольных точек и отсроченный рестарт пакета с этих точек;
хранение и вывод результатов на различные устройства вывода (АЦПУ, НМД, НМЛ, терминал);
распределение машинных ресурсов (оперативной памяти, устройств ввода-вывода).
В состав программного обеспечения ПП ДИСПРО-3 входят: управляющая программа (монитор), набор прикладных программ, управляющие таблицы, сервисные программы Монитор имеет иерархическую модульную структуру, что обеспечивает возможность модификации и дальнейшего развития функциональных и системных возможностей пакета. Он состоит из резидента (ядра), транслятора входного языка (анализатора), интерпретатора пошагового выполнения заданий (исполнителя), подсистемы управления данными. Резидент монитора включает в себя область связи, программные секции обмена с внешними устройствами, обработки программных прерываний и
перехвата методов доступа, а также некоторые управляющие таблицы.
Анализатор состоит из управляющей программы, модулей обработки операторов входного языка, обработки, преобразования и корректировки данных. Исполнитель содержит' управляющую программу и программы, реализующие операторы входного языка пакета.
Сервисные программы обеспечивают ведение диалога, создание контрольных точек и рестарта, а также обслуживание исходных данных, расположенных на файлах пользователя Программное обеспечение ведения диалога включает в себя средства управления вводом- выводом на терминал, корректировки, перекодировки и формирования информации обмена пользователя с пакетом и специальные таблицы, содержащие сообщения пользователю, шаблоны вывода числовой информации на терминал, допустимые ответы пользователя. Средства создания контрольных точек и рестарта состоят из программ создания контрольных точек на внешних носителях информации (НМЛ или НМД) и рестарта пакета, а также программ обработки информации об этих точках и выдачи ее пользователю на АЦПУ и консоль оператора. Программное обеспечение обслуживания данных, расположенных на файлах пользователя, включает в себя программы, реализующие корректировку (замену, вставку, удаление) и просмотр данных посредством терминального устройства ЕС-7066 или ЕС-7927-01.
Управляющие таблицы предназначены для организации работы пакета и содержат информацию о компонентах пакета, их взаимосвязях и о предметной области пакета. Они делятся на внутренние и внешние. Внутренние таблицы генерируются монитором во время работы пакета и используются при выполнении заданий. К ним относятся таблицы, описывающие исходные данные и таблицы, содержащие информацию о шагах задания, операторах каждого шага и их параметрах. Внешние таблицы содержат информацию о видах данных, об операторах входного языка, программах пакета и их параметрах, вычислительных схемах алгоритмов решения задач.
Среди них следующие таблицы:
операторов входного языка; содержит сокращенные названия операторов и их приоритеты;
видов исходных данных; содержит описание данных;
семантического контроля исходных данных; указаны виды данных и имена программ контроля с их формальными параметрами;
задач; содержит шифры задач, решаемых пакетом, и списки имен прикладных программ для их решения;
паспортов прикладных программ и программ выдачи результатов по определенным формам; содержит имена программ и описания их формальных параметров;
форм выдачи результатов решения задач; включает шифры задач, номера форм выдачи результатов и имена программ преобразования выходных массивов прикладных программ в заданные формы выдачи;
Рис. 15
соответствия методов модели; состоит из характеристик модели и соответствующих ей методов;
соответствия исходных данных модели; содержит описания видов исходных данных и соответствующих им моделей;
определения параметров метода; включает информацию о про* граммах, реализующих метод, и видах дополнительных данных для этих программ;
выбора подходящих методов; в ней описаны критерии выбора методов по заданным параметрам;
характеристик; содержит имена управляющих таблиц и их длины (в байтах).
Названные таблицы доступны пользователю для их обновления, пополнения, что обеспечивает возможность подключения новых прикладных программ, расширения функций монитора, а также возможностей входного языка.
Программы монитора, прикладные и сервисные программы размещены в загрузочном виде в библиотеке программ пакета. Исходные данные многократного использования, управляющие таблицы, сохраненные результаты счета находятся в постоянной библиотеке исходных данных. Исходные данные для задач, решаемых с использованием внешней памяти, могут храниться в виде файлов пользователя на томах прямого доступа. И, наконец, данные, необходимые на время выполнения задания, размещаются во временной библиотеке.
Схема функционирования пакета приведена на рис. 15. Кратко ее суть состоит в следующем. С помощью задания ОС ЕС ЭВМ инициируется работа резидента монитора, который загружается в оперативную память и постоянно находится там при работе пакета. Получив
управление, резидент определяет режим работы пакета, инициирует работу устройства ввода задания пакету, загружает в оперативную память управляющие таблицы из библиотеки исходных данных, заносит адреса этих таблиц в область связи, инициирует программы перехвата методов доступа и средства обработки программных прерываний, открывает требуемые наборы данных. Затем резидент монитора инициирует управляющую программу транслятора входного языка и передает ей управление. Эта программа организует ввод очередного оператора входного языка в задании пакету. По имени оператора управляющая программа определяет соответствующую программу обработки, загружает ее в оперативную память и передает ей управление. Получившая управление программа производит синтаксический контроль параметров соответствующего оператора и их преобразование во внутреннее представление, генерацию управляющих таблиц, а при необходимости контроль и преобразование исходных данных и их запись во временную библиотеку.
В пакетном режиме работы ввод и трансляция операторов задания выполняются до обнаружения конца задания. При диалоговом режиме осуществляется пошаговая трансляция операторов задания: управление передается интерпретатору пошагового выполнения заданий после трансляции каждого шага. По окончании работы транслятора управление возвращается резиденту монитора, который инициирует управляющую программу исполнителя. Последняя организует пошаговое выполнение задания пакету. Она формирует очередь операторов для каждого выполнимого шага задания и инициирует соответствующие модули.
В пакетном режиме работа исполнителя заканчивается после завершения всех шагов задания. Невыполнимые или аварийно закончившиеся шаги обходятся, а управление передается на следующий шаг или на шаг, номер которого указан в операторе ПЕРЕЙТИ. При диалоговом режиме работа исполнителя заканчивается после осуществления шага задания, а управление возвращается резиденту монитора, который инициирует трансляцию и выполнение следующего шага по требованию пользователя.
В режиме диалога пользователю предоставляется возможность активно влиять на работу пакета при вводе, трансляции и выполнении заданий, а также в процессе решения оптимизационных задач. В ответ на запросы монитора пользователь может повторить ввод операторов с терминала (исправляя при этом допущенные ошибки), ввод исходных данных, всего задания или его шагов; во время выполнения заданий и решения задач он может оперативно с терминала задавать и изменять исходные данные, выводить результаты решения на терминал, вводить требуемые ответы на запросы управляющих и прикладных программ пакета. В качестве терминала пользователю предоставляется одно из устройств: пишущая машинка, ЕС-7066 или ЕС-7927-01.
В пакете имеются средства создания контрольных точек и отсроченного рестарта (повторного запуска пакета). Контрольные гочки дают возможность запоминать информацию о пакете в среде ОС (объем
занимаемой оперативной памяти, управляющие таблицы ОС, снимок оперативной памяти, занимаемой пакетом и др.) в фиксированные моменты его работы и совершать рестарт, что позволяет в определенной степени защитить пакет от сбоев ОС, в среде которой он функционирует.
В процессе функционирования пакета могут возникнуть: постоянная или случайная машинная ошибка, нехватка выделенного машинного времени для решения задачи, ошибка, вызванная неправильными действиями оператора или параллельно выполняющимся заданием, и т. д. Следствием этого могут быть: аварийное окончание работы пакета, системный сбой, неправильные результаты, завершение работы пакета по истечении выделенного времени. Во избежание повторного запуска пакета с самого начала пользователю предоставляется возможность продолжать работу пакета с некоторой промежуточной точки, предшествующей одной из перечисленных ситуаций. Более того, можно указать, будет ли рестарт происходить автоматически в момент сбоя пакета или его следует отсрочить до определенного времени.
Автоматический рестарт предусмотрен лишь в тех случаях, когда код завершения работы пакета при аварийном прерывании соответствует одному из допустимых кодов завершения, определенных во время генерации ОС, и, кроме того, он должен быть подтвержден оператором ЭВМ. Происходит рестарт из последней контрольной точки, созданной до момента аварийного окончания работы пакета.
При повторном предъявлении задания на запуск пакета пользователю предоставляется возможность отсроченного рестарта, который может быть осуществлен с любой указанной им созданной контрольной точки.
Наборы данных контрольных точек могут храниться на магнитном диске или магнитной ленте. Каждой контрольной точке присваивается уникальное имя, включающее в себя дату и время ее создания. Информация о создании контрольных точек и рестарте выдается на консоль оператора и дублируется на АЦПУ.
При выводе информации о работе пакета на АЦПУ пользователю предоставляется возможность как прямого, так и системного выводов. Использование системного вывода реализовано в пакете с помощью специального программного обеспечения, в основу которого положены средства перехвата системных операций ввода-вывода. Это программное обеспечение позволяет выводить на АЦПУ информацию из модулей, написанных на различных входных языка, например, Ассемблер, ФОРТ РАН-IV и ПЛ/1.
Некоторые прикладные модули, входящие в состав функционального наполнения пакета программ ДИСПРО-3, предполагают при решении задач большой размерности использование внешней памяти прямого доступа для хранения массивов числовой информации, непосредственно описывающих задачу. Необходимо, чтобы в таких случаях исходные данные представлялись пользователем в виде файлов последовательного доступа, которые должны быть предварительно созданы и определенным образом описаны при составлении задания ОС на решение соответствующей задачи с помощью ПП.
Программа обработки данных помещает исходные данные в файл с прямой организацией, где производится синтаксический контроль. При этом пользователю предоставляется возможность в режиме диалога корректировать данные, включая и добавление записей в файл.
Синтаксический контроль исходной информации производится по записям файла, при этом определяются недопустимые символы, имеющие место в исходной информации, производится их локализация, а затем выдача соответствующего диагностического сообщения и непосредственно локализованной ошибки на АЦПУ. В режиме диалога диагностическое сообщение и локализованная ошибка выдаются на экран дисплея с уже отмеченными недопустимыми символами для оперативного исправления ошибок в процессе обработки информации.
Производя синтаксический контроль входных данных и осуществляя их преобразование из символьного вида в машинное представление, пакет программ формирует некоторую дополнительную информацию о входных данных, которая необходима для работы прикладных модулей, входящих в его состав. В частности, определяется общее количество чисел во входных массивах, количество ненулевых элементов и их позиции и т. д. На основе дополнительной информации программа обработки данных формирует рабочий файл для работы прикладного модуля.
В заключение отметим еще одну особенность ПП ДИСПРО-3, состоящую в том, что в его функциональном наполнении, описанном выше, имеется целый ряд прикладных модулей, которые реализуют различные по своим идеям, но применимые для решения одного и того же класса задач, алгоритмы. Это связано, прежде всего, с тем что, как показывает накопленный опыт решения прикладных задач, во многих случаях не представляется возможным заранее указать алгоритм, наиболее эффективный при решении той или иной конкретной задачи дискретного программирования. Иными словами, предметная область пакета ДИСПРО-3 состоит из некоторого множества модулей \М£Ц = 1, ..., п^ описывающих определенные классы задач дискретного программирования. Для решения задач, описываемых с помощью некоторой модели М£, в программное обеспечение пакета включено некоторое множество прикладных модулей, реализующих множество Р£ алгоритмов решения задач этого класса. Возникающая при этом проблема выбора алгоритма для решения конкретной задачи может быть решена самим пользователем при составлении задания пакету на входном языке. На тот случай, когда решение этой проблемы вызывает у пользователя определенные затруднения, в ПП ДИСПРО-3 предусмотрен так называемый автоматический выбор метода, при котором для задачи, описываемой моделью Мк, из множества Рк выбирается алгоритм ее решения и строится последовательность прикладных модулей, выполнение которых приводит к нахождению точного или приближенного решения задачи. Выбор алгоритма и построение соответствующей последовательности модулей производится с помощью программных средств системной части пакета на основании результатов проведенного разработчиками вычислительного эксперимента и имеющегося опыта
решения практических задач, а также с учетом дополнительных требований, предъявляемых пользователем к процессу поиска решения задачи. К таким требованиям можно отнести, например, точность получаемого решения, время решения задачи, ограничения на оперативную память ЭВМ. В следующих версиях пакета при автоматическом выборе алгоритма предполагается использование ряда новых критериев, часть из которых описана в предыдущей главе.
ПАКЕТ ПРОГРАММ ВЕКТОР-2
Основное внимание при разработке ПП ВЕКТОР-2 уделялось реализации системного подхода к оптимизации, что потребовало разработки развитого алгоритмического и программного обеспечения, реализации гибкого диалогового режима, высокой степени автоматизации планирования вычислительного процесса. Дальнейшее развитие по сравнению с другими ПП семейства ВЕКТОР получили методология создания унифицированного МО пакета и вопросы его модификации.
Как уже отмечалось, ПП ВЕКТОР-2 ориентирован на решение дискретных оптимизационных задач. Разработанное функциональное наполнение пакета позволяет решать ряд задач оптимизации комбинаторного типа, в частности задачи проектирования ЭВМ и другой радиоэлектронной аппаратуры. Математические модели этих задач и алгоритмы их решения могут также применяться при проектировании сложных технических систем различного назначения, размещении производства, в экономике, планировании.
При разработке ПП, предназначенных для решения задач оптимального проектирования, следует учитывать ряд особенностей, основные из которых следующие.
При проектировании одного изделия возникают разнообразные типы оптимизационных задач. Математические модели этих задач, с одной стороны, обладают довольно большой степенью общности, поэтому могут использоваться в различных сферах приложений математических методов оптимизации; с другой стороны, учет их специфики позволяет разрабатывать эффективные алгоритмы решения. Поэтому необходимо создавать такие ПП, которые могли бы использоваться как в рамках САПР, так и в автономном режиме.
В МО разрабатываемых ПП целесообразно иметь несколько алгоритмов, предназначенных для решения одной и той же задачи или класса задач, которые характеризуются различной эффективностью в зависимости от значения параметров задачи (размерности, требуемого внешнего оборудования, различных видов используемой памяти и др.). Возникающие оптимизационные задачи, как правило, принадлежат к числу «трудных» задач, т. е. таких, для которых нахождение их точного решения является проблематичным.
У потенциальных пользователей пакета имеется богатый профессиональный опыт решения реальных задач проектирования, который невозможно в полном объеме описать в виде формализованных
процедур, пригодных для использования при постановке и решении задач оптимизации в рамках разрабатываемых ПП.
Эти и другие факторы объясняют необходимость осуществления системной оптимизации — с учетом этого подхода и проектировалось МО ПП ВЕКТОР-2 [33]. Так, схема организации ВП при решении определенного класса задач проектирования может быть представлена так. Содержательный класс проблем проектирования отображается в совокупность оптимизационных математических моделей, которая определяет множество допустимых альтернатив G и множество целевых функций (критериев оптимизации) /х, ..., /д, где f{ =f{ (pi, х), x^G, ар1 — вектор параметров целевой функции, имеющих содержательные аналоги (вес, объем, плотность и т. д.). Кроме того, возникающие при проектировании ограничения задаются при помощи функций g, (р^^ х) (pw — векторы параметров этих функций, / = 1, ..., т), множество которых обозначим ^.
При решении конкретной прикладной задачи проектирования возникает проблема построения математической модели, которая была бы наиболее адекватна исходной задаче. Математическая модель некоторой оптимизационной задачи г задается выбором одного из критериев оптимизации из числа реализованных в пакете и системой ограничительных условий: г = Ць е), где /^ — выбранная целевая функция, £ ^ $ (не исключен случай е = 0), т. е такой записи соответствует задача: найти х* £ G, для которого достигается
min^(PS х)(12.26)
x^G
при наличии ограничений
g/G^+z, х^О, gj^', х^е,(12.27)
если е Ф 0.
Выбор целевой функции и значений ее параметров может осуществляться пользователем либо возлагаться на соответствующие блоки автоматизаци и па кета.
Как правило, задача (12.26) — (12.27) является частью общего процесса оптимального проектирования некоторого устройства цифровой аппаратуры, и есть лицо, принимающее решение (ЛПР),— специалист или группа специалистов, оценивающих результаты решения задачи (12.26), (12.27), или же некоторая формализованная процедура, имитирующая такую деятельность.
Для выработки решения ЛПР решает задачу: найти
minY^, х, г/)(12.28)
усу
при ограничениях
к\(р, х, у)^0,(12.29)
где р = (р1, .рк^"т>) — параметры математической модели; у ---
= У кр> х) — решение задачи; Y — множество всех альтернатив этой задачи, для которой задача (12.26), (12.27) является отдельным или предшествующим этапом. Например, при решении задач размещения при техническом проектировании ЭВМ в качестве оценочной
задачи может выступать задача оптимальной трассировки соединений.
На основании решения задачи (12.28), (12.29) происходит выработка рекомендаций по коррекции математической модели задачи (12.26), (12.27) с целью повышения степени адекватности конкретной проблеме оптимального проектирования. Такая коррекция может состоять: 1) в изменении значений тех параметров, которые допускают вариацию в заданных пределах; 2) в замене критерия оптимизации на другой из множества реализованных в пакете; 3) во введении или исключении ограничительных условий. Допускается также и комбинация указанных действий. Происходит процесс решения уточненной задачи вида (12.26), (12,27), и полученный вариант решения задачи снова оценивается ЛПР. Итерации решения задач вида (12.26), (12.27) или (12.28), (12.29) и уточнения математической модели продолжаются до тех пор, пока не будет найдено решенце, удовлетворяющее ЛПР. Естественно, что изменение математической модели решаемой задачи может повлечь за собой необходимость в уточнении параметров используемого алгоритма оптимизации или в изменении самого алгоритма.
Описанная схема организации ВП позволяет совмещать процесс анализа, построения и уточнения математической модели задачи проектирования с построением машинных алгоритмов решения. Наличие развитых диалоговых средств и соответствующей организации системной части ПП дает возможность начинать решение задачи проектирования с недоопределенной математической моделью, а также осуществлять последовательное применение различных алгоритмов оптимизации, имеющихся в МО ПП для решения данного класса задач, с целью построения эффективных комбинированных вычислительных схем. Следует подчеркнуть особо, что такие принципы организации ВП целесообразно применять не только при решении задач проектирования, но и во многих других областях приложения математических методов оптимизации.
С целью максимального учета сформулированных особенностей в ПП ВЕКТОР-2 осуществлена реализация системного подхода к решению задач проектирования, предусмотрены гибкие возможности использования режима диалога.
Для эффективного решения оптимизационных задач диалоговый режим должен позволять оперативно управлять тремя основными процессами, возникающими при функционировании ПП:
вводом задания на входном языке пакета;
адаптацией и контролем данных, планированием вычислительного процесса;
счетом по выбранному алгоритму (алгоритмам).
Оперативность здесь понимается в том плане, что соответствующие языковые и программные средства ПП должны позволять запускать соответствующие процессы, прерывать их, а также инициировать многократные переходы от одного процесса к другому.
Структурные особенности МО ПП ВЕКТОР-2 определяются ориентацией на системный подход к решению задач оптимизации. Важными
технологическими задачами, которые решались разработчиками, были вопросы обеспечения унификации и модернизации МО пакета. Поэтому дальнейшее развитие получили принцип модульности, реализованный ранее в пакетах этой серии, а также принцип мобильности, т. е. независимости от конкретных ЭВМ и их ОС.
Модульная структура МО определялась не только организацией программного обеспечения в виде программных модулей, но и путем реализации принципа децентрализации управления, т. е. выделения отдельных частей МО в виде довольно самостоятельных в программном и информационном плане структурных единиц. Такое расчленение осуществлено на основе минимизации внешних управлений и информационных потоков между отдельными частями МО, что позволяет повысить надежность и эффективность функционирования программного обеспечения пакета в целом, а также существенно упрощает его модернизацию.
Рассмотрим назначение основных блоков МО, общая структура которого приведена на рис. 16. МО пакета имеет иерархическую древовидную структуру. По своему назначению оно, естественно, разделяется на две части: системную и проблемную (функциональную). Главными блоками системной части являются главный монитор, монитор ввода и планировщик алгоритмов.
Работой пакета управляет главный монитор, который решает такие основные задачи:
осуществляет заказ требуемой оперативной памяти ЭВМ;
огранизует загрузку в оперативную память разделов МО пакета с перекрытием и обеспечивает взаимосвязь этих оверлейных разделов;
принимает решение о путях продолжения процесса решения задачи в зависимости от складывающейся ситуации;
организует работу службы времени пакета.
Монитор ввода управляет работой блоков, которые обеспечивают функционирование пакета на первом уровне диалога — на этапе ввода и анализа задания на ВЯ. Задание на ВЯ анализируется пошагово, а отработка операторов ВЯ, содержащихся в одном шаге, осуществляется в двух режимах: трансляции и интерпретации. В режиме трансляции обрабатывается большинство операторов, связанных с описанием математической модели решаемой задачи, алгоритмов решения, параметров вычислительного процесса и т. п. В то же время часть директив ВЯ, таких, например, как директивы ввода — вывода данных, коррекций числовых данных и самого МО пакета, выдачи справочной и обучающей информации, обрабатываются в режиме интерпретации.
Планировщик алгоритмов выбирает алгоритм для решения поставленной задачи, если он не указан явно пользователем, а также строит цепочку имен программных модулей, требуемых для реализации выбранного алгоритма. Основываясь на этой и другой системной информации, передаваемой главным монитором, блок построения машинного алгоритма оптимизации формирует загрузочный модуль, реализующий заданный алгоритм решения задачи с указанными целевой функцией и ограничительными условиями.
IIПланировщик алгоритмовПланировщик алгоритмовАдаптеры исходных данныхАдаптеры исходных данныхПроцедуры под дер - жания диалогаПроцедуры под дер - жания диалогаблок накопления опытаблок накопления опытаблок модификации МО пакетаблок модификации МО пакетаАнализатор операторовВЯАнализатор операторовВЯблок синтаксического контроляблок синтаксического контроляИнтерпретатор операторовВЯИнтерпретатор операторовВЯблок гостроения шпустимого шчального тиближенияблок гостроения шпустимого шчального тиближенияПодсистема управления базами данныхПодсистема управления базами данныхОграничение 2-го типаОграничение 2-го типаОграничение 1-го типаОграничение 1-го типаГТГТГласныйГласныймонитормониторМониторвводаМониторвводаНблок синтеза математической модели задачиНблок синтеза математической модели задачиИнформационносправочная и сервисная службаИнформационносправочная и сервисная службаблок семантического контроляблок семантического контроля( Оттай очный юнитор )( Оттай очный юнитор )Ограничениеп-го типаОграничениеп-го типа
I
I
Планировщик алгоритмов
Планировщик алгоритмов
Адаптеры исходных данных
Адаптеры исходных данных
Процедуры под дер - жания диалога
Процедуры под дер - жания диалога
блок накопления опыта
блок накопления опыта
блок модификации МО пакета
блок модификации МО пакета
Анализатор операторов
ВЯ
Анализатор операторов
ВЯ
блок синтаксического контроля
блок синтаксического контроля
Интерпретатор операторов
ВЯ
Интерпретатор операторов
ВЯ
блок гостроения шпустимого шчального тиближения
блок гостроения шпустимого шчального тиближения
Подсистема управления базами данных
Подсистема управления базами данных
Ограничение 2-го типа
Ограничение 2-го типа
Ограничение 1-го типа
Ограничение 1-го типа
ГТ
ГТ
Гласный
Гласный
монитор
монитор
Мониторввода
Мониторввода
Нблок синтеза математической модели задачи
Нблок синтеза математической модели задачи
Информационносправочная и сервисная служба
Информационносправочная и сервисная служба
блок семантического контроля
блок семантического контроля
( Оттай очный юнитор )
( Оттай очный юнитор )
Ограничениеп-го типа
Ограничениеп-го типа
Рис. 16
Основу проблемного обеспечения пакета составляют блоки адаптации и семантического контроля данных, а также программные модули, из которых создаются машинные алгоритмы решения оптимизационных задач. Главной задачей адаптеров является преобразование данных из внешнего формата во внутренний, а также формирование числовых значений данных, выбираемых «по умолчанию». Семантический контроль основан на том, что многие числовые значения данных по решаемой задаче находятся в известных соотношениях друг с другом и в определенных интервалах области допустимых значений. Как показывает опыт практической эксплуатации пакета ВЕКТОР-2 при решении различных задач автоматизации проектирования, процент семантических ошибок в данных довольно высокий, поэтому отсутствие указанного блока в пакете резко снижает достоверность получаемых результатов.
Важно отметить, что все указанные на рис. 16 блоки программного обеспечения пакета (о назначении этих блоков можно судить по их названиям) построены по единому принципу и сгруппированы в разделы, соответствующие классам решаемых задач.
Среди остальных блоков МО пакета выделим еще информационносправочную службу и диалоговый отладочный монитор, который предназначен для отладки разработчиками новых блоков, включаемых в пакет.
Требование обеспечить эффективную работу пакета и создать удобства для пользователей вызвало необходимость максимально автоматизировать процесс функционирования ПП ВЕКТОР-2. На рис. 17 приведена логическая схема работы пакета при решении
Начало шага
вводзадания
Адаптация и семантический контроль данных
Синтез математической модели
£
Вателю:Уточнитеалгоритм
Определена па \Я?® математическая модель/" .задачи?/
Коррекция математической модели
Алгоритм решения определен?
Да V
Допустим пи алгоритм^для данной модели? х
Н Да
Требуется ли \ да допустимое начальное у к приближение? /
Абтобыбср алгоритма
I
Построение допустимого начального приближения i
Да
Конец шага
Рис. 17
Счет no алгоритму
уПоступил ли запрос на(прерывание Вычислитель-л. кого процесса?
| Нет
Нет-
।——<" Решение найдено С
Итоговые Выдачи
Конец шага
Да
Требуется сеанс диалога?
Да. j** 'Прием сообщенийот пользователя
Нет
Оценкаполученного решения
Я? /Вычисления прекратит^ (СТОП)? , I Нет
Да
f Решение удовлетворяет^ исходным (содержатель- \HE5L
V ныл?) требованиям? /
Вносить ли изменения \ Да б ход Вычислительного /— процесса? /
Нет
Продолжить ^sjtem счет по алгоритму? /
конкретной задачи оптимизации. В ней отражены две особенности системной оптимизации, реализованной в пакете:
при решении задачи могут вводиться и исключаться ограничения, которые не однотипны в математическом аспекте (т. е. тип математической модели может меняться, например из линейной — в нелинейную);
непосредственно по ходу счета можно изменять стратегию поиска оптимума (в процессе решения задачи могут использоваться последовательно несколько алгоритмов оптимизации).
Входной язык ПП ВЕКТОР-2 позволяет: описывать математическую модель решаемой задачи, вводить и корректировать исходные данные; заказывать некоторые ресурсы ЭВМ; управлять вычислительным процессом в режиме диалога; выполнять ряд сервисных функций; обучать правилам работы с пакетом; пополнять МО ПП; осуществлять обмен данными с САПР. -
В Я пакета является непроцедурным языком операторного типа. Языковая совместимость различных моделей пакета достигается путем реализации в каждой из них выделенного ядра языка, т. е. некоторой совокупности операторов ВЯ и их параметров, которые воспринимаются всеми моделями. Реализация дополнительных возможностей новых моделей или же создание специализированных моделей пакета влечет дополнение ядра В Я новыми операторами, отражающими специфику данной модели.
В В Я отражена возможность использования ПП ВЕКТОР-2 в качестве составной части более крупных систем. Имеются операторы, предназначенные для ввода данных по задаче, которые подготовлены на внешних носителях информации другими программными средствами. Унификация сопряжения достигается тем, что данные готовятся в паспортизованном виде, а их логическая структура не зависит от специфики конкретной ЭВМ.
По внешней форме и выполняемым функциям операторы ВЯ делятся на управляющие карты (УПК), директивы, диалоговые реплики, отладочные операторы.
Основное назначение УПК — организация выполнения многошагового задания. Появление УПК в тексте задания означает прекращение процесса решения очередной задачи и начало решения следующей. В управляющей карте указывается имя класса решаемой задачи и могут заказываться такие ресурсы ЭВМ. как память и устройства ввода — вывода.
Директивы предназначены для описания условий процесса решения конкретных задач и выполнения ряда сервисных работ. Это наиболее многочисленная группа операторов ВЯ. Сюда относятся операторы для ввода и коррекции числовых данных, указания вида целевой функции, имени алгоритма, введения и отмены ограничений и т. п. Директивы — это те операторы, которые применяются для управления ходом ВП на этапе ввода и синтаксического контроля.
Диалоговые реплики — это операторы, которые употребляются пользователем на этапах семантического контроля, планирования ВП и счета по алгоритму. Их основное назначение — предоставить 29*
пользователю возможность оперативного управления ходом решения задачи, а также просмотра некоторых данных, характеризующих течение ВП. Следует отметить такие основные диалоговые реплики, как ПРОДОЛЖАТЬ — продолжать счет до следующего прерывания, СТОП — прекратить счет по задаче, записать на МД параметры, характеризующие текущее состояние вычислительного процесса, и перейти к выполнению следующего шага задания, ВНИМАНИЕ — подготовиться к вводу директив, корректирующих задание.
Отладочные операторы предназначены для использования в процессе системной отладки программного обеспечения пакета. При помощи операторов этой группы можно на любом этапе решения задачи прервать ВП, вывести на терминал или АЦПУ значение переменных, которые используются программными модулями пакета (включая системные и рабочие параметры), изменить эти значения и продолжить вычисление.
В качестве примеров рассмотрим некоторые основные типы задач, решаемые с помощью данного пакета программ.
Задачи размещения геометрически однотипных модулей радиоэлектронной аппаратуры на дискретном поле позиций. Содержательно в этих задачах рассматривается типичная для современных устройств цифровой аппаратуры конструкция: имеется прямоугольник, внутри которого находится множество фиксированных (дискретных) позиций для установки модулей цифровой аппаратуры, а вдоль одной или нескольких его сторон — линия внешних контактов конструкции. Позиции представляют собой одинаковые прямоугольники (или отрезки — вырожденный случай), центры которых находятся в узлах ортогональной сетки, а контакты позиции располагаются вдоль двух противоположных ее сторон, причем расстояния между соседними контактами, расположенными на одной стороне, одинаковы. Предполагается, что все устанавливаемые модули имеют одинаковые размеры, т. е. каждый модуль может помещаться в любую позицию.
Обозначим М — множество размещаемых модулей, пронумерованных в определенном порядке, т. е. М = ^т^ т^ .... тп\, к — число контактов одного модуля (позиции). Не ограничивая общности, будем предполагать, что число позиций равно числу модулей, ибо в противном случае можем дополнить множество М фиктивными модулями так, чтобы выполнялось указанное равенство. Итак, полагаем, что п — это и число позиций. Назовем электрической цепью множество контактов схемы проектируемого устройства, которые в любой момент времени являются точками с равным электрическим потенциалом. Если среди этих контактов в некоторой электрической цепи присутствует и внешний контакт конструкции, то такую цепь назовем внешней, в противном случае — внутренней.
Содержательно в общем виде задачу размещения модулей можно сформулировать так: пусть задана схема устройства, которая описывает связи между контактами размещаемых модулей и внешними контактами конструкции в виде внутренних и внешних цепей. Требуется найти такое размещение заданных модулей в указанных позициях,
которое оптимизировало бы выбранный критерий (целевую функцию задачи) и удовлетворяло бы ограничениям задачи.
В качестве критерия оптимизации в ПП ВЕКТОР-2 могут выступать:
суммарная длина минимальных деревьев-остовов, связывающих контакты каждой электрической цепи при заданном варианте размещения;
суммарная длина полупериметров минимальных прямоугольников, охватывающих контакты электрической цепи при заданном варианте размещения;
оценка степени загрузки каналов, по которым осуществляется трассировка соединений печатным способом.
Ограничительными условиями могут быть такие требования: 1) фиксированное назначение ряда модулей в заданные позиции; 2) объявление ряда позиций запрещенными для установки модулей.
Подробнее с задачами этой группы, в том числе с их формальной постановкой, можно ознакомиться по работе [33]. Здесь же только отметим, что для их решения в пакете используются различные ме- тоты: метод Монте-Карло, методы фронтального типа, метод ветвей и границ, метод вектора спада, декомпозиционные алгоритмы и ряд эвристических алгоритмов.
Задачи компоновки базовых элементов дискретной аппаратуры в корпуса интегральных микросхем. Эти задачи характеризуются тем, что компонуемые элементы имеют сравнительно мало связей, в то время как их число может достигать десятков тысяч.
Пусть в заданную электрическую схему (ЭС) проектируемого устройства входит п базовых элементов (БЭ), образующих множество X == {хь ..., хп), каждый из которых принадлежит к одному из т заданных типов, т. е. для любого ц 1 ^ I ^ п, х,. £ Т, где Т\ j = 1, /и,— подмножество X, описывающее совокупность БЭ, которые принадлежат к типу /, причем Т П Т1 = 0, I, j = 1, ..., m, а
U - X.
Задача компоновки заключается в отыскании такого разбиения множества X на заданное число к подмножеств Ут, ..., У^, для которого достигался бы экстремум заданного критерия оптимизации и выполнялись бы следующие условия:
Yt^0, УМ^0>iJ-Y-.^k;
к и Y^X, \У^дь 1, к;
Хь Xj£Ts, если хь xf^Yb s = 1, m, / = 1, .. ., к;
где qi — заданные ограничения на объем подмножества Y ь подмножества Yt (i = У k) назовем блоками разбиения (БР).
В качестве критерия оптимизации на практике обычно выступает число связей между БР. Однако при непосредственном подсчете этой величины оказывается, что несколько вариантов разбиения имеют
одно и то же значение целевой функции. Поэтому для более адекватного учета условий проектирования рассматривается ряд дополнительных критериев, что позволяет получить более качественное решение.
Для решения задач компоновки в МО ПП ВЕКТОР-2 включены алгоритмы компоновки, принадлежащие к последовательным (конструктивным) алгоритмам.
Задачи разбиения множества интегральных схем на подмножества, соответствующие конструктивным узлам ЭВМ. Формальная постановка задач этого типа напоминает постановку задач компоновки, однако было признано целесообразным выделить эти задачи в отдельный класс по двум причинам. Во-первых, содержательная постановка задачи разбиения отличается от задачи компоновки. Этот факт находит отражение в различных именах числовых данных, критериев и ограничений. Сохранение различий в указанных именах удобно для конструкторов, применяющих пакет. Во-вторых, формальные постановки этих двух типов задач отличаются видом критериев оптимизации и ограничительных условий.
Пусть задано множество X = {%!, ..., хп}, состоящее из п интегральных схем, каждая из которых принадлежит одному из т заданных типов, т. е. для любого i, 1 i п, х^ Т\ где Т, / = 1, т,—• подмножество X, которое состоит из интегральных схем, принадлежащих типу /, причем Tl Л Tf — 0, i, j = 1, ..., /и, a (J TJ = X.
/=i
Пусть также задано / множеств St таких, что S^ cz X, причем в общем случае St П S,^ 0, i, / = 1, ..., t. Содержательно 8и t = l, ..., /, означает множество интегральных схем, входящих в одну электрическую цепь.
Задача разбиения состоит в отыскании такого расчленения Y множества X па заданное число к подмножеств Yv ..., Y к, для которого достигался бы минимум заданного критерия оптимизации и выполнялись бы следующие условия:
Y t Л Yj = 0, i =^ Ь ^> / — 1, к,
к
U Yt - X;
t=i
\Yh\^qih i = \, к»
где Yt; — множество интегральных схем типа /, входящих в множество Yf, qtj — заданные ограничения на мощность множеств Ya- Содержательно YT, ...s Yk означают множества интегральных схем, размещаемых в конструктивных узлах ЭВМ с номерами соответственно 1, 2, ..., к.
Основным критерием качества разбиения является число электрических цепей, интегральные схемы которых размещаются в различных конструктивных узлах:
t t
F(X) = S Ssign^ Л Г, |.
2 = 1 /'=1
Однако при непосредственном подсчете этой величины оказывается, что несколько вариантов разбиения имеют одно и то же значение целевой функции. Поэтому в пакете наряду с основными применяются два следующих критерия, которые более дифференцированно оценивают качество разбиения:
Л(Ю= S |5{|- V max IS, П KJ,И 1=1
где
с = const 2> max Ех (У).
Для решения задач разбиения в пакете применяются алгоритмы метода вектора спада, метода ветвей и границ, метода Монте-Карло.
Задачи размещения модулей радиоэлектронной аппаратуры различных типов на дискретном и непрерывном полях позиций. Задачи этого типа являются обобщением задач, рассмотренных в п. 1 настоящего параграфа. Каждому модулю здесь приписывается принадлежность к одному из h заданных типов. Соответственно и множество позиций состоит из 1г подмножеств. Допустимым вариантом размещения считается такой, когда модули устанавливаются в позиции соответствующих типов.
Сравнивая задачи размещения однотипных и разнотипных модулей, обратим внимание на два момента. С одной стороны, наличие модулей и позиций различных типов усложняет вычисление целевой функции и тем самым способствует увеличению времени работы алгоритма. С другой стороны, этот же факт является причиной сокращения числа допустимых вариантов размещения, что способствует уменьшению времени работы алгоритма. Поэтому результат сравнения сложности указанных задач зависит от конкретного соотношения соответствующих числовых данных.
Для решения задач размещения этой группы в пакет включены в основном модификации тех же алгоритмов, что и для задач с однотипными модулями. При размещении модулей в нефиксированных позициях используется последовательно-интерационный алгоритм, разработанный специально для ПП ВЕКТОР-2.
Типовые задачи комбинаторной оптимизации. Эта группа задач представлена в пакете известными задачами коммивояжера, линейной и квадратичной задачами о назначениях. Для их решения в пакет включены алгоритмы метода ветвей и границ, метода вектора спада и ряд эвристических алгоритмов.
«Нестандартные» применения. Структура МО и организация ВП в ПП ВЕКТОР-2 позволяют использовать включенные в него алгоритмы оптимизации и для решения задач с целевыми функциями, которые разработаны пользователем. Для такого применения пакета пользователю необходимо запрограммировать вычисление функций, входящих в математическую модель решаемой задачи, на языке ФОРТРАН или АССЕМБЛЕР. При этом соответствующие подпрограм-
№ п/п
п
т
с
Метод 1 fo
Метод 2
Метод 3
и
/
t
142321437799525445678610
255542253816823 79817632 91814
360601642170314 13334819 30013
466621832749018 3338423 74310
570691333851523 04357533 41319
696782043856518 62744433 84517
796833095923531 563164052 35341
мы должны иметь заданные имена и для них необходимо соблюдение принятых в пакете соглашений о связях. Таким же образом можно временно подключить и новый алгоритм оптимизации имеющихся или новых задач.
Как уже отмечалось, ПП ВЕКТОР-2 широко используется на практике для решения перечисленных групп задач. Данные об эффективности различных алгоритмов, включенных в МО пакета, при решении реальных задач приведены в табл. 41, где представлены данные о решении серии практических задач размещения однотипных модулей цифровой аппаратуры. Здесь п — число позиций; т — число размещаемых модулей; с — число электрических цепей в схеме; /о — начальное значение целевой функции, полученное при помощи метода Монте-Карло за 10 испытаний. Сокращения имен алгоритмов обозначают следующее: 1 — метод Монте-Карло; 2 — метод вектора спада; 3 — эвристический алгоритм, основанный на идеях алгоритма Шафера; 4 — эвристический алгоритм, основанный на использовании метода вектора спада; 5, 6 — соответственно первый и второй декомпозиционные алгоритмы; 7 — алгоритм фронтального типа. Для каждого интерационного алгоритма /* — значение целевой функции в точке полученного приближенного решения, t — время счета (в с.) на БЭСМ-6 (ОС ДИСПАК, версия транслятора от 16.07.73). Отметим, что в задачах, которым соответствуют строки 1, 4 и 6 таблицы, были заданы ограничительные условия (фиксированное назначение ряда модулей в позиции), указанные конструктором. В этих задачах минимизировалась целевая функция, с помощью которой вычислялась сумма расстояний между контактами модулей, входящих в электрические цепи при соответствующем варианте их размещения, дополненная суммой минимально возможных расстояний между внешними контактами конструкции и контактами модулей, входящих в электрические цепи проектируемого устройства [331.
Основное назначение ПП ВЕКТОР-2 — обеспечить специалисту в конкретной прикладной области возможность решения сложных практических задач в тесном взаимодействии с ЭВМ. Поэтому ос- . новным режимом работы пакета, как уже отмечалось, является диа- I лотовый. Однако благодаря наличию блоков синтеза математической 456
Метод 4
Метод э
Метод 6
Метод 7
и
t
f*
t
ft
t
t
528925500041520870519462
23 8339725 3137934 6536324112190
14 47312515 65010419 5838113469461
18 6553419 2404223 3703517869119
23 57522925 18515033 8139623109678
19 21714920 1151213122810218 126698
35 21744537 02736653 235255296171792
модели и планирования вычисли тельного процесса широкий круг задач может быть решен и в пакетном режиме без помощи человека.
При проектировании и реализации на ЭВМ программного обеспечения создатели пакета последовательно придерживались принципов, которые разработаны в современной теории программирования при исследовании вопросов создания крупных программных систем. Это в первую очередь идеи структурного программирования и рациональное сочетание принципов программирования «сверху вниз» и «снизу вверх».
К числу особенностей реализации МО пакета ВЕКТОР-2 следует отнести то обстоятельство, что не только проблемные, но и почти все блоки системной (управляющей) части пакета написаны на языках высокого уровня 13. Благодаря этому достигается высокая степень мобильности МО пакета и упрощаются вопросы его модернизации. В настоящее время пакет ВЕКТОР-2 функционирует на ЕС ЭВМ (ОС ЕС ЭВМ) и ЭВМ БЭСМ-6 (ОС ДИСПАК, ОС «Дубна»).
Применение указанных выше принципов создания МО позволило выполнить разработку первой очереди пакета сравнительно небольшими силами и в сжатые сроки.
Как отмечалось выше, ПП ВЕКТОР-2 — развивающаяся система, содержащая языковые и программные средства, которые позволяют модернизировать собственное МО. Важнейшие направления, в которых ведется расширение МО, следующие:
решение задач новых классов и включение новых математических моделей в существующие классы;
разработка и включение в МО новых алгоритмов оптимизации;
расширение В Я путем включения новых операторов и введение дополнительных необязательных параметров в существующие операторы ВЯ;
предоставление новых сервисных возможностей, позволяющих автоматизировать ряд вспомогательных функций, которые связаны с решением задач при помощи ПП ВЕКТОР-2.
Так, в версии лакща, функционирующей на ЕС ЭВМ, модули системной части в оттранслированном виде имею, объем 116К байт, среди которых только 3 Кбайта — модули, реализованные на языке АССЕМБЛЕР.
Реализация МО на основе принципа унификации на языках высокого уровня позволяет адаптировать ПП ВЕКТОР-2 к новым ЭВМ и развитым ОС. В этой связи наиболее актуальной является задача транспортации МО пакета на многопроцессорные ЭВМ. Возможность адаптации системной части пакета основана на моделировании виртуальной ЭВМ, о которой шла речь выше, и децентрализации управления пакетом.. Естественно, что формальный перенос МО на многопроцессорные ЭВМ может выступать только в качестве первого этапа — дальнейшее развитие в этом направлении требует разработки специальных алгоритмов оптимизации, учитывающих специфику организации вычислительного процесса в многопроцессорных ЭВМ.
СПИСОК ЛИТЕРАТУРЫ
Авдонин Л. Г. Алгоритм решения задачи оптимального размещения предприятий, производящих один продукт // Экономика и мат. методы.— 1975.— 11, № 13.— С. 590—591.
Айгнер М. Комбинаторная теория.— М. . Мир, 1982.— 556 с.
Александров П. С. Введение в георию множеств и общую топологию.— М. : Наука, 1977.— 368 с.
Артеменко В. И. Об одном методе поиска приближенных решений задач частично целочисленного линейного программирования// Кибернетика.— 1981.— № 1.— С. 82—85.
Артеменко В. И. О двух подходах к приближенному решению задач частично целочисленного линейного программирования И Вычислительные аспекты в пакетах прикладных программ.— Киев : Ин-т кибернетики АН УССР, 1980.— С. 15— 25.
Артеменко В. И., Сергиенко И. В. Вопросы формализации и решения одного класса задач транспортного типа И Кибернетика.— 1983.— № 3.— С. 80—86.
Артеменко В. И., Сергиенко И. В. Р-метод решения задач целочисленного линейного программирования с булевыми переменными // Докл. АН УССР. Сер. А, 1980, № 4.— С. 72—75.
Архипова Т. Т., Сергиенко И. В. Об условии совпадения локального и глобального экстремумов в задачах оптимизации//Кибернетика.— 1975.— № 1.— С. 13—15.
А шмонов С. А. Условия устойчивости задач линейного программирования И Журн. вычисл. математики и мат. физики.— 1981. 21, № 6.— С. 1402—1410.
Бабат Л. Г. Приближенное вычисление линейной функции на вершинах единичного м-мерного куба // Исследования по дискретной оптимизации.— М. : Наука, 1976.—С. 156—169.
И. Бакаев А. А., Костина И. Н., Яровицкий Н. В. Автоматные модели экономических систем.— Киев : Наук, думка, 1970.— 191 с.
Балаш Э. Аддитивный алгоритм для решения задач линейного программирования с переменными, принимающими значения 0 или 1 // Кибернет. сб.—1969.— Вып. 6.—С. 217—252.
Береснев В. Л., Гимади Э. X., Дементьев В Т. Экстремальные задачи стандартизации.— Новосибирск : Наука, 1978.— 333 с.
Болтянский В. Г., Солтан П. С. Комбинаторная геометрия различных классов выпуклых множеств.— Кишинев : Штиинца, 1978.— 279 с.
Брябрин В. М., Евтушенко Ю. Г., Семовский С. В. Диалоговая система автоматизации//Численные методы нелинейного программирования : Тез. II Всесоюз. семинара, Харьков.— Киев : Наук, думка, 1976.— С. 3—7.
Булавский В. А., Звягина Р. А.» Яковлева М. А. Численные методы линейного программирования.— М. : Наука, 1977.— 367 с.
Быков В. Н., Сергиенко И. В. Метод решения обобщенной задачи о ранце с использованием параллельных вычислений / Докл. АН УССР. Сер. А.— 1980.— № 10. — С. 810—812.
Вершина А. И., Перепелица В. А., Тесленко В. П. Иерархичность и мноюкрите- риальность в системах автоматизированного проектирования // Вторая Всесоюз.
30*30*45?
30*
30*
конф. «Автоматизация поискового конструирования. Методы поиска новых технических решений и их практическое применение в области машиностроения, приборостроения и строительства»: Тез. докл.— Новочеркасск, 1980.— С. 149— 151.
Вильямс И. Н. Параметрическое программирование в экономике.— М. : Статистика, 1976.— 96 с.
Волкович В. Л., Волошин А. Ф. Об одной общей схеме последовательного анализа и отсеивания вариантов// Кибернетика.— № 1978.— № 5.— С. 98—105.
Вычислительные методы выбора оптимальных проектных решений / Под ред. В. С. Михалевича.— Киев • Наук, думка, 1977.— 178 с.
Гснс Г. В., Левнер Е. В. Эффективные приближенные алгоритмы для комбинаторных задач.— М., 1981.— 66 с.— (Препринт / АН СССР. ЦЭМИ; № 52).
Гимади Э. X.» Глебов Н. И., Перепелица В. А. Алгоритмы с оценками для задач дискретной оптимизации И Пробл. кибернетики.— 1975.— Вып. 31.— С. 35—42.
Гиффлер Б., Томпсон Д., Ван-Нессе В. Опыт вычислений с применением линейного алгоритма и алгоритма Монте-Карло для решения задач календарного планирования на производстве И Календарное планирование.— М. : Прогресс, 1966.- С 42—61.
Глушков В. М. О диалоговом методе решения оптимизационных задач// Кибернетика.— № 1975.— № 4.— С. 2—7.
Глушков В. М., Олеярш Г. Б. Диалоговая система планирования ДИСПЛАН И Упр. системы и машины.— 1976.— № 4.— С. 123—124.
Говорун Н. Н., Иванченко И. М., Нефедьева Л. С. Диалог в системах автоматизированной обработки данных И Там же.— № 1974.— № 1.— С. 8—13.
Гольштейн Е. Г. Теория двойственности в математическом программировании и ее приложения.— М. : Наука, 1971.— 352 с.
Гольштейн Е. Г., Юдин Д. Б. Новые направления в линейном программировании.— М. : Сов. радио, 1966.— 524 с.
ГордеевЭ. И., Леонтьев В. К. Параметрические задачи оптимизации П УВсесоюз. конф, по теорет. кибернетике.— Новосибирск : Ин-т математики СО АН СССР, 1980.— С. 54—55.
Гришухин В. П. Алгоритмы ветвей и границ в задачах с булевыми переменными, оценка их эффективности // Экономика и мат. методы.— 1976.— 12, № 4.— С. 757—766.
Гришухин В. П. О среднем числе итераций алгоритма Балаша // Исследования по дискретной математике.— М. : Наука, 1973.— С. 58—68.
Гуляницкий Л. Ф., Сергиенко И. В., Ходзинский А. Н. Диалоговый пакет программ ВЕКТОР-2.— Киев, 1981.— 55 с.— (Препринт / АН УССР. Ин-т кибернетики; № 81—83).
Гурин Н. Н., Дашко В. Е., Коган Я. А., Леман А. А. Исследование взаимодействия операционной системы с запоминающими устройствами на магнитных дисках И Автоматика и телемеханика.— 1974.— № 2.— С. 152—162.
Гэри М.» Джонсон Д. Вычислительные машины и труднорешаемые задачи.— М. : Мир, 1982.— 416 с.
Димов Е. Г., Ковалев М. М. Кривизна упорядоченно-выпуклых множеств// Докл. АН БССР.- 1984.— 28, № 1.— С. 7—9.
Дискретная математика и математические вопросы кибернетики / Под общ. ред. С. В. Яблонского, О. Б. Лупанова.— М. : Наука, 1974.— Т. 1.— 311 с.
Дюран Б., Оделл П. Кластерный анализ.— М. : Статистика, 1977.— 128 с.
Емеличев В. А. Дискретная оптимизация. Последовательные схемы решения. I И Кибернетика.— 1971.— № 6.— С. 97—ПО
Емеличев В. А. Дискретная оптимизация. Последовательные схемы решения. II / Там же.- 1972.— № 2.— С. 109—121.
Емеличев В. А. К задачам дискретной оптимизации И Докл. АН СССР.— 1970.— 19< № 5.— С. 1002—1003.
Емеличев В. А. К теории дискретной оптимизации//Там же.— 1971.— 198, № 2.- С. 273—276.
Емеличев В. А., Ковалев М. М., Кравцов М. К. Многогранники, графы, оптимизация.— М. : Наука, 1981.— 344 с.
Емеличев В. А., Комлик В. И. Метод построения последовательности планов для решения задач дискретной оптимизации.— М. : Наука, 1981.— 208 с.
Еремин И. И., Астафьев Н. В. Введение в теорию линейного и выпуклого программирования.— М. • Наука, 1976.— 192 с.
Ермольев Ю. М. Методы стохастического прел раммирования — М. : Наука, 1976.— 239 с.
Жданок А. И., Коробков Б. П. Локальные характеристики и сходимость рандомизированного алгоритма разрезания графов Н Пробл. случайн. поиска.— 1981.— Вып. 9.—С. 40—70.'
Журавлев К). И. Локальные алгоритмы вычисления информации. 1 // Кибернетика.— 1965.—№ 1.—С. 12—19.
Журавлев Ю. И. Локальные алгоритмы вычисления информации. II / Там же.— 1966.— № 2.—С. 1 — 11.
Журавлев Ю. И., Финкельштейн К). К). Сфера применения методов дискретного программирования И Применена исследования операций в экономике.— М. : Экономика, 1977.— С. 26—69.
Задачи календарного планирования и методы их решения / В. В. Шкурба, Т. П. Подчасова, А. Н. Пшичук, Л. П. Тур.-- Киев : Наук, думка, 1966.— 155 с.
Зойтендейк Г. Методы возможных направлений.— М. Изд-во иностр, лит., 1963.— 176 с.
Ивлев В. И., Шейнман О. К- Метод одновременного решения пары двойственных задач целочисленного программирования // Системы программного обеспечения решения задач оптимального планирования : Шестой Всесоюз. симпоз. (г. Пущино, 1980).— М. • ЦЭМИ АН СССР, 1980.— С 68—73.
Итеративные методы в теории игр и программирования / Под общ. ред. В. 3. Беленького, В. А. Волконского.— М. • Наука, 1974.— 239 с.
Каплинский А. И., Лимарев А. Е., Чернышова Г. Д. Построение рандомизированных алгоритмов оптимизации И Пробл. случай, поиска.— 1980.— Вып. 8.— С. 63—91.
Каргаполов М. И., Мерзляков Ю. И. Основы теории групп.— М. : Наука, 1972.— 240 с.
Карманов В. Г. Математическое программирование.— М. : Наука, 1975.— 272 с.
Каспшицкая М. Ф. О локальных экстремумах дискретных функций И Докл. АН УССР. Сер. А.- 1984.- № З.-С. 66—69.‘
Каспшицкая М. Ф., Сергиенко И. В. Некоторые вычислительные аспекты задачи кластеризации Н Кибернетика — 1983.— № 5 — С. 1—5.
Каюров В. 10., Кукса А. И. Метод последовательного анализа вариантов в дискретной задаче распределения ограниченных ресурсов.— Киев Ин-т кибернетики АН УССР, 1971.— 13 с.
Кейс П., Графф Г., Гриффит Л. и др. Автоматизация проектирования вычислительных систем с использованием логических схем на твердом теле // Кибер- нет. сб.— 1965.— Вып. 1.— С. 71—86.
Ковалев М. М. Дискретная оптимизация (целочисленное программирование).— Минск • Изд-во Белорус, ун-та, 1977.— 192 с.
Ковалев М. М. Метод частичных порядков//Докл. АН БССР.— 1980.— 24, № 2.— С. 113—116.
Ковалев М. М., Котов В. М. Анализ градиентного метода решения задачи коммивояжера // Журн. вычисл. математики и мат. физики.— 1981.— № 4.— С. 1035—1038.
Ковалев М. М., Котов В. М. Оценка погрешности серий приближенных алгоритмов И Вест. Белорус, гос. ун-та.— 1986.— Сер. 1, № 3.— С. 44—48.
КозерацкаяЛ. В. О системах линейных диофантовых уравнений с параметром И Докл. АН УССР. Сер. А.— 1980.— №9.— С. 11 — 14.
КозерацкаяЛ. В., Лебедева Т. Т., Сергиенко И. В. Вопросы устойчивости, параметрический и постоптимальный анализ задач дискретной оптимизации И Кибернетика.— 1983.— № 4.— С. 83—92.
Козлов М. К., Тарасов С. П., Хачиян Л. Г. Полиномиальная разрешимость выпуклого квадратичного программирования Н Докл. АН СССР.— 1979.— 248, Яс 5.—С. 1049—1051.
Колмогоров А. В., Фомин С. В- Элементы теории функций и функционального анализа.— М. : Наука, 1972.— 496 с.
Корбут А. Л., Сигал И. X., Финкельштейн Ю. Ю. Метод ветвей и границ: Обзор теории, алгоритмов, программ и приложений.— Math. Operationsforsch. und Statist., Ser. Optimiz., 1977.— 8, N 2.— C. 253—280.
Корбут А. А., Финкельштейн Ю. Ю. Дискретное программирование.— M. : Наука, 1969.— 368 с.
Корбут А А., Финкельштейн К). Ю. Приближенные методы дискретного программирования// Изв. АН СССР. Сер. Техн, кибернетика.— 1983.— № 1.— С. 165—176.
Корнай И., Липтак 7. Планирование на двух уровнях // Применение математики в экономических исследованиях.— М. : Мысль, 1965.— Т. 3.— С. 107—136.
Коробков В. К. О некоторых целочисленных сдачах линейного программирования Н Пробл. кибернетики.— 1965.— Выв. 14.— С. 297—299.
Кравец В. Л., Сергиенко И. В. Декомпозиционный метод решения одного класса комбинаторных оптимизационных задач // Кибернетика.— 1983.— № 6.— С. 77— 79, 84.
Кукса А. И., Шор Н. 3.0 методе оценки количества условно оптимальных траекторий дискретного сепарабельного динамического программирования И Там же.— 1972.— № 6.- С. 37—44.
Куратовский К. Топология.— М. : Мир, 1966.— Т. 1.— 594 с.
Лазебник А. И., Цаллагова О. Н. Оптимизация развития электрической сети на основе метода ветвей и границ // Энергетика и трансп.— 1979.— № 3.— С. 6—13.
Лбов Г. С. Алгоритмы поиска приближенного значения глобального экстремума функции // Пробл. случайн. поиска.— 1980.— Вып. 8.— С. 92—115.
Лебедев В. Ю. Схема решения частично целочисленной задачи математического программирования И Журн. вычисл. математики и мат. физики.— 1977.— 17, № 5.—С. 1189—1193.
Лебедев С. С. Целочисленное программирование и множители Дагранжа // Экономика и мат. методы.— 1974.— 10, № 3.— С. 592—610.
Лебедев С. С., Ковалевская М. И. Множители Лагранжа в простейшей задаче размещения (теория и вычислительный эксперимент) // Исследования по дискретной оптимизации.— М. : Наука, 1976.— С. 170—178.
Лебедева Т. Т., Сергиенко И. В. Метод направляющих окрестностей // Докл. АН УССР. Сер. А,— 1978.— № 8.— С. 241—244.
Леонтьев В. К. Дискретные экстремальные задачи// Итоги науки и техники/ ВИНИТИ. Сер. Теория вероятностей. Мат. статистика. Теорет. кибернетика.— 1979.— Выл. 16.— С. 38—101.— Библиогр.: с. 93—101 (193 назв).
Леонтьев В. К. Устойчивость решений в дискретных экстремальных задачах : Автореф. дис. ... д-ра физ.-мат. наук.— М., 1982.— 26 с.
Лоскутов В. Г.» Носов А. М. О диалоговом и мультипроцессорном режимах решения оптимизационных задач в пакете недифференцируемой оптимизации//У пр. системы и машины.— 1981.— № 2.— С. 131—134.
Лэсдон Л. С. Оптимизация больших систем.— М. : Наука, 1975.— 432 с.
Макаров И. М., Радашевич Ю. Б. Статистическая оценка точности в условноэкстремальных задачах // Автоматика и телемеханика.— 1981.— № 3.— С. 41— 48.
Малашенко Ю. Е., Станевичюс А.-И. А. О решении одной задачи целочисленного программирования И Журн. вычисл. математики и мат. физики.— 1980.— 20, № 3.— С. 623—629.
Мелихов А. Н., Бернштейн Л. С. Гиперграфы в автоматизации проектирования дискретных устройств.— Ростов н/Д : Изд-во Рост, ун-та, 1981.— 112 с.
Мелихов А. Н., Бернштейн Л. С.» Курейчик В. М. Применение графов для проектирования дискретных устройств.— М. : Наука, 1974.— 307 с.
Михалевич В. С. Последовательные алгоритмы оптимизации и их применение. I И Кибернетика, 1965.— № 1.— С. 45—55.
Михалевич В. С. Последовательные алгоритмы оптимизации и их применение. II И Там же.— № 2.- С. 85—89.
Михалевич В. С., Волкович В. Л. Вычислительные методы исследования и проектирования сложных систем.— М. : Наука, 1982.— 286 с.
Михалевич В. С.» Волкович В. Л., Волошин А. Ф., Поздняков Ю. М. Алгоритмы последовательного анализа и отсеивания вариантов в задачах дискретной оптимизации // Кибернетика.— 1980.— № 3.— С. 76—85.
Михалевич В. С.» Кукса А. И. Методы последовательной оптимизации в дискретных сетевых задачах оптимального распределения ресурсов.— М. . Наука, 1983.— 208 с.
Михалевич В. С., Сергиенко И. В., Лебедева Т. Т. и др. Пакет прикладных программ ДИСПРО, предназначенный для решения задач дискретного программирования//Кибернетика.— 1981.—№ 3.— С. 117—137.
Михалевич В. С., Сергиенко И. В., Трубин В. А. и др. Пакет прикладных программ для решения задач производственно-транспортного планирования большой размерности (ПЛАНЕР)//Там же.— 1983.— № 3.— С. 57—71, 79.
Михалевич В. С.» Сергиенко И. В., ШорН.З. Исследования методов решения оптимизационных задач и их приложения//Там же.— 1981.— №4.— С. 89—113.
Михалевич В. С., Шор Н. 3. Численные решения многовариантных задач по методу последовательного анализа вариантов // Научно-методические материалы экономико-математического семинара.— АТ, 1962.— Вып1.— С. 15—42.—
(Ротапринт / АН СССР. ЛЭМИ).
Моисеев Н. Н. Математические задачи системного анализа.— М. : Наука, 1981,— 488 с.
Моисеев Н. Н. Численные методы в теории оптимальных систем.— М. ' Наука, 1971.— 424 с.
Мухитдинов Ф. Т., Трубин В. А. Перспективное развитие и размещение винодельческой промышленности УзССР.— Киев, 1978.— С. 18—32.— (Препринт/ АН УССР. Ин-т кибернетики; № 78—76).
Насекин В. Я- Метод решения монотонных задач целочисленного программирования И Кибернетика.— 1979.— № 5.— С. 106—109.
Немировский А. С., Юдин Д. Б. Сложность задач и эффективность методов оптимизации.— М. : Наука, 1979.— 384 с.
Олешко М. В., Шило В. П. Алгоритм для решения задач целочисленного программирования с булевыми переменными, использующий вероятностные оценки И Программное обеспечение экстремальных задач и пакеты прикладных программ.— Киев : Ин-т кибернетики АН УССР, 1982.— С. 110—113.
Перепелица В. А. Асимптотический подход к решению некоторых экстремальных задач на графах И Пробл. кибернетики.— 1973.— Вып. 26.— С. 291—314.
Перепелица В. А. Об одном классе многокритериальных задач на графах и гиперграфах // Кибернетика.— 1984.— № 4.— С. 102—106.
Петренко А. И. Основы автоматизированного проектирования.— Киев : Тех- н!ка, 1982.— 295 с.
Подиновский В. В.» Ногин В. Д. Парето-оптимальные решения многокритериальных задач.— М. : Наука, 1982.— 256 с.
Поздняков Ю. М. Декомпозиционная схема решения задач целочисленного линейного программирования // Журн. вычисл. математики и мат. физики.— 1982 — 22, № 1.— С. 57—67.
Поздняков К). М. Декомпозиционные методы последовательного анализа вариантов в задачах дискретной оптимизации и их применение : Автореф. дис. ... канд. физ.-мат. наук.— Киев, 1983.— 21 с.
Пятецкий-Шапиро И. И., Волконский В. А., Казакевич Д. М., Левина Л. В. Решение задач целочисленного программирования методом последовательного сокращения размерности // Экономико-математические модели и методы отраслевого планирования.— Новосибирск • Наука, 1967.— С. 451—45 7
Распопов В. Б. Диалоговые средства для решения некоторых классов экстремальных задач // Тез. докл. III Всесоюз. конф, поисслед. операций.— Горький : Изд-во Горьковского ун-та, 1978.— С. 296—297.
Растригин Л. А. Вычислительные системы и сети как объекты применения случайного поиска // Пробл. случайн. поиска.— 1983.— Вып. 10.— С. 5— 30.
Результаты экспериментального исследования эффективности методов, включенных в пакет прикладных программ ДИСПРО / В. С. Михалевич, И. В. Сергиенко, А. И. Кукса и др.— Киев, 1980.— 68 с.— (Препринт / АН УССР. Ин-т кибернетики; № 80—47).
Романовский И. В. Алгоритмы решения экстремальных задач.— М. : Наука, 1977.— 352 с.
Рощин В. Л., Семенова В. В., Сергиенко И. В. Вопросы решения задач частично целочисленного программирования специального вида Л Теория on шмаль пых решений.— Киев : Ин-т кибернетики АН УССР, 1982.— С. 20—28.
Рощин В. А., Сергиенко И. В., Семенова И. В. О решении частично целочисленных оптимизационных задач, выпуклых по непрерывным переменным // Кибернетика.— 1981.— .№ 5.— С. 62—66.
Рябоконь В. Л. Математическая модель задачи оптимального размещения ВЦКП Ч Основы построения больших информационно-вычислительных сетей.— М. : Статистика, 1976.— 296 с.
Самыловский А. И. Об экономном представлении невыпуклого полиэдра.— 1977. __ Рукопись деп. в ВИНИТИ, 31.01.1977, № 347.— 77 Деп.
САП ПОР — система автоматизации процесса принятия оптимальных решений / Л. И. Батищев, П. Д. Басалин и др. // Кибернетические системы автоматизации проектирования.— М. : МДНТП, 1973.— С. 25—31.
Селютин В. А. Машинное конструирование электронных устройств.— М. : Сов. радио, 1977.— 384 с.
Сергиенко И. В. Вопросы разработки одного подхода к решению задач оптимизации в системах обработки данных в автоматизированных системах управления // Упр. системы и машины.— 1974.— № 6.— С. 107—115.
Сергиенко И. В. Методы организации вычислительного процесса на вычислительных машинах.— Киев : Ин-т кибернетики АН УССР, 1971.— 162 с.
Сергиенко И. В. Некоторые вопросы разработки и использования приближенных методов решения задач дискретной оптимизации // Кибернетические методы планирования, проектирования иуправления.— Киев : Ин-т кибернетики
АН УССР, 1982.— С. 45—62.
Сергиенко И. В. //-метод решения оптимизационных задач частично целочисленного программирования И Докл. АН УССР. Сер. А.— 1981.— № 1.— С. 75— 78.
Сергеенко I. В. Один метод розв’язування задач на в!дшукання екстремальних значень И Автоматика.— 1964.— № 5.— С. 15—21.
Сергиенко И. В. О некоторых направлениях в развитии методов дискретной оптимизации п их программного обеспечения Н Кибернетика.— 1982.— № 6.— С. 45—53.
Сергиенко И. В. О применении метода вектора спада для решения задач оптимизации комбинаторного типа И Упр. системы и машины.— 1975.— № 2.— С. 86—94.
Сергиенко И. В. Применение метода вектора спада для решения задач целочисленного прогиамжирования И Там же.— 1975.— № 3.— С. 92—98.
Сергиенко И. В., Голодников А. И. О применении метода вектора спада в декомпозиционных схемах решения задач целочисленного линейного программирования И Кибернетика.— 1983.— № 1.— С 44—47.
Сергиенко И. В., Гуляницкий Л. Ф. Фронтальные алгоритмы оптимизации для многопроцессорных ЭВМ // Там же.— 1981.— № 6.— С. 1—4.
Сергиенко И. В., Каспшицкая М. Ф. Модели и методы решения на ЭВМ комбинаторных задач оптимизации.— Киев : Наук, думка, 1981.— 288 с.
Сергиенко И. В., Каспшицкая М. Ф. Об устойчивости алгоритмов метода вектора спада на одном классе комбинаторных оптимизационных задач И Докл. АН УССР. Сер. А.- 1983.— № 10.— С. 64—66.
Сергиенко И. В., КозерацкаяЛ. Н. О решении одной задачи параметрического целочисленного программирования И Кибернетика.— 1982.— № 3.— С. 80— 84.
Сергиенко И. В., Лебедева Т. Т., Рощин В. А. Приближенные методы решения дискретных задач оптимизации.— Киев : Наук, думка, 1980.— 276 с.
Сергиенко И. В.. Лебедева Т. Т., Филоненко Н. В. Приближенное решение задач целочисленного линейного программирования с параметром в ограничениях И Вычислительные аспекты в пакетах прикладных программ.— Киев : Ин-т кибернетики АН УССР, 1980.— С. 3—16
Сергиенко И. В., Парасюк И. Н. О задачах и принципах построения современных пакетов прикладных программ И Bich. АН УРСР.— 1979.— № 8.— С. 8—20.
Сергиенко И. В., Парасюк И. Н., Тукалевская Н. И. Автоматизированные си» стемы обработки данных.— Киев : Наук, думка, 1976.— 256 с.
Сергиенко И. В., Скопецкий В. В. Вопросы исследования систем обработки данных и повышения их эффективности /7 Кибернетика.— 1977.— № 6.— С. 61— 72.
Сергиенко И. В., Солтан В. П., Лебедева Т. Т. К вопросу об условиях совпадения локального и глобального минимумов в задачах дискретной оптимизации Н Там же.— 1984.— № 5.— С. 58—65.
Сергиенко И. В.» Филоненко И. В. Решение некоторых задач устойчивости в целочисленном линейном программировании // Докл. АН УССР. Сер. А.— 1982.— № 6.— С. 79—82.
Середа А.-В. И. Модификация алгоритма расчленения Вендерса.— Л., 1980.— 13 с.— Рукопись деп. в ВИНИТИ, 26.08.80, №3856 Деп.
Современное состояние теории исследования операций / Под ред. Н. Н. Моисеева.— М. : Наука, 1979.— 464 с.
Солтан В. П. Введение в аксиоматическую теорию выпуклости.— Кишинев : Штиинца, 1984.— 223 с.
Солтан П. С., Замбицкий Д, К., Присэкару К. Ф. Экстремальные задачи на графах и алгоритмы их решения.— Кишинев : Штиица, 1973.— 90 с.
Солтан В. П., Чепой В. Д. ri-Выпуклость и функции Штейнера на графе // Докл. АН БССР.— 1985.— 29, № 5.— С. 407—408.
Стоян 10. Г., Соколовский В. 3. Решение некоторых многоэкстремальных задач методом сужающихся окрестностей.— Киев : Наук, думка, 1980.— 206 с.
Стоян 10. Г., Фесенко А. Г. Один метод определения оптимальной решетчатой укладки многоугольников.—Киев, 1978.— 31 с.—(Препринт/АН УССР. Ин-т кибернетики; № 78—49).
Танаев В. С., Шкурой В. В. Введение в теорию расписаний.— М. : Наука, 1975.- 256 с.
Тихонов А. Н. О регуляризации некорректно поставленных задач // Докл. АН СССР.— 1963.— 153, № L—С. 49—52.
Трубин В. А. О некоторых задачах типа размещения // Применение мат. методов в экон, исслед. и планир.— 1968.— № 1.— С. 3—12.
Трубин В. А. О методе решения задач целочисленного линейного программирования специального вида И Докл. АН СССР.— 1969.— 189, № 5.— С. 952—954.
Трубин В. А. Свойства и методы решения задач оптимального синтеза сетей.— Киев : О-во «Знание» УССР, 1982.— 23 с.
Трубин В. А. Эффективный алгоритм для задачи Вебера с прямоугольной метрикой И Кибернетика.— 1978.— № 6.— С. 67—70.
Трубин В. А., Гндоян А. К. Алгоритм и свойства задачи синтеза сетей с одним источником И Теория оптимальныхрешений.— Киев : Ин-т кибернетики
АН УССР, 1980.— С. 81—87.
Трубин В. А , Чумаков В. М. Задача унификации и размещения технических средств П Теория оптимальных решений.— Киев : Ин-т кибернетики АН УССР, 1979.—С. 69—75.
Уздемир А. П. Схема последовательной декомпозиции в задачах оптимизации /7 Автоматика и телемеханика.— 1980.— № 11.— С. 94—105.
Устюжанинов В. Г. О существовании и эффективности оптимальных алгоритмов случайного поиска н Пробл. случайн. поиска.— 1981.— Вып. 9.— С. 9— 29.
Фесенко А. Г. Двойная решетчатая укладка конгруэнтных многоугольных объек тов И Докл. АН УССР. Сер. А.— 1981.— № 1.— С. 78—81.
Филоненко Н. В. О решении некоторых задач эффективной организации обработки данных в вычислительных системах // Вычислительные аспекты в пакетах прикладных программ.— Киев : Ин-т кибернетики АН УССР, 1979.— С. 89— 95.
Финкельштейн Ю. Ю. Приближенные методы и прикладные задачи дискретного программирования.— М. : Наука, 1976.— 264 с.
Фридман Л. Л. О некоторых современных направлениях в дискретной оптимизации // Экономика и мат. методы.— 1977.— 13, № 5.— С. 1115—1131.
Хачиян Л. Г. Полиномиальный алгоритм в линейном программировании // Докл. АН СССР.— 1979.— 244, № 5.—С. 1093—1096.
Ху Т. Целочисленное программирование и потоки в сетях.— М. : Мир, 1974.— 520 с.
Цурков В. И. Декомпозиция в задачах большой размерности.— М. : Наука, 198 L— 352 с.
Чаран В. С. Линейные преобразования и выпуклые множества.— Киев : Вита шк., 1978.— 191 с.
Червак Ю. Ю. Возвращающийся алгоритм метода отсечений и метод ветвей и границ И Экош мика и мат. методы.— 1978.— 14, № 5.—С. 1002—1()05.
Червак 10. Ю. Дискретное программирование, геометрические методы построения отсечений // Там же.— 1974.— 10, № 5.— С. 957—963.
Червак Ю. Ю. Методы лексикографической оптимизации и их применение : Авто- реф. дне. ... д-ра физ.-мат. наук.— К., 1981.— 24 с.
Червак Ю. 10. Об одном методе отсечений для дискретных задач // ^ кр. мат. журн.— 1971.—№ 6.—С. 839—843.
Червак Ю. 10. Поиск лексикографически максимальной дискретно определенной точки выпуклого множества ll Мат. методы решения экон, задач.— 1983.— Сб. 8.— С. 69—75.
Черенин В. П. Решение некоторых комбинаторных задач оптимального планирования методом последовательных расчетов Ч Материалы конф, по опыту и перспективам применения мат методов и ЭВМ в планир.— Новосибирск : Ин-т математики: Ин-т экономики АН СССР. Сиб. отд-ние, 1962.— С. 41 — 54.
Черенин В. П., Хачатуров В. Р. Решение методом последовательных расчетов одного класса задач о размещении производства И Экономика и мат методы.— 1965.— 1, № 2.—С. 161-167.
Чуев Ю. В.» Погожев И. Б. Иерархическая система задач оптимизации /' Исследование операций : Методол. аспекты.— М. : Наука, 1972.— С. 63—71.
Шкурба В. В. Интервалы очередности в задачах упорядочения И Кибернетика.— 1970.— № 2.- С. 77—79.
Шор Н. 3. Методы минимизации недифференцируемых функций и их приложения.— Киев : Наук, думка, 1979.— 200 с.
Электрические системы . Кибернетика электр. систем / Под ред. В. А. Веникова.— М. : Высш, шк., 1974.— 328 с.
Эрдеш М., Спенсер Дж. Вероятностные методы в комбинаторике.— М * Мир, 1976.— 131 с.
Ющенко Е. Л., Перевозчикова О. Л. Развитие языков программирования и диалоговых систем в СССР И Кибернетика.— 1976.— № 6.— С 16—33.
Albers S. Zur Losung des Cluster-Analyse-Problems iiber das zet Partitioning Problem H Proc. Operat. Res. 9. DGOR. Pap. Annu. Meet., Regensburg, 19—21 Sept., 1979.— S. e.— 1980.- S. 466-472.
Baily M. G., Gillet В. E. Parametric integer programming analysis: a contraction approach П J. Oper. Res. Soc. Jap.— 1980.— 31, N 3.— P. 257—262.
Balas E. Intersection cuts — a new type of cutting planes for integer programming П Oper. Res.— 1971.— 19, N I.- P. 19-39
Balinski Al. Integer programming* Methods, uses, computation П Manag. Sci.— 1965.- 12, N 3.- P. 253—313.
Bank B. Qualitative Stabilitatsuntersuchungen rein -und gemischtganzzahliger linearer parametrischer Optimierungs — probleme H Seminarber Humboldt-Univ. Berlin Sec. Math.— 1978.- 14, N 6.- S. 1—111.
Benders J. F. Partitioning procedures for solving mixed variables programming problems 11 Numer. Math.— 1962.— 4, N 3.— P. 238—252.
Bilde O., Kjarup J. Sharp lower bounds and efficient algorithms for the simple plant location problems П Annals of discrete mathematics.— Amsterdam etc.: North - Holland, 1977.— Vol. 1.- P. 79-116.
Claude-Alain B. Enumerative cuts. : I M Oper. Res.— 1973.— 21, N 1 — P. 61— 89.
Cook S. A. The complexity of theorem-proving procedures// Proc. 3rd ann ACM: Symp. on theory of computing, association for computing machinery. New York, 1969.— New York, 1971.- P. 151-158.
Cooper A. W. Postoptimality analysis in nonlinear integer programming the righthand side case H Nav. Res. Log. Quart.— 1981.— 28, N 2.— P. 301—307.
Dantzig G. B. Discrete-variable extremum problems II Oper. Res.— 1957.— 5, N 2.— P. 266—277.
Efromson M. A., Ray T. L. A branch bound algorithm for plant location П Ibid.— 1966.— 14, N 3.— P. 361—368.
Flacco A. V., Hutzler W. P. Basic results in the development of sensitivity and stability analysis in nonlinear programming H Comput. and Oper. Res.— 1982.— 9, N 1.— P. 9—28.
Galder J. Some elementary properties of interval convexities//J. London Math. Soc.— 1971.- 2, N 3.- P. 422—428.
Garfinkel R. S., Nemhauser G. L. Integer programming.— New York : Wiley, 1972.
Geoffrion A. M., Marsten R. E. Integer programming: a framework and state-of- the-art survey 11 Manag. Sci.— 1972.— 18, N 9.— P. 465—491.
Geofrion A. M., Nauss R. Parametric and postoptimality analysis in integer linear programming// Ibid.— 1977.— 23, N 5.— P. 453—466.
Gomort) R. E. Outline of an algorithm for integer solution to linear programs// Bull. Amer. Math. Sqc.— 1958.— 64. N 5.— P. 275—278.
Gordon A. D Methods of constrained classification H Anal, donnees et inf. cours commis communeur. Fontainebleau, 1979.— S. e.— 1980.— P. 161—171.
Graves G. №.. Whinston A. B. An algorithm for the quadratic assigment problem H Manag. Sci.— 1970.— 17, N 7.— P. 453—471.
Guddat J. On some actual question in parametric optimization И Математические методы и исследование операций : Докл. Междунар, конф. (София, 17—22 нояб., 1980).—София, 1981.—С. 39—54.
Hoffer J. Megengedett negoldasok virgalataval bovitett Benders dekompozicios algorithmus// Alkalm. mat. lapok.— 1979.— 5, N 12.— P. 177—190.
Holm S., RleinD. Discrete right hand side parametrization for linear integer programs 11 Eur. J. Oper. Res.— 1978.— 2, N 1.— P. 50—53.
Hopcroft J. E., Karp R. M. An n11 algorithm for maximum matching in bipartitle graphs H S\NM J. Comput.— 1973.— 2, N 2.— P. 225—231.
Hrouda J. The Bender’s method and parametrization on the right hand sides in the mixed integer linear programming problem II Appl. Math.— 1976.— 21, N 5.— P. 327—364.
Ibaraki L Integer programming formulation of combinatorial optimization problems // Discrete Math.— 1976.— 16, N 1.— P. 39—52.
Ibarra О. H., Kim С. E. Fast approximation algorithms for the knapsack and sum of subset problems// Assoc. Comput. Mach.— 1975.— 22, N 3.— P. 463—468, 209. Juel H. Bounds in the generalized weber problem under locational uncertainty H Oper. Res.— 1981.— 29, N 6.— P. 1219—1227.
Karp R. M. Reducibility among combinatorial problems//Complexity of computer computations / Eds R. E. Miller, J. W Thatche.— New York: Plenum, 1972.— P. 85—103.
Klee W., Minty D. How good is the simplex algorithm?//Inequalities.— New York: Acad, press.- 1972.— Vol. 3.— P. 159—175.
Klein D., Holm S. Integer programming postoptimal analysis with cutting planes П Manag. Sci.— 1979.— 25, N 1.— P. 64—72.
Knut R. Ressourcenaufspaltung fur diskrete Optimierungsaufgaben U Math. Opera tionsforsch. und Statist. Ser. Optimiz.— 1976.— 7, N 6.— S. 831—842.
Land A., Powell S, Computer codes for problems of integer programming II Annals of discrete mathematics.— Amsterdam etc. 1979.— Vol. 5.— P. 423—426.
Lawler E. Fact approximation algorithms for knapsack problems// Math. Oper. Res.— 1979.— 4, N 4.— P. 339—357.
Levin L. A. Universal sorting problems U Probl. peredaci Inform. Trans.— 1973.— N 9.— P. 265—266.
Libura M. Integer programming problems with inexact objective function И Contr. and Cybern.— 1980.- 9, N 4.— P. 189—202.
Maroti L., Stahl J. Solving a largescale LP-problem applying decomposition// Surv. math, program: Proc. 9th Intern, math, program, symp., Budapest, 1976.— Budapest, 1979.— Vol. 1.— P. 85—93.
Me Bride R. D., Yormark J. S. Finding all solutions for a class of parametric quadratic integer programming problem // Manag. Sci.— 1980.— 26, N 8.— P. 784—795.
Page E. S. On Monte-Carlo methods in congestion problems. 1. Searching for an optimum in discrete situations//Oper. Res.— 1965.— 13, N 2.— P. 291— 299.
Piper C. J., Zoltners A. A. Implicit enumeration based algorithms for postoptimizing zero — one programs h Nav. Res. Log. Quart.— 1975.— 22, N 4.— P. 791— 809.
Piper C. J., Zoltners A. A. Some easy postoptimality analysis tor zero — one programming//Manag. Sci.— 1976.— 22, N 7.— P. 759—765.
Powell S. Current computer codes П Annals of discrete mathematicas.— Amsterdam etc.: North — Holland.— 1979.- Vol. 5.—P. 279-283.
Rinnooy Kan A. H. G. Sheduling.— Ibid.— P. 423—426.
Roodman G. M. Postoptimality analysis in zero-one programming // Manag. Sci.— 1972.— 19, N 3.— P. 435—447.
RoodmanG. M. Postoptimality analysis in integer programming by implicitenume ration: the mixed integer case И Nav. Res. Log. Quart.— 1974.— 21, N 4.— P. 595—607.
Sahni S. Algorithms for scheduling independent task 11 J. Assoc. Comput. Mach.— 1976.— 23, N 1.— P. 114—127.
Seelander J Einige Bemerkungen zur Bestirnmung von Stabilitatsbereichen in der reinganzzahligen linearen Optimierung // Math. Operationsforsch. und Statist. Ser. Optimiz.- 1980.— H, N 2.— S. 261—271.
Seelander J. Uber die Bestirnmung von Stabilitatsbereicher bei speziellen gernis- chtganzahiigen linearen Optimierungs problemen И Ibid.— N 3.— S. 447—454.
Slater P. J. On locating a facility to service areas within a network // Oper. Res.— 1981.— 2 9, N 3.— P. 523—531.
Trauth C. A., Woolsey R. E. Integer linear programming: A study in computational efficiency // Manag. Sci.— 1969.— 15, N 9.— P. 481—493.
Wolsey L. A. Integer programming duality: price functions and sensitivity analysis// Math. Program.— 1981.— 20, N 2.— P. 173—195.'
Zaden L. A. Fuzzy sets П Inform, and Contr.— 1965.— 18, N 3.— P. 338 - 353.
СПИСОК ДОПОЛНИТЕЛЬНОЙ ЛИТЕРАТУРЫ
КО ВТОРОМУ ИЗДАНИЮ
Батищев А. Ф., Перепелица В. А. Об одном алгоритме нахождения оптимального севооборота И Оптимальное планирование.— Новосибирск : Ин-т математики СО АН СССР, 1970.— Вып. 16.—С. 16—20.
Веселов Е. Н.» Евтушенко Ю. Г., Мазурик В. 11. Диалоговая система оптимизации ДИСО-2 И Пакеты прикладных программ : Проблемы и перспективы.— М. : Наука, 1982.— С. 35—46.— (Алгоритмы и алгоритмические языки).
Воеводин В. В. Математические модели и методы в параллельных процессах.— М. : Наука, 1986.— 296 с.
Вопросы применения результатов теории распознавания при автоматизирования выборе алгоритмов решения задач в пакетах программ / IO. И. Журавлев, И. В. Сергиенко, В. И. Артеменко, А. М. Чернякова Н Кибернетика.— 1986.— № 3.—С. 11—17.
Данциг Дж. Линейное программирование, его обобщения и применение.— М. : Наука, 1966.— 600 с.
Глушков В. М. Фундаментальные исследования и технология программирования И Программирование.— 1980.— № 2.— С. 3 - 13.
Глушков В. М., Капитонова Ю. В., Летичевский А. А. О применении метода формализованных технических заданий к проектированию программ обработки структур данных И Программирование.— 1978.— №6.— С. 31—43.
Гордеев Э. Н., Леонтьев В. К. Траекторные параметрические задачи// Журн. вычисл. математики и мат. физики.— 1984.— 24, № 1.— С. 37—46.
Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи.— М. : Мир, 1982.— 416 с.
Емеличев В. А., Павлечко В. А. Пакет прикладных программ оптимального планирования на промышленных предприятиях//Кибернетика.— 1985.— № L— С. 112—119.
Емеличев В. А., Перепелица В. А. К оценке сложности многокритериальных транспортных задач // Докл. АН БССР.— 1986.— 30, № 7.— С. 593—596.
ЕмеличеваЕ. В., Ковалев М. М. Метод частичных порядков на матроидных СТруК* турах И Сообщ. АН ГССР.— 1985.— 120, № 2.— С. 269—272
Ерешко Ф. И. Системный анализ в ставропольском проекте ведения сельского хозяйства Н Вести, с.-х. науки.— 1984.— № 1.— С. 40—49.
Еремин И. И. Структура и организация пакета оптимизации ОПТИМЛ-2 И Пикеты прикладных программ : Методы оптимизации.— М. : Наука, 1984.— С. 3— 25.— (Алгоритмы и алгоритмические языки).
Еремин И. И., Мазуров В. Д., Астафьев Н. Н. Несобственные задачи линейного и выпуклого программирования.— М. : Наука, 1983.— 336 с.
Ершов А. П. Опыт интегрированного подхода к актуальной проблематике программного обеспечения // Кибернетика.— 1984.— № 3.— С. 11—21.
Ершов А. П., Ильин В. П. Пакеты программ как методология решения прикладных задач И Пакеты прикладных программ : Проблемы и перспективы.— М. : Наука, 1982.— С. 4—18.— (Алгоритмы и алгоритмические языки)
Журавлев Ю. И. Экстремальные алгоритмы в математических моделях для задач распознавания и классификации//Докл АН СССР.— 1976.- 231, № 3.— С. 532—534.
Карначук В. И., Коновалов А. И. Применение модульного подхода к разработке программ в пакете математической физики // Пакеты прикладных программ : Проблемы и перспективы.— М. : Наука, 1982.— С. 35—46.— (Алгоритмы и алгоритмические языки).
Карпов В. Д., Корягин Д. А., Самарский А. А. Принципы разработки пакетов прикладных программ для задач математической физики // Журн. вычисл. математики и мат. физики.— 1978.— 18, № 2.— С. 458—467.
Ковалев М. М., ПисарукН. И. Порядковая выпуклость // Diskrete Optimierung.— Jena : Universitat, 1985.— P. 37—53.
Козерацкая JI. H. Области устойчивости одной задачи целочисленного программирования И Докл. АН УССР. Сер. А.— 1986.— № 2.— С. 57—60.
Колоколов А. А. Верхние оценки числа отсекающих плоскостей для циклического алгоритма Гомори//Методы моделирования и обработки информации.— Новосибирск : Наука, 1976.— С. 106—116.
Колоколов А. А. Регулярные отсечения при решении задач целочисленной оптимизации /I Управляемые системы.— Новосибирск : Наука, 1981.— 21.— С. 18—25.
Колоколов А. А. Нижняя оценка числа итераций для одного класса алгоритмов отсечения И Управляемые системы.— Новосибирск : Наука, 1983.— 23.— С. 64—69.
Колоколов А. А. Алгоритмы отсечения и некоторые разбиения множеств И Дискретная оптимизация и численные методы решения прикладных задач.— Новосибирск : ВЦ СО АН СССР, 1986.— С. 50—67.
Корягин Д. А., Мартынюк В. В. Развитие проблематики системного обеспечения пакетов прикладных программ в СССР / Пакеты прикладных программ: Проблемы и перспективы.— М. : Наука, 1982.— С. 124—139.— (Алгоритмы и алгоритмические языки ).
Кристофидес Н. Теория графов. Алгоритмический подход.— М. : Мир, 1978.— 482 с.
Лебедев В. Ю., Огнивцев С. Б. Использование и математическое обеспечение макромоделей региона И Вести, с.-х. науки.— 1984.— № 1.— С. 57—60.
Лебедева Т. Т., Сергиенко И. В., Солтон В. П. Об условиях совпадения локального и глобального минимумов в задачах дискретной оптимизации Н Докл. АН СССР.— 1985.— 283, № 2.— С. 287—289.
Лепеха Н. П. Разработка алгоритмов и пакета программ идентификации объектов управления : Автореф. дис. ... канд. физ.-мат. наук.— Киев, 1969.— 16 с.
Майерс Г. Надежность программного обеспечения.— М. : Мир, 1980.— 360 с.
Майника А. Алгоритмы оптимизации на сетях и графах.— М. : Мир, 1981.— 328 с.
Математическая оптимизация: вопросы разрешимости и устойчивости / Под ред. Е. Г. Белоусова, Б. Банка.— М. : Изд-во МГУ, 1986.—216 с.
Михайлюк В. А. Обеспечение перенастройки пакетов на различные входные языки в системе СЕПАК // Программирование.— 1982.— № 2. — С. 45—51.
Михайлюк В. А. О применении метода формализованных технических заданий к построению системного программного обеспечения пакетов программ И Кибернетика.— 1982.— № 3.— С. 53—57.
Михалевич В. С., Трубин В. А., Шор Н. 3. Оптимизационные задачи производственно-транспортного планирования.— М. : Наука, 1986.— 260 с.
Модульная система программ обработки экспериментальных данных / Н. Н. Говорун, Л. Дорж, В. Г. Иванов и др. И Программирование и математические методы решения физических задач.— Дубна: ОИЯЙ, 1974.— С. 555—564.
Моисеев Н. Н. О методологии математического моделирования процессов сельскохозяйственного производства// Вести, с.-х. науки.— 1984.— № 1.— С. 14—20.
Нелинейные явления и вычислительный эксперимент / А. А. Самарский, С. П. Курдюмов, Т. С. Ахромеева, Г. Г. Малинецкий И Вести. АН СССР.— 1985.— № 9.— С. 64—77.
Нечаев В. М. Числовые системы.— М. : Просвещение, 1975.— 200 с.
Описание пакета программ недифференцируемой и стохастической оптимизации / В. С. Михалевич, Ю. М. Ермольев, В. Т. Лоскутов, А. Н. Голодников и др. И Исследование операций и АСУ.— Киев 1 Вища шк., 1986.— Вып. 27.— С. 1—19.
Пакет программ ДИСПРО-3: назначение, классы решаемых задач, системное и алгоритмическое обеспечение / В. С. Михалевич, И. В. Сергиенко, Н. 3. Шор, и др. // Кибернетика.— 1985.— № 1.— С. 56—71.
Пападимитриу X.» Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность.— М. : Мир, 1985.— 512 с.
Параметрическая оптимизация и методы аппроксимации несобственных задач математического программирования: Сб. статей.— Свердловск : УНЦ АН УССР, 1985.— 136 с.
Парасюк И. Н., Сергиенко И. В. О задачах планирования вычислений в пакетах прикладных программ// Упр. системы и машины.— 1983.— № 4.— С. 57—65.
Парасюк И. Н., Сергиенко И. В. О некоторых задачах модульного анализа при проектировании пакетов программ И Упр. системы и машины.— 1982.— № 2.— С. 89—94.
Перевозчикова О. Л., Ющенко Е. Л. Системы диалогового решения задач на ЭВМ.— Киев : Наук, думка, 1986.— 264 с.
Перепелица В. А., Сергиенко И. В. К проблеме нахождения множеств альтернатив в дискретных многокритериальных задачах И Кибернетика.—1987.— № 5.— С. 85—93.
Подиновский В. В., Гаврилов В. М. Оптимизация по последовательно применяемым критериям.— М. : Сов. радио, 1975.— 192 с.
Пшеничный Б. Н., Данилин Ю. М. Численные методы в экстремальных задачах.— М. : Наука, 1975.— 319 с.
Раскин Л. Г., Кириченко И. О. Многоиндексные задачи линейного программирования (теория, методы, приложения).— М. : Радио и связь, 1982.— 240 с.
Рвачев В. Л.» Манько Г. П. Математическое обеспечение для уравнений с частными производными, основанные на теории 7?-функций И Пакеты прикладных программ: Проблемы и перспективы.— М. : Наука, 1982.— G. 77—86.— (Алгоритмы и алгоритмические языки).
Редько В. Н. Основания композиционного программирования// Программирование.— 1979.—№ 3.—С. 3—13.
Сакович В, А. Исследование операций (детерминированные методы и модели): Справочное пособие.— Минск : Высш, школа, 1984.— 256 с.
Семенова Н. В. Решение одной задачи обобщенного целочисленного программирования // Кибернетика.— 1984.— № 5.— С. 25—31.
Сергиенко И. В. Вопросы построения и использования математического обеспечения методов оптимизации.— Киев, 1979.— 65 с.— (Препринт / АН УССР. Ин-т кибернетики; № 79—38).
Сергиенко И. В. Операционный метод исследования ЭВМ и систем // Докл. АН УССР. Сер. А.— 1969.— № 5.—С. 421—423.
Сергиенко И. В. Эффективность использования пакетов программ.— Киев : О-во «Знание» УССР, 1982.— 48 с.— (Серия VIII «В лабораториях ученых», № 12/0-во «Знание» УССР,у,
Сергиенко И. В., КозерацкаяЛ. Н., Лебедева Т. Т. Некоторые параметрические задачи целочисленного выпуклого программирования и их приближенное решение И Кибернетика.— 1985.— № 4.— С. 1—5.
Сергиенко И. В.» Шило В. П. Вероятностный подход к оценке эвристик для задач булева линейного программирования И Кибернетика.— 1987.— № 1.— С. 1—6.
Сергиенко И. В., Шило В. П. Полиномиальный асимптотический е-оптимальный алгоритм случайного поиска для задач булева линейного программирования И Докл. АН УССР. Сер. А. — 1987.— № 3.—С. 70—72.
Солтан В. П. d-Выпуклость в графах И Докл. АН СССР.— 1983.— 272, № 3.
Специализированное программное обеспечение прикладных исследований / И. О. Бабаев, С. С. Лавров, Ф. А. Новиков, Т. И. Петрушина И Всесоюз. конф. «Методы математической логики в проблемах искусственного интеллекта и систематическое программирование» : Тез. докл. (Вильнюс, 1980).— Вильнюс, 1980.—Ч. 2.—С. 7—25.
Станевичюс А.-И. А. Новая версия системы линейного программирования ЯП / БЭСМ-6// Пакеты прикладных программ : Методы оптимизации.— М. : Наука, 1984.— С. 47—59.— (Алгоритмы и алгоритмические языки).
Стоян Ю. Г.» Яковлев С. В. Математические модели и оптимизационные методы геометрического проектирования.— Киев : Наук, думка, 1986.— 268 с.
Тамм Б. Г., Тыугу Э. X. Пакеты программ / Техническая кибернетика.— 1977.— № 5.—С. 111—124.
Танаев В. С. Декомпозиция и агрегирование в задачах математического программирования.— Минск. : Наука и техника, 1987.— 183 с.
Теоретическое и экспериментальное исследование некоторых комбинаторных задач / В. А. Трубин, М. М. Гильбурд, В. Н. Дерюгин и др.— Киев, 1984.— 46 с.— (Препринт / АН УССР. Институт кибернетики ; № 84—14).
Тимохин С. Г., Шапкин А. В. О задачах линейного программирования в условиях неточных данных И Экономика и мат. методы.4981.— 17, № 5.— С. 955.
Тихонов А. Н., Арсенин В. Я. Методы решения некорректных задач.— М. : Наука, 1974.— 223 с.
Трубин В. А. Алгоритм решения задачи Штейнера на графах И Медали и алгоритмы решения задач планирования и управления.— Кишинев : Штиинца, 1982.— С. 151—157.
Федоров В. В. К вопросу об устойчивости задачи линейного программирования И Журн. вычисл. математики и мат. физики.— 1975.— 15, № 6.— С. 1412—1423.
Федоров В. В. Численные методы максимина.— М. : Наука, 1979.— 280 с.
Харари Ф. Теория графов.— М. : Мир, 1973.— 302 с.
Хартманис Дж., Хопкрофт Дж. Э. Обзор теории сложности вычислений// Киберн. сб., нов. сер.— М. : Мир, 1974.— Вып. 11.— С. 131—176.
Швартин С. М. Общая задача устойчивости для некоторых классов задач линейного программирования//Докл. АН СССР.— 1985.— 285, № 1.— С. 56—59.
Яненко Н. Н., Карначук В. И., Коновалов А. Н. Проблемы математической тех» нологии И Численные методы механики сплошной среды.— Новосибирск : ВЦ и Ин-т теорет. и прикл. мех. СО АН СССР, 1977.— 8, № 3.— С. 129—157.
Bank В., Hansel R. Stability of Mixed-Integer Quadratic programming Problems.— Berlin, 1982.— 36 p.— (Preprint / Humbold-Univ. Berlin. Sekt. Math.; N 31).
Burkard, В. E., Derigs U. Assignment and matching problems: solution methods with FORTRAN-programs П Lectures notes in economics and math, systems.— 1980.— 148 p.
CookW.,SchrijverA.,TardosE. Sensitivity theorems in integer linear programming // Math. Program.— 1986.— 34,— P. 251—264.
Dijkstra E. W. The Structure of the «THE» — Multiprogramming System // Communications of the ACM.— 1968.— 11, N 5.— P. 341—346.
Falk J. E. Exact solution of inexact linear programs П Oper. Res.— 1976.— 24.
Menger K. Metrische Untersuchungen H Ergebnisse eines mathematischen Kollo- quiums.— Wien.— 1931.— L— P. 20—27.
Ohtake Yshiaki, Nishid Naonori. A branch and bound algorithm for 0—1 parametric mixed integer programming//Oper. Res. Lett.— 1985.— 4, N 1.— P. 41—45 v
Sensitivity, Stability and Parametric Analysis H Math. Programming Study, 1986.— 21.— P. 1—242.
Soyster A. L. Convex programming with set inclusive constraints and applications to inexact linear programming//Oper. Res.— 1973.— 21.— P. 1154—1157.
Soyster A. L. A duality for convex programming with set-inclusive constraints// Oper. Res.— 1974.— 22.— P. 892—898.
Wets Roger J.-B. On the continuity of the value of a linear program and of related polyhedral-valued multifunctions // Math. Program. Study.— 1985.— 24.— P. 19.
Монография
Иван Васильевич Сергиенко
МАТЕМАТИЧЕСКИЕ МОДЕЛИ И МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ
Издание второе, переработанное и дополненное
У тверждено к печати ученым советом Института кибернетики имени В. М. Глушкова АН УССР
Редактор Т. С. Мельник, Художественный редактор И. П. Антонюк Технический редактор И. Н. Лукашенко Корректоры Е. А. Михалец, Л. Н. Рееета, И» В. Точаненко
Информ, бланк № 9637
Сдано в набор 22.06 87 Подп. в печ. 05.10 87. БФ 25662. Формат 60X9OV16 Бум тип. № 1 Лит гари. Выс. печ. Усл. печ. л. 29,5. Усл. кр.-отт 29,5 Уч.- изд л. 31,2. Тираж 1100 экз Заказ 7-1903 Цена 6 р. 60 к
Издательство «Наукова думка». 252601 Киев 4, Репина, 3.
Отпечатано с матриц Головного предприятия РПО «Полиграфкнига», 252057, Киев, ул. Довженко. 3 в Киевской книжной типографии научной книги. 252004, Киев 4, ул. Репина, 4. Зак. 8-38.
Как уже отмечалось в гл. 1, широкую популярность метод ветвей и границ получил после его применения Литтлом, Мурти, Суини и Кэ- рел к решению задачи коммивояжера, в результате чего была показана эффективность решения этой традиционно трудной задачи для 40 городов, которая подкреплялась хорошим численным экспериментом. Затем количество работ, в которых применялась общая вычислительная схема метода для решения различных задач математического программирования, начало резко увеличиваться. Появились публикации, в которых эффективность применения метода ветвей и границ исследовалась как теоретически, так и экспериментально. Основная идея, заложенная в общую схему метода, оказалась достаточно общей
и плодотворной. Значительный опыт успешного применения метода ветвей и границ накопился в последние 15 лет, особенно в связи с его использованием для решения различного рода оптимизационных задач комбинаторного типа.
2 F /=1 2 /=1 /=1
i = 1, ... , т,
где г = min \т> л); ал, ..., air — наибольшие по абсолютной величине г коэффициентов t-й строки матрицы А; Л — некоторый параметр, принимающий значения из интервала I 0, -тИ. Отметим, что выбор послед-
. A2(s)<01