Transcript Document

数値解析Ⅱ
~オセロのアルゴリズム~
~メンバー~
リーダー:河野 敬
プレゼン担当:杉本 亮平
班員;桑原 正樹(プログラマー)
小西 基樹(プレイヤー)
土屋 裕之(アルゴリズム)
高見 朋希(アルゴリズム)
<はじめに>
a
• ルールは一般のオセロ
ゲームのルールを用いる。 b 1 2 3 4 5 6 7
• 黒をプレイヤー、白をコン
1
ピュータとし黒を先手とする。 2
\
<盤上の各マスの呼び方>
右図の様にそれぞれのマ
スに数字を割り当てる。
• 例:☆(a,b)=(3,6)
3
4
5
6
7
8
●○
○●
☆
8
COMは以下のルールに従い、最も獲得点数の高いマスに石を置く
下図のように各マスに点数をつけ、置いたマスの点数を得る。
返した石一つにつき5点得る。
石の置いてあるマスは考えない。
(マスの点数+返した石の数×5)の合計が高くなるマスに石を置く。
点数が同じ場合はランダムとする。
100
-30
40
30
30
40
-30
100
-30
-30
15
15
15
15
-30
-30
40
15
30
20
20
30
15
40
30
15
20
0
0
20
15
30
30
15
20
0
0
20
15
30
40
15
30
20
20
30
15
40
-30
-30
15
15
15
15
-30
-30
100
-30
40
30
30
40
-30
100
・石を返せるかどうか調べる。
○
Ⅰ 全ての黒マスについて、その回り
○ ○
に空マスがあるかどうか調べる。 ○
Ⅱで決めるマスはここで見つけた ● ● ● ● ○
空マスである。
● ●
Ⅱ 置きたいマスを決める。
○
Ⅲ Ⅰで調べた黒マスへと戻りその方
向について調べる。
その先のマスを調べ、黒石なら
更に先を調べ、空きマスなら白
石を置くことができずⅠへと戻る。
白マスだと置ける。
・パスについて
上のⅠ~Ⅲを繰り返して
も置く場所が無い場合
はパスとし、相手の番と
する。
・全滅について
CPUと人間が連続して
パス→ゲーム終了
○ ○ ● ● ●
○ ● ● ○ ●
○ ● ○ ○ ●
○ ○ ○ ●
● ○ ○ ○
●
● ○ ● ● ○ ●
● ○ ● ● ○ ●
● ● ● ● ○ ●
・終了条件
1. 盤上のマスがすべて埋まる。
2. 全滅が起こる。
このとき石の数の多い方が勝利。
問題点
・マスに得点を割り振るだけでなく石を返すことで得
点を得るようにするとより複雑な手を打てるが、最善
の手を探すには桁違いの時間がかかってしまう。
・序盤は黒マスが少ないのでCOMのステップ数が
少なくて済むが、後半になるにつれて黒マスが増え
るためステップ数が増えてしまう。
これに対しては、周り8マスが全て埋まった黒マスは
次の番からは考慮に入れないプログラムを組めば良
い。
・目先の数だけを追求する手となり先の戦局に対し
ては弱い手となりうる。
考察
• 今回はコンピュータのステップ数やプログラム
の簡易化を考慮に入れたが、強さを求めるな
ら全ての盤面について、全ての手とそれに対
する相手の対応まで考えるのが一番だろう。
しかし、このプログラムを組むと膨大な量と
なってしまうため、強さとステップ数とのバラン
スが大切である。