2009年10月08日

JISAコンベンション2009に参加してきました

2年前は保木さんや勝又さんが講演されて、それをちゃっかり聞きに行ったのですが
今年は私が王メイエンさんや矢内さんと共に講演させていただくことに。

JISAコンベンション2009−新たなる挑戦への礎−
http://www.jisa.or.jp/info/jc2009.pdf

メイエンさんのお話も面白かったのですが、個人的には
矢内さんの司会の上手さが際立っていたと思いました。
鋭い突っ込みや笑いを誘う質問など、たじたじ(汗)でした。

私のスライドはこちらです
http://www.yss-aya.com/jisa2009.ppt

その後には北京オリンピックのシンクロで中国チームを銅メダルに導いた井村雅代コーチの話があったのですがパワーに圧倒されました。
現在はロシアが強く、ロシアのコーチが世界に派遣されていて、このままでは
シンクロはロシア流、になってしまう、日本流のシンクロを広げてもいいのではないか。ホスト国である中国から指名されたことは名誉なこと、など。

私も最初に日本のコーチが中国に行った、という話を聞いた時に、ふーん?なんで?
という感じだったのですが話を聞くと「なるほど!」でした。

最後に流れた中国の演技は、本当に選手の足が長く(広い中国の中からスタイルのいい人を集めてるみたいです)技にもキレがあって感動でした。言われてみるとなんとなく日本のシンクロに似てたような気もしました。

2009年05月30日

CGOS9路が大人気

現在14試合!も組まれていてCGOSが大人気です。
http://cgos.boardspace.net/9x9/standings.html

きっかけはValkyriaさんが400playoutだけのバージョン、1000playoutだけの
バージョン、とかテストをしてたのですが、それを見て?Fuegoも同じように
参加。で、私も対抗して投入してたらZenも入ってきました。

・・・Zenの1000playout強すぎ!です。
モンテカルロ囲碁はどういう方向性に行くのかよく分からないのですが
今のところ、playoutを正確にしていく、という方向が正しいような感じです。

ちなみにZenは19路では1000playoutでGnuGoと互角とのこと。
CrazyStoneは2000程度でAyaは8000。なかなか上は高いです。

しかしCGOS19路は人気ないですねぇ・・・。
http://cgos.boardspace.net/19x19/standings.html
アンカーのGnuGoもお休み中です。
時間がかかる、というのもありますが、19路でGnuGoレベルを作るのが
かなり大変、というのも理由の一つのような気はします。

選手権優勝はGPS将棋

a697c938.jpgすっかり出遅れですが、GWの恒例の選手権はGPS将棋が初優勝でした。
下の写真は優勝直後に勝又さんから祝福されるGPSチームのものです。
おめでとうございます!

今回は完敗だったのですが、今年の選手権でうれしかったのは
ソフトの力だけでレーティングが100点近く上がった!ということです。
GPS、Bonanza、大槻さん、など、正直、評価関数がここまで精度が
上げれるものとは思ってもいませんでした。


次の土曜日のCSA例会にはGPSの金子さんと林さんが説明会をしてくれたのですが
とても勉強になりました。

まず、冒頭に柿木さんが「どうぶつ将棋」というのがあって
解析して欲しいとの依頼が、というとすかさず田中先生が
「あ、もう解析終わってます」と。
・・・すごい!
何でも全部の局面を作成して、勝敗が付いている局面から後ろに
さかのぼって行く方法で解かれたとのこと。(引き分けになるそうです)
田中先生によると、バグがあったそうで78手で後手勝ちになるとのことです。
(コメント欄参照してください)


以下は例会のメモです。

5x5将棋は千日手は後手の勝ち

どうぶつ将棋は田中先生が解析済み。
引き分け。レトログレード。可能な局面を全部作って繰り上げ。

GPS 8コア+HTで16スレッド

進行度、評価関数、どちらかを固定して学習させている。
静止探索が9割くらい!王手とかも読んでいる。
確率探索している部分は短い。でもPVは16手ぐらい出てくる。

200回出てこない特徴は無視する。
40000棋譜、8000棋譜
動き幅を特徴ごとに持たせる。
微分値がマイナス、プラス、とかは幅を小さく。プラスプラスなら大きく、とか。
Linuxがあれば将棋所で対戦できる。

