Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции для регистрации (2).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.05 Mб
Скачать

Методы решения задач целочисленного программирования.

Наиболее распостранеными методами решения целочисленных задач являются метод отсекающих плоскостей и метод ветвей и границ.

Метод отсекающих плоскостей.

Идея этого метода предложена Данцингом и поэтому этот метод называют иногда методом Данцинга.

Пусть необходимо решить задачу ЦП:

Отбросив на время условие целочисленности, найдем оптимальный опорный план. Если он удовлетворяет условию целочисленности, то данный план искомый. В противном случае нужно сформулировать дополнительное ограничение, которому заведомо удовлетворяет любой целочисленный план, но не удовлетворяет найденный оптимальный план. Такое ограничение называют правильным отсечением. Геометрически правильное отсечение означает гиперплоскость, отсекающую от выпуклого многогранника соответствующей задачи ЛП некоторый многогранник, содержащий все целочисленные планы.

Таким образом, исходную систему ограничений дополняют правильным отсечением, после чего разыскивают оптимальное решение новой ЛП – задачи.

Если дополнительное ограничение сформировано правильно, то можно полагать, что через конечное число итераций будет найдено искомое решение задачи ЦП либо будет обнаружена несовместимость ее условий.

Метод ветвей и границ

Идея этого метода состоит в последовательном ветвлении исходного множества решений на дерево подмножеств с нахождением решений на всех подмножествах пока не получим искомое.

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

Таким образом, исходное множество разбиваем на два непересекающихся подмножества:

Находим решение и оценки на множествах. Если оба решения полученные на этих множествах оба целочисленны, то оптимальным будет то, у которого оценка больше. Если же, допустим на множестве получено целочисленное решение, а на - не целочисленное, но оценка второго множества больше чем оценка первого, то продолжаем ветвление множества , така как на следующем этапе мы можем получить целочисленное решение, оценка которого будет больше, чем оценка множества .

Ветвление продолжается до тех пор пока не будет получено целочисленное решение с максимально большой оценкой.

ЛЕКЦИЯ 12.

Решение задачи коммивояжера методом ветвей и границ

Задача про коммивояжера. Пусть n есть городов. Известна матрица расстояний между любой парой городов .Выезжая из начального города, коммивояжер должен побывать во всех городах ровно один раз и вернуться в начальный город. Необходимо узнать в каком порядке нужно объезжать города, чтобы пройденный путь был минимальным.

Введем неизвестные

Тогда получаем задачу

Первая группа ограничений говорит о том , что коммивояжер выезжает из каждого города один раз, а вторые о том, что он один раз въезжает в каждый город.

Пример: Рассмотрим пример объезда 4 городов. Задана матрица расстояний между городами:

i \ j

1

2

3

4

1

4

5

3

2

6

7

2

3

5

7

8

4

4

2

3


Необходимо найти последовательность объезда городов так чтобы путь был минимальным.

По методу ветвей и границ найдем оценку первоначального множества. В нашей задаче, найдем минимальную длину пути объезда городов, отбросив условия въезда и выезда из каждого города. Для этого найдем минимальные значения в каждой строке и в каждом столбце и вычтем их из соответствующих элементов матрицы. Получим

i \ j

1

2

3

4

1

4

5

3

3

2

6

7

2

2

3

5

7

8

5

4

4

2

3

2


i \ j

1

2

3

4

1

1

2

0

2

4

5

0

3

0

2

3

4

2

0

1

0

0

1

0


i \ j

1

2

3

4

1

1

1

0

2

4

4

0

3

0

2

3

4

2

0

0


Обозначим полученную матрицу через .

В ней на месте минимальных переездов стоят 0.

Посчитаем оценку данного множества:

Таким образом, мы нашли минимальное расстояние объезда городов без учета въезда и выезда из каждого города один раз. Теперь найдем последовательность объезда городов уже с учетом данного условия. Для этого оценим каждый из нулей и выберем ноль с максимальной оценкой. Он нам покажет, какой переезд нам лучше включить в искомый путь.

Для того чтобы оценить ноль необходимо найти минимальный элемент в строке и столбце соответствующих данному элементу и сложить их.

Нашли первую пару городов объезда - переезд из города 2 в город 4. Проверим это. Для этого множество разобьем на два множества: .

Множество - множество всех переездов, в которых разрешен переезд из города 2 в город 4. Этому множеству соответствует матрица, полученная из матрицы вычеркиванием 2 строки и 4 столбца и запретом обратного переезда, т.е. элемент .

Множество - - множество всех переездов, в которых запрещен переезд из города 2 в город 4. Этому множеству соответствует матрица, полученная из матрицы заменой элемента .

Рассмотрим :

i \ j

1

2

3

1

1

1

1

3

0

2

0

4

2

0

0


i \ j

1

2

3

1

1

1

3

0

2

4

2

0


i \ j

1

2

3

1

0

0

3

0

2

4

2

0

0

0

0

Рассмотрим :

i \ j

1

2

3

4

1

1

1

0

2

4

4

3

0

2

3

4

2

0

0

Так как то дальше дробить мы будем множество . Для этого оценим нули множество :

Нашли следующую пару объезда: .

Дробим множество .

Рассмотрим :

i \ j

2

3

1

0

4

0


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

Длина объезда:

Рассмотрим :

i \ j

1

2

3

1

0

0

3

2

4

2

0

Так как , то найденный переход оптимален и его длина 14.

Построим дерево решений.

Графическое изображение переезда.

Вопрос для самоподготовки

1. Сформулируйте задачу о коммивояжере?

2. Что определяют ограничения в задаче о коммивояжере?

3. По какому признаку множественное число решений разделяется на подмножества?

4. На матрице какого порядка мы заканчиваем решение задачи, и почему?

Литература.

Основна

  1. Зайченко Ю.П. Исследование операций.- К.:Высшая школа,1988-552с.

  2. Зайченко Ю.П. Исследование операций. Сборник задач.- К.:Высшая школа,1990-239с.

  3. Юхименко Б.І. Математичне програмування для єкономистів. Навчальний посібник.- Одеса: Наука та техника,2006 – 167с.

  4. Вітлінський В.В. Моделювання економіки: Навч. посібник. –К.: КНЕУ, 2003.-408с.

Дополнительная

  1. Вагнер Г. Основы исследования операций. В 3т.- М.:Мир,1983

  2. Кутковецкий В.Я. Дослідження операцій. Навчальний посібник. –К.:2004.-350с.

  3. Наконечний С.І., Савіна С.С. Математичне програмування –К.: 2003.-452с.

35