電腦棋力的問題 - 圍棋

Sierra Rose avatar
By Sierra Rose
at 2005-04-18T04:53

Table of Contents

※ 引述《Equalmusic (Wintertraveller)》之銘言:
: 其實我比較想知道的是, 為什麼要教電腦一定跟人類一樣的下棋方式?
: 在電腦裡面輸入定石, 告訴電腦哪邊實力大, 勢力的概念是怎樣
: 然後用 points 來讓電腦選擇該下哪邊, 這是人類的思考方式
: 大家都知道電腦優秀的地方應該是在演算速度方面
: 我從很久以前就在想, 能不能用類似做數學的方法來讓電腦下圍棋?
: 就像做完美結局問題一樣, 用 n = 1, 2, 3, 4, 5...去尋找規律
: 簡單的說, 就是在棋盤上, 對於所有的 n 屬於自然數, 且 n = [1, 19]
: 用 n*n 的棋盤去讓電腦算「所有的」可能性
: 最初, 唯一需要輸入資料庫的是死活的棋形
: 知道怎樣是肯定活型, 無論如何不可能打入, 這樣就可以算地盤
: 最後讓電腦記住全部電腦會勝的那種最終盤型
: 然後每場棋電腦就只是排出他會勝的那種棋型而已
: 當然, 19*19 的盤面太大, 用超級電腦來算也不可能算完所有的可能
: 所以我的想法是, 就先讓電腦算到 5*5 的盤面, 或是 9*9 的盤面
: 然後根據 1*1 ~ 9*9 去尋找他的數學規律
: 最後也許就可以找到一套可讓電腦單純靠基本規則來運算
: 從而在 19*19 的棋盤致獲最終的勝利?
: (如果真的可以的話, 那肯定會出現神蹟般的手筋吧 @_@)
: 畢竟, 電腦再怎麼模仿他還是電腦, 價值判斷如果不能精確的用數學定義
: 那即使再過一百年電腦也不可能贏人
你想的其實是很好的點子
事實上,有很多人也覺得
為什麼程式一定要學習人類的思考模式?

因此,有一支電腦圍棋的作法就是:
定幾個有待定係數的評分函數
然後用幾個不同的初始係數評分函數的程式對下
然後大家根據勝負狀況來 "進化"
(同時也會加入一些變異)
這是類似基因演算法的做法

還有另一支用到了我比較不熟的類神經網路來做
這可能就要夠熟悉的人才能介紹了

但是,有沒有人試著把 "所有可能" 算出來和歸納呢?
這個想法的實作其實是存在的!

像是象棋的殘局資料庫就是在子少時
可以把同樣子力分配之下所有可能盤面都列出來, 算出勝負關係
以某種方式編碼存起,如果有實戰時遇到之前算出過的子力分布
那就直接去讀資料庫就不可能會走錯了!

圍棋也是有類似應用的,像是一些簡單的對打入空的應法之類
( 有人推文問, 循環盤面的情形又如何呢?其實是有方法的,不
過這就得用到棋規了,無論象棋還是圍棋,都有相應的規定,
程式都有方法可以處理,沒問題! )

不過,可能性太大還是讓問題變得很難解決
象棋的情況還好,以圍棋來說,nxn 的棋盤有 n^2 格
所有的格子上會有 3 種可能,黑、白和無
因此所有的可能盤面有 3^(n^2) 種
就算 n=5,也要存 3^25 = 847288609443 這麼多資料
一個盤面如果有輸、贏、和三種可能
那存下一筆資料要 2 bit (舉例: 00 輸, 01 贏, 10 和)
算起來是 847288609443*2 = 1694577218886 bits
= 211 Giga bytes (都比我的硬碟大了)
就更別說你要在上面作什麼分析和運算了...

既然太大的盤面做不了,就只好作盤面更小(圍棋)或子力少(象棋)的
現在的確有人在研究這些東西,不過這實在不是簡單的問題
有什麼結果的,據我所知並沒有很多

我不知道未來的發展趨勢是否會是在這上面
不過搜尋的方法畢竟還是目前的主流
畢竟打敗西洋棋人類冠軍的深藍就是用這一套
( 也許圍棋就要另闢新路了! )

