第五章 微處理機系統之電子電路實作
5.5 運算時間之估算
本研究的一中心假設為「量測」比「運算」來的迅速。當我們在求解最短路徑問 題時,隨著節點與路段的增加,其計算時間會呈現一非線性的成長趨勢,但是如果利 用直接以量測方式取得資料,量測時間與路段總數將會呈現一線性關係,這樣的特性 使得在求解大型路網問題上,「量測」的優勢會比「運算」來的明顯,因為量測速度 會比僅以運算要快上許多。
現在我們利用圖4.4 的小型路網驗證此一假設之真實性,我們將會把最短路徑的 Floyd - Warshall 演算法、以及計算全有全無指派之演算法寫入微處理器內,此處,微 處理器的運算速度,將會與實際利用微處理器控制各元件,並取得電流資料的時間做 比較(即 PCA-Sub 的步驟 2 與步驟 3)。Keil C 軟體內有一偵錯(debug)功能,該功能可 以顯示執行程式所需要耗費的時間,該功能界面如圖5.9。結果得知,Floyd - Warshall 演算法的運算時間約為 0.0955 秒,而利用實際控制並量測電流資料,且演算法遞迴 10 次的時間,大約為 0.0575 秒。
比較後發現,在此小型的六路段路網問題中,利用實際控制並量測的方式,比起 最短路徑演算法的運算時間要來的快,又因為最短路徑問題的運算時間,會隨著路段 數增加而呈非線性的大幅增加,故我們可以推知,在大型路網問題的求解上,實際的 電路控制與量測必定比最短路徑運算要快速許多。
圖5.9 Keil C 軟體偵錯介面圖 資料來源:本研究整理
第六章 結論與建議
本研究係以一實際電路求解交通指派之問題,而交通指派問題在運輸規劃的領域 中是充滿挑戰性的一門學問,其最重要的特性就是使用者均衡的概念。在指派問題 中,最常用的是 Frank-Wolfe 演算法,該法大部分時間都在解決最短路徑問題,故路 網增大後效率較為不彰。
先前有文獻指出,交通路網的特性與電子電路有相同之處,Cho et al.使用非線性 的二極體元件模擬非線性之道路成本函數,但其限制較多,如要應用在實作上比較困 難,而Huang et al. (2007)使用了較為單純的純線性元件-電阻,來做理論之推導,成 效較好,也讓電路變得較為實際可行。本研究即以Huang & Cheng 之文獻為出發點,
探討實作之可行性並實際製作出電路。理論上以「量測」電流代替「計算」車流的方 式,應該是較為迅速,因為計算較耗費時間,而量測的資料卻是幾乎可以立即得到。
根據Huang et al. (2007)的研究,我們推導出了一些實作時會使用的演算法。實作 時需要考慮的因子較多,將會遇到量化誤差、元件誤差、以及元件物理限制等問題,
這些誤差本身是沒有辦法克服的,但是其對於本電路實做的影響卻是相當有限,當我 們的路網從兩路段擴展到六路段、八路段,解答與理論值之間的誤差仍是在容許的範 圍內。最後我們改變起訖點間的流量,研究流量改變對於整個電路的影響,發覺其最 後所求出之解與理論值之間差距仍舊不大,這說明了本實作的電路在應用上的確具有 可行性。
目前我們已初步證明,利用電路來實做交通指派的問題是可行的,但受限於本身 硬體電路的限制,目前整個網路僅能發展到處理8 路段的交通指派問題。由於本實作 電路在進行運算時,將會使用到大量的浮點數運算,浮點數在宣告變數的時候,會耗 費到大量的記憶體,而我們所使用的一般型微處理器,受限於其本身之記憶體容量,
沒有辦法儲存太多的變數,故沒有辦法繼續將路網擴展。未來如可以改善這一狀況(如 更換記憶體更大的微處理器),應可以此為基礎,繼續做出更大型的路網。
除此之外,我們所使用的元件,如數位可變電阻、類比/數位轉換器等,都是 8 位元共256 階的電子元件,前面提及這會造成求解上的誤差,未來若採用較數較多的 元件,如10 位元 1024 階之數位電阻,對於整個求解的品質相信會有更好的改善。
參考文獻
Beckmann, M., McGuire, C. B. and Winston, C. B. (1956) Studies in the Economics of Transportation, Yale University Press, New Haven, CT.
Bell, M.G.H. and Iida, Y. (1997) Transportation Network Analysis. John Wiley & Sons, New York, the U.S.A.
Cho, H., Hwang, M., Huang, H. and Chen, W. (2006) A nonlinear cost function formulation for electrical circuit simulation of traffic assignment, WSEAS Transactions on Electronics.
Huang, K., Cheng, C. and Chuang, T. (2007) Determining the User Equilibrium Flow of the Traffic Assignment Problem by Circuit Simulation, Proceedings of the 2nd International Conference on Transportation Logistics, Shenzhen, China.
Patriksson, M. (1994) The traffic assignment problem models and methods (Utrecht, the Netherlands:VSP).
Patriksson, M. (2004) Algorithms for computing traffic equilibria, Networks and Spatial Economics, 4, pp. 23–38.
Sasaki, T. and Inouye, H. (1974) Traffic assignment by analogy to electric circuit, Proceeding of the 6th International Symposium on Transportation and Traffic Theory, pp. 495-515
Sheffi, Y. (1985) Urban transportation networks (Englewood Cliffs, New Jersey, the U.S.A.: Prentice Hall).
Wang, D. H. and Zhang, H. X. (2005) New traffic assignment method on circuit theory for urban planning, Journal of Urban Planning and Development, 131, pp.30-38.
Wardrop, J. G. (1952) Some theoretical aspects of road traffic research, Proceedings of the Institute of the Civil Engineers, Part II, pp. 325-378.
附錄一 微處理器(P89V51RD2)腳位圖及說明
圖 A.1 微處理器 P89V51RD2 頂視圖
表 A.1 P89V51RD2 接腳說明
腳名 腳位 接腳說明
P1.0 / T2 1 IO 埠,T2 為 Timer 2 外部計數輸入(52 以上) P1.1 / T2EX 2 IO 埠,T2EX 為 Timer 2 外部觸發輸入(52 以上) P1.2-1.7 3-8 IO 埠
RESET 9 系統重置輸入,RESET=1 會令系統重置 P3.0 / RXD 10 IO 埠,RXD 為串列埠接收
P3.1 / TXD 11 IO 埠,TXD 為串列埠發射 P3.2 /INT0 12 IO 埠,INT0為外部中斷0 P3.3 /INT1 13 IO 埠,INT1為外部中斷1
P3.4 / T0 14 IO 埠,T0 為 Timer 0 外部計數輸入 P3.5 / T1 15 IO 埠,T1 為 Timer 1 外部計數輸入 P3.6 /WR 16 IO 埠,WR為外部資料記憶體寫入控制
P3.7 / RD 17 IO 埠, RD 為外部資料記憶體讀取控制 XTAL2 18 石英晶體振盪輸出
XTAL1 19 石英晶體振盪輸入 VSS 20 電源接地
P2.0-2.7/A8-15 21-28 IO 埠,A8-15 為外部記憶體位址 PSEN 29 外部擴充ROM 控制信號
ALE 30 外部位址拴鎖致能,ALE=0,P0 腳為 A0-7 輸出 EA 31 EA=0 不使用內部 ROM,EA=1 使用內部 ROM P0.0-0.7/AD0-7 39-32 IO 埠,AD0-7 為外部記憶體位址/資料
VDD 40 電源電壓
附錄二 數位電阻(AD8400)腳位圖及說明
圖 B.1 數位電阻 AD8400 頂視圖
表 B.1 AD8400 接腳說明
腳名 腳位 接腳說明
B1 1 電阻端點B1
GND 2 接地
CS 3 晶片選擇輸入,低電位時IC 啟動
SDI 4 串列資料輸入
CLK 5 串列時脈輸入,正緣觸發
VDD 6 電源電壓 W1 7 Wiper 電阻
A1 8 電阻端點A1
附錄三 數位/類比轉換器(ADC0804)腳位圖及說明
圖 C.1 數位/類比轉換器 ADC0804 頂視圖
表 C.1 ADC0804 接腳說明
腳名 腳位 接腳說明
CS 1 晶片選擇輸入,低電位時IC 啟動
RD 2 低電位時,輸出已轉換好之數位資料
WR 3 由0 至 1 時,進行 A/D 轉換 CLK IN 4 時脈輸入
INT 5 低電位時,表轉換完成 VIN(+) 6 類比電壓輸入
VIN(-) 7 類比電壓輸入 A GND 8 接地
Vref/2 9 參考電壓 D GND 10 接地 DB7~DB0 11~18 數位輸出
CLK R 19 CLK IN 反相輸入 VCC 20 電源電壓
附錄四 移位暫存器(74164)腳位圖及真值表
圖 D.1 移位暫存器 74164 頂視圖
表 D.1 移位暫存器 74164-真值表