情報学の基礎としての論理学 · 人工知能基礎論・論理とプログラミング...
TRANSCRIPT
情報学の基礎としての論理学Logic as a foundation of Informatics
国立情報学研究所
情報学基礎研究系
照井一成
論理学とは?
(本来は)推論の研究
BC4世紀 正しい推論形式の体系化アリストテレス
1880’s~ 記号化・抽象化・数学の基礎付けフレーゲ・ラッセル・ヒルベルト・ゲーデル
1930’s~ 計算論・コンピュータ科学の基礎付け
チューリング・フォンノイマン
情報科学への応用
人工知能(定理証明、問題解決)
検証(並行プロセス、セキュリティプロトコル)
データベース
プログラミング言語(Lisp, Prolog)
計算の複雑さ(P=NP問題)
自然言語理解(カテゴリー文法、意味論)
「推論」の論理学
基本:三段論法
青字部分、赤字部分を別の文章で置き換えてもやはり正しい推論が得られる:
前提1:アリバイがあるならばヤスオが犯人だ前提2:アリバイがある―――――――――――――――――――結論: ヤスオが犯人だ
前提1:風が吹くならば桶屋が儲かる前提2:風が吹く―――――――――――――――――――――結論: 桶屋が儲かる
「推論」を超えて
重要なのは「形」であり「意味」ではない:論理の形式性
ではいっそ記号を使って表したら?
そもそもA,Bが文である必要すらなく、「→」が「ならば」である必要もない。上の関係を満たすような現象なら何にでも適用できる:論理の汎用性
A A→B―――――
B
並行プロセスのモデル化
例:自動販売機を「120円→ジュース」で表す
論理式 = 対象の振る舞いを記述する
三段論法 = 対象間のインタラクション
並行プロセスのモデル化・検証
120円 120円→ジュース――――――――――――
ジュース
並行プロセスのモデル化(2)
チャンネルαを通してメッセージ t を伝達する:
論理のダイナミズム
A(t)∧α(t) ∀x(α(x)→B(x))―――――――――――――――――A(t) α(t) ∀x(α(x)→B(x))―――――――――――――――――
A(t) α(t) α(t)→B(t)―――――――――――――――――
A(t) B(t)
カテゴリー文法(1)
1. John walks ○
2. Mary talks ○
3. walks walks ×
4. John John ×
1,2が正しくて3,4が間違っているのはなぜか?
⇒文法理論
カテゴリー文法(2)
John : NP, walks : NP→S と置くと
は正しい推論だが以下の推論は間違っている
John : NP walks : NP→S――――――――――――
John walks : S
walks : NP→S walks : NP→S―――――――――――――
walks walks : S
John : NP John : NP――――――――――
John John : S
カテゴリー文法(3)
カテゴリー文法においては:
論理式 = 語のカテゴリー
三段論法 = 文(句)の構成
正しい推論 = 正しい文の構成
自然言語の論理文法、意味論
関数型プログラミング(1)
関数適用:
関数合成:
5 : Int even? : Int→Bool――――――――――――
even?(5) : Bool
length(x) : String→Int even? : Int→Bool――――――――――――――――――
even?(length(x)) : String→Bool
関数型プログラミング(2)
関数型プログラミングにおいては:
論理式 =プログラムの型(仕様)
推論すること =プログラムを書くこと
正しい推論 =正しいプログラム(型エラーを含まない)
プログラム自動抽出、プログラム検証
論理と計算の複雑さ(1)
プログラム=証明
プログラムの複雑さ:実行時間、使用メモリ
では証明の複雑さとは?
証明の複雑さ=コントラクションの複雑さ
コントラクション:
“同じ仮定は何度用いてもよい”
A→A→B―――――
A→B
論理と計算の複雑さ(2)
計算の複雑さの論理的理解
論理に基づく計算量の制御
プログラムの複雑さ
多項式時間プログラム
指数関数時間(あるいはそれ以上)のプログラム
証明 プログラム
コントラクションを自由に用いている
証明一般証明の複雑さ
コントラクションが適度に制限された証明
情報学における論理学の役割
インスピレーションの源(Prolog, Lisp, コンピュータそのもの)
理論的基礎(完全性定理・不完全性定理、計算可能性・計算不能性)
意味の理論・検証の理論
高次概念への拡張(関数の関数)
さまざまな現象の統一的理解
情報学基礎研究分野のその他の研究
人工知能基礎論・論理とプログラミング宣言的プログラミングにおけるソフトウェア発展の研究(佐藤健)
情報の意味を記述するために構造表現を導入した論理言語の研究(兼岩憲)
構成的論理とプログラミング理論(龍田真)
数値解析・アルゴリズム論大規模連立一次方程式および最小二乗問題の反復解法(速見謙)
大規模な最適化問題を解くための効率良いアルゴリズム研究
(宇野毅明)
量子コンピューティング量子エンタングルメントネットワークを用いたセキュリティー技術(山本喜久、根本香絵、松本啓史他)
量子計算と量子情報(松本啓史)
情報学基礎研究分野のその他の研究
バイオインフォマティクス新生代バイオポータルの開発研究(藤山秋佐夫他)
認知科学発話と身振りの協調に関する研究(古山宣洋)
脳における情報処理過程の解明(植木浩一郎)
自然言語処理Semantic Webにおけるすべての人の為の高度な内容タグ付(ナイジェル・コリアー)
遠隔教育・情報共有情報共有支援システムNet Commons(新井紀子)