配流04—全有全无配流算法(2)
来源:互联网 发布:淘宝差评店主报复 编辑:程序博客网 时间:2024/05/16 01:46
说明:指定两点间的客流需求总量,建立费用函数(阻抗函数),一般情况下费用是流量的函数,就可以运用全有全无算法进行配流。
step1:建立费用函数m文件:feiyong.m
function [C,n]=feiyong
syms x1 x2 x3 real;
c1=8+0.1*x1;
c2=10+0.25*x2;
c3=15+0.15*x3;
C=vpa([c1;c2;c3],3);
n=length(C);
step2:主程序m文件:qyqw_feiyong.m
function qyqw_feiyong
syms x1 x2 x3 real
x=[x1;x2;x3];%为了方便使用矩阵进行符号变量替换
clc
disp('========================================================================');
disp(' 《全有全无算法》');
disp('运行环境:MATLAB 8.3.0.532 ');
disp('制 作 人:兰州交通大学 刘志祥');
disp('Q Q:531548824');
fprintf('说 明:本程序用于求解全有全无简单配流问题,只需要输入交通需求量并提前编\n制费用函数(feiyong.m)即可计算出配流结果。其中:\n');
fprintf(' T-交通需求\n C-费用函数\n x-路径流量\nX0-全无流量(0流量)\nC0-初始费用\nX1-配流结果\nC1-配流后费用\n Z-目标函数值(Z1,Z2)\n');
disp('=========================================================================');
disp('*********************************');
T=input('输入交通需求量T:')
disp('费用函数为:')
[C,n]=feiyong;
C
C0=C;
disp('*********************************');
disp('解:先初始化费用,令初始流量')
X0=zeros(n,1)
disp('则初始费用为:')
C0=subs(C0,x,X0)
m=min(C0);
for i=1:n
if m==C0(i,1)
k=i;
fprintf('费用最小的是C0(%d),即路径%d,根据全有全无算法配流有:',k,k)
end
end
X0(k)=T;
X1=X0
C1=subs(C,x,X1);
disp('则路径的费用更新为:')
C1=vpa(C1,3)
Xx=[0;0;0]; %积分下界
Xs=X1; %积分上界
for i=1:n
JC(i)=int(C(i),Xx(i),Xs(i)); %对每一个路径积分
end
disp('最小费用值为:')
disp('积分算法:')
Z1=vpa(sum(JC),3) %路径费用求和
disp('乘积算法:')
Z2=vpa(C1'*X1,3)
step3 运行主程序:
- 配流04—全有全无配流算法(2)
- 配流03—全有全无配流算法(1)
- 全无主意
- 字符串算法——有重复字符的数组或字符串全排列(Permutations II)
- 任意一个字符串的全排列算法(可以有重复的字符)
- 关于全排列算法(支持有重复的数字的情况)
- 全排列 数据结构(机工出版) 递归算法 有改动 还有不完善的地方!
- 算法问题(2)输出全排列
- 全排列(算法)
- 全排列的算法(七)——递归算法
- 数组全排列算法(一)字符串数组全排列——逐个追加组合算法
- 数组全排列算法(二)整型数组全排列——递归算法
- 求有重复数字的全排列算法。
- 【基础算法】有重复元素的全排列问题
- 忽然觉得力气全无
- IDEA 提示全无
- 全排列算法(转)
- 全排列算法(递归)
- ubuntu 初级学习
- ss在ubuntu下firefox上网
- Dt大数据梦工厂王家林老师 Scala实战详解之第16讲 Scala中包的定义、包对象、包的引用、包的隐式引用
- [LeetCode 233] Number of Digit One
- Dt大数据梦工厂王家林老师 Scala实战详解之第17讲 Scala中包、类、对象、成员、伴生类、伴生对象访问权限
- 配流04—全有全无配流算法(2)
- 关东升的《iOS实战:图形图像、动画和多媒体卷(Swift版)》上市了
- Struts2 错误处理
- Java实现验证码制作
- apache虚拟目录配置
- Android之Handler用法总结
- SQL Server:使用一个语句块插入多条记录
- HDU 5438 Ponds (搜索)
- iOS NSTimeZone