態(tài)交通分配(DTA)從配置到收斂的實(shí)戰(zhàn)指南)
早高峰路網(wǎng)仿真相對(duì)于靜態(tài)分配永遠(yuǎn)是兩個(gè)江湖。用過(guò)Paramics的同行應(yīng)該都見(jiàn)過(guò)這種場(chǎng)面模型搭得很細(xì)信號(hào)周期也對(duì)得上可當(dāng)你把四階段法分好的OD矩陣往路網(wǎng)上一放奇怪的事情就來(lái)了——有的路段車子堵得水泄不通有的路段卻門(mén)可羅雀司機(jī)們的走法和現(xiàn)實(shí)完全對(duì)不上。這個(gè)問(wèn)題的根源往往不在路網(wǎng)畫(huà)得細(xì)不細(xì)而在分配邏輯。Paramics這類微觀仿真軟件真正該用的核心引擎是動(dòng)態(tài)交通分配Dynamic Traffic AssignmentDTA。這篇文章我結(jié)合這幾年做Paramics項(xiàng)目的實(shí)操經(jīng)歷把DTA的理論基礎(chǔ)、參數(shù)配置、收斂調(diào)優(yōu)和方案應(yīng)用從頭到尾梳理一遍給正被路徑不合理流量不收斂折磨的同行一個(gè)完整的排查思路。1. 從靜態(tài)分配說(shuō)起為什么傳統(tǒng)分配跑不進(jìn)微觀仿真1.1 四階段法分配環(huán)節(jié)的固有假設(shè)提到動(dòng)態(tài)交通分配得先說(shuō)清楚它替代的是什么。傳統(tǒng)四階段法里最后一步交通分配用的是解析路阻函數(shù)加平衡算法。最典型的是BPR函數(shù)t t0 × [1 α(V/C)^β]配合Frank-Wolfe這類算法把OD矩陣一步步加載到路網(wǎng)上直到滿足用戶均衡條件同一個(gè)OD對(duì)之間、所有被使用的路徑行駛時(shí)間相等且最小。這個(gè)框架在宏觀交通規(guī)劃層面很成熟規(guī)劃師用它算路網(wǎng)飽和度、判斷哪里需要拓寬車道完全夠用。但把同一套邏輯搬到微觀仿真里立刻就出問(wèn)題。微觀仿真的基本單元是車道、信號(hào)相位、排隊(duì)、跟馳行為而不是一條簡(jiǎn)單的路段函數(shù)。BPR函數(shù)里那套α、β系數(shù)標(biāo)定的時(shí)候本來(lái)就沒(méi)考慮過(guò)信號(hào)延誤、排隊(duì)回溢、車型混入這些事。你在Paramics里畫(huà)好一個(gè)有四個(gè)進(jìn)口道的交叉口如果還用靜態(tài)分配的結(jié)果去加載車流等于讓一個(gè)粗顆粒度的解析模型去決定細(xì)顆粒度的交通行為能不出錯(cuò)嗎我見(jiàn)過(guò)很多剛上手的人花了兩三周把路網(wǎng)畫(huà)得一絲不茍結(jié)果分配環(huán)節(jié)用了個(gè)All-or-Nothing就交差最后模型出來(lái)的路徑流量和實(shí)測(cè)能差到兩三倍。這不是Paramics不行是分配邏輯的顆粒度和路網(wǎng)模型的顆粒度嚴(yán)重不匹配。靜態(tài)分配是給宏觀規(guī)劃用的尺子量不了微觀仿真這種精度的活。1.2 最大的病根需求和時(shí)間都是固化的靜態(tài)分配還有兩個(gè)根深蒂固的簡(jiǎn)化。第一需求是單一時(shí)段的。早高峰7點(diǎn)到9點(diǎn)這一百二十分鐘OD矩陣通常只有一個(gè)等于默認(rèn)這倆小時(shí)每個(gè)小區(qū)產(chǎn)生的交通需求都一樣多。可實(shí)際呢7點(diǎn)15分上車的人和7點(diǎn)45分上車的人面對(duì)的擁堵?tīng)顟B(tài)完全不同認(rèn)知里的路徑選項(xiàng)也完全不同。高峰期出行需求是一條快速爬升又回落的時(shí)間曲線不是一個(gè)均值。第二靜態(tài)分配的結(jié)果和出行時(shí)間不滿足一致性。它算出來(lái)的路段流量對(duì)應(yīng)一個(gè)理論阻抗但這個(gè)阻抗反過(guò)來(lái)又影響下一次迭代的路徑選擇。微觀仿真里需要的恰恰是一種動(dòng)態(tài)的產(chǎn)物——車流隨時(shí)間演化新的擁堵形成新的排隊(duì)回溢走這段路的成本升高后出發(fā)的司機(jī)就會(huì)繞道。Paramics的DTA要解決的核心問(wèn)題就是這個(gè)讓需求、路徑選擇、路網(wǎng)狀態(tài)三者在一個(gè)連續(xù)演化的時(shí)間軸上相互作用而不是停留在一次解析計(jì)算里。2. Paramics DTA的運(yùn)作原理需求、路徑與迭代如何串起來(lái)2.1 動(dòng)態(tài)需求加載時(shí)間切片OD與交通小區(qū)DTA在Paramics里的數(shù)據(jù)基礎(chǔ)是動(dòng)態(tài)OD矩陣。跟靜態(tài)模型一個(gè)矩陣打天下不同動(dòng)態(tài)矩陣按時(shí)間切片存儲(chǔ)常見(jiàn)的是15分鐘一片早高峰兩小時(shí)就有8個(gè)切片。每個(gè)切片給出各小區(qū)間的期望出發(fā)量。Paramics在仿真運(yùn)行時(shí)會(huì)按時(shí)間點(diǎn)把車輛放入路網(wǎng)而不是一開(kāi)始把所有車塞進(jìn)去。這個(gè)看似簡(jiǎn)單的差別非常關(guān)鍵。車是陸續(xù)出發(fā)的擁堵的發(fā)生和蔓延就有了真實(shí)的時(shí)間演化過(guò)程。8點(diǎn)整放進(jìn)一輛車它看到的路段狀態(tài)和8點(diǎn)15分放進(jìn)來(lái)的車顯然不同所以它們可以選擇不同的路徑。如果像靜態(tài)分配一樣把所有車同時(shí)倒進(jìn)去排隊(duì)從一開(kāi)始就是頂格的仿真也談不上還原真實(shí)。注意OD矩陣的時(shí)間切片之間不能突變。比如7:45-8:00的OD是10008:00-8:15突然變成3000仿真里8點(diǎn)整會(huì)瞬間涌入大量車形成一股人為的沖擊波DTA會(huì)在這種虛假波動(dòng)上反復(fù)迭代白白浪費(fèi)時(shí)間。做切片平滑是非常必要的預(yù)處理。小區(qū)Zone的設(shè)置直接決定OD能不能被合理加載。Paramics里每個(gè)小區(qū)通過(guò)連接器connector接到路網(wǎng)上連接器的位置如果太隨意比如全接在同一條小支路上那么從這個(gè)小區(qū)的出發(fā)車輛會(huì)被人為鎖死在一條狹窄通道里不管DTA怎么迭代路徑都出不來(lái)。我見(jiàn)過(guò)不止一次OD調(diào)了幾十輪還是不對(duì)最后發(fā)現(xiàn)是連接器接錯(cuò)了地方。2.2 路徑成本感知與隨機(jī)用戶均衡DTA的路徑選擇不是把最短路徑機(jī)械地選出來(lái)。Paramics采用的是感知成本perceived cost模型。每個(gè)駕駛員對(duì)每條路徑的成本估計(jì)除了真實(shí)的行程時(shí)間之外還帶一個(gè)隨機(jī)誤差項(xiàng)。這很符合現(xiàn)實(shí)——你開(kāi)車不會(huì)精確預(yù)知十分鐘后兩條路哪條更快只能憑經(jīng)驗(yàn)加信息去猜。選擇概率的經(jīng)典形式是Logit模型P_i exp(-θ × c_i) / Σ_k exp(-θ × c_k)其中c_i是路徑i的感知成本θ是控制感知隨機(jī)性的參數(shù)。θ越大駕駛員對(duì)成本差異越敏感選擇越趨向于確定性最短路徑θ越小選擇越分散就像一群完全沒(méi)信息的人亂走。成本項(xiàng)也并不局限于時(shí)間Paramics里可以給特定路段疊加收費(fèi)、距離成本等這就讓DTA能模擬收費(fèi)政策下的路徑轉(zhuǎn)移行為。把模型跑起來(lái)之后Paramics在每個(gè)反饋間隔統(tǒng)計(jì)所有路段的旅行時(shí)間更新路徑成本然后讓新進(jìn)入路網(wǎng)的車輛根據(jù)新成本重新選擇路徑。經(jīng)過(guò)多輪迭代網(wǎng)絡(luò)會(huì)趨向動(dòng)態(tài)用戶均衡同一OD對(duì)、同一出發(fā)時(shí)刻各被選路徑的實(shí)際成本差異被壓縮到可接受范圍內(nèi)。到這一步路網(wǎng)狀態(tài)和路徑選擇才真正自洽了。2.3 迭代更新機(jī)制與收斂判定Paramics DTA的一個(gè)顯著特點(diǎn)就是仿真驅(qū)動(dòng)。路徑成本不是從BPR函數(shù)算出來(lái)的是車輛在仿真網(wǎng)絡(luò)里一輛一輛跑出來(lái)的。這意味著交叉口延誤、排隊(duì)回溢、信號(hào)停駛這些微觀現(xiàn)象全部會(huì)進(jìn)入路徑成本的統(tǒng)計(jì)里最后影響司機(jī)的決策。這是仿真型DTASimulation-Based DTA流派最大的優(yōu)勢(shì)也是它的代價(jià)——每次迭代都要完整跑一遍仿真計(jì)算量很大。迭代更新的基本節(jié)奏是先給一個(gè)初始路徑集比如用最短路徑集然后重復(fù)仿真運(yùn)行→統(tǒng)計(jì)行程時(shí)間→更新路徑成本→生成新路徑/調(diào)整路徑流量→再仿真這個(gè)循環(huán)。什么時(shí)候停看收斂指標(biāo)。常用的做法是把相鄰兩次迭代的路徑流量差、或平均行程時(shí)間變化畫(huà)出來(lái)變化率低于某個(gè)閾值比如2%就認(rèn)為收斂了。也可以算Gap指標(biāo)也就是全部被選路徑成本與最短路徑成本之間的加權(quán)差值Gap越小說(shuō)明越接近用戶均衡。也要注意排除個(gè)別振蕩路段——有些瓶頸附近的需求振蕩是路網(wǎng)固有行為疊加DTA迭代造成的分不清的話容易誤判。我習(xí)慣把每個(gè)路段的流量時(shí)間序列單獨(dú)拉出來(lái)看凡是持續(xù)收斂或者周期性不明顯變化的才算真收斂。3. 配置DTA的完整流程從OD矩陣到可用的參數(shù)組合3.1 路網(wǎng)與小區(qū)準(zhǔn)備DTA配置的第一步不是開(kāi)仿真而是把路網(wǎng)底子打扎實(shí)。DTA的路徑生成嚴(yán)重依賴路網(wǎng)拓?fù)?。斷頭路、不合理的連通關(guān)系、忘畫(huà)的轉(zhuǎn)向限制都會(huì)讓模型生成出莫名其妙的路徑。啟動(dòng)DTA前至少要把下面幾件事過(guò)一遍車道數(shù)、車道使用規(guī)則和轉(zhuǎn)向?qū)S玫酪同F(xiàn)場(chǎng)一致。不連通的連接器、沒(méi)有轉(zhuǎn)向連接的路口單獨(dú)檢查一遍。信號(hào)配時(shí)、感應(yīng)控制和公交優(yōu)先邏輯先在一個(gè)標(biāo)準(zhǔn)仿真里驗(yàn)證。用固定路徑流量加載不迭代跑一版目視檢查有沒(méi)有車憑空消失或飛過(guò)不該走的匝道。這些聽(tīng)著基礎(chǔ)但恰恰是DTA出錯(cuò)的隱藏來(lái)源。DTA迭代幾十輪之后任何一條錯(cuò)誤的路網(wǎng)連接都會(huì)被放大成成百上千輛車的錯(cuò)誤繞行。OD矩陣方面除了時(shí)間切片還要檢查一致性。我習(xí)慣的做法是先匯總每個(gè)切片的總需求量和目標(biāo)年預(yù)測(cè)的斷面交通量做個(gè)毛對(duì)毛的比對(duì)。如果總需求和路網(wǎng)容量差太多后面所有的收斂調(diào)優(yōu)都是白費(fèi)——一個(gè)按規(guī)劃年飽和度1.2設(shè)計(jì)的路網(wǎng)DTA是不可能收斂出合理流的。3.2 核心參數(shù)設(shè)置迭代次數(shù)、反饋間隔、感知誤差進(jìn)入Paramics的分配參數(shù)設(shè)置界面后不同版本菜單位置略有差異重點(diǎn)盯住三個(gè)參數(shù)。迭代次數(shù)小型區(qū)域路網(wǎng)幾十個(gè)節(jié)點(diǎn)20次左右基本夠用城市級(jí)大路網(wǎng)可能要四五十次。我一般先設(shè)30次跑一輪觀察收斂曲線的走勢(shì)再?zèng)Q定加不加。反饋間隔也就是車輛重新評(píng)估路徑的頻率。太短——比如30秒——所有車都在頻繁改主意仿真的路徑流量會(huì)抖得厲害太長(zhǎng)——比如10分鐘——?jiǎng)t對(duì)突發(fā)事件和擁堵變化反應(yīng)太遲鈍。2到3分鐘是個(gè)比較穩(wěn)妥的起點(diǎn)。感知誤差參數(shù)對(duì)應(yīng)上文的θ。初跑時(shí)從中間值開(kāi)始然后做敏感性試驗(yàn)摸梯度。θ太大路徑過(guò)于集中θ太小路徑過(guò)于分散都會(huì)讓結(jié)果失真。還有一點(diǎn)容易被忽略路徑集管理。Paramics允許在迭代過(guò)程中持續(xù)生成新路徑但路徑集膨脹之后計(jì)算量和噪聲都會(huì)上升。方案比選階段建議把最終路徑集固定下來(lái)這樣多個(gè)方案之間對(duì)比時(shí)才不至于因?yàn)槁窂郊煌斐墒д妗?.3 運(yùn)行與快速驗(yàn)證參數(shù)設(shè)置完成后第一輪DTA跑完別急著看報(bào)表。我快速驗(yàn)證的習(xí)慣是三看第一看收斂曲線。平均行程時(shí)間是否逐次迭代趨于平穩(wěn)有沒(méi)有周期振蕩。第二看重災(zāi)路段。把流量輸出按路段畫(huà)出來(lái)對(duì)比現(xiàn)場(chǎng)采集的幾個(gè)關(guān)鍵斷面流量。如果個(gè)別路段流量和實(shí)測(cè)差到兩三倍往上先別懷疑DTA回頭檢查OD里這個(gè)方向是不是給了太多需求。第三看路徑合理性。在三維視口里回放幾輛車的完整軌跡重點(diǎn)關(guān)注它是否走了現(xiàn)實(shí)中根本不會(huì)走的路。這一步非常土但非常有效。模型不會(huì)發(fā)表意見(jiàn)但司機(jī)會(huì)投訴路徑不合理這種問(wèn)題靠數(shù)字報(bào)表根本查不出來(lái)。4. 收斂性調(diào)優(yōu)與常見(jiàn)數(shù)據(jù)陷阱仿真跑不穩(wěn)的真實(shí)原因4.1 需求過(guò)飽和是第一殺手接觸DTA之后你會(huì)發(fā)現(xiàn)它收斂不了的時(shí)候比收斂的時(shí)候更能暴露問(wèn)題。最常見(jiàn)的一種情況不管迭代多少次流量就是不收斂某幾條路段的流量在兩次迭代之間大幅跳變。我的排查順序第一站永遠(yuǎn)是查飽和度。做一個(gè)快速實(shí)驗(yàn)用固定路徑加載把所有OD一次性放進(jìn)去統(tǒng)計(jì)各路段飽和度和排隊(duì)溢出情況。如果關(guān)鍵路段的V/C長(zhǎng)期在0.95以上說(shuō)明需求本身已經(jīng)接近甚至超過(guò)路網(wǎng)承載力。在這個(gè)前提下任何DTA迭代都無(wú)法穩(wěn)定因?yàn)槁肪W(wǎng)處于不穩(wěn)定狀態(tài)車流接連溢出路徑成本在每次迭代里都完全不同。出現(xiàn)這種局面要回頭修正OD總量或者在方案層面先做交出入口分流而不是在原地調(diào)DTA參數(shù)。提示DTA的收斂性從根本上受需求飽和度制約。如果OD總量已經(jīng)超過(guò)路網(wǎng)承載能力把θ調(diào)到小數(shù)點(diǎn)后三位也救不回來(lái)。先解決總體供需矛盾再處理分配細(xì)節(jié)。4.2 路徑振蕩與感知誤差參數(shù)的微妙關(guān)系路徑振蕩是另一種常見(jiàn)的不收斂但往往通過(guò)參數(shù)微調(diào)就能解決。奧妙在于θ和反饋間隔的組合關(guān)系。大體邏輯是這樣的θ設(shè)得太大時(shí)駕駛員對(duì)成本差過(guò)度敏感兩條幾乎等長(zhǎng)的路徑之間流量會(huì)在迭代過(guò)程里被反復(fù)掰來(lái)掰去θ太小時(shí)所有路徑被均攤又突出不了主要路徑。反饋間隔過(guò)短加劇了抖動(dòng)反饋間隔過(guò)長(zhǎng)則讓成本更新滯后同樣導(dǎo)致振蕩。處理振蕩時(shí)我習(xí)慣做一組參數(shù)掃描θ取值路徑集中度常見(jiàn)問(wèn)題偏小0.01~0.05路徑分散多條路徑流量接近主路徑不突出流量被過(guò)度均攤中等0.1~0.3主要路徑清晰保留少量備選大多數(shù)城市路網(wǎng)場(chǎng)景適合偏大1集中在1~2條路徑路徑單一迭代時(shí)流量反復(fù)跳躍θ從0.1到1.0反饋間隔從1分鐘到5分鐘每個(gè)組合跑一遍記錄收斂曲線和路徑流量方差。選出方差最小的組合再進(jìn)一步微調(diào)。聽(tīng)起來(lái)費(fèi)時(shí)間但比盯著一個(gè)失敗配置瞎調(diào)要快得多。參數(shù)掃描的步數(shù)不需要太多重點(diǎn)看趨勢(shì)而不是精確最優(yōu)。4.3 排查鏈路從總體到局部從宏觀到微觀遇到DTA實(shí)在跑不順的情況下面這條鏈路是我反復(fù)用、目前來(lái)看最行之有效的排查順序查OD總量、時(shí)間切片是否平滑、各小區(qū)發(fā)生/吸引量是否合理。查路網(wǎng)拓?fù)溥B通性、連接器位置、禁限行和轉(zhuǎn)向規(guī)則。跑固定路徑加載看哪些路段排隊(duì)溢出排除DTA干擾后確認(rèn)瓶頸位置。單獨(dú)調(diào)瓶頸信號(hào)周期、飽和度、車道功能確認(rèn)單點(diǎn)狀態(tài)合理。再開(kāi)DTA做參數(shù)敏感性試驗(yàn)迭代次數(shù)、反饋間隔、θ。對(duì)比實(shí)測(cè)數(shù)據(jù)圈定最失真的路段回到第1步復(fù)核OD。這條鏈路的核心原則是先宏觀后微觀先基礎(chǔ)后參數(shù)不在沒(méi)排除底層錯(cuò)誤之前就懷疑高層參數(shù)。我見(jiàn)過(guò)有人因?yàn)镈TA不收斂把θ從1調(diào)到0.001最后發(fā)現(xiàn)是OD矩陣?yán)锬硞€(gè)小區(qū)的出發(fā)量多打了兩個(gè)零——兩萬(wàn)輛車神仙參數(shù)也救不了。4.4 借助API批量計(jì)算收斂指標(biāo)人工觀察收斂曲線在項(xiàng)目里不夠嚴(yán)謹(jǐn)。批量處理兩次迭代的流量輸出計(jì)算均方根誤差RMSE才是標(biāo)準(zhǔn)的收斂判據(jù)。Paramics的Programmer API可以讀取每次迭代后的路段流量和行程時(shí)間。我常用的腳本思路是完成一輪分配后把所有路段的流量寫(xiě)出來(lái)再讀上一輪的流量求兩輪之間的RMSE百分比。連續(xù)三輪RMSE低于某個(gè)閾值判定收斂。腳本難點(diǎn)不大拿Python包一層就行import pandas as pd df_prev pd.read_csv(iteration_29_link_flow.csv) df_curr pd.read_csv(iteration_30_link_flow.csv) merged df_prev.merge(df_curr, onlink_id, suffixes(_prev, _curr)) rmse ((merged[flow_prev] - merged[flow_curr]) ** 2).mean() ** 0.5 total_flow merged[flow_curr].mean() print(RMSE:, rmse, relative:, rmse / max(total_flow, 1e-6))這類指標(biāo)放進(jìn)項(xiàng)目匯報(bào)表格里比我看曲線平了有說(shuō)服力得多。需要注意流量為零的路段在RMSE計(jì)算里會(huì)拉低整體誤差所以我會(huì)單獨(dú)過(guò)濾掉這些空鏈路避免看起來(lái)收斂了的假象。5. 用動(dòng)態(tài)分配結(jié)果做方案評(píng)估輸出指標(biāo)與校準(zhǔn)實(shí)務(wù)5.1 方案比選中該看哪些指標(biāo)DTA跑通之后它能回答的問(wèn)題遠(yuǎn)不止哪條路堵。方案比選階段我好用下面這幾個(gè)指標(biāo)路網(wǎng)總出行時(shí)間Vehicle-Hours Travelled直接反映方案整體效率變化。平均行程速度與旅行時(shí)間可靠性高峰時(shí)段的行程時(shí)間分布比平均值更有參考價(jià)值DTA能輸出OD間的旅行時(shí)間分布天然適合做可靠性分析。關(guān)鍵路徑流量變化比如某個(gè)收費(fèi)方案、某個(gè)禁左管制措施實(shí)施后哪些路徑上的車被轉(zhuǎn)移走了、轉(zhuǎn)移到哪里。排隊(duì)長(zhǎng)度與溢出風(fēng)險(xiǎn)這是微觀仿真的強(qiáng)項(xiàng)DTA配合信號(hào)方案能評(píng)價(jià)排隊(duì)是不是會(huì)回溢到上游路口。特別要說(shuō)的是DTA的路徑級(jí)結(jié)果在政策評(píng)估里是殺手級(jí)功能。比如評(píng)估某個(gè)區(qū)域?qū)嵤┦召M(fèi)后能不能把穿行交通轉(zhuǎn)移到外圍環(huán)路全路網(wǎng)平均速度可能看不出顯著區(qū)別但DTA給出來(lái)的路徑轉(zhuǎn)移量直接能算出外圍環(huán)路的壓力增量這是靜態(tài)分析很難給出的結(jié)論。5.2 與實(shí)測(cè)數(shù)據(jù)校準(zhǔn)的先后順序DTA結(jié)果的校正順序和很多人以為的不一樣。不是一上來(lái)就調(diào)θ、調(diào)迭代次數(shù)而是先把OD、路網(wǎng)、信號(hào)和通行能力這些底層參數(shù)校準(zhǔn)好最后才用動(dòng)態(tài)分配做校驗(yàn)。順序搞反了往往會(huì)出現(xiàn)模型輸出和實(shí)測(cè)數(shù)字對(duì)得上但路徑邏輯完全不對(duì)的虛假校準(zhǔn)。我的校準(zhǔn)順序如下第一步校準(zhǔn)OD總量和分布。用觀測(cè)斷面流量約束OD確保各切片的OD和實(shí)測(cè)斷面流的趨勢(shì)一致。這一步通常耗時(shí)最長(zhǎng)但值。第二步校準(zhǔn)路網(wǎng)通行能力和信號(hào)控制。飽和流率、信號(hào)周期、綠信比這些直接決定排隊(duì)和延誤的絕對(duì)量級(jí)。第三步才是校準(zhǔn)DTA行為參數(shù)。θ和反饋間隔主要影響路徑流量分布不影響總量。所以先確保總量和位置對(duì)再談路徑分布。第四步如果條件允許用車牌識(shí)別或軌跡數(shù)據(jù)做路徑級(jí)校準(zhǔn)。沒(méi)有就用多個(gè)典型OD對(duì)的實(shí)際行程時(shí)間做抽驗(yàn)。5.3 預(yù)算、工期與精度之間的取舍最后說(shuō)點(diǎn)掏心窩的。DTA理論完整、功能強(qiáng)大但項(xiàng)目落地時(shí)必須考慮計(jì)算成本。一個(gè)中等城市的早高峰路網(wǎng)50次迭代、2分鐘反饋間隔跑起來(lái)可能就是一整夜。方案比選階段如果每個(gè)方案都要跑滿50次迭代工期根本頂不住。我自己的折衷做法是方案比選階段用一次校準(zhǔn)好的固定路徑集只跑20次迭代重點(diǎn)看指標(biāo)相對(duì)變化量到了最終方案再跑到40~50次迭代輸出正式報(bào)表。另外先在小范圍網(wǎng)絡(luò)把θ、反饋間隔這些參數(shù)摸清楚再同比例放到全路網(wǎng)能省很多試錯(cuò)時(shí)間。這個(gè)道理跟很多事情一樣——?jiǎng)e在最關(guān)鍵的參數(shù)上用最小的工作量去碰運(yùn)氣。我實(shí)際做過(guò)的一個(gè)城市核心區(qū)交通組織優(yōu)化項(xiàng)目最初靜態(tài)分配結(jié)果說(shuō)某個(gè)交叉口北進(jìn)口不需要加寬。后來(lái)上DTA因?yàn)榭紤]了排隊(duì)回溢和動(dòng)態(tài)路徑選擇發(fā)現(xiàn)只要信號(hào)相位稍微調(diào)整相當(dāng)一部分社會(huì)車輛會(huì)轉(zhuǎn)移到平行支路北進(jìn)口的壓力其實(shí)是偽高壓。方案調(diào)整以后實(shí)測(cè)效果驗(yàn)證了DTA的判斷。這類經(jīng)驗(yàn)讓我對(duì)動(dòng)態(tài)分配特別信任但也更清楚它的邊界——它只是讓模型更接近真實(shí)而不是真實(shí)本身。仿真完成的那一版結(jié)果永遠(yuǎn)只是一個(gè)經(jīng)驗(yàn)證的假設(shè)和真實(shí)世界之間差的是扎實(shí)的校準(zhǔn)和足夠細(xì)致的現(xiàn)場(chǎng)驗(yàn)證。