軟件測試悖論之Braess 悖論[2] 軟件測試
現在汽車 3 準備離開了,他的選擇是:
A-B-D cost = [4(3) + 1] + [1 + 16] = 30
A-C-D cost = [1 + 16] + [4(3) + 1] = 30
A-B-C-D cost = [4(3) + 1] + 1 + [4(3) + 1] = 27
A-C-B-D cost = [1 + 16] + 1 + [1 + 16] = 35
再次,這個快捷路徑 A-B-C-D 是最好的選擇。汽車 4 準備離開城鎮 A ,觀察了錢三個司機的決定,算出了他自己的成本:
A-B-D cost = [4(4) + 1] + [1 + 16] = 34
A-C-D cost = [1 + 16] + [4(4) + 1] = 34
A-B-C-D cost = [4(4) + 1] + 1 + [4(4) + 1] = 35
A-C-B-D cost = [1 + 16] + 1 + [1 + 16] = 35
快捷路徑上目前的交通使得 A-B-C-D 比路徑 A-B-D 和 A-C-D 的成本要高。假設汽車 4 選擇了路徑 A-B-C (如果汽車 4 選擇了 A-C-D ,細節會有一點不同,但是總的結果是一樣的)。
汽車 5 現在準備離開了,他分析了他的選擇:
A-B-D cost = [4(5) + 1] + [2 + 16] = 39
A-C-D cost = [1 + 16] + [4(4) + 1] = 34
A-B-C-D cost = [4(5) + 1] + 1 + [4(4) + 1] = 39
A-C-B-D cost = [1 + 16] + 1 + [2 + 16] = 36
因此汽車 5 決定選擇路徑 A-C-D 。最后一輛車,汽車 6 ,現在準備離開了,他觀察了前面 5 個司機的決定,做出了他自己的分析:
A-B-D cost = [4(5) + 1] + [2 + 16] = 39
A-C-D cost = [2 + 16] + [4(5) + 1] = 39
A-B-C-D cost = [4(5) + 1] + 1 + [4(5) + 1] = 43
A-C-B-D cost = [2 + 16] + 1 + [2 + 16] = 37
汽車 6 選擇了路徑 A-C-B-D ,因為這是成本最低的,F在 6 輛車都在路上了,你可以算出每輛車的成本。
Car 1 route A-B-C-D, cost = [4(4) + 1] + 1 + [4(4) + 1] = 35
Car 2 route A-B-C-D, cost = [4(4) + 1] + 1 + [4(4) + 1] = 35
Car 3 route A-B-C-D, cost = [4(4) + 1] + 1 + [4(4) + 1] = 35
Car 4 route A-B-D, cost = [4(4) + 1] + [1 + 16] = 34
Car 5 route A-C-D, cost = [2 + 16] + [4(4) + 1] = 35
Car 6 route A-C-B-D, cost = [2 + 16] + 1 + [1 + 16] = 36
回憶一下,如果沒有這條快速路,每輛車的成本是 32 ,F在增加了額外公路容量,我們卻增加每個司機的成本!
這個例子提供了一個對 Braess 悖論的實際接觸。因為這和網絡系統上所傳輸的數據包有明顯的關系, Braess 悖論受到了研究人員的深入研究。你能非正式的總結這個悖論:有時候增加節點之間的路徑數反而會增加網絡擁塞。從軟件測試角度來說, Braess 悖論會在進行網絡性能測試的時候出現。老實說,你碰到 Braess 悖論的機會很少。但是這個現象確實存在。啟示是,你不應該假設增加網絡容量就會提高性能。如果你增加了容量但是沒有看到你所期望的性能提高, Braess 悖論就是應該去調查的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/