第16回コンピュータオリンピック

2011.11.18  |  Fuego, MoGo, Pachi, Zen, 囲碁, 将棋  |  Comments (0)

本日11月18日から、オランダのTilburgで第16回コンピュータオリンピックが始まります。

Tilburg 2011 (ICGA トーナメント)
http://www.grappa.univ-lille3.fr/icga/event.php?id=43&lang=3

囲碁はMany Faces of GoとMogoが今年は出ないようですが、代わりにPachiが居ますね(なぜだか19路には出ないようですが…)。

[追記 2011/11/26]
9路盤、13路盤、19路盤ともZenの優勝でした。現在、天頂の囲碁3を注文中なんですが、それがご祝儀です(笑)。基本的にZen、Steenvreter、Pachiの順で成績が良かったようです。最初そうは書かれてなかっただけで、Pachiは結局19路盤にも出たんですね。

次は、「第5回UEC杯コンピュータ囲碁大会」が12月3日から行われます。

第5回UEC杯コンピュータ囲碁大会
http://jsb.cs.uec.ac.jp/~igo/

第15回コンピュータオリンピック

2010.09.24  |  Fuego, GNU Go, MoGo, Zen, 囲碁, 将棋  |  Comments (0)

[以前の関連記事] : 第14回コンピュータオリンピック

今日から、日本の金沢で第15回コンピュータオリンピックが開かれています。今年は囲碁に13路盤部門、将棋に5五将棋部門が追加されています。

金沢 2010 (ICGA トーナメント)
http://www.grappa.univ-lille3.fr/icga/event.php?id=42&lang=3

The JAIST 20th Anniversary Events with the ICGA
http://www.jaist.ac.jp/ICGA-events-2010/olympiad/

さらに今年は、囲碁と将棋はネット中継があるようです。

ICGAの主なイベントのネット中継を実施
http://www.jaist.ac.jp/news/2010/0922_2.html

囲碁の19路はおそらくZenが一歩抜き出ていると思いますが、今年は去年出ていなかったMany Faces of Goも参加するみたいなので、意外と面白くなるかもしれません(他の伏兵だって居るかも…)。また、大会最終日の10月2日に、優勝ソフトと噂の史上最年少プロ棋士(そして秀行先生のお孫さん)、藤沢里菜初段との対局が行われます! しかも、これのネット中継もあります!! 何子で打つのかわかりませんが、すごく楽しみですね。

将棋の方も、今回は日本で開催されるということもあってか、去年とは打って変わって(笑)参加ソフトが多いです。激指、習甦、GPS将棋、Bonanzaなどが出ます。こちらも楽しみです。

[追記 2010/9/26]
9路盤の結果が出たようです。1位MyGoFriend、2位Fuego、3位Ericaでした。

MyGoFriendというソフトは初めて目にしましたが、こちらにウェブサイトがあります。

Home | mygofriend.net
http://www.mygofriend.com/

現在は9路に焦点を合わせて開発しているようで、今大会でも13路と19路には参加していません。

そして2位のFuegoですが、やっぱり9路では強いですね。3位のEricaは、この前のKGSの9路の大会で優勝していました。

ちょっと話変わりますが、今日、KGSにZen19とManyFaces1が居ました。Zen19は互先では3戦全勝、相手は全て3dでした! そして、ManyFaces1の対局を観戦しているZenAuthor… すでに火花が飛び散っています(笑)。

[追記 2010/9/28]
13路盤の結果が出たようです。1位Many Faces of Go、2位Fuego、3位MoGoでした。

Many Faces of Goの1位は順当なんでしょう。しかし、このソフトが9路では14チーム中10位(前回出場の一昨年は1位!)っていうのは、Many Faces of Goの作者が言われる「現在9路は良い定石を持っていないと勝てない」という事実を、如実に物語っている気がします。あくまでも推測ですが、MyGoFriendという新星の出現はこのあたりに秘密がありそうです。

明日からの19路は、やはり本命Zen、対抗Many Faces of Goでしょうか? FuegoやMoGoはどこまで食い込めるか…

[追記 2010/10/2]
19路は、1位Erica、2位Zen、3位Many Faces of Goでした。1位のEricaってこんなに強かったんですね… このソフトのことは今まで良く知らなかったのですが、9路と13路の結果からいって、19路はメダルもないかと思ってました。よく分かりませんが、Crazy Stoneの人が少しかんでるんでしょうか? 今日の対藤沢里菜戦が楽しみです。

