第180章 圍棋軟體的工作原理

  元霄有把握說服江展宏。

  考古發現者挖掘出來的東西,如果沒有人知道怎麼使用,那就是廢棄物。

  不知道為什麼,元霄認為江展宏不會那麼輕易放棄自己的發現。

  果然沉默幾分鐘後,電話那頭的江展宏答應了。

  他立即動身來里倫威爾市。

  掛斷電話,柯傑這才湊了過來:「元老師,不如你和我們說說這圍棋軟體的大概構想吧。」

  天知道這幾天他是怎麼煎熬的。

  一個能夠指導棋手下棋的軟體程序,誰都想要。

  就好比看書看到精彩的地方,結果作者不更新了。

  柯傑對於元霄,那是心癢難搔。

  學生們也有興趣,畢竟大家都喜歡新鮮的事物。

  元霄乾脆坐下來,讓卓越擺弄電腦。

  「任何的棋類,規矩之下,大部分都是考驗計算力的。」元霄開始說明。

  撲克牌、哪怕是鬥地主之類,想要打好,也需要計算。

  象棋跳跳棋五子棋等等。

  包括圍棋,除了相應的一些技巧外,其實都是對計算力的考驗。

  柯傑認可:「這也是目前計算機界,認為圍棋軟體很難開發的緣故。」

  之所以難,是圍棋可選擇的點太多了。

  一個19路棋盤,橫豎各是19條線,一共361個點。

  也就是說,第一步走哪裡,理論上有361個可能。

  而第二步,則是360種可能。

  如此類推。

  「我剛剛查的資料,」蘇辰逸將電腦屏幕扳過來,「比如象棋的軟體,其實用的就是窮盡法。

  簡單地說,把所有可能全部計算清楚。」

  開局一步棋,已經預測到了結果,當然就不會輸了。

  這就是計算機比人腦厲害的地方。

  「但是圍棋不行,」柯傑補充,「想要窮盡所有可能,那是天文數字。」

  「對,」元霄也很高興,「所以,我們不能使用這一類的算法。」

  這裡就需要蒙特卡洛算法。

  這個算法,其實就是一個抽樣樣本的計算。

  舉個例子,要從一箱蘋果裡面,找出最大的。

  正常人的做法,就是拿出一個蘋果,和另外一個比較,留下大的。

  這樣一直淘汰,到最後剩餘的蘋果,就是最大的。

  那麼,這樣處理的結果,取決於箱子裡面的蘋果有多少。

  越多的話,得出來的結果就越準確。

  從這方面看,和圍棋的下棋思路很接近。

  柯傑明白了。

  高手下圍棋,也是根據當前的形勢,模擬推算下面的幾步,取最優的方案。

  「也就是說,」柯傑捏著下巴,「不需要把所有可能算完,只是選取一些重要的來進行分析。」

  「對,這就是圍棋軟體程序的核心要點。」元霄豎起了手指。

  計算機對每一步棋,都是這麼分析。

  當然,分析的點肯定不是百位千位這個數量的。

  蘇辰逸也聽明白了:「那問題的關鍵,在於哪些點需要分析,哪些可以直接淘汰掉。」

  元霄很滿意,小辰逸果然給力。

  方旭堯不甘示弱,畢竟是全國智商最高的人:「有點像剪枝的行為。」

  「沒錯,」和聰明人說話就是省事,元霄笑眯眯的,「就是剪枝。」

  一顆盆景,樹幹分支出去,有很多樹枝。

  元霄要做的,就是把沒有必要的剪去,留下有用的。

  通過這樣的手段,壓縮計算的範圍和量,從而讓程序能夠順利進行下去。

  柯傑點頭:「概念的置換,得到當前局面的最優解,而不是整盤棋的最終解。」

  這兩者是天差地別的。

  但是,只要從開始,計算機下的每一部,都是當前的最優解,累積起來,也就成了整盤棋的最優解。

  ?傲世指數+8888

  看看,這隨便弄幾下,就把柯傑給震出驚了。

  可惜的是,學生們大部分對元霄都不感冒。

  這就是收集傲世指數困難的地方。

  看來只有等成品問世,對他們才能收割一波。

  任務有坑啊。

  柯傑興趣很濃:「那麼問題在於,如何篩選出這樣的點。」

  「所以,我們需要對算法進行加成。」元霄解釋。

  圍棋棋盤上的一個點,可以用數值表示它的狀態。

  比如有白棋是1,有黑棋是-1,沒有棋就是0。

  這是最基礎的。

  如此一來,就可以對整個棋盤361個點,建立數學數值。

  然後,程序就可以對這群數值進行反覆的運算。

  元霄畫出一個概念圖:「第一個我們需要的是,可以稱為策略神經網絡。」

  策略神經網絡的作用,是判斷當前局勢下,下一步棋下在哪裡最合適。

  元霄認為,這裡的選點,可以參考人類棋手的棋譜。

  模仿人類棋手的思考模式,快速將一些低概率的點淘汰掉。

  柯傑嘆了口氣:「看來,到時候我還要提供目前為止所有人類的對局棋譜了。」

  理論上而言,棋譜數量越多,策略神經網絡的成熟度也越高。

  「這一點,我們讓計算機自主學習。」元霄支出其中的關鍵。

  反覆推演學習的結果,將會使策略神經網絡更加強大,選點更為準確。

  「而要做到這一步,還需要另外一個神經網絡的結合。」元霄寫下一個公式。

  價值神經網絡。

  其作用是能夠計算出,每個選點的勝率。

  每一步都進行這樣的估值判斷,直到棋局的結束,得到最精準的勝率數值。

  而同樣,這東西也可以自己學習。

  總結起來其實很簡單。

  就是模擬人類下棋的思維。

  首先判斷在哪些地方可以下,每個地方的勝率是多少。

  然後對這些選點進行集中計算,推演出最後的結果。

  每一步都這麼執行。

  那麼得到的每一手,自然就是最佳的下法。

  如果說一開始柯傑覺得元霄說的是天方夜譚。

  到了現在,他感覺這東西並不是完全不可能實現的了。

  他咽下口水:「如此一來的話,那不是一開始的時候,計算機就已經鎖定了結果。」

  必勝的結果。

  ?傲世指數+8888

  「這只是大概的概念,實際我們還需要一步步來,」元霄放下筆,「柯院長,到時候和圍棋軟體的對弈,還需要你來。」

  柯傑表示責無旁貸。

  蘇辰逸、卓越、方旭堯幾個都聽懂了。

  夏晚晴黎沐嵐之流,當然是不知所云。

  尤其是夏晚晴,她表示很鄙視。

  花腦袋去開發這玩意有啥用。

  老師也真是的,有時間和我一起不香麼。

  計算機的世界,果然蘊含宅的屬性。

  【如果您喜歡本小說,希望您動動小手分享到臉書Facebook,作者感激不盡。】