κ°•μ˜/Theory of Computation

PDA 1

studylida 2025. 3. 5. 13:56

πŸ“Œ PDA for the Language L = a*

1️⃣ 문제 μ •μ˜

μ£Όμ–΄μ§„ μ–Έμ–΄λŠ” L = a*이며, μ΄λŠ” 곡백 λ¬Έμžμ—΄ (ε)을 ν¬ν•¨ν•˜μ—¬ 0개 μ΄μƒμ˜ 'a'둜 이루어진 λ¬Έμžμ—΄μ„ ν¬ν•¨ν•˜λŠ” μ •κ·œ μ–Έμ–΄μž…λ‹ˆλ‹€.

βœ”οΈ μœ νš¨ν•œ λ¬Έμžμ—΄ μ˜ˆμ‹œ:
{ ε, a, aa, aaa, aaaa, ... }

βœ”οΈ 이 μ–Έμ–΄μ˜ νŠΉμ§•:

  • 'a'λ₯Ό μ—¬λŸ¬ 개 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μŠ€νƒμ„ μ‚¬μš©ν•  ν•„μš” 없이 μƒνƒœ μ „μ΄λ§ŒμœΌλ‘œ 인식할 수 μžˆμŠ΅λ‹ˆλ‹€.

2️⃣ PDA의 λ™μž‘ 원리

이 PDAλŠ” μ£Όμ–΄μ§„ λ¬Έμžμ—΄μ΄ 'a'둜만 μ΄λ£¨μ–΄μ‘ŒλŠ”μ§€ ν™•μΈν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.

πŸ“’ 핡심 원리:

  • λ¬Έμžμ—΄μ΄ 곡백일 경우 (ε), 즉 아무 μž…λ ₯이 없더라도 수락 μƒνƒœλ‘œ 이동 κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • 문자 'a'λ₯Ό 받을 경우, μƒνƒœλ₯Ό μœ μ§€ν•˜λ©° λ‹€μŒ 문자λ₯Ό μ½μŠ΅λ‹ˆλ‹€.
  • PDAμ—μ„œ μŠ€νƒμ„ ν™œμš©ν•˜μ§€ μ•Šκ³  μƒνƒœ μ „μ΄λ§ŒμœΌλ‘œ λ¬Έμžμ—΄μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

3️⃣ PDA μƒνƒœ 전이 μ •μ˜

이 PDAλŠ” μ„Έ 개의 μƒνƒœλ₯Ό κ°€μ§‘λ‹ˆλ‹€.

ν˜„μž¬ μƒνƒœ q μž…λ ₯ 심볼 a 곡백 μž…λ ₯ (ε) μ΅œμ’… μƒνƒœ μ—¬λΆ€
q_0 (초기 μƒνƒœ) (q_1, Z_0 | Z_0) (q_f, Z_0 | Z_0) ❌
q_1 (q_1, Z_0 | Z_0) (q_f, Z_0 | Z_0) ❌
q_f ❌ ❌ βœ…

μ„€λͺ…

  1. PDAλŠ” 초기 μƒνƒœ q_0μ—μ„œ μ‹œμž‘ν•˜λ©°, 곡백 μž…λ ₯을 λ°›μœΌλ©΄ λ°”λ‘œ μ΅œμ’… μƒνƒœ q_f둜 이동할 수 μžˆμŠ΅λ‹ˆλ‹€.
  2. 'a'λ₯Ό μž…λ ₯ λ°›μœΌλ©΄ q_1으둜 μ „μ΄ν•˜κ³ , 이후 κ³„μ†ν•΄μ„œ 'a'λ₯Ό 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 곡백 μž…λ ₯ (ε)이 였면 μ΅œμ’… μƒνƒœ q_f둜 μ΄λ™ν•˜μ—¬ λ¬Έμžμ—΄μ„ μˆ˜λ½ν•©λ‹ˆλ‹€.

4️⃣ PDA μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨

μ•„λž˜λŠ” PDA의 λ™μž‘μ„ λ‚˜νƒ€λ‚Έ μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨μž…λ‹ˆλ‹€.

(q0) -- a --> (q1) -- a --> (q1) -- a --> (q1) ...
  |                              |
  |--- ε ----------------------> (qf)

