Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
オセロCPU/Othello CPU
Search
tasotaku
December 01, 2023
0
130
オセロCPU/Othello CPU
tasotaku
December 01, 2023
Tweet
Share
More Decks by tasotaku
See All by tasotaku
duel_masters_RAG
tasotaku
0
4
DQNによるポーカーの強化学習/Reinforcement Learning in Poker with DQN
tasotaku
0
740
オセロAI / OthelloAI
tasotaku
0
150
私、ChatGPTがChatGPTを解説するよ! / ChatGPT explains ChatGPT
tasotaku
0
450
機械学習入門
tasotaku
0
420
AIが作る予想外な画像を考える / Consider the unexpected images that AI creates
tasotaku
0
310
Google Colaboratory でStable Diffusionの実装 / Implementation of Stable Diffusion at Google Colaboratory
tasotaku
0
380
Featured
See All Featured
Building an army of robots
kneath
306
45k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
530
Practical Orchestrator
shlominoach
189
11k
Side Projects
sachag
455
43k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
850
Faster Mobile Websites
deanohume
308
31k
Agile that works and the tools we love
rasmusluckow
329
21k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
オセロCPU
目次 ◼ 評価関数 ◼ αβ法 ◼ ビットボード
評価関数 ◼ 評価関数は以下の三つから求める ⚫ 盤面の駒と位置(盤位置) ⚫ もうひっくり返らないコマの数(確定石) ⚫コマを置ける位置の数(候補数) ◼ 盤位置
+ 35 * 確定石 + 5 * 候補数 にした ⚫確定石を重視する ◼評価関数を機械学習で実装すると強い
盤位置 右の画像のように各位置に 得点が設定されている 相手が取ったら-を掛けたものを得る 角が取れたら30点 相手がとったら-30点
確定石 ◼ 全て求めようとすると計算量が多いので外周のみ求める。 ◼ 角から連続で続いているともう挟めない
候補数 ◼ 打てる手の候補数 ◼ 多いほど良いと言われている ◼ 盤位置と確定石だけでは、角を取るまで自分の駒を少なくしようと し、序盤に自分の駒が無くなって負けることがある
αβ法 ◼ minimax法を効率化したもの ◼ minimax法とは、評価関数をもとに自分の番では値が高い手、相 手の番では値が低い手を打つと想定して、先読みをする ◼ 無駄な探索をカットしたものがαβ法
ビッドボード ◼ ボードの実装には配列、インデックス化、ビッドボードなどがある ◼ ビッドボードが一番早い 何もないマスは0、自分の駒があるマスを1、同じ相手用のものを用意、 計二つのボードを用意する
参考・引用資料 ◼https://interprism.hatenablog.com/entry/bitboard ⚫Javaで実装している ◼https://note.com/nyanyan_cubetech/m/m54104c8d2f12 ⚫理論を学ぶのにわかりやすい ◼https://bassy84.net/othello-kakuteiseki1.html