LoginSignup
2
1

More than 5 years have passed since last update.

[ポエム][書きかけ] ゲームプログラマーに要る数学とはどれぐらいか?

Last updated at Posted at 2017-08-24

コンピューター将棋に限って言うと、高校に入学する程度で十分と言われている。
微分とか出てくる数学が必要なのは 機械学習のせい なんで。機械学習を使わないなら

  • (1) 四則演算
  • (2) パーセント
  • (3) プラスマイナス
  • (4) 割った余り
  • (5) AND、OR、XOR論理演算
  • (6) 乱数

だけ使えれば コンピューター将棋は いける気がする。 書いていて、だんだん増えてきた。まだ出てくるかもしれない。

じゃあ、機械学習は数学なんか持ち込んで何てことをしてくれたんだ、というと
パラメーター調整 のひとことに尽きる。

じゃあ むずかしい数学って何なのかというと

  • (A) 微分 ……各駅停車で池袋まで行ける感じ
  • (B) 偏微分 ……練馬で乗り換えて池袋まで行ける感じ
  • (C) 線形/連立一次方程式/行列演算 ……じゃあ俺練馬まで行くんでお前は池袋まで行ってくれ
  • (D) 正規分布 ……野球部の中にサッカー部員がいればそいつの特技はサッカー
  • (E) 関連 ……みんなが傘を差していたのは雨が降っていたからに違いない
  • (F) 誤差逆伝搬法 ……雨が降っているのに傘を差さなくていいんですか
  • (G) 勾配 ……じゃあ、傘を差そうぜ
  • (H) 学習 ……雨が降っていたら、傘を差した

うんぬん 全部 パラーメーターを調整 したいだけ。 面白くなってきた。

パラメーター調整したいわけじゃなければ これら全部要らないんじゃないか。

機械学習以前

逆に 機械学習以前のコンピューター将棋は何やっていたんだ、というと
データの容量圧縮、盤面の採点、詰め検索、読み探索、プログラムの自己生成、稲庭などの作戦のプログラム、対稲庭作戦などのプログラム、など パラメーターを調整すること以外にもやってみれることは山ほどある。 ハードウェアが非力、借りれる800台のマシンとかない だった時代背景もあるだろう。

今だと 最高の評価関数があってその通りに指して勝てるのなら パラメーターだけ考えればいいのでは という発想もある。 あと クラスタ

四則演算

飛車取った1000点、
飛車と王様が近くにいて飛車が取られる危険がある、-100点、

といった具合に 人間が採点を決めていたり、

パーセント

盤面を覚えさせて、ここでは こっちの手を指すことが 30% ぐらい、とか入れておく定跡を用意しておく。

プラスマイナス

自分の点数を 100点 と思っていれば、 相手は -100点 だと思っているはずで、
プラス・マイナスが どっちだっけ、と考えるのはつらいので 手番視点 という考え方がある。

これから指す側から見た点数しか無い、みたいな。 待たされている方には頭に マイナス を付けてやればいい。

割った余り

10を3で割ると、3余り1 なので、割った余りは 1 だ。これをかっこよく言うと 剰余(じょうよ) という。 mod とか % の記号を剰余に当てている。

何に使うのかというと 将棋盤は ヨコ タテ 9×9 の81マスなんだが、

右上のマスを0番として縦書き読みすると、40番目はどこなのか? というとき、

(40÷タテ9) mod タテ9 = 4余り4

4列目の4行……、ここで 0オリジン(=数字が0から始まっている)ので
将棋盤風に言い直すと 5筋の5段目 と出てくる。

AND、OR、XOR論理演算

AND、OR はよく使うから説明省略。

XOR なんか何につかうのか。というと 局面ハッシュ に使う。

盤面を覚えておこうと思うと、81マスに 8種類、成りも含めりゃ15種類の駒があって、持ち駒も手番もあるので データがでかくなる。

これを int型1個で持とうぜ、 という手法がハッシュ。
理屈としては 宝くじの番号を作って渡すんで、めったに被らないからいいだろ という理屈。
XOR を使うとそれができる。ゾブリスト・ハッシュをググってくれ。

//書きかけ

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1