gpsshogi\sample\eval 学習の評価関数
opneMidEnding.cc

PVそのままで50回ぐらいまわす。2,3GBくらいある。
PV1回更新+50回、これが1セットの学習。これでだいたいの評価関数が出来る。
(8コアで)選手権の決勝で追加した角と王の間3駒は2セットまわした。

一致率が上がっても弱くなりうる。

13万(旧GPS) 、8万/nps(学習版)

1秒テストは怪しい。10秒と30秒でもどうか。

テストは20局やって14-6なら採用、とか。

X座標ごとの銀の価値、Y座標の駒の価値、とか細分化。

SSEを使って4つの(3つの)整数を同時に足す。
builtin_ia32_paddd128() _mm_add_epi32
序盤、中盤、終盤の時の足し算が一発で出来る。
例えば進行度が 0(序盤) 50(中盤) 100(終盤) とすると、
0の時は序盤だけ。25だと序盤50%、中盤50%、のような感じで。


進行度(progress value) lib progress experimental
王の周り5x5を見る。他に5x3を見る。
利きの差、その王からの距離。

進行度の計算あ評価関数の15%!も。


棚瀬さんの話。
大きすぎる特徴の値は別の条件を追加して分割できるようにした方が
いいのではないか?
例えば敵玉の近くの金の価値が+450とか出てた場合に、+200程度に
なるような別の要素を追加。
(よく分からないのですが、例えば敵玉の近くの金銀枚数が1枚だけ、2枚以上とか)
実際に画像認識で文字を識別するときに、ある一定値以上の値になる場合は無視する、
というのを追加したことで識別率が向上したそうです。

2008年10月24日

KGSでは白番有利?

KGSで彩のモンテカルロ版を動かしているのですが、
白番(自分が上手)の時の勝率が明確に高いです。
黒では5割ぐらいなのに白だと7割近いです。
古い彩や私自身の結果でも同じく白番の勝率が高いです。

自分が下手だと、上手にうまく対応されると戦意喪失してしまう
(逆に上手は簡単にはあきらめない)とか、心理的要素もありそうなのですが。
KGSの今のハンデ仕様(1級差はコミ0.5、2級差で2子)
は上手に有利な仕様なのかもしれません。

AyaMC2 6k ... 10000playout
通算勝率 0.593 9393勝6442敗 全15835局(公式戦は13986局)
黒番 0.494 3660勝3753敗 全7413局
白番 0.680 5782勝2718敗 全8500局

AyaBot 8k ... 以前のクラシックな彩
通算勝率 0.537 2608勝2248敗 全4856局(公式戦は4098局)
黒番 0.446 809勝1003敗 全1812局
白番 0.588 1857勝1299敗 全3156局

HYamashita 2d ... 私
通算勝率 0.602 103勝 68敗 全 171局(公式戦は141局)
黒番 0.500 35勝 35敗 全 70局
白番 0.660 68勝 35敗 全 103局

統計を取るにはこちらの Itteyoshi! を使わせていただきました。
http://www.geocities.jp/ittesyoshi2ch/

北京ではMFGが9路、19路ともに優勝しました

Olympiadの風景
9月末にComputer Olympiad(中国の要請?で今年はOlympiadという名前は
使えなかったようですが)に参加するために北京まで行ってきたのですが
結果は9路で7位(18チーム中)、19路で4位(13チーム中)と厳しい結果でした。
優勝はどちらもManyFaces。CrazyStoneがなぜか不参加だったのですが
文句なく、現在の世界最強でしょう。

作者のFotlandは20年近くコンピュータ囲碁を作っている人で、
今年の2月くらいにモンテカルロに切り替えて、さくっとこれだけのものを
作ったのは大したものです。

19路はモンテカルロが上位7つまでを独占し、クラシックの付け入る隙は
まったくありませんでした。

