Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オセロCPU/Othello CPU

tasotaku
December 01, 2023
30

オセロCPU/Othello CPU

tasotaku

December 01, 2023
Tweet

Transcript

  1. オセロCPU

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide