2022.07.12
Developer Lv1
目次 Label Label ■基本 Label は文字列を表示するためのノードクラスで、下記のような継承関係を持つ。 Object > Node > CanvasItem > Control > Label Label を画面に設置する方法は ColorRect …More Read
2022.06.15
Developer Lv1
目次 はじめに ColorRect はじめに 本稿では Godot 2D ゲームのユーザインタフェース(UI)において一般的に最もよく使用されるであろう ColorRect, Label, Button, TextureButton ノードクラスについて、 比較的詳しく解説する。 ColorRect …More Read
2022.06.09
Developer Lv1
目次 フレームごとの学習処理 学習結果 学習高速化 さいごに ■フレームごとの学習処理 フレームごとの処理コード概要を以下に示す。 基本的には、これまで示した例と同じように、下記の式(wikipedia より引用)に従って、Q値を更新する。 ただし、これまでは1フレーム内で行動した結果をすぐに取得す …More Read
2022.06.09
Developer Lv1
目次 倒立振子 概要 倒立振子状態・行動 画面(UI)作成 初期化処理 学習開始 倒立振子 ■概要 Godot で Q学習を実装・解説の最後として、下図のような倒立振子を題材としてみる。 倒立振子とは、下部の台に連結された棒が倒れないように、台を水平に移動制御(正確には加速制御)することだ。 多くの …More Read
2022.06.09
Developer Lv1
目次 フレームごとの処理 学習結果 ■フレームごとの処理 Godot では各フレーム(通常60FPS)ごとに _process(delta) がコールされるので、 その中で下記のように mode をチェックし、AI 対 ランダム 対戦モードであれば、modeAiRand() をコールする。 mode …More Read
2022.06.09
Developer Lv1
目次 3目並べ 概要 画面(UI)作成 初期化処理 学習開始 3目並べ ■概要 Q学習では、すべての状態とその状態でのすべての行動のQ値をテーブルにする必要がある。 なので、囲碁や将棋など、状態数や可能行動数が膨大なものに適用するのは困難が伴う (その解決方法として、状態を離散化したり、ニューラルネ …More Read
2022.06.01
Developer Lv1
目次 ヘックス迷路脱出 概要 画面作成 初期化処理 フレームごとの処理 学習結果 ヘックス迷路脱出 ■概要 本章では上図のように、ヘックス(六角形)マップの迷路に車のエージェントを配置し、 スタートからゴールまでの経路を学習するコードを解説する。 マップをヘックスにしたのは、車の進行方向を60度単位 …More Read
2022.06.01
Developer Lv1
目次 初期化処理 フレームごとの処理 学習結果 ■初期化処理 まずは、初期化処理コードを下記に示す。 乱数ジェネレータオブジェクトを変数として生成し、randomize() をコールして、乱数系列をランダムにしている。 テストを行う場合は、set_seed(value) でシードを指定し乱数系列を常 …More Read
2022.06.01
Developer Lv1
目次 はじめに Q学習とは 迷路脱出 概要 はじめに 本来、Godot はゲーム開発のためのゲームエンジンなのだが、 実は試行錯誤を伴う実験的なGUIプログラムも楽に作成することができる。これは Godot の柔軟性が高く、また生産性がとても高いからだ。 本連載では、近年流行りの機械学習の一種である …More Read
2022.05.25
Developer Lv1
目次 ロジカルに解けるかのチェック(後半) 貪欲法 対称形問題生成 おわりに ロジカルに解けるかのチェック(後半) これまでに示した「フルハウス」、「隠れたシングル」、「裸のシングル」 のいずれかを探し、発見した場合はその数字を盤面に入れ、候補数字配列を更新する step_solve() のコードを …More Read