A:探索の効率を考える場合に,ヒューリスティック関数を考案するためにかか る時間というのは考慮しません.ヒューリスティック関数が与えられたとして, その効率はどうかという議論をします.
実際には,新しい問題にヒューリスティック探索を適用しようと考えた場合, 誰かがヒューリスティック関数を考えなければいけないわけで,もしもその問 題を一度しか解かないのだとしたら,ヒューリスティック関数を考えるための 時間が無視できない場合はあると思います.
ただ,もしも問題のサイズがかなり大きく,盲目的な探索を行ったとすると, 高速の計算機をつかっても,解をえるまでに何年もかかってしまう場合があり えます.そういう場合は,ヒューリスティック探索の方が有効でしょうね.
このあたりの話は,第三回目の講義でします.
A:∀ や ∃ は数学の論理記号で ∀ は全称記号とよび「任意の」という意味 です.∃ は存在記号とよび「存在する」という意味です.よって∀k ∃ n0 は,「任意の k に対してある n が存在して」という意味にな ります.
例えば an = 1/n (n は自然数) という数列を考えてみましょう. この数列に対して,以下のことが言えます.
∀r (> 0)∃n0 [n ≧ n0 ⇒ an < r]
この数学の式(論理式)は「任意の r (r は正数) に対して,ある n0が存在し,n が n0 以上なら an は r より小さくなる」という意味です. 実際に,r としてどんなに小さな正の数を持ってきても, n0 を適当に(数学でいう適当とは,適切にの意味)に選べば, n0 より大きな n に対して an < r とできます. 本当にそうかどうかは考えてみて下さい.
これらの記号に関しては,「人工知能II」の講義の述語論理というパートで詳 しく紹介します.
A:解がもともとないということです.講義で話したように,探索は初期状態か らはじめて目標状態までの動作の系列(もしくは状態の系列)をもとめることで すが,質問のような状況では,そういった系列はないことになります.よって 解がないわけです.
A:まさにそうです.
半順序プランには,順番が規定されない行為が含まれます.実際にその半順序
プランを実行する場合は,実行順序が規定されてない行為にも便宜的に順番を
つけることになります.これを線形化というわけですが,線形化は複数通り
ありえます.
Q: 意味ネットワークなどの知識表現と推論/連想メカ ニズムは具体的にどのよう(何に?)に使うのでしょうか?
A:答えになっているかどうかわかりませんが,例えば以下の Q&A を参考にし てみてください.
意味ネットワークに限定すると不明ですが,一般的に知識表現と考えれば,他 にも応用例や具体例はいろいろあります.後に講義する知識ベースシステムな どはその有用な一つの応用です.自然言語理解といった応用もありますね.
Q: 英語翻訳ソフトなどにも推論メカニズムは使われて いるのですか?
A:使われている物もあるし,使われていない物もあります.これはいくつかの レベルにわけて考えられます.
まず,語彙のレベルです.翻訳ソフトウェアを試してみるとわかると思います が,どうみても単語の訳などが適切とは思えない場合があると思います. 例えば,英語の "take" には様々な意味がありますね.主に「取る」というよ うな意味で使われますが,"I took a medicine" と言ったら,「私は薬を飲ん だ」と訳すのが適切でしょう.このレベルで適切な訳を生成できないような翻 訳ソフトウェアは,内部でたいした知識処理はしてないだろうと推察できます.
このように,一つの英単語をとってみてもいろいろな意味があり,日本語に訳 す場合は適切な語彙を選ばなければいけません.これを可能にするためには, (1)十分で詳細な辞書をもち,かつ(2)文脈を理解する必要があるでしょう.
辞書の内容は知識と言えるわけですし,その膨大な知識を適切に使い分けるた めには推論メカニズムが必要になります.また,文脈を正しく理解するた めには,特定の専門領域の知識が必要であったり世界知識(常識も含む)が必 要になったりしてます.
人間の翻訳者をみていてもわかりますが,いくら英語と日本語の語学的な知識 があっても,特定の領域に関する十分な知識がないと,その領域に関しては適 切な翻訳が出来ない場合があります.つまり,専門知識を持っている人は,そ の領域の知識を用いて,足りない情報などは推論により補って適切な翻訳を行 うことができるわけです.
そういう意味でも,優れた機械翻訳システムを構築するためには十分な知識と 強力で柔軟な推論メカニズムは必須だろうと思われます.
A:なりません.
比較の対象は,親ノードの兄弟ノード,そして親ノードの祖先の兄弟ノードだ
けです.実際に,ノードを展開する場合に,展開されたノードには仮の値とし
て最小化ノードであれば+∞, 最大化ノードであれば-∞を割り付けますが,そ
れを比較の対象にしてしまうとαカットやβカットがうまくいかないことがわ
かると思います.
Q: 探索アルゴリズムのところに出てくる「各子供に初 期ノードからの経路を対応付ける」というのはどういう意味ですか?
A:探索アルゴリズムでは次に検査するノード,もしくは展開するノードをオー プンリスト(アルゴリズム中で "L" と表記されている)に保持しています.こ のリスト L の中の各ノードには,探索木のどのノードをたどってそのノード に至ったのかという情報がありません.最終的に解ノードにたどり着いた場合, 解経路を出力するためには探索途中のノードにおいて,そこまでの経路情報が 必要であり,質問の内容はそのための処理です.
Q: 探索アルゴリズムのところに出てくる "P(n)" とい うのは何を意味しているのでしょうか?
A: n はノードを表していて,P(n) は n が解状態であるかどうかを判定する 述語です.この述語 P は,n が解ノードの場合は真 (True)を返し,n が解で ないときは偽 (False)を返します.
Q: 特徴付けとはどのようなことですか?
A: 学問分野により違いはあるでしょうが,計算機科学の領域で特徴付けと言っ た場合は,様々な方法論や手法に関して,学術的に興味がある特性(一般には 複数ある)について考察し,それらの特性の違いにより他と区別したり比較し て優劣を付けたりすることです.
例えば,AとBの二つの方法論があり,その両方の方法論に共通した二つの特性 XとYがあったとします.その場合,「方法論Aは特性Xに関してはBより優れて いるが,特性Yに関してはBに劣っている」などと言うわけです.
この講義における具体例は「探索戦略の特徴 付け」などです.
A: この講義ではアルゴリズムの説明に疑似コード を使っています.これにはいくつかの理由があります.
A: 講義では,英語の概念には可能な限り日本語の対応する言葉を対応付ける ようにしています.英語を多様することにはいくつかの理由があります.以下 の理由は人工知能だけでなく計算機科学/計算機工学一般に言えることです.