知能ソフトウェア特論 項書換え系(3) 合流性 Term Rewriting Systems(3) Confluence Intelligent Software.

Slides:



Advertisements
Similar presentations
SPSSによるHosmer-Lemeshow検定について
Advertisements

確率と統計 - 確率2回目 - 平成 18 年 11 月 1 日. 2 今日の内容 1. 確率の復習(再整理) 2. 加法の定理 3. 乗法の定理へのイントロ.
1 ソフトウェア工学 200 5 年 5セメスタ. 2 履修にあたって 教科書:「アルゴリズムとデータ構造」 平田富夫著 森北出版 講義:5セメスター開講、専門科目、 K318 、金曜4時限 担当: 草苅 良至 GI511, 2095、 参考書:「プログラミング作法」
1 7.時間限定チューリングマシンと クラス P. 2 7 -1.入力サイズ チューリングマシンの入力記号 の長さ を 入力サイズという。 名称:合成数の問題 インスタンス:整数n 問:nは合成数か? 通常は、入力サイズとしてはもっとも短い表現での 長さが利用される。 例えば、次のような合成数の問題における入力サイズは、
7.n次の行列式   一般的な(n次の)行列式の定義には、数学的な概念がいろいろ必要である。まずそれらを順に見ていく。
第 3 回 iPhone アプリ開発勉強会 Objective-C 基礎講座 - インスタンスメソッド - 三井 相和.
9.線形写像.
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
時間的に変化する信号. 普通の正弦波 は豊富な情報を含んでいません これだけではラジオのような複雑な情報 を送れない 振幅 a あるいは角速度 ω を時間的に変化 させて情報を送る.
情報処理A 第10回 Excelの使い方 その3.
5.連立一次方程式.
相関.
―本日の講義― ・平均と分散 -代表値 -ぱらつき(分散・標準偏差等) ・Excelによる演習
論理回路 第2回 今日の内容 前回の課題の説明 数の体系 – 数の表現 – 代表的な数 – 基数の変換 – 補数.
ノイズ. 雑音とも呼ばれる。(音でなくても、雑 音という) 入力データに含まれる、本来ほしくない 成分.
人工知能特論 II 第 6 回 二宮 崇 1. 今日の講義の予定 確率的文法 品詞解析 HMM 構文解析 PCFG 教科書 北研二 ( 著 ) 辻井潤一 ( 編 ) 言語と計算 4 確率的言語モデル 東大出版会 C. D. Manning & Hinrich Schütze “FOUNDATIONS.
素数判定法 2011/6/20.
フーリエ係数の性質. どこまで足す? 理想的には無限大であるが、実際に はそれは出来ない これをフーリエ解析してみる.
公開鍵暗号系 2011/05/09.
1章 行列と行列式.
本宮市立白岩小学校. 1 はじめに 2 家庭学習プログラム開発の視点 ① 先行学習(予習)を生かした 確かな学力を形成する授業づく り ② 家庭との連携を図った家庭学習の習慣化.
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
プログラミング入門2 第4回 式文 代入式 論理演算子 ループの脱出、スキップ 情報工学科 篠埜 功.
3.エントロピーの性質と各種情報量.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
Excelによる積分.
1 6.低次の行列式とその応用. 2 行列式とは 行列式とは、正方行列の特徴を表す一つのスカ ラーである。すなわち、行列式は正方行列からスカ ラーに写す写像の一種とみなすこともできる。 正方行列 スカラー(実数) の行列に対する行列式を、 次の行列式という。 行列 の行列式を とも表す。 行列式と行列の記号.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
線形符号(10章).
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
10.PとNP完全問題との境界.
複素数.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
人工知能特論II 第7回 二宮 崇.
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
通信路(7章).
3.プッシュダウンオートマトンと 文脈自由文法
6.符号化法(6章).
ビット. 十進数と二進数 十進数  0から9までの数字を使って 0、1、2、3、4、5、6、7、8、9、 10、11、12 と数える 二進数  0と1を使って 0、1、10、11、100、101、11 0、111 と数える.
人工知能特論 II 第 4 回 二宮 崇 1. CCG (COMBINATORY CATEGORIAL GRAMMAR) 組合せ範疇文法 2 今日の講義の予定.
アルゴリズムとデータ構造 補足資料14-1 「ハッシュ法」
正弦波.
3.正方行列(単位行列、逆行列、対称行列、交代行列)
年度 情報数理学. 2 履修にあたって 2009 年度 大学院奇数セメスター(前期)開講 K336→ 大学院棟 D 416(次回から)教室: 時限: 火曜日3時限( 12:50 - 14:20 ) 担当 草苅良至 4/21( 火) 休講 → 補講 ?/? ? 時限 D416.
プログラミング演習B ML編 第3回 2010/6/15 (コミ) 2010/6/16 (情報・知能) 住井 ~sumii/class/proenb2010/ml3/
論理回路 第1回. 今日の内容 論理回路とは? 本講義の位置づけ,達成目標 講義スケジュールと内容 受講時の注意事項 成績の評価方法.
プログラミング言語論 第1回 イントロダクション 担当:犬塚. 講義内容と目的  プログラミング言語パラダイム  プログラミング言語の諸要素  プログラム理論  プログラムの意味論 講義の目的  プログラミング言語に関するアイデアを一通り習得する こと。
C言語応用 構造体.
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
Automatic Language Acquisition, an Interactive Approach † Robert J. Martin † 大西昇 ‡ 山村毅 † 名古屋大学 ‡ 愛知県立大学.
プログラミング演習B ML編 第3回 2006/7/4 (通信コース) 2006/7/12 (情報コース) 住井 ~sumii/class/proenb2006/ml3/
HKS Analysis Log Jul 2006 Part1 D.Kawama. 第壱部 HKS Sieve Slit Analysis.
1 中野研究室 4 年ゼミのイロハ 斉藤(修士 2 年) ( 2009 年 ”4 年ゼミのイロハ ” を参考に作りました)
1 プログラミング言語論 第13回 プログラムの意味論と検証 (2) 表示的意味論 担当:犬塚. 2 表示的意味論 denotational semantics  表示的意味論では、プログラムの要素とそれが 意味するものを対応付ける。 変数 式 文 A B … A+2 2B+C A:=A+2 if.
プログラミング言語論 第9回 論理型プログラミング言語 担当:犬塚.
プログラミングⅠ( 2 組) 第 1 回 / pLB1.pptx.
8.任意のデータ構造 (グラフの表現とアルゴリズム)
プログラミング入門2 第3回 複合文、繰り返し 情報工学科 篠埜 功.
第14回 プログラムの意味論と検証(3) 不動点意味論 担当:犬塚
プログラミング演習( 1 組) 第 8 回
1 アルゴリズムの高速化. 2 アルゴリズムにおける 大幅な性能アップ 多項式時間アルゴリズム VS 対数時間アルゴリズム (最大公約数の問題) 指数時間アルゴリズム VS 多項式時間アルゴリズム (フィボナッチ数列を求める問題)
小島 肇  Windows ではアンチウイルスソフトウェアは 必須だが、「入れれば安心」というものでは ない  Mac, Linux における費用対効果はかなり低い  現時点ではマルウェアは流行っていないから  Windows を併用している場合は別.
音の変化を視覚化する サウンドプレイヤーの作成
プログラミングの基礎知識 プログラミングの手順と重要概念 アルゴリズム. プログラミングの手順 コーディング エディタなどでコードを記述 コンパイル・インタープリタ 実行可能な形に翻訳 デバッグ(虫取り、不具合の調整) 完成!
Self-efficacy(自己効力感)について
知能ソフトウェア特論 項書換え系(2) 停止性 Term Rewriting Systems(2) Termination Intelligent Software.
今日の内容 高階関数  関数を値として扱う 関数を引数にとる 関数を返す関数 プログラミングの例題  クイックソート.
Bootstrapping 2014/4/13 R basic 3 Ryusuke Murakami.
Presentation transcript:

