囲碁、実践詰碁トレーニングソフト
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/09/03(木) 23:22:41難しいアルゴリズムは分からないけど、拾い物を組み合わせるくらいならたぶんできる。
助言くだされ。
【仕様】
1.囲碁サーバ(KGSを想定)からユーザの棋譜を取得する。
2.棋譜を解析し、大石が死んでいないか調べる。
3.死活に関わる悪手があればその箇所を特定する。
4.その局面を問題としてユーザに出題する。
5.ユーザは出題された問題に対しインタラクティブに入力することができ、
ソフトは詰碁ルーチンを使用してユーザの着手に応手する。
0002デフォルトの名無しさん
2009/09/03(木) 23:40:22パソコンを窓から投げ捨てて、レゴブロックで遊ぶといいよ
もしあなたが天才的に頭が良いなら、助言するのでそう仰ってください
0003デフォルトの名無しさん
2009/09/04(金) 00:22:59言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0004デフォルトの名無しさん
2009/09/04(金) 06:34:06あれに対向できる人間の戦略とかあるのかな。
0005デフォルトの名無しさん
2009/09/04(金) 07:21:53その具体例を示してくれないか。
あなたがどこまでのものを目指しているのか、いまいち分からん。
やろうとしている事は面白そうだ。
目の付け所はいいと思う。
00061
2009/09/04(金) 22:38:25目指すのはあくまで実戦であることを重視した詰碁、
ということでKGSで新アカとって一個棋譜作ってきました。
アカウント名はTumeToreです。
どの局面を切り出して出題するかってのを自動判別するのは相当難しそう。
俺自身、詰碁が苦手だしね。
俺じゃそのアルゴリズムはかけないだろうな。
出題例としては138手目とか166手目とか185手目とかが良いかなぁ
00071
2009/09/04(金) 22:39:53RU[Japanese]SZ[19]KM[6.50]TM[1500]OT[5x30 byo-yomi]
PW[TumeTore]PB[---]DT[2009-09-04]PC[The KGS Go Server at http://www.gokgs.com/]
C[---: hi
TumeTore: hi]
RE[W+5.50]
;B[pd];W[qp];B[dc];W[oq];B[dp];W[nc];B[qf];W[pb];B[qc];W[kc];B[ce];W[fq];B[cn];W[iq];B[lq];W[lo];B[jp];W[ip];B[jo];W[jq]
;B[kp];W[hn];B[np];W[op];B[no];W[qh];B[qj];W[oh];B[pn];W[pl];B[oj];W[oo];B[on];W[nn];B[ol];W[nm];B[nl];W[lm];B[jm];W[ml]
;B[qm];W[mk];B[nj];W[mj];B[nh];W[mi];B[ni];W[il];B[kk];W[jl];B[im];W[hm];B[io];W[ho];B[kl];W[km];B[hl];W[hk];B[gl];W[jj]
;B[kj];W[ji];B[ki];W[jh];B[nq];W[or];B[kr];W[mr];B[nr];W[ns];B[lp];W[mo];B[gp];W[hp];B[gq];W[hr];B[gr];W[jr];B[ls];W[ms]
;B[mq];W[fn];B[gk];W[jk];B[fm];W[en];B[dm];W[fr];B[fp];W[jn];B[in];W[js];B[lr];W[os];B[hs];W[is];B[gs];W[hq];B[kn];W[ko]
;B[kh];W[kg];B[lh];W[mh];B[lg];W[mg];B[jg];W[kf];B[lf];W[ke];B[le];W[kd];B[ne];W[ng];B[nd];W[ig];B[og];W[df];B[de];W[ff]
;B[ef];W[eg];B[ee];W[fg];B[hd];W[hb];B[hf];W[hg];B[gc];W[ic];B[mc];W[mb];B[oc];W[nb];B[ob];W[oa];B[qb];W[cq];B[dq];W[cp]
;B[co];W[dr];B[eo];W[br];B[cs];W[bo];B[bn];W[bp];B[er];W[ds];B[es];W[cr];B[cg];W[dg];B[ch];W[an];B[am];W[ao];B[bl];W[ro]
;B[rn];W[qo];B[ei];W[gb];B[fc];W[rl];B[rm];W[om];B[pm];W[ql];B[pk];W[nk];B[ok];W[sl];B[rk];W[sn];B[sk];W[sm];B[qk];W[so]
;B[gh];W[gg];B[fb];W[pg];B[of];W[pi];B[ri];W[rh];B[si];W[rf];B[re];W[pf];B[qe];W[md];B[me];W[ld];B[qa];W[pa];B[na];W[ma]
;B[pc];W[na];B[id];W[jd];B[hc];W[ib];B[gn];W[go];B[fo];W[gm];B[em];W[ln];B[hj];W[if];B[ie];W[dh];B[di];W[cf];B[bf];W[fa]
;B[ea];W[ga];B[eb];W[hh];B[je];W[jf];B[gi];W[ij];B[hi];W[ii];B[dn];W[ge];B[he];W[nf];B[oe];W[fh];B[fi];W[gn];B[fe];W[gf]
;B[mm];W[mn];B[ll];W[po];B[gd];W[qn];B[ik];W[eq];B[fs];W[hk];B[lb];W[lc];B[ik];W[mm];B[hk];W[lk];B[];W[]
C[
TumeTore : thx
--- : thx
])
00081
2009/09/04(金) 23:03:23できるならそういうのも指摘できたらいいな。
00091
2009/09/04(金) 23:26:27理想をいえばきりがないから>>8みたいな微妙なのはとりあえず保留だね。
最低ラインとしては隅の死活で無条件に生きれたり、殺せたりしたはずなのに
実戦で間違ったらそこを出題して、ユーザの着手に正しい応手することだな。
00101
2009/09/05(土) 00:14:58咎められてないけどw
00111
2009/09/05(土) 09:36:15囲碁わかってる奴なんてそうそういないか。
0012デフォルトの名無しさん
2009/09/05(土) 10:46:33隅の死活で無条件に生きれたり、殺せたりしたはずの部分を言葉で説明してくれ。
なぜそこで無条件に生きれたり、殺せたりできたのか。
それをコンピュータで、つまり計算で判断できるかどうかを考えるのは
その説明がちゃんとできた後だ。
判断基準がしっかりしていないと計算できないからな。
0013デフォルトの名無しさん
2009/09/05(土) 10:48:030014デフォルトの名無しさん
2009/09/05(土) 16:22:40へ三段ジョブチェンジというオチ
00151
2009/09/05(土) 18:25:29死活判定はかなり高度な技術なので俺が実装すんのはムリポ。
死活のルーチンはどっかから拾ってこれないかな〜と考えてる。
>>13
棋力はkgs 1dくらい。
プログラミング歴は...歴だけでいうと結構長いけどあんまり大したことできない。
母国語はC/C++。Ruby好き、Java嫌い。でもwrite once run anywhere は憧れる。
囲碁のルール(囲われた石を打ち上げる、コウのルール、自殺手禁止)くらいは実装したことある。
2分木は実装できるけど平衡2分木はできんかった。
ネットワーク系はさっぱり分からん。
GUIはかじった程度なら。
>>14
見切り発車でスレ立てたのは認める。
0016デフォルトの名無しさん
2009/09/05(土) 19:30:52ちょっと待て、最低ラインを実現するのに既に無理なのか。
まぁいい、死活判断ルーチンがどこかに落ちているかも知れないとしてだ。
で、そのルーチンから「どのような情報を得たい」んだ?
どのような情報があれば、そこから詰め碁が作成できると考えている?
00171
2009/09/05(土) 19:42:56KGSだと形勢判断の機能があって、どの石が生きてて、
どの石が死んでいるかを判定してくれる(精度はいまいちだけど)
その機能があればゲームの進行中に隅の石が生きてる状態から死んでる状態に変わる瞬間がわかる。
その瞬間に悪手を打っているはず。
その局面を「そのまま」ユーザに詰碁として出題する。
これで生きてたはずの石が殺された場合はキャッチできそう。
殺せたはずの石を生かしてしまった場合は...
すこし探索が必要かもしれない。
0018デフォルトの名無しさん
2009/09/05(土) 20:29:54http://www.pandanet.co.jp/members/lifedeath/
00191
2009/09/05(土) 20:39:59あとは、>>18のだと死活の判定対象を指定する必要があったり、
盤面を編集したりする必要があるみたいだけど、
そういった手間は学習意欲をそぐ原因になるので少ないほどいいなぁ。
0020デフォルトの名無しさん
2009/09/05(土) 21:01:20必要ないかどうかはどうやって判断するの?
00211
2009/09/05(土) 21:51:37要するに、対局の途中の盤面をそのまま問題として出す。
0022デフォルトの名無しさん
2009/09/05(土) 22:27:28まずはルーチン拾いだな。
00231
2009/09/05(土) 23:04:01今のところ、これが有力候補なんだけど。
拾い物を組み合わせるくらいなら〜とか言ったけど、
結構難しそう(´・ω・`)
0024デフォルトの名無しさん
2009/09/05(土) 23:51:22それとも得た後の出題のところか?
00251
2009/09/06(日) 00:00:27doxygenがついてるみたいなんでまずは眺めてみます。
00261
2009/09/12(土) 23:50:14libfuego_smartgame.aをリンクしてるのにSgRandom::Global()がないってリンクエラーが出る。
ほかにもlibfuego_go.aをリンクしてるのにGoBoard::Goboard(int,GoSetup const &,GoRules const &)がないってリンクエラーが出るし。
なぜだぜ?
00271
2009/09/20(日) 23:05:41でも無理やりオブジェクトファイルをくっつけたら一応リンクはできた。
現在の状況をうpしてみる。
http://a-draw.com/up/download/1253455010.zip
簡単な説明は以下。
1. OSはUbuntu9.04で作業してます。
2. fuego-0.4を落としてきてfoego-0.4のディレクトリの直下にtumetore配置してください
(fuegomainやsmartgameと同じ並びに置く)
3. fuego-0.4を通常どおりMakeしてオブジェクトを作ってください。
その際boostライブラリが必要になります。boostライブラリも落としてきてMakeしてください。
5. 環境変数BOOST_ROOTにboostのディレクトリを設定してください。
6. tumetoreをMakeしてください。実行ファイルtumetoreができます。
7. tumetoreを実行してください。引数はsgfファイルになります。
ex) tumetore sample.sgf
8. 終局図から初期局面にたどり着くまでundoを繰り返しながら盤面をテキストで出力します。
00281
2009/09/21(月) 23:57:44そこからGoGameRecordを生成するにはどうすりゃいいのかワカンネ。
00291
2009/10/05(月) 00:19:41なにげにアクセス修飾子がうぜぇからもう全部publicにしちゃえ。(やけくそ
■ このスレッドは過去ログ倉庫に格納されています