Más contenido relacionado
Más de Atsushi Hayakawa (20)
集合知プログラミング勉強会 第11回 後半 ~進化する知性~
- 4. 11.7 環境を作り上げる
● プログラムが進化する流れ
– プログラムの集合をランダムにつくり上げる
– 複製や変更をするためによいものたちを選択
– 停止条件に達するまで繰り返す
● プログラムをベストからワーストの順にランク付け
(エリート主義)
– もっともよいプログラムは自動的に次の世代へ
– ランキングの上位のプログラムをランダムに選び、交配
や突然変異を行う
● これを繰り返して、プログラムの集団を作る
● 構築されたプログラムは複雑なりがち。
- 6. 11.8 シンプルなゲーム
● Grid WarというゲームのAIを作る。
– 交互に格子の上を動く二人のプレイヤーが存在
– それぞれのプレイヤーは、4つの方向のうち一つに向
かって移動出来る
– ボードには限りがあり、はみ出た場所へ移動するとその
ターンは没収
– あなたのターンの時に、相手プレイヤーと同じ升目に移
動して、相手を補足したら勝ち
– 制限事項
● 行の同じ方向に二度進むと負け
- 11. 11.9.2 メモリ
● 本章でのプログラムは、反応的
– 結果は完全に入力を基にして出力
– 直前の移動を次へ渡す
● 二度同じ方向に動かないように学習
● これは単に、プログラムの出力、設定したものではない
● 長期的な戦力を持ったプログラムを開発
– 次のラウンドで利用するための情報を保存
● 事前に定義したスロットに値を保存
● 値を引き出したりできる新しいノードを作る
– 保存ノードは、一つの子とメモリスロットのインデックスを持つ
– 再現ノードは、子を持たず、単に適切なスロットの中の値を返す
● 他のプログラムと共有出来るメモリを持つ
- 12. 11.9.3 さまざまなデータタイプ
● 本章では、整数を受け取り、整数を返す
● 浮動少数点
● Strings
– Concatenate,split,インデクシング、サブストリング
● Lists
– これらはstringsと同じような演算を持っている
● Dictionaries
– これらは痴漢や追加のような演算を持つ
● Objects
– どのようなカスタムオブジェクトでも、ノード関数がオブジェクトに対
してのメソッドコールでありさえすれば、ツリーの入力として利用で
きる