摩爾定律是由英特爾(Intel)創(chuàng)始人之一戈登·摩爾(Gordon Moore)提出來的。其內容為:當價格不變時,集成電路上可容納的元器件的數(shù)目,約每隔18-24個月便會增加一倍,性能也將提升一倍。換言之,每一美元所能買到的電腦性能,將每隔18-24個月翻一倍以上。這一定律揭示了信息技術進步的速度。圖片來源:Wiki
Samuel那個年代連微型計算機都尚未發(fā)明,但在1994年,第四代計算機已經相對普及。更快更多的運算硬件,允許更先進的編程算法。于是,繼Chinook稱霸跳棋后,其他棋類程序也不甘落后。比如,Michael Buro編寫的黑白棋程序Logistello,在1997年以6:0擊敗了人類世界冠軍北野武村上。但最具有標志性的莫過于1997年“深藍”4:2戰(zhàn)勝卡斯帕羅夫。許峰雄博士從卡內基梅隆大學開啟該項目,組建Deep Thought團隊,1989年畢業(yè)后受雇于IBM繼續(xù)研究。事實上,深藍與Chinook的情況相似,在它戰(zhàn)勝世界冠軍之前,都先輸了好幾次約戰(zhàn),最終的改進版終于略勝了一籌。
深藍VS卡斯帕羅夫。圖片來源:Wiki
盡管有人認為那場人機對戰(zhàn)并不公平,比賽中有疲勞和人為干預的因素,但計算機選手的強大已經成了不爭的事實。現(xiàn)如今,終于輪到圍棋了。
2機器和人的挑戰(zhàn)
Chinook誕生的時候,有評論對此不以為然。在不少人眼里,國際跳棋的變化不多,規(guī)則也不復雜,以至于較為流行,人類高手在對戰(zhàn)時會經常打成平局。但即便如此,這個競技項目也需要你擁有準確的判斷和直覺,10*10的棋盤大小需用超過40步以上的準確落子來獲取勝利。而對計算機來說,它的計算量也得到達棋盤上千億個可能的位置,所以1992年的Chinook只能夠運算出每一步之后的17個動作變化。國際象棋的復雜度顯然要高出跳棋不少,棋子各自的特點和規(guī)則增加了其需要運算的局面。所以97年的“深藍”擁有30個并行處理器,共同處理數(shù)據(jù),同時還存有70萬份大師對戰(zhàn)的棋局數(shù)據(jù)。 但無論是哪一種棋類,至今都無法超越圍棋的運算量。
也許你要問,運算量和下棋有什么關系?簡單來說,程序員給計算機編程下棋并非因為已經理解了人類大腦如何下棋。他們可以純粹依靠計算機的運算速度演算所有的局面情況。這個方法被稱為"博弈樹"(Game Tree)。想象你在棋盤上落子,每落下一子,它就代表了下一個決策的分叉點,就像一棵正在生長的樹木那樣,會派生出許多可能的局面。于是,計算機會去對任何一點的未來變化做出運算。理論上,只要計算機的運算能力足夠強,就可以按照規(guī)則窮盡所有的局面,排除不合法的局面(被稱為“剪枝”程序)。再用同時運行的按規(guī)則計分程序評價每個局面分數(shù)的高低,并選擇最高分的決策。
然而,19*19的圍棋棋盤和最簡的落子規(guī)則卻衍生出無窮無盡的變化。理論上,排除不合法的落子位置,如沒有“氣”的位置,每一步的行動可能局面是3361種,是個171位的數(shù)。即便人類有記載的棋譜總數(shù)至今不過幾千萬盤(8位數(shù))。這樣的復雜度能夠通過機器全部運算得到嗎?即使程序可以通過數(shù)據(jù)庫把棋譜全部收錄,但它能夠應對所有的棋局變化嗎?所以,人們普遍認為機器不可能在圍棋上勝過人類。
人類競技的精神就在于挑戰(zhàn),哪怕挑戰(zhàn)的是不可能。