求最大期望容量路算法以及matlab程序详解

#################本文为学习《图论算法及其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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值