βœ… λ‹€μ΄μ–΄κ·Έλž¨ μ„€λͺ…

  • 초기 μƒνƒœ q_0μ—μ„œ 곡백 μž…λ ₯ (ε)을 λ°›μœΌλ©΄ λ°”λ‘œ μ΅œμ’… μƒνƒœ q_f둜 이동 κ°€λŠ₯.
  • q_1μ—μ„œ 'a'λ₯Ό μ—°μ†μ μœΌλ‘œ μž…λ ₯받아도 μƒνƒœλ₯Ό μœ μ§€.
  • μž…λ ₯이 λλ‚˜λ©΄ 곡백 μž…λ ₯을 톡해 μ΅œμ’… μƒνƒœ q_f둜 μ΄λ™ν•˜μ—¬ λ¬Έμžμ—΄μ„ 수락.

5️⃣ PDA λ™μž‘ μ˜ˆμ‹œ

μ•„λž˜λŠ” λͺ‡ κ°€μ§€ μž…λ ₯ λ¬Έμžμ—΄μ— λŒ€ν•œ PDA λ™μž‘ κ³Όμ •μž…λ‹ˆλ‹€.

μž…λ ₯ λ¬Έμžμ—΄ PDA λ™μž‘ μˆœμ„œ κ²°κ³Ό
ε q_0 → q_f βœ… 수락
a q_0 → q_1 → q_f βœ… 수락
aa q_0 → q_1 → q_1 → q_f βœ… 수락
aaaa q_0 → q_1 → q_1 → q_1 → q_1 → q_f βœ… 수락
b ❌ ('a'만 ν—ˆμš©) ❌ κ±°λΆ€
ab ❌ ('b'κ°€ 포함됨) ❌ κ±°λΆ€

6️⃣ κ²°λ‘ 

πŸ“’ 이 PDAλŠ” 'a'만으둜 이루어진 λ¬Έμžμ—΄μ„ μΈμ‹ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
πŸ“’ μŠ€νƒμ„ ν™œμš©ν•˜μ§€ μ•Šκ³  μƒνƒœ μ „μ΄λ§ŒμœΌλ‘œ λ™μž‘ν•˜λ―€λ‘œ, 사싀상 DFA와 λ™μΌν•œ λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.
πŸ“’ PDAλ₯Ό 더 λ³΅μž‘ν•œ μ–Έμ–΄ (예: a^n b^n)λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 ν™œμš©ν•˜λ €λ©΄ μŠ€νƒμ„ 적극적으둜 ν™œμš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

βœ… 정리:
이 μ˜ˆμ œλŠ” PDA의 기본적인 λ™μž‘μ„ μ„€λͺ…ν•˜κΈ° μœ„ν•œ κ°„λ‹¨ν•œ 사둀이며, μ‹€μ œ PDA의 강점(μŠ€νƒ ν™œμš©)을 μ΄μš©ν•˜μ§€ μ•Šμ€ μ„€κ³„μž„μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ“Œ PDA for the Language L = (ab)* a

1️⃣ 문제 μ •μ˜

μ£Όμ–΄μ§„ μ–Έμ–΄λŠ” L = (ab)* a이며, μ΄λŠ” 0개 μ΄μƒμ˜ ‘ab’ 반볡 νŒ¨ν„΄μ΄ λ“±μž₯ν•œ ν›„, λ°˜λ“œμ‹œ λ§ˆμ§€λ§‰μ— 'a'둜 λλ‚˜λŠ” λ¬Έμžμ—΄μ„ ν¬ν•¨ν•˜λŠ” μ •κ·œ μ–Έμ–΄μž…λ‹ˆλ‹€.

βœ”οΈ μœ νš¨ν•œ λ¬Έμžμ—΄ μ˜ˆμ‹œ:
{ a, aba, ababa, ababababa, ... }

βœ”οΈ 이 μ–Έμ–΄μ˜ νŠΉμ§•:

  • 'a' λ‹¨λ…μœΌλ‘œ λ“±μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€ (a ∈ L).
  • 'ab' νŒ¨ν„΄μ΄ μ—¬λŸ¬ 번 반볡될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ°˜λ“œμ‹œ λ§ˆμ§€λ§‰μ—λŠ” 'a'둜 λλ‚˜μ•Ό ν•©λ‹ˆλ‹€.

