Version 4 (modified by 10 years ago) (diff) | ,
---|
人工知能 2.3 2013-10-08
問題解決
- 方程式を解く
- x + y = 12
- 100x + 50x = 850
- 最小公倍数を求める
このようなP
な問題は人工知能にとってはどうでもいい
人工知能は、試行錯誤をしながら求める
- 迷路を抜ける
- パズル
- チェスをプレイする
人工知能によるボートゲームの実装
- 盤とコマの表示
- ユーザの入力を受け付ける
- 禁則処理 (≒ルール違反のチェック)
- 入力の反映
- コンピュータが手を考える
- 取りうる手をリストアップ→一つ選ぶ
- 次どうなるか予測
- 最適な手を実行
組み合わせ爆発
- 適当にさぼってまあまあの解を得る
- 問題の特徴によって、optimizationの実装が異なる
- 巡回セールスマン問題
- いくつかのノードを全て結ぶ最短の線を算出する
- ナップザック問題
- 大きさ・重さ・価値などのattributesが異なるアイテムを、ナップザックの容量や耐荷重の制約のもとできるだけ詰め込む
- 迷路
- 木構造で表現し、(縦型|横型)探索で解く
計算機で表現する (定式化)
- 状態
(x, y) // 4Lの水差しに入っている水の量, 3Lの水差しに入っている水の量
- 初期状態
(0, 0)
- 目標状態
(2, y)
- 定義域
{ (x, y) | x = {0, 1, 2, 3, 4}, y = {0, 1, 2, 3} }
- 操作をいくつか定義する
- 状態遷移図(グラフ)で、ルールにのっとったパスを列挙する
- 実行