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

合集下载

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

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

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 : 3if tt(1 ,j) <Min %计算最小走行时间的路段,用全有全无法分配流量Min = tt(1,j);index = j;endendxx(1,index) =Q;for i =1 :Ny = [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);ttMin = 50000;for j = 1 : 3if tt(1 ,j) <Min %计算最小走行时间的路段,用全有全无法分配流量Min = tt(1,j);index = j;endendy(1,index) = Q; % 分配流量给辅助流fprintf('第%d 次迭代的辅助流量值是:' , i);yzz = 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)) ; %求解方程,确定步长。

第09章 基本交通分配模型

第09章 基本交通分配模型
该方法简单,精度可以根据 N 的大小来调节,因而在实际中 常被采用。
该方法仍然是近似算法,有时会将过多的流量分配到容量小 的路段。
N 越大,配流结果越接近均衡解,但计算工作量相应增加。 另外,非常大的 N 值也不能完全保证配流结果一定满足用户 均衡条件。
算例:
9.3.4 二次加权平均分配法 (method of successive averages)
分配步骤
分配算例:
试用二次加权平均分配法(MSA方法)求解下面的固定需求交 通分配问题(迭代2次)。
9.4 用户优化均衡交通分配模型(User Equilibrium Model) UE(用户均衡)的概念最早由Wardrop于1952年提出。User Equilibrium的基本假设有:
假设出行者都力图选择阻抗最小的路径;
假设出行者能随时掌握整个网络的状态,即能精确计算每条 路径的阻抗从而做出完全正确的路径选择决策;
假设出行者的计算能力和计算水平是相同的。
User Equilibrium的定义:当不存在出行者能单方面改变其出 行路径并能降低其阻抗时,达到了UE状态。
9.4.1 均衡分配模型的建立 Wardrop第一原理的数学描述 变量说明:
在实际应用中,对于大规模网络,通常4至6次迭代就够了。确定 迭代次数时,要综合考虑原始数据的准确性、财力约束和具体的 网络结构。
UE分配算例: 网络模型如下,试用F-W算法求两边的交通量。
9.5 系统优化均衡交通分配模型(SO Model)
9.5.1 SO模型的基本思想
Wardrop第一原理有时也称为用户均衡(UE)原理、或用户最优原理 。UE模型就是建立在UE原理上的数学模型。
Wardrop第二原理反映的是一种系统目标,即按什么样的分配是最 好的,为规划管理人员提供了一种决策方法,在实际中难以实现, 除非所有的道路使用者都相互协作为系统最优而努力。

第八章_交通分配

第八章_交通分配

在交通分配理论中,以 Wardrop第一原理为基本 指导思想的分配方法比较多。国际上通常将交通 分配方法分为平衡分配和非平衡分配两大类。
对于完全满足Wardrop原理定义的平衡状态,则称 为平衡分配方法;
对于采用启发式方法或其他近似方法的分配模型 ,则称为非平衡分配方法。
【例题】
设OD之间交通量为q=2000辆,有两条径路a与b。径 路a行驶时间短,但是通过通行能力小,径路b行驶 时间长,但通行能力大。假设各自的行驶时间( min)与流量的关系:
ta t0[1 (Va / ca ) ]
零流阻抗
实际通行能力
2.节点处的阻抗
节点处的阻抗是指车辆在交通网络节点处主要指在交叉口处的 阻抗。交叉口阻抗与交叉口的形式、信号控制系统的配时、交 叉口的通过能力等因素有关。在城市交通网络的实际出行时间 中,除路段行驶时间外,交叉口延误占有较大的比重,特别是 在高峰期间,交叉口拥挤比较严重时,交叉口延误可能会超过 路段行驶时间。
1、交通小区划分 交通调查和规划前,需要先将规划区域划
分成若干交通小区。是进行现状OD调查和 未来OD预测的基础。 2、交通网络的组成 在城市交通规划中,主要对快速路、主干 道、次干转换
交通小区和网络确定后,需要将小区间OD量作用点转移到与该 小区质心比较靠近的交通网络节点上。
当饱和度较大 x>0.67 时,该公式不再适用
已有的城市道路交通分配理论一直忽略节 点阻抗这个问题,借用从城市间公路上获 得的行驶时间的BPR函数作为城市道路网上 的阻抗,只计算路段上的阻抗。
三、路径与最短径路
1.路段 交通网络上相邻两个节点之间的交通线路称作“路段”。
2.路径 交通网络上任意一OD点对之间,从发生点到吸引点一串连 通的路段的有序排列叫做这一OD点对之间的路径。一个OD 点对点之间可以有多条路径。

