資源簡介
無向圖中的最大流算法MATLAB代碼。注意:最后的hop calculation請忽略,與最大流算法無關。
代碼片段和文件信息
function?[hopmaxflowflowmatrix]=Maxflow_undirected(Cnsrcdes)
%?source?node:?src
%?destination?node:?des
%?node?number:?n
%?capacity?matrix:?C
%?n=8;
%?C=?[0?5?4?3?0?0?0?0
%?????5?0?0?0?5?3?0?0
%?????4?0?0?0?0?3?2?0
%?????3?0?0?0?0?0?2?0
%?????0?5?0?0?0?0?0?4
%?????0?3?3?0?0?0?0?3
%?????0?0?2?2?0?0?0?5
%?????0?0?0?0?4?3?5?0];
%?src=1;des=5;
flowmatrix?=?zeros(nn);
%Nod?記錄標號
No?=?zeros(1n);
d?=?zeros(1n);
while?(1)
No(src)?=?n+1;
d(src)?=?Inf;?%給發點vs?標號
??while(1)
????pd?=?1;?%標號過程
????for?i?=?1:n
??????if?(No(i))?%選擇一個已標號的點vi
????????for?j?=?1:n
??????????if?(No(j)?==?0?&&?flowmatrix(ij)??????????????No(j)?=?i;
?????????????d(j)?=?C(ij)?-?flowmatrix(ij);
?????????????pd?=?0;
?????????????if?(d(j)?>?d(i))
????????????????d(j)?=?d(i);
?????????????end
??????????elseif?(No(j)?==?0?&&?flowmatrix(ji)?>?0)?%對于未給標號的點vj?當vjvi?為非零流弧時
????????????????No(j)?=?-i;
?????????????
評論
共有 條評論