Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Δύο Π.Α. Μ 1 και Μ 2 είναι ισοδύναμα ανν L(M 1 ) = L(M 2 ). Έστω Μ = (Q, Σ, q 0, Δ, F) μη Αιτ. Π.Α. Για κάθε κατάσταση q Q, ορίζουμε ως Ε(q) Q το σύνολο των καταστάσεων του Μ στις οποίες μπορούμε να φτάσουμε από την q χωρίς να διαβαστεί κανένα σύμβολο από την είσοδο: Ε(q) = { p Q: (q,e) * (p,e) }. Δηλ., το E(q) περιέχει την q και όλες τις καταστάσεις στις οποίες μπορούμε να φθάσουμε από την q ακολουθώντας μεταβάσεις με επιγραφή e. 1
Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Π.χ. E(q 0 ) = { q 0, q 1, q 2, q 3 } E(q 1 ) = { q 1, q 2, q 3 } E(q 2 ) = { q 2 } E(q 3 ) = { q 3 } E(q 4 ) = { q 4, q 3 } 2
Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Θεώρημα Έστω το μη Αιτ. Π.Α. Μ = (Q, Σ, s, Δ, F). Το Αιτιοκρ.Π.Α. Μ = (Q, Σ, s, δ, F ) είναι ισοδύναμο με το Μ όπου Q = 2 Q Σ = Σ s = E(s) F = { S Q S F } S Q και α Σ, δ(s, α) = p S { Ε(q) (p, α, q) Δ } Εκθετικό πλήθος καταστάσεων!!! Απόδειξη με επαγωγή στο μήκος συμβολοσειράς εισόδου 3
Π.Αυτόματα και Κανονικές Εκφράσεις Θεώρημα Η κλάση των γλωσσών που αναγνωρίζουν τα Π.Α. είναι κλειστή ως προς: (α) ένωση (β) παράθεση (συναρμογή) (γ) Kleene star (σώρευση) (δ) συμπλήρωση (ε) τομή Για την απόδειξη, έστω και 4
Π.Αυτόματα και Κανονικές Εκφράσεις Απόδειξη (α) ένωση L(M) = L(M 1 ) L(M 2 ) (β) παράθεση L(M) = L(M 1 ) L(M 2 ) 5
Π.Αυτόματα και Κανονικές Εκφράσεις Απόδειξη (γ) Kleene star L(M) = L(M 1 )* (δ) συμπλήρωση Εάν Μ = (Q, Σ, s, δ, F) είναι Αιτιοκρατικό Π.Α. τότε για το Αιτ.Π.Α. Μ = (Q, Σ, s, δ, Q - F) ισχύει ότι L(M ) = Σ* - L(M). (ε) τομή Ισχύει καθώς Α Β = Α Β. 6
Π.Αυτόματα και Κανονικές Εκφράσεις Το προηγούμενο θεώρημα και το ότι υπάρχουν Π.Α. για τη γλώσσα και τη γλώσσα { α } για κάθε α Σ, Θεώρημα Kleene Κάθε κανονική γλώσσα αναγνωρίζεται από κάποιο Π.Α Παράδειγμα: Π.Α. για (01)* 1* Επίσης, θα δείξουμε και το αντίστροφο, οπότε ισχύει ότι: Μια γλώσσα είναι κανονική εάν και μόνον εάν αναγνωρίζεται από κάποιο πεπερασμένο αυτόματο. 7
Ισοδυναμία K.E. και Π.Α. Θεώρημα (Θεώρημα Kleene) Έστω ΠΑ Μ = (Q, Σ, p 1, δ, F) με Q={ p 1,, p n }, F={ p f 1,, p fm }. Τότε υπάρχει κανονική έκφραση R που περιγράφει την L(Μ). Απόδειξη Επαγωγή στo k = 0,1,, Q =n. Βάση (k=0): 8
Ισοδυναμία K.E. και Π.Α. Θεώρημα (Θεώρημα Kleene) Έστω ΠΑ Μ = (Q, Σ, p 1, δ, F) με Q={ p 1,, p n }, F={ p f 1,, p fm }. Τότε υπάρχει κανονική έκφραση R που περιγράφει την L(Μ). Απόδειξη Επαγωγή στo k = 0,1,, Q =n. Βάση (k=0): Επαγ. Βήμα: Κ.Έκφραση 9
Ισοδυναμία K.E. και Π.Α. Παράδειγμα (r *)* = r* (r *) r* = r* (r *) = r* r 1 r 1 (r 2 )* = r 1 (r 2 )* R = R 3 (1,3) = R 2 (1,3) R 2 (1,3) (R 2 (3,3))* R 2 (3,3) = 1*0(11*0)*0 1*0(11*0)*0 ((11*0)*0 e)* ((11*0)*0 e) = 1*0(11*0)*0 ((11*0)*0)* 10
Ισοδυναμία K.E. και Π.Α. Μια Κ.Ε. για τη γλώσσα ενός Π.Α. Μ μπορεί επίσης να υπολογιστεί αρχικά μετατρέποντας το Μ ώστε να έχει ακριβώς μία τελική κατάσταση και να μην υπάρχουν μεταβάσεις προς την αρχική κατάσταση ή από την τελική κατάσταση και κατόπιν κατασκευάζοντας γενικευμένο Π.Α. χρησιμοποιώντας Παράδειγμα 11
Π.Α. για την Τομή των Γλωσσών Π.Α. Έστω Π. Α. Μ 1 = (P, Σ, p 0, δ 1, F 1 ) και Μ 2 = (Q, Σ, q 0, δ 2, F 2 ). Το αυτόματο Μ = (P Q, Σ, [p 0,q 0 ], δ, F 1 F 2 ) όπου δ : (P Q) Σ (P Q) με δ([p,q], a) = [δ 1 (p, a), δ 2 (q, a)] αναγνωρίζει την τομή L(Μ 1 ) L(Μ 2 ). Παράδειγμα M 12
Αποδεικνύοντας την Κανονικότητα Γλώσσας Για να δείξουμε ότι μια γλώσσα είναι κανονική, χρησιμοποιούμε: κανονικές εκφράσεις πεπερασμένα αυτόματα (αιτιοκρατικά ή μη) τις ιδιότητες κλειστότητας των κανονικών γλωσσών. Παράδειγμα Δείξτε ότι η γλώσσα των μη αρνητικών ακεραίων στο δεκαδικό σύστημα (χωρίς άχρηστα μηδενικά στην αρχή) που διαιρούνται ακριβώς με το 2 ή το 3 είναι μια κανονική γλώσσα. L 1 : ακέραιοι χωρίς άχρηστα 0. Κ.Ε.= 0 (1 2 9) (0 1 9)* L 2 : θετικά πολλαπλάσια του 2. Κ.Ε.= (0 1 9)* (0 2 4 6 8) L 3 : θετικά πολλαπλάσια του 3. αναγνωρίζεται από Π.Α. Η ζητούμενη γλώσσα είναι: (L 1 L 2 ) (L 1 L 3 ) κανονική 13
Μη Κανονικές Γλώσσες Για να δείξουμε ότι μια γλώσσα δεν είναι κανονική, χρησιμοποιούμε το Λήμμα Άντλησης. Λήμμα Άντλησης Για κάθε άπειρη κανονική γλώσσα L, υπάρχει ακέραιος n 1 τέτοιος ώστε για κάθε συμβολοσειρά w L με w n υπάρχουν συμβολοσειρές x, y, z: w = x y z, x y n, y e και για κάθε ακέραιο i 0, x y i z L. 14
Μη Κανονικές Γλώσσες Απόδειξη του Λήμματος Άντλησης Θεωρούμε Αιτ.Π.Α. Μ = (Q, Σ, q 0, δ, F) που αναγνωρίζει την L, και έστω n = Q = το πλήθος καταστάσεων του Μ. Έστω w = a 1 a 2 a k Σ* όπου k n. a 1 a 2 a r a r+1 a s a s+1 a n a k Μ: q 0 q f F q y q x q z Τότε όμως i 0, a 1 a 2 a r (a r+1 a s ) i a s+1 a n a k L. 15
Χρησιμοποιώντας το Λήμμα Άντλησης Μέθοδος απόδειξης ότι μια άπειρη γλώσσα L δεν είναι κανονική Εις άτοπον απαγωγή Υποθέτουμε ότι η L είναι κανονική και έστω n η σταθερά του Λ.Α. για κανονικές γλώσσες για την L. Επιλέγουμε συμβολοσειρά w L με w n. Για κάθε χωρισμό της w σε w = x y z με x y n, y e βρίσκουμε i 0 τ.ώ. x y i z L. Άτοπο η L δεν είναι κανονική. Σημείωση: i 1 16
Χρησιμοποιώντας το Λήμμα Άντλησης Παράδειγμα Δείξτε ότι η L = { 0 k 1 k k 0 } δεν είναι κανονική. Εις άτοπον απαγωγή. Υποθέτουμε ότι η L είναι κανονική και έστω n η σταθερά του Λ.Α. για κανονικές γλώσσες για την L. Επιλέγουμε συμβολοσειρά w = 0 n 1 n L και w n. Κάθε χωρισμός της w σε w = x y z με x y n, y e περιγράφεται από: x = 0 p, y = 0 q, z = 0 n-p-q 1 n (p 0, q 1) Τότε x y i z = 0 p ( 0 q ) i 0 n-p-q 1 n = 0 n+(i-1)q 1 n Για i = 2, x y 2 z = 0 n+(2-1)q 1 n = 0 n+q 1 n και επειδή n+q > n, x y 2 z = 0 n+q 1 n L. Άτοπο η L δεν είναι κανονική. 17
Χρησιμοποιώντας το Λήμμα Άντλησης Παρατήρηση στο παράδειγμα για την L = {0 k 1 k k 0 }. Εάν επιλέξουμε w = 0 s 1 s L για s = n/2 οπότε w n, τότε, για να καλύψουμε κάθε χωρισμό της w σε w = x y z όπου x y n, y e, χρειάζεται να διακρίνουμε 3 περιπτώσεις: x = 0 p, y = 0 q, z = 0 s-p-q 1 s (p 0, q 1) Τότε για i = 0, x y 0 z = x z = 0 p 0 s-p-q 1 s = 0 s-q 1 s L. x = 0 s-p, y = 0 p 1 q, z = 1 s-q (p 1, q 1) Τότε για i = 2, x y 2 z = 0 s-p 0 p 1 q 0 p 1 q 1 s-q = 0 s 1 q 0 p 1 s L. x = 0 s 1 p, y = 1 q, z = 1 s-p-q (p 0, q 1) Τότε για i = 2, x y 2 z = 0 s 1 p 1 q 1 q 1 s-p-q = 0 s 1 s+q L. Άτοπο η L δεν είναι κανονική. 18
Χρησιμοποιώντας το Λήμμα Άντλησης Παρατήρηση Για κάθε άπειρη κανονική γλώσσα L, το Λήμμα Άντλησης συνεπάγεται ότι υπάρχουν συμβολοσειρές w i L (i 0) τέτοιες ώστε w i i = λ + i μ για ακέραιους λ, μ. (τα μήκη αριθμητική πρόοδος) Με βάση αυτήν την παρατήρηση, μπορούμε να δείξουμε ότι η L = { a k k = j 2 για ακέραιο j } = { e, a, a 4, a 9, a 16, a 25, a 36, } δεν είναι κανονική. Υποθέτουμε ότι η L είναι κανονική. Επιλέγουμε w = a n2 όπου n η σταθερά του Λ.Α. για την L. Τότε, y = a p (όπου 1 p n) και για i=2, x y 2 z = a n2 +p. Όμως, n 2 < n 2 + 1 n 2 + p n 2 + n < n 2 + 2n + 1 = (n+1) 2 x y 2 z = a n2 +p L. Άτοπο η L δεν είναι κανονική. 19
Χρησιμοποιώντας το Λήμμα Άντλησης Γλώσσες που δεν είναι κανονικές Γλώσσες με συμβολοσειρές τουλάχιστον 2 μέρη των οποίων συσχετίζονται ως προς το μήκος ή τα σύμβολα Π.χ., { 0 k 1 k k 0 }, { w w w {0,1}* }, { w w R w {0,1}* } { w {0,1}* η w έχει ίσο πλήθος από 0 και 1 } Γλώσσες στις οποίες η διαφορά μηκών διαδοχικών συμβολοσειρών (σε μια διάταξη κατά αύξον μήκος) συνεχώς αυξάνει Π.χ., { a k k = j 2 για ακέραιο j }, { babaab ba k b k 1 } Άλλες γλώσσες Π.χ., { a p p πρώτος αριθμός } Προσοχή: η { w w w {0}* } είναι κανονική. τα Π.Α. δεν μετρούν 20
Χρησιμοποιώντας το Λήμμα Άντλησης Το Λήμμα Άντλησης δεν είναι αρκετά ισχυρό, καθώς δεν μας επιτρέπει αν δείξουμε ότι κάθε μη κανονική γλώσσα είναι μη κανονική. Το Θεώρημα Myhill-Nerode (1958) βασίζεται στο ότι για κάθε κανονική γλώσσα L, υπάρχει ένα πεπερασμένο σύνολο διακρινόμενων ανά δύο συμβολοσειρών ως προς την L. Μας επιτρέπει να δείξουμε ότι μια γλώσσα είναι κανονική ή όχι. Δύο συμβολοσειρές x και y διακρίνονται ως προς γλώσσα L εάν υπάρχει συμβολοσειρά w τέτοια ώστε ακριβώς μία από τις xw, yw ανήκει στην L. 21
Αλγόριθμοι και Πεπερασμένα Αυτόματα Αλγόριθμοι Υπάρχει αλγόριθμος (εκθετικού χρόνου) ο οποίος, δοθέντος ενός μη Αιτ. Π.Α., κατασκευάζει ισοδύναμο Αιτιοκρατικό Π.Α. Υπάρχει αλγόριθμος (πολυωνυμικού χρόνου) ο οποίος, για δοθείσα Κανονική Έκφραση r, κατασκευάζει μη Αιτ. Π.Α. που αναγνωρίζει τη γλώσσα που περιγράφει η r. Υπάρχει αλγόριθμος (πολυωνυμικού χρόνου) ο οποίος, δοθέντος ενός Π.Α. M, κατασκευάζει Κανονική Έκφραση για την L(M). Υπάρχει αλγόριθμος (πολυωνυμικού χρόνου), ο οποίος δοθέντος ενός Αιτ. Π.Α., κατασκευάζει ισοδύναμο Αιτ. Π.Α. με το ελάχιστο πλήθος καταστάσεων. [Moore (1956), Hopcroft (1971)] 22
Αλγόριθμοι και Πεπερασμένα Αυτόματα Θεώρημα (βασίζεται στο Λ.Α. για κανονικές γλώσσες) Για Π.Α. Μ με n καταστάσεις, η γλώσσα L(Μ): δεν είναι κενή αν και μόνο αν υπάρχει συμβολοσειρά w L με μήκος w < n, είναι άπειρη αν και μόνο αν υπάρχει συμβολοσειρά w L με μήκος n w 2n. Πρακτικός Αλγόριθμος Η γλώσσα L(Μ) δεν είναι κενή αν και μόνο αν υπάρχει κατευθυνόμενη διαδρομή στο διάγραμμα μεταβάσεων του Μ από την αρχική κατάσταση σε κάποια τελική κατάσταση. Η γλώσσα L(Μ) είναι άπειρη αν και μόνο αν. 23
Αλγόριθμοι και Πεπερασμένα Αυτόματα Αλγόριθμοι (συνέχεια) Η γλώσσα L(Μ) είναι άπειρη αν και μόνο αν υπάρχει κατευθυνόμενος κύκλος με τουλάχιστον μία επιγραφή e σε κάποια διαδρομή στο διάγραμμα μεταβάσεων του Μ από την αρχική κατάσταση σε κάποια τελική κατάσταση. Υπάρχει αλγόριθμος (πολυωνυμικού χρόνου) ο οποίος, ελέγχει εάν δύο Αιτιοκρατικά Π.Α. είναι ισοδύναμα. Υπάρχει αλγόριθμος (εκθετικού χρόνου) ο οποίος, ελέγχει εάν δύο μη Αιτιοκρατικά Π.Α. είναι ισοδύναμα. Υπάρχει αλγόριθμος ο οποίος, για Π.Α. Μ και συμβολοσειρά w, ελέγχει εάν w L(M). Αρκεί (L(Μ 1 ) L(Μ 2 )) (L(Μ 2 ) L(Μ 1 )) =. 24
Επεκτάσεις Πεπερασμένων Αυτομάτων Πεπερασμένα Αυτόματα με Έξοδο Μηχανές Mealy (1955) έξοδος σε κάθε μετάβαση Μηχανές Moore (1956) έξοδος σε κάθε κατάσταση Δικατευθυνόμενα (two-way) Πεπερασμένα Αυτόματα Η κεφαλή ανάγνωσης κινείται και προς τα αριστερά. Ισοδύναμα προς το βασικό μοντέλο. 25