2️⃣ PDA의 λ™μž‘ 원리

이 PDAλŠ” μ£Όμ–΄μ§„ λ¬Έμžμ—΄μ΄ "(ab)의 반볡 ν›„ λ§ˆμ§€λ§‰μ΄ 'a'둜 λλ‚˜λŠ”μ§€"λ₯Ό ν™•μΈν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.

πŸ“’ 핡심 원리:

  • 첫 번째 μž…λ ₯이 'a'κ°€ 아닐 경우 거뢀됨.
  • 'a'λ₯Ό 받을 경우, μƒνƒœλ₯Ό λ³€κ²½ν•˜μ—¬ 'b'κ°€ 올 μ€€λΉ„λ₯Ό ν•©λ‹ˆλ‹€.
  • 'b'λ₯Ό λ°›μœΌλ©΄ λ‹€μ‹œ 'a'κ°€ 올 수 μžˆλ„λ‘ 초기 μƒνƒœλ‘œ λŒμ•„κ°‘λ‹ˆλ‹€.
  • λ§ˆμ§€λ§‰ μž…λ ₯이 'a'인 경우, 곡백 μž…λ ₯ (ε)을 λ°›μœΌλ©΄ μ΅œμ’… μƒνƒœλ‘œ μ΄λ™ν•˜μ—¬ λ¬Έμžμ—΄μ„ μˆ˜λ½ν•©λ‹ˆλ‹€.

3️⃣ PDA μƒνƒœ 전이 μ •μ˜

이 PDAλŠ” λ„€ 개의 μƒνƒœλ₯Ό κ°€μ§‘λ‹ˆλ‹€.

ν˜„μž¬ μƒνƒœ q μž…λ ₯ 심볼 a μž…λ ₯ 심볼 b 곡백 μž…λ ₯ (ε) μ΅œμ’… μƒνƒœ μ—¬λΆ€
q_0 (초기 μƒνƒœ) (q_2, Z_0 | Z_0) ❌ ❌ ❌
q_2 ❌ (q_0, Z_0 | Z_0) ❌ ❌
q_1 (q_1, Z_0 | Z_0) ❌ (q_f, Z_0 | Z_0) ❌
q_f ❌ ❌ ❌ βœ…

μ„€λͺ…

  1. 초기 μƒνƒœ q_0
    • 'a'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ q_2둜 μ΄λ™ν•©λ‹ˆλ‹€.
    • 'b'κ°€ 였면 κ±°λΆ€λ©λ‹ˆλ‹€.
  2. μƒνƒœ q_2
    • 'b'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ λ‹€μ‹œ q_0으둜 μ΄λ™ν•˜μ—¬ λ‹€μŒ 'a'λ₯Ό 받을 μ€€λΉ„λ₯Ό ν•©λ‹ˆλ‹€.
  3. μƒνƒœ q_1
    • λ§ˆμ§€λ§‰ 'a'λ₯Ό λ°›μœΌλ©΄ ν•΄λ‹Ή μƒνƒœλ‘œ μ΄λ™ν•©λ‹ˆλ‹€.
    • λ¬Έμžμ—΄μ΄ λλ‚˜λ©΄ 곡백 μž…λ ₯ (ε)을 λ°›μ•„ μ΅œμ’… μƒνƒœ q_f둜 μ΄λ™ν•©λ‹ˆλ‹€.
  4. μ΅œμ’… μƒνƒœ q_f
    • λ¬Έμžμ—΄μ΄ λλ‚˜λ©΄ μ΅œμ’… μƒνƒœλ‘œ μ΄λ™ν•˜μ—¬ μˆ˜λ½λ©λ‹ˆλ‹€.

4️⃣ PDA μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨

μ•„λž˜λŠ” PDA의 λ™μž‘μ„ λ‚˜νƒ€λ‚Έ μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨μž…λ‹ˆλ‹€.

(q0) -- a --> (q2) -- b --> (q0) -- a --> (q2) -- b --> (q0) ...
  |
  |--- a --> (q1) -- ε --> (qf)

