- •Часть 2
- •Содержание
- •1. Рабочая программа курса "математические основы информатики"
- •Часть 2.
- •Предисловие
- •Практические занятия
- •Литература (основная)
- •Литература (дополнительная)
- •2. Краткий конспект лекций
- •2.1.Задачи целочисленного булева программирования
- •2.2. Каноническая и многомерная задачи о ранце и их интерпретации
- •2.3. Задача коммивояжера и ее интерпретации
- •2.4. Задачи о назначениях и их интерпретации
- •2.5. Задача целочисленного линейного программирования в общей постановке
- •2.6. Метод ветвей и границ
- •2.7. Общая схема метода ветвей и границ Джеффриона-Марстена
- •2.8. Решение канонической задачи о ранце методом ветвей и границ
- •2.9. Решение многомерной задачи о ранце методом ветвей и границ
- •2.10. Решение задачи коммивояжера методом ветвей и границ
- •2.11. Решение задачи целочисленного линейного программирования методом ветвей и границ
- •2.12. Решение задачи о ранце с использованием табличной схемы
- •2.13. Решение задачи о ранце с использованием рекуррентных соотношений динамического программирования
- •2.14. Решение задачи коммивояжера с использованием рекуррентных соотношений динамического программирования
- •2.15. Задачи теории расписаний
- •2.16. Задачи теории расписаний с одним обслуживающим прибором
- •2.17. Перестановочный прием в задачах теории расписаний
- •2.18. Теорема Лившица-Кладова
- •2.19. Задачи теории расписаний в общей постановке
- •2.20. Задача Джонсона. Графики Ганта
- •2.21.Постановка задачи теории расписаний как задачи частично-целочисленного линейного программирования
- •2.22. Сетевые модели. Расчет временных характеристик сетевых моделей
- •2.23. Потоки в сетях. Теорема Форда-Фалкерсона о максимальном потоке
- •2.24. Алгоритм Форда-Фалкерсона нахождения максимального потока в транспортной сети
- •2.25. Решение задачи о назначениях алгоритмом Куна
- •2.26. Минимаксные задачи о назначениях
- •2.27. Задачи о назначениях с индивидуальными предпочтениями
- •3. Задачник с решением типовых задач
- •3.1. Решение задачи о ранце
- •3.1.1. Решение задачи о ранце методом ветвей и границ
- •3.1.2. Решение задачи о ранце методом динамического программирования (табличная форма)
- •3.1.3. Решение задачи о ранце методом динамического программирования (рекуррентная схема)
- •3.1.4. Решить следующие задачи о ранце :
- •3.2. Решение задачи коммивояжера
- •3.2.1. Решение задачи коммивояжера методом ветвей и границ
- •3.2.2. Решение задачи коммивояжера с использованием рекуррентных соотношений динамического программирования
- •3.2.3. Решить задачи коммивояжера:
- •3.3. Решить задачу Джонсона для двух станков, построить график Ганта для оптимального расписания
- •3.4. Решение задачи о назначениях алгоритмом Куна
- •3.5. Решение минимаксных (максиминных) задач о назначениях
- •3.6. Решить задачи о назначениях с индивидуальными предпочтениями
- •3.7. Нахождение максимального потока в транспортной сети алгоритмом Форда-Фалкерсона
- •3.8. Расчет временных характеристик сетевых моделей
- •Рассчитать временные характеристики сетевой модели
- •4. Контрольные задания
- •5. Вопросы к экзамену
- •3.Задачи целочисленного булева программирования.
- •6.Задача коммивояжера и ее интерпретации.
- •8.Задача целочисленного линейного программирования в общей постановке.
3.2.2. Решение задачи коммивояжера с использованием рекуррентных соотношений динамического программирования
Рассмотрим задачу коммивояжера с матрицей расстояний R , элементы которой r(i,j) приведены в таблице:
-
1
2
3
4
5
1
-
4
3
2
4
2
3
-
2
3
2
3
2
3
-
3
2
4
3
1
2
-
3
5
3
4
2
3
-
Пусть G = {1,2,3,4,5} - множество городов.
Обозначим через W(G’, i) - расстояние, которое пройдет коммивояжер из города с номером i через все города множества G’ в начальный город с номером 1, G’ G, i G\G’ при оптимальном выборе маршрута (с точки зрения критерия задачи коммивояжера). Тогда
W(G’,i) = min [ r(i,j) + W(G’\{i}, j)], (1)
где минимум берется по всем городам с номерами j G’.
Рекуррентные соотношения (1), используя граничные условия:
W(G’,i) = r(i,1), если G’ - пустое множество, (2)
могут быть использованы для решения задачи коммивояжера.
W({2,3,4,5},1)= min[4+ W({3,4,5},2), 3+ W({2,4,5},3), 2+ W({2,3,5},4), 4+ W({2,3,4},5)].
W({3,4,5},2)= min[2+ W({4,5},3), 3+ W({3,5},4), 2+ W({3,4},5)]=min[2+8, 3+7, 2+7)=9(2,5,4,3,1).
W({2,4,5},3)=min[3+ W({4,5},2), 3+ W({2,5},4), 2+ W({2,4},5)]=min[3+8, 3+6, 2+7]=9(3,4,2,5,1; 3,5,4,2,1).
W({2,3,5},4)=min [1+ W({3,5},2), 2+ W({2,5},3), 3+ W({2,3},5)]=min[1+6, 2+8, 3+ 8]=7(4,2,5,3,1).
W({2,3,4},5)=min[4+ W({3,4},5), 2+ W({2,4},3), 3+ W({2,3},4)]=min[4+7, 2+7, 3+5]=8(5,4,2,3,1).
Отсюда получаем:
W({2,3,4,5},1)=min[4+9, 3+9, 2+7, 4+8]=9(1,4,2,5,3,1).
Оптимальное решение задачи коммивояжера, полученное с помощью рекуррентных соотношений динамического программирования имеет вид:
x’(1,4)=1, x’(4,2)=1, x’(2,5)=1, x’(5,3)=1, x’(3,1)=1.
Остальные значения переменных в оптимальном решении равны нулю.
Значение оптимума задачи F(X’)=9.
3.2.3. Решить задачи коммивояжера:
а)Методом ветвей и границ.
б)Методом динамического программирования.
Задача 2.1.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
6 |
4 |
9 |
7 |
2 |
3 |
- |
7 |
5 |
8 |
3 |
9 |
7 |
- |
5 |
4 |
4 |
7 |
5 |
9 |
- |
9 |
5 |
3 |
7 |
5 |
7 |
- |
Задача 2.2.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
3 |
4 |
9 |
7 |
2 |
4 |
- |
7 |
6 |
8 |
3 |
9 |
7 |
- |
3 |
4 |
4 |
7 |
5 |
9 |
- |
9 |
5 |
3 |
7 |
5 |
7 |
- |
Задача 2.3.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
6 |
5 |
2 |
7 |
2 |
3 |
- |
7 |
6 |
8 |
3 |
9 |
7 |
- |
5 |
4 |
4 |
7 |
5 |
9 |
- |
4 |
5 |
3 |
7 |
5 |
7 |
- |
Задача 2.4.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
6 |
4 |
9 |
7 |
2 |
3 |
- |
4 |
6 |
8 |
3 |
9 |
7 |
- |
5 |
4 |
4 |
7 |
5 |
3 |
- |
9 |
5 |
3 |
7 |
5 |
7 |
- |
Задача 2.5.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
3 |
4 |
9 |
7 |
2 |
3 |
- |
7 |
6 |
8 |
3 |
2 |
7 |
- |
4 |
4 |
4 |
7 |
5 |
9 |
- |
5 |
5 |
3 |
7 |
5 |
7 |
- |
Задача 2.6.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
6 |
4 |
6 |
7 |
2 |
3 |
- |
7 |
6 |
8 |
3 |
9 |
7 |
- |
5 |
4 |
4 |
7 |
5 |
5 |
- |
9 |
5 |
3 |
4 |
5 |
7 |
- |
Задача 2.7.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
3 |
4 |
9 |
7 |
2 |
3 |
- |
7 |
6 |
8 |
3 |
9 |
7 |
- |
5 |
4 |
4 |
7 |
5 |
3 |
- |
9 |
5 |
3 |
7 |
5 |
4 |
- |
Задача 2.8.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
6 |
4 |
9 |
2 |
2 |
3 |
- |
7 |
6 |
8 |
3 |
9 |
3 |
- |
4 |
4 |
4 |
7 |
5 |
2 |
- |
9 |
5 |
3 |
7 |
5 |
4 |
- |
Задача 2.9.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
6 |
3 |
9 |
7 |
2 |
3 |
- |
7 |
6 |
4 |
3 |
9 |
7 |
- |
5 |
4 |
4 |
7 |
2 |
7 |
- |
9 |
5 |
3 |
7 |
5 |
7 |
- |
Задача 2.10.
|
1 |
2 |
3 |
4 |
5 |
1 |
- |
4 |
4 |
9 |
7 |
2 |
3 |
- |
7 |
3 |
8 |
3 |
6 |
7 |
- |
5 |
4 |
4 |
7 |
5 |
4 |
- |
9 |
5 |
3 |
7 |
5 |
7 |
- |