機械情報学特論 - 2013 -

レポート課題

2014/01/10

以下の問題のうちからひとつを各自選んで回答せよ。 提出期限は 2014 年 2 月 20 日 (木曜) 17 時 とする。
レポートは A4 判の紙面にて、総合研究棟 4 階の 情報基盤センター業務事務室前に設置するボックスに提出すること。
出題内容に関する質問などは、講義時間中に質問してくれれば、回答する。 講義期間終了後の質問などに対しては、本ページ上で直接、 もしくは設問の修正や補足などのかたちで間接に回答する。


  1. Interpreter の実応用

    講義内で解説した interpreter を、 必要なら各自の用途に適応するように拡張した後、 各自の目的とする応用プログラム内に組み込め。

    応用プログラムとしては、 例えば以下のようなものが考えられるが、 これらのみに限定するものではない。

    この時、各自、 目的とする応用プログラムは コードで表現された情報をどのように利用しようとしているのか、 どのような用途に適応させるためにどのような仕様を追加したか、 に関して必ず説明を加えること。 また、 文法に拡張を加えた場合には、 新しい文法規則の BNF もしくは構文図を添付すること。

    文法の拡張の仕方に関しては、例えば、

    などといったものが考えられる。

  2. Production System の実装

    30 以上のルールを格納できるルール・ベースひとつと、 30 以上のファクトを格納できるファクト・データベースひとつとから構成される、 プロダクション・システムを実装せよ。

    簡単のため、 ファクト・データベースは単純な変数管理表とし、 変数名に対して未束縛状態を示すか、 あるいはひとつの実数値を束縛できるものとする。 また、 ルールは単一の変数への代入文の形式とし、 右辺の式に含まれる変数が全て束縛された時にはじめて、 その値を計算して左辺の値として束縛するものとする。

    ルール・ベースやファクトデータベースへ情報を格納する手段としては、 会話的なものでなく ファイルからの入力などを用いてもよい。

  3. 知識システムの動作シミュレーション

    以下の全ての項について論ぜよ。この問いに限っては実装の必要はない。 なお、この選択肢は、 レポート作成時に計算機環境を利用できない特殊事情のある者のために用意したものであり、 事前に高田の了承を取ること。

    1. Minsky の Frame

      Minsky の frame を用いて実装することが適切と思われる問題を設定し、 この問題に関する知識を frame の形式で表現せよ。 また、紙上で三種の探索法にしたがって、 その動作のシミュレーションを行なえ。

    2. プロダクション・システム

      プロダクション・システムを用いて実装することが適切と思われる問題を設定し、 この問題に関する知識をプロダクション・ルールのルールの形式で表現せよ。 また、紙上でその動作のシミュレーションを行なえ。


実装を要求されている問題を選択する場合において、 実装に用いる言語は C とする。 C 言語を習得していない者については、 実装の方法等について相談に応ずるので必ず事前に申し出ること。
実装には、 講義中で解説した interpreter を必ず使用すること。 この interpreter の source code は 本講義の web 上で公開しているので、 これを自由に改変して用いよ。 また、 yacc / lex などの言語処理用ライブラリの利用は禁止する。
レポートには、 各自が書き起こした interpreter 以外の部分と、 提示した interpreter に手を加えた場合には修正した部分のソースコードを含むこと。

またそのシステムを用いて簡単なアプリケーションシステムを構築し、 インタプリタの動作や 変数管理メカニズムの状態などを中心に、 稼働状況のデモンストレーションを示せ。 デモ出力は デバッグ用データダンプ程度のもので、 処理の過程が伺えるものであれば充分とする。

各種の異常状態を回避するために必要となるシステムの対応や、 この目的で必要な各種の制限は各自で自由に設定して良いが、 どのような仕様を設定したかはレポート中に明示せよ。


[html-lint] [html-validator]

 [M.T. HomePage]  [written & copyrighted by Masayuki Takata]