Decidablity ภาษา Grammars และ Automata


16

หมายเหตุนี่เป็นคำถามที่เกี่ยวข้องกับการเรียนในหลักสูตร CS ที่มหาวิทยาลัยไม่ใช่การบ้านและอยู่ที่นี่ภายใต้การสอบ Fall 2011

นี่คือคำถามสองข้อที่ฉันดูจากการสอบที่ผ่านมา พวกเขาดูเหมือนจะเกี่ยวข้องกันคนแรก:

ปล่อย

FINITECFG={<G>∣G is a Context Free Grammar with |L(G)|<}

พิสูจน์ว่าเป็นภาษาที่ใช้งานได้ FINITECFG

และ...

ปล่อย

FINITETM={<M>∣M is a Turing Machine with |L(M)|<}

พิสูจน์ว่าเป็นภาษาที่ไม่สามารถตัดสินใจได้ FINITETM

ฉันหลงทางเล็กน้อยเกี่ยวกับวิธีแก้ไขปัญหาเหล่านี้ แต่ฉันมีข้อมูลเชิงลึกบางอย่างซึ่งฉันคิดว่าอาจเป็นไปในทิศทางที่ถูกต้อง สิ่งแรกที่ฉันรู้คือภาษาที่ไหนAREX

AREX={<R,w>∣R is a regular expression with wL(R)}

เป็นภาษาที่ decidable (หลักฐานอยู่ในทฤษฎีการคำนวณของ Michael Sipser's , pg. 168) แหล่งเดียวกันยังพิสูจน์ว่าไวยากรณ์ฟรีบริบทสามารถแปลงเป็นนิพจน์ปกติและในทางกลับกัน ดังนั้นจะต้องตัดสินใจได้เช่นกันเนื่องจากสามารถแปลงเป็นนิพจน์ทั่วไปได้ สิ่งนี้และความจริงที่ว่านั้นไม่สามารถระบุได้ดูเหมือนจะเกี่ยวข้องกับปัญหานี้ACFGATM

สิ่งเดียวที่ฉันจะคิดว่าจะผ่านไปยังเครื่อง G ทัวริงสำหรับ (หลังจากการแปลง G เพื่อการแสดงออกปกติ) และ{TM}} จากนั้นยอมรับว่าถ้า G ทำและปฏิเสธถ้า G ทำไม่ได้ เนื่องจากไม่สามารถระบุได้สิ่งนี้จะไม่เกิดขึ้น อย่างใดฉันรู้สึกเหมือนฉันทำผิดที่นี่ แต่ฉันไม่แน่ใจว่ามันคืออะไร ใครช่วยกรุณาช่วยฉันที่นี่ได้ไหมAREXATMATM


5
"บริบทของไวยากรณ์ฟรีสามารถแปลงเป็นนิพจน์ทั่วไปและในทางกลับกัน" นั่นไม่เป็นความจริง (เว้นแต่คุณจะตีความว่า "มี CFG ที่สามารถแปลงเป็นนิพจน์ปกติ" แต่ฉันไม่คิดว่านั่นคือสิ่งที่คุณ ความหมาย) ไวยากรณ์ปกติสามารถแปลงเป็นนิพจน์ปกติ ไม่มีอัลกอริทึมในการแปลง CFG ให้เป็นนิพจน์ทั่วไปด้วยเหตุผลง่ายๆที่ภาษาบริบทที่ไม่มีบริบท (เช่นภาษาที่ไม่มีบริบททั้งหมดไม่ใช่ภาษาปกติ) ไม่สามารถอธิบายได้โดยใช้นิพจน์ทั่วไป
sepp2k

คำตอบ:


