136 :
デフォルトの名無しさん :
02/09/03 04:32 13行。 思考ルーチンを削っても10行にしかならん・・・。 #include <stdio.h> int w[4]={1,-1,12,-12},s,d,h[3],b[132];r(int a, int c){int z,i;b[a]|=8;s++;for (i=0;i<4;i++){z=a+w[i];if(b[z]==0)d++;if(b[z]==c)r(z,c);}b[a]&=3;}v(int a,int c){int z,i;b[a]=0;for(i=0;i<4;i++){z=a+w[i];if(b[z]==c)v(z,c);}}int t(int u){ int m,e,g,z,i,k;m=e=0;for(z=0;z<132;z++){k=g=0;if(b[z])continue;for(i=0;i<4;i++ ){if(b[z+w[i]]==u){d=s=0;r(z+w[i],1);k+=(d==1)*s*300+(d==2)*s*300+(d==3)*s*20; }if(b[z+w[i]]==0)k+=10;else g++;}if(g==4)continue;if(k>m){m=k;e=z;}}return e;} char *p="・○● \n";int main(){int c=1,u=2,z,x,y,i;for(i=0;i<132;i++){if((i+1 )%12==0)b[i]=4;else if(i%12==0||i<12||(i+2)%12==0||i>120)b[i]=3;}for(;;){for(i =0;i<132;i++)printf("%.2s",&p[b[i]*2]);if(c==1){scanf("%d %d",&x,&y);z=y*12+x; if(b[z]){printf("Err\n");continue;}}else{if((z=t(u))==0){printf("ps\n");break; }}b[z]=c;for(i=0;i<4;i++){if(b[z+w[i]]==u){d=s=0;r(z+w[i],u);if(d==0){h[c]+=s; v(z+w[i],u);}}}d=0;r(z,c);if(d==0)break;u=c;c=3-c;}return 0;}
137 :
デフォルトの名無しさん :02/09/03 05:22
>>136 #include <stdio.h>を消してプロトタイプ宣言やマクロの定義は自分でする。
マクロの定義をしたら一行使うか・・・じゃあグローバル変数で。
139 :
デフォルトの名無しさん :02/09/13 14:07
140 :
デフォルトの名無しさん :02/09/13 16:17
>>139 動くよ。
9路盤だけどね。
x yを
3 3[return]
で入れてくだけ。
思考はおばかです。
ルールは理解してるがコウを打たないようにしたらダメ詰をしなく
なってしまった。
参考にした7行オセロはこれ。リンク先が見れないので。 神業に近い。 #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;}
142 :
デフォルトの名無しさん :02/09/13 16:24
え、コンピューターの思考ルーチンも組み込んであるの。 すげー・・・
勝てそうにないと反則負けするスーパー囲碁ソフト
自殺手とか打った? あんまり検証してないんでスマソ
145 :
デフォルトの名無しさん :02/09/15 01:17
146 :
EXE系の人 :02/09/15 14:02
すごいが これ本当に強いのか疑問 後 言語はなにかな
147 :
デフォルトの名無しさん :02/09/15 14:22
Yahoo碁で遊んでみるからさ。 行数減らすよかわかりやすくて強いの頼みます。
>>146 >>147 普通のC言語です。ANSI C対応コンパイラがあれば動作します。OSは問わず。
>>149 プロンプトからうごかすんですよね。動くには動いたんですけど
石の置き方がよくわからないんですけど。
152 :
EXE系の人 :02/09/15 17:58
有難うございます
>>151 やってみました。
でも、碁石が表示されないんです。置けども置けども、点が最初の
状態で並んでるだけ。
仕様でしょうか?
3 3 とスペース入れるのですね、間違ってました。ちゃんとできました。 できたもののゲームが終わらないので困りました。 まだ、Yahoo碁で遊べないと思いました。
強さを・・・1画面プログラムに期待されても。
157 :
デフォルトの名無しさん :02/09/15 23:59
age
158 :
デフォルトの名無しさん :02/09/16 00:00
2手目に天元
159 :
デフォルトの名無しさん :02/09/18 20:04
たしかに強いプログラムを使って YAHOOの囲碁で戦わせてみたい
A:\>
>>156 9路盤ならなんとかできそうな気がする。けどどうかな。
>>161 時間がかかってもいいから簡潔に書ける強いロジック・・・があれば(ないない)。
自分のダメを増やして相手のダメを減らし、石が多くつながった方が有利、
とかどうよ?
163 :
デフォルトの名無しさん :02/09/25 22:16
将棋はいろいろ話が出たけど、 囲碁はないね。 やっぱり囲碁は難しいのかね。
164 :
デフォルトの名無しさん :02/09/25 22:23
囲碁と思って作っていたものが実はオセロだったと気づいた
166 :
デフォルトの名無しさん :02/09/28 00:31
だれか囲碁の強いプログラムアップしないかな 正直GNUGOはわからん
167 :
デフォルトの名無しさん :02/10/06 17:44
囲碁って終盤になっても、全検索できないじゃん
168 :
デフォルトの名無しさん :02/10/06 18:42
169 :
デフォルトの名無しさん :02/10/06 19:01
むかしMSXで9路の囲碁ソフトがあったじゃん。 今のマシンで作れば、けっこう強いのができるんじゃないの?
170 :
デフォルトの名無しさん :02/10/06 20:01
JAVAで囲碁ソフトを作っているのですがなかなか難しいですね。 GUIの部分は作るので、誰かコンピュータの思考部分を作ってもらえないでしょうか?
172 :
デフォルトの名無しさん :02/10/06 20:38
おまいら、DUnitとか使ったりしてますか。
誤爆スマソ
174 :
デフォルトの名無しさん :02/10/06 20:40
>>170 俺コンピューターの部分作ります。
コンピューターのインターフェース教えて。
>囲碁って終盤になっても、全検索できないじゃん
そういう意味では、チェスとかオセロって簡単だよね
思考ルーチンかー せめてアタリの時は逃げてほしいよね 一番問題なのは死石を判断することだよね
177 :
デフォルトの名無しさん :02/10/07 22:38
あたりの時に逃げるのは簡単だろ 一番問題って・・・ 問題なんていっぱいあるよ
あたりを逃げるのは
>>136 の13行プログラムでも簡単に実現してるよ。
179 :
デフォルトの名無しさん :02/10/08 01:56
13行ってすごいな
うちのゲームは3間とびをやっても間を切って来ないから余裕で地を稼げる。 あと、当てさせといて、取ってる間に大模様をつくると勝てる。
181 :
デフォルトの名無しさん :02/10/08 21:55
αβ枝かりって、囲碁でもできるの? コードまで書けちゃう人いる? 複雑すぎてわけわかめ
そりゃできますがな。 そりゃいるでしょー。 複雑なのは同意だけど。
183 :
デフォルトの名無しさん :02/10/08 23:21
別にアルファベータじゃなくても min-maxが作れりゃ、 ちょっと改造するだけでしょ。 でも、評価関数が難しいし 終盤じゃ評価関数なんて作れなさそうだ。
185 :
デフォルトの名無しさん :02/10/08 23:57
難しくて意味わからない
どっかの大学の卒論検索せー。囲碁の評価関数etc.
187 :
デフォルトの名無しさん :02/10/09 12:37
ネットで探せるか?
>>184 市販ソフトに対抗できるソフトを作ろうと思ったら、
最低でもこのくらいは読めなきゃだめってことか。
公開されてるの定石データってあるの?
191 :
デフォルトの名無しさん :02/10/09 21:49
参加したいけど4万って高すぎる
192 :
デフォルトの名無しさん :02/10/09 23:21
僕は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?というのは全く理解できません 面倒をお掛けしますがどなたかこれらの質問の答えをください、おねがいします
>>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を買え。
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 :
デフォルトの名無しさん :02/10/10 00:15
193さん、194さん親切なレスありがとうございます またかなりのスレ違い申し訳ありませんでした
197 :
デフォルトの名無しさん :02/10/10 16:07
>>190 俺参加します。
ただ、アホな大学からの参加者が多いのでレベルが低い。
198のリンク先面白いね。 笑ってしまった。 おまえら釣られすぎと。 2chのレベルが高いと思ってる時点でアイタタタだね。 最初に高圧的に話を進めて行った奴は頭いいよ。 たぶん最後まで煽り誘導で持っていってると思われ。 結局のところ、奴と同レベルで話できる奴はいなかった事を 悟って消えていったんだろうね。 俺もあの話に参加したかったよ。 レポートは面白いものがあれば。 というか、どういうのに興味があるの?
>>199 2chでの優劣を競ってどうするんだ(藁
まぁ、ちょっとディベートとかかじってみた学生な感じだな。
MLとかnewsには昔から多くいるけどね。
>2chでの優劣を競ってどうするんだ(藁 確かにそうだった。 首つって・・・ 論理展開が確かにディベートっぽいね。
202 :
デフォルトの名無しさん :02/10/11 01:15
>>199 あれのどこが頭いいんだ?
稀にああいうやついるけど、まともなレスが帰ってくるわけがない。
自分は実力があるということを示すためにむきになって
教えるようなバカいないだろうし。
何のアドバイスが欲しいのかさえ全く書いてないし。
ところで、本人なの?
そのスレの1、人間を相手にしたことないみたいだけど それで初段って・・
>>199 >レポートは面白いものがあれば。
>というか、どういうのに興味があるの?
単純に、「強い囲碁プログラムの作り方」が知りたいだけです。
自已学習させる仕組みなんかも面白いのがあれば。
逆に、認知科学的アプローチみたいのにはあまり興味はない。
時間があればオレも行きたいんだけどねー。
自分でも作りかけたことがあるんだけど、連の認定と呼吸点の
検出までやって、放ったらかしになってる (w
>>202 ん?
違うけど。
俺から見たら、5人くらいが釣られて遊ばれてるように見えるけどね。
知識の差も一目瞭然だと思うんだけど、そう見えない人もいるのかね。
俺に言わせれば、2chで(しかも囲碁板で)
NNだのGAだのの話してる時点で煽りでしょ。
>>204 >単純に、「強い囲碁プログラムの作り方」が知りたいだけです。
WEB見た?
こうしたら強くなるっていう新しい手法の発表はないみたい。
2日目はゲーム木探索の話だけだし。
1日目には
ニューラルネットワークによる詰碁プログラムの研究
こんなのがあるね。
>>197 おまえ、ほんと……ごるごるもあ並に痛いな。
202=206は あのスレで釣られて、論破されたかわいそうな厨房でした(プ 粘着君の反応が楽しみ。
208 :
デフォルトの名無しさん :02/10/11 19:02
論破だって (プ
ここで粘着な議論して論破するかい?
>>207
>>205 そんなに頭いいのなら、IPDくらい知ってるよな?
>>207 あのスレってどのスレ?教えてくだちい。
ちなみにおれは202ではない(証明する手段はないが)。
IPDだって(ププ 理系についていけなくて、 文転した人ですか? マジな話、研究者みてるとかわいそうになってくるよ。 数式化した結果わかった事が、IPDなんて研究対象になりません だもんな。 複雑系専門の人に言わせると、単純化しすぎとの事。 心理学の人に言わせると、複雑化しすぎとの事。 ようするに、ミクロな系とマクロな系の 中間で物事をみてしまったために(略
>>197 =
>>207 =
>>212 俺は
>>206 じゃないんだけど。
自作自演なんてやっても意味ないだろ。
ちなみに、俺は全く囲碁の知識ないよ。
なんとなくこのスレが目についたから見てみただけ。
それと、あのスレで何か専門的なこと書いてたか?
誰も専門的なことを話してないのに、どうやって知識の差なんてわかるんだ?
文面からして本人なのがミエミエなんだけど。
ニューラルネットって専門的だよな。 俺には未知の世界
>>215 別にメール欄に書かなくてもいいんじゃないの?
囲碁は知らないけど、全く興味がないわけではないよ。
囲碁を知らないからこのスレを見てはいけないというわけではないし。
スレタイを見て、何か面白いプログラムがあったりするかなとか思っただけだから。
>>216 興味を広げる事はいいことだ。
囲碁のルールをまず覚えよう。
ところで、ニューラルネットは専門的じゃない?
俺も勉強しないとな。
220 :
ikuoに「変な奴」いわれましたけど :02/10/11 22:42
ikuo タンか shigekiタン て、それ目指してなかったっけ
221 :
ikuoに「変な奴」いわれましたけど :02/10/11 22:43
toshioタンも囲碁好きだったとか聞いたな
>ここで粘着な議論して論破するかい?
>>207 論破したいけど、なんの議論する?
粘着とか言ってるびびり君が多くて
最近議論してないからな。
>>202 >文面からして本人なのがミエミエなんだけど。
負け犬の遠吠えかぁ・・・・
しかも、俺197になってるし(嘲笑
>>217 なにそれ?
>>218 >>219 のサイトで囲碁覚えてみようかな。
ニューラルネットって脳のシステムをコンピュータで再現するんだっけ?
専門的だし、面白そう。
>>222 違っているとしたら、全く同じ性格の人が2人いるってことか?
だいたい、ちょっとした雑談に勝ち負けなんてないだろ。
自分に否定的なレスをした人は即負けということか?
普段から自分にレスした人全てにそうしてるの?
釣り師ならともかく、違うならそういうけんか腰のレスはやめようよ。
俺は囲碁知らないからあなたに役立つレスはできないけど。
それと、
>>202 の発言訂正するけど、何のアドバイスが欲しいかきちんと書いてたね。
>>222 おいおい、議論という狭い世界に引き籠って勝ったとか負けたとか騒いでるの
はごく一部の人間だということにまだ気付かないのか?
225 :
デフォルトの名無しさん :02/10/12 23:02
誰も専門的なことを話してないのに、どうやって知識の差なんてわかるんだ?
226 :
デフォルトの名無しさん :02/10/13 00:01
厨房晒しageして面白いか?
>>225 なぜ
>>215 が何度もニューラルネットとかいっているのかと思ってたんだけど、
もしかしてその部分を
>>197 に対してのものだと思ったから?
そうじゃなくて、あのスレの164-207ではってことだよ。
そう思っているんならはっきりと言ってくれればいいのに。
俺、鈍感だったな(w
228 :
デフォルトの名無しさん :02/10/13 00:07
なんだ202がアホなんだね 俺、鈍感だったな(w
230 :
デフォルトの名無しさん :02/10/13 00:10
煽りにマジレスですか? 論破された厨房は粘着ですた、と。
231 :
デフォルトの名無しさん :02/10/13 00:12
>文面からして本人なのがミエミエなんだけど。 本人って誰?
234 :
デフォルトの名無しさん :02/10/13 00:15
反応はや(藁
235 :
デフォルトの名無しさん :02/10/13 00:15
なんで202は164にコンプレックス持ってるんだ?
236 :
デフォルトの名無しさん :02/10/13 00:16
論破(プ
ネタにマジレスカコワルイ
>>234 テレビと実況スレ見ながら、ちょくちょくこのスレを確認しているから(w
>>235 別にコンプレックスなんて持ってないよ。
持ちようがないし。
>>237 なんだかんだいって、楽しんでいる面もあるし
別に論破されたっていいじゃん>202 次回勝てばいいんだよ。 って、ココ何のスレ?
242 :
デフォルトの名無しさん :02/10/13 00:21
>そう思っているんならはっきりと言ってくれればいいのに。 言語障害?
糞スレあげるなバカ
おまえバカだろ? どう読んでも、失礼な態度でせまって行ったのは お前だと思うが。 最後に囲碁わかりませんと、ネタか? なんでそんなに反応してるんだ? やっぱり、コンプレックスか論破なのか?
>>247 テレビと実況スレ見ながらちょくちょく確認して、俺にレスがあれば返しているだけだよ。
それに
>>202 は失礼だとは思わないけど。
249 :
デフォルトの名無しさん :02/10/13 23:13
コンプレックスアゲ
250 :
デフォルトの名無しさん :02/10/15 00:46
202あげ
251 :
デフォルトの名無しさん :02/10/16 21:44
だれか囲碁作ってみてよ
252 :
デフォルトの名無しさん :02/10/18 21:36
保守
253 :
プロの逝って良しの1 ◆MvRbZL6NeQ :02/10/18 21:56
評価関数難し過ぎ
254 :
デフォルトの名無しさん :02/10/18 21:57
難しいというより、無理
255 :
デフォルトの名無しさん :02/10/18 22:03
ようするに手を全部データベース化して1手づつ検索かければ必勝なんだろ。 全部の手をデータベースにすんのって何バイト必要なんだろ? 20*20*〜〜〜〜〜〜???わかんね
256 :
デフォルトの名無しさん :02/10/18 22:05
3^(19*19) > 2^400 = 1024^390 > 10^(3*390) 単純計算すると 0が1000個くらいつくのかな?
257 :
デフォルトの名無しさん :02/10/20 20:43
囲碁ってルールの実装がめちゃムズ コウが組み込めない。
コウ:その手でバンメンが前と同じになったら打てない。 簡単そうだが。
259 :
デフォルトの名無しさん :02/10/20 21:17
全部記録しておけばいいの? それって非効率的な気がして。
石を置いた付近に限定して記憶すればいいのでは?
置いた石から上下左右一目の石の配置を記憶。
262 :
minikat :02/10/20 21:26
コウは日本ルールとスーパーコウルールなら読む深さが違うし、 スピードアップにどんなアルゴリズムを使うかで議論があるでしょう。 AI囲碁のDavid Fotlandはシンプルコウルール判断(日本/韓国?)で充分といっていますが。 普通はHashで保存した局面をさかのぼり同一局面をチェックかな? 場所とか1個取ったとかの条件判断はこんがらがりますね。
263 :
デフォルトの名無しさん :02/10/20 23:01
>>262 ハッシュ関数はどんなのを使えばいいの?
264 :
デフォルトの名無しさん :02/10/20 23:02
スピードアップにどんな意味があるんだろうか・・・・
CPUの思考速度。
266 :
デフォルトの名無しさん :02/10/20 23:25
評価関数+αβ探索だけでやっても ほとんど何も上手くいかない・・・ なんで? 評価関数がダメなのかな。
日本ルールに限定するなら、 抜いた石が一個の時にコウフラグを立てて位置を記憶すればいいのでは。
268 :
デフォルトの名無しさん :02/10/20 23:51
269 :
デフォルトの名無しさん :02/10/21 08:06
1.最初にランダム数(32ビットか64ビット)を決め、着手(整数)とXOR で次局面、戻るにはまたXORで戻る。チェスプログラマーの良くやる手です。 コウフラグ等よりも早いでしょう。コンピュータ囲碁の初期にZobristが 提唱しました。英文が各所にあります。検索はzobrisy keyで。 ただし、私は使っていませんが。 局所的にαβ探索、例えば詰め碁をやれば1命令でも早くしたいものです。 局面記憶もXORで簡単ですね。グラフィックの重ね合わせと同じでしょう。 私も10数年ぶりに囲碁プログラム再開しましたのでよろしく。
270 :
minikat :02/10/21 08:09
269です。書き忘れましたが、5*5は完全読みで黒25目勝ちが読みきれたそうです。 次は7*7か?もちろん枝はうまく刈りますが。
271 :
minikat :02/10/21 08:12
すみません。タイプミスです。 Zobristが正解。
272 :
デフォルトの名無しさん :02/10/21 11:32
>>269 なんかできそうな、できなさそうな。
少し考えないと理解できなさそうです。
何も打たれていない状態のハッシュコードをSとして、
次局面のハッシュコードS'を、打たれた手をAとして
S' = S xor A
とするわけですね。
でも、石の配置が同じ局面でも
異なったハッシュコードを持ちそうな気がするのですが、
どうでしょうか?
石が一度も取られなければ、
S→A→S'→A'→S''
S''=S xor A xor A'=S xor A' xor A
という事は理解できますが。
273 :
minikat :02/10/21 12:01
自分は使っていないが、コードの衝突は起こらないはず。 同一ゲームなら同じコードになります。あくまでそのゲーム のチェック用ということで、新たなゲームでは最初の乱数が違うから コードももちろん違う。3コウでも6手さかのぼるだけかな? とにかくコウの場所、フラグ等は先読みからの手戻りで単純化できないから 不利と思います。 ボクもルールは自殺手などややこしいので日本ルールのみ考えています。 それから配列は1次元がたやすいですね。
274 :
デフォルトの名無しさん :02/10/21 21:50
>>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の部分は工夫して作らないとだめだけど。
275 :
minikat :02/10/21 23:31
コードと書いてあるので別に勘違いはしていません、と思います。 その後比較するのは当然。焦点はコードの出し方。 テーブルの保存方法やルールで後戻りが違ってくるのはプログラムで 変わる。言いたいのは別にXOR使わなくても局面を表現できる 整数値が違えばいいということ。もっといい方法があるかもね。 自分も最初は1個取ったとか場所がどうとか考えたがこれが最速で 簡単。自分はパターン照合の関係でつかっていない。 XORといえば 手番=手番 XOR 3ででる。黒1白2の場合。 手番=3−手番でも可だが。 もっといろいろ話しましょう。
276 :
minikat :02/10/22 00:42
追加です。 274のコ−ドで気が付いたがgetHashcodeは盤面を全走査 していますが、現局面と現着手のXORだけでいいのでは? 最初に配列の位置に乱数を割り当てて1手(位置、石)のみXORをとる。 もう一度着手(位置、石)XORで前局面に戻る。 アゲ石処理でXOR消去はもちろん必要だが。XOR 1命令で再走査がいらないところに 値打ちがあるように思います。 コード書いていないだけに間違っていたらスマン。
277 :
デフォルトの名無しさん :02/10/22 09:34
>コードと書いてあるので別に勘違いはしていません、と思います。 了解 >>274のコ−ドで気が付いたがgetHashcodeは盤面を全走査 結局のところは全走査する事で実現できる=手順によらない という事を言いたかった。 実際は、 すべての局面を記録していくわけだけど、 その際、同時にhashcodeを生成してしまえばいいわけだよね。 石がとられたら、その分もxorで。 自分のは今のところ速度にこだわっていないので これを実装するかどうかは未定かな。 今、考えてる事は、 探索の打ち切りとか、もっと深く読むとか。
278 :
デフォルトの名無しさん :02/10/22 11:24
囲碁のプログラムをやっとの事で完成させて 19*19で動かしてみると その大きさに愕然とする。 そして、ほとんどの人がやめていく。
279 :
デフォルトの名無しさん :02/10/22 11:25
局地戦ならともかく、布石とかは相当厄介だと思われ。
布石ぐらいだったらデータベースで何とかできそうな気はするけど。 やっぱり死活でしょう。 攻め合いとかコウとか。
別の隅を評価しながらの布石は、結構厄介だった。
>>281 それはかなり高度な部類に入るかと・・・。
実際、それを生かすだけの棋力を持つプログラムは存在しないと思われ。
定石データベース+αβ探索だけで囲碁を作って見て思ったんだけど、 人間の脳ってなんであんなにすごいんだ?
囲碁は特に画面認識とか、人間の脳に向いている作業が多いからね。 しかし、αβということはまともに探索してるの? それはすごいね。
学習して、自ら改善するっていうプログラムじゃないんだよねぇ。 なら、実際に打ってみて足りない点を逐一カバーしていくってのが いいと思うよ。 つーわけで、遊ばせてくださイ。ちゃんと報告するから。 よろしく。
2chネラーだという事がばれると
なんか恥ずかしいのでそれは勘弁して
>>285 それに、弱すぎてやっても意味ない。
αβに関してだけど、現状の評価関数だとほとんどやっても意味ないかも。
コンピューター同士で対戦させて
どのくらい読みが的中するのかを調べたところ
打つ場所の残りが10箇所くらいになって
当たりだすくらい。
それに19*19だと
最初の幅優先探索がえらく時間がかかる。
それをふまえて、自分がどうやっているのか
検証してみたんだけど・・・・
287 :
デフォルトの名無しさん :02/10/22 21:48
無料の囲碁のフレームワークってないですかねぇ。 ルールを組み込むのがすごく大変で。
289 :
デフォルトの名無しさん :02/10/23 00:45
>>288 ありがと。
これでAI作りに専念できそうです。
まずは探索から実装してみます。
290 :
minikat :02/10/23 08:22
ルールは狭義には、コウと自殺手判断ぐらい。厳密には終局計算を含む。 昔アップルIIの囲碁ソフトはウッテガエシが打てなかったよ。 返品しようとおもったがそれ以外なかった。 どのルールも1石の自殺手はできないがSSTルールやニュージーランドルール は認めている。 日本ルールではセキは地にならないが、中国ルールではなる。 とにかく市販ソフトでもセキ判断は完全でないのでルールが完璧とは いえないのでこちらまかせ。 でもルール作りのハードルが高いならシチョウ、ゲタなんてもっと大変よ。 がんばってください。
291 :
minikat :02/10/23 09:08
>>どのルールも1石の自殺手はできないがSSTルールやニュージーランドルール は認めている。 スマン。表現がおかしい。 多石の自殺手を認めているという意味。
292 :
デフォルトの名無しさん :02/10/23 09:59
ルールなんか 日本ルールに 決まってるだろ
293 :
デフォルトの名無しさん :02/10/23 10:02
とりあえず五路地盤のを作ってみたら?
ジャップ消すゾ
295 :
デフォルトの名無しさん :02/10/23 22:47
もう少しにぎやかにならないかな。
296 :
デフォルトの名無しさん :02/10/23 22:52
着手生成アルゴリズムってどんなのがあるの?
パターンが楽なんじゃないの? こんな形は1間で、これは2間、ケイマ、とか色々。
298 :
デフォルトの名無しさん :02/10/25 00:32
候補手列挙を学習する方法ってない? 例えば、パターンだったら 探索した結果良いものを集めてデータベース化していくと。 でも、パターンだとマッチングが大変じゃない? ある点が候補としてあげられるかは その点の付近のパターンを、データベースで比較しなくてはならない。 ハッシュを使えばいいのかな。
学習だったらプロ棋士の棋譜を使えばいいんじゃない? たしか公開されてたはずだしね。 パターンマッチングの高速化はどうするんだろうね。 データベースをハッシュでまとめてしまえば高速で可能なような気もする。 完全一致から似ている形まで、とかなると難しそうだけど。 あと、単純なパターンだとうまくいかないかもね。 この石はシチョウで取られる、とか、ダメが2以上ある、とか 色々な情報をパターンの中に組み込む必要があるかも。 ここに打った場合の手順とかも。
300 :
デフォルトの名無しさん :02/10/25 02:22
データがあっても、アルゴリズムがないとね(藁 似ている物まで探してくるのは無理だと思うなぁ。 似ているの基準から定義しないとわからんけど。 >あと、単純なパターンだとうまくいかないかもね。 候補を列挙するだけだからいいんじゃない? あとは、それを探索するだけ。
301 :
minikat :02/10/25 06:16
ハッシュよりも実プログラムでは2分木探索が速いという報告もありムヅ。 普通に照合するよりは何十倍か早いだろうけど。 パターンは骨格と肉付けがあり、20年前の同級生で様子が違ってもある程度 認識できるのと似ている。黒、白、空点と、黒白空点どちらでもいいというのが厄介。 rotationで8種類、反転で16種類ある。広さの問題もあるなあ。 人間は碁をやって入ればますます、パターン認識は早くなるが、機械は照合に ドンドン時間が食われる。ここに根本的な問題ありだろ。 AI囲碁で2000くらい。最初手入力してたらしいが途中からBITMAPにして グラフィックエディターで入力したらしい。うまいね。
学習のアルゴリズムかぁ。 分からんね(w 完全一致で出現した回数とかなら簡単だけど。 大量の棋譜から学習で楽をしよう、というのは誰もが誘われる麻薬みたいな もの?だが実際は少数のパターンを人間が自分で判断して打ち込んだほうが 精度の高いものが出来そうな気もする。 何より、プログラムがその手をなぜ打ったかを推理できるからね。
303 :
デフォルトの名無しさん :02/10/25 11:12
>ハッシュよりも実プログラムでは2分木探索が速いという報告もありムヅ。 2分木にする時のキーとして、何を使うの? それがハッシュコードなら ハッシュテーブルの大きさによると思うよ。 似てる物を集めてくるのはちょっとつらいよね。 >だが実際は少数のパターンを人間が自分で判断して打ち込んだほうが >精度の高いものが出来そうな気もする。 おそらくそうだと思う。 だから、外からのデータを与えるんじゃなくて 自分でデータを生成検証して、候補手を生成するアルゴリズムを 学習するようなものがいいね。
304 :
デフォルトの名無しさん :02/10/25 13:04
あらかじめ、全ての手を計算しておいて、データベース化しておく。 データベースの構築には、膨大な計算力とディスクスペースが必要なので、 SETIのように分散処理で解決。 データベースができた後は、最善手のみが打てる。 一度プロジェクト起こしてみては? それなりに金になると思うぞ。 あと、首謀者は地位と名誉も得られる。
305 :
デフォルトの名無しさん :02/10/25 13:06
もし、それで碁の必勝法がみつかれば、歴史に名が残るね。 少ない資金で多大な効果が得られる、数少ないプロジェクト。 早い者勝ちだぞ。
相手が知ってたら意味ないじゃ〜ん
お前ら・・・囲碁の可能な局面の数は 3^19^2 = 10^230 にもなるんだぞっと。
完全解析したらゲーム自体消滅
309 :
デフォルトの名無しさん :02/10/25 13:37
3^19^2 = 1350851717672992089 ≒ 10^18 1千万台(10^7台)のコンピュータを使えば、10^11回の演算で済む。 1台のコンピュータが1秒に3170回の演算が行えるとして、10年間。 現行の性能では難しいが、将来は可能になるかもしれない。 可能になった時点で、誰が先に演算を終えるか? 先に演算を始めた者に決まってる。
310 :
デフォルトの名無しさん :02/10/25 13:39
オセロならもっと早く演算が終了する。 早い者勝ちだぞ。 ゲームを消滅させろ。
311 :
minikat :02/10/25 15:03
>>2分木にする時のキーとして、何を使うの? パターンをbit化すればいいのと違うかな? >>ハッシュテーブルの大きさによると思うよ。 そうだね。やって見ないとわからない。ハッシュの計算や衝突の際の探索も時間がかかるし。 でも2,3千のパターンではアマ初段には間に合わない。 瀬越の手筋辞典や官子譜見たらとんでもない筋やパターンがでている。 NHK囲碁の解説聞いていても「これは筋ですねえ」といわれても、知らない、わからない のが結構多い。筋の定義もムズだが、パターンとも共通性があるし。 コスミ自体は1種類しかないが、周りの状況でヨセからワタリ等等役目はゴマンと ある。要するにパターンは目的を入れないと絵に描いたモチ。
312 :
デフォルトの名無しさん :02/10/25 15:09
分散処理で計算する方法は考えたんだけどさ、 黒(自分)が最善手を常に打つとして、 白(敵)が最善かどうかわからない手を打つとすると 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桁はあるな。
爺さんの楽しみが無くなるなあ〜
314 :
デフォルトの名無しさん :02/10/25 15:23
賞金 100円 みんな ガンバレ〜〜
315 :
デフォルトの名無しさん :02/10/25 15:27
>>311 候補手といっても、いろいろなレベルがあると思う。
例えば、どの手を選んでも悪手にはならない
候補手の列挙から
どの手を選んでも良い手であるような
候補手の列挙から・・・
あるいは攻撃的な手だけを列挙できるようになるのも
有効だし
守備的な手だけを列挙できるようになるのも有効だね。
候補手が列挙できたら、あとは探索するのみ。
316 :
デフォルトの名無しさん :02/10/25 15:36
今考えてるのは 精度の粗い候補手列挙システム (つまり、悪手は切り捨てるけど良手は絶対に切り捨ててはいけない。 判定不能の物は残す) と 高機能なαβサーチの組み合わせでの アルゴリズムを作ろうと思ってる。 候補手列挙は、やっぱり周辺パターンのデータベースしか ないのかな。 候補手列挙で一つ思いついたのは、 応手作成アルゴリズム。 相手の手を、どんな手なのか予測分類して (2つに分類するなら、攻撃的か守備的か) 候補手を列挙する。 まあ、まだアイディアを練ってる段階だけど
絶妙手をも切り落とさないシステムだと大変かもね。 そういう手は弱いレベルには悪手だから。 プログラムの棋力にふさわしい普通の手が10手から20手程度抽出できれば 十分じゃないかな。 囲碁はまだそれほど深く読めないので(シチョウは除いて) 探索手法自体の重要性は低いと思われ。 やはり最大の難関は評価関数かと。 地の判定から、石の連絡、強弱、空間の支配力、 この辺を適当に数値化しないといけないからね。
318 :
デフォルトの名無しさん :02/10/25 21:30
>>317 俺は(中盤の)評価関数の作成が無理だと思うんだよね。
評価関数の作成が将棋と同程度の難しさなら、
現状のルールベースの候補手生成アルゴリズムと組み合わせれば
きっと将棋と同程度の強さになってると思うんだ。
探索空間の広さが同程度になると思うから。
囲碁は、終盤に近づくほど評価関数が正確な値を示すようになってくる(気がする)が
序盤では定石に頼らないとまったく打てない(はず)。
それは定石データベースを持たない囲碁プログラムを作れば
おのずとわかると思う。
という事は、評価関数の精度をあげるには深く読んでみる事が
一つの方法であると思う。
そこで、いかに有効な手を深く読むかが重要だと思う。
評価関数が曖昧と仮定している以上、αβサーチは使えない。
じゃあ、どうするかというと、深く読む。
どうやって幅を絞るかというと・・・
アイディアはあるけど今は暖め中という事で。
>そういう手は弱いレベルには悪手だから。
絶対評価と相対評価がメチャクチャになってるかもね。
人間にとって一見悪手にみえるが良い手である手を妙手という?から
それがコンピューターにとって妙手かといえば、違うと思う。
目指すは”最強”なのでw
319 :
minikat :02/10/25 23:46
例えば、10年くらい前の棋道で趙治勲の読みの内容に関するする連載があったが、 プロでも驚くところまで読んでいる。多分、プロの頭には過去の膨大な筋や パターンと、ものすごい読む力が備わっている。全部の可能着手数なんて考える必要ないんだ。 反面、故岩本九段のようにパラパラ打って碁にする棋風もあるが。それは一言で言えば、バランス。 理論でもいいから趙さんの読みの深さまで深化できるアルゴリズムでなければ 先の見通しは暗い。 評価関数でいえば、人間は盤面計算や評価を毎着手やっていないでしょ。 一段落したところでやる。それまでは手順をつくすか、ある死活なら死活に集中する。 その意味でプログラムは人間を徹底的に模倣し、攻めあいや終盤計算等の得意分野で人間を追い越さ なければいつまでたっても初心者レベル。と思う。 それから今のプログラムはエントロピーが低い。着手に多様性がないからプログラムは かならずこう来るんだ。とか読まれてしまう。ノゾキにいつもツグぐようなものやね。 プロでも道策にケイマにカケられて安井家はいつも下うけでこなされる。 道策の深読みと多様性についていけない。この2点をどう表現するか。
320 :
デフォルトの名無しさん :02/10/26 00:02
多様性に関しては学習なのかな。 負けたゲームから何かを学ぶ。 少なくても、相手が同じ事をしてきたら それに対して何か別の策をこうじるようにならないと。 まあ、それができるなら 永遠とコンピューター同士で学習すると 最強になってしまうんだけど。
深く読むかぁ。
何手ぐらい読めば妥当なんだろうね。
>>319 さんの言うように当然の手順、というのを抽出できれば
それに沿って読みさえすれば5手、10手、20手先の局面でも
正確に読めそうな気もする。
この場合、地合でなく、戦いを重視したプログラム、ということになるのかな。
322 :
デフォルトの名無しさん :02/10/26 08:15
実際に人間は何手くらい読んでるのかな? 俺は囲碁初心者だけど ぱっとみで候補が5くらいあがって そして7手先くらいは読んでるね。 確かに、読みっていうのは そこへ打っても大丈夫かといった チェックをしているような気がする。 つまり、感覚だけである種の最善手がはじき出されている。
323 :
デフォルトの名無しさん :02/10/26 19:03
>この場合、地合でなく、戦いを重視したプログラム、ということになるのかな。 それは、当然の手順=最適な手順がなんなのかによりそう。
将棋や囲碁では、状態をイメージ(画像)として捕らえるような作業を 人間は行っているだろうね。陣形とか、血合とか。 以前ちょっと考えたことがあるのが、上記の考えを元に、 盤面を白黒で2分割、4分割・・・16分割くらいして、 (分割はそれぞれが優勢な部分を中心とする) そのそれぞれのブロックで、細かい判定を行うというもの。 でも、すでに他の人が同じような研究を行っていたという罠。
325 :
デフォルトの名無しさん :02/10/26 21:55
>>324 白黒で・・・ってどういう意味ですか?
これだけだと実装の仕方だけでもいろいろあると思うから
他の人が研究してようが問題ないのでは?
たとえば、優勢な部分を判定するアルゴリズムが大きく効いてそうだし
細かい判定で何を判定するのかによっても全然違うものが
でき上がると思うよ。
俺には作れなさそうだ。
326 :
デフォルトの名無しさん :02/10/27 19:33
いい加減な事を書くなよ
327 :
名無しさんに接続中… :02/10/27 21:09
囲碁の場合、アバウトなイメージだから難しい。 将棋の場合は、駒がぶつかったら「取る」ことを考えるし 王手をかけられたら「避ける」しかないので必然の手がある 囲碁の場合は1マスぐらいずらして打っても構わないので これをプログラミングするのは難しいだろうな
328 :
デフォルトの名無しさん :02/10/29 00:20
学習といえば、ニューラルネット使った奴が けっこういい成績残したね。 俺にはサパーリなんですが。
結局、俺に勝てる囲碁プログラムを作れた奴はいないのか。 2chってバカばっか。
>>332 結局、自分に勝てる囲碁プログラムを作れた1はいないのか。
2chってバカばっか。
334 :
デフォルトの名無しさん :02/11/01 19:42
厳しい事言うね。 プログラムの中でも囲碁は難しいほうだよ。 日本中探し回っても、囲碁の思考の部分をプログラムできる人は 数えるほどしかいないと思うけど。
だいたいまだ300レスじゃねーか。
囲碁の評価関数の話をしませんか? 思うに、評価関数自体で再帰的に探索するような仕組みを作れば いいような気がする。 石の死活はこの石を殺すには先にこの石を殺して、その前に・・・と 延々続いていくので、この部分を上手に再帰的に処理できれば 石の死活に関してはかなり強くなるのでは。 とか書いてみる。もちろんアイデアだけで実現できてません。
337 :
デフォルトの名無しさん :02/11/02 22:48
>>336 提案してるのは「再帰」なわけ?
ぶっちゃけ、君相当レベル低いかも。
MiniMaxとか知ってる?
木構造=再帰で処理できる
再帰的に処理できる事のメリットはコーディングが容易なだけだけど。
評価関数の話で一つ問題を提起すれば
状況に応じて評価関数を切り替えるという方法は
一般的な方法だけれど、
では、状況というものをどう定義するか。
つまり、どういう状況に振り分けるか。
序盤、中盤、終盤に分ける方法が一番短絡的かもしれない。
他にもコウの時は別の評価関数を用意できるかもしれない。
評価関数の中身は別として、
どれくらいの状況に分けられるのか?
振り分けるアルゴリズムがあるかどうかはまた別の問題だと思う。
まあ、囲碁に限った話ではないんだが。
338 :
デフォルトの名無しさん :02/11/03 21:04
再帰という言葉を覚えたから使ってみたかったんだろ。
盤の端っこでの死活の問題はさ、強い人ほど先を読まずに形を暗記して うってるんですよ。 というわけで、死活はデータベースを作ればよろしい。
340 :
デフォルトの名無しさん :02/11/03 21:35
今なら10万件くらいは余裕で処理できそうだから・・・ log3 100000 =10 よって3*3の範囲なら全部覚えられる。 マス目の数*0.477=必要なレコードの桁数 16マスなら7桁、つまり100万レコードだ。
>>340 とりあえず、死活100選とかそういう本をざっと眺めてみる
ことをお勧めする。
342 :
デフォルトの名無しさん :02/11/03 22:19
>>341 たしかに、すべてのパターンは必要にならないけど
相手が常に最善を打ってくるとは限らないので
340に出てる数字と大差ないというか。
一マス増やしただけで、桁数が0.5桁増えるというのは
恐ろしい事だよ。
まあ、実際のプログラムでは
眼形データベースと演繹的な処理で判定するわけだけど。
詰め碁がデータベースでできたら、学会誌には出てこないよ。
343 :
デフォルトの名無しさん :02/11/05 01:44
書き逃げ?
HSP イイ!!
345 :
デフォルトの名無しさん :02/11/10 23:38
あきらめたとか?
盤のはしっこのデータベースつっても3*3じゃ正直狭すぎでわ? 5目中手ですら3*4の大きさは必要だし。 外側の石の状態とかも必要と思われ(安全、攻め合いになってる、とか)
>1に勝ったら賞金が出力されるロジックが必要なんだと思ってた・・
348 :
デフォルトの名無しさん :02/11/13 16:46
うにゅ
349 :
デフォルトの名無しさん :02/11/14 10:43
完全読みすれば死活の判定はできそうだけど
350 :
デフォルトの名無しさん :02/11/15 03:26
2*2でも、完全読みをするのはめちゃくちゃ時間がかかる
3x3が何とかなるレベル。 4は、今のPCだと辛すぎる。 5以上は間に睡眠や人生をはさまないと無理。
5x5は解かれた、と情報が流れていたけど?
353 :
minikat :02/11/17 19:30
解いた見たいですね。 確か結果は、白全滅。
354 :
デフォルトの名無しさん :02/11/17 20:22
それは完全読みじゃなくて、 ヒューリスティックを使ってるんじゃなかったっけ?
10/21のメールから。 天元に打って黒25目勝ち。 4時間で解いたとか書いてるな。 Yesterday my program solved 5x5 Go starting with the first move in the centre. As was expected it is a win for the first player with 25 points (the whole board belongs to black). I used an iterative deepening Alpha-beta search (PVS) with: - Transposition tables (2-deep replacement scheme, 2 x 2^24 entries) - Enhanced transposition cut-offs - Symmetry lookups in the Transposition table - 2 killer moves - History heuristic - Benson's algorithm for unconditional live (extended with unconditional territory) - Heuristic evaluation for positions that are not fixed by benson The solution was found at 22 ply deep (23 for the empty board).(searching 4.472.000.000 nodes in about 4 hours on a P4 2.0Ghz) The main reason why my search was able to solve 5x5 is Benson's algorithm which reduced the depth where a proven full-board-win is detected by at least 6 plies (compared to by old implementation which had to play many things out). Only the simple (japanese) ko-rule was used, so the result is independent of any superko-rule. This does not mean that super-ko is irrelevant, just that from the empty 5x5 board there is a forced line that avoids all long cycles.
356 :
デフォルトの名無しさん :02/11/18 00:08
This does not mean that super-ko is irrelevant, just that from the empty 5x5 board there is a forced line that avoids all long cycles. 誰かここ訳して As was expected って書いてあるから、完全読みではないんだよね?
>>356 日本ルールの単純なコウだけを考えていて、3コウとか長生とかの無限手順は
考慮していない、ってことでしょ。
3コウとかを軽視したわけではなく、5x5の盤では3コウとかになるのを
防ぐ強制的な手が存在するから、ということかな。
>>356 As was expected
それは、予期していた通り、という意味だと思う。
完全読みしてるんじゃないかな。
359 :
鬼池田 ◆uADIuuYAIU :02/11/18 09:17
拙訳です。用語、意味で間違ってたら直してください。 昨日、私のプログラムは初手天元の手から5路盤を解決しました。 予想通り、先番25目勝ち(全盤面が黒に属す) 反復アルファーベータ探索(PVS)を使用して: -移項テーブル(2手先置換計画、 2 x 2^24 候補手) -改良置換枝狩り -対称置き換えテーブル -2キラームーブ -ヒューリスティック -無条件生きのベンソンのアルゴリズム(無条件地に拡張された) -ベンソンのアルゴリズムに用意されていない盤面のヒューリスティック評価 22手の深さで解答が見つかったが(空の盤からは23手) (探索ノード数4,472,000、ペンティアム4の2Ghzで4時間) 私の探索が5路盤を解決できた主たる理由は、ベンソンのアルゴリズムが、少なくとも 6手必要なと思われる証明すべき全面勝ちの深さを、減らしてくれるからです。 (多くのことをやらねばならない従来の方法に比べて) 日本の単純コウルールだけを使用したので、結果はいかなるスパーコウルール(使用条件) からも独立していると考える。これはスーパーコウルールが不適切という意味ではなく すべての長い循環を避けるための、5路盤に限定された結果です。
360 :
デフォルトの名無しさん :02/11/18 14:14
>>359 グッジョブ
でも、完全読みかどうはうよくわからないね。
>>360 そうとは書いてないから完全読でしょう。
でなければ解いたとは言わないだろうし。
362 :
鬼池田 ◆uADIuuYAIU :02/11/18 14:51
すまん 探索ノード数は0が3つ足りません。(間違い)
363 :
デフォルトの名無しさん :02/11/18 15:25
これの意味がわからないと、完全読みかどうかもよくわからないね。 -移項テーブル(2手先置換計画、 2 x 2^24 候補手) -改良置換枝狩り -対称置き換えテーブル -2キラームーブ -ヒューリスティック -無条件生きのベンソンのアルゴリズム(無条件地に拡張された) -ベンソンのアルゴリズムに用意されていない盤面のヒューリスティック評価 で、俺は囲碁プログラミングに少しは詳しいつもりだったけど 一つもわからないよ。 誰か、ここら辺の説明が書いてある論文でも本でもWEBでも なんでもいいので教えてください。
6x6のオセロが解けたぐらいだから6x6までは 囲碁も解かれそうな気がするがどうよ?
>>363 -移項テーブル(2手先置換計画、 2 x 2^24 候補手)
ハッシュ表のことですな。1677万局面記憶可能。(おそらく)2手以上の探索結果のみを保存
-改良置換枝狩り
ハッシュ表で
-対称置き換えテーブル
ハッシュを見る場合に、局面の対称性も同時にチェック
-2キラームーブ
ある局面で有力な手があった場合、その手を兄弟局面でも先に試す。これを2手まで。
-ヒューリスティック
History ヒューリスティック。例えば、(2,2)に置いて場合の最善手が(2,3)だった場合、
その場所での回数を記憶しておき、他の局面での手の生成で先にそれを読む。
-無条件生きのベンソンのアルゴリズム(無条件地に拡張された)
ダメを詰めまくっても取られないので、この石は活き、という判定条件
-ベンソンのアルゴリズムに用意されていない盤面のヒューリスティック評価
適当に無条件活きの条件をでっちあげた、ということでしょう。
ベンソンのアルゴリズムはあまりに低レベルな判定をしているから。
369 :
鬼池田 ◆uADIuuYAIU :02/11/18 17:20
完全読みの定義だけど いかなる局面からも結果がわかる意味. と我思う。 全ては読めん、よって皆頭を悩ます DataBase作っているようなので、完全読みといっていいと思う。 Transpositon Table でハッシュと呼んでないのは 最善手やスコアーや深さを含んだ複合的なものだからだろう。 *David LevyのGamesmanshipはお勧め(将棋もあるでよ)
371 :
デフォルトの名無しさん :02/11/19 23:10
何×何路までだったら読み切れるのだろう? 5×5路までかな?
6x6ぐらいまでは読みきれるんじゃないか? とかてきとーな事を書いてみる。 9路が読み切れたらすごいだろうけど。 完璧なコミが分かるし(w
373 :
デフォルトの名無しさん :02/11/21 00:23
>>371 4x4は日本の清 愼一さん(囲碁プログラム勝也の作者)が最初にコンピュータで
完全読みをした。これが2000年のこと。
5x5は、今年、完全読みがされた。
>>365 では、
>-ベンソンのアルゴリズムに用意されていない盤面のヒューリスティック評価
>適当に無条件活きの条件をでっちあげた、ということでしょう。
>ベンソンのアルゴリズムはあまりに低レベルな判定をしているから。
と言っているみたいだが、無条件活きの条件をでっちあげているのではなく、
この先、どう指せば活きになりやすそうか?という判定に用いているように
読めた。(英語力が足りんので間違ってたらスマソ)
つまり、いい加減なことはせずに、きっちり最後まで読みきった、ということ。
さて、論文を見る感じでは、4x4は実はかなり力技(^^;で解いたようだが、
5x5は、やはりずいぶん工夫をしてやっと解けたということのようだ。
単純に考えて、6x6は、36*35*34*33*32*31*30*29*28*27*26倍、5x5よりも
難しいので、(実際には対称形があるのでもっと減るけど)すぐに完全読み
されるとは思えない。
…もっとも、この程度なら時間の問題かな。
374 :
鬼池田 ◆uADIuuYAIU :02/11/22 23:33
中山典之プロの古い著作より。 岩波新書 囲碁の世界 1986年初印刷 コンピュータ碁や五路盤について言及している。 P198より抜粋 ところで、25の階乗は...26ケタと言う長いものとなったが、 ... ただし、コンピュータ君は、油汗をながしてでもこの程度のことは 読みきるだろうが、人間さまというのは偉いもの(?)で、もし、あなたが幸いにして アマチュア初段くらいの力があれば.....。 黒1の手で、右上の図に示したように天元(盤の中央)に打ち、黒が24目勝にな ることをタッタの1秒で読み切れるであろう。こうしてみると、われわれも頭の中にも のすごく高度なコンピュータを持っているとも言えそうである。 そうですね中山先生。でも、ゆっくりですけど進歩してます。 長生きして待っててください。
375 :
鬼池田 ◆uADIuuYAIU :02/11/22 23:35
中山典之プロの古い著作より。 岩波新書 囲碁の世界 1986年初印刷 コンピュータ碁や五路盤について言及している。 P198より抜粋 ところで、25の階乗は...26ケタと言う長いものとなったが、 ... ただし、コンピュータ君は、油汗をながしてでもこの程度のことは 読みきるだろうが、人間さまというのは偉いもの(?)で、もし、あなたが幸いにして アマチュア初段くらいの力があれば.....。 黒1の手で、右上の図に示したように天元(盤の中央)に打ち、黒が24目勝にな ることをタッタの1秒で読み切れるであろう。こうしてみると、われわれも頭の中にも のすごく高度なコンピュータを持っているとも言えそうである。 そうですね中山先生。でも、ゆっくりですけど進歩してます。
376 :
デフォルトの名無しさん :02/11/23 13:33
ベンソンのアルゴリズムについての解説ってありますか?
質問。 読み切れたら正当なコミがいくつか解るんですか? たとえば、4×4路と5×5路はコミいくつが適正とか解ってるんでしょうか?
>>378 4路盤のコミは15目で、5路盤のコミは24目が適正です。
380 :
デフォルトの名無しさん :02/11/24 22:21
381 :
デフォルトの名無しさん :02/11/24 22:25
1路盤のコミは?
383 :
デフォルトの名無しさん :02/11/25 12:38
えーと、 先手必勝なの?
384 :
デフォルトの名無しさん :02/11/25 20:45
1路盤だと、呼吸点がないので先手も後手も盤に石を置けない。 引き分け…というのかな…。
385 :
デフォルトの名無しさん :02/11/29 12:45
定期あげ
386 :
デフォルトの名無しさん :02/12/01 23:46
2ch碁はないの?
388 :
デフォルトの名無しさん :02/12/08 02:01
ほーしょ
389 :
デフォルトの名無しさん :02/12/08 20:42
誰かフリーの囲碁を一緒に作りませんか?
390 :
デフォルトの名無しさん :02/12/08 20:56
囲碁ってpassありなの?
391 :
デフォルトの名無しさん :02/12/08 20:57
ありだよ。 passが2かい続いたら終了
392 :
デフォルトの名無しさん :02/12/08 21:56
そうですか.
393 :
デフォルトの名無しさん :02/12/08 22:03
394 :
デフォルトの名無しさん :02/12/08 23:07
囲碁のやりかた知らんし
395 :
デフォルトの名無しさん :02/12/09 04:44
このスレ読むと人間って賢いなって思える。
396 :
デフォルトの名無しさん :02/12/24 10:14
囲碁将棋版住人なんだけど、素人考えで悪いけど 読みきりとかいいから、頼むからもちーと強い囲碁ソフトつくれないもんでつか? 将棋だって読みきりなんかできんが囲碁ほどひどくはない・・・
ご安心を。 囲碁はとーっても難しいです。
398 :
デフォルトの名無しさん :03/01/02 16:21
あげ
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
祈念真紀子!!
んなもん沢山金があれば問題なかったことだろ ぴろいき働けばいいじゃん。
>565 もう買った。
負け犬は現実社会ではなにもできない奴ばっかだから間に受けない方がいい負け犬=俺以外のやつ
これからは馬鹿って書いただけで訴えられる可能性がでてきたわけで
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
テストカキコミ
糞スレ立てたやつもIP抜かれてアク禁 串使っても意味なし
>>24 じゃ、いつ作為義務が発生したと判決は言っているというのでしょうか?
ちがいます。
年金
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。
勢いで上告なんかしても一発で上告却下(門前払い)だよ。
二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。
言論の自由はどこに逝ったんだ?
語尾に「・・という夢をみた。」をつければいいんじゃねーの?
>>720 一般人はどうやってみるんだ?
掲示板といえるのか。
場所によるよね。 匿名重視の板では厨房どころか普通の客まで帰っちゃうという罠。 実況なんかだと逆に非常に便利(荒らしの特定)だろうけど。
携帯電話からだとIPがかぶることあるけど その時はどうすんの?
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
これからは自分が思った事や感じた事をそのまま書き込めないということか?
佐藤をぶち込ます!
ポイズン
ほい
はどこで叩かれた有名人さんだろう?
ネオむぎを超えるわけない 犯人が17歳以下なら話は別だが
それ個人情報でもなんでもない つーか共通情報じゃけん
反応はや(藁
白白白 発発発 厨厨厨 東東東 776 待ち盃7 リーチ
IPとるからいうだけで怖がるやつが多いということに2chの本性を見た。俺は『マンコ』とかくのに『ためらいなど無い』
435 :
名無し@沢村 :03/01/12 07:49
ヌヒ等よ、囲碁のルールはな、はさみ将棋と似ていてな、囲んだら相手の石を取れるのよ。 その囲み方はな、たてとよこで囲むのよ。ななめは囲んでなくてもいいよ。 ただ相手が石を並べてその中に空白を2つ以上つくっていたら、囲んでも取れないのよ。この場合陣地がいきているというのよ。 最後はその生きた陣地の数で勝敗を決めるのよ。 取った石は最後に計算するとき、相手の生きた陣地に埋めていって陣地を減らすのに使うわけよ。 囲碁のルールはたったこれだけよ。将棋よりずっと単純だよ。 ヌヒ等よ、囲碁を知らないヌヒ等よ、囲碁のルールがわかったかな?
4ndってネタ?4thじゃないの?
ゲット
439 :
名無し@沢村 :03/01/12 10:07
>>438 ひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆき
ひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆき
ひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆき
ひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆき
ひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆきひろゆき
ああ〜ひろゆき〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜ってか?
ヌヒはひろゆきと寝ろ!!!
440 :
デフォルトの名無しさん :03/01/12 16:27
生きた陣地の計算方法がコンピューターだと難しいんだよね。
IPは最初から抜いてたさ・・・ でもな、ひろゆきがIPを保存してないフリをして 俺達を警視庁から守ってくれてきたんだ―――
結局、獣医本人の閲覧は不要ということに、少なくともなると思うが?
ありがとう、書き込めるようになりました。
(^^)
さーど じゃなくて さんど だろ。
(^^)
(^^)
448 :
デフォルトの名無しさん :03/02/08 14:28
yatta
449 :
デフォルトの名無しさん :03/02/08 15:06
最強のオセロスレはまだですか?
450 :
デフォルトの名無しさん :03/03/02 16:50
GNU碁ヨワスギ・・・
最新のGNU碁は十分強いよ。 市販の最強に4子ぐらいか。
452 :
デフォルトの名無しさん :03/03/16 16:27
453 :
デフォルトの名無しさん :03/03/25 11:55
age
(^^)
455 :
デフォルトの名無しさん :03/05/20 21:34
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
結局、獣医本人の閲覧は不要ということに、少なくともなると思うが?
今週は棋譜の保存とクリップボードに書き出し、そして読み込み。
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
(^^)
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
メンテ
保守の定石
465 :
デフォルトの名無しさん :03/10/05 04:47
アルゴリズムとはあんま関係ないけどさ、 相手の手を待っている間って考えちゃいけないわけ?
466 :
デフォルトの名無しさん :03/10/05 07:06
保守の1手
>>451 俺も GNU碁なんて、って鼻糞ほじりながらやってたら
負けたよ。
Emacs Frontend だったから UIがわるかった、っていいわけしながらな。
と、半年以上前のにレスしてみる一手。
試しにGNU碁を入れてコマンドラインで走らせてみた。 序盤は平凡な優等生。 中盤は時々謎な手。 次第に悪手が増え、ことごとく死亡。 一ヶ所を除いて全て殺せた。弱すぎる。 5級すら届かないと思われる。
470 :
デフォルトの名無しさん :04/02/13 13:19
>>468 Jago(Client)で
碁モデムプロトコル(GMP)で対戦の碁プロトコルサーバーに
gnugo.exe --quiet --mode gmp
とすればGUIで対戦できるよ。
ミ゚Д゚,,彡
472 :
デフォルトの名無しさん :04/05/23 19:29
保守
ゲームキューブのヒカルの碁に、かてません
GnuGo3.5.9に勝てん!
475 :
デフォルトの名無しさん :04/11/01 05:02:25
メンテage
北朝鮮製が強い。
477 :
デフォルトの名無しさん :04/12/07 11:09:26
囲碁がどれだけ難しいかこれでわかっただろ?
>>477 難しいのは、囲碁じゃなくて囲碁ソフト。
数千億円つぎこんだ日本の一大国家プロジェクトの柱の一つだったが
あえなく失敗。
gnu碁に井目おかせて全滅されると悲しいもんがある。
ホッシュ ホッシュ
480 :
デフォルトの名無しさん :2005/04/28(木) 21:29:36
やっと見つけたが、このスレは活きてるの? コンピュータで解決された5路盤の最強アルゴリズムって どうやって調べたら良い?
482 :
◆09BIGO2qiI :2005/06/03(金) 22:48:04
日本語でGMPについてわかりやすく説明されてるサイトない? 自分のプログラムをgnuと対戦させたいけどGMPがよくわからん。 つーか、みんながコンテストに参加しやすいように 候補手作るプログラムだけ作ればいいようにGUI作って。
保守
>482 岐阜チャレンジに通信対戦用のサンプルプログラムがあったぞ。
捕手
488 :
デフォルトの名無しさん :2005/11/09(水) 05:39:39
再帰関数を使わないでmain関数のみで囲碁プログラムを作る
ほほう。買ってみるか。
491 :
デフォルトの名無しさん :2005/11/28(月) 18:26:58
やってみようと思ったのですが、そもそも囲碁の終局条件というのがよくわかりません。
両対局者がパスしたら終局 つまりどちらももう儲かる手が無いと判断した時
493 :
デフォルトの名無しさん :2006/03/04(土) 19:48:52
2四歩
おまいら囲碁板見てるか? お勧めのスレは? 二桁の俺に勧めるならどのスレ?
TextSS のWindowsXP(Professional)64bit対応化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
496 :
デフォルトの名無しさん :2006/03/18(土) 22:28:13
マルチガッ!
497 :
デフォルトの名無しさん :2006/03/30(木) 01:12:36
498 :
デフォルトの名無しさん :2006/03/30(木) 02:01:41
中国流が主流だね
499 :
デフォルトの名無しさん :2006/03/30(木) 02:03:32
囲碁にパスはないよ。 ムが判断しないから終局教えるためにパス押すだけだ
>>497 囲連星スレは見てるよ。たまに打つよ。
コツコツ棋譜並べと詰碁するしかないか。
将棋板と分かれてから、盛り下がってない?
>>500 KGSで夜に”初心者の間”ってのがあるから来てみて。
死活判定、終局判定してくれるフリーなソースどこかに落ちてませんか?
つGNUGO
厚いとか薄いとか軽いとか重いとか、どんなデータ構造であらわせばいいの?
>499 ?
506 :
デフォルトの名無しさん :2006/05/13(土) 04:57:36
NHK-BSで先週やった本因坊秀策の特集で囲碁に興味を持って 勢いで「コンピュータ囲碁の入門」を買ってしまいました これから読んでみます
507 :
デフォルトの名無しさん :2006/05/17(水) 16:21:04
誰か囲連星の強いプログラム作ってくれ。 公式HPからソフトダウンロードできるから C書ける人なら強いの作れるんじゃないか?
508 :
デフォルトの名無しさん :2006/05/22(月) 22:15:27
C書けてもゲームのプログラムはちょっと違うからね。 ただ囲連星は今の段階でAIちょっと弱いからあれより強いのは比較的容易?
とりあえず9路のAIでも作ってみようかな。 GTPとかいうプロトコルに従えばGUIは既存のものが使えるんだよね?
とりあえず囲碁のルールをコーディングしてみた。 AIはどうやって作ればいいかわからんが学習機能とかあって 打つたびに強くなっていくとかあるといいかも。
囲連星ってプログラムで賞金出てるな
マジで? ソースきぼんぬ。
最強でいる間は毎月1万円貰えるってこと?
>>515 それはさすがにないだろ。
ただし今の段階で完成すれば100%1万は貰えるな。
現状のソフトの強さなら
囲碁のプログラムを書くのに一番適した言語って何よ?
実行速度が速くて、コレクションが充実してる言語。 C++でいいんじゃね。
9路なら巨大データベースを使えばイイ線行くんジャマイカ。
5路で一杯一杯なのに9路なんて無理無理
522 :
デフォルトの名無しさん :2007/02/23(金) 12:15:52
523 :
デフォルトの名無しさん :2007/03/28(水) 10:50:18
2007年01月05日
人間に勝つ囲碁ソフトウェアの開発を計画
「われわれの目標は、人間に勝つ囲碁プログラムを開発することです」
北朝鮮情報技術分野の尖兵である三日浦情報センターの囲碁プログラム開発チームが、新年でも最新プログラムを開発するための研究に没頭している、と在日本朝鮮人総聯合会機関紙の朝鮮新報インターネット紙が5日に紹介した。
新聞によれば、このセンターはゲームプログラムのうち唯一、人間に勝つことができない分野として選ばれるコンピューター囲碁プログラム開発の分野で世界的な実力と技術を持つところ。
昨年、日本で開かれた「世界囲碁(プログラム)挑戦者大会」で優勝して6連覇の偉業を達成し、今年は7連覇を狙っている。
開発チーム全員が英才教育機関である平壌第1中学校卒業生であり、金日成綜合大学や金策工業大学にて秀才教育を受けてきた。平均年令も25歳と、若年層から構成されている。
開発チームの責任者であるチョ・サンヒョン(30)技師は「国家はコンピューター科学部門に多くの関心を傾けている」とし「祖国の栄誉を輝かせるために、今年も必ず優勝する」と語った。
彼はこれとともに「今年の大会では以前の枠組みから完全に抜け出した、最強のプログラムを出す」と付け加えた。
開発チームには試練もあったという。協力事業を推進したカナダの企業が米国の制裁によりコンピューター設備を北へ搬入できないため事業が水泡に帰し、特に昨年、日本で開かれた大会ではプログラム開発者の入国が拒絶される困難をも経験した。
開発チームの李イルジン技師は「われわれが大会で優勝することは、すなわち制裁の圧力に屈しない朝鮮の気性を誇示することだ」と述べ、「大会に参加するその都度、常に優勝を狙ってはいるが、単純な優勝ではなく百戦百勝がわれわれの目標だ」と力説した。
http://nk.chosun.co.kr/news/news.html? (Mar 26, 2007 11:18:22 PM)
軍部や指導部はともかく、こういった下のほうで頑張っている人は応援したい。 とはいえ入国は勘弁。どうせ余計な人を連れてきたり連れて帰ったりするんだろ。
研究と称するならきちんと内容を公表してくれないと
526 :
デフォルトの名無しさん :2007/06/09(土) 10:50:36
おれ最近ソフト作ってます。 なのでSGFファイルが大量にいるんだけど、どこでとってきたらいいのでしょうか教えてください。 棋譜でーたべーすでは一個ずつしか落とせないし、MOYOGOSTUDIOではSGFの配布をやめてしまったようです。
>>528 >526自身が
>棋譜でーたべーすでは一個ずつしか落とせないし
ってかいてますが
532 :
デフォルトの名無しさん :2007/10/09(火) 13:36:44
533 :
デフォルトの名無しさん :2007/10/30(火) 18:11:50
あ
保守しておくか
GNU Goのソースすら理解できない俺にいったい何が作れると言うのだろう
ありゃ長過ぎるわな
537 :
デフォルトの名無しさん :2008/03/24(月) 22:34:41
囲連星にHSPでプログラム HSP(スクリプト言語)でプログラムするサンプル があるからHSPでがんばっちゃうぞ 10万円GETだぜい
ソースはあきらめて、とりあえずGNU Goのドキュメント読んでみることにしました
play_ascii.cとかは結構読める、なんかここにある printf("○○○") を日本語に訳せばHELPとか終局したあとに出るメッセージ、表示が日本語化できるじってことに気づきました
GNU Goとかほかの囲碁AIって相手が思考中のときはなにもしちゃいけない、みたいなルールがあるの?
ない.強いプログラムは相手が考えてる間も動いてる. 例えば MoGo には --pondering ってオプションで指定できる.
>例えば MoGo には 例えば MoGo は だった
ponderingが出来るMoGoと比べると、熟考できないプログラムはなんかかわいそうですね
地の数と大きさ、位置が決まってる単純なモデルを幾つか用意しておいて それに沿うように着手を選んでいくようなのは既出?
意味不明
整地された後の碁盤を参考にしながら打っていく感じ
>参考にしながら ここを凄く詳しく3行で説明して
このスレにあった10行囲碁ソースを元に作ってみようかな。 展開して調べたら、あれに入ってる評価関数は 石数に比例するもの ・石が取れる ・アタリにいける ・囲いにいける ・隣接させる しないもの ・自殺打はしない ・息ができる くらいだった。 アタリされても逃げないから超弱いけど、そのくらいならすぐ追加できそう。 あとはコウ、ウッテガエシ、シチョウの認識とか、生き死に判定とか……
将棋スレにおもしろいレスがあるな。
まずは5路盤、9路盤で開発中。互いにランダムに打っていくAIと簡単なルールベースのAIをテスト中。 呼吸点と石取りを実装。コウ判定や生死判定は未実装。 とりあえず最後までダメを打たせているので、 勝ち負けの判定、生死判定は実装できるはず。 この段階でも一応終局まで打てるようなので、モンテカルロ法を試してみる。 当初の予想通り、大量の終局図の平均値は石の利きを反映した結果になっているようだ。 これをAIの大局観として利用していきたい。
551 :
デフォルトの名無しさん :2008/09/11(木) 03:23:41
age
ルールの作り込み、アルゴリズムの作り込みが終わり、9路盤で局面に対する評価が行えるようになった。 勝ち負け判定も実装したが、これはあくまでモンテカルロの結果判定用なので 最後までバカ正直にダメを埋めまくってくれないと判定できない。 とはいえ、局面の評価を画面表示し、デバッグできるところまで作り終わったのでよしとする。 まだアイデアはあるので、現状よりもう少し強くなるはずだ。 まだ全自動対局はできないが、人が評価関数が最大になっているところに石を置いていってやれば 対人対局、対別アプリ対局は可能。基本的な動きは確認できたので、あとはI/Fの問題になる。 手動対戦でそこそこ戦えるレベルになったら、通信対戦機能やCへの移植を検討しようと思う。
553 :
デフォルトの名無しさん :2008/09/14(日) 23:55:15
・画面表示のバグ取り、改善 ・モンテカルロする際、初手はランダムではなく合法手を走査するようにした (試行回数の偏りを減らし、評価値を安定させるため) 2手〜4手まで打って3〜5手目を探索させてみると、9路盤のいくつかの定石が浮かび上がってきて面白い。 しかしランダム打ちという性質上、石の取り合いや優先順位がある打ち回しはヘタクソだ。 明日は手の前後関係に関する新たなアルゴリズムを検証するつもり。
554 :
デフォルトの名無しさん :2008/11/03(月) 22:13:26
人いないな
555 :
デフォルトの名無しさん :2009/01/22(木) 23:35:01
最近興味を持ち勉強中。
が、なかなか手強いぜ^^;
>>136 はほとんどネ申だな・・・
556 :
デフォルトの名無しさん :2009/01/31(土) 09:57:34
557 :
デフォルトの名無しさん :2009/01/31(土) 22:05:49
558 :
デフォルトの名無しさん :2009/02/09(月) 10:07:25
一二三四五六七八九 1┌┬┬┬┬┬┬┬┬ 2├┼┼┼┼┼┼┼┼ 3├┼┼┼┼●┼┼┼ 4├┼┼ ・ ┼┼┼┼┼ 5├┼┼┼┼┼┼┼┼ 6├┼○┼┼┼┼┼┼ 7├┼┼┼┼┼┼┼┼ 8├┼┼┼┼┼┼┼┼ C言語でこういう碁盤表示させる関数だけ書いて開発終了した
メーリングリストブラウザとかないのかな
561 :
デフォルトの名無しさん :2009/09/23(水) 19:43:58
?
562 :
デフォルトの名無しさん :2010/01/11(月) 16:29:15
563 :
デフォルトの名無しさん :2010/09/17(金) 23:14:01
?
こんなスレが無くなったところで別に寂しくなんかないから保守なんてしない。
565 :
デフォルトの名無しさん :2011/11/20(日) 11:18:41.83
ないね
>315 :デフォルトの名無しさん:2009/02/12(木) 18:34:06 アホスwww
5路盤て完全解析されたんだね 159 名前:名無し名人[sage] 投稿日:2012/02/10(金) 05:47:57.49 ID:BUw+wAAO 完全解析をするには従来の探索手法の他に、 数学的証明によって探索する必要の無い局面や手の相当なパターンが発見されないとな 囲碁ではベンソンが発明したアルゴリズムによって必要な探索局面数を大幅に削減し、完全解析を可能にした 5路盤の
568 :
デフォルトの名無しさん :2012/02/17(金) 01:18:25.19
>>568 難解すぎるw
要は「何回パスしても取れない石は無条件活」てことかな?
昔囲碁の思考ルーチンをjavaで書いたんだけど、盤面認識と役に立たないαβ法で終了したな zenが最近頑張ってるし、俺もまた書いてみるかな 機械学習勉強したから、今度はマルコフ連鎖モンテカルロ法入れた方法でgnugo倒す!!
囲碁の論文ってどこでダウンロード出来るんですか? 有料しかないですか?
572 :
デフォルトの名無しさん :2012/10/08(月) 04:01:12.19
あげ
574 :
デフォルトの名無しさん :2012/10/12(金) 11:57:21.55
第二種超伝導体において、外部磁場が臨界磁場Hc1とHc2の間にあるときに起こる。
575 :
デフォルトの名無しさん :2013/05/25(土) 22:56:12.46
囲碁対戦の標準的な通信プロコトルってありますか?
>>576 その質問をそのまま Google にぶち込むだけで解決するのに、よりによって 2ch で質問するから罵倒されるんだぞ? 恥知らずめ。
GTPを使う思考エンジンを作る時は GNU Goがリファレンス実装だから参考に
記譜再生アプリがjavaアプレットばっかりだけど 正直今更javaとか使えないよね そっち系の話はどっかでやってる?
fuegoをubuntu 13.10でコンパイルすると、 /usr/bin/ld: ../smartgame/libfuego_smartgame.a(libfuego_smartgame_a-SgUctSearch.o): シンボル 'pthread_mutexattr_settype@@GLIBC_2.2.5' への未定義参照です というエラーが出て終了してしまう。 どうも、 -lpthread が認識されていないようだ。 Makefileに、片端から LIBS= -lpthread をいれたら fuegomainフォルダーのMakefile に LIBS= -lpthread としたら コンパイルが通った。 正式には、どこを修正すれば良かったのでしょうか。
582 :
デフォルトの名無しさん :2014/02/24(月) 20:26:23.44
囲碁の定石がまず分からない
583 :
デフォルトの名無しさん :2014/02/28(金) 17:06:07.85
囲碁より将棋のほうが面白い
584 :
デフォルトの名無しさん :2014/03/01(土) 14:14:39.20
囲碁は盤が広すぎていやになる。 あれどうやって管理すんの? 二次元配列?
オセロから出直しておいで
586 :
デフォルトの名無しさん :2014/03/02(日) 21:32:24.80
3次元囲碁とかどうよ
587 :
デフォルトの名無しさん :2014/03/02(日) 22:34:50.77
Hyper IGO(アイゴー)3D。
588 :
デフォルトの名無しさん :2014/03/06(木) 06:45:42.61
?
589 :
デフォルトの名無しさん :2014/03/08(土) 03:14:47.62
5次元囲碁
590 :
デフォルトの名無しさん :2014/07/31(木) 22:46:13.28 ID:USUjImXX
とりあえず保守って置きましょうかね
591 :
デフォルトの名無しさん :2014/08/02(土) 10:11:05.15 ID:rzfmiO4p
★2ch勢いランキングサイトリスト★ ◎ +ニュース ・ 2NN ・ 2chTimes ◎ +ニュース新着 ・ 2NN新着 ・ Headline BBY ◎ +ニュース他 ・ Desktop2ch ・ 記者別一覧 ◎ 全板 ・ 全板縦断勢いランキング ・ スレッドランキング総合ランキング ◎ 実況込み ・ 2勢 ・ READ2CH ・ i-ikioi ※ 要サイト名検索
5次元ってなんだ
unko
manko
てすと
過疎ってるな
このくらいがちょうどええ
598 :
デフォルトの名無しさん :2014/11/23(日) 13:07:49.89 ID:exByohQM
>>109 余ってるPCとはMSX1とかでしょう?
N次元囲碁 まず石で囲った2次元の地(面)を作る その面で囲った3次元の地(立体)を作る その立体で囲った4次元の地(超立体)を作る 以下、同様
とりあえず、みんなで九路盤でも打ってみない? ※一二三四五六七八九 01┌┬┬┬┬┬┬┬┐ 02├┼┼┼┼┼┼┼┤ 03├┼┼┼┼┼┼┼┤ 04├┼┼┼┼★┼┼┤ 05├┼┼┼┼┼┼┼┤ 06├┼┼┼┼┼┼┼┤ 07├┼┼┼┼┼┼┼┤ 08├┼┼┼┼┼┼┼┤ 09└┴┴┴┴┴┴┴┘
※一二三四五六七八九 01┌┬┬┬┬┬┬┬┐ 02├┼┼┼┼┼┼┼┤ 03├┼┼┼┼┼┼┼┤ 04├┼┼┼┼★┼┼┤ 05├┼┼┼☆┼┼┼┤ 06├┼┼┼┼┼┼┼┤ 07├┼┼┼┼┼┼┼┤ 08├┼┼┼┼┼┼┼┤ 09└┴┴┴┴┴┴┴┘
※一二三四五六七八九 01┌┬┬┬┬┬┬┬┐ 02├┼┼┼┼┼┼┼┤ 03├┼┼┼┼┼┼┼┤ 04├┼┼┼┼●┼┼┤ 05├┼┼┼○★┼┼┤ 06├┼┼┼┼┼┼┼┤ 07├┼┼┼┼┼┼┼┤ 08├┼┼┼┼┼┼┼┤ 09└┴┴┴┴┴┴┴┘
出そうにないな
※一二三四五六七八九 01┌┬┬┬┬┬┬┬┐ 02├┼┼┼┼┼┼┼┤ 03├┼┼┼┼┼☆┼┤ 04├┼┼┼┼○┼┼┤ 05├┼┼┼○●┼┼┤ 06├┼┼┼┼┼┼┼┤ 07├┼┼┼┼┼┼┼┤ 08├┼┼┼┼┼┼┼┤ 09└┴┴┴┴┴┴┴┘
※一二三四五六七八九 01┌┬┬┬┬┬┬┬┐ 02├┼┼┼┼┼┼┼┤ 03├┼┼┼┼┼○┼┤ 04├┼┼┼┼○┼┼┤ 05├┼┼●●●┼┼┤ 06├┼┼┼┼┼┼┼┤ 07├┼┼┼┼┼┼┼┤ 08├┼┼┼┼┼┼┼┤ 09└┴┴┴┴┴┴┴┘
※一二三四五六七八九 01┌┬┬┬┬┬┬┬┐ 02├┼┼┼┼┼┼┼┤ 03├┼┼┼┼┼○┼┤ 04├┼┼┼┼○┼┼┤ 05├┼┼●●○┼┼┤ 06├┼┼┼┼☆┼┼┤ 07├┼┼┼┼┼┼┼┤ 08├┼┼┼┼┼┼┼┤ 09└┴┴┴┴┴┴┴┘
※一二三四五六七八九 01┌┬┬┬┬┬┬┬┐ 02├┼┼┼┼┼┼┼┤ 03├┼┼┼┼┼○┼┤ 04├┼┼┼┼○┼┼┤ 05├┼┼●●●★┼┤ 06├┼┼┼┼○┼┼┤ 07├┼┼┼┼┼┼┼┤ 08├┼┼┼┼┼┼┼┤ 09└┴┴┴┴┴┴┴┘