Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 4. Πεπερασμένα Αυτόματα 6 Φεβρουαρίου 2007 Δρ. Παπαδοπούλου Βίκη 1
Μοντέλα Υπολογισμού 1930 : Μηχανή Turing : αφαιρετική μηχανή (μοντελοποίηση ενός υπολογιστή) τι μπορεί και τι δεν μπορεί να επιλύσει μια υπολογιστική μηχανή 1940-1950 Πεπερασμένα Αυτόματα: αφαιρετική μηχανή για την αναγνώριση και παραγωγή γλωσσών Εφαρμογές Λογισμικό για την κατασκευή ψηφιακών κυκλωμάτων Ο λεκτικός αναλυτής ενός τυπικού μεταγλωττιστή Λογισμικό για τη σάρωση μεγάλης ποσότητας κειμένου 2
Πεπερασμένο Αυτόματο Αποτελείται από: Κεντρική μονάδα επεξεργασίας προκαθορισμένης χωρητικότητας Δέχεται είσοδο μια συμβολοσειρά μέσω μιας μαγνητικής ταινίας εισόδου Δεν έχει μνήμη Δεν παράγει έξοδο, παρά μόνο μια ένδειξη αν η είσοδος έγινε αποδεκτή 3
Ντετερμινιστικό Πεπερασμένο Αυτόματο Αρχική κατάσταση 0 Τελική κατάσταση 3 1 Πεπερασμένες καταστάσεις 2 Μια λέξη είναι αποδεκτή για το αυτόματο αν όταν ολοκληρωθεί η ανάγνωση της λέξης το αυτόματο βρίσκεται σε μια από τις τελικές καταστάσεις. Η γλώσσα που δέχεται το αυτόματο είναιτοσύνολοτωναποδεκτών λέξεων. 4
Ορισμός Ντετερμινιστικό Πεπερασμένο Αυτόματο περιλαμβάνει Q = πεπερασμένο σύνολο καταστάσεων Σ = αλφάβητο Συνάρτηση μετάβασης δ : Q Σ Q Όταν το αυτόματο είναι στην κατάσταση q Q και διαβάσει το σύμβολο a Σ μεταβιβάζεται στην κατάσταση q Q q o Q = αρχική κατάσταση F Q = τελικές καταστάσεις Π.χ. δ (q 0,b )=q 1 5
Επεκταμένη Συνάρτηση Μεταβίβασης Επεκταμένη Συνάρτηση μετάβασης : δ : Q Σ Q Παίρνει είσοδο ολόκληρη τη λέξη εισόδου και δίνει την κατάσταση στην οποία θα μεταβεί το αυτόματο όταν διαβάσει τη λέξη. Ορισμός (Επαγωγικά) Βάση: Έστω ότι w = 0 (w = ε) για κάθε κατάσταση q Q, δ (q, w) = q. Επαγωγική Υπόθεση: Για οποιοδήποτε ακέραιο k 0, έστω ότι έχουμε ορίσει την δ (q, w) για όλες τις καταστάσεις q και όλες τις λέξεις w Σ με μήκος w = k. Για οποιαδήποτε κατάσταση q και λέξη w = u σ όπου u Σ με μήκος w = k+1 και σ Σ, δ (q, w) = δ (δ (q, u), σ). 6
Παράδειγμα 1. Q={q 0, q 1 } Σ={a,b} S={q 0 } F={q 0 } (q 0, aabba) `M (q 0, abba) `M (q 0, bba) `M (q 1, ba) `M (q 0, a) `M (q 0, e) (q 0, aabba) `M* (q 0, e) q σ q 0 a q 0 q 0 b q 1 q 1 a q 1 q 1 b δ(q,σ) q 0 7
Συνολικές Καταστάσεις Συνολική Κατάσταση = (τρέχουσα κατάσταση, υπολέξη που δεν έχει διαβαστεί ακόμα). Π.χ. (q 0, aabba) `M : δυαδική σχέση μεταξύ δύο συνολικών καταστάσεων q 0, q 1, του Μ εάν και μόνο αν η μηχανή μπορεί να περάσει από την q 0 κατάσταση στην q 1 με μόνο μια κίνηση. (q, w) `M (q,w ) εάν και μόνο αν w=σ w, σ Σ και δ (q, σ) = q. Π.χ. (q 0, aabba) `M (q 0, abba) 8
Γλώσσες Αυτομάτων `M* : ανακλαστική, μεταβατική θήκη της `M (q, w) παράγει την (q,w ) μετά από ένα αριθμό βημάτων. Π.χ. (q 0, aabba) `* M (q 0, e) Ηλέξηw Σ * είναι δεκτή από το Μ αν και μόνο αν υπάρχει μια τελική κατάσταση q F, τέτοια ώστε (s, w) `* M (q, e). Π.χ. (q 0, aabba) `M* (q 0, e) Η γλώσσα που δέχεται το Μ, L(M), είναι το σύνολο όλων των λέξεων που δέχεται το Μ. 9
Γλώσσες Ντετερμινιστικών Πεπερασμένων Αυτομάτων Ορισμός: Έστω το ντετερμινιστικό πεπερασμένο αυτόματο Μ =hq, Σ, δ, q 0, Fi. Η γλώσσα του ντετερμινιστικού πεπερασμένου αυτομάτου M, είναι: L(M) = { w Σ δ (q 0, w) F}. Μία γλώσσα L είναι γλώσσα ντετερμινιστικού πεπερασμένου αυτομάτου αν υπάρχει ντετερμινιστικό πεπερασμένο αυτόματο M τέτοιο ώστε L = L(M). 10
Παράδειγμα 1. Q={q 0, q 1 } Σ={a,b} S={q 0 } F={q 0 } q σ q 0 a q 0 q 0 b q 1 q 1 a q 1 q 1 b δ(q,σ) q 0 (q 0, aabba) `M (q 0, abba) `M (q 0, bba) `M (q 1, ba) `M (q 0, a) `M (q 0, e) Διάγραμμα Καταστάσεων Ποιαείναιηγλώσσαπουαποδέχεταιτοαυτόματο? 11
Παραδείγματα 2. L= L={e} L={a,b}* 12
Παραδείγματα 3. L=άρτιο αριθμό a και άρτιο αριθμό b L=άρτιο αριθμό a και περιττό αριθμό b 13
Παραδείγματα 4. L(M)= {w {a,b}* : η w δεν περιέχει 3 συνεχόμενα b} Είναι στην (τελική) κατάσταση i (i=0,1,2) όταν έχει διαβάσει i συνεχόμενα b 3 συνεχόμενα b οδηγούν στην κατάσταση q 3 που δεν είναι τελική. Q={q 0, q 1, q 2, q 3 } Σ={a,b} S={q 0 } F={q 0,q 1, q 2 } q σ q 0 a q 0 q 0 b q 1 q 1 a q 0 q 1 b q 2 q 2 a q 0 q 2 b q 3 q 3 a q 3 q 3 b δ(q,σ) q 3 14
Παραδείγματα 5. L= {το σύνολο των λέξεων που δεν περιέχουν ούτε την λέξη aa ούτε την λέξη bb} q 1 κατάσταση μόλις διαβάσει την a Θα πρέπει να πάει σε μη τελική κατάσταση (q 3 ) αν διαβάζει a 2 η φορά q 2 κατάσταση b μόλις διαβάσει την b Θα πρέπει να πάει σε μη τελική κατάσταση (q 3 ) αν διαβάζει b 2 η φορά 15