ทำไมจึงไม่จำเป็นต้องกำหนด (ออโตมาตาแบบกดลง)?


9

ฉันอยากจะรู้ว่าทำไมการรับรู้ภาษาที่ไม่ใช้บริบททำงานออโตมาตาแบบกดลง (DPA = NPDA) ที่ไม่สามารถกำหนดได้ เหตุใดออโตมาตาแบบกดลง (DPDA) ที่กำหนดไม่ได้จึงจำภาษาดังกล่าวได้


10
ภาษาสามารถได้รับการยอมรับโดยการกดปุ่มลงอัตโนมัติถ้ามีไวยากรณ์บางอย่างของ LR (1) สำหรับภาษานั้น เนื่องจากมีภาษาที่ไม่มีบริบทซึ่งไม่มีไวยากรณ์ LR (1) อธิบาย NPDA! = DPDA เนื่องจากผลลัพธ์เหล่านี้เป็นที่รู้จักกันดีและมักจะได้รับการสอนในคอมไพเลอร์ฉันไม่แน่ใจว่าคำตอบนี้จะตอบคำถามของคุณหรือไม่คุณกำลังมองหาสัญชาตญาณเบื้องหลังความจริงนี้หรือไม่?
Alex สิบ Brink

มันค่อนข้างขัดกับความเป็นจริงเนื่องจากมีโมเดลที่สำคัญอื่น ๆ ซึ่ง nondeterminism ไม่สร้างความแตกต่างในภาษาที่ยอมรับ - FSM และ TM
vzn

คำตอบ:


25

ฉันไม่แน่ใจว่าคุณกำลังมองหารสชาติของ "ทำไม" เหตุผลหนึ่งที่ทำให้มีอำนาจเพิ่มขึ้นเมื่อสามารถมองเห็นลัทธิ nondeterminism ในตัวอย่างต่อไปนี้:

ให้เป็นชุดของ palindromesมากกว่าตัวอักษรบางคน (อย่างน้อยสองสัญลักษณ์) ที่เป็นสิ่งที่ตรงกันข้ามของWNPDA สำหรับภาษานี้สามารถกดสัญลักษณ์ลงบนสแต็กของมันต่อจากนั้นในบางจุดก็เดาได้ว่ามันมาถึงตรงกลางของอินพุตและค่อยๆสแต็คว่างเปล่า โปรดทราบว่าเงื่อนไขการยอมรับนั้นมีอยู่จริง - ก็เพียงพอแล้วที่จะมีการเดาที่ถูกต้องสำหรับคำที่จะได้รับการยอมรับLww¯w¯w

พีดีเอที่กำหนดขึ้นได้นั้นจะต้องเลือกตำแหน่งที่พิจารณาว่าอยู่ตรงกลางในบางวิธีที่ขึ้นอยู่กับคำนำหน้าปัจจุบันเท่านั้น สมมติว่านั้นเป็น DPDA สำหรับให้ ; ให้เป็นคำที่ว่างเปล่าและv_ku_kv_k นี่คือลำดับของ palindromes แต่ละคำนำหน้าต่อไปเพื่อให้จะต้องอยู่ในสภาพที่ยอมรับกับสแต็คที่ว่างเปล่าหลังจากที่ได้อ่านv_kตามหลักการของนกพิราบรูตจะต้องมีเช่นนั้นที่และAkNuk=ab2kav0vk+1=vkukvkAqkvkk,lklqk=ql (มีจำนวน จำกัด ของรัฐและดังนั้นบางคนต้อง 'นำมาใช้ซ้ำ' เนื่องจากมีจำนวนไม่ จำกัด ks) แต่แล้วA ไม่สามารถแยกแยะได้ vkukvkซึ่งเป็น palindrome จาก vlukvkซึ่งไม่ใช่


0

FAกำหนดขึ้นหรือไม่ยอมรับภาษาเดียวกัน (เช่น. Lang ปกติ)

แต่ในกรณีของPDAถ้าเรา จำกัด มันจะประพฤติdeterministicallyมันจะไม่ยอมรับ CFLs บางคน (CFLs โดยไม่ต้องคุณสมบัติคำนำหน้า (ยกเว้น RLS))

ทำไมเป็นเช่นนั้น

ลองพิจารณาตัวอย่างของ CFL ที่ไม่มีคุณสมบัติคำนำหน้า (คุณสมบัติคำนำหน้าของ lang: no string เป็นคำนำหน้าที่เหมาะสมของสตริงอื่นใน lang)

L = wwr

เช่น. สาย00และ0000 (00 เป็นคำนำหน้าอย่างเหมาะสมของ 0000 ดังนั้น wwr ไม่มีคุณสมบัติ pref.)

เมื่อเกิดขึ้นที่00 DPDA จะไปสู่สถานะสุดท้าย ตอนนี้ตั้งแต่ DPDA ไม่มีทางเลือกระหว่าง acceptancy และความต่อเนื่องก็ไม่สามารถยอมรับ0000หลังจากรับ00 นี่คือสถานที่ซึ่ง PDA ต้องการการกำหนดระดับ

ข้อสังเกต : ในกรณีของ FA ให้ lang (RL) โดยไม่มี pref คุณสมบัติสามารถเป็นที่ยอมรับได้อย่างแน่วแน่ (เช่นสตริงที่ขึ้นต้นด้วย 0) นี้แสดงให้เห็นว่าผลของคุณสมบัติคำนำหน้าของ RL และ CFL ที่แตกต่างกัน ความแตกต่างระหว่างระดับและระดับที่ไม่ใช่ระดับดีพีดีสำหรับก่อให้เกิดตระกูลใหม่ของ lang ซึ่ง DPDA ยอมรับ lang นี้เรียกว่าDCFL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.