βœ… λ‹€μ΄μ–΄κ·Έλž¨ μ„€λͺ…

  • 초기 μƒνƒœ q_0μ—μ„œ 'a'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ q_2둜 이동.
  • q_2μ—μ„œλŠ” 'b'λ₯Ό λ°›μœΌλ©΄ λ‹€μ‹œ q_0으둜 λŒμ•„κ°‘λ‹ˆλ‹€.
  • λ§ˆμ§€λ§‰ μž…λ ₯이 'a'라면, q_1으둜 μ΄λ™ν•œ ν›„ 곡백 μž…λ ₯ (ε)을 λ°›μ•„ μ΅œμ’… μƒνƒœ q_f둜 μ΄λ™ν•˜μ—¬ λ¬Έμžμ—΄μ„ μˆ˜λ½ν•©λ‹ˆλ‹€.

5️⃣ PDA λ™μž‘ μ˜ˆμ‹œ

μ•„λž˜λŠ” λͺ‡ κ°€μ§€ μž…λ ₯ λ¬Έμžμ—΄μ— λŒ€ν•œ PDA λ™μž‘ κ³Όμ •μž…λ‹ˆλ‹€.

μž…λ ₯ λ¬Έμžμ—΄ PDA λ™μž‘ μˆœμ„œ κ²°κ³Ό
a q_0 → q_1 → q_f βœ… 수락
aba q_0 → q_2 → q_0 → q_1 → q_f βœ… 수락
ababa q_0 → q_2 → q_0 → q_2 → q_0 → q_1 → q_f βœ… 수락
ab ❌ (λ§ˆμ§€λ§‰μ΄ 'a'κ°€ μ•„λ‹˜) ❌ κ±°λΆ€
b ❌ ('a'둜 μ‹œμž‘ν•˜μ§€ μ•ŠμŒ) ❌ κ±°λΆ€
abab ❌ (λ§ˆμ§€λ§‰μ΄ 'a'κ°€ μ•„λ‹˜) ❌ κ±°λΆ€

6️⃣ κ²°λ‘ 

πŸ“’ 이 PDAλŠ” "(ab)의 반볡 ν›„ λ§ˆμ§€λ§‰μ΄ 'a'둜 λλ‚˜λŠ” λ¬Έμžμ—΄"을 μΈμ‹ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
πŸ“’ μŠ€νƒμ„ ν™œμš©ν•˜μ§€ μ•Šκ³  μƒνƒœ μ „μ΄λ§ŒμœΌλ‘œ λ™μž‘ν•˜λ―€λ‘œ, 사싀상 DFA와 λ™μΌν•œ λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.
πŸ“’ PDAλ₯Ό 더 λ³΅μž‘ν•œ μ–Έμ–΄ (예: a^n b^n)λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 ν™œμš©ν•˜λ €λ©΄ μŠ€νƒμ„ 적극적으둜 ν™œμš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

βœ… 정리:
이 μ˜ˆμ œλŠ” PDA의 기본적인 λ™μž‘μ„ μ„€λͺ…ν•˜κΈ° μœ„ν•œ κ°„λ‹¨ν•œ 사둀이며, μ‹€μ œ PDA의 강점(μŠ€νƒ ν™œμš©)을 μ΄μš©ν•˜μ§€ μ•Šμ€ μ„€κ³„μž„μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ“Œ PDA for the Language L = { w in (a+b)* | number of 'a's is even }

1️⃣ 문제 μ •μ˜

μ£Όμ–΄μ§„ μ–Έμ–΄λŠ” L = { w in (a+b)* | number of 'a's is even }이며, μ΄λŠ” 'a'의 κ°œμˆ˜κ°€ 짝수 (0, 2, 4, ...) 인 λ¬Έμžμ—΄λ§Œμ„ ν¬ν•¨ν•˜λŠ” μ–Έμ–΄μž…λ‹ˆλ‹€. 'b'의 κ°œμˆ˜λŠ” μ œν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€.

βœ”οΈ μœ νš¨ν•œ λ¬Έμžμ—΄ μ˜ˆμ‹œ:
{ ε, b, aa, bb, aba, abba, ... }

βœ”οΈ 이 μ–Έμ–΄μ˜ νŠΉμ§•:

  • 곡백 λ¬Έμžμ—΄ (ε)도 ν¬ν•¨λ©λ‹ˆλ‹€. (0개의 'a'λŠ” 짝수둜 κ°„μ£Ό)
  • 'b'λŠ” λͺ‡ κ°œκ°€ 와도 μƒκ΄€μ—†μŠ΅λ‹ˆλ‹€.
  • 'a'κ°€ ν™€μˆ˜ 개이면 κ±°λΆ€λ©λ‹ˆλ‹€.

