Θα δώσουμε κατ' αρχήν ένα αναδρομικό ορισμό για το τι είναι μια κανονική έκφραση (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 πατάει
δύο φορές). Αν ονομάσουμε
μια τέτοια λέξη, και ονομάσουμε
το πρόθεμα της
που αντιστοιχεί στο μονοπάτι από το
στο
, που δεν πατάει στην
,
και
το επίθεμα της
γαι το μονοπάτι
που δεν πατάει στην
,
τότε η
γράφεται