ทำไมเราควรจะศึกษาทั้งสามรูปแบบของการเป็นตัวแทนของออโต จำกัด ?


9

DFA, NFA และ epsilon NFA ทั้งสามช่วยให้เราสามารถแสดงภาษาปกติเฉพาะ ด้วยการเป็นตัวแทนเหล่านั้นเราสามารถมาถึงการแสดงออกปกติเดียวกันแล้วทำไมเราต้องศึกษาทั้งสามรูปแบบของการเป็นตัวแทนของออโต้ จำกัด มีคำอธิบายบางอย่างเกี่ยวกับสิ่งที่ NFA สามารถทำได้ซึ่ง DFA ไม่สามารถทำได้นั่นคือ NFA อาจช่วยเราในการออกแบบความไม่แน่นอน ตัวอย่างเช่นในการออกแบบเกม (หมากรุก) เรามีตัวเลือกมากมายในการย้ายชิ้นส่วนเฉพาะจากตำแหน่งเฉพาะซึ่งสามารถแสดงได้อย่างง่ายดายโดยใช้ NFA แต่การใช้ epsilon NFA เมื่อใช้ NFA หรือ DFA แบบเดียวกันทำได้อย่างไร


2
มีมากกว่าสาม เหล่านี้เป็นเพียงคนที่มักพบในตำราเรียน การเปลี่ยนเอปไซลอนมีประโยชน์สำหรับการพิสูจน์ทฤษฎีบท แต่ฉันไม่แน่ใจว่าฉันเคยเห็นพวกมันใช้ในแบบจำลองเพื่อประโยชน์ของพวกเขาเอง
wvxvw

3
@wvxvw อัลกอริทึมสำหรับการแปลนิพจน์ทั่วไปเป็น NFA ใช้การเปลี่ยนอย่างเป็นธรรมชาติ พวกเขาไม่ได้ "เพียงเพื่อพิสูจน์" พวกเขาค่อนข้างเป็นธรรมชาติในการตั้งค่าที่ไม่ได้กำหนดไว้ ε
vonbrand

คำตอบ:


13

เพิ่มไวยากรณ์ปกติสำหรับหนึ่งในสี่ มีคนอื่น ๆ ...

ส่วนหนึ่งของความสนใจใน DFA + NFA คือพวกเขาเป็นแบบจำลองการคำนวณอย่างง่ายโดยมีตัวอย่างของNFA (และ -NFA) ของ nondeterminism (แนวคิดที่สำคัญสำหรับแบบจำลองที่ซับซ้อนมากขึ้น) เพื่อพิสูจน์ DFA และ NFA ยอมรับชุดภาษาเดียวกันก็กำลังสำรวจปรากฏการณ์ที่สำคัญมากในการตั้งค่าที่เรียบง่ายและเข้าใจได้ε

การแสดงออกปกติ (และไวยากรณ์ปกติ) เป็น formalisms แตกต่างอย่างสิ้นเชิงที่เกิดขึ้นเพื่ออธิบายชุดเดียวกันของภาษา อีกครั้งพิสูจน์ของความเป็นจริงนี้สำรวจที่สำคัญข้ามความสัมพันธ์และเป็นตัวอย่างที่ formalisms อาจดู diffent มากจะขึ้นอยู่กับแนวความคิดที่แตกต่างกันอย่างสิ้นเชิง แต่อธิบายภาษาเดียวกัน อีกครั้งในการตั้งค่าที่ค่อนข้างง่าย

สำหรับการใช้ "โลกแห่งความจริง" คุณสามารถเริ่มต้นด้วยนิพจน์ทั่วไปและรับ DFA น้อยที่สุดสำหรับการค้นหาที่มีประสิทธิภาพสูง วงจรดิจิทัลนั้นมีความสำคัญเป็น DFAs การทำความเข้าใจกับมันเป็นศูนย์กลางของวิศวกรรมคอมพิวเตอร์ สุดท้าย แต่ไม่ท้ายสุดบ่อยครั้งที่ระบบสามารถจำลองว่า "อยู่ในสถานะ" และ "ย้ายไปยังอีกระบบหนึ่ง" จากสิ่งกระตุ้นภายนอกแม้ว่าระบบจะอยู่ห่างไกลจากการดู DFA จริงด้วยวิธีนี้อาจช่วยให้เข้าใจได้

เพิ่มในภายหลัง:เท่าที่สังเกตจากราฟาเอลก็อาจจะมีประสิทธิภาพมากขึ้นในการตีความ NFA โดยตรงเพื่อการค้นหาเพราะสร้าง DFA อาจมีราคาแพงและ NFA อาจจะมีขนาดเล็กมาก


1
"มีคนอื่นเป็น" - นับสิบ ....
ราฟาเอล

