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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
俺に勝てたら、賞金が出ます
177デフォルトの名無しさん
垢版 |
NGNG
あたりの時に逃げるのは簡単だろ

一番問題って・・・
問題なんていっぱいあるよ
NGNG
あたりを逃げるのは>>136の13行プログラムでも簡単に実現してるよ。
179デフォルトの名無しさん
垢版 |
NGNG
13行ってすごいな
NGNG
うちのゲームは3間とびをやっても間を切って来ないから余裕で地を稼げる。
あと、当てさせといて、取ってる間に大模様をつくると勝てる。
181デフォルトの名無しさん
垢版 |
NGNG
αβ枝かりって、囲碁でもできるの?
コードまで書けちゃう人いる?
複雑すぎてわけわかめ
NGNG
そりゃできますがな。
そりゃいるでしょー。
複雑なのは同意だけど。
183デフォルトの名無しさん
垢版 |
NGNG
別にアルファベータじゃなくても
min-maxが作れりゃ、
ちょっと改造するだけでしょ。
でも、評価関数が難しいし
終盤じゃ評価関数なんて作れなさそうだ。
NGNG
終盤はベンソンの絶対生きアルゴリズムで簡単に作れる、
とか書いてみるテスト
Benson による無条件活きの定式化とアルゴリズム
http://www.fides.dti.ne.jp/~oka-t/benson-algorithm.html
185デフォルトの名無しさん
垢版 |
NGNG
難しくて意味わからない
NGNG
どっかの大学の卒論検索せー。囲碁の評価関数etc.
187デフォルトの名無しさん
垢版 |
NGNG
ネットで探せるか?
NGNG
>>184
市販ソフトに対抗できるソフトを作ろうと思ったら、
最低でもこのくらいは読めなきゃだめってことか。
NGNG
公開されてるの定石データってあるの?
NGNG
だれか、これに参加して来い。
http://minerva.cs.uec.ac.jp/~ta-ito/GPW02-top.htm
191デフォルトの名無しさん
垢版 |
NGNG
参加したいけど4万って高すぎる
192デフォルトの名無しさん
垢版 |
NGNG
僕はC言語初心者のガキです。141さんのオセロプログラムにおいて
疑問があります。誰か教えてください

#include <stdio.h>
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};void k(){if(m[p]==0)
for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;if(c&&m[v]==t){a+=c;v=
p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);}}}char*h="・○●\n";int main(){for(i=
1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++
p)k(),printf("%.2s",&h[m[p]*2]);if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d"
,&p,&i),p+=i*9):++p;else if(s)s=0,printf("pass");else break;t=3-t;}return 0;}

1.for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;これはどういう意味ですか?全くわかりません

2.printf("%.2s",&h[m[p]*2])%.2sってなんですか僕の持っている本にはのっていません

3.if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d",&p,&i),p+=i*9):++p;
if(a)ってどういう意味ですか?またt-2?というのは全く理解できません

面倒をお掛けしますがどなたかこれらの質問の答えをください、おねがいします
NGNG
>>192
すれ違い。C言語質問スレで聞け。
といいたいところだが、
1.for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;
c=0,v=p+r[i];
コンマは単なる区切り。
2.%.2sって
2文字までってことだ。
3.if(a)
aが0以外なら真になる。
ついでに持ってる本が初心者すぎる。K&Rを買え。
NGNG
k()は評価関数
t=1 先手
t=2 後手
3-tは相手の駒
m[]は一次元配列に納めた盤
r[i]は8方向の隣接マスの位置の差分テーブル
for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;は一方向の取れる数
aは8方向の取れる数
if(a) は「取れる数が0でなければ真」
195デフォルトの名無しさん
垢版 |
NGNG
193さん、194さん親切なレスありがとうございます
またかなりのスレ違い申し訳ありませんでした
NGNG
>>192
オリジナルの作者による詳細な解説がここにあるよ。354のほうね。
http://pc3.2ch.net/test/read.cgi/tech/984182993/337-354
197デフォルトの名無しさん
垢版 |
NGNG
>>190
俺参加します。
ただ、アホな大学からの参加者が多いのでレベルが低い。
NGNG
>197
報告キボン。
はっ! もしやあなたは
http://game.2ch.net/test/read.cgi/bgame/1001770576/164-207
のお方では?
199197
垢版 |
NGNG
198のリンク先面白いね。
笑ってしまった。
おまえら釣られすぎと。

2chのレベルが高いと思ってる時点でアイタタタだね。

最初に高圧的に話を進めて行った奴は頭いいよ。
たぶん最後まで煽り誘導で持っていってると思われ。
結局のところ、奴と同レベルで話できる奴はいなかった事を
悟って消えていったんだろうね。

俺もあの話に参加したかったよ。

レポートは面白いものがあれば。
というか、どういうのに興味があるの?
NGNG
>>199
2chでの優劣を競ってどうするんだ(藁
まぁ、ちょっとディベートとかかじってみた学生な感じだな。
MLとかnewsには昔から多くいるけどね。
201197
垢版 |
NGNG
>2chでの優劣を競ってどうするんだ(藁
確かにそうだった。
首つって・・・
論理展開が確かにディベートっぽいね。
202デフォルトの名無しさん
垢版 |
NGNG
>>199
あれのどこが頭いいんだ?
稀にああいうやついるけど、まともなレスが帰ってくるわけがない。
自分は実力があるということを示すためにむきになって
教えるようなバカいないだろうし。
何のアドバイスが欲しいのかさえ全く書いてないし。

ところで、本人なの?
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で。

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

今、考えてる事は、
探索の打ち切りとか、もっと深く読むとか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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