知能ソフトウェア特論 項書換え系(3) 合流性 Term Rewriting Systems(3) Confluence Intelligent Software

1.抽象書換え系 と合流性 (1/3) a は b に簡約可能 ■ 定義 (Abstract reduction systems and confluence) ■ Definition Abstract reduction system (A,R) consists of a set A and a binary relation R ⊆ A×A. We will write → for R. When (a,b) ∈ →, we write a →b and say that a is reducible to b. 【 Example 】

■ 定義 ■ Definition Reflexive transitive closure → * : We write a→ * b, if b can be obtained from a by zero or more steps of reduction by →. 1.抽象書換え系 と合流性 (2/3) (Abstract reduction systems and confluence) Transitive closure → + : We write a→ + b, if b can be obtained from a by one or more steps of reduction by →. Joinability ↓: a and b are joinable (a ↓ b), if there exists c in A such that a→ * c and b→ * c. 【 Example 】

■ 定義 1.抽象書換え系 と合流性 (3/3) (Abstract reduction systems and confluence) ■ Definition Weak confluence: (A, →) is weakly confluent, if for all a, b and c in A, a →b and a →c implies b ↓ c. 弱合流性をもつが合流性をもたない例 ( c と d が join しない) Confluence: (A, →) is confluent, if for all a, b and c in A, a → * b and a → * c implies b ↓ c. Confluence implies weak confluence, but its converse does not hold as the example in the right figure shows. 【 Example 】

