IBM-Q 量子電腦黑客松比賽心得

最近一個禮拜,我參加了台大 IBM-Q 舉辦的量子電腦黑客松,並列第一名,並且額外獲得鴻海特別獎。我們這組從零開始,只花了三天,也學到很多量子電腦的知識,還有認識新朋友,覺得非常的開心!

photo 1509869175650 a1d97972541a

以前的黑客松,比較偏工程,想做什麼就做什麼,天馬行空,但是這次的黑客松,跟以往非常不一樣,有很多數理的成分,更重視理論,我們組的學歷陣容非常堅強,兩個博後,一個博士,兩個碩士,除了我以外,都是物理專長。討論的都是 Ising modelQAOAquantum gate 等物理的概念。

我一開始真的是不懂,從 0 開始,好在 IBM 有出 Python 的 Package Qiskit,我看得懂程式和演算法,原來 Ising model 可用於解 maximum cut problem,原來 QAOA 可用於 Binary 的 quadratic optimizer,那我就把它們當成黑盒子,大概可以理解並應用了。

我很慶幸在博士班的時候,有把數學更徹底的學好一點,所以才能在這麼優秀的團隊中,貢獻所學的知識。在比賽中,我的專長,就是提供創意且實際的主題,跟寫浮誇程式介面XD,也是黑客松比賽非常重要的兩個要素。這次也很成功的繳出一張滿意的成績單!

經過這次的戰役,我人生中參加 4 次現場黑客松,4 次都有得獎,3 次是第一名,一大部分原因,是我歷史上參與比賽的伙伴,陣容都是非常堅強,有堅強的學術背景,工程技術,而且團隊向心力強,不會輕易放棄,肝也非常新鮮健康。我也有所貢獻,但是每一個人都缺一不可,都是比賽的致勝關鍵。讓我回想到那些一起熬夜寫程式的日子,真是太辛苦又太有成就感了!

雖然比賽很好玩,但我很少參加,因為平常已經夠忙了,做交易就已經很像是黑客松了!但是這次是我老婆邀請我去,剛開始勉為其難的答應,因為我真的不懂量子電腦,怕現醜。我老婆常會逼我做一些不想做的事情,但最後往往會有正向的回報,所以我常常會聽從老婆的決定,尤其是比較重大的決定,有她的主意,我的人生更精彩!所以既然要做,就要全力以赴,參加完Pycon回到台北,就馬上出發參加比賽。

不過這大概是我參加過,最不像黑客松的比賽了,早上七點起床,搭遊覽車到「台大溪頭自然教育園區」,都已經中午了!三天的比賽,其中半天搭車去,半天搭車回台北,都在搭車就好啦!不過搭車是活動的一部分,總比自行前往好很多吧!

於是我們就在山明水秀中討論數學、寫程式,也別有一番風味,但是物理界的黑客松風格,真的是跟一般的黑客松有很大的差異!一般黑客松,吃的都是垃圾食物,像是PIZZA,漢堡之類的,但在物理黑客松,竟然是吃合菜,而且還很好吃,也太幸福了吧!以前的黑客松,只有一間教室跟一堆二手睡袋,看你要不要睡,不睡拉倒。而這次竟然睡飯店!每個人竟然有一張雙人床可以睡,被單還可以控制溫度!

而且這個活動是免費的!!你或許會覺得,政府和學校又再浪費國家公帑了,讓學生們吃喝玩樂,花納稅人的錢,但其實,這是很聰明且省力的作法,就像是投資股票,要把錢砸在好的公司身上,讓這些頂尖的腦袋在舒服的環境下,請他們做一些科學上的突破,成效真的非常好,有鑑於這次的成果,IBM 決定在台灣2021年再辦一場,更大且國際級的量子電腦黑客松,各國頂尖學者聚集於台灣,產生的週邊效益,對於台灣科技的進步,絕對是一筆超級划算的投資!

我已經很久沒有接觸交易以外的程式了,這個禮拜出來玩三天,又可以得獎,算是一個另類的抒壓!平常都在製作交易程式,琢磨賺錢的程式很辛苦,本身的程式實力當然很重要,但有時候找到對的交易策略,就是需要長時間的琢磨,運氣成分也非常高,而最後如何判斷程式運行的是正確的?就是有沒有賺到錢囉!XD,但價格通常是random walk,隨機漫步,所以你真的很難確定,新程式能幫你賺錢,除非運行了一陣子,就算能賺錢,你還是會擔心他可以幫你賺多久,日子就在這個「擔心」的循環中度過。

寫一般的程式,就沒有這麼辛苦了,你得到的 feedback 是非常迅速且即時的,可以用就是可以用,不能就是不能,可以根據這個 feedback 快速優化程式,這就其實是寫程式最開心的地方,藉由不斷修正,程式變得越來越多功能,越來越好!

然而這次的比賽如何獲勝呢?量子電腦,目前真的還在二極管的時代,我覺得這次要得獎有兩種不同的方法,第一種,對於量子電腦的電路製作有真正的貢獻,第二種,將量子電腦做跨領域的結合。第一種對我來說比較困難,要在短時間瞭解各種不同的量子閘,並且做出量子電腦的具體貢獻,短時間不太可能,第二種,是我比較擅長的,就是做跨領域結合,將量子電腦的演算法用在不同的地方。

我們將資工系常見的感測器網路當作命題,做出車聯網的應用,利用量子力學的演算法,來做都市規劃建構感測器網路,為車聯網做提前的佈局,和計算感測器資料同步協定。另外也做了其他的應用,利用量子電腦做車輛定位(我承認這部分用量子電腦做沒有必要XD(沒有quantum advantage),但最後demo很炫就是了)。在三天的時間裡,應用量子電腦的演算法,構建三種車聯網應用,相信是個很完整的結果!我們將競賽成果開源到github上,供大家下載下來玩,不過程式碼還有很多優化空間,請大家小力鞭策XD!

之後會介紹跟量子電腦和這次黑客松有關的系列文章,也會講一些量子電腦用於程式交易的演算法,不過假如你期望量子電腦可以幫你拿來賺錢,看到這裡就好了,因為不太可能,量子電腦還在很早期的階段,就像是電腦在二極管的時代。但你假如你對數學不排斥,想要瞭解一些量子演算法,這個系列應該會很有趣!

附上這次比賽所有隊伍的題目和程式碼,還有其中一組作的量子電腦遊戲線上玩,讓大家體會量子電腦的奧秘,要組合quantum gate 來控制擊球的位置。

FinLab - 韓承佑

嗨大家好,我是韓承佑,FinLab創辦人,畢業於巴黎薩克雷大學資工博士,目前擔任臺灣量化交易協會 學術顧問、台北商業大學 創新育成中心 創業技術顧問與上市科技公司 量化交易顧問。當初,我喜歡寫程式、無意間因為軟體比賽接觸Fintech,從此開始了財經跟程式的學習之路。我們成立 FinLab 量化投資部落格,用自己研發的軟體,對台灣股市做大量快速的實驗。希望可以在量化投資的路上,當大家的「武器製造商」!