計算理論の基礎 [1] 2章
Information
ver | date | memo |
---|---|---|
1.0 | 2013/06/02 | first |
始めに
http://www.amazon.co.jp/計算理論の基礎-原著第2版-1-オートマトンと言語-Michael-Sipser/dp/4320122070
上記の本の勉強の際のメモをまとめる。
計算理論の基礎(原著第2版)[1]オートマトンと言語
pp126-127のChomsky標準形化の詳細
[1]
S -> ASA | aB
A -> B | S
B -> b | e
[2] 新しい開始変数追加
S0 -> S
S -> ASA | aB
A -> B | S
B -> b | e
[3] e規則 B -> e を削除
S0 -> S
S -> ASA | aB | a (aB => ae => a)
A -> B | S | e (B => e)
B -> b
[4] e則 A -> e を削除
S0 -> S
S -> ASA | aB | a | SA | AS | S (ASA => ASe => AS, ASA => eSA => SA, ASA => eSe => S)
A -> B | S
B -> b
[5] 単位規則 S -> S を削除
S0 -> S
S -> ASA | aB | a | SA | AS
A -> B | S
B -> b
[6] 単位規則 S0 -> S を削除
S0 -> ASA | aB | a | SA | AS (S0 -> Sを削除により S -> ASA | aB | a | SA | AS を追加)
S -> ASA | aB | a | SA | AS
A -> B | S
B -> b
[7] 単位規則 A -> B を削除
S0 -> ASA | aB | a | SA | AS
S -> ASA | aB | a | SA | AS
A -> S | b (A -> Bを削除により B -> b を追加)
B -> b
[8] 単位規則 A -> S を削除
S0 -> ASA | aB | a | SA | AS
S -> ASA | aB | a | SA | AS
A -> b | ASA | aB | a | SA | AS
B -> b
[9] S0 -> ASA の置き換え(長さ3以上の規則なので)
S0 -> AA1 | aB | a | SA | AS (ASA = AA1に置き換え, SAは長さ2なのでそのまま)
S -> AA1 | aB | a | SA | AS (ASA = AA1に置き換え, SAは長さ2なのでそのまま))
A -> b | AA1 | aB | a | SA | AS
A1 -> SA
B -> b
[10] U -> a を追加(長さ2の規則の終端記号置き換え)
S0 -> AA1 | UB | a | SA | AS (U = aによる置き換え)
S -> AA1 | UB | a | SA | AS (U = aによる置き換え)
A -> b | AA1 | UB | a | SA | AS (U = aによる置き換え)
A1 -> SA
U -> a
B -> b
プッシュダウンオートマトン(Chap2.2, p127)
理解するべきこと
- 有限オートマトン(FDA/NFA)の拡張
- Pushdown Automaton : PDA
- スタックの概念
- 無限の容量のスタックを(1つ)持つ
- 無限のスタックを持つので、DFA/NFAで認識出来なかったを認識できる事。
- 文脈自由文法と能力の点で等価
(L(M), N(M), L(G)関連の話)
定理メモ
[Th2.20]
[Lem2.21]
[Lem2.22]
非文脈自由言語(Chap2.3, p144)
Th2.34 (p145-)
p145
- bを規則の右辺にある文字の最大数(少なくとも2以上)
S -> aS | Sb | a
としたら5なのか?
(Sは変数、a,bは終端文字)
p146
- 生成された文字列の長さが少なくともならば、構文解析木の高さは少なくとも
('cuz) 構文解析木の高さが、高々h -> 生成された文字列の長さは高々
=> 文字列の長さがのとき、木の高さがh
文字列の長さがのとき、木の各節点は葉を持てないので
文字列の長さがのとき、木の高さはh+1にならざるを得ない。
という事かな?
('cuz)
=> (bは少なくとも2以上なので)
=>
=> (なので)
Ex2.36
p148
- Case.1
v,yの両方が1種類の文字からなるので、ありうるパターンを全て考察する。
-
- v,y がa列により構成される
とすると、a列は長さpを超える。
-
- vがa列, yがb列により構成される
とすると、a列, b列は長さpを超える。
-
- v,yがb列により構成される
とすると、b列は長さpを超える。
-
- vがb列, yがc列により構成される
とすると、b列, c列は長さpを超える。
-
- v,yがc列により構成される
とすると、c列は長さpを超える。
よって、どの場合を考えても、とした場合に、すべての列の長さが同じに成ることは無い。
- Case.2
v=abとすると
となり、bの前にaが有り、順番に違反する
Ex2.37
p148
- Case.1
- a列が現れない
vがbのみから構成される列になるので、となる。
ポンプダウンにより、b列やc列の長さがpより短くなる。
よってを満たさない。
-
- b列が現れない
a,c列のどちらかはv,yに現れなければならない
-
-
- a列が現れる
-
b列はxまたはzの位置にあり、長さはp固定
とすると、a列の長さがpを超える。
よってを満たさない。
-
-
- c列が現れる
-
b列は、uまたはxの位置にあり、長さはp固定
とすると、c列の長さがpより小さくなる。
よってを満たさない。
Ex2.38
p150
- vxyが中間点を含む
の部分文字列の中間(1から0に変わる所)がvxyの中に存在すると言う事。