Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мат. мет. исл. оп Погорелов / Лекции по мат. мет. ИО.doc
Скачиваний:
67
Добавлен:
26.03.2015
Размер:
3.62 Mб
Скачать

13.3. Метод Дакина

Метод Дакина использует метод ветвей и границ для решения задачи целочисленного линейного программирования (ЦЛП). ЦЛП называется чистым, если все переменные должны быть целыми, и смешанным, если только некоторые переменные должны быть целыми.

Пример 13.2. Рассмотрим задачу:

минимизировать при условиях

.

  1. Принимаем .

  2. Решаем ЛП-ослабление данной задачи, и получаем , оптимальное значение целевой функции:.

  3. Формируем две подзадачи, добавляя ограничения: (подзадача) или(подзадача).Это общий подход метода Дакина: делить задачи на подзадачи, используя ограничения вида: или,где является решением ослабленной задачи.

  4. ЛП-ослабление является недопустимым, и мы его исключаем.

  5. Оптимальным решением задачи является:с оптимальным значением целевой функции:.

  6. Делим на две подзадачи в соответствии с дополнительными ограничениями:(подзадача) или(подзадача).

  7. Оптимальным решением задачи является:. Мы получили целочисленное решение и можем записать его как лучшее решение на данный момент. Принимаем.

  8. Оптимальное решение для : (0, 1.5) – не является целочисленным. При этом, значение целевой функции:. Удаляем.

  9. Больше нет активных подзадач, оптимальное решение: .

Рис. 13.2. Пространство возможных решений

Лекция 14. ЗАДАЧА КОММИВОЯЖЕРА

14.1. Виды алгоритмов

Пусть задан неориентированный граф G = (N, A), состоящий из n узлов и m дуг с весом для каждой дуги.Задача коммивояжера (ЗК) заключается в том, чтобы найти в графе гамильтонов цикл минимального веса. Цикл называется гамильтоновым, если он обходит все узлы графа по одному разу.

  1. Точные алгоритмы гарантируют оптимальное решение, однако могут иметь экспоненциальное число итераций. Точный алгоритм для ЗК формулируется как ЦЛП, решается эта задача с помощью метода ветвей и границ.

  2. Приближенные алгоритмы имеют в худшем случае полиномиальное время вычислений, обеспечивая субоптимальное решение с гарантированной оценкой степени субоптимальности. Мы рассмотрим такой алгоритм для ЗК, основанный на методе минимального остовного дерева.

  3. Эвристические алгоритмы обеспечивают субоптимальные решения без каких-либо оценок их качества. Они не всегда имеют полиномиальное время работы, но, как показывает опыт, часто являются удачным компромиссом между требованиями оптимальности и скорости. Мы рассмотрим два таких метода, которые используются для ЗК: локальный поиск и имитация отжига.

14.2. Точные методы

Примем, что (или 0), если дугасуществует (или нет) в цикле. Определим

.

В цикле имеются две дуги, инцидентные каждому узлу, так что

. (14.1)

Кроме того, для любого разбиения узлов графа на подмножества S и должны существовать, как минимум, два ребра, соединяющихS и . Таким образом, мы также должны иметь

для всех , таких, что или . (14.2)

Ниже приводится формулировка ЗК, называемая «сечение»:

минимизировать

при условиях (14.1), (14.2) и . Заметим, что мы имеем экспоненциальное число ограничений, а именноограничений типа (14.2). В качестве альтернативы мы можем заменить (14.2) на

, для всех , таких что что или . (14.3)

Это ограничение гарантирует, что рассматриваются только те циклы, которые включают все n узлов графа. Мы снова имеем экспоненциальное количество ограничений. Такая формулировка ЗК называется «исключение подциклов». ЛП-ослабления этих двух формулировок имеют то же самое количество допустимых множеств (хотя это и не очевидно).