交通分配之用户均衡分配模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

tt =[0 0 0 ];
xx= [0 0 0]
t1 = 10 * (1 + 0.15 *(xx(1,1)/2)^4);
t2 = 20 * (1+ 0.15 * (xx(1,2)/4)^4) ;
t3 = 25 * (1 + 0.15 * (xx(1,3)/3)^4);%一个OD对,起点到终点的三条路段的走行时间函数Q = 10;
N=8 ; % 迭代次数,本例只设置最大迭代次数。

也可另外设置收敛条件
tt(1,1)= t1 ;
tt(1,2) = t2;
tt(1,3) = t3 ;
y = [0 0 0]; %置初值
Min = 50000;
for j = 1 : 3
if tt(1 ,j) <Min %计算最小走行时间的路段,用全有全无法分配流量Min = tt(1,j);
index = j;
end
end
xx(1,index) =Q;
for i =1 :N
y = [0 0 0];
t1 = 10 * (1 + 0.15 *(xx(1,1)/2)^4);
t2 = 20 * (1+ 0.15 * (xx(1,2)/4)^4) ;
t3 = 25 * (1 + 0.15 * (xx(1,3)/3)^4);
tt(1,1)= t1 ;
tt(1,2) = t2;
tt(1,3 ) = t3 ;
fprintf('第%d 次迭代的路径时间值:' , i);
tt
Min = 50000;
for j = 1 : 3
if tt(1 ,j) <Min %计算最小走行时间的路段,用全有全无法分配流量Min = tt(1,j);
index = j;
end
end
y(1,index) = Q; % 分配流量给辅助流
fprintf('第%d 次迭代的辅助流量值是:' , i);
y
zz = xx + lambda * (y-xx); % 按方向(y-xx)进行一维搜索,步长为lamda t1 = 10 * (1 + 0.15 *(zz(1,1)/2)^4);
t2 = 20 * (1+ 0.15 * (zz(1,2)/4)^4) ;
t3 = 25 * (1 + 0.15 * (zz(1,3)/3)^4);
f =( y(1,1) -xx(1,1)) * t1 + (y(1,2) -xx(1,2))* t2 +(y(1,3) -xx(1,3))* t3 ;
lambda1 =double( solve(f)) ; %求解方程,确定步长。

k = length(lambda1); % 如步长lambda1的解不唯一,取实数,且大于0 小于1;if k == 1
lambda2 =lambda1;
else
for m=1: k
if lambda1(m,1) > 0 && lambda1(m,1) < 1 && isreal(lambda1(m,1)) lambda2 =lambda1(m,1);
end
end
end
fprintf('第%d 次迭代的最优步长值是:' , i);
lambda2
xx = xx + lambda2*(y - xx ); % 得到下一步的流量值,且进行下一次迭代
end。

相关文档
最新文档