Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 4. Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα 9,19 Φεβρουαρίου 2007 Δρ. Παπαδοπούλου Βίκη 1
Μοντέλα Υπολογισμού Μη Ντετερμινιστικό Πεπερασμένα Αυτόματα: Διαφορά στην συνάρτηση μεταβίβασης: (κατάσταση, σύμβολο εισόδου) πολλές επόμενες καταστάσεις δ: Q Σ 2 Q Π.χ. (q0, a ) q 0 ή q 1 2
Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα Μη Ντετερμινιστικό Πεπερασμένο Αυτόματο περιλαμβάνει Q = πεπερασμένο σύνολο καταστάσεων Σ = αλφάβητο Συνάρτηση μετάβασης δ : Q Σ 2 Q Όταν το αυτόματο είναι στην κατάσταση q Q και διαβάσει το σύμβολο a Σ μεταβιβάζεται σε ένα υποσύνολο καταστάσεων του συνόλου Q q o Q = αρχική κατάσταση F Q = τελικές καταστάσεις Π.χ. δ (q 0, w ) = { (q 1,w ),(q 2, w ) }, w = σ w 3
Παράδειγμα 1. Q={q 0, q 1 } Σ={a,b} S={q 0 } F={q 0 } Η ab είναι δεκτή? Η ba είναι δεκτή? Η aba είναι δεκτή? H abb είναι δεκτή? q 0 a q 1 q 1 b q 2 q 1 b q 0 q 2 a L = (ab aba ) * q 0 q σ δ(q,σ) 4
Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα Η δ() δεν είναι συνάρτηση! Γιατί? Για κάποια ζευγάρια (κατάσταση, σύμβολο) μπορεί να μην υπάρχει επόμενη δυνατή κατάσταση. (κατάσταση1, σύμβολο1) { } : καμιά κατάσταση (δηλαδή όταν είναι στην κατάσταση1 καιδιαβάσειτοσύμβολο1 το αυτόματο τώρα δεν θα βρίσκεται σε καμιά κατάσταση. Μια λέξη είναι δεκτή αν υπάρχει τουλάχιστον ένα μονοπάτι στο γράφημα από την αρχική κατάσταση που καταλήγει σε μια τελική κατάσταση, το οποίο προκύπτει όταν διαβαστεί η λέξη. Μπορεί να υπάρχει ένα μονοπάτι για την λέξη που δεν οδηγεί σε τελική κατάσταση. 5
Επεκταμένη Συνάρτηση Μεταβίβασης Επεκταμένη Συνάρτηση μετάβασης : δ : Q Σ * 2 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)=u q δ (q, u) δ (q, σ). 6
Γλώσσες Μη Ντετερμινιστικών Πεπερασμένων Αυτομάτων Ορισμός: Έστω το μη ντετερμινιστικό πεπερασμένο αυτόματο Μ =hq, Σ, δ, q 0, Fi. Η γλώσσα του μη ντετερμινιστικού πεπερασμένου αυτομάτου M, είναι: L(M) = { w Σ (δ (q 0, w) F ) }. Μία γλώσσα L είναι γλώσσα μη ντετερμινιστικού πεπερασμένου αυτομάτου αν υπάρχει μη ντετερμινιστικό πεπερασμένο αυτόματο M τέτοιο ώστε L = L(M). 7
Παραδείγματα 2. L={το σύνολο των λέξεων που δεν περιέχουν ούτε το aa ούτε το bb σαν υπολέξεις} Ντετερμινιστικό Μη-Ντετερμινιστικό 0 1 1 8
ε- Μη Ντετερμινιστικό Πεπερασμένο Αυτόματο Από μια κατάσταση μπορεί να πάμε σε μια άλλη χωρίς να διαβαστεί νέο σύμβολο (με το κενό σύμβολο). Σκοπός: Μαντεύει μια αποδεκτή λέξη και μετά ελέγχει αν είναι σωστή. ε-μη Ντετερμινιστικό Πεπερασμένο Αυτόματο περιλαμβάνει Q = πεπερασμένο σύνολο καταστάσεων Σ = αλφάβητο Συνάρτηση μετάβασης δ : Q (e Σ ) 2 Q Όταν το αυτόματο είναι στην κατάσταση q Q και διαβάσει το σύμβολο a Σ μεταβιβάζεται σε ένα υποσύνολο καταστάσεων του συνόλου Q q o Q = αρχική κατάσταση F Q = τελικές καταστάσεις Π.χ. δ (q 0, w ) = { (q 1,w),(q 2, w ) }, w = σw 9
Παράδειγμα 3. Να κατασκευάσετε πεπερασμένο αυτόματο που να δέχεται τη γλώσσα L = { a} {b} {c} Μη-Ντετερμινιστικό ε-μη-ντετερμινιστικό 10
ε-θήκη() ε-θήκη(q): Q 2 Q : μιας κατάστασης q είναι το σύνολο των καταστάσεων στις οποίες μπορεί να φτάσει το αυτόματο ξεκινώντας από τη συγκεκριμένη κατάσταση και ακολουθώντας κενές μεταβάσεις. Ορισμός. ε-θήκη(): (Επαγωγικά) Βάση: για κάθε κατάσταση q Q, q ε-θήκη(q). (κάθε κατάσταση ανήκει στην ε-θήκη του εαυτού της) Επαγωγική Υπόθεση: Έστω κατάσταση p ε-θήκη(q). Επαγωγικό Βήμα: Για οποιαδήποτε κατάσταση r δ(p, e), r ε-θήκη(q). 11
Παράδειγμα 1 (συνέχεια) ε-θήκη (q 0 ) = {q 0, q 1, q 2 } ε-μη-ντετερμινιστικό 12
Επεκταμένη Συνάρτηση μετάβασης Επεκταμένη Συνάρτηση μετάβασης : δ : Q (e Σ * ) 2 Q Παίρνει είσοδο ολόκληρη τη λέξη εισόδου και δίνει την κατάσταση στην οποία θα μεταβεί το αυτόματο όταν διαβάσει τη λέξη. Ορισμός. Επεκταμένη Συνάρτηση μετάβασης : (Επαγωγικά) Βάση: για κάθε κατάσταση q Q, δ (q,e) = ε-θήκη(q). Επαγωγική Υπόθεση: Για οποιοδήποτε ακέραιο k 0, έστω ότι έχουμε ορίσει την δ (q, w)για όλες τις καταστάσεις q και όλες τις λέξεις w Σ με μήκος w = k. Επαγωγικό Βήμα: Για οποιαδήποτε κατάσταση q και λέξη w =u σ όπου u Σ με μήκος w = k=1 και σ Σ, 13
Παράδειγμα 1. (συνέχεια) δ(q 0, ab)=? ε-μη-ντετερμινιστικό δ (q 0, e) = ε- θήκη(q 0 )={q 0, q 1, q 2 } δ (q 0, a) 1. δ (q 0,a) δ (q 1,a) δ (q 2,a)= {q 0 } = {q 0 } 2. δ (q 0,a) = ε- θήκη(q 0 )={q 0, q 1, q 2 } δ (q 0, ab): 1. δ (q 0,b) δ (q 1,b) δ (q 2,b)= {q 1 } = {q 1 } 2. δ (q 0,ab) = ε- θήκη(q 1 )={q 1, q 2 } 14
Παράδειγμα L = (ab aba ) * Μη-Ντετερμινιστικό ε-μη Ντετερμινιστικό 0 1 1 2 2 15
Παράδειγμα 2. L={σύνολο λέξεων του αλφάβητου {a,b}* που περιέχουν την λέξη bb ήτηλέξηbab } Q={q 0, q 1, q 2, q 3, q 4 } Σ={a,b} S={q 0 } F={q 4 } b, δύο περιπτώσεις ακολουθούν : a: b: OK b: OK 16
Παραδείγμα. L={w: υπάρχει σύμβολο a i Σ το οποίο δεν εμφανίζεται στην w} Εστω i=3. Μαντεύει το σύμβολο που λείπει από την είσοδο και μεταβαίνει στην αντίστοιχη κατάσταση στην οποία ελέγχει αν πράγματι δεν εμφανίζεται το σύμβολο. 17
Μη-Ντετερμινιστικά Ντετερμινιστικά Αυτόματα Θεώρημα. Για κάθε μη-ντετερμινιστικό πεπερασμένο αυτόματο υπάρχει ένα ισοδύναμο ντετερμινιστικό πεπερασμένο αυτόματο. Απόδειξη (ιδέα) MΝΠΑ: M( Q, Σ, δ, q 0, F ) ΝΠΑ: M ( Q, Σ, δ, q 0, F ) Το ντετερμινιστικό Μ θα μιμείται κάθε στιγμή το σύνολο όλων των δυνατών καταστάσεων στις οποίες θα μπορούσε να βρισκόταν το Μ αν διάβαζε την είσοδο. Μη-ντετερμινιστικό: από μια κατάσταση όταν διαβάσει μια λέξη μπορεί να βρεθεί σε μια άλλη κατάσταση από ένα σύνολο καταστάσεων. Ντετερμινιστικό: Θεωρώ το σύνολο των καταστάσεων που μπορεί να βρεθεί ως μια κατάσταση. Π.χ. M: Αν δ (q 0, w ) = { q 1 q 2, q 3, } M : δ D (q 0, w )=Q 1 ={q 1, q 2, q 3 } Σύνολο καταστάσεων του M = 2 Q 18
Μη-Ντετερμινιστικά Ντετερμινιστικά Αυτόματα (συνέχεια) ΝΠΑ M : Καταστάσεις Q =2 Q Αρχική κατάσταση q 0 = ίδια με ΝΠΑ Τελικές καταστάσεις ={υποσύνολα του Q ( 2 Q ) που περιέχουν τουλάχιστον μια τελική κατάσταση του M} Συνάρτηση Μεταβίβασης: Για κάθε κατάσταση q D = { q 1, q 2, L, q k } Q } και σύμβολο σ Σ, ορίζουμε: η δ() είναι συνάρτηση. Γιατί? 19
Παράδειγμα ε-μη-ντετερμινιστικό δ(q 0, e) = ε- θήκη(q 0 )={q 0, q 1, q 2 } Q 0 = ε- θήκη(q 0 )={q 0, q 1, q 2 } δ D ({q 0, q 1, q 2 }, a) : δ (q 0,a) δ (q 1,a) δ (q 2,a)= {q 0 } δ D ({q 0, q 1, q 2 }, a) = ε- θήκη(q o ) = Q 0 = {q 0, q 1, q 2 } δ D ({q 0, q 1, q 2 }, b) : δ (q 0,b) δ (q 1,b) δ (q 2,b)={q 1 } δ D ({q 0, q 1, q 2 }, a) = ε- θήκη(q 1 ) = Q 1 = {q 1, q 2 } δ D ({q 1, q 2 }, b) : δ (q 1,b) δ (q 2,b) ={q 1 } δ D ({q 1, q 2 }, b) = ε- θήκη(q 1 ) = Q 1 = {q 1, q 2 } δ D ({q 1, q 2 }, a) : δ (q 1,a) δ (q 2,a) = δ D ({q 1, q 2 }, a) = ε- θήκη( ) = 20
Παράδειγμα L = { a} {b} {c} ε-μη-ντετερμινιστικό Q 0 = ε-θήκη(q 0 ) = {q 0, q 1, q 2 } Κατάσταση που πάει αν είναι στην Q 0 και διαβάσει a: Επαναλαμβάνω για όταν είναι στην q 0 και διαβάσει b ή c. Για κάθε νέο σύνολο που προκύπτει επαναλαμβάνω. Κάποιες καταστάσεις που προκύπτουν μπορεί να είναι το κενό σύνολο (νεκρή κατάσταση). 21
Παράδειγμα (συνέχεια) ε-μη-ντετερμινιστικό Ντετερμινιστικό 0 1 2 1 2 2 Οι μεταβιβάσεις στην νεκρή κατάσταση δεν έχουν σημασία (γιατί?) οπότε μπορεί να παραλείψουμε. 22
Παρατηρήσεις Ένα ΝΠΑ είναι και ΜΝΠΑ? L(NΠΑ) L(ΜNΠΑ) Για κάθε ένα ΜΝΠΑ υπάρχει ένα ΝΠΑ. L(MNΠΑ) L(NΠΑ) Το σύνολο των γλωσσών ΝΠΑ είναι ίσο με το σύνολο των γλωσσών των ΜΝΠΑ! 23