關於AlphaGo的想法
上週電腦資訊界最夯的新聞是AlphaGo對戰韓國圍棋九段棋手,對圍棋沒有特別興趣的我也會關心這場盛事,除了因為現在的人工智慧讓我好奇程度已經發展到哪,更由於AlphaGo的作者是我的師大資工的學長黃士傑,讓我想起還在大學和研究所時和他互動的情景,他認真地當林順喜老師的課程助教讓我深感他如此敬業,相較我曾當過阿喜的高等演算法助教,可是就沒有他那麼熱誠,還會額外找時間教導學弟妹課業相關問題!
上週電腦資訊界最夯的新聞是AlphaGo對戰韓國圍棋九段棋手,對圍棋沒有特別興趣的我也會關心這場盛事,除了因為現在的人工智慧讓我好奇程度已經發展到哪,更由於AlphaGo的作者是我的師大資工的學長黃士傑,讓我想起還在大學和研究所時和他互動的情景,他認真地當林順喜老師的課程助教讓我深感他如此敬業,相較我曾當過阿喜的高等演算法助教,可是就沒有他那麼熱誠,還會額外找時間教導學弟妹課業相關問題!
MD5是一種單向字串雜湊演算 (Hashing),它可以將我們所給予的任何長度字串,利用MD5雜湊演算法,獲得一個長度為128 位元 (32 個十六進制數字)的計算結果。
例如:HappyMan的MD5是e51d97746fe2a5d83cf938d581e57389,共32個字元。
我台大數學修過密碼學的朋友,這麼生活化地描述:
在網際網路傳遞檔案的同時,必須確定檔案資料的正確性且未被竄改。其中最常被使用的技術即是MD5雜湊演算法。
MD5雜湊演算法可以將任意長度的資料經由運算之後,得到一組固定長度為128 位元 (32 個十六進制數字)的結果,我們可以使用這個結果當作檢查碼 (Checksum)。
當我們下載完檔案後,可利用MD5檢查程式將下載好的檔案再產生檢查碼,接著比對產生出來的檢查碼和網頁公告的檢查碼是否一致,便可得知經過傳遞之後的檔案是否與原檔案完全相同。
對演算法感興趣的我,一直想知道自己寫的程式的效能如何,所以這一次特別來瞭解演算法執行時間 (Algorithm Time of Execution)。同一流程可以由不同的演算法來達到同一效果,可是在效能方面或多或少就有差別了~
「台北捷運路線查詢系統」是我碩一高等演算法的最後一個(第五個)程式作業,這個作業是我認為五個作業裡最有價值的一個,為什麼呢?因為有跟生活產生關係,不只是為了交差而寫,更是為了我的生活而寫,多麼有成就感哪~
事實上我每個作業除了寫完程式之外,還會將實做過程細節給記錄下來,因為我相信未來一定還會用到這些資料,果真這時候的我直接複製貼上到部落格XD~還是要再次感謝過去的我如此有遠見,寫了整整18頁A4的報告,在此我將濃縮報告精華,期許哪天我能把它寫成APP:)
前不久在改高演期末考卷,發現一題有趣的題目,給定一個有向圖,請用minimum path cover為何?之前都沒有學過類似的概念,於是我上往查了些資料,才知道如何解決這一題!
這是本學期高等演算法最後一次(第四次)作業,去年我修課時,阿喜老師有提到,我覺得相當有趣,不過當時他出了台北捷運路線圖的題目,做完之後很有成就感,因為可以把所學用在日常生活上。今年阿喜老師真的把成語接龍當作作業了!
Binary Space Partioning Tree英文簡稱為BSP Tree,二元空間分割樹,簡稱為二叉樹。它於1969年被Schumacker在文章《Study for Applying Computer-Generated Images to Visual Simulation》首次提出,並被ID公司第一次使用到FPS遊戲Doom中,Doom的推出獲得了空前的成功,不僅奠定了ID公司在FPS遊戲開發的宗師地位,也使BSP技術成為室內渲染的工業標準,從BSP產生到現在已經有30多年了,其間雖然產生了大量的室內渲染的算法,但卻無人能撼動它的地位,對於以摩爾定律發展的計算機業來說這不能不是一個奇蹟。
大二演算法和碩一高等演算法都需要計算程式執行時間 (Compute Time of Execution),藉此來分析演算法的效能,雖然現在中央處理器快到讓我們人感覺不太出來,不過在處理上億次的迴圈依然有需要,讓我們知道,一個小小的運算累積起來影響多大,正所謂:差之毫釐,失之千里。
HappyMan・迴響