ความคลุมเครือในภาษาปกติและไม่มีบริบท


11

ฉันเข้าใจว่าการอ้างสิทธิ์ต่อไปนี้เป็นจริง:

  1. ผลสืบเนื่องที่แตกต่างกันสองของสตริงใน CFG ที่กำหนดบางครั้งอาจแอตทริบิวต์ต้นไม้แยกวิเคราะห์เดียวกันกับสตริง
  2. เมื่อมีการสืบทอดของสตริงบางอย่างใน CFG ที่กำหนดซึ่งมีแอตทริบิวต์การแยกวิเคราะห์ต้นไม้ CFG นั้นจะคลุมเครือ
  3. ภาษาที่ไม่มีบริบทบางภาษาสร้างขึ้นโดย CFG ที่ไม่ชัดเจนนั้นถูกสร้างโดย CFG ที่ไม่คลุมเครือ
  4. บางภาษาเป็นเช่นนั้น CFG เท่านั้นที่สามารถสร้างพวกเขา (และมีบางอย่าง) ที่ไม่ชัดเจน

ไตรมาสที่ 1 ฉันเข้าใจว่ายังไม่สามารถตัดสินใจได้ว่า CFG ที่กำหนดเองนั้นจะคลุมเครือหรือไม่ในแง่ของจุดที่ 3 ด้านบน หรือว่าค่อนข้างจะไม่สามารถตัดสินใจได้ว่าภาษาที่ปราศจากบริบทมีความกำกวมหรือไม่ในแง่ของข้อ 4? หรือทั้งสองไม่สามารถตัดสินใจได้?

ไตรมาสที่ 2 จุดใดที่ 1-4 กลายเป็นเท็จเมื่อเราแทนที่ "ไม่มีบริบท" ด้วย "ปกติ" ไวยากรณ์และภาษาปกติไม่คลุมเครือหรือไม่


ภาษาที่คุณพูดถึงในจุดที่ 4 คือ "ไม่ชัดเจนโดยเนื้อแท้" สำหรับไตรมาสที่ 1 ฉันคิดว่าไม่สามารถบอกได้ว่า GRAMMAR นั้นคลุมเครือหรือไม่ ดังนั้นทั้ง 3 และ 4 จึงไม่สามารถตัดสินใจได้
Lamine

ถูกต้องจุดที่ 4 ภาษาเรียกว่า "คลุมเครือโดยเนื้อแท้"
dubiousjim

4
Q1: ทั้งสองไม่สามารถตัดสินใจได้ Q2: 1 เป็นไปไม่ได้เนื่องจากมีเทอร์มินัลไม่มากที่สุดที่ปรากฏในรูปแบบประโยคใด ๆ ดังนั้นการสืบทอดใด ๆ จึงมีทั้งซ้ายและขวาสุด 2 ที่ยังคงเป็นจริง 3 ยังคงเป็นจริงถ้าคุณลบบิต `` ยัง ''; 4 ไม่เป็นความจริงอีกต่อไปตัวอย่างเช่นการกำหนดไวยากรณ์ของคุณคุณจะได้ไวยากรณ์ที่ชัดเจน
Sylvain

1
@Sylvain ตอบว่าใช่หรือไม่
Yuval Filmus

@ Sylvain ขอบคุณและใช่ทำคำตอบนั้น ฉันยืนยันได้ไหมว่าฉันเข้าใจ ใหม่ 2: ดังนั้นจึงมีไวยากรณ์ปกติที่สามารถสร้างสตริงเดียวกันกับต้นไม้แยกวิเคราะห์ที่แตกต่างกัน? (ตั้งแต่ฉันได้เจอการอ้างอิงถึง "NFA ที่คลุมเครือ" แต่ฉันไม่แน่ใจว่ามันใช้ "ความกำกวม" ในแง่ที่ฉันเป็น) อีกครั้งที่ 3 และ 4 ฉันคิดว่าคุณกำลังพูดว่าบางภาษาปกติสามารถสร้างขึ้นได้ด้วยไวยากรณ์ปกติที่กำกวม
dubiousjim

