资源描述:
《交通分配之用户均衡分配模型二(matlab源码).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、例总流量为100,走行函数为:模型求解的Matlab源码:symslambda;tt=[000];xx=[00000];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
2、00];%置初值Min=50000;forj=1:3iftt(1,j)3、(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);ttMin=50000;forj=1:3iftt(1,j)4、eifindex==2y(1,2)=Q;y(1,5)=Q;elsey(1,1)=Q;y(1,3)=Q;y(1,5)=Q;end%分配流量给辅助流fprintf('第%d次迭代的辅助流量值是:',i);yzz=xx+lambda*(y-xx);%按方向(y-xx)进行一维搜索,步长为lamdat1=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
5、=(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;ifk==1lambda2=lambda1;elseform=1:kiflambda1(m,1)>0&&lambda1(m,1)<1&&isreal(
6、lambda1(m,1))lambda2=lambda1(m,1);endendendfprintf('第%d次迭代的最优步长值是:',i);lambda2fprintf('第%d次迭代的路段流量值是:',i);xx=xx+lambda2*(y-xx)%得到下一步的流量值,且进行下一次迭代end