執筆者:難波和明 授業者:寺尾 敦 atsushi [at] si.aoyama.ac.jp Twitter: @aterao 市川伸一・伊東祐司(編)『認知心理学を知る<第3版>』おうふう 第9章 LISP による情報処理モデル 執筆者:難波和明 授業者:寺尾 敦 atsushi [at] si.aoyama.ac.jp Twitter: @aterao 室蘭工業大学 集中講義「認知心理学」
1.人工知能分野の 人間の思考への関心 人工知能研究:コンピュータに知的なふるまいをさせる. 人間の知的ふるまいをヒントにできる. ちょっと気の利いた判断 翻訳 人間の知的ふるまいをヒントにできる. ここに心理学との接点がある.人間の持つ知識と,情報処理アルゴリズムを明らかにする. 室蘭工業大学 集中講義「認知心理学」
2.“人間はどのようにものを知るか” を考えるための道具としてのコンピュータ 人工知能研究は,知的なプログラムを書くために人間を理解する. 認知心理学は,人間を理解するために知的なプログラムを書く. 人間と同じようにふるまうプログラムが書ければ,プログラムはその行動を説明するモデルとなる. プログラムはすべてを明示しなければ動かない.うまく書けないのは,理解できていない部分.理解していたつもりが,そうではなかったと気がつくことも多い. 室蘭工業大学 集中講義「認知心理学」
3.LISP の実例 人工知能研究,認知心理学の研究で使用するプログラミング言語は? 伝統的には,記号処理に強い言語を用いた. 記号処理:シンボル(命題表象)とその操作 LISP, PROLOG 参考:ニューラルネットワーク(並列分散処理)は,明示的な記号操作をしなくてよい.むしろ数値処理. 室蘭工業大学 集中講義「認知心理学」
LISP プログラムは関数の組み合わせとして書かれる. 関数を呼び出して使うときには,括弧の最初に関数名を書く.続いて,その関数への入力(引数)を並べる. 関数はいくつかの入力(引数)を受け取り,何らかの値を出力する. (関数名 引数1 引数2 ...) 室蘭工業大学 集中講義「認知心理学」
データはリストで表現する. 処理のための,2つの基本的関数 データ要素を括弧の中に並べる. 関数と区別するため,括弧の前に「’」をつける. CAR(カー):リストの先頭要素を取り出して返す. CDR (クダー):リストの先頭要素を取り出された残りのリストを返す. ’(要素1 要素2 要素3 ...) 室蘭工業大学 集中講義「認知心理学」
(t (1+ (* 2 (hanoi (1- n))))))) ハノイの塔の解決に要する 手数を返す関数 円盤の枚数 n を引数として,n 枚ハノイの塔の解決に要する(最短)手数を返す. (defun hanoi (n) (cond ((equal n 1) 1) (t (1+ (* 2 (hanoi (1- n))))))) 室蘭工業大学 集中講義「認知心理学」
再帰的な hanoi 関数 動作 n が 1 でないとき,(hanoi n) は (hanoi (n-1)) を呼び出す.再帰的関数 順に (hanoi 3), (hanoi 4), … , (hanoi n) の値が返される. 室蘭工業大学 集中講義「認知心理学」