(順当に強かった2位と3位をとばして)4位のMogoですが、ZenとMany Faces of Goとの対局は時間切れ負けでした(形勢は、Many Faces of Goとは良い勝負で、Zenには勝ってた?)。どうやら9路の時からトラブル続きだったようです。

5位のFuegoは、しちょうに取れない石を追っかけてましたね… おちゃめなのは嫌いじゃないです(笑)。

[追記 2010/10/2]
エキシビション対局は、藤沢里菜初段の中押し勝ちでした。コンピュータが強いプロ棋士に6子で勝つのは、まだまだ簡単なことではなさそうです。この対局のライブ映像は、録画されたものを今からでも見ることができます。

http://www.ustream.tv/channel/the-jaist-20th-an-ni-ver-sa-ry-events-go

第14回コンピュータオリンピック

2009.05.17  |  Fuego, MoGo, Zen, 囲碁, 将棋  |  Comments (0)

[以前の関連記事] : MoGoとFuegoを対戦させてみた

現在、スペインのパンプローナで、第14回コンピュータオリンピックという大会が行われています。チェスや囲碁などのテーブルゲームの大会のコンピュータ版なんですが、囲碁の9路盤と19路盤がもうすでに終了して結果が出ました。

14th コンピュータオリンピック, 囲碁 (9×9) – パンプローナ 2009 (ICGA トーナメント)
http://www.grappa.univ-lille3.fr/icga/tournament.php?id=194&lang=3

14th コンピュータオリンピック, 囲碁 – パンプローナ 2009 (ICGA トーナメント)
http://www.grappa.univ-lille3.fr/icga/tournament.php?id=193&lang=3

9路盤は1位Fuego、2位MoGo、3位Yogo、19路盤は1位Zen、2位Fuego、3位MoGoとなりました。9路盤はFuegoとMoGoの2強の戦い、19路盤は先の2つにZenを加えた3強の戦いといった感じだったようです。

しかし、Fuego強いです。9路盤と19路盤の両方でMoGoの上を行ったというのは相当ですね。まあ、Xeon E5450が8発ってのは若干反則気味ですが…(笑) 自腹で用意したんでしょうか?

そして、19路盤でそのFuegoのさらに上を行ったZenですが、CGOSでも抜群の強さを見せています。KGSのZen19ってアカウントがこのソフトだと思うのですが、ランクは1dだそうです。すごいですねー この大会のウェブサイト見て初めて知ったのですが、Zenの作者はYamatoさんという日本人の方だそうです。

今大会には将棋も競技としてあったのですが、参加はたったの2チームだけだったようです(ちょっとさびしい…)。TACOSが出て優勝しています。

[以後の関連記事] : 第15回コンピュータオリンピック

[追記]
Fuego開発者の方の、詳細な大会レポートが出ています。ハードウェアはIBMが用意してくれたみたいですね。

Fuego at the Computer Olympiad in Pamplona 2009: a Tournament Report(PDF)
http://www.cs.ualberta.ca/TechReports/2009/TR09-09/TR09-09.pdf

大会に参加したのとほぼ同じ内容のFuegoの安定版、バージョン0.4もリリースされています。

MoGoとFuegoを対戦させてみた

2009.05.14  |  Fuego, MoGo, 囲碁  |  Comments (0)

[以前の関連記事] : 囲碁思考エンジンFuegoについて調べてみた

以前Windows上で上手くいかなかったMoGoとFuegoの(連続)対戦を、Linuxで試してみました。今度は成功です。

Sylvain GELLY’s Home Page
http://www.lri.fr/~gelly/MoGo.htm

Fuego
http://fuego.sourceforge.net/

MoGoは、こちらページの’MoGo on linux’のリンクからダウンロードしてきました。碁盤サイズごとに

--9 --time 10--13 --time 10--19 --time 10

と実行時にオプションをつけています。--timeオプションは2つのソフトの時間のバランスをとるためにつけました(バランスがとりきれてませんが…(笑))。Fuegoはソースコードをダウンロードして自分でコンパイルしました。バージョンは0.3.2、実行時のオプションは何もつけていません。使用したPCのOSはCentOS 5.3、CPUはAthlon X2 BE-2400。それぞれの碁盤サイズごとに、先後を換えて10局ずつ計20局対戦させました。コミは6目半。カッコ内は、一局あたりの平均消費時間です。強さを調べるのにはちょっと対局数が少ないですが、時間がかなり掛かるので、このあたりで勘弁してください…

