如何在静态模型中定义每个出行目的的不同成本
2021年1月:在第53号技术注解中,我们给出了一些关于如何根据车辆类型修改静态分配成本的技巧。 在本月的Pro技巧中,Marga Delgado解释了如何按旅行目的进行。
2019年2月
作者:Mohammad Saifuzzaman
矩阵调整是一个调整先验OD矩阵的程序,使用来自探测器、检测站、路段或节点或超级节点的交通计数。 解决算法是基于一个双级模型,由基于梯度的算法启发式地解决,该算法在每次迭代时都会运行一个分配。 该算法计算一连串的OD矩阵,连续减少来自探测器的交通计数和由交通分配得到的交通流量之间的最小二乘误差。
用于解决问题的算法在本质上是启发式的,属于最陡峭下降型,并不能保证所制定的问题的全局最优,因此有时需要人工干预以获得良好的结果。
Aimsun Next提供了几个选项来限制调整过程,以防止过度拟合,并尽可能接近原始矩阵,例如:可以设置矩阵弹性和行程长度分布弹性,以全面限制与原始矩阵的任何变化;或者,在某些情况下,可以提供一个最大偏差矩阵,为每个单独的OD对精确设置一个变化限制;或者可以使用权重函数为用于调整的观察值(真实数据)分配不同的权重。
使用权重函数是这些选择中探索最少的。 权重函数是唯一直接影响观察值的选择,此外,最小二乘法误差的一个已知问题是它倾向于高值。 权重函数如果使用得当,可以减少高、低计数之间的不平衡,从而改善整体调整结果。
本技术注解探讨了权重函数对矩阵调整过程的影响。
该文探讨的OD调整的基本需求来自Emme的战略模型。 本研究中使用的检测器数据来自两个不同的来源:从高速公路检测器收集的高速公路数据,每3分钟记录一次单个车辆的计数。 大多数有信号灯的交叉口都有从SCATS历史数据库中收集的交叉口计数。 SCATS数据以1-5分钟的间隔存储。 综合数据集以15分钟的间隔更新。 这些探测器的数据之后与探测站的数据相结合(多车道路段的探测站是具有共同行驶方向的探测器的集合)。
该模型涵盖了从地方道路到高速公路,总共有1236个探测站,其中203个位于高速公路上,其余的位于城市信号交叉口。 在不同的检测器上观察到的流量范围在0-6,070辆车/小时之间。
调整权重函数可以作为用于调整过程的真实数据(断面/探测器/转弯计数)的可靠的形式。 默认情况下,不应用权重函数。 本文采用了以下权重函数:
权重函数1 = (1/(观察流量^0.2))*10
权重函数2 = (1/(观察流量^0.4))*50
权重函数3 = (1/(观察流量^0.6))*300
为了了解权重函数对矩阵调整的影响,让我们采取四种不同的静态OD调整:不使用权重函数,使用权重函数1、2和3。 实验有以下设置:
• 外围迭代次数 = 20
• 梯度下降迭代次数 = 3
• 内部迭代次数 = 50
• 相对差距 = 0.1%
• 分配方法 = Conjugate Frank and Wolfe
表1列出了矩阵调整实验的结果。 调整的性能通过观察和模拟的流量得到验证。 验证的主要标准是GEH<5%,平均GEH水平和回归R2。
表1显示,即使不使用任何权重函数,矩阵调整的效果已经不错。 全部数据GEH<5%是61%, 而观察流量超过2000的数据是100%。 矩阵调整的一个已知问题是,它有利于高流量,因为该算法使用来自探测器的交通计数和交通分配得到的交通流量之间的最小二乘误差。 因此,当我们使用一个对小计数给予高权重的权重函数时,很可能会提高调整性能。 表1显示,使用权重3可以将整体GEH<5%提高到76%。 权重函数降低了平均GEH水平。
有趣的是,2000年以上的观测流量的平均GEH随着权重的增加而增加,而2000年以下的流量则相反。 这种行为是由本研究中使用的权重函数的特性造成的,它对小流量的权重更大。 因此,调整后的矩阵显示出对地方道路,即流量<2000辆车/小时的道路有更好的性能。
应用权重函数明显改善了调整性能。 然而,与没有权重函数的调整相比,权重函数可能会导致原始矩阵的更多失真。 例如,下图通过调整后的需求与原始需求的散点图显示了矩阵的失真。 无权量和权重3的回归R2值分别为0.8143和0.7138。 使用权重3对原始矩阵产生了更多的扭曲,以更接近于观察到的流量。
权重函数的类型会影响行程长度的分布;例如,在本研究中,权重函数有利于可能出现在地方道路上的小流量。 因此,高权重函数将比无权重函数创造更多的短途旅行(见下图)。
从上面的讨论中可以看出,权重函数是矩阵调整的有力工具。 然而,存在着过度拟合模型的危险。 应通过选择适当的权重函数来保持网络中低流量和高流量区域之间的平衡。
在Aimsun Next的矩阵调整的双级优化框架中,梯度下降法的执行不改变在外迭代时进行的静态分配中得到的路径分配结果。 更高的梯度下降迭代可以改善矩阵调整,但代价是更高的运行时间。 在之前的测试中,我们使用的梯度下降迭代次数为3。 在本节中,我们将观察梯度下降迭代对矩阵调整性能的影响,以无权重为基本情况。 表2列出了梯度下降迭代对矩阵调整性能的影响。 没有使用权重函数。
仔细观察平均GEH或GEH<5%的变化,可以看出在迭代数1和3之间,矩阵调整性能的变化很快。 从梯度下降迭代3到9,调整性能的变化几乎是线性的。 因此,在其余的分析中,使用了梯度下降迭代数 = 3。
矩阵调整的改进伴随着原始需求和行程长度分布的更高变形。 在图6中,显示了梯度下降迭代1和7的矩阵变形和行程长度分布的比较。 7次梯度下降迭代后,回归R2降低到0.77,而仅1次梯度下降迭代的R2值为0.88。 同样,随着梯度下降迭代的增加,观察到更多的短程出行的数量。
到目前为止,分析是在从不同来源收集的真实数据上进行的。 基础需求来自于战略模型。 由于用于调整的数据来自不同的来源,很难知道哪一个更可靠。 通过施加不同的权重或控制其他参数,调整过程会产生一个从输入(基数)矩阵扭曲的输出,以适应计数。 然而,我们不知道调整结果与真实矩阵有多接近。 真实矩阵是一个假设的矩阵,(如果有的话)会产生相同的探测器计数。
在这一节中,我们进行了一个假设检验,观察权重函数是否有助于产生一个接近真实需求的需求矩阵。 我们已经观察到,权重函数为矩阵调整提供了更好的性能。 然而,更好的性能是以输入矩阵的更大变形和行程长度分布的更大变化为代价的。 我们很想知道这些变化是否产生了一个更接近真实矩阵的矩阵。 如果结果更接近真实的矩阵,那么对输入矩阵的较高变形应该是可以接受的。
我们采用了3.2节中的调整后的需求和权重函数3(因为它产生了最好的调整输出)。 我们将这一要求作为 “真正的需求”。 在检测站由这个真实需求产生的平衡流量被命名为真实的RDS。 这个真正的RDS是一个完美的RDS,没有任何观察误差,所有的检测器流量都与上游、下游的流量以及一个交叉口的所有其他方向的道路一致。
真实的需求已经通过添加白噪声而被扭曲,并被命名为 “合成需求”,将用于矩阵调整。 白噪声由正态分布产生,平均值=0,标准差=0.5,种子=1。 合成需求是按照这个公式创建的:
其中i和j分别表示出发地和目的地。
在现实世界中,我们无法获得这种 “真实需求”。 我们将只能获得’合成需求’。 因此,这个测试将提供一些有价值的见解,说明调整能使矩阵接近原始或真实需求的程度。
表3列出了用合成需求和真实RDS进行调整的结果。 正如我们之前观察到的那样,权重函数性能很好。 即使不使用权重函数,结果也很好。 其原因很可能是由于RDS的质量。 由于RDS不存在流量不一致的问题,调整过程在寻找整体最小值方面遇到的困难较少。
由于我们现在有真实的和合成的矩阵,我们可以比较调整后的矩阵的质量。 表4列出了调整后的需求和真实需求之间的回归R2值。 它还显示了调整后的需求和合成需求之间的回归R2值。
权重函数对用于调整的合成矩阵产生了更大的变形(合成需求和调整需求之间的回归R2在权重函数3中最低,在无权重情况下最高)。 有趣的是,真实需求的情况正好相反。 这种高变形使矩阵更接近于真实的矩阵。 调整后的需求和真实需求之间的回归R2对于权重函数3来说是最高的,对于无权重情况来说是最低的。 显然,权重函数使矩阵朝着正确的方向变形,以创造一个调整后的需求,紧密代表真实需求。
2021年1月:在第53号技术注解中,我们给出了一些关于如何根据车辆类型修改静态分配成本的技巧。 在本月的Pro技巧中,Marga Delgado解释了如何按旅行目的进行。
2014年8月:Margarida Delgado解释了Aimsun四阶段模型实验的连锁结构的优势。
分享
Aimsun Next 20
Aimsun Next 8.4
Aimsun Next 20
@manual {AimsunManual,
title = {Aimsun Next 20 User’s Manual},
author = {Aimsun},
edition = {Aimsun Next 20.0.3},
address = {Barcelona, Spain},
year = {2021. [In software]},
month = {Accessed on: Month, Day, Year},
url = {qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html},
}
Aimsun Next 8.4
@manual {AimsunManual,
title = {Aimsun Next 8.4 User’s Manual},
author = {Aimsun},
edition = {Aimsun Next 8.4.4},
address = {Barcelona, Spain},
year = {2021. [In software]},
month = {Accessed on: Month, Day, Year},
url = {qthelp://aimsun.com.aimsun.8.4/doc/UsersManual/Intro.html},
}
Aimsun Next 20
TY – COMP
T1 – Aimsun Next 20 User’s Manual
A1 – Aimsun
ET – Aimsun Next Version 20.0.3
Y1 – 2021
Y2 – Accessed on: Month, Day, Year
CY – Barcelona, Spain
PB – Aimsun
UR – [In software]. Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html
Aimsun Next 8.4
TY – COMP
T1 – Aimsun Next 8.4 User’s Manual
A1 – Aimsun
ET – Aimsun Next Version 8.4.4
Y1 – 2021
Y2 – Accessed on: Month, Day, Year
CY – Barcelona, Spain
PB – Aimsun
UR – [In software]. Available: qthelp://aimsun.com.aimsun.8.4/doc/UsersManual/Intro.html