2016・冬・續
學校課業
畢業門檻共計二十四學分,每堂課原則上都是三學分,意即要修八堂課,其中一部分可以選修外系碩班課,而我卻傻傻地全選資工碩班的課。大部分的人都是每學期修三到四門課,最後一學期專心做論文,前提指導教授派發的助教工作夠輕鬆,而不是每週都來亂的情況。
而這學期一開始有打算修英文課,開給碩班的英文課不外乎有很多系來修,對於我這種渣渣而言還稍微困難了些,但沒想到第一堂課的互動,在互動過程中回答問題時,讓我的人生增添了 黑歷史 ,隨後的分組成了邊緣人,於是我,退了。
計算機圖學
這裡只描述過程中的心情,實作細節有機會再發文
之前在大學時,課程中 GameMaker 這套軟體上弄遊戲就快崩潰,靠著小夥伴編寫劇本,自己兜弄 UI 設計與美工,討論如何做出適當的效果,反覆地測試運行流程,那時用了一整個學期,請參考 Github,那門課可說是我唯三拿到低於九十分的系上課程 (其中兩個是專題,也許是我嗆老師不懂設計、太過古板)。
第二個作業使用 Unity3D 開發,拉個 GUI 弄得昏天暗地。在物理引擎設定上,質量大小、推力反應、空氣阻力、碰撞動量 … 等,這些估計數據的感覺全還給老師,瞬間覺得自己是個蠢貨,怎麼調都不對。搞了幾天都弄不定,還好有小夥伴古古教我怎麼用,不然還真的會崩潰一陣子。
期末專案跟小夥伴古古一組,著手渲染技術之一的 Radiosity Github,用各式優化技巧和 WebGL、OpenGL 呈現作品,有機會我們再來談談大量的優化技術吧,將老師給的程序利用編譯器優化到極致!隨後再平行它!
演算法設計與分析
雖然沒修這門課,看著學弟去修這門課的作業,又知道助教是之前修平行的古耕竹同學,追求效能極限的對手!有對手就會成長,永不滿足!
其中一個作業是計算 0/1 背包的最佳解,課程中使用 branch-and-bound 算法,可想而知這種搜索法還是會還是會退化的。不管哪種寫法都是 NP-Complete,因此只能做常數優化,如何加速背包問題請參考《淺談背包問題 (0/1 Knapsack Problem) 優化那些事》那篇。花了好幾天加速他們的作業,用優化後的 DP 計算就能完爆他們早期的剪枝版本,在數據範圍小的時候,剪枝版本仍然比較好。
為了加速應用,使用了 DP 達到理想最佳解,為了加速這個 DP 計算,額外使用了 DP 優化計算,又為了優化 … 不斷地遞迴下去,最後達到貪心收斂?
還有另一個 TSP 銷售員旅遊問題的實作優化,有空我再來跟大家說說吧。
優化心情一覽
摸遍上百人的 Code,還原所有學過的知識,偷學技術並變成自己的招式,Gate of Codeylon!
連續幾週都在高喊加速!你怎麼改,我就怎麼追。當成功加速時,就擺上切嗣大叔
隔日發現第一名被奪走時,高喊奪回誓言「妹子被暴搜搶走!不行,我一定要攻下她。」
反反覆覆地,每天心情有如三溫暖般地洗禮,時時刻刻都無法鬆懈,我們越來越逼近真理,內心相當雀躍。古助教看著我與學弟們的競爭,也加入討論,感覺相當地不錯。
M <<「我在追求真理」
K >>「好好栽培學弟,學弟就是你的真理」
M <<「?」
K >>「真理還分性別嗎?」
M <<「…」
學弟們最後加速剪枝到優化後的 DP 無法追到。深感可惜,在沒有滿足鴿籠原理的情況下,我找不太到卡暴搜的測資。相反地,若很容易做到鴿籠原理,莫名其妙可以快個十幾倍。他們加速剪枝,我利用減少計算量加速,彼此都獲得更進一步的討論,有人討論果然可以走得更遠更快。
最後這些題目被我們放在批改娘系統上,測資有卡實作邊界處理不好程序。雖然我不是最強,但在這第一學府就要成為最強,任何亂來的解法見一個斬一個,動用腦中所有的智慧生出最強的測資!啊,好像把別門課的作業弄壞掉了。當然作業只求計算正確,速度不要太離譜,這一點我們還是無法違背課程需求,要求每位同學與我們一起加速和探討似乎都錯了什麼。
實驗室雜談
教授語錄
「實作細節一點也不重要,根本沒人想聽」
「別太相信論文」
「理論都正確,但你做的有什麼用?」
紀錄心中的困惑
這一年,我越來越不能理解這奇怪的要求。當不想講細節的時候,又被問要怎麼做,細節大多都沒有乾淨的理論描述,完全依賴在計算機架構上,不同的架構又是另一套參數,講起來沒完沒了。
當被質疑報告的論文正確性時,偏偏那一篇還是 tier-1 conference (曾經最高的國際會議) 來的論文,到底是信還是不信呢?那我們被要求投那個國際會議時,又要秉持什麼樣的態度才合適。從研究論文開始,我也明白很多論文的部分成果有瑕疵。無妨地,我們可以理論推測那是很簡單的,但礙於篇幅有限。
當想做出一篇很有用的論文時,我覺得這困難到想休學不讀,根本沒有機會遇到有用的且可以寫出論文的機緣。所以當時跟老師談論到想休學,老師卻說論文隨便寫就發一篇,這樣隨便發一篇真的有用嗎?這麼說起來,我的人生好沒用呢。
白色聖誕前奏
公司的大哥大姐打算在聖誕節辦活動,要來個交換禮物又是卡拉歌唱比賽,櫃檯姊姊和其他 AE 姊姊談論這事情時,恰好就在旁邊聽著。
A >>「打算辦交換禮物活動,妳覺得如何」
B >>「我覺得交換禮物不錯呀」
Morris 思考中
A >>「妳看看 Morris 好像不太行耶,主管 X 是打算換成卡拉歌唱比賽」
A >>「他們是不是不太願意花時間去挑禮物,他們工程師都這樣」
Morris 思考中
B >>「Morris 好像撐不住了」
A >>「比賽這種就不是每個人都能參與,有輸有贏的,好好的聖誕節為什麼要這樣?」
咱只是在思考這些活動的複雜度而已,行不行也不是我能決定的,喜歡估算的心錯了嗎?對於我來說負擔太大,不僅不會唱歌,連買禮物的品味都成問題。最後耗費一個週末只思考禮物要買些什麼。
這學期在學校大大小小的事物都跟古同學有關,學弟常常要跟我描述是古學長 (演算法設計助教) 還是古學姊 (物聯網助教和計算機圖學一起修課),同時他們兩位又有在我當平行助教的時候一起修平行課,稱呼方法搞得我好混亂,但跟這群有趣的傢伙同一屆不容易也很幸運。
跟學弟們討論到底要買什麼禮物作為交換,並抱怨著自己聖誕節魯到不行。此時,學弟突然說「你不是在追古學姊嗎?」當下的我愣了一下,學弟馬上補一刀「難道是追古學長嗎?」等等,這聽起來越來越不對勁,看來這兒已經沒我說話的餘地,學弟們的這套想法讓我不知所措。
週末買公司要求的禮物時,學弟學長們再三交代「不買給『她』嗎」?心想「她」到底是誰,在旁人的催促下,內心相當煎熬,我不懂的事情太多,對於沒有錯過的問題,完全不知如何下手解決,行動與常識近乎零,類似當機地直接跳過無法執行的部分。於是在聖誕的前一週,跑了數間店買了數個禮物準備。
不管送給誰,送不出去就在聖誕節自己拆,自己買的禮物自己拆,做好邊緣人的心理建設。同時,週末也順便補實驗室另一個女生生日蛋糕,請學弟騎車帶我去買蛋糕,畢竟去年她們替我慶生,這回有學弟們一起在實驗室,買蛋糕也不尷尬,這週末真是忙碌呀。
從此之後,學弟問任何話題,一提到「學姊」總要特別小心地回答,他們總是在刺探我的心意,無意也變有意。在一旁的實驗室「學姊」看著我慌忙地回答與再三確認不時在一旁偷笑。「也許,他們把你的潛意思說出來了。」在這陣子,我想我回答什麼都不是。
隨著聖誕逼近,學長學弟一直在催促我何時要送「很多人週一就開始送了,你怎麼還不送」我只能再三地反問「到底是想要我送給誰啦」想著適合自己品味的禮物,若要與眾不同,肯定是朝著送記憶卡內附程序,並留言到「這是我加速三倍快的程序,拜託了,請回禮追我」的那種。
最後在聖誕前幾天,也就去公司上班的前一天把禮物送出去,這下你們就不會再撈叨我了吧?至於在聖誕節前一日,因為被要求上台唱中文歌而內心受創好幾天,有必要把聖誕節搞得如此繁複嗎?
跨年尾牙
實驗室尾牙總會問跨年打算怎麼過
M「反正沒人約,應該在實驗室過吧!」
A「學長,不用擔心,我們都在實驗室」
B「實驗室由我們守護,你放膽出去約吧,記得遊戲角色開著幫我放輪」
聽起來有點感動又有點頹廢是怎麼回事 …
M「約誰?」
B「當然是學姊」
… … …
M「你們認真的嗎?」
B「當然」
一群在旁邊偷笑
實驗室學姊對 M 說「你是認真的嗎?」
… …. … …. .. …
M「嗯,失敗了,跟你們過吧」
2016・冬・終