005_MatSIM得分详解

5.1 好计划和坏计划,分数和效用

如第1.4节以及图1.1和1.4所示,MATSim基于一种协同进化算法:每个个体agent通过保持多个计划进行模拟学习,这些计划通过在mobsim中执行来得分。根据得分来选择,会不断修改计算。迭代过程包含以下元素:

  • Mobsim

    流动性模拟,是为个体人选择一个“选定的”计划,并在路网环境中执行。这也可以称为网络加载。

  • Scoring

    综合模拟中挑选计划的实际执行情况,用来计算每个计划的得分。

  • Replanning

    包含以下几项过程:

    1. 如果个体人的计划数超过最大计划数(配置参数),则将根据(可配置的)计划选择器(选项集减少、计划删除)删除计划。
    2. 对于某些代理,计划会被复制、修改,然后选择用于下一次迭代(选择集扩展、创新)。
    3. 所有其他个体人在各自的计划之间进行选择。

个体人在给定迭代中的计划可以被认为是个体人在该迭代中的选择集。结果可得出,步骤1和2修改了选项集,而步骤3实现了选项之间的实际选择。选择通常基于分数;得分越高的计划越有可能被选中。这将在第*章中详细讨论还有。就目前而言,需要注意的是,Replanning的三个步骤必须配合工作方法:计划删除步骤应删除“坏”计划,创新步骤应生成“好”计划,而选择通常应选择好计划。这里,“好”的意思是“能够在mobsim/scoring中获得高分”。幸运的是,由于其进化的概念,该方法是相当稳健的:创新步骤并不总是产生好的解决方案。但是如果一些解决方案是好的,并导致高分,也已经足够。

这样看来,得分显然是MatSIM的核心要素。只有获得高分的解决方案才会被个体人选择,并且在计划删除步骤后仍然有效。因此,对于给定的场景,评分函数需要是“正确的”,这或多或少意味着,计划“表现良好”获得的评分要高于“表现不好”的计划。一个性能是否好,最终取决于居住在一个地区的出行者:一些人可能更喜欢拥挤的汽车旅行,另一些人可能更喜欢拥挤但负担得起的公共交通旅行,而另一些人可能更喜欢使用自行车(即使在恶劣的天气)。

找到这一评分函数的典型方法是使用计量经济学效用函数,例如来自随机效应模型(例如,Ben-Akiva and Lerman, 1985; Train, 2003))的得分。然而,在AI(人工智能)中,效用函数也可以以更一般的方式使用:例如,每个个体代理(或整个系统)想要或应该优化的分数(Russel和Norvig,2010)。

基于这些原因,“分数”和“效用”这两个术语在MATSim上下文中通常是可以互换的。由于我们需要边际效用的概念,本章将主要讨论“效用”。

用户可以配置许多参数来指定评分功能。当用户准备在本书的下一部分中扩展MATSim时,还将学习如何插入自己定制的评分功能。

然而,由于MATSim是基于完整的日计划,因此仅对部分的一日计划(例如,模式选择)应用选择模型并不简单,详见第节。由于文献中没有完整的日效用函数,MATSim从所谓的Charypar-Nagel评分或效应函数开始(第5.2节)。该评分函数有时会因具体研究而被修改、扩展或替换(第5.5节)。如第节所述,尚未提供适用于全天效用函数的估算值。

5.2 Charypar-Nagel 效应函数

5.2.1 数学公式

第一个,也是最基本的,MATSim评分函数是由Charypar和Nagel(2005)发明,基于Vickrey(1969)和Arnott等人(1993)描述的道路拥堵模型。最初,这个公式是为出发时间的选择而建立的。然而,迄今为止进行的所有研究表明,该函数也适用于得分计算的建模。

5.2.1.1 基本函数

基础方程为,活动效应S(act,q) 的加和,加上 出行效应S(trav,mde(q)) 的加和,即得到计划效应值,S(plan)。


image.png

以N为活动数。行程q是活动q之后的行程。对于评分,最后一个活动与第一个活动合并,以产生相等数量的行程和活动。

5.2.1.2 活动

活动q的效应计算如下(另见Charypar和Nagel,2005,p.377页):


image.png

每个对应数值的定义如下:
Performing an activity

image.png

上述公式计算的数值为,q活动执行的效应。t(dur,q)为执行活动的时长。β(perf) 与活动持续时间的边际效用(或时间作为一种资源的边际效用)有关,对所有活动都是一样的(见第5.2.4节)。t(0,q)是效用开始为正的持续时间。活动地点的开放时间需要加以考虑。
该公式默认设置的属性, typicalDurationScoreComputation=relative 定义如下:
通过该设置,t(0,q)由表达式t(0,q)=t(ty,p,q)q·exp(−1/prio(q)),其中p(rioq)是一个可配置参数。因此可将上述等式重写为


image.png

在典型持续时间(t(dur, q)=t(typ, q))下,第一项为零,因此具有相同prio(q)值的所有活动类型,在其典型持续时间下产生相同的相对分数 β(perf)/prio(q)(每小时)。
此外,所有活动的斜率为


image.png

一般来说,和表现在他们的典型持续时间。

图5.1显示了这种函数如何对t(typ)、prio(q)或 β(perf)的变化作出反应。另一种设置(现在已弃用)将在第5.6 节讨论。


image.png

图5.1:当TypicalDurationScoreCalculation设置为relative时,执行活动后带来的奖励。
上图:改变典型持续时间的效果。
中间:改变优先级的效果。
底部:改变性能的影响。
注意,在上图中,典型持续时间的分数与典型持续时间成正比。

Waiting

image.png

表示等待时间,例如,在仍然关闭的商店前;β(wait)是等待时间的直接边际效用(见第5.2.4节);t(wait,q)是等待时间。我们建议将β(wait)设为0;另见第5.2.5节。

Late arrival

image.png

指定迟到惩罚,其中t(start, q)是活动q的开始时间,t(latest.ar)是最晚的无惩罚活动开始时间,例如,上班、歌剧或剧院演出的正式开始时间。
image.png

Early departure

image.png

定义停留时间不够久的惩罚,其中t(end, q)是实际活动结束时间,t(earliest.dp, q)是最早可以结束活动的时间。我们通常建议将 β(early.dp)保留为0(如果有找到更好的模拟数值,可以替换该数值)。

Activity duration too short

image.png

是对活动过短的惩罚,其中t(short.dur)是最短的活动持续时间。我们通常建议将 β(short.dur)保留为0(如果有找到更好的模拟数值,可以替换该数值)。

Config syntax
其语法如下:

<module name="planCalcScore">
    <parameterset type="scoringParameters"/>
        <param name="subpopulation"value="null"/>
        <param name="performing"value="6.0"/>
        <param name="waiting"value="-0.0"/>
        <param name="lateArrival"value="-18.0"/>
        <param name="earlyDeparture"value="-0.0"/>
        ...

        <parameterset type="activityParams">
            <param name="activityType"value="work"/>
            <param name="typicalDuration"value="08:00:00"/>
            <param name="openingTime"value="07:00:00"/>
            <param name="latestStartTime"value="09:00:00"/>
            <param name="closingTime"value="19:00:00"/>
            ...
        </parameterset>
        ...
    </parameterset>
    ...
</module>

对于不同的subpopulations,可以有不同ScoringParameters 的参数集。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容