コネクト・フォーを作ろうぜ☆(^~^)?<その1>

あびょびょびょびょびょぼぼしっ☆(^~^) へでれぶっ☆(^~^) 公開下書き

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 コネクト・フォーを作ろぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 もう寝る時間だろ……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 電竜戦の予行演習2をやってる最中なのに……」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 そんなん どうでもいいんだぜ☆
コネクト・フォーを調べようぜ☆?」

Connect Four
Connect Four

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 横7、縦6 の42マスで 上からコインを落としていき、タテ、ヨコ、ナナメに4つ揃えたら勝ちのゲームだな☆
完全解析は終わっているとのことだぜ☆ お互いにミスをしなければ先手必勝☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 〇×ゲームをベースに開発するのと、一から開発するの、どっちが楽だろうか☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 ケッコウ 違うゲームだから 一から開発した方がいいのでは……☆?」

20200719cf3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 全国コネクトフォー協会とか無いのかだぜ☆? 無いなら勝手に進めるが……☆?」

connect 4

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 書籍を買え、ということみたいだぜ☆」

Connect Four

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ いろいろネットに落ちてるんだが 歴史的に太いのにアクセスできないんで
適当に見つけたやつを真似るか……☆」

20200719cf4.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ チェス盤と同じ符号にしておくのが親切か……☆」

[ 1 move(s) | Go X ]
  +---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ここまでは ぱっと思いつくな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 じゃあ do c で☆」

do c
pos
[ 2 move(s) | Go O ]
  +---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |   |   | X |   |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 棋譜は c でいいの? c1 じゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 オッカムのカミソリを使うか、棋譜の見やすさを優先するか……☆? 慣習が分からんぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 重力がなければ ただの4目並べ として遊べるのでは☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 そんなことは許さん……☆ 行番号を自動補完したろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 重力はバグの元しゃない?」

20200719cf5.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 勝利判定は どうやるんだぜ☆? 全方向について 4つの並びがあるのか調べるのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それが一番 実装が簡単だと思うぜ☆ 時間かかるけど……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 勝利の条件があるわよ」

20200719cf6.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 着色したところを取られたら、その方向では勝てないのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 そのプログラムをバグなく実装するのが むずかしそう☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 思考部はどうすんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 深さに上限付けて 全状態ノードを全幅探索する簡単なものでいいんじゃないかだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 盤面評価は☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 四 が作れるタネ に点を付けたらどうだぜ☆?」

20200719cf7.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 連珠の型を真似よう……、コネクト4に通用するか知らんが……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 評価関数を作るのは コネクト4 に強いやつじゃないと無理だろ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 何に価値があるか分からないときは、自己対戦で 強化学習してはどうか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 状態をどう表現すんだぜ☆?
Wikipedia によると、 4,531,985,219,092 の状態数があるらしいぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 機械学習では、 局面は いくつもの特徴に分割して、 特徴量の総和で 局面評価を近似表現するのよ!」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 コネクト・フォーの特徴を洗い出してみましょう!」

20200721cf8.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 四目並べるゲームなのだから、ふつうに考えて 列 は特徴だろ……☆
これを評価しないやつは いない……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 全列 抽出してくれだぜ☆」

20200721cf9.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ つら……☆
タテ棒と ヨコ棒は どっちが価値がありそうだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 それは強化学習で求めるんで、お父んは黙れだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 チェスの符号は 筋、段の順だから、筋の方が強いんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 バロック・ダイアゴナルと、シニスター・ダイアゴナルは どっちが強そうだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 共役だろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 原点が a1 であることを考えると、a1からg6の方に向かって伸びる バロック・ダイアゴナルの方が基準で、
シニスター・ダイアゴナルは バロック・ダイアゴナルに 交差してんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ 上図のまんまの並びで 連番を振るか……☆
配列の添え字は 0番 からだが、
最近観測する経験からすると 0は零元だろ、ということで 連番は 1 から振るのが 流行りだよな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 何のことだか分からんが それで☆」