2️⃣ PDA의 λ™μž‘ 원리

이 PDAλŠ” μ£Όμ–΄μ§„ λ¬Έμžμ—΄μ—μ„œ 'a'의 κ°œμˆ˜κ°€ μ§μˆ˜μΈμ§€ ν™•μΈν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.

πŸ“’ 핡심 원리:

  • PDAλŠ” 'a'의 개수λ₯Ό μ„ΈλŠ” λ°©μ‹μœΌλ‘œ μƒνƒœλ₯Ό μ „μ΄ν•©λ‹ˆλ‹€.
  • 'a'λ₯Ό ν•œ 번 μž…λ ₯λ°›μœΌλ©΄ μƒνƒœλ₯Ό λ³€κ²½ν•˜κ³ , 짝수 개의 'a'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ μ›λž˜ μƒνƒœλ‘œ λŒμ•„μ˜΅λ‹ˆλ‹€.
  • 'b'λŠ” μ–΄λ–€ κ°œμˆ˜λ“  μƒνƒœλ₯Ό μœ μ§€ν•˜λ©° 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • λ¬Έμžμ—΄μ˜ λ§ˆμ§€λ§‰μ— PDAκ°€ 짝수 개의 'a' μƒνƒœ (= q_0)에 μžˆμ„ λ•Œλ§Œ μ΅œμ’… μƒνƒœλ‘œ μ΄λ™ν•˜μ—¬ μˆ˜λ½λ©λ‹ˆλ‹€.

3️⃣ PDA μƒνƒœ 전이 μ •μ˜

이 PDAλŠ” μ„Έ 개의 μƒνƒœλ₯Ό κ°€μ§‘λ‹ˆλ‹€.

ν˜„μž¬ μƒνƒœ q μž…λ ₯ 심볼 a μž…λ ₯ 심볼 b 곡백 μž…λ ₯ (ε) μ΅œμ’… μƒνƒœ μ—¬λΆ€
q_0 (초기 μƒνƒœ, 짝수 개의 'a') (q_1, Z_0 | Z_0) (q_0, Z_0 | Z_0) (q_f, Z_0 | Z_0) ❌
q_1 (ν™€μˆ˜ 개의 'a') (q_0, Z_0 | Z_0) (q_1, Z_0 | Z_0) ❌ ❌
q_f ❌ ❌ ❌ βœ…

μ„€λͺ…

  1. 초기 μƒνƒœ q_0
    • 'a'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ ν™€μˆ˜ μƒνƒœ q_1둜 μ΄λ™ν•©λ‹ˆλ‹€.
    • 'b'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ μƒνƒœλ₯Ό μœ μ§€ν•©λ‹ˆλ‹€.
  2. ν™€μˆ˜ 개의 'a' μƒνƒœ q_1
    • 'a'λ₯Ό ν•œ 번 더 μž…λ ₯λ°›μœΌλ©΄ λ‹€μ‹œ 짝수 μƒνƒœ q_0둜 μ΄λ™ν•©λ‹ˆλ‹€.
    • 'b'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ μƒνƒœλ₯Ό μœ μ§€ν•©λ‹ˆλ‹€.
  3. μ΅œμ’… μƒνƒœ q_f
    • λ¬Έμžμ—΄μ΄ 끝났을 λ•Œ PDAκ°€ q_0 μƒνƒœμ— μžˆμ–΄μ•Ό μ΅œμ’… μƒνƒœλ‘œ μ΄λ™ν•˜μ—¬ λ¬Έμžμ—΄μ„ μˆ˜λ½ν•©λ‹ˆλ‹€.

4️⃣ PDA μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨

μ•„λž˜λŠ” PDA의 λ™μž‘μ„ λ‚˜νƒ€λ‚Έ μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨μž…λ‹ˆλ‹€.

(q0) -- a --> (q1) -- a --> (q0) -- a --> (q1) -- a --> (q0) ...
  |                    |                    |
  |--- b --> (q0) -- b --> (q0) -- b --> (q0)
  |                                  |
  |--- ε --------------------------> (qf)

