MNL(SUE) --> CNL-UE with FW

case study

  1. VI Projection and MP FW comparison
  2. find they all collapse, find where is the problem
  3. see the performance of MNL based sue
  4. 公式是什么
  5. 正確嗎
  6. 算法
  7. 編程

Bug:

entropy_left 和 entropy_right相互顛倒防止

LeftTrialOutput = LeftTrialOutput + entropy_left;
RightTrialOutput = RightTrialOutput + entropy_right;
note 這個bug是通過一步步的debug試出來的。
  1. 用e-5來顯示比%.10lf更高的精度
%.5e //顯示5位數(shù)字
  1. 檢查是否滿足均衡條件
計算機跑出的結(jié)果

完全滿足均衡條件


看看是否滿足均衡條件
  1. Dispersion parameter
    Theta=2


    Paste_Image.png

    Theta=3


    Paste_Image.png

    Theta=0.5
    Paste_Image.png

    Theta=0.1
    Paste_Image.png

    不能達到收斂(Theta=0.1)

Paste_Image.png
  1. 計算一下平均最小期望


    Paste_Image.png

    Theta=0.1的時候也不一致。


    Paste_Image.png

    嚇?biāo)赖耍琫xcel中l(wèi)n試ln,然后就一致了
    Paste_Image.png

總結(jié)

FW在解MNL based SEU時就會出現(xiàn)偏差

  1. congestion situation
在Deamnd加倍,path cost比以前多10倍的情況下,表現(xiàn)良好,達到均衡,最小期望值也一樣

同樣,再此Demand下測試離散參數(shù),同樣非常敏感,步長一開始好好的,然后,突然變0,前后解的誤差急劇減少,同時不收斂。這個可以像一開始一樣一步步看。

11/29

ptt不能過高

這時link free flow time, OD demand, BPR對ptt影響都很大。

line search 里面也有bug

for (p_i = 0; p_i < NoPs; p_i++){
            entropy_left = entropy_left + p[p_i].Pf_Left * (log(p[p_i].Pf_Left) - 1);
            entropy_right = entropy_right + p[p_i].Pf_Right * (log(p[p_i].Pf_Right) - 1);
        }

把這兩個問題測完,對Theta不敏感了,Apf符合Logit公式了。收斂的很好

改變Theta=2還是有bug

外部參數(shù)Theta要寫成2.0

到目前為止調(diào)整Theta沒問題了。Demand也可以。

Theta=0.1

符合logit fun
符合流量守恒
前后解相差很小。
Theta=0.01,direction=0;已經(jīng)達到最優(yōu)了。

Paste_Image.png

所得結(jié)論確實與Theta的變化一致。
CNL里面的離散參數(shù)
下層0-1
上層》0
下層=1時,為MNL
CNL有不同表達式,怎么互推
CNL更接近Probit,緩解了獨立性

CNL-UE with FW Debug

  1. CNL上沒有問題
  2. CNL excel 印證過,那估計在line search上有偏差
    從MNL(SUE)可以看出,output的精度由line search的精度決定。不會比line search的精度高。說錯了,提高line search的精度沒有提高最終結(jié)果的精度。
    S4LinkTravelTime(l);
    S2CNL_Loading(l, nm, n, od);
    S3AON(l, nm);
    S5Direct(l, nm);
    這幾部出錯的可能性不大
    打印輸出line search
    line search內(nèi)部沒有問題,都在excel中核對過了
    簡化網(wǎng)絡(luò),就考慮三條線的情況。
    也是AD符合CNL,line search有問題,不是路徑選擇的問題
    將step size adjust 放在循環(huán)外面,對結(jié)果沒有影響。

line search 在縮小到一定程度的時候就不動了。但是步長精度不需要那么高。問題不在這。MNL在line search的時候也有同樣的問題。
不是在已有的基礎(chǔ)上開發(fā),就很難Debug。

如果link travel time是常數(shù),一步就完成。所有流量分到最短路,line search 的時候確實是偏向均衡解的。說明,至少在一定情況下line search是沒問題的。改為線性函數(shù),也不已完成,但是解不正確。看看MNL。對于FFT乘以系數(shù)還是常數(shù),要與flow掛鉤;乘以一個常數(shù),MNL也控制的不好;但是在輸入data的時候,也乘以一個系數(shù),一步就能收斂。下面,把flow這個變量引入試試;加入Flow以后也不收斂,應(yīng)該是收斂的。回到BPR就可以,都是增函數(shù),為啥不一樣?BPR改成1次,也不收斂。這個怎么查?牽一發(fā)而動全身,肯定其他地方也用到了。看一遍流程就知道啦,link funtion是和objective fun連在一起的,link fun 改動,object fun也要改。如果是常數(shù),obj不變化,正好碰巧了。我在VI里調(diào)link fun就沒關(guān)系,因為就一步用地link fun。把link flow調(diào)低,link flow和Obj調(diào)整好,對了,沒錯。不調(diào)低的話

  • 那我再試試CNL下面的link travel fun的改變會怎樣。
    直接到無窮了;

