這門課是偏理論的課,原本以為會跟實作相關,像是講解 Java RMI 之類的課。
老師說基本上都是定義與證明。 也好,最近都在寫 code 很少碰理論的東西了。
使用的教科書: MIT 教授寫的,相當學院派
Distributed algorithms, by Nancy Lynch, Morgan Kaufmann, 1996
首先說明與平行演算法的不同,基本上平行演算法的環境比較確定,向分散式演算法就不能假設 processes 的差異。
再來畫了一個樹狀圖說明演算法證明的分類。
老師舉了清大夜市的紅綠燈管理系統
safety:不會出車禍
progress: 保值車輛流通
safety 與 progress 在以後的證明風格會差很多。
因為是第一堂課,所以也就僅止於介紹,老師舉了一些很有趣的例子
1. Muddy Children forehead (google 面試的考題)
2. 莊子的子非魚
3. Coordinated Attack Program
4. 村莊裡的大屠殺
1和4是哲學的思辨,重點在 Know 這個字
3 是 Jim Gray (Turing Award的得主,釣魚的時候失蹤)
下堂課會開始講 OS 的 Mutual Exclusion Algorithm
應該會理論到不行
舒服!
MIT 的分散式演算法
回覆刪除http://www2.myoops.org/main.php?act=course&id=2165