Скачиваний:
11
Добавлен:
28.03.2019
Размер:
6.83 Mб
Скачать

Пример выполнения работы

С одержательная постановка задачи. С острова А на остров В можно попасть только на лодках. Прямого сообщения между островами нет. Лодки курсируют между островами архипелага по указанной схеме. Количество человек, которое может быть перевезено за сутки между каждой парой островов, для которых есть прямое сообщение, также указано на схеме. При движении от острова А к острову В люди на промежуточных островах не остаются. Новые пассажиры с промежуточных островов не подсаживаются.

Определить, какое максимальное количество человек за сутки может быть перевезено с острова А на остров В. Также определить количество пассажиров между каждой парой сообщающихся островов.

Построение математической модели. Всего островов 8. Пронумеруем острова: остров А- это остров № 0, остров В – это остров №7. Остальные острова уже пронумерованы. Обозначим xij - количество людей, перевозимое по дуге (i,j), т.е. с острова i на остров j. Значения i и j меняются от 0 до 7. Очевидно, все величины xij ограничены указанным на схеме максимальным количеством перевозимых за сутки пассажиров. Обозначим это количество как dij. Следовательно:

, где n=7.

Запишем выражение, определяющее общее количество людей, вывезенных за сутки с острова №0:

х010203+...+х0n,

или: .

Теперь запишем выражение, определяющее общее число людей, приехавших на остров №7 (т.е. остров №n):

х0n1n2n+...+хn-1n,

или: .

Очевидно, что два эти выражения должны давать одно и то же количество человек:

Обозначим это количество V. Оно и будет определять общее число перевезенных пассажиров, т.е. его мы и должны максимизировать:

Теперь запишем условие о том, что люди не остаются и не подсаживаются на промежуточных островах. Это означает, что количество прибывших на каждый промежуточный остров людей должно равняться количеству уехавших. Рассмотрим, например, промежуточный остров №1. Количество приехавших на остров: х012131+...+хn-11=

Количество уехавших с острова: х121314+...+х1n=.

Раз эти количества совпадают, то разность полученных сумм должна равняться нулю:

-=0.

Аналогичное условие может быть записано для всех остальных промежуточных островов.

Тогда математическая модель задачи будет иметь:

(1)

(2)

(3)

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

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

0

1

2

3

4

5

6

7

0

12

14

1

9

9

2

11

3

17

12

11

4

4

5

7

17

6

8

10

7

х0102= х5767max

х01- (х12+ х13)=0

х0223=0

х13+x23- (х34+ х36+ х37)=0

х3445=0

х45+x65- (х56+ х57)=0

х36+x56- (х65+ х67)=0

0

1

2

3

4

5

6

7

0

9

11

1

9

2

11

3

4

5

11

4

4

5

4

6

5

7

Решение данной задачи при помощи программы Макс_поток дает следующие результаты: максимальный поток равен 20, нагрузка по дугам отражена в результирующей таблице:

Полученные результаты в терминах поставленной задачи могут быть интерпретированы следующим образом: всего за сутки между островами А и В может быть перевезено 20 человек. При этом с острова А 9 человек будет перевезено на остров 1 и 11 на остров 2. С острова 1 будет перевезено 9 человек на остров 3. Также на остров 3 доставят 11 человек с острова 2. Далее с острова №3 4 человека доставят на остров 4, 5 человек на остров 6 и 11 человек в пункт назначения остров В. С четвертого острова 4 человека переедут на пятый, откуда они попадут на остров В. С шестого острова 5 человек переедут на В. Итого: всего переедет 20 человек.