可能line search還有隱藏的問題
input對不對?

  1. Link travel time 是BPR+constant+constant

第二天,從CNL-UE測試起。

要修改的地方:頭文件,文件讀寫時的文件名,強行給定的最短路徑(OD pair, mode)
昨天的code 測試亂了,從倉庫里取原來的。又要重新Debug。說明,沒做一點改動都要記錄,不然馬上就忘了。而且代碼和數(shù)據(jù)要放一起,不能分開。
原來的代碼數(shù)據(jù)結(jié)構(gòu)變了,都要改。主要時nest數(shù)據(jù)結(jié)構(gòu)體。
** 在data input要輸入nest結(jié)構(gòu)體**
將cost: nest cost, root cost, MargProb, CondProb都進行了調(diào)整
在probability 的計算代碼也進行了修改
另外,在AON中也發(fā)現(xiàn)了問題
加載的時輔助流量,不是流量(ADem,Dem)

  • 將FW與MSA進行對比:
    首先,結(jié)果不一致。
    第二,MSA的比FW更加符合CNL概率。
    第三,MSA的多種固定步長對結(jié)果沒有影響。(0.1,0.2... 1, 1.5)
    總結(jié),可以認(rèn)為是line search的問題。
  • 用VI的Projection和MSA對比,結(jié)果也不一致
  • 想原因,可能是link travel time的表達式不一樣,改成相同的表達式后,結(jié)果果然一致。
  • MSA改link cost中的一步,F(xiàn)W要改兩步
    然后想到,F(xiàn)W不但要改link cost的表達式,還要改line search里面積分的表達式。測試以后,發(fā)現(xiàn)FW,MSA,Projection對同一個算例求解得到相同的結(jié)果。

3 precision of FW and MSA is still not acceptable

3.1 Is the problem of AON?

membership 0.5-0.5 correct
membership 0.2-0.8 correct
Mu 0.8 correct (一開始是不一樣的,后來檢查一下CNL.xlxs,是原來的計算公式有錯,改過來就完全一樣了)
總結(jié),不是AON的問題,還是要看看line search

3.2 check line search

check MSA: 精度一直在提高,只是比較慢而已。最高1e-6.
check line search: 精度一直在提高,明顯比MSA快。但是仍有上限,20 萬次迭代,最高1
e-7. 50萬次迭代,3*e-8. 同時查看AON—CNL,我認(rèn)為沒有問題。
總結(jié):line search 上也沒有問題,可能是FW自身的問題。

  • 在MNL(SUE)中出現(xiàn)過的左右顛倒的問題,沒有出現(xiàn)。
  • ptt也沒有過高
  • line search里面的積分表達式正確
  • 全局變量Theta要寫成1.0的形式
  • line search 時候的積分表達式不對

3.3 test on larger net

  • 規(guī)范輸入格式
  • input data format
  • input file name
  • head file
  • shortest path: different origin should be give the shortest path

還是有問題,跑不起來。那就只能一步步Debug。

  • 最短路給錯了,Wrong origin
    correct: Pred[2] = 15; Pred[3] = 15; Pred[15] = 14; Pred[14] = 5; Pred[5] = 1;
    Wrong:Pred[2] = 15; Pred[3] = 15; Pred[15] = 14; Pred[14] = 5; Pred[5] = 4;
    CNL pass
    all pass
    在ND上也能跑起來
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,428評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,024評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,285評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,548評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,328評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,878評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,971評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,098評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,616評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,554評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,725評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,243評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,971評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,361評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,613評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,339評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,695評論 2 370

推薦閱讀更多精彩內(nèi)容

  • fix step size 過高引起的Precision異常 Projection method 里面分為兩步,一...
    Silly_N_Fool閱讀 430評論 0 0
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,761評論 0 33
  • 記憶中,我最早接觸的書,是圖書連環(huán)畫,就是上面是圖畫,下面配有文字的小人書。在七八十年代,兒童圖書并不像現(xiàn)在那樣泛...
    一泓夜雨閱讀 464評論 8 4