20200721cf9a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 列に 番号を振ったんで、これから こいつらは ネームド だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 コンピューター将棋の三駒関係KKP、KPPの特徴は 1 ~ 48,958,183 よね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 しばく子は嫌に……、そんな数は覚えなくていいんで☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 コネクト・フォーは 1列関係でいいのか☆? 2列関係、3列関係にしないのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 評価値には 有効桁数 というものがあって、 8 と 9 の違いが分かれば十分なのか、 88 と 89 の違いまで見たいのか、
883 と 884 の違いまで見たいのかは ゲームがどれだけ微妙な戦いにしているかによるんだが、
将棋のストックフィッシュ系でも -30,000 ~ +30,000 の5桁の評価値で 今どきのちからが出せるんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 お前ら -9999 ~ 9999 しか見たことないだろうけど☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ひとまず 1列評価値で作ってみて、それから 判断しましょう」

20200721cf10.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 〇×ゲームをベースにするんで、〇と×を そのまま 使い回そうぜ☆
海外では ×〇 の順かも知れないが、日本では マルバツ で通りが良いんで……☆」

20200721cf11.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 数えてみると、7マス、6マス、5マス、4マス の列があるぜ☆
これだけ見ると ヨコで戦いたくなるけどな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ダイアゴナルは まとめたか☆」

Connect Four

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 遊んでみたろ☆」

20200721cf12.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ むしろ誰が ヨコに並べるかだぜ☆! タテに積んでりゃ 勝ちは無いが負けも無い……☆」

20200721cf12a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 最後は 入玉模様になって シリンダーに順にコインを詰めていくだけで 勝ち……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 つまらない コネクト・フォー 指しやがって☆!

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 訴訟よ!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 これ、下の列の方が 価値があるんじゃないか☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 それは強化学習で求めるんで、お父んは黙ってろだぜ☆!」

20200721cf13.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 空マス、マル、バツを3進数になぞらえ、各列の局面数を求め……☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 これはつまり ヨコ列1本 にも 2187個の特徴があるということなんで……☆」

3^7 * 6 = 13122
3^6 * 11 = 8019
3^5 * 4 = 972
3^4 * 4 = 324

13122 + 8019 + 972 + 324 = 22437

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 22437個の特徴があるぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 長さ 22437 の配列で収まるわね」

KIFUWARABE_80x100x8_01_Futu.gif
「 22437の特徴のうち、25個の特徴が 1つの盤面に出てるわけだな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 さて……、評価値の有効桁数は どれほどの長さが良いか……☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 0~22436の数で序列は付くだろ☆ 5桁で良いのでは☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 同時に25の特徴しか出てこないのだから 5桁も要らんと思う……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 左右対称の盤なんだから さらに半分でいいわよね」

KIFUWARABE_80x100x8_01_Futu.gif
「 最近では 勝率 が使われてるんじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それはそうか……、合理的だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 じゃあ 精度は 100.0% でいいんじゃない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 千分率か……☆ じゃあ評価値は勝率で、単に整数にして -1000~1000 の 2001段階とするかだぜ☆
25本 総和にすれば ー25000~25000の 50001段階だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 コネクト・フォーを やってる連中は 12500 と 12501 の違いを争っているのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 知らね☆ 高すぎる精度は ただのノイズだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 さっきの勝利図で シミュレーションしましょう!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 さっきのゲーム、 8×8 だったんで、 わたしがこれから作る 7×6 じゃないんだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 じゃあ 7×6 にして 遊んで来いだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 その大きさで 会員にならなくても遊べる無料の コネクト・フォー を探すのが大変だぜ☆
独りで遊んでみるぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 独りで タテ列タワー立てて 楽しいか☆?」

