シラバス参照

講義概要/Course Information
2024/04/29 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
知能情報特論
英文授業科目名
/Course title (English)
Advanced Intelligent Information Systems
科目番号
/Code
開講年度
/Academic year
2021年度 開講年次
/Year offered
全学年
開講学期
/Semester(s) offered
後学期 開講コース・課程
/Faculty offering the course
博士前期課程、博士後期課程
授業の方法
/Teaching method
講義 単位数
/Credits
2
科目区分
/Category
大学院専門教育科目 - 専門科目Ⅱ
開講類・専攻
/Cluster/Department
情報・ネットワーク工学専攻
担当教員名
/Lecturer(s)
沼尾 雅之
居室
/Office
西9-807
公開E-mail
/e-mail
numao@cs.uec.ac.jp
授業関連Webページ
/Course website
www.nm.cs.uec.ac.jp
更新日
/Last update
2021/11/09 10:55:19 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標(2,000文字以内)
/Themes and goals(up to 2,000 letters)
(a) 主題
   記号処理とは,数式処理,記号論理学,知識の表現と推論,自然言語処理,画像理解,文書処理などといった,数値処理ではできない,より人間の知性に近い領域を扱うものです.たとえば,ある方程式の近似解をニュートン・ラプソン法で求めるのは数値処理ですが,解の公式などを用いて,解を式の形で導出するのは数式処理です.計算機は,数値微分や数値積分など,数値解として問題を解くのは得意ですが,人間が考えるように式を記号列として扱うためには,記号処理に向いたプログラム言語で問題を記述してあげる必要があります.
   本講義では,LispとPrologという代表的なプログラミング言語を用いることによって,記号による問題の表現とその処理法について学ぶ.2つの言語に特有なプログラミング技術を実習することによって,記号処理問題のプロトタイピングができるようにする.さらに,両言語のCやJavaなどの手続き型言語との違いを理解し,それぞれの言語の理論的背景についても洞察する.

(b) 達成目標 
(1)記号処理と数値処理の違いを理解する
(2)記号による問題の表現法を理解する
(3)LispとPrologのプログラミングスタイルの違いを理解する
(4)LispとPrologによる簡単なプログラミングができる
(5)記号処理の代表的な問題について理解する


Symbolic processing deals with human knowledge processing itself such as formula manipulations, theorem proving, expert systems, natural language processing, image understanding, and text processing. On the other hand, numeric processing tries to get a value by computing  equations or formulas that are already established. For example, Newton-Rhapson method is an algorithm to find a root from any function, the root is obtained by the value but it is approximation. On the other hand, symbolic processing will answer the root not by value, but by formula. The computer is originally designed for arithmetic calculation, thus most programming languages are suited for numerical differentiation  and integration, but special language is needed for symbolic processing .

In this course, we learn the symbolic processing by using Lisp and Prolog,  and understand how these languages are designed to represent  knowledge, our world as environment, and problems. Also we will learn the theoretical background of the languages, and understand the difference of programming model from other more popular procedural programming language such as C, Java, etc.
前もって履修
しておくべき科目(1,000文字以内)
/Prerequisites(up to 1,000 letters)
離散数学. プログラミング通論

Discrete Mathematics, Programming Language
前もって履修しておくこ
とが望ましい科目(1,000文字以内)
/Recommended prerequisites and preparation(up to 1,000 letters)
プログラム言語論,人工知能論

Programming Language, Artificial Intelligence
教科書等(1,000文字以内)
/Course textbooks and materials(up to 1,000 letters)
おおよそ次の参考書に従うが,購入しなくても理解できるように講義する予定.
  猪俣俊光・益崎真治「Scheme による記号処理入門」(森北出版)
  W. F. Clocksin , C. S. Mellish ,“Programming in Prolog”, Springer

