ความแตกต่างระหว่าง NFA และ DFA ความแตกต่างระหว่าง

Anonim

NFA กับ DFA

ทฤษฎีการคำนวณเป็นสาขาวิชาวิทยาการคอมพิวเตอร์ที่เกี่ยวข้องกับการแก้ปัญหาด้วยอัลกอริทึม มี 3 สาขาคือ ทฤษฎีความซับซ้อนในการคำนวณ, ทฤษฎีการคำนวณและทฤษฎีออโตเมตา

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

ทฤษฎี automaton หรือ automata มีหลายชั้นเรียนซึ่งรวมถึง Deterministic Finite Automata (DFA) และ Automat Nite (Nondeterministic Finite Automata) (NFA) ทั้งสองชั้นนี้เป็นฟังก์ชันการเปลี่ยนแปลงของ automata หรือ automaton

ในระหว่างการเปลี่ยน DFA ไม่สามารถใช้สตริงที่ว่างเปล่า n และสามารถเข้าใจได้ว่าเป็นเครื่องเดียว ถ้าสตริงสิ้นสุดที่สถานะที่ไม่เป็นที่ยอมรับ DFA จะปฏิเสธ เครื่อง DFA สามารถสร้างขึ้นได้ด้วยทุกอินพุตและเอาต์พุต

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

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

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

สรุป:

1. "DFA" ย่อมาจาก "Deterministic Finite Automata" ขณะที่ "NFA" ย่อมาจาก "Nondeterministic Finite Automata" “

2 ทั้งสองเป็นฟังก์ชันการเปลี่ยนแปลงของออโตเมต้า ในสถานะ DFA จะมีการตั้งค่าสถานะที่เป็นไปได้ต่อไปในขณะที่ NFA สัญลักษณ์สถานะและสัญลักษณ์ป้อนข้อมูลแต่ละคู่สามารถมีได้หลายรัฐต่อไป

3 NFA สามารถใช้การเปลี่ยนแปลงสตริงที่ว่างเปล่าในขณะที่ DFA ไม่สามารถใช้การเปลี่ยนสตริงที่ว่างเปล่าได้

4 NFA สามารถสร้างได้ง่ายขึ้นในขณะที่การสร้าง DFA ทำได้ยากขึ้น

5 การติดตามผลได้รับอนุญาตใน DFA ขณะที่ใน NFA อาจได้รับอนุญาตหรือไม่ก็ได้

6 DFA ต้องใช้พื้นที่มากขึ้นขณะที่ NFA ใช้พื้นที่น้อยลง

7 ในขณะที่ DFA สามารถเข้าใจได้ว่าเป็นเครื่องเดียวและสามารถสร้างเครื่อง DFA ได้สำหรับทุกอินพุทและเอาท์พุท 8. NFA สามารถเข้าใจได้ว่าเป็นเครื่องเล็ก ๆ หลายเครื่องที่คำนวณร่วมกันและไม่มีความเป็นไปได้ในการสร้างเครื่อง NFA สำหรับทุกอินพุตและเอาต์พุต.