今回の特徴は上位のチームは全部、インターネット経由で
自国にあるサーバに接続して対戦した、ということです。
MFGはアメリカのマイクロソフトの8コアマシン4台、全32コアのクラスタ
マシンを利用し、MoGoはHuygens(ホイヘンス)という160コアもあるクラスタマシンに
つないでいます。他は8コアサーバが多かったです。
ただ、ネットワーク経由対戦は不安定で、会場のネット接続が不安定、
サーバ自体が起動しない、などのトラブルで対戦は3日の予定が4日かかる遅れを
出していました。

北京での私のマシン私自身は8コアマシン(Xeon2.66GHz)をケースなしで持参。
しかし前日にホテルで電源ユニット裏にある赤いスイッチの設定を110Vから220V
に変えるのを忘れて、(中国は220V)接続テストをした瞬間、「バチッ」とユニットから
音がしてホテルの部屋のヒューズが飛んで真っ暗に。
ヒューズはホテルの人に直してもらったのですが、電源は復帰せず。
仕方なく、次の日、北京市内の電気屋さんまで30Kmタクシーを飛ばして
EPS12V対応の電源ユニットを買ってきたのですが、これも会場で試すと
「バチッ」と音がして10秒ほどで停止。
初日は仕方なくレンタルマシンを借りました。

2日目の朝に壊れたと思った電源ユニットを試すと復活!
2日目以降は8コアで対戦できました。

今回の教訓:外国にパソコンを運ぶときは電源には気をつけましょう。

ということでした・・・。

9路の結果
http://www.grappa.univ-lille3.fr/icga/tournament.php?id=180
19路の結果
http://www.grappa.univ-lille3.fr/icga/tournament.php?id=181

2008年07月14日

アンチコンピュータ戦略で4級ぐらいは強くなるようです

ソフトの弱点を知っていれば、かなり弱い棋力でも勝つことはできると思います。
私の囲碁の棋力はKGSで3k(3級)なのですが、
最近、ちょっとソフトだけを相手に10局ほど打ってみました。
相手はMoGoや彩のMC版です。
で、あっさり3kから2d(2段)まで4ランク上がりました。

グラフ
棋譜

KGSではしばらく打っていないとレーティングが不安定になり、過去数局の結果が
過大に反映される、というものを利用したためですが、私の棋力はほとんど変わってないのですが
ソフト相手だけだとかなり上のレーティングで安定できる感じです。

棚瀬さんがよくGPWでコンピュータ相手に勝っていましたが、
棚瀬さんの棋力をアマ4段としてアマ7段?程度のソフトに勝ってもおかしくないのかも
しれません。

逆に、プロが本気でアンチコンピュータ作戦を使えば、相当勝つのは難しい感じがします。

2008年06月23日

CGF特別例会に参加してきました

26682311.jpgものすごく久しぶりにブログを書いてみます。

21,22日と秋葉原、ダイビルのCGF特別例会に参加してきました。
今回は9路と19路の開催だったのですが、人がたくさん!
いらしてたことにビックリでした。
参加者も9路が10、19路が8。
9路はモンテカルロが多かったのが印象的でした。

2日目にはNHK囲碁将棋ジャーナルの取材でいらしていた向井プロを
はじめ、コンピュータ将棋関係者の方もたくさん見学にいらして
賑わっていました。

結果はうれしいことに9路、19路ともに全勝で彩が優勝しました。
モンテカルロ様さま、ですね。

ちなみに左の方で扇風機を突っ込んでるマシンが私のXeon2.66GHz x8のマシンです。
9路では6コア、19路では8コアを使ってました。
9路では2コア以上では並列効果ががた落ちするので、(まったく調べてないのですが)6コアなら、ぎりぎりかな?ということで6コアにしてます。

2008年01月24日

モンテカルロ版の彩がGnuGoを超えました

とうとうというか、モンテカルロ(MC)版の囲碁がGnuGoを越えました。
MCは思考時間によって棋力が変わるので何を持って判断するか微妙なのですが
1CPU、15分切れ負け、の条件でGnuGoのレーティング1800点を
超えたので、そういってもいいかと思います。

ちなみに4スレッドを使った版では
初めてCGOSでトップに立っています。
http://www.lri.fr/~teytaud/cgosStandings.html
この4CPU版でGnuGo3.7.10(level 10)への勝率が70%程度なので、
おそらく8CPU版では80%近くなると思います。
これは銀星囲碁7のGnuGoに対する勝率(79%)とほぼ同じ、なので
おそらく銀星囲碁7ともいい勝負をするのではないかと思います。