授業内容と
その進め方(2,000文字以内)
/Course outline and weekly schedule(up to 2,000 letters)
(a) 授業内容
第1週 知識情報処理の概要
第2週 記号処理のためのデータ構造
第3週 記号処理プログラミングの基礎  
第4週 リスト処理 リストの構成および生成・参照などの操作方法
第5週 数式処理 簡単な数式処理プログラミングによる記号処理の基礎
第6週 推論の基礎(1) プロダクションシステム  
第7週 推論の基礎(2) ゲーム探索法 
第8週 LispによるLispインタプリタ
第9週 Prolog の基礎
第10週 Prolog によるリスト処理
第11週 論理と述語
第12週 PrologによるPrologインタプリタ
第13週 自然言語処理算
第14週 制約充足問題
第15回 期末試験とその解説

(b) 授業の進め方
 講義中心であるが,プログラミング言語は,自分で書いてみて初めて本当に理解できるものである.したがって,JEDの計算機環境を使って学習した言語でプログラムを作成してみる実習もする予定である.言語はLisp系としてはGuileを,Prolog系としてはGnu Prologを用いる予定である.また,実習レポートも数回課す予定である.

Guidance and Introduction
Data structure for Symbolic Processing
Lisp
- Lisp basics and list processing  
- Computer algebra: formula differentiation
- Inference(1): production system  
- Inference(2): game search 
- Lambda calculus: Lisp interpreter
Prolog
- Prepositional logic and predicate logic  
- Programming in logic, Prolog basics
- Prolog computation: Prolog interpreter
- Natural language processing: Definite clause grammer (DCG)
- Constraint logic programming

実務経験を活かした
授業内容
(実務経験内容も含む)
/Course content utilizing practical experience
IBMにおけるLisp,Prologなど人工知能言語の開発環境の研究開発に携わった経験を基に,プログラミング言語の計算モデルとその応用分野についての理解を進める
授業時間外の学習
(予習・復習等)(1,000文字以内)
/Preparation and review outside class(up to 1,000 letters)
座学で覚えるだけでなく,実際にプログラムを作成してみることが必要である.
成績評価方法
および評価基準
(最低達成基準を含む)
(1,000文字以内)
/Evaluation and grading
(up to 1,000 letters)
(a) 評価方法
  毎回のプログラム作成レポートで評価する.期末試験もレポート形式で行う予定.

(b) 評価基準
  以下の到達基準をもって合格の最低基準とする.
(1)記号処理と数値処理の違いを理解する
(2)記号による問題の表現法を理解する
(3)LispとPrologのプログラミングスタイルの違いを理解する
(4)LispとPrologによる簡単なプログラミングができる
(5)代表的な記号処理問題を理解している

Grading
Attendance and Report

Criteria
Understandings of symbolic processing and numerical processing
Understandings of symbolical representation of the problem solving
Understandings of the programming style of Lisp and Prolog
Basic programming skill for Lisp and Prolog
オフィスアワー:
授業相談(1,000文字以内)
/Office hours(up to 1,000 letters)
西9号棟,807号室,原則として水曜または木曜の5時限ですが,他の日時でも対応可能です.事前に必ずメールや電話などによりアポイントメントを取ること.
学生へのメッセージ(1,000文字以内)
/Message for students(up to 1,000 letters)
  記号処理問題は人工知能とともに発展してきました.計算機を人らしくふるまわせるための技術は,数値計算とは全く異なる分野です.PrologやLispは,人工知能言語としても使われますが,一方,新しい問題を簡単に表現して解いてみるためのプロトタイピングに向いています.記号処理問題やその言語を理解しておくことは,今後皆様が新しい問題にチャレンジするときにかならず役立つと思います.
その他
/Others
単に資料に書かれたプログラムを理解するだけではでなく、自分でプログラムを実行してみたり, プログラムを拡張してみたりして本当のスキルとして身につけることが大切です.
キーワード
/Keywords
Lisp,Prolog,Scheme,命題論理,述語論理,数式処理,自然言語処理,探索