- •Часть 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.7. Нахождение максимального потока в транспортной сети алгоритмом Форда-Фалкерсона
Рассмотрим задачу поиска максимального потока в транспортной сети с 10 вершинами (вершина 1 - исток, вершина 10 -сток), матрица пропускных способностей дуг Q имеет вид:
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
4 |
1 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
2 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
4 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Строим последовательность вершин из истока:
1, 2,4,3, 2,5,7,4,6,3,5,10.
Схема построения последовательности:
из истока 1 по ненасыщенным дугам есть пути в вершины 2,4,3.
Первая не рассмотренная вершина 2 связана с вершинами 6 и 7 (по ненасыщенным дугам). Следующая не рассмотренная вершина 4 связана с вершиной 6. Следующая не рассмотренная вершина 3 не порождает ни одной новой вершины.
Вершина 5 не соединена ни с одной новой вершины. Из вершины 5 существует ненасыщенная дуга, ведущая в сток (вершина 10).
Получили существование маршрута по ненасыщенным ребрам из истока в сток:
1 - 2 -5 - 10, максимальная величина груза, который можно перевезти по этому маршруту равно 2.
Уменьшаем пропускные способности дуг, составляющих найденный маршрут:
Из вершины 1 в вершину 2 пропускная способность станет равна 4-2=2, в обратном направлении из вершины 2 в вершину 1 пропускная способность увеличится 0+2=2 .
Из вершины 2 в вершину 5 пропускная способность станет равна 2-2=0, в обратном направлении из вершины 5 в вершину 2 пропускная способность увеличится 0+2=2 .
Из вершины 5 в вершину 10 пропускная способность станет равна 3-2=1, в обратном направлении из вершины 10 в вершину 5 пропускная способность увеличится 0+2=2 .
Строим новую последовательность вершин из истока:
1, 2,4,3, 2,7,4,6,3,7,10.
Получили существование маршрута по ненасыщенным ребрам из истока в сток:
1 - 2 -7 - 10, максимальная величина груза, который можно перевезти по этому маршруту равно 2.
Уменьшаем пропускные способности дуг, составляющих найденный маршрут:
Из вершины 1 в вершину 2 пропускная способность станет равна 2-2=0, в обратном направлении из вершины 2 в вершину 1 пропускная способность увеличится 2+2=4 .
Из вершины 2 в вершину 7 пропускная способность станет равна 2-2=0, в обратном направлении из вершины 7 в вершину 2 пропускная способность увеличится 0+2=2 .
Из вершины 7 в вершину 10 пропускная способность станет равна 4-2=2, в обратном направлении из вершины 10 в вершину пропускная способность увеличится 0+2=2 .
Строим новую последовательность вершин из истока:
1, 4,3, 4,6,7,3,6,9,7,10.
Получили существование маршрута по ненасыщенным ребрам из истока в сток:
1 - 4 -7 - 10, максимальная величина груза, который можно перевезти по этому маршруту равно 2.
Уменьшаем пропускные способности дуг, составляющих найденный маршрут:
Из вершины 1 в вершину 4 пропускная способность станет равна 3-2=1, в обратном направлении из вершины 4 в вершину 1 пропускная способность увеличится 0+2=2 .
Из вершины 4 в вершину 7 пропускная способность станет равна 3-2=1, в обратном направлении из вершины 7 в вершину пропускная способность увеличится 0+2=2 .
Из вершины 7 в вершину 10 пропускная способность станет равна 2-2=0 в обратном направлении из вершины 10 в вершину пропускная способность увеличится 2+2=4 .
Строим новую последовательность вершин из истока:
1, 4,3, 4,7,6,3,7,6,9,9,10.
Получили существование маршрута по ненасыщенным ребрам из истока в сток:
1 - 4 - 6 - 9 - 10, максимальная величина груза, который можно перевезти по этому маршруту равна 1.
Уменьшаем пропускные способности дуг, составляющих найденный маршрут:
Из вершины 1 в вершину 4 пропускная способность станет равна 1-1=0, в обратном направлении из вершины 4 в вершину 1 пропускная способность увеличится 2+1=3 .
Из вершины 4 в вершину 6 пропускная способность станет равна 3-1=2, в обратном направлении из вершины 6 в вершину 4 пропускная способность увеличится 0+1=1 .
Из вершины 6 в вершину 9 пропускная способность станет равна 2-1=1 в обратном направлении из вершины 9 в вершину 6 пропускная способность увеличится 0+1=1 .
Из вершины 6 в вершину 9 пропускная способность станет равна 2-1=1 в обратном направлении из вершины 9 в вершину 6 пропускная способность увеличится 0+1=1 .
Из вершины 9 в вершину 10 пропускная способность станет равна 2-1=1 в обратном направлении из вершины 10 в вершину 9 пропускная способность увеличится 0+1=1.
Строим новую последовательность вершин из истока:
1, 3, 3,6,6,4,7,9,4,7,2,9,10.
Получили существование маршрута по ненасыщенным ребрам из истока в сток:
1 - 3 - 6 - 9 - 10, максимальная величина груза, который можно перевезти по этому маршруту равна 1.
Уменьшаем пропускные способности дуг, составляющих найденный маршрут:
Из вершины 1 в вершину 3 пропускная способность станет равна 1-1=0, в обратном направлении из вершины 3 в вершину 1 пропускная способность увеличится 0+1=1 .
Из вершины 3 в вершину 6 пропускная способность станет равна 2-1=1, в обратном направлении из вершины 6 в вершину 3 пропускная способность увеличится 0+1=1 .
Из вершины 6 в вершину 9 пропускная способность станет равна 2-1=1 в обратном направлении из вершины 9 в вершину 6 пропускная способность увеличится 0+1=1 .
Из вершины 9 в вершину 10 пропускная способность станет равна 2-1=1 в обратном направлении из вершины 10 в вершину 9 пропускная способность увеличится 0+1=1 .
Из вершины 9 в вершину 10 пропускная способность станет равна 2-1=1 в обратном направлении из вершины 10 в вершину 9 пропускная способность увеличится 0+1=1.
Строим новую последовательность вершин:
1.
Из вершины 1 нет маршрута по ненасыщенным ребрам в сток, т.е. по теореме Форда-Фалкерсона найденный поток максимален.
Решение задачи определяется матрицей X:
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
4 |
1 |
3 |
|
|
|
|
|
|
2 |
-4 |
|
|
|
2 |
|
2 |
|
|
|
3 |
-1 |
|
|
|
|
1 |
|
|
|
|
4 |
-3 |
|
|
|
|
1 |
2 |
|
|
|
5 |
|
-2 |
|
|
|
|
|
|
|
2 |
6 |
|
|
-1 |
-1 |
|
|
|
|
2 |
|
7 |
|
-2 |
|
-2 |
|
|
|
|
|
4 |
8 |
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
-2 |
|
|
|
2 |
10 |
|
|
|
|
-2 |
|
-4 |
|
-2 |
|
Величина максимального потока равна
F(X’)=8.
Найти максимальный поток в транспортной сети.
Задача 7.1.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
3 |
1 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
1 |
|
4 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
2 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Задача 7.2.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
4 |
2 |
4 |
|
|
|
|
|
|
2 |
|
|
|
|
1 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
1 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
2 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Задача 7.3.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
2 |
3 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
2 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
1 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Задача 7.4.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
5 |
6 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
4 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
5 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
5 |
|
7 |
|
|
|
|
|
|
|
|
|
4 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
3 |
Задача 7.5.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
3 |
5 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
2 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
3 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
3 |
Задача 7.6.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
4 |
3 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
4 |
|
2 |
|
|
|
3 |
|
|
|
|
|
1 |
|
|
|
|
4 |
|
|
|
|
|
3 |
2 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
2 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
5 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Задача 7.7.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
4 |
2 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
4 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
4 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Задача 7.8.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
4 |
3 |
2 |
|
|
|
|
|
|
2 |
|
|
|
|
4 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
2 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
4 |
8 |
|
|
|
|
|
|
|
|
|
4 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Задача 7.9.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
2 |
5 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
3 |
|
2 |
|
|
|
3 |
|
|
|
|
|
5 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
4 |
8 |
|
|
|
|
|
|
|
|
|
4 |
9 |
|
|
|
|
|
|
|
|
|
2 |
Задача 7.10.
i\j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
|
1 |
5 |
3 |
|
|
|
|
|
|
2 |
|
|
|
|
2 |
|
2 |
|
|
|
3 |
|
|
|
|
|
2 |
|
|
|
|
4 |
|
|
|
|
|
3 |
3 |
|
|
|
5 |
|
|
|
|
|
|
|
3 |
|
3 |
6 |
|
|
|
|
|
|
3 |
|
2 |
|
7 |
|
|
|
|
|
|
|
|
|
4 |
8 |
|
|
|
|
|
|
|
|
|
3 |
9 |
|
|
|
|
|
|
|
|
|
3 |