βœ… λ‹€μ΄μ–΄κ·Έλž¨ μ„€λͺ…

  • 'a'λ₯Ό 받을 λ•Œλ§ˆλ‹€ μƒνƒœκ°€ λ²ˆκ°ˆμ•„ λ°”λ€λ‹ˆλ‹€ (q_0q_1).
  • 'b'λŠ” μƒνƒœλ₯Ό μœ μ§€ν•©λ‹ˆλ‹€.
  • λ§ˆμ§€λ§‰ μž…λ ₯이 끝났을 λ•Œ PDAκ°€ q_0 μƒνƒœμ— 있으면 μ΅œμ’… μƒνƒœ q_f둜 μ΄λ™ν•˜μ—¬ λ¬Έμžμ—΄μ„ μˆ˜λ½ν•©λ‹ˆλ‹€.

5️⃣ PDA λ™μž‘ μ˜ˆμ‹œ

μ•„λž˜λŠ” λͺ‡ κ°€μ§€ μž…λ ₯ λ¬Έμžμ—΄μ— λŒ€ν•œ PDA λ™μž‘ κ³Όμ •μž…λ‹ˆλ‹€.

μž…λ ₯ λ¬Έμžμ—΄ PDA λ™μž‘ μˆœμ„œ κ²°κ³Ό
ε q_0 → q_f βœ… 수락
b q_0 → q_0 → q_f βœ… 수락
bb q_0 → q_0 → q_0 → q_f βœ… 수락
a q_0 → q_1 (ν™€μˆ˜ 개의 'a', μ’…λ£Œ μ‹œ κ±°λΆ€) ❌ κ±°λΆ€
aa q_0 → q_1 → q_0 → q_f βœ… 수락
aba q_0 → q_1 → q_1 → q_0 → q_f βœ… 수락
abbba q_0 → q_1 → q_1 → q_1 → q_1 → q_0 → q_f βœ… 수락
ababba q_0 → q_1 → q_1 → q_0 → q_1 → q_0 → q_f βœ… 수락
abb q_0 → q_1 → q_1 → q_1 (ν™€μˆ˜ 개의 'a', μ’…λ£Œ μ‹œ κ±°λΆ€) ❌ κ±°λΆ€

6️⃣ κ²°λ‘ 

πŸ“’ 이 PDAλŠ” "a의 κ°œμˆ˜κ°€ 짝수인 λ¬Έμžμ—΄"을 μΈμ‹ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
πŸ“’ μŠ€νƒμ„ ν™œμš©ν•˜μ§€ μ•Šκ³  μƒνƒœ μ „μ΄λ§ŒμœΌλ‘œ λ™μž‘ν•˜λ―€λ‘œ, 사싀상 DFA와 λ™μΌν•œ λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.
πŸ“’ PDAλ₯Ό 더 λ³΅μž‘ν•œ μ–Έμ–΄ (예: a^n b^n)λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 ν™œμš©ν•˜λ €λ©΄ μŠ€νƒμ„ 적극적으둜 ν™œμš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

βœ… 정리:
이 μ˜ˆμ œλŠ” PDA의 기본적인 λ™μž‘μ„ μ„€λͺ…ν•˜κΈ° μœ„ν•œ κ°„λ‹¨ν•œ 사둀이며, μ‹€μ œ PDA의 강점(μŠ€νƒ ν™œμš©)을 μ΄μš©ν•˜μ§€ μ•Šμ€ μ„€κ³„μž„μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ“Œ PDA for the Language L = { w in (a+b)* | |w| ≡ 0 mod 3 }

1️⃣ 문제 μ •μ˜

μ£Όμ–΄μ§„ μ–Έμ–΄λŠ” L = { w in (a+b)* | |w| ≡ 0 mod 3 }이며, μ΄λŠ” λ¬Έμžμ—΄μ˜ 길이가 3의 배수인 λ¬Έμžμ—΄μ„ ν¬ν•¨ν•˜λŠ” μ–Έμ–΄μž…λ‹ˆλ‹€.

βœ”οΈ μœ νš¨ν•œ λ¬Έμžμ—΄ μ˜ˆμ‹œ:
{ ε, aaa, aab, aba, abb, bbb, baa, ... }

