1
อัลกอริทึมในการทดสอบว่าภาษาปกติหรือไม่
มีอัลกอริทึม / ขั้นตอนการทดสอบอย่างเป็นระบบว่าภาษานั้นปกติหรือไม่? กล่าวอีกนัยหนึ่งระบุภาษาที่ระบุในรูปแบบพีชคณิต (คิดว่าบางอย่างเช่น ) ทดสอบว่าภาษาเป็นปกติหรือไม่ ลองนึกภาพเรากำลังเขียนบริการเว็บเพื่อช่วยนักเรียนทำการบ้านทั้งหมด ผู้ใช้ระบุภาษาและบริการบนเว็บตอบกลับด้วย "ปกติ", "ไม่ปกติ" หรือ "ฉันไม่รู้" (เราต้องการให้บริการเว็บตอบ "ฉันไม่รู้" ไม่บ่อยเท่าที่จะเป็นไปได้) มีวิธีใดที่ดีในการทำสิ่งนี้โดยอัตโนมัติหรือไม่? สิ่งนี้สามารถแก้ไขได้หรือไม่? เป็นเรื่องที่ตัดสินใจได้หรือไม่ (คือสามารถรับประกันได้ว่าเราไม่จำเป็นต้องตอบว่า "ไม่รู้" หรือไม่? มีอัลกอริทึมที่มีประสิทธิภาพพอสมควรสำหรับการแก้ปัญหานี้หรือไม่และสามารถให้คำตอบอื่นที่ไม่ใช่ "ไม่รู้"L = { anขn: n ∈ N }L={anขn:n∈ยังไม่มีข้อความ}L=\{a^n b^n : n \in \mathbb{N}\} วิธีคลาสสิกสำหรับการพิสูจน์ว่าภาษาไม่ปกติคือการแทรกบทแทรก อย่างไรก็ตามดูเหมือนว่าต้องมีความเข้าใจคู่มือในบางจุด (เช่นเพื่อเลือกคำที่จะปั๊ม) ดังนั้นฉันไม่ชัดเจนว่าจะกลายเป็นสิ่งที่เป็นอัลกอริทึม วิธีคลาสสิกสำหรับการพิสูจน์ว่าภาษาเป็นเรื่องปกติที่จะใช้ทฤษฎีบท Myhill – Nerode เพื่อให้ได้มาซึ่งสถานะออโตเมติกอัน จำกัด นี่เป็นวิธีที่มีแนวโน้ม แต่จะต้องใช้ความสามารถในการดำเนินการขั้นพื้นฐานกับภาษาในรูปแบบพีชคณิต ไม่ชัดเจนสำหรับฉันว่ามีวิธีที่เป็นระบบในการดำเนินการเชิงสัญลักษณ์ที่จำเป็นสำหรับภาษาในรูปแบบพีชคณิต เพื่อให้คำถามนี้ถูกต้องเราจำเป็นต้องตัดสินใจว่าผู้ใช้จะระบุภาษาอย่างไร …