Θα δώσουμε κατ' αρχήν ένα αναδρομικό ορισμό για το τι είναι μια κανονική έκφραση (regular expression) και το ποια γλώσσα παριστάνει.
Τα παρακάτω είναι παραδείγματα κανονικών εκφράσεων και των γλωσσών τους.
Κανονική έκφραση | Αντίστοιχη γλώσσα |
Όλες οι λέξεις πάνω από το | |
Όλες οι λέξεις πάνω από το που έχουν δύο διαδοχικά μηδενικά | |
Ότι αρχίζει με 1 και δεν έχει διαδοχικά 0 | |
Ότι δεν έχει διαδοχικά 0 | |
Λέξεις όπου τα 0 έρχονται πριν τα 1 κι αυτά πριν τα 2. |
Παρατηρείστε ότι δεν ξεκαθαρίζουμε τι είδους αυτόματο μια και είναι όλα ισοδύναμα.
Απόδειξη. Θα δείξουμε ότι (α) Κάθε κανονική γλώσσα αναγνωρίζεται από κάποιο -NFA, και (β) Η γλώσσα που αναγνωρίζει κάθε DFA είναι κανονική.
(α) Χρησιμοποιούμε επαγωγή ως προς το μήκος της κανονικής έκφρασης που παράγει τη γλώσσα. Αν πρόκειται για μια από τις εκφράσεις , ή , με , πολύ έύκολα φτιάχνουμε αυτόματα που τις αναγνωρίζουν όως φαίνεται στο παρακάτω Σχήμα 14.
Αν τώρα έχουμε μια έφραση του τύπου , η , τότε τα μήκη των και είναι αυτστηρά μικρότερα του , άρα μπορούμε να υποθέσουμε επαγωγικά ότι έχουμε κάποια αυτόματα και που αναγνωρίζουν τις γλώσσες και . Χρησιμοποιούμε τα και σα μαύρα κουτιά και μας ενδιαφέρει μόνο να ``βλέπουμε'' απ' έξω τις αρχικές και τελικές τους καταστάσεις.
Στο Σχήμα 15 βλέπουμε στα (a) και (b) τα αυτόματα και που αντιστοιχούν στις εκφράσεις και . Στα (c), (d) και (e) βλέπουμε πως αυτά συνδυάζονται ώστε να φτιάξουν αυτόματα για τις γλώσσες , και .
Στο (c) ορίζουμε μια νέα αρχική κορυφή και την ενώνουμε με -ακμές με τις δύο αρχικές κορυφές των και . Οι τελικές καταστάσεις παραμένουν οι ίδιες.
Στο (d) αρχική κορυφή είναι αυτή του του οποίου οι τελικές καταστάσεις συνδέονται με -ακμές με την αρχική του . Τελικές καταστάσεις του συμπλέγματος είναι αυτές του .
Στο (e) οι τελικές καταστάσεις του συνδέονται με -ακμές με την αρχική κατάσταση του . Αρχικές και τελικές καταστάσεις παραμένουν οι ίδιες.
(β) Έστω DFA , όπου . Ορίζουμε για , , τις γλώσσες να είναι εκείνες οι λέξεις του που είναι τέτοιες ώστε αν ξεκινήσουμε από την κορυφή και τις ακολουθήσουμε τότε φτάνουμε στην κορυφή χωρίς να χρησιμοποιήσουμε κορυφή με .
Είναι φανερό ότι
Θα δείξουμε με επαγωγή ως προς το ότι οι γλώσσες είναι όλες κανονικές. Άρα κανονική είναι και η αφού με βάση την (4) είναι πεπερασμένη ένωση από κανονικές γλώσσες, και η ένωση δύο κανονικών γλωσσών είναι εξ ορισμού κανονική.
Για τώρα, παρατηρούμε ότι η απαίτηση, στον ορισμό της όσον αφορά το ποιες κορυφές δεν πρέπει να χρησιμοποιηθούν είναι ιδιαίτερα αυστηρή, αφού η συνθήκη ισχύει για κάθε κορυφή . Άρα έχουμε
Όσον αφορά το επαγωγικό βήμα, αν υποθέσουμε ότι οι είνάι όλες κανονικές τότε το ίδιο συνάγουμε και για τις αφού παρατηρήσουμε ότι ισχύει η αναδρομική σχέση
Είναι φανερό ότι η γλώσσα είναι υπερσύνολο της , αφού ο περιορισμός , στον ορισμό της , γίνεται ασθενέστερος (ισχύει πιο συχνά) όσο μεγαλώνει το . Ποιες είναι όμως εκείνες οι λέξεις που ανήκουν στο σύνολο αλλά όχι στο , οι λέξεις με άλλα λόγια της (συνολοθεωρητικής) διαφοράς ; Είναι ακριβώς εκείνες οι λέξεις που οδηγούν από την κατάσταση στην , χωρίς να ``πατούν'' σε κορυφή , , αλλά που πατούν τουλάχιστον μια φορά στην κορυφή όως φαίνεται στο Σχήμα 16.
Μια τέτοια λέξη αντιστοιχεί σε ένα μονοπάτι πάνω στο DFA που σίγουρα ``πατάει'' πάνω στην κορυφή , ενδεχομένως και πάνω από μία φορά (στο Σχήμα 16 πατάει δύο φορές). Αν ονομάσουμε μια τέτοια λέξη, και ονομάσουμε το πρόθεμα της που αντιστοιχεί στο μονοπάτι από το στο , που δεν πατάει στην , και το επίθεμα της γαι το μονοπάτι που δεν πατάει στην , τότε η γράφεται