- •Часть 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.1.4. Решить следующие задачи о ранце :
а)Методом ветвей и границ.
б)Методом динамического программирования (табличная форма).
в)Методом динамического программирования (рекуррентная схема).
Задача 1.1.
3x(1)+2x(2)+6x(3)+4x(4) max,
5x(1)+3x(2)+5x(3)+3x(4) 7
x(i) {0,1}, i=1,2,3,4.
Задача 1. 2.
5x(1)+2x(2)+5x(3)+4x(4) max,
6x(1)+3x(2)+5x(3)+3x(4) 7
x(i) {0,1}, i=1,2,3,4.
Задача 1.3.
7x(1)+4x(2)+6x(3)+x(4) max,
5x(1)+1x(2)+3x(3)+5x(4) 8
x(i) {0,1}, i=1,2,3,4.
Задача 1.4.
3x(1)+7x(2)+8x(3)+4x(4) max,
4x(1)+5x(2)+7x(3)+7x(4) 11
x(i) {0,1}, i=1,2,3,4.
Задача 1.5.
3x(1)+3x(2)+5x(3)+6x(4) max,
2x(1)+4x(2)+5x(3)+4x(4) 9
x(i) {0,1}, i=1,2,3,4.
Задача 1.6.
5x(1)+4x(2)+7x(3)+3x(4) max,
3x(1)+2x(2)+4x(3)+5x(4) 8
x(i) {0,1}, i=1,2,3,4.
Задача 1.7.
3x(1)+6x(2)+5x(3)+9x(4) max,
2x(1)+4x(2)+3x(3)+6x(4) 7
x(i) {0,1}, i=1,2,3,4.
Задача 1.8.
4x(1)+10x(2)+7x(3)+9x(4) max,
2x(1)+5x(2)+4x(3)+5x(4) 9
x(i) {0,1}, i=1,2,3,4.
Задача 1.9.
5x(1)+4x(2)+3x(3)+3x(4) max,
3x(1)+2x(2)+4x(3)+5x(4) 7
x(i) {0,1}, i=1,2,3,4.
Задача 1.10.
3x(1)+4x(2)+7x(3)+3x(4) max,
2x(1)+2x(2)+6x(3)+5x(4) 8
x(i) {0,1}, i=1,2,3,4.
3.2. Решение задачи коммивояжера
3.2.1. Решение задачи коммивояжера методом ветвей и границ
Рассмотрим задачу коммивояжера с матрицей расстояний:
-
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
-
В качестве нижней оценки H можно выбрать величину S, равную сумме минимальных элементов по строкам матрицы расстояний или величину C, равную сумме минимальных элементов по столбцам. Так как величину нижней оценки необходимо пытаться увеличивать (тем самым уменьшается интервал возможных значений оптимума исходной задачи) , то в качестве нижней оценки можно взять максимальное значение величин S и C.
Величина Н= max{2+2+2+1+2, 2+1+2+2+2}=9.
В качестве верхней оценки может быть выбрана величина значения критерия задачи на любом допустимом решении задачи коммивояжера. Применим для построения допустимого решения так называемый “жадный” алгоритм, основанный на следующей стратегии выбора маршрута движения коммивояжера: коммивояжер из очередного города переходит в город, расстояние до которого минимально из тех городов, в которых коммивояжер еще не был (включая и город, из которого начал свой путь коммивояжер). Получим маршрут коммивояжера, проходящий через города r=(1,4,2,3,5,1), длина которого F(r)=10. Отсюда верхняя оценка равна V=10.
Ветвление будем проводить по всем возможным направлениям.
Из города 1 в город 2:
Нижняя оценка H=4+max(2+2+2+2,2+2+2+2)=12.
Верхняя оценка определяется перестановкой r=(1,2,3,5,4,1) и равна V=14.
Из города 1 в город 3:
Нижняя оценка H=3+max(2+2+1+2, 2+1+3+2)=11,
Верхняя оценка определяется перестановкой r=(1,3,5,4,2,1) и равна V=12.
Из города 1 в город 4:
Нижняя оценка H=2+max(2+2+1+2, 2+1+2+2)=9.
Верхняя оценка определяется перестановкой r=(1,4,2,3,5,1) и равна V=10.
Из города 1 в город 5:
Нижняя оценка H=4+max(2+2+1+2, 2+1+2+3)=12.
Верхняя оценка определяется перестановкой r=(1,5,3,4,2,1) равна V=13.
Анализ вариантов позволяет применить процедуру отбрасывания неперспективных направлений. Так как в направлении “из города 1 в город 4” верхняя (достижимая) оценка V=10, а во всех других направлениях нижняя оценка (лучшее, что можно получить в соответствующем направлении) больше этой величины ( в направлении” из города 1 в город 2” H=12, “из города 1 в город 3” H=11, “ из города 1 в город 5” H=12.), то все эти направления можно отбросить не в ущерб оптимальному решению исходной задачи коммивояжера.
Продолжаем процедуру ветвления в направлении “из города 1 в город 4”.
Здесь возможны три направления:
“из города 4 в город 2” - H=2+1+max(2+2+2, 2+2+2)=9.
r=(1,4,2,3,5,1), V=10.
“из города 4 в город 3” - H=2+2+max(2+2+3, 2+3+ 2)=11.
r=(1,4,3,5,2,1), V=13.
“из города 4 в город 5” - H=2+3+max(2+2+2, 2+1+2)=11.
Из рассмотренных направлений можно отбросить направления “из города 4 в город 3” и “из города 4 в город 5”, так как в этих направлениях нижние оценки не меньше верхней оценки в направлении ” из города 4 в город 2” V=10.
Продолжаем ветвление в двух направлениях:
“из города 2 в город 3” - H= 2+1+2+max(2+3, 2+2)=10.
r=(1,4,2,3,5,1), V=10.
“ из города 2 в город 5” -H=2+1+2+max(2+2, 2+2)=9.
r=(1,4,2,5,3,1), V=9.
Первое направление отбрасываем и получаем оптимальное решение исходной задачи коммивояжера r’=(1,4,2,5,3,1), F(r’)=9.