2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

囲碁、実践詰碁トレーニングソフト

1 :デフォルトの名無しさん:2009/09/03(木) 23:22:41
こんなソフトを考えてるんだが、素人にはむずかしいかな?
難しいアルゴリズムは分からないけど、拾い物を組み合わせるくらいならたぶんできる。
助言くだされ。

【仕様】
1.囲碁サーバ(KGSを想定)からユーザの棋譜を取得する。
2.棋譜を解析し、大石が死んでいないか調べる。
3.死活に関わる悪手があればその箇所を特定する。
4.その局面を問題としてユーザに出題する。
5.ユーザは出題された問題に対しインタラクティブに入力することができ、
 ソフトは詰碁ルーチンを使用してユーザの着手に応手する。


2 :デフォルトの名無しさん:2009/09/03(木) 23:40:22
じゃあ助言
パソコンを窓から投げ捨てて、レゴブロックで遊ぶといいよ
もしあなたが天才的に頭が良いなら、助言するのでそう仰ってください

3 :デフォルトの名無しさん:2009/09/04(金) 00:22:59
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所


4 :デフォルトの名無しさん:2009/09/04(金) 06:34:06
モンテカルロでずいぶん機械囲碁は強くなったけど
あれに対向できる人間の戦略とかあるのかな。

5 :デフォルトの名無しさん:2009/09/04(金) 07:21:53
たとえば、どんな棋譜を入力した時にどんな問題が出力されるのか、
その具体例を示してくれないか。

あなたがどこまでのものを目指しているのか、いまいち分からん。

やろうとしている事は面白そうだ。
目の付け所はいいと思う。

6 :1:2009/09/04(金) 22:38:25
どもです。
目指すのはあくまで実戦であることを重視した詰碁、
ということでKGSで新アカとって一個棋譜作ってきました。
アカウント名はTumeToreです。
どの局面を切り出して出題するかってのを自動判別するのは相当難しそう。
俺自身、詰碁が苦手だしね。
俺じゃそのアルゴリズムはかけないだろうな。
出題例としては138手目とか166手目とか185手目とかが良いかなぁ



7 :1:2009/09/04(金) 22:39:53
(;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2]
RU[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
])

8 :1:2009/09/04(金) 23:03:23
黒の19手目も形が悪いよね?
できるならそういうのも指摘できたらいいな。


9 :1:2009/09/04(金) 23:26:27
おっと。どこまでのものを目指しているかって話だった。
理想をいえばきりがないから>>8みたいな微妙なのはとりあえず保留だね。
最低ラインとしては隅の死活で無条件に生きれたり、殺せたりしたはずなのに
実戦で間違ったらそこを出題して、ユーザの着手に正しい応手することだな。




10 :1:2009/09/05(土) 00:14:58
あれ、よくみたら終局直前に白にひどいミスがw
咎められてないけどw

11 :1:2009/09/05(土) 09:36:15
つい囲碁板と同じ感覚で書き込んでしまったけど、ここム板だったな。
囲碁わかってる奴なんてそうそういないか。


12 :デフォルトの名無しさん:2009/09/05(土) 10:46:33
じゃあ、まず >>7 の棋譜を使って、
隅の死活で無条件に生きれたり、殺せたりしたはずの部分を言葉で説明してくれ。
なぜそこで無条件に生きれたり、殺せたりできたのか。

それをコンピュータで、つまり計算で判断できるかどうかを考えるのは
その説明がちゃんとできた後だ。
判断基準がしっかりしていないと計算できないからな。

13 :デフォルトの名無しさん:2009/09/05(土) 10:48:03
>>1さんの棋力とプログラミング暦はどのくらいですか?

14 :デフォルトの名無しさん:2009/09/05(土) 16:22:40
「作る」スレ→「作ろうぜ」スレ→「作って」スレ
へ三段ジョブチェンジというオチ

15 :1:2009/09/05(土) 18:25:29
>>12
死活判定はかなり高度な技術なので俺が実装すんのはムリポ。
死活のルーチンはどっかから拾ってこれないかな〜と考えてる。

