แนะนำ Pushdown Automata
โครงสร้างพื้นฐานของ PDA
ระบบอัตโนมัติแบบเลื่อนลงเป็นวิธีการใช้ไวยากรณ์ที่ไม่มีบริบทในลักษณะเดียวกับที่เราออกแบบ DFA สำหรับไวยากรณ์ปกติ DFA สามารถจำข้อมูลจำนวน จำกัด ได้ แต่ PDA สามารถจำข้อมูลได้ไม่ จำกัด จำนวน
โดยทั่วไปแล้วระบบอัตโนมัติแบบเลื่อนลงคือ -
"Finite state machine" + "a stack"
ระบบอัตโนมัติแบบเลื่อนลงมีสามองค์ประกอบ -
- เทปป้อนข้อมูล
- ชุดควบคุมและ
- กองที่มีขนาดไม่สิ้นสุด
หัวสแต็กจะสแกนสัญลักษณ์ด้านบนของสแตก
สแต็กทำสองการดำเนินการ -
Push - เพิ่มสัญลักษณ์ใหม่ที่ด้านบน
Pop - สัญลักษณ์ด้านบนจะถูกอ่านและลบออก
PDA อาจอ่านสัญลักษณ์อินพุตหรือไม่ก็ได้ แต่ต้องอ่านด้านบนสุดของสแตกในทุกการเปลี่ยนแปลง
PDA สามารถอธิบายได้อย่างเป็นทางการว่าเป็น 7-tuple (Q, ∑, S, δ, q 0 , I, F) -
Q คือจำนวนรัฐที่ จำกัด
∑ เป็นตัวอักษรสำหรับป้อนข้อมูล
S คือสัญลักษณ์สแต็ก
δ คือฟังก์ชันการเปลี่ยน: Q × (∑ ∪ {ε}) × S × Q × S *
q0คือสถานะเริ่มต้น (q 0 ∈ Q)
I คือสัญลักษณ์สแต็กบนสุดเริ่มต้น (I ∈ S)
F คือชุดของสถานะการยอมรับ (F ∈ Q)
แผนภาพต่อไปนี้แสดงการเปลี่ยนแปลงใน PDA จากสถานะ q 1เป็นสถานะ q 2โดยระบุว่า a, b → c -
ซึ่งหมายความว่าในสถานะ q1หากเราพบสตริงอินพุต ‘a’ และสัญลักษณ์ด้านบนของสแต็กคือ ‘b’แล้วเราก็ป๊อป ‘b’ผลักดัน ‘c’ ที่ด้านบนของสแต็กและย้ายไปที่สถานะ q2.
คำศัพท์ที่เกี่ยวข้องกับ PDA
คำอธิบายทันที
คำอธิบายทันที (ID) ของ PDA จะแสดงด้วย triplet (q, w, s) โดยที่
q คือรัฐ
w เป็นอินพุตที่ไม่มีการบริโภค
s คือเนื้อหาสแต็ก
สัญกรณ์ Turnstile
สัญกรณ์ "turnstile" ใช้สำหรับการเชื่อมต่อคู่ของ ID ที่แสดงถึงการเคลื่อนไหวหนึ่งหรือหลายครั้งของ PDA ขั้นตอนการเปลี่ยนแสดงโดยสัญลักษณ์ประตูหมุน "⊢"
พิจารณา PDA (Q, ∑, S, δ, q 0 , I, F) การเปลี่ยนแปลงสามารถแสดงทางคณิตศาสตร์ได้ด้วยสัญกรณ์ turnstile ต่อไปนี้ -
(p, aw, Tβ) ⊢ (q, w, αb)
นี่หมายความว่าในขณะที่เปลี่ยนจากสถานะ p เพื่อระบุ qสัญลักษณ์อินพุต ‘a’ ถูกใช้ไปและด้านบนสุดของสแต็ก ‘T’ ถูกแทนที่ด้วยสตริงใหม่ ‘α’.
Note - หากเราต้องการให้ PDA เป็นศูนย์หรือมากกว่านั้นเราต้องใช้สัญลักษณ์ (⊢ *) แทน