คำตอบ:


19

เกี่ยวกับ Q1: ทั้งปัญหาความกำกวม (กำหนด CFG ไม่ว่าจะคลุมเครือ) และปัญหาความกำกวมโดยธรรมชาติ (ให้ CFG ไม่ว่าภาษานั้นจะคลุมเครือหรือไม่เช่นว่า CFG ใด ๆ ที่เทียบเท่าจะคลุมเครือ) นี่คือการอ้างอิงเดิม:


เกี่ยวกับ Q2: ไวยากรณ์ปกติคือไวยากรณ์แบบไม่มีบริบท "ด้านเดียว" โดยที่หนึ่ง nonterminal ส่วนใหญ่จะปรากฏในกฎใด ๆ ส่วนขวาและที่ nonterminal อยู่ที่สุดท้าย (ในไวยากรณ์เส้นตรงขวา ) หรือครั้งแรก (ในตำแหน่งไวยากรณ์เชิงเส้นซ้าย ) ไวยากรณ์ดังกล่าวแปลได้อย่างง่ายดายในขอบเขต จำกัด ของออโตมาตา (โดยคร่าวๆโดยพิจารณาแต่ละ nonterminal ว่าเป็นสถานะ) ซึ่งมีความชัดเจนถ้าสมมุติไวยากรณ์ปกติไม่ชัดเจน ชั้นเรียนของไวยากรณ์ปกติที่ชัดเจนและออโตมาตาได้รับการศึกษาโดยเฉพาะอย่างยิ่งโดยStearns and Hunt (1985)ซึ่งแสดงให้เห็นว่าพวกเขาสนุกกับอัลกอริทึมที่สามารถแก้ไขได้สำหรับปัญหาการรวม

  1. เกี่ยวกับความสัมพันธ์ระหว่าง derivations (เช่นลำดับของกฎแอปพลิเคชันโดยที่เป็นกฎของไวยากรณ์) และต้นไม้ที่ได้รับมา (เช่นที่โหนดที่มีชื่อว่าเป็นผู้ปกครอง ลำดับของโหนดโดยที่เป็นกฎ): ใน CFG ทั่วไปอาจมีการสืบทอดที่แตกต่างกันซึ่งเยี่ยมชมต้นไม้ที่ได้มาเดียวกันในวิธีที่ต่างกันβAγβαγAαAX1,,XmAX1Xm

    derivations ต่าง ๆ เหล่านี้เกิดขึ้นเพราะมีทางเลือกระหว่างการใช้กฎไวยากรณ์ในสองสถานที่ต่าง ๆ ในรูปแบบประโยค: ในรูปแบบประโยคอย่างน้อยสอง nonterminalsและหนึ่งสามารถใช้ first และขอรับหรือก่อนและรับแต่การใช้กฎอื่นจะนำไปสู่\ การวางตัวซ้ายสุด (เสมอมาที่ไม่ใช่ซ้ายสุดในรูปแบบประโยคใด ๆ ) หรือขวาสุดγAηBθABAαγαηBθBβγAηβθγαηβθ derivations กำหนดลำดับเพื่อเยี่ยมชมต้นไม้ที่ได้รับมา

    ในบริบทเชิงเส้นไวยากรณ์ที่ไม่มีบริบทไม่มีตัวเลือกดังกล่าวเนื่องจากมีอย่างน้อยหนึ่ง nonterminal ในรูปแบบประโยคใด ๆ และมีรากศัพท์เดี่ยวสำหรับต้นไม้ที่ให้มาซึ่งมีทั้งซ้ายและขวาสุด

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

  3. และ 4 ถ้าคุณใช้มุมมอง จำกัด ของออโตมาตาก็พอเพียงที่จะกำหนดออโตเมติกที่ไม่ชัดเจนของคุณเพื่อให้ได้ออโตมาตาที่ไม่คลุมเครือสำหรับภาษาเดียวกัน: จะมีการเรียกใช้เพียงครั้งเดียวสำหรับคำที่กำหนด หุ่นยนต์กำหนดขึ้นนี้จะเทียบเท่ากับไวยากรณ์ปกติที่ชัดเจน 

    เพื่อตอบความคิดเห็นของคุณ: มีไวยากรณ์ปกติที่คลุมเครืออยู่เช่นมีการเริ่มต้นที่เหลือสองครั้งสำหรับ :และเทียบเท่าไวยากรณ์ที่ชัดเจนคือไปS S B S SAB,Aa,BaaSAaSBaSa