20200721cf15.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ d2、e2、f2 に 〇の棒三 ができていて、これでもう ×は c1, g1 に置けないことが確定しただろ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 〇は タワー立ててるだけで × が c1,g1 のどちらかに置くしかないことは確定したな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ×は どこで 四 作んの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 無い☆ c列も g列も 潰れてるし、上に伸びるのを 〇が逃すはずがない☆
確実な詰みがある以上、 満局 を目指した引き分けがも原理的に無い☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ×をタテに積み上げていれば お父んが 見逃すかも……☆」

20200721cf15a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ×の上に置き、c列と g列に置かないという戦略で 見逃しも無い☆」

20200721cf15a2.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ あれっ☆? 怪しくなった……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 評価値に 手番 が要るのでは……☆? 特徴の数2倍だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 長さ44874の配列ね」

20200721cf15a3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ ダメだぜ、c列、g列の どちらに置いても 〇 の負けだぜ……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 何やってんだぜ☆!」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 25手先 が読めなかったので 負けたのね」

20200721cf15a4.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ナナメの突き刺し が ヤバい☆!」

KIFUWARABE_80x100x8_01_Futu.gif
「 タテには なんの価値は無いのでは……☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 そういえば タテは 重力があるから、 状態数は 3の6乗より 少ないんじゃない?」

000000 有る
000001 有る
000002 有る
000010 無い
000011 有る
000012 有る
000020 無い
000021 有る
000022 有る
000100 無い
000101 無い 
000110 無い
000111 有る
001000 無い

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ つまり こういうことだろ☆ 何この面白空間☆ コネクト・フォーより面白いかも……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 729パターンあるぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 for ループ回せば一瞬だが、評価値の計算中に 小難しいことは入れたくないぜ☆」

20200721cf15a5.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ とりあえず 最後まで プレイアウト してみようぜ☆?」

20200721cf16.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ その投了図に出た 25の特徴は 上図の通りで……☆」

20200721cf16a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 特徴の通し番号を 3進数にすると この通りだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 これは 特徴量じゃなくて 名前なのね」

KIFUWARABE_80x100x8_01_Futu.gif
「 で、この特徴に 何点を付けるんだぜ☆?
17列目の 特徴202222号 は 何点だぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 トータルで 25000点なのだから、 25列で割れば 1列当たり 1000点 なのでは☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 そんな適当に付けたら こっちを立てれば あちらが立たず、になるだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 3進数0000000 から、3進数3333333 までの全ての特徴に点数を付けるには 自己対戦を何回やればいいの?
誕生日のパラドックスを利用して求めなさい?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 投了図だけ 点が付いててもダメで、 7×6 の盤の 42 の指し手1つ1つで 点数が付いてて欲しいんだけどな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 言ってしまえば 0点の初手から、この36手目の100点までの道のりに、少しずつ点数が上がっていくような採点方法を作ればいいわけだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 やることは 見えてきたな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 評価値とは 勝ち、引き分け、負け が見えていないときに 仕方なく使う 勝ちへの近さを表す数 だということは、
ボンクラーズや ナインデイ・フィーバー がよく知ってるぜ☆
この評価値について、もう少し説明を足そう☆」

20200721cf18.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 初手は 7手しかない……、もっと言えば 左右反転すれば実質同じなのだから、
a1, b1, c1, d1 の4つしかないし、
もし 先手必勝 と分かっていれば、上がっていく評価値をたんたんと見ているだけで勝つ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 先手必敗が見えていれば どの手を選んでもマイナスよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 もし、このような、どの手を選ぶかに点数が付いているなら 方策(ポリシー) と呼ぶ☆
今回やっているのは 局面評価値(バリュー) なので、指し手には点は付いてないぜ☆」

20200721cf19a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 数は適当に付けたが、石を置いてみて、その局面の25列の特徴量を全部足したものが 局面評価値だぜ☆
もう少し視覚化すると……☆」

