俺主催囲碁プログラミングコンテスト

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
俺に勝てたら、賞金が出ます
NGNG
そのスレの1、人間を相手にしたことないみたいだけど それで初段って・・
NGNG
>>199
>レポートは面白いものがあれば。
>というか、どういうのに興味があるの?
単純に、「強い囲碁プログラムの作り方」が知りたいだけです。
自已学習させる仕組みなんかも面白いのがあれば。
逆に、認知科学的アプローチみたいのにはあまり興味はない。
時間があればオレも行きたいんだけどねー。
自分でも作りかけたことがあるんだけど、連の認定と呼吸点の
検出までやって、放ったらかしになってる (w
205197
垢版 |
NGNG
>>202
ん?
違うけど。
俺から見たら、5人くらいが釣られて遊ばれてるように見えるけどね。
知識の差も一目瞭然だと思うんだけど、そう見えない人もいるのかね。
俺に言わせれば、2chで(しかも囲碁板で)
NNだのGAだのの話してる時点で煽りでしょ。

>>204
>単純に、「強い囲碁プログラムの作り方」が知りたいだけです。
WEB見た?
こうしたら強くなるっていう新しい手法の発表はないみたい。
2日目はゲーム木探索の話だけだし。
1日目には
ニューラルネットワークによる詰碁プログラムの研究
こんなのがあるね。
NGNG
>>197
おまえ、ほんと……ごるごるもあ並に痛いな。
NGNG
202=206は
あのスレで釣られて、論破されたかわいそうな厨房でした(プ
粘着君の反応が楽しみ。
208デフォルトの名無しさん
垢版 |
NGNG
論破だって (プ
ここで粘着な議論して論破するかい? >>207
NGNG
>>205
そんなに頭いいのなら、IPDくらい知ってるよな?
NGNG
>>209
頭がいいのと知識があるのとは別
211206
垢版 |
NGNG
>>207
あのスレってどのスレ?教えてくだちい。
ちなみにおれは202ではない(証明する手段はないが)。
NGNG
IPDだって(ププ
理系についていけなくて、
文転した人ですか?

マジな話、研究者みてるとかわいそうになってくるよ。
数式化した結果わかった事が、IPDなんて研究対象になりません
だもんな。
複雑系専門の人に言わせると、単純化しすぎとの事。
心理学の人に言わせると、複雑化しすぎとの事。
ようするに、ミクロな系とマクロな系の
中間で物事をみてしまったために(略
213202
垢版 |
NGNG
>>197=>>207=>>212
俺は>>206じゃないんだけど。
自作自演なんてやっても意味ないだろ。

ちなみに、俺は全く囲碁の知識ないよ。
なんとなくこのスレが目についたから見てみただけ。

それと、あのスレで何か専門的なこと書いてたか?
誰も専門的なことを話してないのに、どうやって知識の差なんてわかるんだ?
文面からして本人なのがミエミエなんだけど。
NGNG
>あのスレってどのスレ?教えてくだちい。
http://game.2ch.net/test/read.cgi/bgame/1001770576/164-207
これじゃない?
NGNG
ニューラルネットって専門的だよな。
俺には未知の世界
216202
垢版 |
NGNG
>>215
別にメール欄に書かなくてもいいんじゃないの?

囲碁は知らないけど、全く興味がないわけではないよ。
囲碁を知らないからこのスレを見てはいけないというわけではないし。
スレタイを見て、何か面白いプログラムがあったりするかなとか思っただけだから。
NGNG
>>216
http://www.stileproject.com/monkey_sugar.swf
これ貼ったのおまえだろ?
このスレから出てくるな。
NGNG
>>216
興味を広げる事はいいことだ。
囲碁のルールをまず覚えよう。

ところで、ニューラルネットは専門的じゃない?
俺も勉強しないとな。
NGNG
囲碁を知らない人はこちらへ。
10分で40級になれます。
インタラクティブ囲碁入門
http://playgo.to/interactive/index-j.html
220ikuoに「変な奴」いわれましたけど
垢版 |
NGNG
ikuo タンか shigekiタン て、それ目指してなかったっけ
221ikuoに「変な奴」いわれましたけど
垢版 |
NGNG
toshioタンも囲碁好きだったとか聞いたな
222207
垢版 |
NGNG
>ここで粘着な議論して論破するかい? >>207
論破したいけど、なんの議論する?
粘着とか言ってるびびり君が多くて
最近議論してないからな。

>>202
>文面からして本人なのがミエミエなんだけど。
負け犬の遠吠えかぁ・・・・
しかも、俺197になってるし(嘲笑
223202
垢版 |
NGNG
>>217
なにそれ?

>>218
>>219のサイトで囲碁覚えてみようかな。
ニューラルネットって脳のシステムをコンピュータで再現するんだっけ?
専門的だし、面白そう。

>>222
違っているとしたら、全く同じ性格の人が2人いるってことか?
だいたい、ちょっとした雑談に勝ち負けなんてないだろ。
自分に否定的なレスをした人は即負けということか?
普段から自分にレスした人全てにそうしてるの?

釣り師ならともかく、違うならそういうけんか腰のレスはやめようよ。
俺は囲碁知らないからあなたに役立つレスはできないけど。

それと、>>202の発言訂正するけど、何のアドバイスが欲しいかきちんと書いてたね。
NGNG
>>222
おいおい、議論という狭い世界に引き籠って勝ったとか負けたとか騒いでるの
はごく一部の人間だということにまだ気付かないのか?
225デフォルトの名無しさん
垢版 |
NGNG
誰も専門的なことを話してないのに、どうやって知識の差なんてわかるんだ?


226デフォルトの名無しさん
垢版 |
NGNG
厨房晒しageして面白いか?
227202
垢版 |
NGNG
>>225
なぜ>>215が何度もニューラルネットとかいっているのかと思ってたんだけど、
もしかしてその部分を>>197に対してのものだと思ったから?
そうじゃなくて、あのスレの164-207ではってことだよ。

そう思っているんならはっきりと言ってくれればいいのに。
俺、鈍感だったな(w
228デフォルトの名無しさん
垢版 |
NGNG
なんだ202がアホなんだね
俺、鈍感だったな(w
229202
垢版 |
NGNG
>>228
オウム返ししかできないの?
230デフォルトの名無しさん
垢版 |
NGNG
煽りにマジレスですか?
論破された厨房は粘着ですた、と。
231デフォルトの名無しさん
垢版 |
NGNG
>文面からして本人なのがミエミエなんだけど。
本人って誰?
232202
垢版 |
NGNG
>>230
それは煽ってるの?
233202
垢版 |
NGNG
>>231
あのスレの164
234デフォルトの名無しさん
垢版 |
NGNG
反応はや(藁
235デフォルトの名無しさん
垢版 |
NGNG
なんで202は164にコンプレックス持ってるんだ?
236デフォルトの名無しさん
垢版 |
NGNG
論破(プ
NGNG
ネタにマジレスカコワルイ
238202
垢版 |
NGNG
>>234
テレビと実況スレ見ながら、ちょくちょくこのスレを確認しているから(w
239202
垢版 |
NGNG
>>235
別にコンプレックスなんて持ってないよ。
持ちようがないし。
240202
垢版 |
NGNG
>>237
なんだかんだいって、楽しんでいる面もあるし
NGNG
別に論破されたっていいじゃん>202
次回勝てばいいんだよ。
って、ココ何のスレ?

242デフォルトの名無しさん
垢版 |
NGNG
>そう思っているんならはっきりと言ってくれればいいのに。
言語障害?
243202
垢版 |
NGNG
>>241
囲碁プログラミングスレらしいけど(w
244202
垢版 |
NGNG
>>242
どうして?
NGNG
糞スレあげるなバカ
246202
垢版 |
NGNG
>>245
申し訳ない
NGNG
おまえバカだろ?
どう読んでも、失礼な態度でせまって行ったのは
お前だと思うが。
最後に囲碁わかりませんと、ネタか?
なんでそんなに反応してるんだ?
やっぱり、コンプレックスか論破なのか?
248202
垢版 |
NGNG
>>247
テレビと実況スレ見ながらちょくちょく確認して、俺にレスがあれば返しているだけだよ。
それに>>202は失礼だとは思わないけど。
249デフォルトの名無しさん
垢版 |
NGNG
コンプレックスアゲ
250デフォルトの名無しさん
垢版 |
NGNG
202あげ
251デフォルトの名無しさん
垢版 |
NGNG
だれか囲碁作ってみてよ
252デフォルトの名無しさん
垢版 |
NGNG
保守
253プロの逝って良しの1 ◆MvRbZL6NeQ
垢版 |
NGNG
評価関数難し過ぎ
254デフォルトの名無しさん
垢版 |
NGNG
難しいというより、無理
255デフォルトの名無しさん
垢版 |
NGNG
ようするに手を全部データベース化して1手づつ検索かければ必勝なんだろ。
全部の手をデータベースにすんのって何バイト必要なんだろ?
20*20*〜〜〜〜〜〜???わかんね
256デフォルトの名無しさん
垢版 |
NGNG
3^(19*19) > 2^400 = 1024^390 > 10^(3*390)
単純計算すると
0が1000個くらいつくのかな?
257デフォルトの名無しさん
垢版 |
NGNG
囲碁ってルールの実装がめちゃムズ
コウが組み込めない。
NGNG
コウ:その手でバンメンが前と同じになったら打てない。
簡単そうだが。
259デフォルトの名無しさん
垢版 |
NGNG
全部記録しておけばいいの?
それって非効率的な気がして。
NGNG
石を置いた付近に限定して記憶すればいいのでは?
NGNG
置いた石から上下左右一目の石の配置を記憶。
262minikat
垢版 |
NGNG
コウは日本ルールとスーパーコウルールなら読む深さが違うし、
スピードアップにどんなアルゴリズムを使うかで議論があるでしょう。
AI囲碁のDavid Fotlandはシンプルコウルール判断(日本/韓国?)で充分といっていますが。
普通はHashで保存した局面をさかのぼり同一局面をチェックかな?
場所とか1個取ったとかの条件判断はこんがらがりますね。


263デフォルトの名無しさん
垢版 |
NGNG
>>262
ハッシュ関数はどんなのを使えばいいの?
264デフォルトの名無しさん
垢版 |
NGNG
スピードアップにどんな意味があるんだろうか・・・・
NGNG
CPUの思考速度。
266デフォルトの名無しさん
垢版 |
NGNG
評価関数+αβ探索だけでやっても
ほとんど何も上手くいかない・・・

なんで?
評価関数がダメなのかな。
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数年ぶりに囲碁プログラム再開しましたのでよろしく。
270minikat
垢版 |
NGNG
269です。書き忘れましたが、5*5は完全読みで黒25目勝ちが読みきれたそうです。
次は7*7か?もちろん枝はうまく刈りますが。
271minikat
垢版 |
NGNG
すみません。タイプミスです。
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
という事は理解できますが。
273minikat
垢版 |
NGNG
自分は使っていないが、コードの衝突は起こらないはず。
同一ゲームなら同じコードになります。あくまでそのゲーム
のチェック用ということで、新たなゲームでは最初の乱数が違うから
コードももちろん違う。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の部分は工夫して作らないとだめだけど。
275minikat
垢版 |
NGNG
コードと書いてあるので別に勘違いはしていません、と思います。
その後比較するのは当然。焦点はコードの出し方。
テーブルの保存方法やルールで後戻りが違ってくるのはプログラムで
変わる。言いたいのは別にXOR使わなくても局面を表現できる
整数値が違えばいいということ。もっといい方法があるかもね。
自分も最初は1個取ったとか場所がどうとか考えたがこれが最速で
簡単。自分はパターン照合の関係でつかっていない。
XORといえば 手番=手番 XOR 3ででる。黒1白2の場合。
手番=3−手番でも可だが。
もっといろいろ話しましょう。

276minikat
垢版 |
NGNG
追加です。
274のコ−ドで気が付いたがgetHashcodeは盤面を全走査
していますが、現局面と現着手のXORだけでいいのでは?
最初に配列の位置に乱数を割り当てて1手(位置、石)のみXORをとる。
もう一度着手(位置、石)XORで前局面に戻る。
アゲ石処理でXOR消去はもちろん必要だが。XOR 1命令で再走査がいらないところに
値打ちがあるように思います。
コード書いていないだけに間違っていたらスマン。


277デフォルトの名無しさん
垢版 |
NGNG
>コードと書いてあるので別に勘違いはしていません、と思います。
了解

>>274のコ−ドで気が付いたがgetHashcodeは盤面を全走査
結局のところは全走査する事で実現できる=手順によらない
という事を言いたかった。
実際は、
すべての局面を記録していくわけだけど、
その際、同時にhashcodeを生成してしまえばいいわけだよね。
石がとられたら、その分もxorで。

自分のは今のところ速度にこだわっていないので
これを実装するかどうかは未定かな。

今、考えてる事は、
探索の打ち切りとか、もっと深く読むとか。
278デフォルトの名無しさん
垢版 |
NGNG
囲碁のプログラムをやっとの事で完成させて
19*19で動かしてみると
その大きさに愕然とする。
そして、ほとんどの人がやめていく。
279デフォルトの名無しさん
垢版 |
NGNG
局地戦ならともかく、布石とかは相当厄介だと思われ。
NGNG
布石ぐらいだったらデータベースで何とかできそうな気はするけど。
やっぱり死活でしょう。
攻め合いとかコウとか。
NGNG
別の隅を評価しながらの布石は、結構厄介だった。
NGNG
>>281
それはかなり高度な部類に入るかと・・・。
実際、それを生かすだけの棋力を持つプログラムは存在しないと思われ。
283278
垢版 |
NGNG
定石データベース+αβ探索だけで囲碁を作って見て思ったんだけど、
人間の脳ってなんであんなにすごいんだ?
NGNG
囲碁は特に画面認識とか、人間の脳に向いている作業が多いからね。
しかし、αβということはまともに探索してるの?
それはすごいね。
NGNG
学習して、自ら改善するっていうプログラムじゃないんだよねぇ。
なら、実際に打ってみて足りない点を逐一カバーしていくってのが
いいと思うよ。
つーわけで、遊ばせてくださイ。ちゃんと報告するから。
            よろしく。
286278
垢版 |
NGNG
2chネラーだという事がばれると
なんか恥ずかしいのでそれは勘弁して>>285

それに、弱すぎてやっても意味ない。

αβに関してだけど、現状の評価関数だとほとんどやっても意味ないかも。
コンピューター同士で対戦させて
どのくらい読みが的中するのかを調べたところ
打つ場所の残りが10箇所くらいになって
当たりだすくらい。

それに19*19だと
最初の幅優先探索がえらく時間がかかる。

それをふまえて、自分がどうやっているのか
検証してみたんだけど・・・・
287デフォルトの名無しさん
垢版 |
NGNG
無料の囲碁のフレームワークってないですかねぇ。
ルールを組み込むのがすごく大変で。
NGNG
ここを見てみたら。
http://www.inventivity.com/OpenGo/
289デフォルトの名無しさん
垢版 |
NGNG
>>288
ありがと。
これでAI作りに専念できそうです。

まずは探索から実装してみます。
290minikat
垢版 |
NGNG
ルールは狭義には、コウと自殺手判断ぐらい。厳密には終局計算を含む。
昔アップルIIの囲碁ソフトはウッテガエシが打てなかったよ。
返品しようとおもったがそれ以外なかった。
どのルールも1石の自殺手はできないがSSTルールやニュージーランドルール
は認めている。
日本ルールではセキは地にならないが、中国ルールではなる。
とにかく市販ソフトでもセキ判断は完全でないのでルールが完璧とは
いえないのでこちらまかせ。 
でもルール作りのハードルが高いならシチョウ、ゲタなんてもっと大変よ。
がんばってください。

291minikat
垢版 |
NGNG
>>どのルールも1石の自殺手はできないがSSTルールやニュージーランドルール
は認めている。
スマン。表現がおかしい。
多石の自殺手を認めているという意味。
292デフォルトの名無しさん
垢版 |
NGNG
ルールなんか 日本ルールに 決まってるだろ
293デフォルトの名無しさん
垢版 |
NGNG
とりあえず五路地盤のを作ってみたら?
NGNG
ジャップ消すゾ
295デフォルトの名無しさん
垢版 |
NGNG
もう少しにぎやかにならないかな。
296デフォルトの名無しさん
垢版 |
NGNG
着手生成アルゴリズムってどんなのがあるの?
NGNG
パターンが楽なんじゃないの?
こんな形は1間で、これは2間、ケイマ、とか色々。
298デフォルトの名無しさん
垢版 |
NGNG
候補手列挙を学習する方法ってない?
例えば、パターンだったら
探索した結果良いものを集めてデータベース化していくと。

でも、パターンだとマッチングが大変じゃない?
ある点が候補としてあげられるかは
その点の付近のパターンを、データベースで比較しなくてはならない。
ハッシュを使えばいいのかな。
NGNG
学習だったらプロ棋士の棋譜を使えばいいんじゃない?
たしか公開されてたはずだしね。

パターンマッチングの高速化はどうするんだろうね。
データベースをハッシュでまとめてしまえば高速で可能なような気もする。
完全一致から似ている形まで、とかなると難しそうだけど。

あと、単純なパターンだとうまくいかないかもね。
この石はシチョウで取られる、とか、ダメが2以上ある、とか
色々な情報をパターンの中に組み込む必要があるかも。
ここに打った場合の手順とかも。
300デフォルトの名無しさん
垢版 |
NGNG
データがあっても、アルゴリズムがないとね(藁

似ている物まで探してくるのは無理だと思うなぁ。
似ているの基準から定義しないとわからんけど。

>あと、単純なパターンだとうまくいかないかもね。
候補を列挙するだけだからいいんじゃない?
あとは、それを探索するだけ。
301minikat
垢版 |
NGNG
ハッシュよりも実プログラムでは2分木探索が速いという報告もありムヅ。
普通に照合するよりは何十倍か早いだろうけど。
パターンは骨格と肉付けがあり、20年前の同級生で様子が違ってもある程度
認識できるのと似ている。黒、白、空点と、黒白空点どちらでもいいというのが厄介。
rotationで8種類、反転で16種類ある。広さの問題もあるなあ。
人間は碁をやって入ればますます、パターン認識は早くなるが、機械は照合に
ドンドン時間が食われる。ここに根本的な問題ありだろ。
AI囲碁で2000くらい。最初手入力してたらしいが途中からBITMAPにして
グラフィックエディターで入力したらしい。うまいね。

NGNG
学習のアルゴリズムかぁ。
分からんね(w
完全一致で出現した回数とかなら簡単だけど。

大量の棋譜から学習で楽をしよう、というのは誰もが誘われる麻薬みたいな
もの?だが実際は少数のパターンを人間が自分で判断して打ち込んだほうが
精度の高いものが出来そうな気もする。
何より、プログラムがその手をなぜ打ったかを推理できるからね。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況