9
  1. แปลง G เพื่อรูปแบบชัมปกติ วิธีนี้การสืบทอดที่ว่างเปล่าเพียงอย่างเดียวจะเป็นสัญลักษณ์เริ่มต้นที่ไม่ปรากฏที่อื่นและดังนั้นหากมีการผลิตบางอย่างที่สามารถสร้างตัวเองได้ในที่สุดไวยากรณ์ก็ไม่มีที่สิ้นสุด หากไม่มีการผลิตเช่นนั้นแต่ละสัญลักษณ์จะสามารถสร้างชุดของสตริงที่ จำกัด ได้เท่านั้นและจากนั้นไวยากรณ์จะมี จำกัด ดังนั้นสร้างกราฟโดยตรงที่แต่ละการผลิตเป็นโหนดและแต่ละสัญลักษณ์ภายในการผลิตคือการกำหนดเป้าหมายขอบที่สัญลักษณ์ หากกราฟมีวัฏจักรบางส่วน CFG จะไม่มีที่สิ้นสุดมิฉะนั้นจะไม่เป็นเช่นนั้น ดังนั้นเครื่องทัวริงสำหรับสามารถสร้างสิ่งที่ถูกต้องแล้วF ฉันFINITECFGคือ decidableFINITECFG

  2. สมมติว่าคือ decidable ช่วยบอกว่าHเป็นเครื่องทัวริงที่มีสตริงบางส่วนเช่นการป้อนข้อมูลและการใช้ตัวเองเป็น input ไปยังF ฉันไม่มีฉันทีอีทีเอ็ม ถ้าF I N I T E T Mคืนค่าเป็นจริง (เช่นHยอมรับเฉพาะภาษา จำกัด ) ดังนั้นHFINITETMHFINITETMFINITETMHHยอมรับอินพุตซึ่งนำไปสู่ความขัดแย้งเนื่องจากชุดอินพุตนั้นไม่มีที่สิ้นสุด (ความยาวของอินพุตนั้นไม่ จำกัด ดังนั้นยอมรับสตริงใด ๆ ที่เป็นไปได้เนื่องจากอินพุตหมายถึงการยอมรับชุดสตริงที่ไม่สิ้นสุด) ถ้าคืนค่า false (เช่นภาษาของHคืออนันต์) ดังนั้นH จะปฏิเสธอินพุตซึ่งหมายความว่าภาษาของHนั้นมีขอบเขตเนื่องจากไม่ยอมรับอินพุตใด ๆ (เช่นภาษาว่างเปล่า) ซึ่งนำไปสู่ความขัดแย้งด้วย ด้วยวิธีนี้การคาดคะเนที่Hมีอยู่นำไปสู่ความขัดแย้งและการคาดคะเนนี้ขึ้นอยู่กับการคาดคะเนว่าF I N I TFINITETMHHHHสามารถตัดสินใจได้ ดังนั้นโดยความขัดแย้งเรามี F ฉันN ฉันT E T Mไม่สามารถตัดสินใจได้FINITETMFINITETM

แหล่งเดียวกันยังพิสูจน์ว่าไวยากรณ์ฟรีบริบทสามารถแปลงเป็นนิพจน์ปกติและในทางกลับกัน

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

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


1
ฉันมีปัญหาบางอย่างในการพิสูจน์สองข้อ ตกลงดังนั้นคุณส่ง H ถึง G ใช่ไหม ถ้า G คืนค่าจริงมากกว่า H นั้นมีค่า จำกัด นั่นก็สมเหตุสมผล อย่างไรก็ตามฉันไม่ได้รับชุดอินพุตเป็นอนันต์อินพุตที่คุณอ้างอิงถึงคืออะไร
BrotherJack

1
@BrotherJack การป้อนข้อมูลของอาจมีความยาวไม่จำกัดความยาว อาจเป็นสตริงที่มีเพียงสัญลักษณ์เดียวหรืออาจเป็นอินพุตยาวหนึ่งล้านเทราไบต์ ด้วยวิธีนี้อินพุตที่เป็นไปได้สำหรับHคือเซตอนันต์เพราะเราสามารถทำให้มันใหญ่โดยพลการ HH
Victor Stafusa

1
ตกลง. ดูเหมือนว่าจะสมเหตุสมผล มันจะถูกต้องหรือไม่ที่จะอ้างถึงอินพุตนั้นเป็น "สตริงที่เป็นไปได้ใด ๆ ภายในภาษาป้อนข้อมูล H"
BrotherJack

1
@BrotherJack - ฉันแก้ไขคำตอบเพื่อให้จุดนั้นชัดเจนขึ้น
Victor Stafusa

1
คำอธิบายที่ยอดเยี่ยม! ขอบคุณมากสำหรับเวลาของคุณ.
BrotherJack

2

FINITECFG is via the pumping lemma.

The pumping lemma says that each CFL L has a number N (which can be computed from the grammar, or at least an upper bound of it can easily be computed), such that any xL which is longer than N can be "pumped".

This means that if L is finite, all the words in L are shorter than N.

Now, all that one needs to check is words with lengths between N and 2N. If any such word exists, then L is infinite. It is not too difficult to see that this statement is "if and only if", thus if you find no word withing this range, L is finite. The efficiency here is much worse than the answer of Victor, but it teaches something about the structure of CFLs.

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