第七百九十一章電腦和人腦的對決


    深藍是美國ibm公司生產的一台超級國際象棋電腦,重1270公斤,有32個大腦(微處理器),每秒鍾可以計算2億步。“深藍”輸入了一百多年來優秀棋手的對局兩百多萬局。


    深藍是並行計算的電腦係統,建基於rs/6000sp,另加上480顆特別製造的vlsi象棋芯片。下棋程式以c語言寫成,運行aix 操作係統。1997年版本的深藍運算速度為每秒2億步棋,是其1996年版本的2倍。1997年 6月,深藍在世界超級電腦中排名第259位,計算能力為每秒113.8億次浮點運算。


    1997年的深藍可搜尋及估計隨後的12步棋,而一名人類象棋好手大約可估計隨後的10步棋。每增加1步棋的搜尋能力約等於增加下棋強度約80 elo分。


    人與計算機的首次對抗是在 1963 年。國際象棋大師兼教練大衛·布龍斯坦懷疑計算機的創造性能力,同意用自己的智慧與計算機較量。下棋的時候他有一個非常不利的條件:讓一個後。但當對局進行到一半時,計算機就把布龍斯坦的一半兵力都吃掉了。這時,布龍斯坦要求再下一局,但這次卻不再讓子了!


    1996年2月10日,超級電腦深藍首次挑戰西洋棋世界冠軍卡斯帕羅夫,但以2-4落敗。比賽在2月17日結束。其後研究小組把深藍加以改良


    1997 年 5 月 11 日,在人與計算機之間挑戰賽的曆史上可以說是曆史性的一天。計算機在正常時限的比賽中首次擊敗了等級分排名世界第一的棋手。加裏·卡斯帕羅夫以 2.5:3.5 (1勝2負3平)輸給 ibm 的計算機程序“深藍”。機器的勝利標誌著國際象棋曆史的新時代。


    我們可以看到國際象棋的博弈樹複雜度有10的123次方這麽多,根據深藍每秒運算2億步棋來算的話,對於博弈樹的遍曆需要10的107次方這麽多年。雖然說隨著遊戲的進行博弈樹複雜度快速下降,但是想要用計算機找到必勝策略,在可預見的未來還是不行的。要知道可見的宇宙範圍內才10的80次方這麽多原子,就算把它們都做成計算機來並行運算,可能都滿足不了需求。樓上說各種棋類都會研發出不敗的計算機軟件的同學大可放心。


    但是我們想要打贏別人並不需要找到那個飄渺的必勝策略,隻需要比對方運算得多就行了:深藍可搜索到隨後的12步棋,而一名人類象棋好手能估計10步棋左右。這就體現出來差距了,多算一步,勝率就多了許多。


    更關鍵的是算法,算法對於計算機運算能力的提升要遠高於硬件更新換代的提升。稍微有點智商的對弈軟件都不可能采取暴力運算的算法,至少也會用α—β剪枝算法。深藍的獲勝主要是軟件的勝利,在未來的的人機對弈中,軟件也都是獲勝的絕對決定因素,硬件速度的重要性很低。就像其他答案裏描述的,這個軟件針對特定人的棋風進行了優化。在此之外,也肯定針對國際象棋的特點設計了特殊的算法。對於所有棋類遊戲而言,想要設計出一個高手水平的對弈軟件其實都是能做到的,即使是圍棋,如果真的有需求的話也可以想辦法設計,關鍵在於要讓高手把自己的對弈思路「說清楚」。隻要是人能夠「說清楚」的事情,計算機實際上都能做。


    1947年,阿蘭.圖靈設計了第一個下國際象棋的程序。


    1948年,uniac計算機被宣稱是世界上功能最強大的計算機。它不僅可以下國際象棋,而且它玩rummy(一種用兩副牌玩的紙牌遊戲)所向無敵,無人能戰勝它。


    1949年,克勞得.香農對如何編寫用於下棋的計算機程序進行了描述。當年,ferranti計算機被用於解二步殺的棋題。


    1956年,在美國城市洛斯阿拉莫斯(los mos),人們在計算機maniac i上(每秒運行11,000次)運行了用6*6棋盤下棋的程序。這也是第一個有文獻記載的國際象棋程序。


    1957年,波恩斯坦為ibm704機編寫了一個國際象棋程序。這是世界上第一個成熟的國際象棋程序。


    世界上第一個參加比賽的國際象棋程序是由麻省理工學院的格林.布萊特(greentt)為pdp-6機所寫的程序,名為machackvi。


    1966年一個來自蘇聯的國際象棋程序擊敗了斯坦福ibm7090機的程序。


    1967年,在麻省國際象棋錦標賽上,machackvi成為第一個擊敗人類棋手的國際象棋程序。


    1968年,國際大師戴維.列維公開表示十年之內計算機不會擊敗他,並為此賭 3000美元。


    1970年,首屆計算機國際象棋錦標賽在紐約舉行。冠軍被西北大學(northwestern university)的阿特金(atkin)和格爾林(gorlen)編寫的程序chess3.0奪走。本次比賽共有6個程序參加。


    1971年,莫斯科控製科學研究所編寫了一個程序,名為kaissa。它於1974年斯德哥爾摩計算機國際象棋錦標賽的決賽上以4-0完勝對手榮獲冠軍。


    1974年,世界通信國際象棋世界冠軍漢斯.波爾萊納(hans.berliner)撰寫了他的博士學位論文,題目是“用於解題的國際象棋計算機”。(chessputer as problem sloving).


    1975年國際特級大師大衛.勃龍斯坦在維爾紐斯舉行的一個錦標賽中利用kaissa的殘局棋庫贏得了一個封局。


    1976年,在北加利福尼亞舉行的保爾.馬森錦標賽的b組賽中,chess4.5獲得冠軍,表現分為1950。


    1976年,在海法舉行的國際象棋奧林匹克團體賽上,計算機被用於編對工作。


    1977年,世界上誕生了第一台國際象棋微機,名為 chesschallenger(國際象棋挑戰者)。同年,國際計算機國際象棋協會(a)成立。


    1977年,chess4.5贏得明尼蘇達公開賽冠軍,戰績為5勝1負,表現分為2271。


    1977年的哥倫布日(即十月十二日,美國某些州的法定假日)在俄亥俄州舉行的美國公開賽上,一台名為sneaky pete的電腦成為第一個參加該賽的計算機。


    1977年,米歇爾.斯蒂恩(michel.steen)成為第一位輸給計算機的特級大師。


    1978年,在聖約瑟(哥斯達黎加首都)舉行了世界上首次微機國際象棋賽。


    1980年,倫敦舉辦了首屆世界微機國際象棋錦標賽。


    1981年,電腦crazy blitz以5-0的比分完勝對手,獲得密西西比州冠軍,其表現分為2258。


    1982年,電腦belle由於前往蘇聯參加計算機國際象棋錦標賽而被美國國務院沒收。國務院說此舉違反了美國技術轉讓法中關於禁止將高科技的計算機運往國外的條款。


    1983年,belle在慢棋賽中擊敗一名大師,並且成為世界上第一個獲得大師分的計算機。


    1984年,在加拿大一台微機首次戰勝了大型機。


    1985年,電腦hitech的表現分達到2530分。


    1987年,美國業餘國際象棋錦標賽成為第一個完全由計算機編排的比賽。


    1988年,計算機“深思”與特級大師托尼.邁爾斯並列美國公開賽冠軍,表現分達到2745分。


    1988年,電腦hitech在美國賓西法尼亞國際象棋錦標賽中擊敗國際大師ed formanek(2485)榮獲冠軍。


    1988年,丹麥棋星本特.拉爾辛成為第一位在大型比賽---美國公開賽中負於計算機的特級大師。


    1989年,電腦“深思”在加拿大舉行的世界電腦國際象棋錦標賽中一舉奪魁,並且等級分達到2600分。同年在另一次比賽中“深思”還戰勝了特級大師羅伯特.伯恩(robert.byrne


    1990年,一個名叫wchess的程序在波士頓舉行的哈佛杯比賽中成績超越了所有的特級大師。


    1994年,在德國慕尼黑舉行了一次5分鍾快棋賽,包括卡斯帕羅夫在內的17名特級大師參加了比賽。比賽中卡斯帕羅夫被電腦fritz3擊敗。該程序還戰勝了阿南德、肖特、格爾凡德和克拉姆尼克。有趣的是,特級大師羅伯特.許伯納拒絕與fritz3交手,因而以棄權作負。這也是曆史上第一次一位特級大師因棄權而負於電腦。


    1996年2月10--17日“深思”的後代“深蘭”(deep blue)在美國費城與卡斯帕羅夫交手。結果,卡斯帕羅夫以4-2取勝。


    1997年5月4日--11日“深蘭”的後代“更深的蘭”(deeper blue)挑戰卡斯帕羅夫,經過6局激戰,這台重1.4噸,裝在兩隻黑色鐵櫃中的rs6000/sp超級計算機以3.5-2.5戰勝卡斯帕羅夫,成為曆史上第一台在對抗賽中戰勝世界冠軍的計算機。


    計算機和象棋大師的對抗,顯示了計算機弈棋的力量,但也暴露了它的一些弱點,象棋大師依靠直觀感覺、思維判斷以及記憶中的局麵和理論原則選擇最佳決策,並善於從紛亂的局麵中找出主要矛盾;但計算機卻是根據程序預定的局麵估價函數選取最佳對策,計算時盡管采取簡化選剔法,仍然需要麵麵俱到。它的水平受時間的限製,尤其是殘局的水平仍較差。


    加裏·卡斯帕羅夫在費城和紐約麵對的這台電腦包括一個裝備大量專門用以進行高速運算芯片的ibmsp/2服務器,每個芯片每秒能處理2-3百萬個局麵。使用超過200個這種芯片,整個程序的速度達到了每秒處理2億個局麵。


    棋弈機器每秒能處理2億個局麵意味著什麽?肯·湯普森,“尤物”之父(也是unix和c語言之父),在80年代對搜索深度和棋力提高之間的關係做了非常有意義的試驗。他讓“尤物”自己跟自己下,但隻有一方的搜索深度不斷增加,平均每增加一個搜索深度可大約換算成200個國際象棋等級elo分。於是,“尤物”搜索四層其水平大約是1230分,搜索到九層它的水平達到了2328分。延伸這條曲線,到了頂端會變平緩,可以計算出搜索深度達到十四層時,就達到了世界冠軍的程度即2800分。(如下圖,橫坐標是搜索層數,縱坐標是國際等級分。上部橫線是卡斯帕羅夫的分數作參考,a線表示對電腦水平的樂觀估計,b線表示悲觀估計,c線表示現實估計)


    專家的結論是:要與人類世界冠軍爭奪冠軍,必須做一台每秒運算10億次的電腦(搜索到十四層的深度)。深藍接近了,但還達不到。


    電腦棋力的一個重要方麵是下棋時使用廣闊的開局庫。多少代人類大師的知識積累和經驗可以輕易地儲存在硬盤上並且在開局階段采用。即使是個人電腦程序也懂得幾千萬個開局局麵,並且對這些局麵的每一個都有完全的統計(比如出現過那些著法、用哪些著法勝過、使用過的人有多少,等等)。程序經常是連走15到20步之後才第一次需要計算。如果沒有從這些人類的開局知識精華中受益,程序將實力大減。


    當電腦從數目龐大的、從國際象棋曆史積累下來的開局知識中取得堅實優勢之時,它們也從對局的另一端搜索中受益。


    殘局數據庫


    這又是那位影響力到處有的肯·湯普森充當了研究先鋒。他在80年代就開始生成和儲存棋盤上剩四至五子的所有符合規則的殘局。一個典型的五子殘局,比如王雙象對王單馬,包含總數121萬個局麵。加上一隻移動不連續的兵,這個數字增加到335萬。湯普森編寫程序產生所有符合規則的局麵並計算出每個殘局可能的強製變化。他還以一種方式把結果壓縮,使得一張標準的cd-rom能存放大約20個殘局。


    好在,局麵數量更大得不可思議的七子殘局,離產生依然很遙遠。更好在的是,對局的兩端即開局和殘局,永不可能接在一起。是啊,假如看到一台電腦走了 1.e4 然後宣布40步棋之內將死,這就太難以讓人接受了。但是電腦在比賽中穩定戰勝人類世界冠軍大概隻是時間問題,若幹年或若幹十年之後……


    電腦其實是不停的搜譜,然後判斷局麵的好壞。人腦如果純從記憶力來說,是比不過電腦的,所以人戰勝電腦的方法是創新。


    之所以這場深藍大戰被很多人質疑的原因,就是因為卡斯帕羅夫在認為摸透了電腦對某些特定局麵判定有問題(過分看重子力優勢,而忽略局麵優勢,比如能多吃個兵)之後,電腦下出了一反常態的不得子的招法,且事後不給卡斯帕羅夫拆解電腦譜著思索痕跡的時間,直接物理拆除了更深的藍。使得當時關鍵招是否是人為修改的(當時有說法是,那招請教了卡爾波夫)成為謎案。


    更深層次的說,其實深藍是ibm挽救公司的一次成功的商業炒作,它戰勝的應該是它的競爭對手!

章節目錄

閱讀記錄

象棋所有內容均來自互聯網,繁體小說網隻為原作者卡卡西大人的小說進行宣傳。歡迎各位書友支持卡卡西大人並收藏象棋最新章節