ให้ภาษาฉันจะพูดโดยตรงอย่างไรโดยไม่ดูกฎการผลิตภาษานี้ไม่ปกติ
ฉันสามารถใช้เลมม่าสูบน้ำ แต่ผู้ชายบางคนบอกว่าแค่ดูไวยากรณ์ว่านี่ไม่ใช่เรื่องปกติ มันเป็นไปได้ยังไงกัน?
ให้ภาษาฉันจะพูดโดยตรงอย่างไรโดยไม่ดูกฎการผลิตภาษานี้ไม่ปกติ
ฉันสามารถใช้เลมม่าสูบน้ำ แต่ผู้ชายบางคนบอกว่าแค่ดูไวยากรณ์ว่านี่ไม่ใช่เรื่องปกติ มันเป็นไปได้ยังไงกัน?
คำตอบ:
คุณสมบัติหลักของ DFA's / NFA คือการขาดหน่วยความจำที่ไม่มีขอบเขต ถ้าคุณดูภาษาและอัลกอริธึมเท่านั้น (ซึ่งควรจะถูกแปลเป็น Finite Automaton ในภายหลัง) คุณสามารถคิดได้ว่าต้องใช้คุณสมบัตินี้นั่นคือคุณรู้สึกว่าอัลกอริทึมใด ๆ ที่รู้จักมันจะต้องจำสิ่งต่าง ๆ มากมาย (เช่นในตัวอย่างของคุณ) แล้วภาษาที่ไม่น่าจะปกติ
แน่นอนคุณควรจำไว้เสมอว่าสัญชาตญาณทางคณิตศาสตร์อาจผิดและวิธีเดียวที่จะมั่นใจได้ว่าสัญชาตญาณของคุณคือการพิสูจน์
แก้ไข: ฉันจะตอบคำถามสุดท้ายในความคิดเห็นที่นี่เพราะไม่มีที่ว่าง
พวกคุณกำลังพูดถึงหน่วยความจำที่ไม่ได้ จำกัด ซึ่งคุณหมายถึงคือสาเหตุที่มันไม่ปกติ แต่ ^ nb ^ m ยังสามารถมีหน่วยความจำไม่ จำกัด หากฉันต้องการมันไม่ได้หรือไม่ สิ่งนี้ยังทำให้ฉันไม่สงบ
ปัญหาไม่ได้อยู่ที่ว่าคำจะใหญ่ขนาดไหน (โดยปกติคุณจะพบกับภาษาปกติที่ไม่มีที่สิ้นสุดเนื่องจากภาษาที่ จำกัด ทุกภาษาเป็นปกติและค่อนข้างน่าเบื่อ) แต่ DFA จำเป็นต้องจำเท่าไร
ในตัวอย่างเช่นมีไม่จำเป็นต้องจำ n algorihm เพียงต้องการให้แน่ใจว่าพวกเขาเป็นบวกและคำว่าถูกสั่งอย่างถูกต้อง นี่คือรายการที่ จำกัด และแต่ละรายการในรายการต้องการหน่วยความจำจำนวนคงที่
เปรียบเทียบสิ่งนี้กับซึ่งต้องใช้ alogrithm อย่างง่ายเพื่อจำว่าจำนวนของเท่ากับจำนวน
's นี้จะต้องมีหน่วยความจำมากมาย เมื่อฉันดูภาษาและเห็นว่าอัลกอริทึมใด ๆ ที่ฉันสามารถนึกได้ว่าต้องการความทรงจำที่ไม่ จำกัด สัญชาตญาณของฉันที่ภาษาไม่ได้เติบโตขึ้นอย่างสม่ำเสมอ หากฉันไม่สามารถหาอัลกอริทึม "อัจฉริยะ" (ที่ต้องใช้หน่วยความจำจำนวนคงที่) ในระยะเวลาที่เหมาะสม (ขึ้นอยู่กับคุณว่าเวลาเท่าไรสมเหตุสมผล) ฉันจะลองพิสูจน์ว่าภาษาไม่ปกติ
หวังว่านี่จะทำให้ชัดเจนขึ้น
ฉันสามารถใช้บทแทรก
เผง หลังจากที่คุณใช้บทสรุปการปั๊มน้ำหรือเทคนิคอื่น ๆสองสามครั้ง (หลายสิบครั้ง) คุณจะเริ่มเห็นรูปแบบในภาษาที่ห้ามไม่ให้เป็นแบบปกติเป็นพื้นฐานขั้นพื้นฐานที่คุณอาจมีความเชี่ยวชาญอยู่แล้ว ดังนั้นนี่จึงเป็นเรื่องของประสบการณ์ไม่ใช่แค่สัญชาติญาณ
วิธีที่ดีในการทดสอบสัญชาตญาณของคุณคือการดูภาษาเหล่านี้:
ข้อไหนไม่มีบริบท
คุณสามารถตัดสินใจได้ว่าภาษาใดที่ใช้การคำนวณอย่างตรงไปตรงมามากกว่าปกติมากกว่าการพิสูจน์แบบสมบูรณ์ คุณเพียงแค่ต้องใช้เกณฑ์ที่ทรงพลังมากข้อหนึ่ง: ภาษาเป็นเรื่องปกติถ้าหากมันมีจำนวนที่แน่นอน
ความฉลาดทางคือสิ่งที่คุณต้องเติมให้สมบูรณ์หลังจากอ่านไปแล้วในส่วนของอินพุต อย่างเป็นทางการยิ่งขึ้นความฉลาดทางซ้ายของภาษา โดยสตริง เขียน คือชุดของสตริง ดังนั้น . ตัวอย่างเช่นถ้าจากนั้น ในขณะที่ . เราสามารถเห็นได้อย่างง่ายดายว่า. มีการหารจำนวนแบบฟอร์มที่ไม่ จำกัด จำนวนดังนั้นจึงตามมาทันที ไม่ปกติ
ถ้าเราสร้าง DFA เพื่อตัดสินใจ L และ จะอยู่ในสถานะ หลังจากอ่านแล้ว จากนั้น เป็นภาษาที่ตัดสินใจโดย แก้ไขให้มีสถานะเริ่มต้น . แนวคิดเดียวกันนี้สามารถใช้เพื่อสร้าง DFA ขั้นต่ำที่ตัดสินใจภาษาปกติจากคำจำกัดความโดยตรง