どんなに頑張っても手が届く気配すらしなかった銀星に
勝てるかもしれない、というのは感慨深い、というか
今までの試行錯誤を思うと複雑な心境です。

最近の19路での改良で効果があったのは
plyaoutに行く直前に石の死活探索をして死んでいる石のダメに打つ手の
確率をほとんど0にする、という方法です。
後はUCTでの手を選択するパラメータの変更です。
詳しくはこちらの掲示板を。
http://524.teacup.com/yss/bbs

石川県のJaistまで世界最強戦に参加してきました

22,23,24日と石川県にある北陸先端科学技術大学院大学(Jaist)で開催された
第3回 コンピュータ将棋 世界最強決定戦 2008
に参加してきました。
http://www.jaist.ac.jp/rccg/saikyo/
激指、Bonanza、Tacos、YSSの4チームの総当りで60分60秒、マシンは
すべて同スペック(CoreDuo 2.66GHz)で対戦します。
解説は大内九段(聞き手は飯田さん)で、動画中継される、という豪華な内容。
結果は激指、YSSが2-1、Bonanza、Tacosが1-2となり
スイス式のような規定がないので激指との同率優勝となりました。

印象に残ってる対局は最初のTACOS戦です。
仕掛けられてからずっとYSSが悪く、最後、自玉に25手詰くらいが
発生して、しばらく気づかずに敵玉に19手ぐらいの詰めろを掛ける手を
読んでいたのですが、1分ぐらい経ってから、自玉の詰みに気づいて
王手の爆裂をしそうな雰囲気だったのですが、運良く2分の制限時間が
来て、そのまま詰めろを指したら、TACOSが詰めろをかけてきたので
頓死で勝った、というものです。
Tacosの詰関数のパラメータが少し少なかったのが幸いしました。
ちなみに25手詰ぐらいなので専用の詰ルーチンじゃないと
解けない、と思ったのですがBonanzaもあろうことか1秒くらいで見つけてました。
全幅の王手1手延長でも見つけられるのですね・・・。

Bonanza戦は途中まで面白かったのですが、Bonanzaが角ばかりか
飛車まで切ってきたのでさすがに切れて即負けに。
激指戦はYSSの振飛車に仕掛けられてそのまま負け、と
見所の少ない将棋で残念でした。

しかしYSSの振飛車はへぼいですね。何とかしたいです。

現地にはマスコミの方々が今年も多く着ていただいて
北國新聞とか北陸中日新聞とかに大きく取り上げられていました。

旅館は去年と同じ辰口温泉の松崎。
数年前に谷川−森内の名人戦も開催されたことのある高級旅館です。
美味しいご馳走とお酒を堪能いたしました。

最終日は初めて雪が降ってきて、歌舞伎にも出てくる
勧進帳の舞台の安宅の関では吹雪いてきて、寒さを実感できました。

橋本さんをはじめ、飯田研の学生さんにはお世話になりました。m(_ _)m


2007年12月20日

UCTの擬似コードなど

彩で実際に使ってるUCTの部分のソースを下におきました。
(このままでは動きません。参考程度で)
http://www32.ocn.ne.jp/~yss/uct_aya.cpp

彩では
1. 探索木の情報をハッシュ表に持っている
2. 読む手の候補を少しずつ増やす手法(Progressive widening)を使ってる
3. モンテカルロシミュレーション(play out)の部分だけを並列に動かしてる
4. 個々の子局面で361回シミュレーションを行ったら、その子局面のノードを新たに作る。
などが特徴かと思います。
ほとんどCrazy Stoneと同一です。

4. のために、ほとんどノードが作られることはありません。
19路盤だと1万回繰り返して16個ぐらいです。

UCTで誤解してたのは最初は勝率を上に返す、と思っていたことです。
たとえば、AとB、2つの手がある場合に、
Aの手が10回中8回勝ちで勝率0.8
Bの手が20回中4回勝ちで勝率0.2
なら、最大の手の確率0.8を返したり、もしくは全体の30回中12回勝ちの勝率0.4
を返す、と思っていたのですが、単にその時に選んだ子局面の値(勝ち1、負け0)
を返すだけなんですね。