βœ”οΈ 이 μ–Έμ–΄μ˜ νŠΉμ§•:

  • λ¬Έμžμ—΄μ˜ 길이가 0, 3, 6, 9, ... 이어야 ν•©λ‹ˆλ‹€.
  • 문자 'a'와 'b'의 κ°œμˆ˜λŠ” μžμœ λ‘­μŠ΅λ‹ˆλ‹€ (μ œν•œ μ—†μŒ).
  • PDAλŠ” μž…λ ₯된 λ¬Έμžμ—΄μ˜ 길이λ₯Ό 3으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό 좔적해야 ν•©λ‹ˆλ‹€.

2️⃣ PDA의 λ™μž‘ 원리

이 PDAλŠ” μž…λ ₯ λ¬Έμžμ—΄μ˜ 길이λ₯Ό 3으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό κ³„μ‚°ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ™μž‘ν•©λ‹ˆλ‹€.

πŸ“’ 핡심 원리:

  • PDAλŠ” 길이λ₯Ό λ‚˜λ¨Έμ§€ 0, 1, 2둜 κ΅¬λΆ„ν•˜λŠ” μƒνƒœλ₯Ό κ°€μ§‘λ‹ˆλ‹€.
  • 각 문자λ₯Ό 읽을 λ•Œλ§ˆλ‹€ λ‹€μŒ μƒνƒœλ‘œ μˆœν™˜ μ „μ΄ν•©λ‹ˆλ‹€.
  • μž…λ ₯이 끝났을 λ•Œ λ‚˜λ¨Έμ§€κ°€ 0인 μƒνƒœμ—μ„œλ§Œ μ΅œμ’… μƒνƒœλ‘œ μ „μ΄λ©λ‹ˆλ‹€.
  • μŠ€νƒμ„ ν™œμš©ν•˜μ§€ μ•Šκ³  μƒνƒœ μ „μ΄λ§ŒμœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

3️⃣ PDA μƒνƒœ 전이 μ •μ˜

이 PDAλŠ” λ„€ 개의 μƒνƒœλ₯Ό κ°€μ§‘λ‹ˆλ‹€.

ν˜„μž¬ μƒνƒœ q μž…λ ₯ 심볼 a μž…λ ₯ 심볼 b 곡백 μž…λ ₯ (ε) μ΅œμ’… μƒνƒœ μ—¬λΆ€
q_0 (λ‚˜λ¨Έμ§€ 0 μƒνƒœ) (q_1, Z_0 | Z_0) (q_0, Z_0 | Z_0) (q_f, Z_0 | Z_0) ❌
q_1 (λ‚˜λ¨Έμ§€ 1 μƒνƒœ) (q_2, Z_0 | Z_0) (q_2, Z_0 | Z_0) ❌ ❌
q_2 (λ‚˜λ¨Έμ§€ 2 μƒνƒœ) (q_0, Z_0 | Z_0) (q_0, Z_0 | Z_0) ❌ ❌
q_f ❌ ❌ ❌ βœ…

μ„€λͺ…

  1. 초기 μƒνƒœ q_0 (길이 0 mod 3)
    • 'a' λ˜λŠ” 'b'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ q_1 (길이 1 mod 3)둜 μ΄λ™ν•©λ‹ˆλ‹€.
    • λ¬Έμžμ—΄μ΄ 끝났을 λ•Œ q_0 μƒνƒœμ— 있으면 μ΅œμ’… μƒνƒœ q_f둜 μ΄λ™ν•©λ‹ˆλ‹€.
  2. μƒνƒœ q_1 (길이 1 mod 3)
    • 'a' λ˜λŠ” 'b'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ q_2 (길이 2 mod 3)둜 μ΄λ™ν•©λ‹ˆλ‹€.
  3. μƒνƒœ q_2 (길이 2 mod 3)
    • 'a' λ˜λŠ” 'b'λ₯Ό μž…λ ₯λ°›μœΌλ©΄ q_0 (길이 0 mod 3)둜 μ΄λ™ν•©λ‹ˆλ‹€.
  4. μ΅œμ’… μƒνƒœ q_f
    • λ¬Έμžμ—΄μ΄ 끝났을 λ•Œ q_0 μƒνƒœμ— μžˆμ–΄μ•Ό μ΅œμ’… μƒνƒœλ‘œ μ „μ΄λ˜μ–΄ μˆ˜λ½λ©λ‹ˆλ‹€.

