もごぼっと


(現在休止中です。)

はじめに

07/09/11にbinaryが公開された思考エンジン、 MoGo を使って、 ポカぼっと と同じように iGo棋院 で打てるようにしてみました。

使い方

基本的な使い方はポカぼっとと同じです。 こちらを見て下さい。 ポカぼっとにあるいくつかの機能は省略されています。

MoGoの特徴

MoGoは、Sylvain Gellyさんが作成した思考エンジンで、 モンテカルロ法に基づくアルゴリズムを用いています。 乱数で非常に多くの(勝手読みによる)対局を終局まで行って、 最も勝率の良かった手を選ぶという、シンプルで一見無茶な 手法です。しかし、充分な思考時間を与えれば、9路盤などの 小さい盤ではかなり強いようです。 定石も死活も知識としては持っておらず、全局的な読みだけで 打ちます。そのため、十分なシミュレーション回数が得られない 19路盤では、まだまだ弱いようです。

勝率をベースにしている(目数の差は考えない)ため、勝っているときは 安全運転してとことん緩みます。半目差まで詰めさせることもめずらしく ありません。逆に、負けているときは無茶な勝負手を連発します。

また、日本ルールではなく中国ルールを採用しています。 中国ルールでは日本ルール的な「終局」後に自陣に手を入れても 損にならないので、乱数対局で終局判定せずに打つところが無くなるまで 打たせてしまい勝敗判定を行う、というアルゴリズムを採用することで 終局判定を省略でき、シミュレーションの高速化が可能なためと思われます。

中国ルールへの対応

前述したように、MoGoは日本ルールではなく中国ルールを採用しています。 日本ルールは、「地の数 + アゲハマの数」を競うのに対して、 中国ルールは「地の数 + 盤上の石の数」を競います。 全く違うルールのように見えますが、終局時の盤上の白石と黒石の数は 交互に打っている以上基本的に同じで、差があるとすればそれは 取られた石の数の差なので、どちらで計算しても基本的には同じスコアになります。 他にも細かいところで差は出てきますが、MoGoを日本ルールで運営されている iGo棋院で動かすためには、次の点が問題となりました。 この違いは、特に勝っている場合半目差まで緩める性質があるMoGoにとっては、 致命的になります。黒を持って勝っている碁をわざわざ半目負けまで緩める、という ことが起こり得ます。そこで、 というふうに対処しています。

GNU Goとの併用

現在iGo棋院で動いているもごぼっとは、実は純粋なMoGoではなく、 GNU Goとのハイブリッドになっています。具体的には、以下の通り。 また、終局時の死に石指定もややGNU Goの方が安定度が高いようで、 現在はGNU Goにやらせています。

その他細かいこと


MoGoBot / kashi