混合させた方がいいのでは、と思っていくつか試したのですが、棋力は
向上しませんでした。

2007年11月23日

19路でもMCが彩を抜きました

4CPU並列、とか、かなりのハンデですが、
すでに以前の彩より200点ぐらいは強くなっているようです。
http://www.lri.fr/~teytaud/cgosStandings.html

今までどんなに頑張っても15%ぐらいしか勝てなかったGnuGoにもあっさり3割、4割の
勝率が出てきます。
今までの10年はなんだったんでしょうねぇ・・・。

12月1日にはUEC杯があるのでそれまで日本ルールを
でっち上げないといけません。
Remi氏は、コミを10目半ぐらいに設定して(日本ルールでのセキの扱いなどに
対処するため)なおかつ相手がパスしたら即座にパスする、ような
手抜きの方法で対応する、とか話していました。
これでも95%ぐらいは対応できそうなので、彩もこれでお茶を濁そうかと
考えています。

GPWの写真など

11月9,10,11日は恒例の箱根のGPWに参加してきました。
今年の招待講演はコンピュータ囲碁のCrazy Stoneを開発しているRemiさん。
そういうのもあってか、今年は将棋のGPW杯だけでなく、
囲碁の9路盤、さらには55将棋の大会も同時開催されてました。
なんだか発表よりも夜のイベントの方がメイン?になってる気がしないでも
ありません。

で、私は将棋と囲碁に参加してたのですが、選手権で使った8coreのマシンとかを
囲碁に持ち込んだのですが、いきなり会場のブレーカがダウン!
さすがにこれだけ集まると電源不足のようです。
で、囲碁だけは隣の会場に押しやられての開催となりました。

勝也と19路で戦うCrazyStone
大会は9路だったのですが、清さんの希望で19路でCrazyStoneと対戦してます。
タワーの横に液晶を取り付けたマシンがすごいです。
浴衣を着てるのがフランス人のRemiさんです。
中央をどかんと取られてたしか半目負け。
とはいっても勝也はKGS7級?でCrazyStoneは2級ですから実際は大差です。
この後、MCで動く彩とも19路で対戦したのですが中押し負けとなり
清さんががっくり落ち込んでいました。

CrazyStone-GGMCGo
9路でCrazyStoneと対戦する加藤さんのGGMCGo。






GPW会場全景
GPWの会場全景です。






55将棋
画面がおしゃれです。






GPW9路結果
9路盤の結果。
全勝優勝は阻止したかったのですが・・・。





55将棋下敷き
なんと、専用の下敷き!が作られてました。
裏は55将棋ができる盤面になってます。





55将棋結果
55将棋の結果です。







JISAコンベンションこちらは全然関係ないのですが、10月30日にANAホテルで行われたJISA(情報サービス産業協会)のイベントです。
将棋の他にIBMの内永ゆか子氏、マラソン監督の小出義雄氏が講演されてました。
この後のパーティがものすごく豪華絢爛でびびりました。

2007年10月14日

ようやくMoGoの背中が見えてきました

彩にモンテカルロ法を組み込んでようやく動きだしました。
データ構造は結構悩んだのですが、結局現在の彩を
クラス化しただけの構造に落ち着きました。
石の着手だけを乱数で打つと、9路で4万playout/s(平均77手)
19路で9300playout/s(平均354手)ぐらいです。(CoreDuo 1.83GHz)
(playout、というのはモンテカルロシミュレーションを1回行う、という
意味です。数値はいずれも初期局面、盤上に石が何もない状態でのものです。
上の実験データは早めに終了する設定なので、実際の平均手数は9路で95手、
19路で419手ぐらいになります。)

CeleronM 1.4GHzで3万playout/sをたたき出す Lukasz の libEGO には
太刀打ちできないのですが。これをCygwinで動かすと47000playout/sでした。
ただ、Lukaszのルーチンはダメの数を正確に保持しない pseudo liberty と
呼ばれる構造で、ダメの数を重複して数えるものです。

例えばこの図では●の石はダメ4、としてカウントされます。

