Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Πώς να γίνει διάκριση μεταξύ DFA & NDFA

Αιτιοκρατικές και μη ντετερμινιστικού πεπερασμένα αυτόματα είναι δύο ειδών εννοιολογική «μηχανές» σχεδιάστηκε για να ελέγξει κατά πόσον μια δεδομένη σειρά συμβόλων υπακούει σε ορισμένους κανόνες - αν είναι αποδεκτό ως ένα μήνυμα σε κάποια γλώσσα ή κώδικα . Η αυτόματα διαβάζει ένα ενιαίο σύμβολο σε έναν χρόνο , και υπάρχει πάντα σε ένα συγκεκριμένο " κράτος". Κάθε κράτος ένα αυτόματα μπορεί να έχει ένα σύνολο κανόνων για την αντίδραση στο επόμενο σύμβολο για να διαβάσετε - μπορεί να αλλάξει σε μια άλλη συγκεκριμένη κατάσταση , ή να παραμείνει το ίδιο . Εάν , μετά από μια ολόκληρη σειρά έχει διαβάσει , το αυτόματα έχει εισέλθει σε ένα από ένα σύνολο αποδεκτών " τελικές καταστάσεις », η σειρά είναι γραμματικά αποδεκτή μέσα στη γλώσσα του αυτόματα δοκιμάζει για . Οδηγίες
Η 1

Επανεξέταση των κανόνων του αυτόματα του . Αυτά περιλαμβάνουν : το σύνολο των πιθανών καταστάσεων του αυτόματα , το σύνολο των τελικών καταστάσεων και τις επιπτώσεις της σε κάθε πιθανή σύμβολο σε κάθε κράτος 2

Ελέγξτε για να δείτε εάν κάποιο από τα κράτη της αυτομάτων έχουν πολλαπλές πιθανές αντιδράσεις σε . ένα συγκεκριμένο σύμβολο . Εάν οποιοδήποτε να κάνει , το αυτόματα είναι μη - ντετερμινιστική - ένα NDFA . Για παράδειγμα , αν η αρχική κατάσταση ενός αυτόματα μπορεί να αντιδράσει με το σύμβολο " A ", είτε με τη μετάβαση σε μια δεύτερη κατάσταση ή παραμένει η ίδια , είναι μια NDFA . Μια NDFA επιστρέφει ένα θετικό αποτέλεσμα , αν υπάρχει κάποιος τρόπος για να επιτευχθεί μια τελική κατάσταση , χρησιμοποιώντας μια συγκεκριμένη σειρά .
Εικόνων 3

Λάβετε υπόψη ότι υπάρχει ένα DFA για κάθε NDFA . Επειδή μια NDFA επιστρέφουν ένα θετικό αποτέλεσμα για μια συγκεκριμένη σειρά πρέπει να έχει τουλάχιστον μία επιτυχημένη πορεία μέσα από αυτό για την εν λόγω σειρά , πρέπει κατ 'ανάγκη να υπάρχει ένα αντίστοιχο DFA που θα δεχθεί αυτό το αλφαριθμητικό , που περιέχει μόνο τους κανόνες για τη μονή διαδρομή που χρησιμοποιήθηκε . Εδώ είναι ένα πολύ απλό παράδειγμα : Ας υποθέσουμε ότι έχετε ένα NDFA με μια τελική κατάσταση που ονομάζεται S1 , των οποίων η αρχική κατάσταση S0 ανταποκρίνεται στο σύμβολο «Α» είτε με την αλλαγή στο S1 ή παραμένουν στην S0 . Αυτή η μηχανή θα δεχόταν μια σειρά αποτελείται απλώς από «Α », επειδή υπάρχει μια πιθανή πορεία προς S1 ? Και υπάρχει μια αντίστοιχη DFA στην οποία " A " αλλάζει πάντα S1 στο S0 , την παράδοση με το αχρησιμοποίητο μονοπάτι
Η .
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα