#################本文为学习《图论算法及其MATLAB实现》的学习笔记#################
在网络中可以求出指定始点和终点的最大可靠路与最大容量路;
而在实际问题中,既要考虑到路的完好概率,又要考虑到整条路的运输容量,这就涉及最大期望容量路问题。它在运输网路、可靠性通信网络等方面非常有用。 求最大期望容量路的判断准则是:这条路的最大通过能力(容量)与该路的完好概率的乘积达到极大。
算法用途
最大期望容量路的求解
算法思想
程序参数说明
P: 概率矩阵
C: 容量矩阵
pw: 路
f: 路的期望容量
算法程序详解
%最大期望容量路的算法
function [ pw, f ] = efpathf( P,C )
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% 输入: P: 概率矩阵
%%%%%%%%% C: 容量矩阵
%%%%%%%%% 输出: pw: 路
%%%%%%%%% f: 路的期望容量
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f1 = 0;
f = 0;
k = 1;
while f1 == 0 && k < 100
[pw1, pt, f1] = p_pathf(P); % 计算一条最大可靠路
if f1 == 0 % 若找到路
c1 = inf;
%%%%%%%% 计算路的容量 %%%%%%%%
for i = 1:(length(pw1)-1)
c2 = C(pw1(i),pw1(i+1));
if c1 > c2
c1 = c2; % cl为路的容量
end
end
ft = c1 * pt; % 计算路的期望容量
%%%%%% 步骤2 %%%%%%
C(C < c1) = 0; % 减去容量小于cl的边
P(C < c1) = 0;
%%%%%% 步骤3 %%%%%%
if ft > f
f = ft; % 选择最大的期望容量
pw = pw1; % 此时路为最大期望容量路
end
k = k+1; % 在一定循环次数内进行计算,防止发生死循环
end
end