1 / 1 / 1
Регистрация: 23.09.2012
Сообщений: 96
1

Максимальный поток в сети

12.06.2013, 10:52. Показов 1774. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая реализует поиск максимального потока в сети.
Я нашла код, но разобраться с ним не могу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
const
  maxn = 1000;
  infinity = maxlongint;
var
  n,m,vin,vout,i,u,v,w,head,tail,ans:longint;
  ne,p,flow:array[1..maxn]of longint;
  e,c,f:array[1..maxn,1..maxn]of longint;
  q:array[0..maxn]of longint;
 
begin
  read(n,m,vin,vout);
  for i:=1 to m do begin
    read(u,v,w);
    if c[v,u]=0 then begin
      inc(ne[u]); e[u,ne[u]]:=v;
      inc(ne[v]); e[v,ne[v]]:=u;
    end;
    c[u,v]:=w;
  end;
  repeat
    p[vout]:=-1;
    fillchar(flow,sizeof(flow),0);
    flow[vin]:=infinity;
    head:=0; tail:=1; Q[0]:=vin;
    while head<tail do begin
      u:=Q[head]; inc(head);
      for i:=1 to ne[u] do begin
        v:=e[u,i];
        if (c[u,v]-f[u,v]>0)and(flow[v]=0) then begin
          Q[tail]:=v; inc(tail);
          p[v]:=u;
          if c[u,v]-f[u,v]<flow[u] then flow[v]:=c[u,v]-f[u,v]
                                   else flow[v]:=flow[u];
          if v=vout then break;
        end;
      end;
    end;
    if p[vout]=-1 then break;
    u:=vout;
    while u<>vin do begin
      f[p[u],u]:=f[p[u],u]+flow[vout];
      u:=p[u];
    end;
    ans:=ans+flow[vout];
  until false;
  write(ans);
end.
Объясните, пожалуйста, что выполняется.

Добавлено через 13 часов 31 минуту
Или подскажите, пожалуйста, как дополнить программу, чтобы она выводила вершины, через которые проходит максимальный путь.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2013, 10:52
Ответы с готовыми решениями:

Максимальный поток транспортной сети
Друзья, помогите найти максимальный поток транспортной сети

Максимальный поток в данной транспортной сети
Добрый день. завтра нужно сдавать допуск к экзамену, в допуске необходимо найти максимальный поток...

Определить максимальный поток в транспортной сети
Определить максимальный поток в транспортной сети, проверить его оптимальность. В условиях задачи...

Алгоритм Форда-Фалкерсона, максимальный поток в сети
Первое красное значение на пути это вес а второе поток. Проблема заключается в том что поток...

0
12.06.2013, 10:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2013, 10:52
Помогаю со студенческими работами здесь

Максимальный поток графа
Написал программу для поиска максимального потока в графе. На сайте mmccme.ru некоторые тесты не...

Максимальный поток в графе
доброе время суток, нужно найти максимальный поток с помощью алгоритма Форда-Фалкерсона

Максимальный поток; Сетевое планирование
Здравствуйте. Необходимо решить две задачи: 1. Найти максимальный поток 2. Расчитать на графике...

Максимальный поток в неориентированном графе
Какой алгоритм следует использовать для нахождения максимального потока в неориентированном...

Максимальный поток минимальной стоимости
Вечер добрый, нашел программу работает, выдает как я понял максимальный поток и минимальную...

Максимальный поток в графе, объясните идиоту
const int inf = 1000*1000*1000; typedef vector&lt;int&gt; graf_line; typedef vector&lt;graf_line&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru