囲碁のゲームをプレイするためのアルゴリズムの最先端は何ですか?
どの記事(アルゴリズムを説明する)を読むのが最適ですか?
Go専用のStackExachgeサイトがありますが、そこに質問するのに十分な人がいません。
囲碁のゲームをプレイするためのアルゴリズムの最先端は何ですか?
どの記事(アルゴリズムを説明する)を読むのが最適ですか?
Go専用のStackExachgeサイトがありますが、そこに質問するのに十分な人がいません。
現在の上位のボットはすべて、モンテカルロベースのアルゴリズムを使用しています。これらは通常、Goに大きく適合しており、各移動の結果を予測する際にMCアルゴリズムをサポートするための多くの追加レイヤーがあります。例として、 Fuegoなどのオープンソースボットを見ることができます。
これは最も基本的なリソースの開始ですが、私が敢えて言うことは非常に完全です
Amirim プロジェクトは、ab プルーニングとパーティション検索方法を組み合わせたミニマックス アプローチを使用して、Go AI を機能させようとしました。彼らはある程度の成功を収めたように見えましたが、人間の対戦相手と対戦して AI を証明したことを覚えていません。
partition searchを検索することをお勧めします。
残念ながら、私が持っていた Amirim プロジェクトへのリンクは現在無効になっています (ここ)。
これと似たようなものを Prolog でアルファベータ剪定を使って実装しました.. Goは完全情報ゲームなので、この種のアプローチは簡単に使用できます。
Minimax ツリーから始めて、AB プルーニングや negmax などの巧妙なアプローチをさらに深く掘り下げることができます。
クールなことは、最初に最適な動きを実行するエンジンを開発し、次に最適なヒューリスティックを見つけようとすることです (また、AI を別の AI と対戦させて、どちらがより賢いかを確認します)。動く。
もちろん、優れたヒューリスティックを見つけることは、実装の一部であり、ゲームのルールを研究する必要があり、さまざまな戦略を考える必要があります..したがって、より複雑なものですが、最も面白いものでもあります.