Автор работы: Пользователь скрыл имя, 03 Февраля 2014 в 14:52, курсовая работа
Первые формальные разработки по исследованию операций были инициированы в Англии во время Второй мировой войны, когда команда британских ученых сформулировала и нашла решение задачи наиболее эффективной доставки военного снаряжения на фронт. После окончания войны эти идеи были перенесены в гражданскую сферу для повышения эффективности и продуктивности экономической и производственной деятельности
1. ВВЕДЕНИЕ 3
2. ПОСТАНОВКА ЗАДАЧИ И МЕТОД РЕШЕНИЯ 4
2.1 Общая постановка задачи о максимальном потоке 4
2.2 Математическая модель 4
2.3 Алгоритм Форда-Фалкерсона нахождения максимального потока 4
3. ПРАКТИЧЕСКАЯ ЧАСТЬ 6
4. ЗАКЛЮЧЕНИЕ 14
5. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 15
БАЙКАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ЭКОНОМИКИ И ПРАВА
Кафедра информатики и кибернетики
КУРСОВАЯ РАБОТА
ЗАДАЧА О МАКСИМАЛЬНОМ ПОТОКЕ
Автор: Якушев Н.А.
группа: ИС-11-1
Руководитель: Доцент кафедры информатики и кибернетики, кандидат физико-математических наук Белых Т.И.
Иркутск
2013
ОГЛАВЛЕНИЕ
1. ВВЕДЕНИЕ 3
2. ПОСТАНОВКА ЗАДАЧИ И МЕТОД РЕШЕНИЯ 4
2.1 Общая постановка задачи о максимальном потоке 4
2.2 Математическая модель 4
2.3 Алгоритм Форда-Фалкерсона нахождения максимального потока 4
3. ПРАКТИЧЕСКАЯ ЧАСТЬ 6
4. ЗАКЛЮЧЕНИЕ 14
5. СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 15
Первые формальные разработки по исследованию операций были инициированы в Англии во время Второй мировой войны, когда команда британских ученых сформулировала и нашла решение задачи наиболее эффективной доставки военного снаряжения на фронт. После окончания войны эти идеи были перенесены в гражданскую сферу для повышения эффективности и продуктивности экономической и производственной деятельности. Сегодня теория исследования операций является основным и неотъемлемым инструментом при принятии решений в самых разнообразных областях человеческой деятельности./1/
Задача о максимальном потоке изучается уже более 60 лет. Интерес к ней подогревается огромной практической значимостью этой проблемы. Методы решения задачи применяются на транспортных, коммуникационных, электрических сетях, при моделировании различных процессов физики и химии, в некоторых операциях над матрицами, для решения родственных задач теории графов, и даже для поиска Web-групп в WWW. Исследования данной задачи проводятся во множестве крупнейших университетов мира.
60 лет назад, задача о
Целью моей курсовой работы является нахождение оптимального алгоритма решения для поставленной задачи и нахождение максимально эффективной схемы поставок зерна от зернохранилищ фермам для максимального обеспечения их спроса.
Рассмотрим двухполюсную сеть S=(N, U) с одним входом (источником) s є N и выходом (стоком) t є N, дуги сети (i, j) є U имеют ограниченную пропускную способность . Задача о максимальном потоке заключается в поиске таких потоков по дугам (i, j) если, что результирующий поток из источника в сток является максимальным. Алгоритм Форда-Фалкерсона нахождения максимального потока
Математическая модель задачи о максимальном потоке выглядит следующим образом:
найти такие значения jij, при которых
V=å jsj =å jsj Þ max;
j j
при ограничениях:
0<= jij <=cij
å jij -åjij =0 i є N i¹s i¹t.
j j
Идея данного алгоритма
Рассмотрим ребро (i,j) с (начальной) пропускной способностью . В процессе выполнения алгоритма части этих пропускных способностей «забираются» потоками, проходящими через данное ребро, в результате каждое ребро будет иметь остаточную пропускную способность. Сеть, в которой все ребра имеют остаточную пропускную способность. Будем использовать запись для представления остаточных пропускных способностей. Сеть в которой все рёбра имеют остаточную пропускную способность, назовем остаточной.
Для произвольного узла j, получающего поток от узла i, определим метку , где - величина потока, протекающего от узла j к узлу i. Чтобы найти максимальный поток, выполним следующие действия.
Процесс отката назад на четвертом этапе выполняется тогда, когда алгоритм должен «убить» промежуточный узел до момента реализации сквозного пути. Коррекцию пропускных способностей, выполняемых в п. 5, можно пояснить на примере простой сети, показанной на рис. 6.30. На рис. 6.30. а найден первый сквозной путь N1={1,2,3,4} с максимальным потоком f1=5. После этого остаточные пропускные способности ребер (1,2), (2,3) и (3,4) изменяется соответственно с (5,0) на (0,5). На рис. 6.30, в, где уже невозможно построить сквозной путь N2={1,2,3,4} с максимальным потоком f2=5. После коррекции пропускных путей получаем сеть, показанную на рис. 6,30, в, где уже невозможно построить сквозной путь. При вычислении остаточных пропускных способностей в п. 5 при переходе от сети б к сети в невозможна организация потока в направлении 2→3. Получается, что алгоритм как бы помнит что поток в направлении 2→3 уже был в предыдущих сквозных путях, и поэтому снова (на пятом этапе) изменяет пропускную способность с 0 до 5 в направлении от узла 3 к узлу 2. /1/
Зерно из трех зернохранилищ доставляется на грузовиках четырем птицеводческим фермам, при этом некоторые зернохранилища не могут непосредственно поставлять зерно определенным фермам. Пропускная способность маршрутов от зернохранилищ до птицеводческих ферм ограничена количеством используемых грузовиков и числом выполняемых ежедневно рейсов. В следующей таблице показаны ежедневные предложения зернохранилищ и ежедневный спрос птицеводческих ферм (в тысячах фунтов), в ячейках таблицы указаны пропускные способности соответствующих маршрутов.
Фермы
Зернохранилища
Таблица 1
a) Найти схему транспортировки зерна, обеспечивающую максимальный спрос птицеводческих ферм.
b) Существует ли при данных условиях схема транспортировки, обеспечивающая весь спрос птицеводческих ферм.
Решим как задачу о нахождении максимального потока:
1 - Исток
2 - З1 зернохранилище
3 - З2 зернохранилище
4 - З3 зернохранилище
5 - Ф1 ферма
6 - Ф2 ферма
7 - Ф3 ферма
8 - Ф4 ферма
9 - Cток
1
2
3
4
5
6
7
8
9
20
20
200
30
5
40
5
90
100
40
30
40
200
10
60
20
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
100
0
0
0
0
0
0
0
100
0
100
0
0
20
60
10
100
40
30
40
0
90
5
40
5
30
100
20
20
9
8
7
6
5
4
3
0
0
Рисунок 1
Итерация 1:
Рисунок 2
1
2
3
4
5
6
7
8
9
20
20
200
30
5
40
5
90
100
40
30
40
200
10
60
20
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
100
0
0
0
0
0
0
0
100
0
100
0
0
20
60
10
100
40
30
40
0
90
5
40
5
30
100
20
20
9
8
7
6
5
4
3
0
0
(с14,с41)=(200-100,0+100)=(
(с45,с54)=(100-100,0+100)=(0,
(с59,с95)=(200-100,0+100)=(
Итерация 2:
1
2
3
4
5
6
7
8
9
20
20
100
30
5
40
5
90
0
40
30
40
100
10
60
20
0
0
100
0
100
0
0
0
0
0
0
0
100
0
1
0
0
0
100
0
0
0
0
0
0
0
100
0
100
0
0
20
60
10
100
40
30
40
0
90
5
40
5
30
100
20
20
9
8
7
6
5
4
3
0
0
Рисунок 3
(с14,с41)=(100-10,100+10)=(90,
(с46,с64)=(40-10,0+10)=(30,10)
(с69,с96)=(10-10,0+10)=(0,10)
Итерация 3:
1
2
3
4
5
6
7
8
9
20
20
90
30
5
40
5
90
0
30
30
40
100
0
60
20
0
0
110
0
100
0
10
0
0
0
0
0
100
10
1
0
0
0
100
0
0
0
0
0
0
0
100
0
100
0
0
20
60
10
100
40
30
40
0
90
5
40
5
30
100
20
20
9
8
7
6
5
4
3
0
0
Рисунок 4
(с14,с41)=(90-20,110+20)=(70,
(с48,с84)=(40-20,0+20)=(20,20)
(с89,с98)=(20-20,0+20)=(0,20)
Итерация 4:
1
2
3
4
5
6
7
8
9
20
20
70
30
5
40
5
90
0
30
30
20
100
0
60
0
0
0
130
0
100
0
10
0
0
0
0
20
100
10
1
0
0
0
100
0
0
0
0
0
0
0
100
0
100
0
0
20
60
10
100
40
30
40
0
90
5
40
5
30
100
20
20
9
8
7
6
5
4
3
0
20
Рисунок 5