2.合流性の基本性質 (1/3) ■ 定義 (Basic properties of confluence) ■ Definition a ∈ A is a normal form, if there exists no b ∈ A such that a →b. a ∈ A has a normal form, if there exists a normal form b ∈ A such that a → * b. (A, →) has a unique normal form, if every a ∈ A has at most one normal form.

■ Theorem (Confluence ⇒ Unique normal form) Every confluent system has a unique normal form. 2.合流性の基本性質 (2/3) (Basic properties of confluence) (Proof) If a has two normal forms b and c, then from a→ * b and a→ * c, we have b↓c. Since b and c are normal forms, it must be the case that b=c. 合流性は関数型プログラムに望 まれる性質 (関数の返す値は非決定的な 並列計算をしても一意) Confluence is a desirable property for functional programs, as the values returned by functions should be unique even under nondeterministic, parallel computation.

整礎帰納法 ■ Theorem (Termination + Weak confluence ⇒ Confluence) [Newman’s lemma] Every terminating, weakly confluent system is confluent. (well-founded induction) 2.合流性の基本性質 (3/3) (Basic properties of confluence) (well-founded induction) (weak confluence) Termination of → allows us to use well-founded induction, where a→ + b is a strict partial order that can be interpreted as “b is smaller than a”, and we can use the induction hypotheses P(b) to prove the induction step P(a). 停止性の検証方法は前回学んだので,合流性を検証するにはあと弱合流性の検証法を学べばよ い Having already studied verification of termination, we will study verification of weak confluence to verify confluence. (Proof) (証明)

【準備】代入 (1/4) xy ag(z) 変数 を項 に 同時に置き換える操作を表す 代入 ■ 定義 (Preliminaries: Substitution) ■ Definition A substitution σ={x 1 /s 1,…, x n /s n } represents the operation that replaces all the occurrences of variables x i (i=1,2,…,n) by the terms s i. We will write σ(x i )=s i. As this example shows, a substitution can be well represented as a table that maps each variable to a term. 【 Example 】

xy ag(z) 項 t 内のすべての変数に対して , σ で指定された置き換えを同 時に一回行った結果を表す 代入の(項 t への)適 用 ■ 定義 【準備】代入 (2/4) (Preliminaries: Substitution) ■ Definition Application of substitution σ to term t is denoted by σ(t). This represents the term obtained from t by replacing all the variables x i (i=1,2,…,n) by s i. 【 Example 】

代入 σ は,項の集合 T から T への関数 σ: T → T とみなすことができる 代入の合成 ■ 定義 【準備】代入 (3/4) (Preliminaries: Substitution) ■ Definition The composition of two substitutions σ 1 and σ 2 is the substitution σ 1 ○ σ 2 defined by A substitution σ can be seen as a function from the set of terms T to T. 【 Example 】

ある代入 τ に対し , 代入の一般性 代入 σ は代入 σ’ より一般的である ■ 定義 【準備】代入 (4/4) (Preliminaries: Substitution) In this example, σ is more general than σ’. Note that, intuitively, the result g(y,y) of σ is more general than the result g(b,b) of σ’, as the universally quantified variable y is more general than the specific constant b. ■ Definition A substitution σ is more general than a subsitution σ’, if there exists a substitution τ such that σ’= τ ○ σ. 【 Example 】

3.単一化 (1/6) ■ 定義 (Unification) ■ Definition Two terms s and t are unifiable, if there exists a substitution σ, called a unifier of s and t, such that σ(s)= σ(t). ■ Definition The most general unifier (mgu) σ of two terms s and t is a unifier σ such that there exists no unifier more general than σ.

UNIFY This is not the mgu. 3.単一化 (2/6) (Unification) This is the mgu. 【 Example 】