會想說這些東西,其實是有點私心的
電腦棋類的發展其實很需要棋力高的棋手一起幫忙
不過往往遇到的是不會下棋的程式設計師
要不就是不懂程式設計原理的高強棋手
我自己相信,把電腦的棋力提升
也是有助於人類自己的棋力提升的
希望藉由這樣聊一聊, 能夠讓更多高手棋手想要多接觸一點程式的概念
也許將來打敗圍棋人類冠軍的程式是臺灣的團隊所研發的也不一定 :)

圍棋板還是多講點圍棋的事, 我先就此先打住了
希望眾高手們不吝多講一點棋囉 :)

--

有時候,遺忘,是令人快樂的。什麼時候?當然是有人傷了你的心的時候。
 存心傷你的那個人,固然是故意和你過不去,但是被傷了心而耿耿於懷的你
 ,卻是和自己過不去了。所以,記性不好的人,通常會是比較快樂的人,也
 是比較不容易被擊倒的人。

--
Tags: 圍棋

All Comments

Barb Cronin avatar
By Barb Cronin
at 2005-04-23T04:51
對啊 同時精通圍棋跟程式的高手是很重要的
Irma avatar
By Irma
at 2005-04-24T18:31
這種問題我覺得是種兩難,因為棋力養成要時間,
程式能力養成或正確一點說是演算法能力養成更需要
時間。除非可以將兩者結合,能如許舜欽老師作得
那麼好的,至少在圍棋程式研究上,還沒有出現,
不是沒有,只是還沒有很出色的。
George avatar
By George
at 2005-04-26T15:14
朝聖!

各類棋比較

Eden avatar
By Eden
at 2005-04-18T00:19
小弟棋力不高 但個人覺得 這個問題就像問說 學醫學還是學法律好? 法文難還是義大利文難? 林志玲和侯佩岑誰比較正? - ...

各類棋比較

Yuri avatar
By Yuri
at 2005-04-17T23:19
承接我之前的問題 想再請問那以專研精通的程度來比較 象棋跟圍棋哪個比較困難? 我對圍棋只有基本認識 有高手兩種都很瞭解的可以比較說明一下嗎? 簡單來說應該都是計算的問題 可是事實上卻似乎不是如此? 舉例來說很久以前我有認識圍棋高手 我那時跟他下象棋他似乎不怎樣... 可是他圍棋的計算能力應該是很不錯才對 當然 ...

請問詰棋的書...

Vanessa avatar
By Vanessa
at 2005-04-17T22:49
※ 引述《chanteen (...........)》之銘言: : 大家好..小弟想練詰棋 不知道哪一本書對我比較有幫助.. : p.s.棋力大概是LGS3k : 先謝謝摟^^and#34; 我也是甲組初段附近, 建議以下兩本: 階梯兒童講義第三四冊開始做看看 另外還有一本當作「廁所書」也不錯,「1、 ...

電腦棋力的問題

Hazel avatar
By Hazel
at 2005-04-17T22:43
※ 引述《livedeader (歡迎找我下棋)》之銘言: : 我不大會下圍棋 : 但至少懂些基本規則 : 幾乎大部分的棋類我都會 : 西洋棋象棋五子棋圍棋等 : 為什麼圍棋的電腦AI最難寫? : 因為對圍棋不甚瞭解所以特來請教 : 如果可以我對象棋最為熟悉 : 可以拿象棋跟圍棋比較一下嗎? : 謝謝回答 ...

電腦棋力的問題

Callum avatar
By Callum
at 2005-04-17T22:18
※ 引述《livedeader (歡迎找我下棋)》之銘言: : 我不大會下圍棋 : 但至少懂些基本規則 : 幾乎大部分的棋類我都會 : 西洋棋象棋五子棋圍棋等 : 為什麼圍棋的電腦AI最難寫? : 因為對圍棋不甚瞭解所以特來請教 : 如果可以我對象棋最為熟悉 : 可以拿象棋跟圍棋比較一下嗎? : 謝謝回答 ...