- •Потоки в сетях.
- •Варианты задач:
- •Задачи о MAX потоке
- •Алгоритм начинает работу с произвольного допустимого потока (можно взять и 0-й поток), затем
- •Алгоритм расстановки пометок для задачи о max (от s и t) потоке.
- •Пример задачи о max потоке.
- •Итерация 3.
- •Пометка для
- •Пометка для
- •На этой итерации насыщенных дуг не появилось.
- •Пометка для x8 ( x6 , min(12,8)) ( x6 ,8),
- •x7 не может быть помечена.
- •x1 - источник;
- •Повторим шаг 2 и первой просмотрим вершину x2 .
- •Переходим к шагам 4 и 5, получим:
- •Все остальные значения потока не изменились.
Итерация 3.
Пометка для:x1 ( x1, );
Пометка для |
x1 |
( x1 |
, ); |
Пометка для |
x2 |
( x1 |
, min( ,14 4)) ( x1 ,4), |
Пометка для |
x4 ( x1 , min( ,25 1)) ( x1 ,22), |
Пометка для |
x5 ( x4 , min(22,25)) ( x4 ,22), |
Пометка для |
x3 ( x5 ,10), |
Пометка для |
x6 ( x5 , min(22,25 7)) ( x5 ,18). |
x7 не получена и не может быть получена.
x8 : ( x3 , min(10,18)) ( x3 ,10). x9 : ( x8 , min(10,20)) ( x8 ,10).
Новые потоки; 8,9 0 10 10,
3,8 0 10 10,
3,5 0,
4,5 1 10 11,
1,4 1 10 11,
На этой итерации насыщенных дуг не появилось.
Итерация 5. Пометка для Пометка для Пометка для Пометка для Пометка для Пометка для
x1 ( x1 , ), x2 ( x1 ,4),
x4 ( x1 min( ,23 11)) ( x1 ,12), x5 ( x4 , min(12,26 11) ( x4 ,12),
x6 ( x5 , min(12,18)) ( x5 ,12),
x7 и x3
Пометка для x8 ( x6 , min(12,8)) ( x6 ,8),
Пометка для x9 ( x8 , min(8,10)) ( x8 ,8),
Новые потоки; 8,9 |
10 8 18, |
|
|
6,7 |
0 8 8, |
|
5,6 |
7 8 15, |
4,5 |
11 8 19, |
|
1,4 |
11 8 19, |
Появилась насыщенная дуга (x6 , x8).
Итерация 6.
Пометка для
Пометка для
Пометка для
x1 ( x1 , );
x2 ( x1 , min( ,4)) ( x1 ,4),
x4 ( x1 , min( ,23 19)) ( x1 ,4),
x3 не может быть помечена.
x5 ( x4 , min(4.,26 11) ( x4 ,4);
x7 не может быть помечена.
x6 ( x5 , min)4,25 7)) ( x5 ,4),
x8 x7 x9 - нельзя пометить.
Полученный поток –max величин 29,а min разрез имеет вид;
(x2 x3)(x5 x7)(x6 x7)(x6 x8) .
Величина min разреза =10+4+8+7=29= величине max потока. Вершина 9 не помечена и никаких других пометок нельзя расставить.
Min разрез отделяет множество помеченных вершин x1 x2 x3 x4 x5 x6
от непомеченныхx7 x8 x9 .
Пример.
x1 - источник;
x9 - сток;
Пропускные способности дуг указаны на рисунке.
Найти max потокxот1 к x9
Начальный поток – с нулевыми значениями на всех дугах.
1 |
|
( |
x1 |
, ). |
||
Шаг 1. Припишем x |
пометку |
|
|
|
|
|
Шаг 2. (1) множество вершин xj |
|
|
xj (x1) ij gij, xj непомечена |
|||
|
есть x2 x4
2.Множество вершин xj |
|
xj 1 (x1), ij 0, xj не помечена. |
|
||
Итак, x1 помечена и просмотрена, x2 и x4 помечены и не просмотрены, |
||
а все остальные вершины |
|
не помечены. |
Повторим шаг 2 и первой просмотрим вершину x2 .
Теперь вершины x1 и x2 помечены и просмотрены, а x3 и x4
помечены, но не просмотрены. |
|
|
Взяв для просмотра x3 и повторяя шаг 2, прейдем к следующим пометкам; |
||
x5 пометкой будет ( x3 , min(10,12 0) ( x3 ,10), для |
x8 пометкой будет |
|
( x3 , min[10,18 0]) ( x3 ,10). |
|
|
Беря для просмотра x4 найдем, что никаких пометок расставить нельзя |
||
Продолжим просмотр с |
x5 , получим следующие потоки: |
|
x6 : ( x5 , min[10,25 |
0]) ( x5 ,10), |
|
x7 : ( x5 , min[10,4 |
0]) ( x5 ,4), |
|
x9 : ( x7 min[4,15 |
0]) ( x7 ,4). |
|
Переходим к шагам 4 и 5, получим: |
||
х x9 ; |
7,9 0 4 4; |
|
х x7 ; |
5,7 |
4; |
х x5 ; |
3,5 |
4; |
х x3 ; |
x2,3 |
4; |
х x2 ; |
1,2 |
4; |
Получим следующие пометки вершин до их стирания на шаге 6:
(x5 x7) - насыщенная дуга.
Стираем пометки и возвращаемся к шагу 1 для второго прохода ,получим:
x3 : ( x2 , min[10,10 4]) ( x2 ,6).
x2 помечена и просмотрена.
x3 решена и просмотрена.
x4 также помечена и просмотрена.