>>13
棋力はkgs 1dくらい。
プログラミング歴は...歴だけでいうと結構長いけどあんまり大したことできない。
母国語はC/C++。Ruby好き、Java嫌い。でもwrite once run anywhere は憧れる。
囲碁のルール(囲われた石を打ち上げる、コウのルール、自殺手禁止)くらいは実装したことある。
2分木は実装できるけど平衡2分木はできんかった。
ネットワーク系はさっぱり分からん。
GUIはかじった程度なら。

>>14
見切り発車でスレ立てたのは認める。

16 :デフォルトの名無しさん:2009/09/05(土) 19:30:52
>>15
ちょっと待て、最低ラインを実現するのに既に無理なのか。

まぁいい、死活判断ルーチンがどこかに落ちているかも知れないとしてだ。
で、そのルーチンから「どのような情報を得たい」んだ?

どのような情報があれば、そこから詰め碁が作成できると考えている?

17 :1:2009/09/05(土) 19:42:56
例えば…

KGSだと形勢判断の機能があって、どの石が生きてて、
どの石が死んでいるかを判定してくれる(精度はいまいちだけど)
その機能があればゲームの進行中に隅の石が生きてる状態から死んでる状態に変わる瞬間がわかる。
その瞬間に悪手を打っているはず。
その局面を「そのまま」ユーザに詰碁として出題する。
これで生きてたはずの石が殺された場合はキャッチできそう。

殺せたはずの石を生かしてしまった場合は...
すこし探索が必要かもしれない。


18 :デフォルトの名無しさん:2009/09/05(土) 20:29:54
目指してるのは、こういうやつ?
http://www.pandanet.co.jp/members/lifedeath/

19 :1:2009/09/05(土) 20:39:59
まさにこれw
あとは、>>18のだと死活の判定対象を指定する必要があったり、
盤面を編集したりする必要があるみたいだけど、
そういった手間は学習意欲をそぐ原因になるので少ないほどいいなぁ。


20 :デフォルトの名無しさん:2009/09/05(土) 21:01:20
盤面から詰碁を作るのに必要ない石を取り除く必要があると思うんだけど、
必要ないかどうかはどうやって判断するの?

21 :1:2009/09/05(土) 21:51:37
出題される問題がちゃんとした詰碁の形式になってなくてもいいかなと思ってる。
要するに、対局の途中の盤面をそのまま問題として出す。



22 :デフォルトの名無しさん:2009/09/05(土) 22:27:28
そうか、とりあえずがんばってみて。

まずはルーチン拾いだな。

23 :1:2009/09/05(土) 23:04:01
http://fuego.sourceforge.net/
今のところ、これが有力候補なんだけど。
拾い物を組み合わせるくらいなら〜とか言ったけど、
結構難しそう(´・ω・`)

24 :デフォルトの名無しさん:2009/09/05(土) 23:51:22
難しそうってのは fuego から欲しい情報を得る方法か?
それとも得た後の出題のところか?

25 :1:2009/09/06(日) 00:00:27
fuego から欲しい情報を得る方法。
doxygenがついてるみたいなんでまずは眺めてみます。


26 :1:2009/09/12(土) 23:50:14
うーむ。
libfuego_smartgame.aをリンクしてるのにSgRandom::Global()がないってリンクエラーが出る。
ほかにもlibfuego_go.aをリンクしてるのにGoBoard::Goboard(int,GoSetup const &,GoRules const &)がないってリンクエラーが出るし。
なぜだぜ?


27 :1: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を繰り返しながら盤面をテキストで出力します。


28 :1:2009/09/21(月) 23:57:44
GtpEngineでsgfの棋譜を読み込むのはできたけど。
そこからGoGameRecordを生成するにはどうすりゃいいのかワカンネ。


29 :1:2009/10/05(月) 00:19:41
そろそろ泣きが入りそう。
なにげにアクセス修飾子がうぜぇからもう全部publicにしちゃえ。(やけくそ




11 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)