モンテカルロ法と囲碁


では、乱数によってどのようにCPUは囲碁の次の一手を考えているのでしょう。 囲碁は終局の状態でなければ、どちらが勝つか判断出来ません。 そこで、乱数を用いてCPUに終局までのプレイシミュレーションをさせ、その中で一番勝てる確率が高い手を捜させます。 つまり、Aに打てば5目勝てる、Bに打てば2目負ける、Cに打てば・・・という風に行い、どこに打つのが良いかを選びます。 ただ、これだけではなかなか強いプログラムは出来ないそうです。やはり、プロ棋士の先生方や偉大なる先人達が見つけた理論や評価の 仕方を教える必要があると言えます。 囲碁プログラムはまだアマ有段者レベルになったばかりですが、これから更なる成長を感じさせます。

以下にC言語で作成したプログラムソースを載せます。残念ながら、CPUと人の対戦プログラムは未完ですが、卒業までに2011年3月までにどうにかしたいと思っています。

コンピュータ上で対局するプログラムはこちら

ファイルから盤面図を読み込み, 黒番の次の一手を返すプログラムはこちら

[HOME]