Avon


各思考ルーチンのアルゴリズムが知りたいと要望をもらいましたので アルゴリズムの概要を説明します。

アルゴリズム / Benjamin / Jim / Jonathan / Arthur / Melchior / 戻る


アルゴリズム

思考ルーチンは 5 種類存在します。 下に各思考ルーチンの性格一覧を書いておきます。
 
思考ルーチン一覧表
思考ルーチン名 性格 強さ アルゴリズム
Benjamin 隔たってます 愚か者 順番に調べる
Jim 質より量 弱ひ 最も多く取れるように置く
Jonathan 隅、隅、隅 それなりに 優先順位の高いマスに置く
Arthur 今を生きる 頑張ってる 評価値の高いマスに置く
Melchior じっくり深読み 強め α-β法

Benjamin

一定の順序でマスにコマが置けるかどうか調べて、 置ける場合はすぐに置きます。 マスを調べる順序は 8 通りあり、 そのうち 1 つを試合開始時にランダムに決定します。
 
マスを調べる順序は 左上→右下、右上→左下、左下→右上、右下→左上 の 4 通りに上側優先か下側優先かの 2 通りが組み合わさります。
 
そのくせさえ見極められれば簡単に勝てます。

Jim

コマを置いた時に最も多く相手のコマが取れるように置きます。 取れる相手のコマの数が同じになる場合は その中でランダムに選びます。
 
人と対戦している場合、 相手の番の時も先読みする処理の実験もかねています。
 
隅・端を意識している人ならば勝てます。

Jonathan

優先順位表
1732 2371
7765 5677
3634 4363
2544 4452
2544 4452
3634 4363
7765 5677
1732 2371
右の優先順位表に従ってマスにコマが置けるかどうか調べます。
 
具体的には、まずは優先順位 1 番の隅にコマが置けるかどうか調べ、 コマが置ける場所がある場合、 そのうちで最も多く相手のコマが取れるマスにコマを置きます。 優先順位 1 番のマスにコマが置ける場所がなかった場合、 優先順位 2 番のマスに対して同じ処理を繰り返します。
 
また、例外措置として自分のコマが置けても その直後に相手が隅に置けてしまう場合は そのマスの優先順位は +10 されます。
 
オセロ初心者にとっては強いかもしれません。

Arthur

すべての手について評価値を計算し、 評価値が最大となる手を選びます。
 
評価値はコマの置かれるマス毎に基本点が用意されています。 さらにコマを置いた時に取れる相手のコマの数が加算されます。 その上に様々な条件に合わせて評価値を増減させます。 その条件としては次のようなものがあります。
 
 
また、最後の 2 手については完全読みをします。
 
それなりの強さです。

Melchior

α-β法を使っています。
 
高速化のため評価関数は Arthur の評価関数を簡略化したものになっています。 3 手先まで読んでいます。
 
あまり深読みしていないので頑張れば勝てます。

戻る