Slide 1

Slide 1 text

オセロCPU

Slide 2

Slide 2 text

目次 ◼ 評価関数 ◼ αβ法 ◼ ビットボード

Slide 3

Slide 3 text

評価関数 ◼ 評価関数は以下の三つから求める ⚫ 盤面の駒と位置(盤位置) ⚫ もうひっくり返らないコマの数(確定石) ⚫コマを置ける位置の数(候補数) ◼ 盤位置 + 35 * 確定石 + 5 * 候補数 にした ⚫確定石を重視する ◼評価関数を機械学習で実装すると強い

Slide 4

Slide 4 text

盤位置 右の画像のように各位置に 得点が設定されている 相手が取ったら-を掛けたものを得る 角が取れたら30点 相手がとったら-30点

Slide 5

Slide 5 text

確定石 ◼ 全て求めようとすると計算量が多いので外周のみ求める。 ◼ 角から連続で続いているともう挟めない

Slide 6

Slide 6 text

候補数 ◼ 打てる手の候補数 ◼ 多いほど良いと言われている ◼ 盤位置と確定石だけでは、角を取るまで自分の駒を少なくしようと し、序盤に自分の駒が無くなって負けることがある

Slide 7

Slide 7 text

αβ法 ◼ minimax法を効率化したもの ◼ minimax法とは、評価関数をもとに自分の番では値が高い手、相 手の番では値が低い手を打つと想定して、先読みをする ◼ 無駄な探索をカットしたものがαβ法

Slide 8

Slide 8 text

ビッドボード ◼ ボードの実装には配列、インデックス化、ビッドボードなどがある ◼ ビッドボードが一番早い 何もないマスは0、自分の駒があるマスを1、同じ相手用のものを用意、 計二つのボードを用意する

Slide 9

Slide 9 text

参考・引用資料 ◼https://interprism.hatenablog.com/entry/bitboard ⚫Javaで実装している ◼https://note.com/nyanyan_cubetech/m/m54104c8d2f12 ⚫理論を学ぶのにわかりやすい ◼https://bassy84.net/othello-kakuteiseki1.html