Equation: Solution: 単一化アルゴリズム 【入力】 項 s,t 【出力】 項 s,t が単一化可能ならば mgu を出力. 単一化可能でなければ「失敗」を出力. 【手順】 関数記号を解釈しない方程式 s = t を変形し, x i = u i の形の複数の 方程式に変換して,代入 ( mgu ) σ={ x i / u i | 1 ≦ i ≦ n} を構成する. s t A unification algorithm accepts two terms s and t as input, and outputs the their mgu if they are unifiable; or the failure otherwise. Its procedure is basically the transformation of the equation s=t (in which the function symbols are not interpreted) into a set of equations of the form x i =u i, from which the resultant substitution (mgu) σ={ x i / u i | 1 ≦ i ≦ n} will be constructed. 3.単一化 (3/6) (Unification) 【 Example 】

Occurrence check: x = f(x) x is a variable and t is a term. 3.単一化 (4/6) (Unification) Apply arbitrarily the following five transformation operations to the initial set of equations {s=t}. (Constants are regarded as function symbols with no arguments.)

3.単一化 (5/6) (Unification) When no operations of Step 1 are applicable any more, the set of equations should be in the form { x i = u i | 1 ≦ i ≦ n} and no variables in the left-hand sides occur in the right-hand sides. In this case, s and t are unifiable and their mgu is σ={ x i / u i | 1 ≦ i ≦ n}

3.単一化 (6/6) (Unification) 【 Example 】

4.危険対による合流性の判定 (1/5) (Decision on confluence by critical pairs) 重なり (overlap) 危険対 (critical pair) σ(left-hand side of first rule) = 【 Motivation 】 Consider two rules f(f(x, y), z) → f(x, f(y, z)) f(i(w), w) → e. To find general overlaps which can be reduced by any of them, try to unify a subterm of the left-hand side (LHS) of the first rule and the whole LHS of the second rule. 弱合流性を乱す可能性のパターン (This pattern might violate weak confluence.)

4.危険対による合流性の判定 (2/5) 危険対 ■ 定義 危険対 (Decision on confluence by critical pairs) ■ Definition A critical pair is a pair of terms σ(l 1 )[σ(r 2 )] and σ(r 1 ), where σ is the mgu of l 2 and a non-variable subterm s of l 1 (i.e., σ(s)= σ(l 2 )). The notation l 1 [s] emphasizes that l 1 contains s as its subterm. σ(l 1 )[σ(r 2 )] represents the term obtained from the overlap σ(l 1 )[σ(s)] by replacing the subterm σ(s) (=σ(l 2 )) by σ(r 2 ). Let l 1 →r 1 and l 2 →r 2 be two rules in which variables are renamed so that they share no variables in common. overlap critical pair

4.危険対による合流性の判定 (3/5) (Decision on confluence by critical pairs) ■ Theorem (Critical pair theorem) A term rewriting system R is weakly confluent if, and only if, every critical pair 〈 p,q 〉 is joinable, i.e. p↓q. critical pair overlap ( 有限個の)危険対 だけ考えればよい We need to think about only a finite number of critical pairs to verify the weak confluence. * * (weak confluence)

4.危険対による合流性の判定 (4/5) (Decision on confluence by critical pairs) ■ Corollary (Confluence check by critical pairs for terminating TRS) A terminating, term rewriting system R is confluent if, and only if, for all critical pairs 〈 p,q 〉, normal forms of p and q are identical. Algorithm Step 1. Let S = the finite set of all critical pairs of R. Step 2. For each critical pair 〈 p,q 〉 in S Let p* = a normal form of p; and q* = a normal form of q. If p* ≠ q*, then return false (R is not confluent). Step 3. Return true (R is confluent). (証明) ニューマンの補題(停止性∧弱合流性⇒合流性)と危険対定理を組み合 わせる. (Proof) Combine the Newman’s lemma with the Critical pair theorem.

4.危険対による合流性の判定 (5/5) (Decision on confluence by critical pairs) 【 Example 】 It is not hard to show that R is terminating. R has only one critical pair 〈 f(e),h(e,e) 〉. Since the normal forms of both f(e) and h(e,e) are h(e,e), i.e., the same, R is confluent.

演習問題7 EXERCISE 7 Verify that the following terminating TRS R is confluent. (Hint: R has two critical pairs.) Verify that the following TRS S is not confluent. (Hint: The first two rules have two critical pairs, one of which consists of two terms that have normal forms different from each other.)