4️⃣ PDA μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨

μ•„λž˜λŠ” PDA의 λ™μž‘μ„ λ‚˜νƒ€λ‚Έ μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨μž…λ‹ˆλ‹€.

(q0) -- a/b --> (q1) -- a/b --> (q2) -- a/b --> (q0) -- a/b --> (q1) ...
  |
  |--- ε --------------------------> (qf)

βœ… λ‹€μ΄μ–΄κ·Έλž¨ μ„€λͺ…

  • 'a' λ˜λŠ” 'b'λ₯Ό μž…λ ₯ν•  λ•Œλ§ˆλ‹€ μƒνƒœκ°€ μˆœν™˜ 전이 (q_0q_1q_2q_0).
  • 길이가 3의 배수일 λ•Œλ§Œ q_0 μƒνƒœλ‘œ λŒμ•„κ°‘λ‹ˆλ‹€.
  • λ¬Έμžμ—΄μ΄ 끝났을 λ•Œ q_0 μƒνƒœμ— 있으면 μ΅œμ’… μƒνƒœ q_f둜 μ΄λ™ν•˜μ—¬ λ¬Έμžμ—΄μ„ μˆ˜λ½ν•©λ‹ˆλ‹€.

5️⃣ PDA λ™μž‘ μ˜ˆμ‹œ

μ•„λž˜λŠ” λͺ‡ κ°€μ§€ μž…λ ₯ λ¬Έμžμ—΄μ— λŒ€ν•œ PDA λ™μž‘ κ³Όμ •μž…λ‹ˆλ‹€.

μž…λ ₯ λ¬Έμžμ—΄ PDA λ™μž‘ μˆœμ„œ κ²°κ³Ό
ε q_0 → q_f βœ… 수락
a q_0 → q_1 (λ‚˜λ¨Έμ§€ 1, μ’…λ£Œ μ‹œ κ±°λΆ€) ❌ κ±°λΆ€
aa q_0 → q_1 → q_2 (λ‚˜λ¨Έμ§€ 2, μ’…λ£Œ μ‹œ κ±°λΆ€) ❌ κ±°λΆ€
aaa q_0 → q_1 → q_2 → q_0 → q_f βœ… 수락
ab q_0 → q_1 → q_2 (λ‚˜λ¨Έμ§€ 2, μ’…λ£Œ μ‹œ κ±°λΆ€) ❌ κ±°λΆ€
abb q_0 → q_1 → q_2 → q_0 → q_f βœ… 수락
aabb q_0 → q_1 → q_2 → q_0 → q_1 (λ‚˜λ¨Έμ§€ 1, μ’…λ£Œ μ‹œ κ±°λΆ€) ❌ κ±°λΆ€
abba q_0 → q_1 → q_2 → q_0 → q_f βœ… 수락

6️⃣ κ²°λ‘ 

πŸ“’ 이 PDAλŠ” "μž…λ ₯ λ¬Έμžμ—΄μ˜ 길이가 3의 배수인 λ¬Έμžμ—΄"을 μΈμ‹ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
πŸ“’ μŠ€νƒμ„ ν™œμš©ν•˜μ§€ μ•Šκ³  μƒνƒœ μ „μ΄λ§ŒμœΌλ‘œ λ™μž‘ν•˜λ―€λ‘œ, 사싀상 DFA와 λ™μΌν•œ λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.
πŸ“’ PDAλ₯Ό 더 λ³΅μž‘ν•œ μ–Έμ–΄ (예: a^n b^n)λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데 ν™œμš©ν•˜λ €λ©΄ μŠ€νƒμ„ 적극적으둜 ν™œμš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

βœ… 정리:
이 μ˜ˆμ œλŠ” PDA의 기본적인 λ™μž‘μ„ μ„€λͺ…ν•˜κΈ° μœ„ν•œ κ°„λ‹¨ν•œ 사둀이며, μ‹€μ œ PDA의 강점(μŠ€νƒ ν™œμš©)을 μ΄μš©ν•˜μ§€ μ•Šμ€ μ„€κ³„μž„μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.