- •Раздел 13. Целочисленное программирование.
- •13.2. Условие целочисленности многогранных множеств
- •13.3. Методы решения задачи целочисленного линейного программирования
- •13.3.1 Первый алгоритм Гомори решения полностью целочисленных задач
- •Решение задачи :
- •13.3.4. Метод ветвей и границ
- •Пример. Максимизировать
- •13.4. Примеры задач целочисленного программирования
13.4. Примеры задач целочисленного программирования
Задача о коммивояжере. Имеется n городов. Выезжая из одного, коммивояжер должен объехать все и вернуться в исходный. В каждый город можно заезжать только один раз, поэтому маршрут коммивояжера образует замкнутый цикл без петель. Задана матрица расстояний между городами (считаем, что ); разумеется . Матрица расстояний не предполагается симметричной. Требуется найти кратчайший замкнутый маршрут.
Построим математическую модель задачи, обозначая:
где .
Требуется минимизировать
(13.34)
при условиях
(13.35)
(13.36)
(13.37)
Здесь и – произвольные вещественные значения.
Покажем, что модель (13.34) – (13.37) описывает задачу о коммивояжере. Действительно, условие (13.35) означает, что торговец из каждого города выезжает только один раз; (13.36) – въезжает в каждый город только один раз; (13.37) – обеспечивает замкнутость маршрута, содержащего n городов, и отсутствие петель.
Задача о коммивояжере наиболее эффективно решается методом ветвей и границ. Имеет большое прикладное значение.
Задача о назначениях. Пусть требуется выполнить n различных работ и имеется n механизмов (машин) для их выполнения, причем каждый механизм может использоваться при любом типе работ. Производительность каж-дого механизма на различных работах может быть различной. Обозначим через производительность i-го механизма на j-й работе. Пусть каждый механизм может выполнять только одну какую-либо работу. Задача заключается в таком распределении механизмов по работам, при котором суммарная производительность максимальна.
Построим математическую модель этой задачи. Сопоставим каждому из возможных вариантов распределения машин по работам набор значений неизвестных , относительно которых условимся, что , если в данном варианте i-й механизм назначается на j-ю работу, и , если i-й механизм назначается не на j-ю работу. Для любого варианта среди чисел должно быть точно n единиц, причем должны выполняться следующие условия:
(каждый механизм назначается на одну работу) и
(на каждую работу назначается один механизм). Суммарная производительность при данном варианте назначения машин на работы выразится суммой
.
Таким образом, математическая модель задачи о назначениях будет такой:
при условиях