とりあえず非常に簡単に、普通にツリー検索で解析するプログラムを組んでみました。
ある局面に対し、勝つ手が1個見つかった時点で検索終了します。
コミを0.5から1ずつ増やし、コミ n-0.5 だと黒の勝ち、コミ n+0.5 だと白の勝ち
となるnを探します。
この時のnが正しいコミとなります。
このような単純な方法では、
打つ点が5点くらいまでなら結果(正しいコミ)がすぐ求まります。
ルールは純碁と(終盤を省略しない)中国ルール。
日本ルールでのプログラムは難しいので頭で考えた参考値です。
それぞれ正しいコミを結果として載せます。
同型反復による引き分けが存在する日本ルールでは、
正しいコミが複数考えられる可能性がありますが、
今のところそのような盤面は見つかっていません。
--- △ ---
打つ場所が3点で、すべての点が繋がっている盤面
{{a,b},{a,c},{b,c}} // a,b,cの3点と、a-b, a-c, b-c の3本の線からなる盤を表します
純碁:0
中国ルール:0
日本ルール:(0)
--- □ ---
2路盤
{{a,b},{a,c},{b,d},{c,d}}
純碁:1
中国ルール:1
日本ルール:(0)
--- ++++ ---
1x4路盤
{{a,b},{a,c},{b,d}}
純碁:2
中国ルール:4
日本ルール:(2)
--- 五角形 ---
五角形
{{a,b},{a,c},{b,d},{c,e},{d,e}}
純碁:0
中国ルール:0
日本ルール:(0)
--- △_ ---
{{a,b},{a,c},{a,d},{b,c}}
純碁:2
中国ルール:4
日本ルール:(3)
--- △ | ---
{{a,b},{a,c},{b,c},{d,e}}
純碁:0
中国ルール:0
日本ルール:(0)
単純に結果だけ書いても面白くないので解説
--- 2路盤 ---
┌┐ ●┐ ●┐ ●● ┌┐ ┌● ○┐ ┌● ┌● ●●
└┘ └┘ └○ └○ ○○ ○○ ○○ └┘ ○┘ ○┘
┌┐ ●┐ ●┐ ●● ┌┐ ┌● ┌● ●●
└┘ └┘ └○ └○ ○○ ○○ ○○ ○┘
純碁や中国ルールでは、取ったり取られたりが続くが、
最終的には白が同一盤面禁止の超コウルールに引っかかって取れなくなって
そこで終局。
日本ルールは、どちらも活き石が作れないので、
出来るだけ相手に石を多く取らせないようにする戦略が最善。
一方的に同型反復の形にする場合には、より多くのハマが取られることになるので、
正しいコミは0の1通りのみ。
--- 1x4路盤 ---
┼┼┼┼ ┼●┼┼ ┼●○┼ ┼●┼●
純碁や中国ルールでは、一番右の盤面から白は取り返すことが出来ず、
このまま終局。
┼┼┼┼ ┼●┼┼ ┼●○┼ ┼●┼● ┼●┼● ┼●●● ○┼┼┼ ○┼●┼
日本ルールでは、5手目黒に継ぐ手が存在し、黒2眼の活き。
1x4路盤特有の手。
--- 五角形 ---
純碁や中国ルールでは、取ったり取られたりが非常に長く続くが、
最終的には超コウルールにより打てなくなってジゴ
日本ルールでは、2路盤と同様に双方とも活き石が作れずジゴ
19路盤囲碁の盤面の組み合わせは、
点の状態のすべての組み合わせ3^361 のに対して、黒の存在出来ない石をすべて取り除いた盤面にカウントするとした場合、
最大2^181回重複して数える盤面が出てくる。
よって、
3^361 / 2^181 < 盤面総数 < 3^361
となる。
計算すると、
『 5.67*10^117 < 盤面総数 < 1.75*10^172 』
日本ルールの囲碁の場合、同型反復の制限が無い為、厳密には有限ゲームではないが、
同一の [手番、盤面、ハマ差、コウによる着手禁止点] になった時点で同型反復による引き分け
ハマ差が361以上開いた場合は、ハマの多い方の勝ち
としてもゲーム的には同じである。
手数は 2*723*362*2*1.75*10^172 ≒ 1.83*10^178 以下である。
1手の最大の分岐が362であるので、総ゲーム数は
362^(3.50*10^172) ≒ 10^10^178.67 以下である
中国ルールの場合、超コウルールによって同一盤面となる石打ちが禁止されているので、
手数は 2*1.75*10^172 ≒ 3.50*10^172 以下である。
1手の最大の分岐が362であるので、総ゲーム数は
362^(3.50*10^172) ≒ 10^10^172.95 以下である
日本ルールの場合、
それまでの手順に関係無く、
[手番、盤面、ハマ差、コウによる着手禁止点]
による最善手が決まる。
よって、総ゲーム数 10^10^178.67 近くあるすべての解析を行う必要は無く、
[手番、盤面、ハマ差、コウによる着手禁止点] による遷移図(ゲームグラフ)を作成することで、
解析することが出来るので、
1.83*10^178 程度の局面の解析で済む。
ただし、終局局面から正しい点数計算を行うアルゴリズムは簡単ではなく、
膨大な計算が必要な局面も存在する。
(そもそも点数計算が厳密に定義されているのか?という問題もある)
(終盤を省略しない)中国ルールや、純碁(超コウあり)の場合、
終局局面からの点数計算は非常に簡単である。
ところが、超コウルールの為、
[手番、盤面、コウによる着手禁止点] だけでは最善手が決まらず、
その局面までの手順、どのような盤面が出現したかまでが最善手に影響する。
総ゲーム数の 10^10^172.95 より大きく計算オーダーを減らす方法、
3.50*10^172 近くまで計算オーダーを減らす方法、
は今のところ思い浮かばない。
●コミとゲーム開始時の形勢の関係
すべての終局局面でのコミと形勢の関係は[a] [b]のいずれかである....☆1
(通常の終局の場合は[a], 同型反復終局の場合は[b])
[a]〜[e]の形の関数複数個のmax, min関数は[a]〜[e]の形となる....☆2
コミが十分大きければ白必勝、コミが十分小さければ黒必勝である ....☆3
以上より、コミとゲーム開始時の形勢の関係は[a],[c]のいずれかとなる。
[a]
. /
/
[b]
___
[c]
/
/ ̄
[d]
__/
[e]
/ ̄ ̄
ただし、
横軸コミ、縦軸形勢、
_は縦軸の値0の定数
/は傾き1の直線
>>2-6 の純碁は超コウルール有りの場合です。
(単純なコウ以外で)同一盤面となる石打ちを行った場合に引き分けのルールとする場合は
結果が異なります。
たとえば、2路盤はどちらも一方的に同型反復の形に持ち込めますので、結果は0になります。
>>5
なんか微妙に1手抜けましたね。訂正。
┌┐ ●┐ ●┐ ●● ┌┐ ┌● ┌● ●● ●●
└┘ └┘ └○ └○ ○○ ○○ ○○ └┘ ○┘
>>10
> たとえば、2路盤はどちらも一方的に同型反復の形に持ち込めますので、結果は0になります。
すみません。これ嘘です。
正しいコミは、-2 〜 +2 の範囲です。
この範囲すべてで、双方最善で引き分けです。
>>9 でいう[c] の形です。
--- □ ---
2路盤
{{a,b},{a,c},{b,d},{c,d}}
純碁(超コウ無し):-2 〜 2
純碁(超コウ有り):1
中国ルール(超コウ無し):-4 〜 4
中国ルール(超コウ有り):1
日本ルール:(0)
19路盤の盤面総数の組み合わせの範囲をもうちょっと絞りました。
10^167.3 < 盤面総数 < 10^172.2
3^361 のうち、存在出来ない石が存在しない割合はそれほど低く無いようです。
頑張ればもっと絞れそうです。
もうちょっと絞ってみました。
10^169.958 < [19路盤 盤面総数] < 10^170.482
10^169.055 < [19路盤 盤面総数 対称形同一視] < 10^169.579
10^168.754 < [19路盤 盤面総数 対称形同一視 白黒同一視] < 10^169.278
[1路盤 盤面総数] = 1 = 10^0
[2路盤 盤面総数] = 57 ≒ 10^1.756
[3路盤 盤面総数] = 12675 ≒ 10^4.103
[4路盤 盤面総数] = 24318165 ≒ 10^7.386
[5路盤 盤面総数] = 414295148741 ≒ 10^11.617
[6路盤 盤面総数] = 62567386502084877 ≒ 10^16.796
[7路盤 盤面総数] = 83677847847984287628595 ≒ 10^22.923
[8路盤 盤面総数] = 990966953618170260281935463385 ≒ 10^29.996
[9路盤 盤面総数] = 103919148791293834318983090438798793469 ≒ 10^38.017
[10路盤 盤面総数] = 96498428501909654589630887978835098088148177857 ≒ 10^46.985
10^56.661 < [11路盤 盤面総数] < 10^57.008
10^67.508 < [12路盤 盤面総数] < 10^67.877
10^79.302 < [13路盤 盤面総数] < 10^79.693
10^92.044 < [14路盤 盤面総数] < 10^92.457
10^105.732 < [15路盤 盤面総数] < 10^106.167
10^120.368 < [16路盤 盤面総数] < 10^120.825
10^135.951 < [17路盤 盤面総数] < 10^136.43
10^152.481 < [18路盤 盤面総数] < 10^152.983
10^169.958 < [19路盤 盤面総数] < 10^170.482
11路盤の正確な値は計算中。
5路盤〜10路盤の挟み込みの予想と実際の値との関係から、
以下の範囲に入ることはほぼ確実。
10^170.31856 < [19路盤 盤面総数] < 10^170.31892
11路盤の正確な盤面総数が求まりました。
[11路盤 盤面総数] = 793474866816582266820936671790189132321673383112185151899 ≒ 10^56.900
(;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2]
RU[Japanese]SZ[19]KM[6.50]
PW[白]PB[黒]
;B[dd];W[pd];B[dp];W[pp];B[jd];W[cc];B[cd];W[dc];B[ec];W[eb];B[fb]
;W[fc];B[ed];W[gb];B[db];W[fa];B[cb])
>>16は呼吸点のない石が置けないのを知らないのか
そんなに簡単に計算できるわけないだろう >>19
もちろん考慮してる。
Corei7で一週間位はかかってる。
普通に計算したらこの桁数だから当然計算は終わらない。
すごく工夫してこの計算時間。
計算方法は今のことろ公開はしていないが、
どうしてもというならヒントくらいは出す。
30秒将棋でプロが2割しか勝てないぐらいに最近の将棋ソフトは強くなってるけど囲碁のソフトはどうなの?
やや強いアマチュアの人と同じぐらい。プロに互先で勝つことは不可能だと思います。
長手数の攻め合いに弱い印象があります。
コンピュータはバカだからね。一本道が読めない
まあプロと並ぶには50年は覚悟しといた方がいいね。
2009年のPCはむちゃくちゃ弱いのに2011年のは強くて勝てなかった、2年で何があったんだ
15年くらいじゃないか?
5路盤て完全解析されたんだね、全然知らなかったよ。
7路盤の前に、6路盤て完全解析されたの?
159 名前:名無し名人[sage] 投稿日:2012/02/10(金) 05:47:57.49 ID:BUw+wAAO
完全解析をするには従来の探索手法の他に、
数学的証明によって探索する必要の無い局面や手の相当なパターンが発見されないとな
囲碁ではベンソンが発明したアルゴリズムによって必要な探索局面数を大幅に削減し、完全解析を可能にした
5路盤の
6路はまだ。6x5とか7x4とかは解けてるので、もうちょっとじゃないかな。
5 名前: 名無し名人 [sage] 投稿日: 2010/11/05(金) 21:05:07 ID:JaVYdbjO
単純に結果だけ書いても面白くないので解説
--- 2路盤 ---
┌┐ ●┐ ●┐ ●● ┌┐ ┌● ○┐ ┌● ┌● ●●
└┘ └┘ └○ └○ ○○ ○○ ○○ └┘ ○┘ ○┘
┌┐ ●┐ ●┐ ●● ┌┐ ┌● ┌● ●●
└┘ └┘ └○ └○ ○○ ○○ ○○ ○┘
純碁や中国ルールでは、取ったり取られたりが続くが、
最終的には白が同一盤面禁止の超コウルールに引っかかって取れなくなって
そこで終局。
日本ルールは、どちらも活き石が作れないので、
出来るだけ相手に石を多く取らせないようにする戦略が最善。
一方的に同型反復の形にする場合には、より多くのハマが取られることになるので、
正しいコミは0の1通りのみ。
--- 1x4路盤 ---
┼┼┼┼ ┼●┼┼ ┼●○┼ ┼●┼●
純碁や中国ルールでは、一番右の盤面から白は取り返すことが出来ず、
このまま終局。
┼┼┼┼ ┼●┼┼ ┼●○┼ ┼●┼● ┼●┼● ┼●●● ○┼┼┼ ○┼●┼
日本ルールでは、5手目黒に継ぐ手が存在し、黒2眼の活き。
1x4路盤特有の手。
【電】 【王】 【戦】 【川】 【柳】
名前: 名無し名人
E-mail: sage
内容:
土曜日が
待ち遠しいよ
電王戦
【解釈】
会社に居場所はなく、
上司からのパワハラに耐えながら日々の生活を送っている私。
そんな私の唯一の楽しみが週末に行われる電王戦だ。
ソフトは上司、プロ棋士は私。
力関係で劣っていようと、必死で頑張るプロ棋士の姿を見て、
私はもう1週間頑張る勇気を与えられるのだ。
deep learningで先読みなしでGNU GOに勝ったらしい!!
ブレークスルー来たか!?
まだCNNでやってるのか。
そろそろMaxoutとかでやる人出てこないのかね。
少しプログラムを考えたのですが
〇×ゲームの〇を考える
110点
〇|_|_
_|×|_
_|_|〇
100点(引き分けパターン)
〇|〇|_
_|×|_
_|×|〇
200点以上詰み
200点
〇|_|〇
_|×|_
×|_|〇
201点
〇|_|_
_|〇|_
_|_|×
202点
〇|_|_
_|〇|×
_|_|_
206点
〇|_|〇
_|〇|×
_|_|×
207点
〇|×|_
_|〇|_
〇|_|×
9マス3種類(〇×なし)4方向同一盤面だから
9^3/4=182.25=183通りの盤面
ですので200点以上で詰みとして
そこから詰みに至る盤面遷移で勝ちになるパターンが多い順にソートして
詰みの状態から盤面に点をつけます(1点差ごと)
予めソートして点がつけたら
それに従い遷移可能盤面の中から高得点の手だけを打ちます
囲碁の場合
361マス3種類(黒白なし)4方向同一盤面だから
361^3/4=11761470.25=11761471通りの盤面で
1200万点以上で詰みとして・・・同様に・・・
というように囲碁の完全回答プログラムが出来てしまいそうなのですが
出来なければまぁいいのですが
解けたら囲碁のわびさびがなくなるので封印するか、回答を見てみるのか
どっちなのか判断がつかないのですが、どうでしょうか?
点数計算のアルゴリズムは搭載せず
詰みに至る盤面遷移で勝ちになるパターンが多い順にソートして点をつけるだけ
これではできないんでしょうか?
点数計算のアルゴリズムは搭載せず
詰みに至る盤面遷移で勝ちになるパターンが多さと遷移順にソートして点をつけるだけ
これではできないんでしょうか?
19路盤1200万通りに
点数計算のアルゴリズムは搭載せず
詰みに至る盤面遷移で勝ちになるパターンの多さと遷移順にソートして絶対点をつけるだけ
無理かな?
5路盤は25*25*25/4=3906.25=3907通りだから
4000点満点のソート
種類と桁を間違えていた
>>7
1.75*10^172通り
1.75*10^172満点で
詰みに至る盤面遷移で勝ちになるパターンの多さと遷移順にソートして絶対点をつけるだけ
これ計算量多すぎなの? [5路盤 盤面総数] = 414295148741 ≒ 10^11.617
5路盤10^11.617(/4?)満点のソート
あれれ?
9マス3種類(〇×なし)4方向同一盤面だから
9^3/4=182.25=183通りの盤面かと思ったら
3^9/4=4920.75=4921通り
9マス3種類(〇×なし)4方向同一盤面って、こんなにあるの?
やっぱりこのくらいじゃね?
9^3/4=182.25=183通り
ああ、9マス3種類(〇×なし)4方向同一盤面
3^9=19683通りの中の
戦術的に意味があるのが
30〜50通り以下くらいなのか・・・
Xe+170通りなら
>>51
N=19683
2*logNlogN=50
みたいに戦術的意味で省略して
2*170*170=57800通りとかじゃ少なすぎるかな? で、意味のある棋譜って何通りくらいかな
5〜50万通りの用意じゃ少ないの?
5路盤10^11.617
2*logNlogN=2*11*11=250〜2500通りの用意
で、相手が用意の棋譜以外を打ってきたら
最善手を打ったのと同じ扱いとして
一番点が低い棋譜遷移の見積もりを打つってことで
n=0;
for(xaa=0;xaa<3;xaa++){
for(xab=0;xab<3;xab++){
・・・
for(xas=0;xas<3;xas++){
for(xba=0;xba<3;xba++){
・・・
for(xss=0;xss<3;xss++){
bdPTS[n++]={{xaa,xab,...,xas},{xba,,xbb,...,xbs},...{xsa,,xsb,...,xss}};
}
で、Xe+170通りのソートか・・・
コンピュータが飛躍的に速くならないと無理なのか・・・
スレ汚しごめん
19路盤での
「完全解が見つかる最低条件」の法則または定理を見つけることが
問題解決の糸口になる。
64bit*15.6MHz*1core=1GHz=1e+9step/sec
1e+160coreとして1e+169step/sec
とか、金と電力がいくらあっても足りないけど
なんかバランスとれないかなぁ・・・
まだ無理か
1億coreが限界として
1e+8core
1e+162step/sec=mbit*nbass
にならんかな
あと1e+153step/sec
死ぬまで無理ぽだけど
9マス3種類(〇×なし)〇×交互手番を試しに列挙してみたら
6046個<(3^9)/3だった
4方向同一盤面
で1511.5=1512個
ここから
361マス3種類(黒白なし)4方向同一盤面黒白交互手番
コウとか石を取る等のルールなしのNは
N個<(3^361)/19/4=2.29e+170個<10^170.482個
なのではなかろうかと思った
〇×ゲームの厳選譜50として50*a
50*30<1512
30<(log↓10↑1512)^3
ここから19路盤の厳選譜N
a=(log↓10↑2.29e+170)^19=2.49e+42
N=2.29e+170/a=9.2e+127
とか適当に思いついた
平均220手
N/220=9.2e+127/220=4.18e+125棋譜
220手から同系統100手として
4.18e+123棋譜あればほとんどすべてに対応できるとかなんとか・・・
となると、CPU性能を考えると全検索ソートは無理だから
基本定石5000棋譜の参照から
定石外の相手の手からのその都度棋譜作成みたいになるのやら・・・
ほんとに夢想してます
基本定石5e+3
想定読み切り棋譜5e+123
定石外の手からの勝利棋譜作成能力1e+120
なんとなく要求仕様
こんな感じの要求仕様で〇×ゲーム化すると
基本定石5000≒√(log↓10↑2.29e+170)*2*log↓10↑2.29e+170
√(log↓10↑1512)*2*log↓10↑1512=11.3
〇×ゲーム基本定石12棋譜くらいの要求仕様
その条件なら、完勝できそうだ
〇×ゲームは3棋譜あれば大丈夫そうだから
3/9=0.333棋譜
19路盤
0.333*361=120棋譜が中核の定石
補定石として4880棋譜
○×なら、まっさらの状態から対局を通じて学習しながら最終的に引き分けか人間が間違えれば勝つとこまでもってくようなのが見たいな。
学習状況をなんらかの目に見える形で表示しながらならなお良い。
合法な盤面数(対称なものも区別する)は正確に求められているが、170桁くらいになる
解析が完全解析を意味するならどのみち不可能
事実上人間に勝てるという意味ならもうほぼ終わっているんだろうけど
9路で天頂の碁とか使って上位候補4手くらいの分岐を全部読んでDB作って評価値が勝率20%切ったら打ち切りとかでやったらどこまでいけるんだろ?
日本ルール七路盤の最善が盤面8目になる可能性
白の最善手候補が完全な盲点で、まともに検証されていない
追記
中国ルール七路盤の場合は4.5子差のままです