○○○○○
○●●●○
○●┼●○
○●●●○
○○○○○

そして中央に打たれると、いっきにダメが4つ減って0になります。
(まだよく理解してないのですが)
このように石を打ち上げる、という囲碁のルールだけ考えると高速なのですが
ダメの正確な数はかなりモンテカルロの途中で重要なのでどうかな、と思います。

Lukasz Lew homepage (ちょっと探しにくいですが)
http://www.mimuw.edu.pl/~lew/

Oregoの作者がJavaに移植したときの解説がここにあります。
Board data structures explained
http://www.lclark.edu/~drake/go/


MC中の手はRemiの手法と同じ3x3を常時更新していく方法を取っています。
他にTristanのICGA 2007 No.1 に書いてあった Playing the Right Atari
というのを部分的に入れてます。
これはダメ2の石があったら、探索することなしに捕獲可能か、を調べて
優先度を上げる方法です。
他に効果があったのは3子以上が自爆する手は絶対に打たない、とするものです。
実際は難しい中手とかで、ありうるのですが、実際的にはこれだけでレーティングが70点ぐらい
上がった感じです。

ごてごて追加して現在は9路で8000playout/s 程度の速度です。
未探索のノードがあった場合は、すぐには新しいノードは作らずに
81回その局面を探索したあとに、次の局面のノードを作成する、という
Remiの方法をやってます。他には探索回数が増えると徐々に読む手も増やしていく、
というのも真似て。
いや、先人たちがいろいろやってるのでかなり楽ですね。

これでMoGoの1手3秒(実際は2秒程度)に 2万playoutで8勝44敗、勝率0.16。
まぁ完敗なんですが今までの彩は90連敗してましたからね。

しかし13路とか19路ではまだお話になりません。
ノードを作成して手を絞るところで連の捕獲探索の結果を入れれば
かなり効果はありそうなのですが。

2007年07月30日

古きよき時代の囲碁プログラムの終焉

とうとう、19路でもモンテカルロ法の毒牙にかかってしまいました。
岐阜チャレンジで破竹の4連覇を成し遂げてきた銀星囲碁7が
モンテカルロ法ベースのCrazy Stoneに5勝14敗と完敗。

はっきり今までのクラシックな作り方の囲碁プログラムは終焉を迎えました。

もう、今後10年、いや名人が敗れるその日まで、今までやり方のプログラムが
世に出る日はないと思います。

ただ、今までのやり方、やってきた事が無駄になる、というわけではないと
思います。
今のところ、モンテカルロ法の個々のシミュレーションの質を上げる、
ことで強くなってきています。
最初は完全に乱数に打っていって(初期のころは実際に石を置いていかずに
どうせ乱数なんだから、ルールを無視して打つ順番を決めて、その通りに
石を置いていくだけ、とか荒っぽかったのですが)
それでも上手くいっていたのですが、だんだん、本当の囲碁に近い打ち方を
させるようになって急激に進歩している感じがします。

つまりGnuGo並の棋力の着手を高速で打つことができれば、かなり強くなる、という
感じです。
今のところ3x3のパターンぐらいですが、結局、死活、2眼で活きを認識しながら
打っていかないといけなくなりそうな気がします。
これは非常に難しいので、あるところで(KGSの2d程度で)ぴたっと進歩が
止まりそうな予感がします。

もっとも、さらに新しい手法が考案されて軽がると超えていくのかもしれませんけど。

2007年07月13日

19路盤でのモンテカルロ法テスト

Crazy Stoneの作者、Remiの最近の活躍に刺激されたのもあって、
パターン認識ベースの囲碁を作ってみました。

持っているパターンは、

3x3 (直前にどこに打たれたかを含む)
3x3に石がない場合はその周囲12箇所のうち3箇所だけを見るパターン。
3x3に石が1個の場合はその周囲12箇所のうち3箇所だけを見るパターン。

が石の配置だけのパターンで、他に下の8種類の場合分けをしています。