9路盤 MoGo(179.6sec) 10勝 – 10勝 Fuego(174.5sec)
13路盤 MoGo(361.1sec) 13勝 – 7勝 Fuego(448.0sec)
19路盤 MoGo(763.3sec) 13勝 – 7勝 Fuego(908.2sec)

Fuegoが思ったより強くて驚きです。碁盤サイズが小さい方が得意なんでしょうか? 大会などに出ているMoGoは、今回のバージョンよりもたぶんもっと強いんだと思いますが、Fuegoもこれから期待できそうです。ちなみに対局結果は全て中押しでした。

最後に、19路盤の棋譜をMoGoが勝ったのとFuegoが勝ったのと1つずつ置いておきます。たくさんあった棋譜の中からこの2つを選んだのには、特に意味はありません。

[黒]MoGo vs [白]Fuego : 黒(MoGo)中押し勝ち
[黒]Fuego vs [白]MoGo : 黒(Fuego)中押し勝ち

[以後の関連記事] : 第14回コンピュータオリンピック

囲碁思考エンジンFuegoについて調べてみた

2009.02.07  |  Fuego, GNU Go, MoGo, 囲碁  |  Comments (6)

オープンソースで開発されている、Fuegoという囲碁思考エンジンを最近知ったのですが、このソフト、KGSで2kというかなりの実力らしいので、気になってちょっと調べてみました。

Fuego
http://fuego.sourceforge.net/

Fuegoは、GUIを持たないテキストベースのシンプルなコマンドですので、普通に対局しようとする場合は、別途GTPに対応したGUIフロントエンドが必要になります。

まずはヘルプ。

$ fuego -help
Options:
  -config file execute GTP commands from file before
               starting main command loop
  -help        display this help and exit
  -maxgames n  make clear_board fail after n invocations
  -nobook      don't automatically load opening book
  -nohandicap  don't support handicap commands
  -quiet       don't print debug messages
  -size        initial (and fixed) board size
  -srand       set random seed (-1:none, 0:time(0))

Fuegoは起動すると常に、GNU Goに--mode gtpオプションを付けた時と同じような、GTPな状態になります。囲碁のルールや強さ(考慮時間)などは、起動時のオプションで指定することができないようですが、起動後、GTPコマンドでFuegoに教えることができます。

囲碁のルールは、go_rulesコマンドで変更できます。いわゆる日本ルールにする場合は

go_rules japanese

とします。引数は他にもchinesecgoskgsがあり、デフォルトはchineseを指定したのと同じ状態になっているのですが、このchineseを指定した時のコウのルールは、スーパーコウルールとなっています。もしこのコウのルールだけを変更したい場合は、go_param_rulesコマンドを使って

go_param_rules ko_rule simple

のようにします。

go_param_rules

と引数を取らなければ、現在設定されているルールを詳細に表示します。

強さは、考慮時間を変更するtime_settingsコマンドを使って変更できます。たくさん考えさせると、その分強くなります。例えば

time_settings 0 30 1

とすると、一手30秒で考えるようになります。と言いたいところなんですが、バグっているのかなんなのか、この指定ではなぜだかデフォルトよりも大幅に早く手を返してきてしまいます。次のような指定は、うまくいくようです。意味は一局1000秒です。

time_settings 1000 0 0

time_settingsコマンドの詳しい使い方は、こちらのGTPの仕様を見てみてください。

ただ、GUIフロントエンドからFuegoを使う場合に、こういったGTPコマンドが送れなかったり、仮に送れても手間が掛かって面倒なことが多いと思います。そういう場合のために、起動時に実行したいGTPコマンドを記述したコンフィグファイルを用意し、そのファイルを-configオプションを使って読み込ませることができます。例えば、次のような内容のファイルを用意します。

go_rules japanese
time_settings 1000 0 0

そして、GUIフロントエンドの設定では次のようにします(今回はコンフィグファイル名をfuego.confとしました。path/to/は適宜変更してください)。

path/to/fuego -config path/to/fuego.conf

これで、日本ルールで一局1000秒考えるFuegoと対戦できます。

