ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Pushdown Automata : PDA
บทที่ 6 พุชดาวน์ออโตมาตา Pushdown Automata : PDA
2
พุชดาวน์ออโตมาตา เป็นออโตมาตาที่สามารถรองรับภาษาได้มากกว่าภาษาที่ไฟไนต์ออโตมาตารองรับได้ ส่วนประกอบภายในพุชดาวน์ออโตมาตาประกอบด้วย 3 ส่วน อินพุตเทป ซึ่งบรรจุตัวอักษร (Alphabet) หัวอ่านอินพุตเทปเคลื่อนจากซ้ายไปขวาโดยไม่สามารถย้อนกลับมายังตำแหน่งที่เคยอ่านแล้วได้ สแต็ก(Stack) ทำหน้าที่เก็บผลลัพธ์ชั่วคราวที่ได้จากการประมวลผล โดยใช้สัญลักษณ์เริ่มต้นเช่น z, $ หน่วยประมวลผล จะมีสถานะที่เปลี่ยนแปลงได้
3
Stack -สามารถนำข้อมูลเข้าหรือออกได้ทางเดียวคือส่วนบนของStack (Top Of Stack) -คุณสมบัติดังกล่าวเรียกว่า ไลโฟลิสต์ (LIFO list: Last-In-First-Out list) หรือ พูชดาวน์ลิสต์ (Pushdown List) การทำงานมี PUSH (ใส่ข้อมูลเข้า) และ POP (นำข้อมูลออก)
4
ส่วนประกอบภายในพุชดาวน์ออโตมาตา
5
พุชดาวน์ออโตมาตาที่คาดเดาได้ (Deterministic Pushdown Automata : DPDA)
นิยาม โดยที่ คือ เซตของสถานะภายในหน่วยประมวลผล คือ เซตของตัวอักษรอินพุต คือ เซตของสัญลักษณ์ที่ถูกบรรจุลงสแต็ก คือ สถานะเริ่มต้นของหน่วยประมวลผล โดยที่ คือ สัญลักษณ์กำหนดจุดเริ่มต้นของสแต็ก เช่น คือ เชตของสถานะสุดท้ายโดยที่ คือ เซตของทรานซิชันฟังก์ชัน เป็นความสัมพันธ์ดังนี้ (โดยมีข้อบังคับว่าทางฝั่งขวาของทรานซิชันเดียวกันจะต้องไม่มีทางเลือก)
6
การทำงานของทรานซิชันฟังก์ชัน
7
จากรูปการทำงานของ DPDA เป็นการบังคับว่าหากสถานะภายในคือ q0 อินพุตคือ a และส่วนบนสุดของสแต็กคือ x แล้ว DPDA จะต้องเปลี่ยนสถานะไปเป็น q1 จากนั้นนำ x ออกจากสแต็กและนำตัวอักษร a ใส่ลงไปบนสแต็กแทน แต่ถ้า ทรานซิชันฟังก์ชันมีลักษณะเป็น กรณีนี้ไม่ถือว่าเป็น DPDA เนื่องจากที่สถานะเดียวกันคือ ออโตมาตาสามารถนำตัวอักษร a หรือสตริงว่าง วางลงไปบนสแต็กก็ได้
8
เราสามารถนำทรานซิชันฟังก์ชันของพุชดาวน์ออโตมาตาเขียนให้อยู่ในรูปทรานซิชันกราฟ เพื่อง่ายต่อการเข้าใจ เช่น สามารถแสดงการเปลี่ยนสถานะของพุชดาวน์ออโตมาตาที่คาดเดาได้ดังนี้ สัญลักษณ์ส่วนบนของ สแต็กซึ่งจะถูกเอาออก สัญลักษณ์ที่จะนำไป ใส่ลงบนสแต็ก ตัวอักษรอินพุต
9
การนำสตริงใส่ลงไปบนสแต็ก
10
ทรานซิชันที่อนุญาตให้เกิดขึ้นได้ใน DPDA
11
ทรานซิชันที่ไม่อนุญาตให้เกิดขึ้นได้ใน DPDA
12
พุชดาวน์ออโตมาตาที่คาดเดาไม่ได้
(Nondeterministic Pushdown Automata : NPDA) นิยาม โดยที่ คือ เซตของสถานะภายในหน่วยประมวลผล คือ เซตของตัวอักษรอินพุต คือ เซตของสัญลักษณ์ที่ถูกบรรจุลงสแต็ก คือ สถานะเริ่มต้นของหน่วยประมวลผล โดยที่ คือ สัญลักษณ์กำหนดจุดเริ่มต้นของสแต็ก เช่น คือ เชตของสถานะสุดท้ายโดยที่ คือ เซตของทรานซิชันฟังก์ชัน เป็นความสัมพันธ์ดังนี้ (โดยไม่มีข้อบังคับใดๆ)
13
ทรานซิชันที่อนุญาตให้เกิดขึ้นได้ใน NPDA
14
ทรานซิชันที่อนุญาตให้เกิดขึ้นได้ใน NPDA
15
NPDA: Non-Deterministic PDA
Example:
16
Execution Example: Time 0 Input Stack current state
17
Time 1 Input Stack
18
Time 2 Input Stack
19
Time 3 Input Stack
20
Time 4 Input Stack
21
Time 5 Input Stack
22
Time 6 Input Stack
23
Time 7 Input Stack
24
Time 8 Input Stack accept
25
สตริง ใดๆ จะ accept หรือได้รับการยอมรับ เมื่อ
เงื่อนไขเหล่านี้ได้บรรลุแล้ว -เมื่อ input ทุกตัวใน tape ถูกใช้งานจนครบ -สามารถไปถึง state สุดท้ายได้ เมื่อการประมวลผลจบลง เราจะไม่สนใจว่า ใน stack มีข้อมูล อะไรบ้าง
26
แบบฝึกหัด สตริงต่อไปนี้ จะ accepted โดย NPDA: หรือไม่
27
Another NPDA example NPDA
28
Execution Example: Time 0 Input Stack current state
29
Time 1 Input Stack
30
Time 3 Input Stack
31
Time 4 Input Stack
32
Time 5 Input Stack
33
Time 6 Input Stack
34
Time 7 Input Stack
35
Time 8 Input Stack accept
36
แบบฝึกหัด Input Stack
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.