石をアタリにする確率
盤端からの距離
直前の手からの距離(dx,dyの大きい方)
自分の2手前の手からの距離(dx,dyの大きい方)
[0] 自分の地の中に打つ、[1] ダメ [2] 相手の地の中 [3] ダメ(自分の地と隣接)[4] ダメ(相手の地と隣接)
隣接して打つ [0] 自分の活石 [1] 自分の不明 [2] 自分の死石 [3-5] 相手
アタリになった石が逃げる手(シチョウ、シチョウではない)、ダメ1
石を取る。[0] 直前にアタリになった石に隣接、[1] 死んでない石 [2] 死んでいる石

アタリになった石が逃げる確率、とかは5割近くて高いです。
アタリでない場合は1/200を均等に掛けてます。

これを全部掛け算して打たせたのが下です。

19路盤でのモンテカルロ法テスト
http://www32.ocn.ne.jp/~yss/pattern.html

いやー、すごく囲碁っぽいです。
2眼で活き、なんて全然分かってないくせいに、ちゃんと地を囲って、
3目中手とかまで打ったりします。

試しに直前に打たれた石の近くにだけ打つ、という乱数プログラムと
19路で対戦させると、平均200目で全勝します。
さすがに乱数は気の毒なので、石を逃げたり取ったりしやすいようにしたのですが
それでも200目で全敗します。

ちゃんと石は逃げるのに、愚形をいっぱい打って、いつのまにか
シチョウで取られる形に、とかでドカンと死んでしまいます。
囲碁というのは好形に打つ、というのが非常に重要なゲームなのですね。

このプログラムと、彩の1手読み(1手の出入り計算版)を対戦させると、
さすがに彩の1手が勝つのですが、それでも20%ぐらいはパターンだけが勝ちます。
(ちなみに彩1手読みは2手読みに13%勝ち、2手読みは3手読みに2%勝ちます。
この3手読みがKGSで8kの通常の彩です)

(さらに追記ですが、打った石がすぐにシチョウで取られてしまう場合は
打たないようにしています。自爆しないのでかなり強いのですが
オイオトシの放り込み、とかは打てません。)

Crazy StoneはKGSで2k、というかなり高いレーティングを持ってるのですが
なるほど、という気もしてきました。
http://www.gokgs.com/gameArchives.jsp?user=CrazyStone

まだ、モンテカルロで使えるほど速くないので、19路でUCTに
組み込むにはもう少し高速化+簡略化が必要になりそうですけど。

パターンだけでこれだけ強いのですから、2眼で活き、の判定も適当に
入れてやれば、さらに強くなりそうな気がします。

参考論文、Remi Coulomさんの
Computing Elo Ratings of Move Patterns in the Game of Go
http://remi.coulom.free.fr/Amsterdam2007/

2007年07月08日

富士通杯の準決勝を観戦してきました

c3128911.png日本棋院で囲碁の富士通杯の準決勝を観戦してきました。

富士通杯
http://jad.fujitsu.com/event/2007/igo/

昨年も決勝は観戦したのですが、ベスト4は全員韓国勢、と味気ない結果だったのですが
今年は張栩九段、依田九段、と二人も日本勢が残っていて、
1時間半前に会場に入ったもののすでに8割方席が埋まってました。
解説が始まる頃には立ち見が50人ぐらい出る大盛況。

途中まで二人とも良かったのですが、
依田九段は二目の石をうっかり?取られて半目負け、張栩九段も最後まで
粘ったものの中押し負けでした。

なんというか・・・会場の総意を反映すると「がっかり」でした。

月曜日には決勝があります。
観戦するには富士通杯のページで入場券を印刷すれば無料で
観戦できます。

ちなみに4月のベスト16の時も見に行っており、
写真はそのときのインタビューを受ける張栩さんです。

2007年07月06日

AI将棋14の無料アップデート

AI将棋14をお持ちの方は
下記のアドレスで、優勝したYSSを搭載したバージョンに
アップデートできます。

http://www.e-frontier.co.jp/download/update/ai.html#n4

元のAI将棋14と比べて、勝率で0.65、レーティングだと
恐らく100点ぐらい上がっているのではないかと思います。

2007年07月02日

1個の電子が干渉模様を作る

ちょうど、下の本を読み終えたのですが、

世界でもっとも美しい10の科学実験
http://www.amazon.co.jp/dp/4822282872/