Fuegoには、終局後、対局結果を調べる機能がありますが(final_scoreコマンド)、正確でなかったり結果を返してこないことがたまにあるようですので、この機能を使って目数などの対局結果を表示するGUIフロントエンドを使う時は注意してください。なんかおかしいなと思ったら、自分で数えた方がいいかもしれません。ちなみに、GNU Goはこのあたりけっこうしっかりしていて、ほとんど間違うことはありません。

ということで、Fuegoの使い方はだいたい分かりましたので、今度はGNU Goと対戦させてその実力を調べてみたいと思います。本当はMoGoとさせたかったんですが、なぜか頻繁にエラーが出て止まってしまいうまくいきません(しかも、その後PCの調子が明らかにおかしくなる…)。原因がはっきりしなくて気持ちが悪いのですが、よく分からないので今回は諦めました。

対局に使用したFuegoとGNU Goは、どちらともこちらのサイトからダウンロードしてきました。Fuegoはバージョン0.3.1、GNU GoはMinGW版の3.7.13。両方のソフトとも基本的にデフォルトのままですが、日本ルールのときはFuegoに

go_rules japanese

とGTPコマンドを送り、中国ルールの時はGNU Goに--chinese-rulesオプションを付けました。使用したPCのOSはWindows XP、CPUはAthlon X2 BE-2400。連続対戦させるために、GoGuiに入っていたgogui-twogtpというソフトを使いました(このソフト、最終的な結果をHTMLファイルにまとめることができたりと、めちゃくちゃ便利です)。それぞれの条件ごとに、先後を換えて20局ずつ計40局。コミは6目半です。対局中に他の作業もしていましたので、消費時間や強さに影響が出ている可能性もあります。カッコ内は、一局あたりの平均消費時間です。

9路盤 日本ルール Fuego(159sec) 35勝 – 5勝 GNU Go(16sec)
19路盤 日本ルール Fuego(1016sec) 14勝 – 26勝 GNU Go(261sec)
9路盤 中国ルール Fuego(163sec) 36勝 – 4勝 GNU Go(16sec)
19路盤 中国ルール Fuego(1049sec) 29勝 – 11勝 GNU Go(257sec)

とりあえず、9路盤での強さは本物ですね。GNU Goが相手では、どれくらい強いのかがよく分からないレベルです(笑)。19路盤はちょっと微妙… ただ、時間を増やせばまだまだ強くなりそうな感じはします。それから、他のモンテカルロな囲碁ソフトと同じく、デフォルトの中国ルールの方がだいぶ得意なようです。でも、日本ルールでもそれなりに打てるのはすばらしい。ちなみに、MoGoなどと同じく、「半目勝ちか中押し負け」な対局結果がすごく多かったです。

一応、少しだけ採れたMoGoとの棋譜も置いておきます。4局とも、中国ルールの9路盤。MoGoは--9オプションを付けただけです。時間はMoGoがFuegoの2倍弱ほど使っていました。これだけの対局数ではどちらがどれくらい強いのかはっきりしたことが分かりませんが、とにかくやっぱりMoGoは強いです。

[黒]Fuego vs [白]MoGo : 白(MoGo)中押し勝ち
[黒]Fuego vs [白]MoGo : 白(MoGo)中押し勝ち
[黒]MoGo vs [白]Fuego : 白(Fuego)中押し勝ち
[黒]MoGo vs [白]Fuego : 黒(MoGo)中押し勝ち

[以後の関連記事] : MoGoとFuegoを対戦させてみた

[追記]
コメントで教えていただいたんですが、一手あたりの考慮時間はgo_paramコマンドでtimelimitパラメータを変更するといいようです。一手30秒で考えるようにするには、

go_param timelimit 30

とします。

それからuct_param_searchコマンドでnumber_threadsパラメータを変更すると、マルチスレッドで動くようです。例えば、

uct_param_search number_threads 2

とすると、スレッド数が2になります。マルチコアなCPUを使用時は、この設定をぜひ試してみてください。

[追記]
ハードウェアにも依存するらしいのですが、スレッド数を変更したら、

uct_param_search lock_free 1

ともしたほうが良いそうです。難しくて私にはよく分かりませんが、この設定でLock-freeモードというのになります。

[追記]
GoGuiを使ってFuegoと対局する方法の解説ページを作ってみました。よかったら見てみてください。

http://www.perfectsky.net/fuego/index.html