สร้าง PDA สำหรับส่วนเสริมของ


16

ผมสงสัยว่าถ้าเป็นไปได้แม้ตั้งแต่ L ดังนั้น PDA ที่สามารถแยกความแตกต่างของคำw ∈ { a n b n c n ∣ n ≥ 0 }จากส่วนที่เหลือของ{ a ∗ b ∗ c ∗ }อาจยอมรับเช่นกันซึ่งฟังดูขัดแย้งกับฉัน{anbncn∣n≥0}∉CFLw∈{anbncn∣n≥0}{a∗b∗c∗}

ฉันเดาว่าฉันต้องใช้ประโยชน์จากธรรมชาติที่ไม่ได้กำหนดไว้ของพีดีเอ แต่ฉันไม่ได้คิดอะไรเลย หากคุณสามารถให้คำแนะนำฉันจะขอบคุณมันมาก


ประเด็นที่น่าสนใจเกี่ยวกับเรื่องนี้ดูเหมือนจะขัดแย้งกัน แท้จริงแล้วภาษาที่ไม่มีบริบทไม่ได้ปิดอยู่ภายใต้การเสริม ... ดังนั้นจึงมีตัวอย่างมากมายของภาษาที่ไม่ใช้บริบทซึ่งอาจ "ยอมรับ" ในแง่ที่คุณพูดถึง ฉันไม่ได้เป็นนักทฤษฎีและเป็นเช่นนี้ไม่สามารถคืนดีกันได้ แต่บางทีคนอื่นสามารถพูดพล่ามได้ว่าทำไมเรื่องนี้จึงไม่ใช่เรื่องที่น่ากังวล
— Patrick87

โปรดทราบว่านี่เป็นการสรุป: ส่วนประกอบของคือ CFG {anbncndnen}
— sdcvvc

คำถามที่คล้ายกัน
— กราฟิลส์

คำตอบ:


15

ไม่นี่ไม่มีบริบท ที่จะยอมรับn ขn คnคุณจะต้องให้แน่ใจว่าหมายเลขสามมีค่าเท่ากัน ที่จะยอมรับ* B * C * ∖ n ขn คn , คุณเพียงแค่ต้องให้แน่ใจว่าคุณอยู่ในหนึ่งต่อไปนี้กรณีที่สาม:anbncna∗b∗c∗∖anbncn

  1. จำนวนs แตกต่างจากจำนวนที่ข s; หรือab
  2. จำนวนs แตกต่างจากจำนวนที่ค s; หรือac
  3. จำนวน s แตกต่างจากจำนวนc sbc

เขียนพีดีเอสำหรับแต่ละกรณีจากนั้นรวมเข้าด้วยกันโดยการกระโดดไปตามแต่ละอันจากสถานะเริ่มต้น


ฉันเขียนกรณีเหล่านี้เรียบร้อย แต่ฉันไม่มีความคิดที่จะเชื่อมโยงพวกเขา ขอขอบคุณ!
— hauptbenutzer

4
จริงๆแล้วคุณต้องการแค่สองกรณีเท่านั้น
— sdcvvc

@sdcvvc จุดที่ดี :)
— Patrick87

S→xSy|X|Y;X→x|xX;Y→y|yYa+c+S→aSค|A|ค;A→aB|aA;ค→Bค|คค;B→ε|ขB.
— Jonas Kölker
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.