正規語言相關文章參考資料為陳穎平教授上課講義

L4 Decidability

Decidable Languages

Decidable Problems Concerning Regular Languages

定義 ADFA={B,w  B is a DFA that accepts input string w}A_{DFA} = \{ ⟨B, w⟩~|~B~is~a~DFA~that~accepts~input~string~w \}

Theorem

ADFAA_{DFA} is a decidable language.

  • 證明: 建立一個 TM MM 模擬 wwBB 上的行為,如果停在 accept statesADFAA_{DFA} appect,否則會 reject,只有這兩種可能,因此是 Decidable

定義 ANFA={B,w  B is a NFA that accepts input string w}A_{NFA} = \{ ⟨B, w⟩~|~B~is~a~NFA~that~accepts~input~string~w \}

Theorem

ANFAA_{NFA} is a decidable language.

  • 證明: 建立一個 TM NN,並建立與 BB 等價的 DFA CC,可以將 C,w⟨C, w⟩ 帶入 TM MM 去判斷是 accept or reject

定義 AREX={R,w  R is a regular expression that generates string w}A_{REX} = \{ ⟨R, w⟩~|~R~is~a~regular~expression~that~generates~string~w \}

Theorem

AREXA_{REX} is a decidable language.

  • 證明: 建立一個 TM PP,並建立與 RR 等價的 NFA AA,可以將 A,w⟨A, w⟩ 帶入 TM NN 去判斷是 accept or reject

定義 EDFA={A  A is a DFA and L(A)=}E_{DFA} = \{ ⟨A⟩~|~A~is~a~DFA~and~L(A) = ∅ \}

Theorem

EDFAE_{DFA} is a decidable language.

  • 證明: 建立一個 TM TT,從 start state 開始進行 BFS 並 mark 已經被經過的 states,如果有到達 accept states 則 reject,否則 accept (沒有 string 會被 AA accept)

定義 EQDFA={A,B  A and B are DFAs and L(A)=L(B)}EQ_{DFA} = \{ ⟨A, B⟩~|~A~and~B~are~DFAs~and~L(A) = L(B) \}

Theorem

EQDFAEQ_{DFA} is a decidable language.

  • 證明: 建立一個 TM FF,根據某些操作在 DFA 上的封閉性,可以建立一個 DFA CC 使得 L(C)=(L(A)L(B))(L(A)L(B))L(C) = (L(A)∩\overline {L(B)})∪(\overline {L(A)}∩L(B)),代表是兩個 language 的對稱差,可以將 C⟨C⟩ 帶入 TM TT 去判斷其 language 是否為空,如果 TM TT 是 accept 則 accept,否則 reject (對稱差不為空)

Decidable Problems Concerning Context-Free Languages

定義 ACFG={G,w  B is a CFG that generates string w}A_{CFG} = \{ ⟨G, w⟩~|~B~is~a~CFG~that~generates~string~w \}

Theorem

ACFGA_{CFG} is a decidable language.

  • 證明: 建立一個 TM SS,先將 GG 轉換為等價的 Chomsky normal form,如果 ww 的長度為 n (不為 0),則在 2n - 1 步內一定可以判斷是否能產生 ww,如果能產生則 accept,否則 reject
    • 也能輕易地用 CYK Algorithm 來判斷

定義 ECFG={G  G is a CFG and L(G)=}E_{CFG} = \{ ⟨G⟩~|~G~is~a~CFG~and~L(G) = ∅ \}

Theorem

ECFGE_{CFG} is a decidable language.

  • 證明: 建立一個 TM RR

定義 EQCFG={G,H  G and H are CFGs and L(G)=L(H)}EQ_{CFG} = \{ ⟨G, H⟩~|~G~and~H~are~CFGs~and~L(G) = L(H) \}

EQCFGEQ_{CFG} is Undecidable (Chapter 5)


Theorem

Every context-free language is decidable.

  • 證明:

最後可以得到這樣的關係:

The Halting Problem

Is there any problem algorithmically unsolvable?

定義 ATM={M,w  M is a TM that accepts w}A_{TM} = \{ ⟨M, w⟩~|~M~is~a~TM~that~accepts~w \}

Theorem

ATMA_{TM} is undecidable.

  • 證明: 之後證明

ATMA_{TM} is Turing-recognizable.

  • 證明: 建立一個 TM UU 模擬 wwMM 上的行為,如果能到達 accept state 則 accept,如果到達 reject state 則 reject (有可能卡在 loop)

The Diagonalization Method

Measuring the sizes of infinite sets.

假設有兩個 set A,BA, B,如果能找到一個函數 ff from AA to BB,並滿足:

  • one-to-one: $ x ≠ y ⇒ f (x) ≠ f (y)$
  • onto: $ ∀b ∈ B, ∃a ∈ A, f (a) = b$

A,BA, Bsame size,並且 ff 稱為 correspondence

Definition

A set AA is countable if either it is finite or it has the same size as NN .

Theorem

RR is uncountable.

  • 證明: 先假設實數集合 RRcountable 的,則存在函數 ff 使得 NN 與其內元素一一對應,我們可以找到一個實數 xx 是沒有被對應的的,產生矛盾
    • xx 的產生方式: 取 i 對應元素的小數點後第 i 位,並改變其數值
Corollary

Some languages are not Turing-recognizable.

  • 證明: 利用 Diagonalization Method

The Halting Problem Is Undecidable

證明 ATMA_{TM} is undecidable.

A Turing-Unrecognizable Language

A language is co-Turing-recognizable if it is the complement of a Turing-recognizable language.

Theorem

A language is decidable iff it is Turing recognizable and co-Turing-recognizable.

  • 證明: 建立一個 TM MM,當接收 string ww 後,同時模擬 M1,M2M_1, M_2 的行為,如果 M1M_1 accept 則 accept,如果 M2M_2 accept 則 reject (可以避免卡在 loop)
    • M1M_1Turing recognizable 所對應的 TM
    • M2M_2co-Turing-recognizable 所對應的 TM
    • 不可能兩者同時卡在 loop
Corollary

ATM\overline{A_{TM}} is not Turing-recognizable.

  • 證明: 已知 ATMA_{TM} is undecidableATMA_{TM} is Turing-recognizable

Let’s enumerate the binary strings as
w1:ϵ,w2:0,w3:1,w4:00,w5:01,w6:10,w7:11,w8:000,w9:001...w_1:ϵ, w_2:0, w_3:1, w_4:00, w_5:01, w_6:10, w_7:11, w_8:0 00, w_9:001...

1wi1w_i is exactly the binary representation of ii.

接著將 wiw_i 視為 TM,並定義 Ld={wi  wi does not accept wi}L_d = \{ ⟨w_i⟩~|~w_i~does~not~accept~w_i \}

Theorem

No Turing machine accepts LdL_d.

  • 證明: 利用 Diagonalization Method