均衡模型matlab,交通分配之用户均衡分配模型二(matlab源码).doc

交通分配之用户均衡分配模型二(matlab源码)

总流量为100,走行函数为:

模型求解的Matlab 源码:

syms lambda ;

tt =[0 0 0 ];

xx = [0 0 0 0 0] ;

t1 = 4 + (0.6/40)*xx(1,1);

t2 =6 + (0.9/40) *xx(1,2);

t3 = 2 + (0.3/60) *xx(1,3);

t4 = 5 + (0.75/40) *xx(1,4) ;

t5 = 3 + (0.45/40) *xx(1,5) ;

Q = 100;

N=8 ; % 迭代次数 ,本例只设置最大迭代次数。也可另外设置收敛条件

tt(1,1)= t1 +t4 ;

tt(1,2) = t2 + t5 ;

tt(1,3) =t1+ t3 +t5 ;

y = [0 0 0]; %置初值

Min = 50000;

for j = 1 : 3

if tt(1 ,j)

Min = tt(1,j);

index = j;

end

end

% y(1,index) = Q;

if index ==1

xx(1,1)= Q;

xx(1,4)=Q;

elseif index ==2

xx(1,2)= Q;

xx(1,5)=Q;

else

xx(1,1)= Q;

xx(1,3)=Q;

xx(1,5)=Q;

end

for i =1 :N

y = [0 0 0 0 0 ];

t1 = 4 + (0.6/40)*xx(1,1);

t2 =6 + (0.9/40) *xx(1,2);

t3 = 2 + (0.3/60) *xx(1,3);

t4 = 5 + (0.75/40) *xx(1,4) ;

t5 = 3 + (0.45/40) *xx(1,5) ;

tt(1,1)= t1 +t4 ;

tt(1,2) = t2 + t5 ;

tt(1,3) =t1+ t3 +t5 ;

fprintf('第 %d 次迭代的 路径时间值:' , i);

tt

Min = 50000;

for j = 1 : 3

if tt(1 ,j)

Min = tt(1,j);

index = j;

end

end

if index ==1

y(1,1)= Q;

y(1,4)=Q;

elseif index ==2

y(1,2)= Q;

y(1,5)=Q;

else

y(1,1)= Q;

y(1,3)=Q;

y(1,5)=Q;

end % 分配流量给辅助流

fprintf('第 %d 次迭代的 辅助流量值是:' , i);

y

zz = xx + lambda * (y-xx); % 按方向(y-xx)进行一维搜索,步长为lamda

t1 = 4 + (0.6/40)*zz(1,1);

t2 =6 + (0.9/40) *zz(1,2);

t3 = 2 + (0.3/60) *zz(1,3);

t4 = 5 + (0.75/40) *zz(1,4) ;

t5 = 3 + (0.45/40) *zz(1,5) ;

f =( y(1,1) -xx(1,1)) * t1 + (y(1,2) -xx(1,2))* t2 +(y(1,3) -xx(1,3))* t3 +(y(1,4) -xx(1,4))* t4 +(y(1,5) -xx(1,5))* t5 ;

lambda1 =double( solve(f)) ; %求解方程,确定步长。

k = length(lambda1); % 如步长lambda1的解不唯一,取实数,且大于0 小于1;

if k == 1

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值