
- •Целочисленные и комбинаторные задачи лп
- •Задача о назначении
- •Задача о коммивояжере.
- •Методы решения целочисленных задач
- •Метод ветвей границ (вг)
- •Условия правильного разбиения при ветвлении
- •Применение метода ветвей границ к решению задачи о коммивояжере
- •Понятие об- оптимальном решении задачи о коммивояжере
- •Общая схема ветвления для целочисленной задачи лп
Применение метода ветвей границ к решению задачи о коммивояжере
Ослабленной задачей для ЗК выбираем ЗН.
Решив ЗН с помощью
вспомогательной
процедуры, проверяем,
выполняется ли для ее решения условие,
что матрица решенийне
имеет подциклов.
Наличие подциклов означает следующее.
Последовательность
городов i1,
i2,...,
in,
задаваемая матрицей
,
такова, что она распадается на два или
более подциклов вида:j1,
j2,...,
jk;
k<n
, причем i1=F(
ik
).
Главным здесь является построение процедуры ветвления. Один из подходов состоит в следующем.
Пусть у текущего
решения ослабленной задачи не выполняется
условие С, то есть решение распадается
на подциклы. Выберем подцикл с наименьшим
количеством звеньев. Каждому звену
такого подцикла
сопоставим новую задачу о назначении,
в которой вместо старого значения
расстояния между городами
и
положим
=
.
Это условие исключает попадание звена
в оптимальное решение соответствующей
задачи. Это делается для того, чтобы в
дальнейшем у нас не возникало оптимальное
решение с указанным подциклом.
Наикратчайший цикл берется для того,
чтобы количество ветвей было минимальным,
так как разветвление будет содержать
столько задач, сколько звеньев в
кротчайшем подцикле.
В результате мы получим ряд задач, объединение допустимых решений которых совпадают с множеством допустимых решений ветвимой задачи, кроме ее оптимального решения, которое нам не подходит.
Понятие об- оптимальном решении задачи о коммивояжере
Иногда вовсе
необязательно решать задачу абсолютно
точно, а достаточно найти решение,
оптимальное значение целевой функции
которого отличается от точного не более,
чем на заданное число
.
Это может значительно сократить
трудоемкость решения.
Заметим, что
оптимальное решении задачи о коммивояжере
всегда не
больше оптимального
решения соответствующей задачи о
назначении
(см.
рисунок).
Итак,
.
Зададимся числом
и решим задачу о назначении для данной
задачи о коммивояжере, получив значение
.
Далее, реализуя метод ВГ, будем следить
за текущим значением рекорда. Если на
некотором шаге этот рекорд
окажется левее
точки
, то есть будут выполнять неравенства
,
то мы можем утверждать, что
.
Это означает, что
текущий рекорд отличается по значению
целевой функции от оптимального решения
задачи о коммивояжере меньше, чем на
.
На этом решение считается найденным.
Такое решение
называется
-
оптимальным решением задачи о коммивояжере.
Общая схема ветвления для целочисленной задачи лп
Пусть имеем целочисленную ЗЛП.
Систему уравнений-ограничений запишем в матрично-векторной форме
Целевая функция имеет обычную форму
Естественные ограничения запишем в новой форме
Здесь, как обычно, левые границы интервалов могут быть равны 0, а правые определяются физическими условиями задачи.
Наконец, мы имеем требование целочисленности всех или части компонент решения.
В данном случае ветвление в пункте 6 алгоритма метода ВГ можно проводить так.
Сняв требование целочисленности получим задачу L. Решим ее симплекс-методом
Пусть полученное оптимальное решение нецелочисленное, то есть хотя бы одна из координат, например, хк не является целым числом.
Обозначим через [xk] – целую часть хк .
Теперь вместо только что решенной задачи построим два разветвления следующим образом.
В обеих ветвях целевую функцию и условия (1) оставим прежними. Оставим прежними и все неравенства (3) кроме k-го.
В первой задаче заменим это неравенство на неравенство
а во 2-я задаче – на неравенство
,
где
.
Итак, вместо задачи
L
получили две задачи (L/)
и (L//).
При этом мы выбросили отрезок (),
который явно не содержит целых чисел.
На этом процедура ветвления заканчивается.
Очевидно, что в данном случае дерево задач будет бинарным.