1
คุณอาจต้องการพูดถึงว่า NFA นั้นมีประโยชน์ (ถ้า DFA เป็นทางเลือกเดียว) เนื่องจากอาจมีขนาดเล็กกว่ามาก แต่การใช้หนึ่งเพื่อตรวจสอบว่าคำที่เป็นที่ยอมรับนั้นมีราคาไม่แพงเกินไปหรือไม่
Raphael

5

มีเหตุผลมากมายในการศึกษารูปแบบ / การติดต่อที่แตกต่างกันของ DFAs กับ NFAs นี่คือไฮไลท์ที่เลือกไม่กี่บางส่วนจากทฤษฎีความซับซ้อนขั้นสูง

  • NFA เป็นรูปแบบที่น่าสนใจสำหรับ "การคำนวณแบบขนาน" เราสามารถพิจารณาถึงความก้าวหน้าของรัฐผ่าน NFA ในรูปแบบการคำนวณ DFA แบบขนาน ดังนั้นการคำนวณ DFA กับ NFA จึงสะท้อนให้เห็นถึงความแตกต่างของการคำนวณแบบอนุกรมและแบบขนาน โดยการเปรียบเทียบบริบททั้งสองนี้ยังช่วยในการศึกษาความซับซ้อนของอัลกอริทึมโดยธรรมชาติของปัญหา

  • NFAs มักจะใช้ในระบบการจับคู่แสดงออกปกติ (ค่อนข้างแพร่หลายในหลายภาษาคนทันสมัย ​​ESP กระบอกไม้ไผ่ในยุคยูนิกซ์) ซึ่งโดยทั่วไปแล้วจะช่วยให้รายละเอียดของการแสดงออกปกติที่จะถูกแปลงเป็น NFAs แล้วอาจจะแปลงเป็น DFAs ช่วยเหลือด้วยการค้นหาที่มีประสิทธิภาพมากขึ้น

  • มีปัญหาเปิดไม่กี่ที่ยังคงอยู่ในพื้นที่และพวกเขามักจะศึกษาอยู่บนพื้นฐานของการติดต่อ DFA / NFA ดูเช่นจะมีปัญหาเปิดทิ้งไว้บน DFAs (cstheory stackexchange) ค่อนข้างน่าอัศจรรย์บางส่วนของพวกเขาได้รับการเชื่อมโยงกับพื้นที่ลึกมากของลูกค้ารวมทั้ง P VS ปัญหา NP เช่นnonemptiness จุดตัดของ DFAs นอกจากนี้ยังมีอีกหนึ่งพื้นที่ที่เปิดเช่นการคำนวณน้อยที่สุด NFA สำหรับ DFA

  • สำหรับข้อมูลเชิงลึกที่เกี่ยวข้องดูคำถามแบบกึ่งมีส่วนร่วม / คำถามที่ได้รับการโหวตสูงในcstheory.se : อะไรคือการรู้แจ้งที่ฉันควรจะได้รับหลังจากเรียนรู้ขอบเขตของออโตมาตะ?

  • มีแอปพลิเคชันที่หลากหลายมากของ DFAs และ NFAs และการติดต่อระหว่างสองมักใช้ประโยชน์จากพวกเขา การจับคู่รูปแบบสตริงดังกล่าวข้างต้น แต่การก่อสร้าง DFA / NFA มักใช้ในการรู้จำเสียง (อัตโนมัติ) ดูตัวอย่างเอกสารที่อ้างถึงอย่างสูงนี้: เครื่องแปลงความถี่สถานะ จำกัด ในการรู้จำเสียง / Mohri, Pereira, Riley


2

DFA มีการนำไปใช้ง่ายกว่า NFA เนื่องจากสถานะถัดไปของพวกเขาถูกกำหนดโดยฟังก์ชันและ NFA ช่วยให้ผู้ใช้แสดงสิ่งที่พวกเขาต้องการเป็นเอาต์พุตได้ง่ายเนื่องจาก NFA สามารถเลือกระหว่างหลายพา ธ และ epsilon-NFA เป็นส่วนขยายของ NFA ซึ่งการเปลี่ยนสามารถทำได้โดยไม่ใช้สัญลักษณ์อินพุตใด ๆ


2
สรุป: NFA นำเสนอความคิดที่ไม่ใช่ระดับซึ่งเป็นความคิดที่ลึกซึ้งมาก ("นักประดิษฐ์", Michael O. Rabin และ Dana S. Scott ได้รับรางวัลทัวริงสำหรับความคิดเหล่านี้)
Ran G.

1

มีสิ่งที่น่ารังเกียจเกี่ยวกับจำนวนสถานะของ DFAs มันระเบิดบางครั้ง

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

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