作者ledia (contemplation)
看板GO
標題Re: [問題] 電腦棋力的問題
時間Mon Apr 18 04:53:20 2005
※ 引述《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 (都比我的硬碟大了)
就更別說你要在上面作什麼分析和運算了...
既然太大的盤面做不了,就只好作盤面更小(圍棋)或子力少(象棋)的
現在的確有人在研究這些東西,不過這實在不是簡單的問題
有什麼結果的,據我所知並沒有很多
我不知道未來的發展趨勢是否會是在這上面
不過搜尋的方法畢竟還是目前的主流
畢竟打敗西洋棋人類冠軍的深藍就是用這一套
( 也許圍棋就要另闢新路了! )
會想說這些東西,其實是有點私心的
電腦棋類的發展其實很需要棋力高的棋手一起幫忙
不過往往遇到的是不會下棋的程式設計師
要不就是不懂程式設計原理的高強棋手
我自己相信,把電腦的棋力提升
也是有助於人類自己的棋力提升的
希望藉由這樣聊一聊, 能夠讓更多高手棋手想要多接觸一點程式的概念
也許將來打敗圍棋人類冠軍的程式是臺灣的團隊所研發的也不一定 :)
圍棋板還是多講點圍棋的事, 我先就此先打住了
希望眾高手們不吝多講一點棋囉 :)
--
有時候,遺忘,是令人快樂的。什麼時候?當然是有人傷了你的心的時候。
存心傷你的那個人,固然是故意和你過不去,但是被傷了心而耿耿於懷的你
,卻是和自己過不去了。所以,記性不好的人,通常會是比較快樂的人,也
是比較不容易被擊倒的人。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.55
※ 編輯: ledia 來自: 140.112.30.55 (04/18 04:54)
推 snowrain:對啊 同時精通圍棋跟程式的高手是很重要的 61.62.133.223 04/18
推 Charon:這種問題我覺得是種兩難,因為棋力養成要時間, 140.116.247.2 04/18
→ Charon:程式能力養成或正確一點說是演算法能力養成更需要 140.116.247.2 04/18
→ Charon:時間。除非可以將兩者結合,能如許舜欽老師作得 140.116.247.2 04/18
→ Charon:那麼好的,至少在圍棋程式研究上,還沒有出現, 140.116.247.2 04/18
→ Charon:不是沒有,只是還沒有很出色的。 140.116.247.2 04/18