
- •Лекция 20. П.17. Транспортная задача.
- •П.18. Дискретное программирование.
- •18.1. Классические задачи целочисленного программирования.
- •1. Общая задача целочисленного программирования.
- •2. Задача о контейнерных перевозках (задача о рюкзаке).
- •3. Задача о назначении (проблема выбора, задача о женихах и невестах).
- •4. Задача коммивояжера (бродячего торговца).
- •18.2. Суть методов дискретной оптимизации.
- •18.3. Метод ветвей и границ.
3. Задача о назначении (проблема выбора, задача о женихах и невестах).
Один из видов этих задач рассматривался в разделе «Элементы теории графов» («Паросочетания»). В общем виде эта задача формулируется так.
Имеется nисполнителей,
которые могут выполнятьnразличных работ. Известна полезность,
связанная с выполнениемi-м
исполнителемj-й работы
.
Необхо-димо назначить исполнителей на
работы, чтобы добиться максимальной
полезности при условии, что каждый
исполнитель может быть назначен только
на одну работу и за каждой работой должен
быть закреплен только один исполнитель.
Для составления математической модели
задачи обозначим через
факт назна-чения или неназначенияi-го
исполнителя наj-ю
работу. Так как количество исполнителей
равно количеству работ и каждый из них
может быть назначен только на одну
работу, то
должны принимать только два значения:
1 или 0.
Итак, приходим к следующей математической
модели задачи: найти план назна-чения
,
который масимизирует суммарную полезность
назначений
при следующих ограничениях: каждый исполнитель назначается только на одну работу
,
на каждую работу назначается только один исполнитель
,
условие неотрицательности и целочисленности (булевости)
.
Легко видеть, что задача о назначении
– частный случай транспортной задачи
при
.
Однако с учетом специфики задачи для
ее решения разработаны специаль-ные,
более эффективные, алгоритмы.
4. Задача коммивояжера (бродячего торговца).
Математическая модель этой задачи была введена в разделе «Элементы теории графов» («Гамильтонов цикл»).
18.2. Суть методов дискретной оптимизации.
Во всех случаях решение ЗЦП, казалось бы, может быть найдено обычными мето-дами с отброшенными условиями целочисленности и последующим округлением нецелых переменных в ответе. Однако такое округление может привести к решению, далекому от оптимального. Рассмотрим, например, геометрическую интерпретацию задачи дискрет-ного линейного программирования.
С практической точки зрения подобный подход допустим в тех случаях, когда значения переменных, образующих оптимальной решение исходной задачи, достаточно велики и погрешностями округления можно пренебречь.
В первом приближении методы целочисленной оптимизации можно разделить на две основные группы: точные и приближенные. К точным относятся методы отсечения и комбинаторные методы (метод ветвей и границ). Это универсальные методы дискретной оптимизации. Кроме универсальных, имеется много специальных точных методов, учи-тывающих специфику задачи. Однако точные методы имеют слабую сходимость. Многие экспериментальные и прикладные задачи не удалось решить точными методами за десят-ки и сотни тысяч итераций, хотя их конечность теоретически доказана. Трудности машин-ной реализации точных методов привели к появлению различного рода приближенных методов, построенных на использовании особенностей конкретной задачи. Среди прибли-женных методов наметились два направления: 1) разработка детерминированных эврис-тических алгоритмов, учитывающих специфику задачи; 2) использование случайного поиска в сочетании с локальной оптимизацией.
Общая идея решения задачи дискретного программирования методами отсечения состоит в следующем. Исходная задача решается сначала без учета ограничений целочис-ленности. Если полученный оптимальный план удовлетворяет условиям целочисленности, то задача решена. В противном случае к ограничениям исходной задачи добавляется но-вое, обладающее следующими свойствами: 1) полученный нецелочисленный план нару-шает это ограничение; 2) любой целочисленный допустимый план исходной задачи заве-домо удовлетворяет и новому ограничению. Затем задача решается с учетом нового ограничения. В случае необходимости добавляется еще одно ограничение и т.д. Геомет-рически каждому новому ограничению соответствует поверхность, которая отсекает от области допустимых решений некоторую его часть с оптимальной точкой с нецелыми координатами, но не затрагивает ни одной из целочисленных точек этого многогранника.
На основе этой идеи американский математик Р.Гомори предложил ряд сходящих-ся алгоритмов решения задач дискретного линейного программирования. Ему удалось обосновать правила построения дополнительных ограничений и доказать конечность алгоритмов.
Для решения задач дискретного (особенно нелинейного) программирования получили широкое распространение комбинаторные методы направленного частичного перебора допустимых планов. Из них наиболее универсален метод ветвей и границ.