この中で、一番美しい実験、として最後にあげられている
「1個の電子の量子干渉」という話が面白かったです。

2個の穴が開いた板に電子を1個ずつ撃っていくと
開いた穴を通って、電子が当たります。

1個ずつだと、穴を通って、その周辺にばらばらと当たるのですが、
それをたくさん繰り返すと、なぜか縦じまの干渉模様が現れる!というものです。

いったい1個の電子は何に影響を受けて干渉模様を作るのでしょうか?
自分自身?でしょうか。
同時に2つの穴を通ってるんだ、という解説も聞きますがいまいちピンと来ません。
考えるほど良く分からなくなってきます。

実験の写真が下で見れます。

量子力学を超えるもの 〜ホログラフィ電子顕微鏡の挑戦〜
http://www.nanonet.go.jp/japanese/mailmag/2003/009a.html

1989年の日立グループの実験の動画がこちらで見れます。
http://shots.snap.com/explore/79300/?url=http%3A%2F%2Fwww.vega.org.uk%3A8080%2Framgen%2Fvri%2Felectron_waves.rm%3Fcloakport%3D554%2C7070&key=9455dded8e5c7e2dc98e7768c57701fc&src=www.vega.org.uk&cp=shot_redir!preview!www.vega.org.uk&tol=image
(rmファイルなのでReal Playerが必要です。
1時間もあるのですが、28分40秒くらいから31分20秒くらいまでに出てきます)
見れない場合はこちらからどうぞ。
http://www.vega.org.uk/video/programme/66

ちょっと分かりにくいのですが、30年前の最初の実験映像がこちらにあります。

Single Electron Interference 1974年の実験の動画
http://www.bo.imm.cnr.it/index_edu.htm

関係ないんですが、下の本も近年読んだ中では図抜けて面白かったです。
この1冊を読めば暗号の話はだいたい理解できると思います。

暗号解読―ロゼッタストーンから量子暗号まで
http://www.amazon.co.jp/dp/4105393022/
最近、文庫化されたようで、こちらを2冊買うほうが安上がりのようです。
https://www.honya-town.co.jp/hst/HTdispatch?nips_cd=9982162144

2007年06月27日

Visual Studioのrand()を使うと危ない場合

乱数の話の続きですけど、
ちょっと怪しいのでここでひっそり公開しときます。

Visual Studioのrand()を使うと危ない場合
http://www32.ocn.ne.jp/~yss/rand.html

で、結論は

rand()の下位5bitから(x,y,z,w)という一つの
座標を作った時に乱数性はほとんどない。

ということです。これはVC++6でも最新のVS2005でも一緒です。
実験のループ回数がそもそも多すぎるのでどうかな?
という気もしますけど。

2007年06月04日

保木さん式学習はやっぱり大流行だったようで

ちょっと古い話なのですが、
大槻さんの自戦記を読んでBonanza式の学習をされていたそうでびっくりしました。
http://home.q00.itscom.net/otsuki/jisenkiCSA2007.htm

棚瀬さんももちろんそうですが、近代将棋を見ると
竜の卵の中谷さんもされていたそうで、1次、2次を含めると
かなりの方が学習、もしくは全幅探索を試されたのではないかと思います。

もっとも大槻さん、棚瀬さん、しかり、学習させるだけじゃなくて、
その後、実際に指した棋譜を確かめて欠点を修正させる学習(or 強制?)
もしないといけないな、とは思いましたけど。

私も保木さんの学習は少し試したのですが、
今のコンピュータ同士では序盤の評価関数より、
やっぱり中終盤力が大事だな、
と思い、中途半端なまま終わってます。

全幅探索も8手以上読むルートや10手以上読む局面では
するようにしてます。
(7手だと自己対戦の勝率が下がったので)

それといつのまにか棚瀬さんの自戦記が微妙に
更新されてるのを発見。棋譜が追加されたり
強気なコメントが追加?されたりしているようです。

自戦記などのネタのほとんど加藤さんの詰将棋メモ経由です。
第17回世界コンピュータ将棋選手権(大会後)
http://toybox.tea-nifty.com/memo/2007/05/post_a03d.html

  • livedoor Readerに登録
  • RSS
  • livedoor Blog(ブログ)