V0545800

記号処理演習

Exercises in Symbolic Manipulation

開講部

システム理工学部

開講学科

数理科学科

開講学年

3年次

開講時期

前期

単位数

2

単位区分

選択

系列区分

専門

講義区分

演習
教授井戸川知之この授業の2016年度のアンケートを参照

授業の概要

記号処理は数値処理 (計算) に対比して用いられ, 狭義には微分積分や因数分解を数式 (記号列) のまま計算する数式処理 (計算機代数) と, 知識・推論を記号でモデル化した人工知能を主な対象とするが, 広義にはコンパイラや OS も含む非数値処理全般を指す. ここでは主に狭義の記号処理を対象とする. この科目は演習科目であるが, 従来行っていた講義科目「記号処理」の内容も含め, 講義+演習の形で進める.
記号処理プログラミングには関数型言語 LISP と論理型言語 Prolog がよく用いられる. 始めにこれらの紹介・演習を行い, その後, 簡単な数式処理・推論システムをこれらの言語を用いて実装してみることで記号処理の基本的な考え方を実感してもらう. なお, これらの言語, 特に Prolog は従来学んできた C や BASIC 等の手続き型言語とは考え方の異なるもので, プログラミングに対する視野を広げる効果もある.

達成目標

1.記号処理の考え方を理解した上で, 記号処理言語 LISP の基礎を学ぶ.
2.その後, 簡易数式処理システムの製作を通して応用力を身につけることを次の目標とする.
3.Prologによる簡易プロダクションシステムの製作を通して推論システムの基礎を学ぶ.

授業計画

1.以下の内容をコンピュータを用いて演習する.

各種数式処理システムの特徴
2.記号処理におけるデータ構造
3.LISPの基礎 (1) アトム, リスト, 基本関数
4.LISPの基礎 (2) 変数・関数定義, 再帰呼び出し
5.LISPの基礎 (3) 述語と条件式
6.LISPの基礎 (4) リスト処理 (再帰, map 関数)
7.LISPの基礎 (5) リスト処理 (破壊的関数も用いた効率化)
8.数式処理 (1) 数式の内部表現
9.数式処理 (2) 数式の入出力 (構文解析, プリティプリント)
10.数式処理 (3) 記号微分と数式の簡単化
11.数式処理 (4) 記号積分
12.推論システム (1) 記号論理と論理型言語 Prolog
13.推論システム (2) プロダクションシステム実習
14.推論システム (3) 探索問題
15.期末試験とその講評

評価方法と基準

期末試験 50%, 演習各項目ごとの課題 50% で評価.

教科書・参考書

教科書は特に指定しない. 参考書は項目にあわせて適宜指示する.

履修登録前の準備

「データ構造とアルゴリズム」, 「プログラミング演習」を履修済みであることが望ましい.

環境との関連

環境に関連しない科目

地域志向

地域志向ではない科目

社会的・職業的自立力の育成

社会的・職業的自立力を育成しない科目

アクティブ・ラーニング科目

能動的な学修への参加による授業が概ね半数

最終更新 : Sat Sep 24 07:36:42 JST 2016