ภาษาที่ปราศจากบริบทคืออะไร


11

ฉันต้องรู้ว่า CFL ในคลาสใดปิดอยู่เช่นชุดใดที่เป็นส่วนเสริมของ CFL ฉันรู้ว่า CFL ไม่ได้ปิดภายใต้ส่วนประกอบและฉันรู้ว่า P ถูกปิดภายใต้ส่วนประกอบ เนื่องจาก CFL PI สามารถพูดได้ว่าส่วนประกอบของ CFL นั้นรวมอยู่ใน P (ใช่ไหม) ยังคงมีคำถามว่าส่วนเติมเต็มของ CFL เป็นส่วนย่อยที่เหมาะสมของ P หรือ P ทั้งหมดฉันขอขอบคุณแนวคิดใด ๆ เกี่ยวกับวิธีแสดงให้เห็นว่าการเติมเต็มของ CFL นั้นเป็น P ทั้งหมด (ถ้าเป็นกรณีนี้)


2
ฉันจะโพสต์สิ่งนี้เป็นคำตอบ แต่ไม่ตอบคำถามทั้งหมดของคุณ: ส่วนเสริมของ CFL ใด ๆ คือ R (เรียกซ้ำ) เนื่องจากภาษาแบบเรียกซ้ำถูกปิดภายใต้ส่วนเสริมและ CFL ทั้งหมดเป็น R.
Eric

CFL ที่ไม่ได้ถูกปิดภายใต้การเติมเต็มไม่ได้หมายความว่า 'L' อยู่ใน CFL หมายความว่าส่วนเติมนั้นไม่ได้อยู่ใน CFL เพียงหมายความว่ามี 'L' อยู่ใน CFL เช่นนั้นส่วนเติมเต็มไม่ได้อยู่ใน CFL
SHREYANSHU THAKUR

@Eric ผู้ถามทราบอยู่แล้วว่าส่วนเติมเต็มของ CFL ใด ๆ เป็นแบบเรียกซ้ำ พวกเขาได้ทำมากคำสั่งที่แข็งแกร่งที่สมบูรณ์ของ CFL ใด ๆ อยู่ในP
David Richerby

คำตอบ:


17

หนึ่งสามารถเข้าใจคำถามของคุณในสองวิธีตามคำนิยามของ "ส่วนเติมเต็มของ CFL"

กรณี A: Complement of CFL เป็นคลาสของภาษาทั้งหมดที่ไม่ได้อยู่ใน CFL อย่างเป็นทางการ ในกรณีนั้นนั้นใหญ่กว่ามันก็มีภาษาที่ไม่ได้อยู่ในเป็นต้น แต่บางทีนั่นอาจไม่ใช่สิ่งที่คุณหมายถึง

CFL¯={LLCFL}.
CFL¯PR

กรณี B:กำหนดคลาส complement-CFL เป็น ในคำ, ชุดของภาษาทั้งหมด , ซึ่งส่วนเสริมของบริบท .

coCFL={L¯LCFL},
LL

ในกรณีนั้นสิ่งที่คุณเขียนสมเหตุสมผล: (โดยอัลกอริทึม CYK ) และยัง (เรียกใช้อัลกอริทึมเดียวกันเอาท์พุทคำตอบตรงข้าม) และตั้งแต่แล้วมันควรจะทันทีที่ใช่ไหม?CFLPcoCFLPCFLcoCFLcoCFLP


คำจำกัดความของ CFK เท่าที่ฉันเข้าใจ: ภาษา L อยู่ใน coCFK หากว่าการเติมเต็มของ L อยู่ใน CFK โดยส่วนเติมเต็มของ LI หมายถึงสตริงที่เป็นไปได้ทั้งหมดยกเว้นสตริงใน L. ปัญหาที่ฉันคิดคือส่วนเติมเต็มไม่สามารถกำหนดเป็น "เรียกใช้อัลกอริทึมเดียวกันและย้อนกลับคำตอบ" ตัวอย่างเช่น: L = (x ^ iy ^ iz ^ i) CFL แต่ฉันไม่รู้ว่าอัลกอริทึมใดที่ฉันสามารถเรียกใช้เพื่อให้ได้คำตอบ (เชิงลบ)
user432

1
ดังนั้นคุณหมายถึงกรณี B โปรดทราบว่าส่วนประกอบของ CFLอาจไม่ใช่ CFL แต่ไม่ได้หมายความว่าอัลกอริทึม CYK ไม่ทำงานเหมือนกัน .. ฉันหมายถึงเรารัน CYK บนซึ่งเป็น CFL และได้คำตอบสำหรับทุกหรือไม่ก็อยู่ในL ตรงกันข้ามกับที่เป็นคำตอบสำหรับคำถามว่าอยู่ในหรือไม่แม้ว่าอาจไม่ใช่ CFL LL¯xL¯xLL
Ran G.

1
@ user432 ! coCFLCFL¯
กราฟิลส์

1
@RanG เป็นสัญลักษณ์มาตรฐานของคุณที่นี่หรือไม่ ผมจะคาดหวังและระดับของภาษาดังกล่าวว่าCFL coCFL={L:L¯CFL}CFL¯=LLCFL
usul

1
ที่จริงให้ฉันเปลี่ยนสัญกรณ์ตามคำแนะนำของคุณมันจะสมเหตุสมผลมากขึ้น
Ran G.

3

คลาสที่มีประสิทธิภาพซึ่งมีทั้ง CFL และ coCFL คือLOGCFLซึ่งมีภาษาทั้งหมดที่สามารถลดค่าลงใน logspace เป็นภาษาที่ไม่มีบริบท คลาสนี้อยู่ตรงกลางระหว่าง NL และ AC1 และมีปัญหาบางอย่างโดยธรรมชาติ นอกจากนี้ยังสามารถกำหนดได้ในแง่ของวงจร AC1 ที่ จำกัด LOGCFL ปิดภายใต้ส่วนเสริม (นี่คือส่วนขยายของอาร์กิวเมนต์ที่ใช้เพื่อแสดงว่า NL = coNL)


-1

การเติมเต็มของ CFL อาจเป็น CFL แต่ไม่จำเป็นต้องเป็น CFL มีทั้งแบบเรียกซ้ำ (R) และนับซ้ำ (RE) ซ้ำ ทำไม? CFL ทั้งหมดมีทั้ง R และ RE ภาษา R ถูกปิดภายใต้ส่วนเสริม (แต่ RE ไม่ใช่) ในบริบทนั้นการเติมเต็มของ CFL คือ R ซึ่งเป็น RE โดยกำเนิด


ถามได้กล่าวแล้วว่าพวกเขารู้ว่าส่วนประกอบของ CFP ใด ๆ อยู่ในP นั่นเป็นมากคำสั่งที่แข็งแกร่งกว่าว่ามันเป็น recursive หรือ RE มันเหมือนกับที่ผู้ถามได้พูดถึงคนที่เดินไม่ได้และคุณได้ตอบโต้ด้วยหลักฐานว่าเขาไม่สามารถวิ่งด้วยความเร็วของเสียงได้
David Richerby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.