基于有限理性的弹性需求随机用户均衡交通分配模型

基于有限理性的弹性需求随机用户均衡交通分配模型

T e mo e n lo t m a ep t e p n t e u d rtn i g o a e b h vo ,i r v h h oe i a s mp i n n — h d l d ag r h c n h l o d e e h n e sa dn ft v l e a ir mp o e t e t e rt su t s a d a a i r c o d pa i t ft dt n lt f c a s n n d l n e n t t cu lt f c f w p t r r c u a ey a tb l y o a i o a r f s i me t i r i ai g mo e ,a d d mo sr e a t a r f o at n moe a c r tl . a ail e Ke o d : b u d d rt n l y;c mu aie p o p c h oy;ea t e n ;so h si u e q i b u yw rs o n e a i a i o t u lt rse t e r v t lsi d ma d tc a t s re ul r m c c ii
b s d o o n e a i n lt a e n b u d d r t ai o y
Z NG o,J HA B UAN Z ic i I — u h —a ,L N Xu x n
( na ol efEoo c Maa e n, h n hi i t gU i rt, h nh i 0 0 2 hn ) A ti lg cnmi C e o s& ngmet S a ga a o nv sy S ag a 0 5 ,C ia Jon ei 2
t e r .Th n p e e t d a q i ae tv r t n l n q ai .fl w d b n ag r h a d a n me c l x mp e t s .De h oy e r s n e n e u v l n a i i a e u t ao i l y ol e y a l o t m n u r a a l o t ti o i i e e t — p ce r v lr ’c g i o n s c oo ia e t r sb a so a a trs n i v t n y i.T e rs l dc t a a ・ it d ta e e s o n t n a d p y h lg c fa u e y me n fp r mee e st i a a ss h e ut i iae t t ry i l i y l sn h t

用户均衡模型(UE)与随机用户均衡模型(SUE)在交通流分配阶段的适用性分析

用户均衡模型(UE)与随机用户均衡模型(SUE)在交通流分配阶段的适用性分析

科技与创新┃Science and Technology&Innovation ·40·2019年第03期文章编号:2095-6835(2019)03-0040-02用户均衡模型(UE)与随机用户均衡模型(SUE)在交通流分配阶段的适用性分析王晓璠(中铁第四勘察设计院集团有限公司,湖北武汉430063)摘要:“交通流分配”作为交通规划“四阶段法”的最后一个阶段,对公路项目交通量分析与预测的准确性起到至关重要的作用。

针对交通流分配的不同模型与实际交通量观测数据存在精度不高的问题,结合具体实例,在交通补充调查的基础上,比较了用户均衡模型(UE)与随机用户均衡模型(SUE)的分配精度。

从TransCAD软件的交通规划建模结果来看,应用后者的模型在基础路网上进行交通流分配较前者的模型在不同路段的分配精度上均有不同程度的上升。

这说明了随机用户均衡模型(SUE)更加具有适用性,也为今后相关报告的编制提供了实例验证和数据支撑。

关键词:交通规划建模;交通流分配;用户均衡模型;随机用户均衡模型中图分类号:U491文献标识码:A DOI:10.15913/ki.kjycx.2019.03.040作为国内外道路工程交通预测通行的方法,“四阶段法”已被国内公路项目“工程可行性研究”及“交通影响评价”等报告的编制广泛应用。

