久しぶりに練習問題を解く
問題文はテキスト参照で。ちなみに、テキストを持ってなくてもArtificial Intelligence: A Modern Approachで色々見られる*1。章によっては英文だけどpdfで見られるし、掲載されている疑似コードは全て見られる。教材のスライドが揃っているので、これも合わせれば大体内容が分かるかも知れない。また、実際に動くコードもあるし、AI関連のリンクなどもあるのでとても便利だ。
2.1
エージェント:ある環境の中で環境から入力を取り、環境に対して出力を行うもの。
エージェント関数:エージェントは入力と出力を持つので、関数として表すことが出来る。ただし、関数とするときの入力は、その時までの全ての入力のリストになる。
2.2
性能評価基準:エージェントを外から評価する上での指標。
効用関数:エージェントが行動決定の指標とする関数。
というところだろうか。
2.3
a
関数<-->プログラムという図式なら、プログラムは言語の数より多く存在するので、エージェント関数が同じエージェントプログラムは複数存在しえる。これは実装の問題である。
b
関数として書かれるよりプログラムの方が自由度が高いように思われるので、エージェント関数は全て実装可能であると思われる。
c
厳密に同一のエージェント関数というのが難しいが、相対的なアドレスが変わるとエージェントプログラムは同一ではなくなるので、そのような実装は不可能に思われる。
d
nビットの記憶容量が有れば、単純計算で2^nのプログラムが構成できる。ただ、プログラムの挙動を決めるのは記憶容量だけでなく、入力がどのようになっているかが問題なので、答えにくい問題である。
2.5
タスクのPEAS表現。P=性能指標、E=環境、A=アクチュエータ、S=センサだ。
a
サッカーロボットの場合。Pは単純には得点>失点の維持。欲を出せば得失点差の最大化。また、より細かくボールのコントロール権を自軍が維持している時間とかを下位の指標に取り入れても良いだろう。Eはコート、ボール、10人の仲間、11人の相手。監督や審判も含めた方が良いかもしれない。Aは最低限足があればいい。キーパーなら腕も使える。仲間に合図を送るために何らかのディスプレイ装置もつけて良いだろう。Sとして、カメラは必須。音も利用できればなお良い。また、自分の体勢を把握するため角度センサや加速度センサも必要だ。
b
ネットショップで本を買うbotの場合。Pは指定された本が買えれば成功だ。安く買えればなお良い。EはWWW全体、Aとしては対象にコマンドを送れれば良い。Sはhtmlやphpを理解するための解析器、それに何を買うか指定してもらうための入力だ。
c
火星探査ロボットの場合。Pは記録範囲の最大化あたりだろうか。Eは火星の地表。Aはタイヤとか姿勢維持用の腕とか。それに通信装置。Sは記録用のカメラ・マイクに受信装置。また、角度センサに加速度センサ。
2.6
2.5dと2.6は面倒なので省略。2.7はプログラムを書くのだが、サイトにプログラムが転がってるのでそれを使ってみよう。
*1:どうでもいいけど、原題だとAIMAになる。あとでタグを直しておこうかなあ。