ההבדל בין NFA ו- DFA הפרש בין

Anonim

NFA לעומת DFA

תורת החישוב היא ענף של מדעי המחשב העוסק בפתרון בעיות באמצעות אלגוריתמים. יש לו שלושה סניפים, כלומר; תיאוריית המורכבות החישובית, תיאוריית המחשוב ותיאוריית האוטומטים.

תורת האוטומטים או האוטומטים היא לימוד של מכונות או מערכות מתמטיות מופשטות שניתן להשתמש בהן לפתרון בעיות חישוביות. אוטומט מורכב ממדינות ומעברים, וכפי שהוא רואה סמל או אות קלט, הוא עושה מעבר למצב אחר, לוקח את המצב ואת הסמל הנוכחי כקלט.

- <->

האוטומטון או automata התיאוריה יש כמה שיעורים הכוללים את סופי סופי Detutinistic (DFA) ו Nondeterministic סופי אוטומטים (NFA). אלה שני שיעורים הם פונקציות המעבר של automata או אוטומט.

במעבר, DFA אינו יכול להשתמש במחרוזת ריקה, וניתן להבין אותו כמכונה אחת. אם המחרוזת מסתיימת במצב שאינו מצב מקובל, DFA ידחה אותה. מכונת DFA ניתן לבנות עם כל קלט ופלט.

ל- DFA יש רק מעבר מצב אחד עבור כל סמל של האלפבית, ויש רק מצב סופי אחד למעבר שלו, ופירושו של כל תו שנקרא, קיימת מדינה אחת תואמת ב- DFA. קל יותר לבדוק את החברות ב- DFA, אך קשה יותר לבנות אותה. האפשרות 'מעבר לאחור' מותרת ב- DFA, והיא דורשת יותר מקום מ- NFA.

חזרה לא תמיד מותרת ב- NFA. אמנם זה אפשרי במקרים מסוימים, באחרים זה לא. זה קל יותר לבנות NFA, וזה גם דורש פחות מקום, אבל זה לא ניתן לבנות מכונת NFA עבור כל קלט ופלט.

זה מובן כמו מכונות זעירות כמה לחשב בו זמנית, חברות יכול להיות קשה יותר לבדוק. הוא משתמש במעבר מחרוזת ריקה, ויש מצבים רבים אפשריים הבאים עבור כל זוג של המדינה ואת סמל הקלט. זה מתחיל במצב מסוים וקורא את הסמלים, ואז אוטומט קובע את המדינה הבאה אשר תלוי קלט הנוכחי ואירועים אחרים. במצב קבלתה, NFA מקבלת את המחרוזת ודוחה אותה אחרת.

סיכום:

1. "DFA" מייצג "Deterministic Finite Automate" בעוד "NFA" מייצג "Nondeterministic סופי אוטומטים. "

2. שניהם פונקציות המעבר של automata. ב DFA המדינה הבאה האפשרית מוגדר בבירור בעוד NFA כל זוג של המדינה ואת סמל הקלט יכול להיות מצבים רבים הבאים האפשריים.

3. NFA יכול להשתמש במעבר מחרוזת ריק בעוד ש- DFA אינו יכול להשתמש במעבר מחרוזת ריק.

4. NFA קל יותר לבנות בעוד שקשה יותר לבנות DFA.

5. האפשרות 'מעבר לאחור' מותרת ב- DFA, בעוד שב- NFA מותר או אסור.

6. DFA דורש שטח נוסף בעוד ש- NFA דורש פחות מקום.

7. בעוד שניתן להבין את DFA כמכונה אחת ומכשיר DFA יכול להיבנות עבור כל קלט ופלט, 8. NFA יכול להיתפס כמספר מחשבים קטנים המחושבים יחד, ואין אפשרות לבנות מכונה NFA עבור כל קלט ופלט.