而“交通流分配”作为交通规划“四阶段法”的最后一个阶段,对公路项目交通量分析与预测的准确性起到至关重要的作用。

目前,国内大多公路项目工程可行性研究报告将用户均衡模型(UE)和随机用户均衡模型(SUE)作为“交通流分配”阶段的主要应用模型,将各交通小区间的OD数据分配到已知的道路网模型上。

而现有文献缺乏对上述两个模型对于路网真实交通流量情况模拟的准确性以及对未来年道路网交通量分析和预测的适用性分析。

本报告在对大量公路项目交通量观测和OD调查和数据分析的基础上,利用宏观交通规划和需求预测软件TransCAD建立路网模型,并分别利用上述两个模型进行交通流分配,将分配结果与道路网真实交通量数据进行对比分析,为公路项目交通量分析和预测所利用的模型比选提供参考。

交通流分配

交通流分配
(Studies出版之后)
19586 Charnes & Cooper 1959 Charnes & Cooper
1963 Jorgensen
1965 1966
1968
Overgaard Jewell
Braess
除了 Studies之外的相关研究
Charnes and Cooper (1958) 按照总路段流的积分函 数形式,提出了固定需求下交通网络均衡配流模型。后 来,他们利用求解线性规划的方法,针对费用函数的分 段线性形式,给出求解小规模网络下的模型算法。
• 2005年9月, WorldCat List of Records 的研究表明,全 世界373个图书馆收藏了Studies ,13个图书馆拥有该书 的兰德版本。7个图书馆拥有该书的西班牙版本。
• 2005年10月通过Web of Science 搜索发现,321篇文章引 用了Studies
Studies出版之前有关 网络均衡的研究
Knight
1924
Duffin 1947
Nash Wardrop
Prager
1951 1952
1954
1956
相关研究
• Knight (1924) 描述了一个包含两条路径的路网中的均衡和有效性 条件,同时纠正了Pigou(1918)文中的一个错误。
• “Suppose that between two points there are two highways, one of which is broad enough to accommodate without crowding all the traffic which may care to use it, but is poorly graded and surfaced, while the other is a much better road, but narrow and quite limited in capacity. If a large number of trucks operate between the two termini and are free to choose either of the two routes, they will tend to distribute themselves between the roads in such proportions that the cost per unit of transportation, or effective returns per unit of investment, will be the same for every truck on both routes. As more trucks use the narrower and better road, congestion develops, until a certain point it becomes equally profitable to use the broader but poorer highway.”

纳什均衡matlab代码

纳什均衡matlab代码

纳什均衡(Nash Equilibrium)是博弈论中的一个重要概念,描述了在非合作博弈中,所有玩家在选择策略时达到的一种均衡状态,其中任一玩家无法通过单独改变策略来增加自己的收益。

以下是一个简单的MATLAB代码示例,用于计算2x2非合作博弈的纳什均衡。

这里假定有一个支付矩阵,我们将寻找纯策略纳什均衡。

