Διαφορά μεταξύ NFA και DFA Διαφορά μεταξύ

Anonim

NFA vs DFA

Η θεωρία του υπολογισμού είναι ένας κλάδος της επιστήμης των υπολογιστών που ασχολείται με το πώς τα προβλήματα επιλύονται χρησιμοποιώντας αλγορίθμους. Έχει τρία υποκαταστήματα, δηλαδή? η θεωρία της υπολογιστικής πολυπλοκότητας, η θεωρία της υπολογιστικής ικανότητας και η αυτοματοποιημένη θεωρία.

Η θεωρία αυτομάτων ή αυτομάτων είναι η μελέτη αφηρημένων μαθηματικών μηχανών ή συστημάτων που μπορούν να χρησιμοποιηθούν για την επίλυση υπολογιστικών προβλημάτων. Ένα αυτόματο αποτελείται από καταστάσεις και μεταβάσεις και καθώς βλέπει ένα σύμβολο ή ένα γράμμα εισόδου, κάνει μια μετάβαση σε μια άλλη κατάσταση λαμβάνοντας την τρέχουσα κατάσταση και σύμβολο ως είσοδο.

Η θεωρία αυτόματων ή αυτόματων έχει διάφορες τάξεις που περιλαμβάνουν το Deterministic Finite Automata (DFA) και το Nondeterministic Finite Automata (NFA). Αυτές οι δύο κλάσεις είναι μεταβατικές λειτουργίες αυτομάτων ή αυτομάτων.

Κατά τη μετάβαση, το DFA δεν μπορεί να χρησιμοποιήσει n κενή συμβολοσειρά και μπορεί να γίνει κατανοητό ως ένα μηχάνημα. Εάν η συμβολοσειρά τελειώσει σε κατάσταση που δεν είναι αποδεκτή, το DFA θα την απορρίψει. Ένα μηχάνημα DFA μπορεί να κατασκευαστεί με κάθε είσοδο και έξοδο.

Το DFA έχει μόνο μια κατάσταση μετάβασης για κάθε σύμβολο του αλφάβητου και υπάρχει μόνο μια τελική κατάσταση για τη μετάβασή του, πράγμα που σημαίνει ότι για κάθε αναγνωρισμένο χαρακτήρα υπάρχει μία αντίστοιχη κατάσταση στο DFA. Είναι ευκολότερο να ελέγξετε την ιδιότητα μέλους στο DFA αλλά είναι πιο δύσκολο να το κατασκευάσετε. Το Backtracking επιτρέπεται στο DFA και απαιτεί περισσότερο χώρο από το NFA.

Το Backtracking δεν επιτρέπεται πάντα στο NFA. Ενώ είναι δυνατόν σε ορισμένες περιπτώσεις, σε άλλες δεν είναι. Είναι ευκολότερο να κατασκευαστεί το NFA και απαιτεί επίσης μικρότερο χώρο, αλλά δεν είναι δυνατή η κατασκευή μιας μηχανής NFA για κάθε είσοδο και έξοδο.

Εννοείται ότι υπάρχουν αρκετά μικροσκοπικά μηχανήματα που υπολογίζουν ταυτόχρονα και η ιδιότητα μέλους μπορεί να είναι πιο δύσκολο να ελεγχθεί. Χρησιμοποιεί τη μετάβαση του Empty String και υπάρχουν πολλές πιθανές επόμενες καταστάσεις για κάθε ζεύγος συμβόλων κατάστασης και εισόδου. Αρχίζει σε μια συγκεκριμένη κατάσταση και διαβάζει τα σύμβολα και το αυτόματο προσδιορίζει στη συνέχεια την επόμενη κατάσταση, η οποία εξαρτάται από την τρέχουσα είσοδο και άλλα συνακόλουθα συμβάντα. Στην κατάσταση αποδοχής του, η NFA δέχεται τη συμβολοσειρά και την απορρίπτει διαφορετικά.

Περίληψη:

1. Το "DFA" αντιπροσωπεύει το "Deterministic Finite Automata" ενώ το "NFA" αντιπροσωπεύει το "Nondeterministic Finite Automata. "

2. Και οι δύο είναι μεταβατικές λειτουργίες των αυτομάτων. Στο DFA, η επόμενη δυνατή κατάσταση είναι ξεκάθαρα ρυθμισμένη ενώ στο NFA κάθε ζεύγος συμβόλων κατάστασης και εισόδου μπορεί να έχει πολλές πιθανές επόμενες καταστάσεις.

3. Το NFA μπορεί να χρησιμοποιήσει τη μετάβαση σε κενές συμβολοσειρές, ενώ το DFA δεν μπορεί να χρησιμοποιήσει κενή μετάβαση στο string.

4. Το NFA είναι ευκολότερο να κατασκευαστεί ενώ είναι πιο δύσκολο να κατασκευαστεί το DFA.

5. Το Backtracking επιτρέπεται σε DFA ενώ σε NFA μπορεί ή όχι να επιτραπεί.

6. Το DFA απαιτεί περισσότερο χώρο ενώ το NFA απαιτεί μικρότερο χώρο.

7. Ενώ το DFA μπορεί να γίνει κατανοητό ως ένα μηχάνημα και μπορεί να κατασκευαστεί μια μηχανή DFA για κάθε είσοδο και έξοδο, 8. NFA μπορεί να γίνει κατανοητό ως αρκετά μικρά μηχανήματα που υπολογίζουν από κοινού και δεν υπάρχει δυνατότητα κατασκευής μηχανής NFA για κάθε είσοδο και έξοδο.