探検
俺主催囲碁プログラミングコンテスト
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
NGNG 俺に勝てたら、賞金が出ます
237デフォルトの名無しさん
NGNG ネタにマジレスカコワルイ
238202
NGNG >>234
テレビと実況スレ見ながら、ちょくちょくこのスレを確認しているから(w
テレビと実況スレ見ながら、ちょくちょくこのスレを確認しているから(w
239202
NGNG240202
NGNG >>237
なんだかんだいって、楽しんでいる面もあるし
なんだかんだいって、楽しんでいる面もあるし
241デフォルトの名無しさん
NGNG 別に論破されたっていいじゃん>202
次回勝てばいいんだよ。
って、ココ何のスレ?
次回勝てばいいんだよ。
って、ココ何のスレ?
242デフォルトの名無しさん
NGNG >そう思っているんならはっきりと言ってくれればいいのに。
言語障害?
言語障害?
243202
NGNG >>241
囲碁プログラミングスレらしいけど(w
囲碁プログラミングスレらしいけど(w
244202
NGNG >>242
どうして?
どうして?
245デフォルトの名無しさん
NGNG 糞スレあげるなバカ
247デフォルトの名無しさん
NGNG おまえバカだろ?
どう読んでも、失礼な態度でせまって行ったのは
お前だと思うが。
最後に囲碁わかりませんと、ネタか?
なんでそんなに反応してるんだ?
やっぱり、コンプレックスか論破なのか?
どう読んでも、失礼な態度でせまって行ったのは
お前だと思うが。
最後に囲碁わかりませんと、ネタか?
なんでそんなに反応してるんだ?
やっぱり、コンプレックスか論破なのか?
249デフォルトの名無しさん
NGNG コンプレックスアゲ
250デフォルトの名無しさん
NGNG 202あげ
251デフォルトの名無しさん
NGNG だれか囲碁作ってみてよ
252デフォルトの名無しさん
NGNG 保守
253プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG 評価関数難し過ぎ
254デフォルトの名無しさん
NGNG 難しいというより、無理
255デフォルトの名無しさん
NGNG ようするに手を全部データベース化して1手づつ検索かければ必勝なんだろ。
全部の手をデータベースにすんのって何バイト必要なんだろ?
20*20*〜〜〜〜〜〜???わかんね
全部の手をデータベースにすんのって何バイト必要なんだろ?
20*20*〜〜〜〜〜〜???わかんね
256デフォルトの名無しさん
NGNG 3^(19*19) > 2^400 = 1024^390 > 10^(3*390)
単純計算すると
0が1000個くらいつくのかな?
単純計算すると
0が1000個くらいつくのかな?
257デフォルトの名無しさん
NGNG 囲碁ってルールの実装がめちゃムズ
コウが組み込めない。
コウが組み込めない。
258デフォルトの名無しさん
NGNG コウ:その手でバンメンが前と同じになったら打てない。
簡単そうだが。
簡単そうだが。
259デフォルトの名無しさん
NGNG 全部記録しておけばいいの?
それって非効率的な気がして。
それって非効率的な気がして。
260デフォルトの名無しさん
NGNG 石を置いた付近に限定して記憶すればいいのでは?
261デフォルトの名無しさん
NGNG 置いた石から上下左右一目の石の配置を記憶。
262minikat
NGNG コウは日本ルールとスーパーコウルールなら読む深さが違うし、
スピードアップにどんなアルゴリズムを使うかで議論があるでしょう。
AI囲碁のDavid Fotlandはシンプルコウルール判断(日本/韓国?)で充分といっていますが。
普通はHashで保存した局面をさかのぼり同一局面をチェックかな?
場所とか1個取ったとかの条件判断はこんがらがりますね。
スピードアップにどんなアルゴリズムを使うかで議論があるでしょう。
AI囲碁のDavid Fotlandはシンプルコウルール判断(日本/韓国?)で充分といっていますが。
普通はHashで保存した局面をさかのぼり同一局面をチェックかな?
場所とか1個取ったとかの条件判断はこんがらがりますね。
263デフォルトの名無しさん
NGNG >>262
ハッシュ関数はどんなのを使えばいいの?
ハッシュ関数はどんなのを使えばいいの?
264デフォルトの名無しさん
NGNG スピードアップにどんな意味があるんだろうか・・・・
265デフォルトの名無しさん
NGNG CPUの思考速度。
266デフォルトの名無しさん
NGNG 評価関数+αβ探索だけでやっても
ほとんど何も上手くいかない・・・
なんで?
評価関数がダメなのかな。
ほとんど何も上手くいかない・・・
なんで?
評価関数がダメなのかな。
267デフォルトの名無しさん
NGNG 日本ルールに限定するなら、
抜いた石が一個の時にコウフラグを立てて位置を記憶すればいいのでは。
抜いた石が一個の時にコウフラグを立てて位置を記憶すればいいのでは。
268デフォルトの名無しさん
NGNG http://www.google.co.jp/search?q=cache:m1o_rVb098YC:www.edu.ipc.hiroshima-cu.ac.jp/~f23006/SOTAGE/5/game.html+%CE%B1%CE%B2%E6%8E%A2%E7%B4%A2%E3%80%80%E5%9B%B2%E7%A2%81&hl=ja&ie=UTF-8
との事。
との事。
269デフォルトの名無しさん
NGNG 1.最初にランダム数(32ビットか64ビット)を決め、着手(整数)とXOR
で次局面、戻るにはまたXORで戻る。チェスプログラマーの良くやる手です。
コウフラグ等よりも早いでしょう。コンピュータ囲碁の初期にZobristが
提唱しました。英文が各所にあります。検索はzobrisy keyで。
ただし、私は使っていませんが。
局所的にαβ探索、例えば詰め碁をやれば1命令でも早くしたいものです。
局面記憶もXORで簡単ですね。グラフィックの重ね合わせと同じでしょう。
私も10数年ぶりに囲碁プログラム再開しましたのでよろしく。
で次局面、戻るにはまたXORで戻る。チェスプログラマーの良くやる手です。
コウフラグ等よりも早いでしょう。コンピュータ囲碁の初期にZobristが
提唱しました。英文が各所にあります。検索はzobrisy keyで。
ただし、私は使っていませんが。
局所的にαβ探索、例えば詰め碁をやれば1命令でも早くしたいものです。
局面記憶もXORで簡単ですね。グラフィックの重ね合わせと同じでしょう。
私も10数年ぶりに囲碁プログラム再開しましたのでよろしく。
270minikat
NGNG 269です。書き忘れましたが、5*5は完全読みで黒25目勝ちが読みきれたそうです。
次は7*7か?もちろん枝はうまく刈りますが。
次は7*7か?もちろん枝はうまく刈りますが。
271minikat
NGNG すみません。タイプミスです。
Zobristが正解。
Zobristが正解。
272デフォルトの名無しさん
NGNG >>269
なんかできそうな、できなさそうな。
少し考えないと理解できなさそうです。
何も打たれていない状態のハッシュコードをSとして、
次局面のハッシュコードS'を、打たれた手をAとして
S' = S xor A
とするわけですね。
でも、石の配置が同じ局面でも
異なったハッシュコードを持ちそうな気がするのですが、
どうでしょうか?
石が一度も取られなければ、
S→A→S'→A'→S''
S''=S xor A xor A'=S xor A' xor A
という事は理解できますが。
なんかできそうな、できなさそうな。
少し考えないと理解できなさそうです。
何も打たれていない状態のハッシュコードをSとして、
次局面のハッシュコードS'を、打たれた手をAとして
S' = S xor A
とするわけですね。
でも、石の配置が同じ局面でも
異なったハッシュコードを持ちそうな気がするのですが、
どうでしょうか?
石が一度も取られなければ、
S→A→S'→A'→S''
S''=S xor A xor A'=S xor A' xor A
という事は理解できますが。
273minikat
NGNG 自分は使っていないが、コードの衝突は起こらないはず。
同一ゲームなら同じコードになります。あくまでそのゲーム
のチェック用ということで、新たなゲームでは最初の乱数が違うから
コードももちろん違う。3コウでも6手さかのぼるだけかな?
とにかくコウの場所、フラグ等は先読みからの手戻りで単純化できないから
不利と思います。
ボクもルールは自殺手などややこしいので日本ルールのみ考えています。
それから配列は1次元がたやすいですね。
同一ゲームなら同じコードになります。あくまでそのゲーム
のチェック用ということで、新たなゲームでは最初の乱数が違うから
コードももちろん違う。3コウでも6手さかのぼるだけかな?
とにかくコウの場所、フラグ等は先読みからの手戻りで単純化できないから
不利と思います。
ボクもルールは自殺手などややこしいので日本ルールのみ考えています。
それから配列は1次元がたやすいですね。
274デフォルトの名無しさん
NGNG >>273
とりあえず勘違いしてるかも。
そのやり方で作るのはハッシュコード。
使い方は、
ある時点までの局面をすべて保存しておく際に
ハッシュコードで区別しながら保存する。
history[board.getHashcode()%HASHSIZE].add(board)
で、次の一手を指した後の局面のハッシュコードを計算して
そこの配列?の中に同一局面があるかどうかを調べる。
あれば同型反復禁止で、そこには置けない。
xorは a xor b xor c.... = b xor a xor c....
なので
おそらく
石を取り除く時もxorをするのだと思う。
そうするると
同じ盤面であれば同じハッシュコードが作れる。
まあ、要するに
int getHashcode(int board[][]){
int start=0;
for(int i=0;i<board.length;i++){
for(int j=0;j<board[i].length;j++){
if(board[i][j]==black)start=start xor (i*j);
else if(board[i][j]==white)start = start xor (-i*j);
}
}
return start;
}
って事なんだけどね。
i*jの部分は工夫して作らないとだめだけど。
とりあえず勘違いしてるかも。
そのやり方で作るのはハッシュコード。
使い方は、
ある時点までの局面をすべて保存しておく際に
ハッシュコードで区別しながら保存する。
history[board.getHashcode()%HASHSIZE].add(board)
で、次の一手を指した後の局面のハッシュコードを計算して
そこの配列?の中に同一局面があるかどうかを調べる。
あれば同型反復禁止で、そこには置けない。
xorは a xor b xor c.... = b xor a xor c....
なので
おそらく
石を取り除く時もxorをするのだと思う。
そうするると
同じ盤面であれば同じハッシュコードが作れる。
まあ、要するに
int getHashcode(int board[][]){
int start=0;
for(int i=0;i<board.length;i++){
for(int j=0;j<board[i].length;j++){
if(board[i][j]==black)start=start xor (i*j);
else if(board[i][j]==white)start = start xor (-i*j);
}
}
return start;
}
って事なんだけどね。
i*jの部分は工夫して作らないとだめだけど。
275minikat
NGNG コードと書いてあるので別に勘違いはしていません、と思います。
その後比較するのは当然。焦点はコードの出し方。
テーブルの保存方法やルールで後戻りが違ってくるのはプログラムで
変わる。言いたいのは別にXOR使わなくても局面を表現できる
整数値が違えばいいということ。もっといい方法があるかもね。
自分も最初は1個取ったとか場所がどうとか考えたがこれが最速で
簡単。自分はパターン照合の関係でつかっていない。
XORといえば 手番=手番 XOR 3ででる。黒1白2の場合。
手番=3−手番でも可だが。
もっといろいろ話しましょう。
その後比較するのは当然。焦点はコードの出し方。
テーブルの保存方法やルールで後戻りが違ってくるのはプログラムで
変わる。言いたいのは別にXOR使わなくても局面を表現できる
整数値が違えばいいということ。もっといい方法があるかもね。
自分も最初は1個取ったとか場所がどうとか考えたがこれが最速で
簡単。自分はパターン照合の関係でつかっていない。
XORといえば 手番=手番 XOR 3ででる。黒1白2の場合。
手番=3−手番でも可だが。
もっといろいろ話しましょう。
276minikat
NGNG 追加です。
274のコ−ドで気が付いたがgetHashcodeは盤面を全走査
していますが、現局面と現着手のXORだけでいいのでは?
最初に配列の位置に乱数を割り当てて1手(位置、石)のみXORをとる。
もう一度着手(位置、石)XORで前局面に戻る。
アゲ石処理でXOR消去はもちろん必要だが。XOR 1命令で再走査がいらないところに
値打ちがあるように思います。
コード書いていないだけに間違っていたらスマン。
274のコ−ドで気が付いたがgetHashcodeは盤面を全走査
していますが、現局面と現着手のXORだけでいいのでは?
最初に配列の位置に乱数を割り当てて1手(位置、石)のみXORをとる。
もう一度着手(位置、石)XORで前局面に戻る。
アゲ石処理でXOR消去はもちろん必要だが。XOR 1命令で再走査がいらないところに
値打ちがあるように思います。
コード書いていないだけに間違っていたらスマン。
277デフォルトの名無しさん
NGNG >コードと書いてあるので別に勘違いはしていません、と思います。
了解
>>274のコ−ドで気が付いたがgetHashcodeは盤面を全走査
結局のところは全走査する事で実現できる=手順によらない
という事を言いたかった。
実際は、
すべての局面を記録していくわけだけど、
その際、同時にhashcodeを生成してしまえばいいわけだよね。
石がとられたら、その分もxorで。
自分のは今のところ速度にこだわっていないので
これを実装するかどうかは未定かな。
今、考えてる事は、
探索の打ち切りとか、もっと深く読むとか。
了解
>>274のコ−ドで気が付いたがgetHashcodeは盤面を全走査
結局のところは全走査する事で実現できる=手順によらない
という事を言いたかった。
実際は、
すべての局面を記録していくわけだけど、
その際、同時にhashcodeを生成してしまえばいいわけだよね。
石がとられたら、その分もxorで。
自分のは今のところ速度にこだわっていないので
これを実装するかどうかは未定かな。
今、考えてる事は、
探索の打ち切りとか、もっと深く読むとか。
278デフォルトの名無しさん
NGNG 囲碁のプログラムをやっとの事で完成させて
19*19で動かしてみると
その大きさに愕然とする。
そして、ほとんどの人がやめていく。
19*19で動かしてみると
その大きさに愕然とする。
そして、ほとんどの人がやめていく。
279デフォルトの名無しさん
NGNG 局地戦ならともかく、布石とかは相当厄介だと思われ。
280デフォルトの名無しさん
NGNG 布石ぐらいだったらデータベースで何とかできそうな気はするけど。
やっぱり死活でしょう。
攻め合いとかコウとか。
やっぱり死活でしょう。
攻め合いとかコウとか。
281デフォルトの名無しさん
NGNG 別の隅を評価しながらの布石は、結構厄介だった。
282デフォルトの名無しさん
NGNG283278
NGNG 定石データベース+αβ探索だけで囲碁を作って見て思ったんだけど、
人間の脳ってなんであんなにすごいんだ?
人間の脳ってなんであんなにすごいんだ?
284デフォルトの名無しさん
NGNG 囲碁は特に画面認識とか、人間の脳に向いている作業が多いからね。
しかし、αβということはまともに探索してるの?
それはすごいね。
しかし、αβということはまともに探索してるの?
それはすごいね。
285デフォルトの名無しさん
NGNG 学習して、自ら改善するっていうプログラムじゃないんだよねぇ。
なら、実際に打ってみて足りない点を逐一カバーしていくってのが
いいと思うよ。
つーわけで、遊ばせてくださイ。ちゃんと報告するから。
よろしく。
なら、実際に打ってみて足りない点を逐一カバーしていくってのが
いいと思うよ。
つーわけで、遊ばせてくださイ。ちゃんと報告するから。
よろしく。
286278
NGNG 2chネラーだという事がばれると
なんか恥ずかしいのでそれは勘弁して>>285
それに、弱すぎてやっても意味ない。
αβに関してだけど、現状の評価関数だとほとんどやっても意味ないかも。
コンピューター同士で対戦させて
どのくらい読みが的中するのかを調べたところ
打つ場所の残りが10箇所くらいになって
当たりだすくらい。
それに19*19だと
最初の幅優先探索がえらく時間がかかる。
それをふまえて、自分がどうやっているのか
検証してみたんだけど・・・・
なんか恥ずかしいのでそれは勘弁して>>285
それに、弱すぎてやっても意味ない。
αβに関してだけど、現状の評価関数だとほとんどやっても意味ないかも。
コンピューター同士で対戦させて
どのくらい読みが的中するのかを調べたところ
打つ場所の残りが10箇所くらいになって
当たりだすくらい。
それに19*19だと
最初の幅優先探索がえらく時間がかかる。
それをふまえて、自分がどうやっているのか
検証してみたんだけど・・・・
287デフォルトの名無しさん
NGNG 無料の囲碁のフレームワークってないですかねぇ。
ルールを組み込むのがすごく大変で。
ルールを組み込むのがすごく大変で。
288デフォルトの名無しさん
NGNG ここを見てみたら。
http://www.inventivity.com/OpenGo/
http://www.inventivity.com/OpenGo/
289デフォルトの名無しさん
NGNG290minikat
NGNG ルールは狭義には、コウと自殺手判断ぐらい。厳密には終局計算を含む。
昔アップルIIの囲碁ソフトはウッテガエシが打てなかったよ。
返品しようとおもったがそれ以外なかった。
どのルールも1石の自殺手はできないがSSTルールやニュージーランドルール
は認めている。
日本ルールではセキは地にならないが、中国ルールではなる。
とにかく市販ソフトでもセキ判断は完全でないのでルールが完璧とは
いえないのでこちらまかせ。
でもルール作りのハードルが高いならシチョウ、ゲタなんてもっと大変よ。
がんばってください。
昔アップルIIの囲碁ソフトはウッテガエシが打てなかったよ。
返品しようとおもったがそれ以外なかった。
どのルールも1石の自殺手はできないがSSTルールやニュージーランドルール
は認めている。
日本ルールではセキは地にならないが、中国ルールではなる。
とにかく市販ソフトでもセキ判断は完全でないのでルールが完璧とは
いえないのでこちらまかせ。
でもルール作りのハードルが高いならシチョウ、ゲタなんてもっと大変よ。
がんばってください。
291minikat
NGNG >>どのルールも1石の自殺手はできないがSSTルールやニュージーランドルール
は認めている。
スマン。表現がおかしい。
多石の自殺手を認めているという意味。
は認めている。
スマン。表現がおかしい。
多石の自殺手を認めているという意味。
292デフォルトの名無しさん
NGNG ルールなんか 日本ルールに 決まってるだろ
293デフォルトの名無しさん
NGNG とりあえず五路地盤のを作ってみたら?
294ニュージーラン土人
NGNG ジャップ消すゾ
295デフォルトの名無しさん
NGNG もう少しにぎやかにならないかな。
296デフォルトの名無しさん
NGNG 着手生成アルゴリズムってどんなのがあるの?
297デフォルトの名無しさん
NGNG パターンが楽なんじゃないの?
こんな形は1間で、これは2間、ケイマ、とか色々。
こんな形は1間で、これは2間、ケイマ、とか色々。
298デフォルトの名無しさん
NGNG 候補手列挙を学習する方法ってない?
例えば、パターンだったら
探索した結果良いものを集めてデータベース化していくと。
でも、パターンだとマッチングが大変じゃない?
ある点が候補としてあげられるかは
その点の付近のパターンを、データベースで比較しなくてはならない。
ハッシュを使えばいいのかな。
例えば、パターンだったら
探索した結果良いものを集めてデータベース化していくと。
でも、パターンだとマッチングが大変じゃない?
ある点が候補としてあげられるかは
その点の付近のパターンを、データベースで比較しなくてはならない。
ハッシュを使えばいいのかな。
299デフォルトの名無しさん
NGNG 学習だったらプロ棋士の棋譜を使えばいいんじゃない?
たしか公開されてたはずだしね。
パターンマッチングの高速化はどうするんだろうね。
データベースをハッシュでまとめてしまえば高速で可能なような気もする。
完全一致から似ている形まで、とかなると難しそうだけど。
あと、単純なパターンだとうまくいかないかもね。
この石はシチョウで取られる、とか、ダメが2以上ある、とか
色々な情報をパターンの中に組み込む必要があるかも。
ここに打った場合の手順とかも。
たしか公開されてたはずだしね。
パターンマッチングの高速化はどうするんだろうね。
データベースをハッシュでまとめてしまえば高速で可能なような気もする。
完全一致から似ている形まで、とかなると難しそうだけど。
あと、単純なパターンだとうまくいかないかもね。
この石はシチョウで取られる、とか、ダメが2以上ある、とか
色々な情報をパターンの中に組み込む必要があるかも。
ここに打った場合の手順とかも。
300デフォルトの名無しさん
NGNG データがあっても、アルゴリズムがないとね(藁
似ている物まで探してくるのは無理だと思うなぁ。
似ているの基準から定義しないとわからんけど。
>あと、単純なパターンだとうまくいかないかもね。
候補を列挙するだけだからいいんじゃない?
あとは、それを探索するだけ。
似ている物まで探してくるのは無理だと思うなぁ。
似ているの基準から定義しないとわからんけど。
>あと、単純なパターンだとうまくいかないかもね。
候補を列挙するだけだからいいんじゃない?
あとは、それを探索するだけ。
301minikat
NGNG ハッシュよりも実プログラムでは2分木探索が速いという報告もありムヅ。
普通に照合するよりは何十倍か早いだろうけど。
パターンは骨格と肉付けがあり、20年前の同級生で様子が違ってもある程度
認識できるのと似ている。黒、白、空点と、黒白空点どちらでもいいというのが厄介。
rotationで8種類、反転で16種類ある。広さの問題もあるなあ。
人間は碁をやって入ればますます、パターン認識は早くなるが、機械は照合に
ドンドン時間が食われる。ここに根本的な問題ありだろ。
AI囲碁で2000くらい。最初手入力してたらしいが途中からBITMAPにして
グラフィックエディターで入力したらしい。うまいね。
普通に照合するよりは何十倍か早いだろうけど。
パターンは骨格と肉付けがあり、20年前の同級生で様子が違ってもある程度
認識できるのと似ている。黒、白、空点と、黒白空点どちらでもいいというのが厄介。
rotationで8種類、反転で16種類ある。広さの問題もあるなあ。
人間は碁をやって入ればますます、パターン認識は早くなるが、機械は照合に
ドンドン時間が食われる。ここに根本的な問題ありだろ。
AI囲碁で2000くらい。最初手入力してたらしいが途中からBITMAPにして
グラフィックエディターで入力したらしい。うまいね。
302デフォルトの名無しさん
NGNG 学習のアルゴリズムかぁ。
分からんね(w
完全一致で出現した回数とかなら簡単だけど。
大量の棋譜から学習で楽をしよう、というのは誰もが誘われる麻薬みたいな
もの?だが実際は少数のパターンを人間が自分で判断して打ち込んだほうが
精度の高いものが出来そうな気もする。
何より、プログラムがその手をなぜ打ったかを推理できるからね。
分からんね(w
完全一致で出現した回数とかなら簡単だけど。
大量の棋譜から学習で楽をしよう、というのは誰もが誘われる麻薬みたいな
もの?だが実際は少数のパターンを人間が自分で判断して打ち込んだほうが
精度の高いものが出来そうな気もする。
何より、プログラムがその手をなぜ打ったかを推理できるからね。
303デフォルトの名無しさん
NGNG >ハッシュよりも実プログラムでは2分木探索が速いという報告もありムヅ。
2分木にする時のキーとして、何を使うの?
それがハッシュコードなら
ハッシュテーブルの大きさによると思うよ。
似てる物を集めてくるのはちょっとつらいよね。
>だが実際は少数のパターンを人間が自分で判断して打ち込んだほうが
>精度の高いものが出来そうな気もする。
おそらくそうだと思う。
だから、外からのデータを与えるんじゃなくて
自分でデータを生成検証して、候補手を生成するアルゴリズムを
学習するようなものがいいね。
2分木にする時のキーとして、何を使うの?
それがハッシュコードなら
ハッシュテーブルの大きさによると思うよ。
似てる物を集めてくるのはちょっとつらいよね。
>だが実際は少数のパターンを人間が自分で判断して打ち込んだほうが
>精度の高いものが出来そうな気もする。
おそらくそうだと思う。
だから、外からのデータを与えるんじゃなくて
自分でデータを生成検証して、候補手を生成するアルゴリズムを
学習するようなものがいいね。
304デフォルトの名無しさん
NGNG あらかじめ、全ての手を計算しておいて、データベース化しておく。
データベースの構築には、膨大な計算力とディスクスペースが必要なので、
SETIのように分散処理で解決。
データベースができた後は、最善手のみが打てる。
一度プロジェクト起こしてみては?
それなりに金になると思うぞ。
あと、首謀者は地位と名誉も得られる。
データベースの構築には、膨大な計算力とディスクスペースが必要なので、
SETIのように分散処理で解決。
データベースができた後は、最善手のみが打てる。
一度プロジェクト起こしてみては?
それなりに金になると思うぞ。
あと、首謀者は地位と名誉も得られる。
305デフォルトの名無しさん
NGNG もし、それで碁の必勝法がみつかれば、歴史に名が残るね。
少ない資金で多大な効果が得られる、数少ないプロジェクト。
早い者勝ちだぞ。
少ない資金で多大な効果が得られる、数少ないプロジェクト。
早い者勝ちだぞ。
306デフォルトの名無しさん
NGNG 相手が知ってたら意味ないじゃ〜ん
307デフォルトの名無しさん
NGNG お前ら・・・囲碁の可能な局面の数は
3^19^2 = 10^230 にもなるんだぞっと。
3^19^2 = 10^230 にもなるんだぞっと。
308デフォルトの名無しさん
NGNG 完全解析したらゲーム自体消滅
309デフォルトの名無しさん
NGNG 3^19^2 = 1350851717672992089 ≒ 10^18
1千万台(10^7台)のコンピュータを使えば、10^11回の演算で済む。
1台のコンピュータが1秒に3170回の演算が行えるとして、10年間。
現行の性能では難しいが、将来は可能になるかもしれない。
可能になった時点で、誰が先に演算を終えるか?
先に演算を始めた者に決まってる。
1千万台(10^7台)のコンピュータを使えば、10^11回の演算で済む。
1台のコンピュータが1秒に3170回の演算が行えるとして、10年間。
現行の性能では難しいが、将来は可能になるかもしれない。
可能になった時点で、誰が先に演算を終えるか?
先に演算を始めた者に決まってる。
310デフォルトの名無しさん
NGNG オセロならもっと早く演算が終了する。
早い者勝ちだぞ。
ゲームを消滅させろ。
早い者勝ちだぞ。
ゲームを消滅させろ。
311minikat
NGNG >>2分木にする時のキーとして、何を使うの?
パターンをbit化すればいいのと違うかな?
>>ハッシュテーブルの大きさによると思うよ。
そうだね。やって見ないとわからない。ハッシュの計算や衝突の際の探索も時間がかかるし。
でも2,3千のパターンではアマ初段には間に合わない。
瀬越の手筋辞典や官子譜見たらとんでもない筋やパターンがでている。
NHK囲碁の解説聞いていても「これは筋ですねえ」といわれても、知らない、わからない
のが結構多い。筋の定義もムズだが、パターンとも共通性があるし。
コスミ自体は1種類しかないが、周りの状況でヨセからワタリ等等役目はゴマンと
ある。要するにパターンは目的を入れないと絵に描いたモチ。
パターンをbit化すればいいのと違うかな?
>>ハッシュテーブルの大きさによると思うよ。
そうだね。やって見ないとわからない。ハッシュの計算や衝突の際の探索も時間がかかるし。
でも2,3千のパターンではアマ初段には間に合わない。
瀬越の手筋辞典や官子譜見たらとんでもない筋やパターンがでている。
NHK囲碁の解説聞いていても「これは筋ですねえ」といわれても、知らない、わからない
のが結構多い。筋の定義もムズだが、パターンとも共通性があるし。
コスミ自体は1種類しかないが、周りの状況でヨセからワタリ等等役目はゴマンと
ある。要するにパターンは目的を入れないと絵に描いたモチ。
312デフォルトの名無しさん
NGNG 分散処理で計算する方法は考えたんだけどさ、
黒(自分)が最善手を常に打つとして、
白(敵)が最善かどうかわからない手を打つとすると
19*19では
(19*19-1)*(19*19-3)*(19*19-5)....となる。
これを300*300*300......(19*19-100)
と近似しても激しい値になる。
コレをどこへ保存すればいいのだろうか?
地球上のコンピューターをすべて集めてきても
保存できない。
>3^19^2 = 1350851717672992089 ≒ 10^18
コレ間違ってるよ。
3^(19*19) > 2^400
log10 2^10=3
log10 2^400 =120
まあ120桁はあるな。
黒(自分)が最善手を常に打つとして、
白(敵)が最善かどうかわからない手を打つとすると
19*19では
(19*19-1)*(19*19-3)*(19*19-5)....となる。
これを300*300*300......(19*19-100)
と近似しても激しい値になる。
コレをどこへ保存すればいいのだろうか?
地球上のコンピューターをすべて集めてきても
保存できない。
>3^19^2 = 1350851717672992089 ≒ 10^18
コレ間違ってるよ。
3^(19*19) > 2^400
log10 2^10=3
log10 2^400 =120
まあ120桁はあるな。
313デフォルトの名無しさん
NGNG 爺さんの楽しみが無くなるなあ〜
314デフォルトの名無しさん
NGNG 賞金 100円
みんな ガンバレ〜〜
みんな ガンバレ〜〜
315デフォルトの名無しさん
NGNG >>311
候補手といっても、いろいろなレベルがあると思う。
例えば、どの手を選んでも悪手にはならない
候補手の列挙から
どの手を選んでも良い手であるような
候補手の列挙から・・・
あるいは攻撃的な手だけを列挙できるようになるのも
有効だし
守備的な手だけを列挙できるようになるのも有効だね。
候補手が列挙できたら、あとは探索するのみ。
候補手といっても、いろいろなレベルがあると思う。
例えば、どの手を選んでも悪手にはならない
候補手の列挙から
どの手を選んでも良い手であるような
候補手の列挙から・・・
あるいは攻撃的な手だけを列挙できるようになるのも
有効だし
守備的な手だけを列挙できるようになるのも有効だね。
候補手が列挙できたら、あとは探索するのみ。
316デフォルトの名無しさん
NGNG 今考えてるのは
精度の粗い候補手列挙システム
(つまり、悪手は切り捨てるけど良手は絶対に切り捨ててはいけない。
判定不能の物は残す)
と
高機能なαβサーチの組み合わせでの
アルゴリズムを作ろうと思ってる。
候補手列挙は、やっぱり周辺パターンのデータベースしか
ないのかな。
候補手列挙で一つ思いついたのは、
応手作成アルゴリズム。
相手の手を、どんな手なのか予測分類して
(2つに分類するなら、攻撃的か守備的か)
候補手を列挙する。
まあ、まだアイディアを練ってる段階だけど
精度の粗い候補手列挙システム
(つまり、悪手は切り捨てるけど良手は絶対に切り捨ててはいけない。
判定不能の物は残す)
と
高機能なαβサーチの組み合わせでの
アルゴリズムを作ろうと思ってる。
候補手列挙は、やっぱり周辺パターンのデータベースしか
ないのかな。
候補手列挙で一つ思いついたのは、
応手作成アルゴリズム。
相手の手を、どんな手なのか予測分類して
(2つに分類するなら、攻撃的か守備的か)
候補手を列挙する。
まあ、まだアイディアを練ってる段階だけど
317デフォルトの名無しさん
NGNG 絶妙手をも切り落とさないシステムだと大変かもね。
そういう手は弱いレベルには悪手だから。
プログラムの棋力にふさわしい普通の手が10手から20手程度抽出できれば
十分じゃないかな。
囲碁はまだそれほど深く読めないので(シチョウは除いて)
探索手法自体の重要性は低いと思われ。
やはり最大の難関は評価関数かと。
地の判定から、石の連絡、強弱、空間の支配力、
この辺を適当に数値化しないといけないからね。
そういう手は弱いレベルには悪手だから。
プログラムの棋力にふさわしい普通の手が10手から20手程度抽出できれば
十分じゃないかな。
囲碁はまだそれほど深く読めないので(シチョウは除いて)
探索手法自体の重要性は低いと思われ。
やはり最大の難関は評価関数かと。
地の判定から、石の連絡、強弱、空間の支配力、
この辺を適当に数値化しないといけないからね。
318デフォルトの名無しさん
NGNG >>317
俺は(中盤の)評価関数の作成が無理だと思うんだよね。
評価関数の作成が将棋と同程度の難しさなら、
現状のルールベースの候補手生成アルゴリズムと組み合わせれば
きっと将棋と同程度の強さになってると思うんだ。
探索空間の広さが同程度になると思うから。
囲碁は、終盤に近づくほど評価関数が正確な値を示すようになってくる(気がする)が
序盤では定石に頼らないとまったく打てない(はず)。
それは定石データベースを持たない囲碁プログラムを作れば
おのずとわかると思う。
という事は、評価関数の精度をあげるには深く読んでみる事が
一つの方法であると思う。
そこで、いかに有効な手を深く読むかが重要だと思う。
評価関数が曖昧と仮定している以上、αβサーチは使えない。
じゃあ、どうするかというと、深く読む。
どうやって幅を絞るかというと・・・
アイディアはあるけど今は暖め中という事で。
>そういう手は弱いレベルには悪手だから。
絶対評価と相対評価がメチャクチャになってるかもね。
人間にとって一見悪手にみえるが良い手である手を妙手という?から
それがコンピューターにとって妙手かといえば、違うと思う。
目指すは”最強”なのでw
俺は(中盤の)評価関数の作成が無理だと思うんだよね。
評価関数の作成が将棋と同程度の難しさなら、
現状のルールベースの候補手生成アルゴリズムと組み合わせれば
きっと将棋と同程度の強さになってると思うんだ。
探索空間の広さが同程度になると思うから。
囲碁は、終盤に近づくほど評価関数が正確な値を示すようになってくる(気がする)が
序盤では定石に頼らないとまったく打てない(はず)。
それは定石データベースを持たない囲碁プログラムを作れば
おのずとわかると思う。
という事は、評価関数の精度をあげるには深く読んでみる事が
一つの方法であると思う。
そこで、いかに有効な手を深く読むかが重要だと思う。
評価関数が曖昧と仮定している以上、αβサーチは使えない。
じゃあ、どうするかというと、深く読む。
どうやって幅を絞るかというと・・・
アイディアはあるけど今は暖め中という事で。
>そういう手は弱いレベルには悪手だから。
絶対評価と相対評価がメチャクチャになってるかもね。
人間にとって一見悪手にみえるが良い手である手を妙手という?から
それがコンピューターにとって妙手かといえば、違うと思う。
目指すは”最強”なのでw
319minikat
NGNG 例えば、10年くらい前の棋道で趙治勲の読みの内容に関するする連載があったが、
プロでも驚くところまで読んでいる。多分、プロの頭には過去の膨大な筋や
パターンと、ものすごい読む力が備わっている。全部の可能着手数なんて考える必要ないんだ。
反面、故岩本九段のようにパラパラ打って碁にする棋風もあるが。それは一言で言えば、バランス。
理論でもいいから趙さんの読みの深さまで深化できるアルゴリズムでなければ
先の見通しは暗い。
評価関数でいえば、人間は盤面計算や評価を毎着手やっていないでしょ。
一段落したところでやる。それまでは手順をつくすか、ある死活なら死活に集中する。
その意味でプログラムは人間を徹底的に模倣し、攻めあいや終盤計算等の得意分野で人間を追い越さ
なければいつまでたっても初心者レベル。と思う。
それから今のプログラムはエントロピーが低い。着手に多様性がないからプログラムは
かならずこう来るんだ。とか読まれてしまう。ノゾキにいつもツグぐようなものやね。
プロでも道策にケイマにカケられて安井家はいつも下うけでこなされる。
道策の深読みと多様性についていけない。この2点をどう表現するか。
プロでも驚くところまで読んでいる。多分、プロの頭には過去の膨大な筋や
パターンと、ものすごい読む力が備わっている。全部の可能着手数なんて考える必要ないんだ。
反面、故岩本九段のようにパラパラ打って碁にする棋風もあるが。それは一言で言えば、バランス。
理論でもいいから趙さんの読みの深さまで深化できるアルゴリズムでなければ
先の見通しは暗い。
評価関数でいえば、人間は盤面計算や評価を毎着手やっていないでしょ。
一段落したところでやる。それまでは手順をつくすか、ある死活なら死活に集中する。
その意味でプログラムは人間を徹底的に模倣し、攻めあいや終盤計算等の得意分野で人間を追い越さ
なければいつまでたっても初心者レベル。と思う。
それから今のプログラムはエントロピーが低い。着手に多様性がないからプログラムは
かならずこう来るんだ。とか読まれてしまう。ノゾキにいつもツグぐようなものやね。
プロでも道策にケイマにカケられて安井家はいつも下うけでこなされる。
道策の深読みと多様性についていけない。この2点をどう表現するか。
320デフォルトの名無しさん
NGNG 多様性に関しては学習なのかな。
負けたゲームから何かを学ぶ。
少なくても、相手が同じ事をしてきたら
それに対して何か別の策をこうじるようにならないと。
まあ、それができるなら
永遠とコンピューター同士で学習すると
最強になってしまうんだけど。
負けたゲームから何かを学ぶ。
少なくても、相手が同じ事をしてきたら
それに対して何か別の策をこうじるようにならないと。
まあ、それができるなら
永遠とコンピューター同士で学習すると
最強になってしまうんだけど。
321デフォルトの名無しさん
NGNG 深く読むかぁ。
何手ぐらい読めば妥当なんだろうね。
>>319さんの言うように当然の手順、というのを抽出できれば
それに沿って読みさえすれば5手、10手、20手先の局面でも
正確に読めそうな気もする。
この場合、地合でなく、戦いを重視したプログラム、ということになるのかな。
何手ぐらい読めば妥当なんだろうね。
>>319さんの言うように当然の手順、というのを抽出できれば
それに沿って読みさえすれば5手、10手、20手先の局面でも
正確に読めそうな気もする。
この場合、地合でなく、戦いを重視したプログラム、ということになるのかな。
322デフォルトの名無しさん
NGNG 実際に人間は何手くらい読んでるのかな?
俺は囲碁初心者だけど
ぱっとみで候補が5くらいあがって
そして7手先くらいは読んでるね。
確かに、読みっていうのは
そこへ打っても大丈夫かといった
チェックをしているような気がする。
つまり、感覚だけである種の最善手がはじき出されている。
俺は囲碁初心者だけど
ぱっとみで候補が5くらいあがって
そして7手先くらいは読んでるね。
確かに、読みっていうのは
そこへ打っても大丈夫かといった
チェックをしているような気がする。
つまり、感覚だけである種の最善手がはじき出されている。
323デフォルトの名無しさん
NGNG >この場合、地合でなく、戦いを重視したプログラム、ということになるのかな。
それは、当然の手順=最適な手順がなんなのかによりそう。
それは、当然の手順=最適な手順がなんなのかによりそう。
324デフォルトの名無しさん
NGNG 将棋や囲碁では、状態をイメージ(画像)として捕らえるような作業を
人間は行っているだろうね。陣形とか、血合とか。
以前ちょっと考えたことがあるのが、上記の考えを元に、
盤面を白黒で2分割、4分割・・・16分割くらいして、
(分割はそれぞれが優勢な部分を中心とする)
そのそれぞれのブロックで、細かい判定を行うというもの。
でも、すでに他の人が同じような研究を行っていたという罠。
人間は行っているだろうね。陣形とか、血合とか。
以前ちょっと考えたことがあるのが、上記の考えを元に、
盤面を白黒で2分割、4分割・・・16分割くらいして、
(分割はそれぞれが優勢な部分を中心とする)
そのそれぞれのブロックで、細かい判定を行うというもの。
でも、すでに他の人が同じような研究を行っていたという罠。
325デフォルトの名無しさん
NGNG >>324
白黒で・・・ってどういう意味ですか?
これだけだと実装の仕方だけでもいろいろあると思うから
他の人が研究してようが問題ないのでは?
たとえば、優勢な部分を判定するアルゴリズムが大きく効いてそうだし
細かい判定で何を判定するのかによっても全然違うものが
でき上がると思うよ。
俺には作れなさそうだ。
白黒で・・・ってどういう意味ですか?
これだけだと実装の仕方だけでもいろいろあると思うから
他の人が研究してようが問題ないのでは?
たとえば、優勢な部分を判定するアルゴリズムが大きく効いてそうだし
細かい判定で何を判定するのかによっても全然違うものが
でき上がると思うよ。
俺には作れなさそうだ。
326デフォルトの名無しさん
NGNGいい加減な事を書くなよ
327名無しさんに接続中…
NGNG 囲碁の場合、アバウトなイメージだから難しい。
将棋の場合は、駒がぶつかったら「取る」ことを考えるし
王手をかけられたら「避ける」しかないので必然の手がある
囲碁の場合は1マスぐらいずらして打っても構わないので
これをプログラミングするのは難しいだろうな
将棋の場合は、駒がぶつかったら「取る」ことを考えるし
王手をかけられたら「避ける」しかないので必然の手がある
囲碁の場合は1マスぐらいずらして打っても構わないので
これをプログラミングするのは難しいだろうな
328デフォルトの名無しさん
NGNG 学習といえば、ニューラルネット使った奴が
けっこういい成績残したね。
俺にはサパーリなんですが。
けっこういい成績残したね。
俺にはサパーリなんですが。
329デフォルトの名無しさん
NGNG330デフォルトの名無しさん
NGNG331
NGNG コンクール・コンテスト総合掲示板
http://jbbs.shitaraba.com/music/3054/
http://jbbs.shitaraba.com/music/3054/
3321
NGNG 結局、俺に勝てる囲碁プログラムを作れた奴はいないのか。
2chってバカばっか。
2chってバカばっか。
333デフォルトの名無しさん
NGNG334デフォルトの名無しさん
NGNG 厳しい事言うね。
プログラムの中でも囲碁は難しいほうだよ。
日本中探し回っても、囲碁の思考の部分をプログラムできる人は
数えるほどしかいないと思うけど。
プログラムの中でも囲碁は難しいほうだよ。
日本中探し回っても、囲碁の思考の部分をプログラムできる人は
数えるほどしかいないと思うけど。
335デフォルトの名無しさん
NGNG だいたいまだ300レスじゃねーか。
336デフォルトの名無しさん
NGNG 囲碁の評価関数の話をしませんか?
思うに、評価関数自体で再帰的に探索するような仕組みを作れば
いいような気がする。
石の死活はこの石を殺すには先にこの石を殺して、その前に・・・と
延々続いていくので、この部分を上手に再帰的に処理できれば
石の死活に関してはかなり強くなるのでは。
とか書いてみる。もちろんアイデアだけで実現できてません。
思うに、評価関数自体で再帰的に探索するような仕組みを作れば
いいような気がする。
石の死活はこの石を殺すには先にこの石を殺して、その前に・・・と
延々続いていくので、この部分を上手に再帰的に処理できれば
石の死活に関してはかなり強くなるのでは。
とか書いてみる。もちろんアイデアだけで実現できてません。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★2 [少考さん★]
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 ★2 [ぐれ★]
- ベトナムのバイク「脱ガソリン」、シェア8割のホンダに打撃…政府が電動二輪普及を主導 [煮卵★]
- “ひとり焼肉”でおなじみ「焼肉ライク」が閉店ラッシュ。なぜ「コスパが悪い」と言われてしまうのか [Gecko★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★13 [蚤の市★]
- 「SCORE」←これなんて読むんや?🙋🏡
- 【高市朗報】鈴木大臣「嫌儲のデマに騙されないで。お米券の使い勝手は悪くない。卵味噌醤油も買えます。現金と変わりません」 [517459952]
- 【悲報】巨人阿部「秋季キャンプでエンドランの練習をしまくった。1回も成功しなかった。」
- 女性さん「クソオス!」←これをリアルで言えない理由
- ちんぽこ
- お前ら「グノーシア」ってアニメ知ってるか?どちゃクソ面白いぞ!!!