```matlabfunction nash_equilibrium_example()% 定义博弈的支付矩阵 (这是玩家1的支付矩阵, 玩家2的支付是它的转置)payoffMatrix = [1, -1; -1, 1]; % 这是一个零和博弈的示例% 检查纯策略纳什均衡[strategies1, strategies2, value1, value2] = find_pure_strategy_nash_equilibria(payoffMatrix);% 输出结果if isempty(strategies1)disp('没有找到纯策略纳什均衡。

')elsedisp('找到了纯策略纳什均衡:')disp(['玩家1的策略: ', num2str(strategies1)])disp(['玩家2的策略: ', num2str(strategies2)])disp(['玩家1的支付: ', num2str(value1)])disp(['玩家2的支付: ', num2str(value2)])endendfunction [strategies1, strategies2, value1, value2] = find_pure_strategy_nash_equilibria(payoffMatrix)numStrategies1 = size(payoffMatrix, 1);numStrategies2 = size(payoffMatrix, 2);strategies1 = [];strategies2 = [];value1 = [];value2 = [];for i = 1:numStrategies1for j = 1:numStrategies2isEquilibrium = true;% 检查玩家1是否无法通过更改策略而获得更多收益for k = 1:numStrategies1if k ~= i && payoffMatrix(k, j) > payoffMatrix(i, j)isEquilibrium = false;break;endif ~isEquilibriumcontinue;end% 检查玩家2是否无法通过更改策略而获得更多收益% 注意:这里我们假设博弈是零和的,所以玩家2的支付矩阵是玩家1支付矩阵的负值for l = 1:numStrategies2if l ~= j && -payoffMatrix(i, l) > -payoffMatrix(i, j)isEquilibrium = false;break;endendif isEquilibriumstrategies1 = [strategies1, i];strategies2 = [strategies2, j];value1 = [value1, payoffMatrix(i, j)];value2 = [value2, -payoffMatrix(i, j)]; % 对于零和博弈break; % 如果找到一个均衡,就跳出内层循环(可能有多个均衡,但这个简单的例子只有一个)endif ~isempty(strategies1)break; % 如果找到一个均衡,就跳出外层循环endendend```这段代码首先定义了一个名为`nash_equilibrium_example`的函数,它设定了一个2x2的支付矩阵,并调用`find_pure_strategy_nash_equilibria`函数来寻找纯策略纳什均衡。

4-2 交通规划平衡分配方法

4-2 交通规划平衡分配方法

ta
(
xa
)
rs a,k
ckrs
rs
❖ 其中:xa----路段a上的交通流量;
ta----路段a的交通阻抗或行驶时间;
ta(xa)----路段a的阻抗函数(以流量为自变量);
fkrs----起点r到终点s之间第k条径路上的流量;
cars----OD间的第k条径路阻抗;
urs----OD间的最短径路阻抗;
❖ 基本思路:就是根据一组线性规划的最优解来确定 下一步的迭代方向,然后根据目标函数的极值问题 求最优迭代步长。
Beckmann模型的解法(Frank-Wolfe算法):
❖ 步骤1:初始化:按照ta0=ta(0) ,进行0-1交通分 配交通流分配,得到各路段的流量{xa1};令n=1。
❖ 步骤2:更新各路段的阻抗:tan=ta(xan)。 ❖ 步骤3:寻找下一步迭代方向:按照更新后的{tan},
❖ Beckmann模型是一组非线性规划模型,对非线 性规划模型现在还没有普遍通用的解法,只是对 某些特殊的模型才有可靠的解法,Beckmann模 型就是一种特殊的非线性规划模型。
Beckmann模型的解法:
❖ F-W方法是用线性规划逐步逼近非线性规划的一种 迭代法。在每步迭代中先找到一个最快速下降方向, 然后再找到一个最优步长,在最快速下降方向上截 取最优步长得到下一步迭代的起点,重复迭代直到 最优解为止。
❖ 容量限制法-minimum path with capacity restraints method
❖ 多路径概率交通分配法 (probability of multi-path method) ❖ 容量限制-多路径分配
❖ 本节主要介绍描述Wardrop平衡分配原 理的数学模型及求解算法。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


总流量为100,走行函数为:
⎪⎭⎫ ⎝⎛+=40)(6.04)(111t x x c ⎪⎭
⎫ ⎝⎛+=40)(9.06)(222t x x c ⎪⎭
⎫ ⎝⎛+=60)(3.02)(333t x x c ⎪⎭⎫ ⎝⎛+=40)(75.05)(444t x x c ⎪⎭
⎫ ⎝⎛+=40)(45.03)(555t x x c 模型求解的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 %计算最小走行时间的路段 ,用全有全无法分配流量 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 %计算最小走行时间的路段,用全有全无法分配流量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
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
fprintf('第%d 次迭代的路段流量值是:' , i);
xx = xx + lambda2*(y - xx ) % 得到下一步的流量值,且进行下一次迭代
end。

相关文档
最新文档