เกี่ยวกับความสัมพันธ์กับไตรมาสที่ 1: มันเป็น decidable ว่าไวยากรณ์ปกติไม่ชัดเจน (ปัญหาความกำกวมโดยธรรมชาติไม่ได้ท้าทายมากในไวยากรณ์ปกติเนื่องจากคำตอบคือ "ไม่" คงที่โดยไม่ต้องดูไวยากรณ์อินพุต) สิ่งนี้สามารถตรวจสอบได้ในโดยใช้การสร้างกำลังสองบนหุ่นยนต์ที่เกี่ยวข้อง: สร้างผลิตภัณฑ์ของหุ่นยนต์ด้วยตัวเองและดูว่าบางรัฐด้วยสามารถเข้าถึงได้ และสามารถเข้าถึงได้ การอ้างอิงที่เก่าแก่ที่สุดที่ฉันรู้ว่าสำหรับความคิดนี้เป็นกระดาษโดยแม้ (1965)( q , q ) q q O(|G|2)(q,q)qq


1

ไตรมาสที่ 1 ทุกอย่างไม่สามารถตัดสินใจได้เนื่องจากคำถามถ้าไวยากรณ์สร้างภาษา (มีคำทั้งหมด) หรือไม่สามารถอธิบายได้ แต่ถ้าคุณมีไวยากรณ์ที่เฉพาะเจาะจงเช่นไวยากรณ์ที่สร้างขึ้นโดย PDA ที่กำหนดขึ้นคำถามจะถูกนำมาพิจารณาได้Σ GΣ

ฉันไม่ค่อยเข้าใจภาษาที่คุณพูดใน 4 ภาษา CF ทุกภาษามีไวยากรณ์ที่ไม่ชัดเจน

ไตรมาสที่ 2 ทุกอย่างสามารถตัดสินได้หากคุณมีข้อตกลงกับไวยากรณ์ปกติ คุณควรสร้าง DFA ให้น้อยที่สุดและใช้มันเพื่อสร้างไวยากรณ์ที่ไม่คลุมเครือ หากคุณมีข้อตกลงกับภาษาปกติที่กำหนดโดยไวยากรณ์ CF คำตอบคือไม่ - ดู Q1


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

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

2
@ alexandr-rubtsov "เมื่อคุณจัดการกับภาษาที่อธิบายโดยไวยกรณ์ปกติคำถามใด ๆ ที่คุณชอบนั้นสามารถตัดสินใจได้" ดูเหมือนว่าคำพูดในแง่ดีเกินไป ...
J.

ขอบคุณฉันหมายถึง "อาจเป็น" ในฟังก์ชั่นวาทศิลป์ของมันไม่ใช่ในแง่ของ "ใครจะรู้?"
dubiousjim

@ J.-E.Pin ใช่ฉันควรจะละเอียดอ่อนมากขึ้นและพูดบางอย่างเช่น«คำถามธรรมชาติทั้งหมดเช่นความคลุมเครือ»
Alexander Rubtsov

0

ขึ้นอยู่กับว่าคุณจะแทนที่ 'บริบทฟรี' ด้วย 'ปกติ' เฉพาะหน้า 'ภาษา (s)' หรือด้านหน้า 'ไวยากรณ์'

ภาษาปกติทั้งหมดถูกสร้างขึ้นโดยไวยากรณ์ปกติและโดยเฉพาะอย่างยิ่งไวยากรณ์ปกติที่ไม่มีความกำกวมเช่นLL (1)ไวยากรณ์ขวา - ขวาซึ่งไม่ชัดเจน

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