20200721cf19a2.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 特徴1個1個に点数が付いていて、その総和が 局面評価値になってるわけだぜ☆
さらに もっと視覚化すると……☆」

20200721cf19a3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 配列に入ってる点数を足してるだけだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 そこに 点数を入れるのが むずかしいのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 まだまだ その話に入るのは早いぜ☆ もっと  を知ろうぜ☆?」

20200722cf20.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 0手目から 36手目までに 0 から 25000 まで増える数は どんな 感じ かという話しだが……☆」

20200722cf21.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 694点ずつ 36回 増えていくのが ベスト……、ただし条件があるぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 その図は 694点増えている評価値を見ている人なのね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 相手が ヘタクソだったり、わざと負けて たまたま勝ってしまったような 投了図を 省ければ、だぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 そんなん ミニマックス戦略で 掃除できる……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 都合が良いことに、コネクト・フォーは 石を置いたところの 特徴は 3つか、4つなんで、
その3つか 4つに 694点 増えるような 配点を付けとけばいいんだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 それが むずかしいのに……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 日付が変わったので 続きはまた今度だぜ☆」

2020-07-22(wed) 20:00

20200722cf22.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ お父んの考え方だと、直線にならないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 勝率ベースだと、コインを投げまくるので、そんな風にはならない……☆
詳しく踏み込む前に、ありえない評価値の説明をするぜ☆」

20200722cf22a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 先手必勝だと 上図のようなグラフになりそうなものだが、局面評価値というものは、こうはならない☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 なんで?」

20200722cf23.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 例えば 初手 は 実質4手だが……☆」

20200722cf23a1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 1~4 の4つの数があれば 序列を付けられるので、 評価値4 とかでも 十分足りる☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 1点でも 飛び出ていれば 十分だぜ☆」

20200723cf24.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ タワーが1つも天井に付いていなければ、次の局面は いつも 7種類あるという 変わったゲームだが……☆
2手目は 28局面あるだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 28個の数があれば 全ての2手目に序列を付けることはできるけど、
それで行くと 42手目の局面の序列を付けるのに使う 数が 膨大になるんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 だから 全局面を 全順序で並べるということは しない……☆
しかし そうか、 指し手は たかだか 多くて 7つまでなのか☆ 実現確率探索もできそうだな……☆」

20200723cf25.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 局面ごとに、7つの手を 何% で 選んだ か、ただ記憶しておくだけだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 1つの局面は 長さ 22437 の配列で表せるのだから、 7つの指し手の数だけ それを用意すればいいんだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 すべての局面で ルーレット 回しまくっても ぜんぜん 埋まらないだろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 遊びながら 強くなるんだから 面白いだろ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 局面評価値(バリュー)より 方策(ポリシー)の方が 簡単に作れそうねぇ」

KIFUWARABE_80x100x8_01_Futu.gif
「 しかし この パーセンテージは 相手が置くところの確率だぜ☆
自分が置くところの確率にするには 28倍要るのでは☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 前局面から見た相手は、自分のことだぜ☆ 7倍でいける☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 勝率を求めるなら、トライした数と、勝った数の2つがいるのでは☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それはそうか……、14倍で☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 その学習データは どうやって保存すんの? CSV?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 CSV がまずまずかな☆」

00,99,100,

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 100分率だと、3桁になるのが 気持ち悪いんだよな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 じゃあ 99分率 にしろだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それも気持ち悪い……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 100 なら AA にすれば?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 一般的でない……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 1 ~ 7 の最小公約数は 420 だぜ☆ 420分率にしろだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 わらう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 直近の420回だけ記録するようにして、内部的に 420分率にして 見た目は100分率で表示するかだぜ……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 機械学習のモデルは それで確定でいいわよね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 左右反転は削ったり 圧縮かけれそうだが 省略で☆
実装は明日からにしようぜ☆」

次の記事へ

何度でもクリック!→

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位 の最近の記事