ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΚΑΙ ΥΠΕΡΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΑΥΤΟΜΑΤΩΝ ΜΕ ΒΑΡΗ ΚΑΙ ΧΩΡΙΣ ΒΑΡΗ ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΛΕΞΑΝΔΡΑ Π. ΚΟΚΚΑΛΕΝΙΟΥ Επιβλέπων:Γεώργιος Ραχώνης Αναπλ. Καθηγητής Α.Π.Θ. Θεσσαλονίκη, Νοέμβριος 2016
ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΚΑΙ ΥΠΕΡΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΑΥΤΟΜΑΤΩΝ ΜΕ ΒΑΡΗ ΚΑΙ ΧΩΡΙΣ ΒΑΡΗ ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΑΛΕΞΑΝΔΡΑ Π. ΚΟΚΚΑΛΕΝΙΟΥ Επιβλέπων:Γεώργιος Ραχώνης Αναπλ. Καθηγητής Α.Π.Θ. Εγκρίθηκε από την τριμελή επιτροπή την.......................................... Α. Πάπιστας Δ. Πουλάκης Γ. Ραχώνης Καθηγητής Α.Π.Θ. Καθηγητής Α.Π.Θ. Αναπλ. Καθηγητής Α.Π.Θ. Θεσσαλονίκη, Νοέμβριος 2016
.................. Αλεξάνδρα Π. Κοκκαλένιου Πτυχιούχος Μαθηματικός Α.Π.Θ. Copyright c Αλεξάνδρα Π. Κοκκαλένιου, 2016 Με επιφύλαξη παντός δικαιώματος. All rights reserved. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς τον συγγραφέα. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν τον συγγραφέα και δεν πρέπει να ερμηνευτεί ότι εκφράζουν τις επίσημες θέσεις του Α.Π.Θ.
Στους γονείς μου και τον αδερφό μου
ΠΕΡΙΛΗΨΗ Παρουσιάζουμε τον αλγόριθμο ελαχιστοποίησης ενός DFA (Deterministic Finite Automaton). Το νέο αυτόματο είναι μοναδικό και ισοδύναμο με το αρχικό. Στη συνέχεια παρουσιάζουμε τον αλγόριθμο υπερελαχιστοποίησης ενός DFA. Το νέο αυτόματο είναι σχεδόν ισοδύναμο με το αρχικό και διαφέρει στην αναγνώριση πεπερασμένου αριθμού λέξεων. Το υπερελαχιστοποιμένο αυτόματο δεν είναι απαραίτητα μοναδικό. Τέλος γενικεύουμε την υπερελαχιστοποίηση στα αυτόματα με βάρη. Παρουσιάζουμε τον αλγόριθμο υπερελαχιστοποίησης ενός ήδη ελαχιστοποιημένου WDFA (Weighted Deterministic Finite Automaton). ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ DFA, WDFA, ελαχιστοποίηση, υπερελαχιστοποίηση, ισοδύναμες καταστάσεις, σχεδόν ισοδύναμες καταστάσεις. 3
ABSTRACT We present the minimization algorithm of a DFA(Deterministic Finite Automaton). The new automaton is unique and equivalent to the original. Then we present the hyperminimization algorithm of a DFA. The new automaton is almost equivalent to the original and differs in recognizing finite number of words. The hyperminimized automaton is not necessarily unique. Finally we generalize the hyperminimization to the weighted setting. We present the hyperminimization algorithm of an already minimized WDFA (Weighted Deterministic Finite Automaton). KEY WORDS DFA, WDFA, minimization, hyperminimization, equivalent states, almost equivalent states. 4
Περιεχόμενα 1 Εισαγωγή 6 2 Βασικές έννοιες και ορισμοί 9 2.1 Εφαρμογές των DFA........................... 16 3 Ελαχιστοποίηση ενός DFA 20 3.1 Αφαίρεση Άχρηστων Καταστάσεων.................. 20 3.2 Συγχώνευση ισοδύναμων καταστάσεων.................. 24 3.3 Table filling algorithm.......................... 26 3.4 Αλγόριθμος ελαχιστοποίησης ενός DFA................. 30 4 Υπερελαχιστοποίηση ενός DFA 38 4.1 Συγχώνευση σχεδόν ισοδύναμων καταστάσεων................................ 38 4.2 Χαρακτηρισμός των υπερελαχιστοποιημένων αυτομάτων......... 42 4.3 Δομικές ομοιότητες............................ 46 4.4 Αλγόριθμος υπερελαχιστοποίησης ενός DFA............... 51 5 Υπερελαχιστοποίηση ενός WDFA 59 5.1 Ελαχιστοποίηση ενός WDFA στο μονοειδές (Σ,, ε)......... 60 5.2 Υπερελαχιστοποίηση ένος ήδη ελαχιστοποιημένου WDFA........ 62 5.3 Αλγόριθμος υπερελαχιστοποίησης ενός WDFA................................... 67 6 Επίλογος 71 5
Κεφάλαιο 1 Εισαγωγή Η θεωρία αυτομάτων είναι η μελέτη εικονικών μηχανών που αυτο-λειτουργούν και συμβάλλουν στην λογική κατανόηση της διαδικασίας εισόδου - εξόδου με ή χωρίς ενδιάμεσα στάδια του υπολογισμού. Είναι η μελέτη των αφηρημένων μηχανών, καθώς και των υπολογιστικών προβλήματων που μπορούν να λυθούν με την χρήση τους. Στην εργασία θα ασχοληθούμε με τα πεπερασμένα προσδιοριστά αυτόματα DFA (Deterministic Finite Automaton) που είναι τα θεμελειώδη πρότυπα μοντέλα για τις αναγνωρίσιμες γλώσσες. Τα DFA έχουν σχετικά απλή δομή και ταυτόχρονα αποτελούν ένα από τα πιο χρήσιμα εργαλεία της Επιστήμης των Υπολογιστών (Computer Science). Η απλότητά τους τα καθιστά ελκυστικά σε πολλούς τομείς, όπως: επεξεργασία του λόγου (speech processing), συμπίεση εικόνας (image compression), μορφολογία (morphology), γλωσσική ανάλυση (linguistic analysis), φυσική γλωσσική σημασιολογία (natural language semantics) και μοτίβο αντιστοίχισης (pattern matching). Πολύ συχνά όμως στις εφαρμογές χρειάζονται αυτόματα με εκατομμύρια καταστάσεις με αποτέλεσμα οι υπολογισμοί να είναι αρκετά δύσκολοι. Το πρόβλημα αυτό ξεπεράστηκε πριν από περίπου 60 χρόνια όταν βρέθηκε ο αλγόριθμος ελαχιστοποίησης ενός DFA. Ενα DFA μπορεί να είναι ισοδύναμο, δηλαδή να αναγνωρίζει την ίδια γλώσσα, με ένα άλλο που αποτελείται από λιγότερες καταστάσεις από το αρχικό. Το αυτόματο που παράγεται από τον αλγόριθμο αυτό έχει όσο το δυνατόν λιγότερες καταστάσεις, ονομάζεται ελαχιστοποιημένο και είναι μοναδικό λόγω του ισομορφισμού. Κάθε αυτόματο A με λιγότερες καταστάσεις από το αντίστοιχο ελαχιστοποιμένο παρουσιάζει πρόβλημα στην αναγνώριση τουλάχιστον μίας λέξης. 6
ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ 7 Αργότερα, παρατηρήθηκε οτι αν επιτρεπόταν μια αλλαγή στη γλώσσα που αναγνωρίζει το αυτόματο αλλά μόνο για πεπερασμένο αριθμό λέξεων, τότε μπορούσε να γίνει επιπλέον μείωση των καταστάσεων του αυτομάτου πέρα από τη συνηθισμένη έννοια της ελαχιστοποίησης. Η υλοποίηση αυτού γίνεται με τη βοήθεια του αλγόριθμου υπερελαχιστοποίησης (πολυωνυμικού χρόνου), ο οποίος μειώνει επιπλέον τον αριθμό των καταστάσεων ενός ήδη ελαχιστοποιημένου αυτομάτου. Το αυτόματο που προκύπτει α- πό αυτή τη διαδικασία είναι υπερελαχιστοποιημένο και σχεδόν ισοδύναμο με το αρχικό, διαφέρει στην αναγνώριση συγκεκριμένων λέξεων και δεν είναι απαραίτητα μοναδικό. Υπάρχουν δηλαδή περιπτώσεις όπου το ελαχιστοποιημένο αυτόματο (n καταστάσεων) μπορεί να αντικατασταθεί από διαφορετικά υπερελαχιστοποιημένα αυτόματα, όπου όλα έχουν τον ίδιο αριθμό καταστάσεων (λιγότερες του n) αλλά κάθε ένα από αυτά αναγνωρίζει μία διαφορετική εκδοχή της αρχικής γλώσσας. Ειδική περίπτωση συναντάμε όταν το αυτόματο χρησιμοποιεί σαν αλφάβητο εισόδου ένα μόνο γράμμα, τότε μόνο το υπερελαχιστοποιημένο αυτόματο είναι μοναδικό. Στην παρούσα διπλωματική θα ασχοληθούμε με την ελαχιστοποίηση και την υπερελαχιστοποίηση των DFA αλλά και των WDFA (DFA με βάρη). Τα αυτόματα με βάρη είναι κλασσικά πεπερασμένα αυτόματα όπου η μετάβαση από τη μία κατάσταση στην άλλη γίνεται με κάποιο βάρος. Τα βάρη αυτά μπορούν να προσομοιώσουν ποσοτικές ιδιότητες όπως το πλήθος των μέσων που απαιτούνται για την εκτέλεση μιας μετάβασης από μία κατάσταση σε μία άλλη, την πιθανότητα ή ακόμα και την αξιοπιστία της επιτυχούς εκτέλεσης της μετάβασης. Επίσης με τη χρήση των WDFA μπορούμε να υ- πολογίσουμε τον αριθμό των διαδρομών που οδηγούν από αρχική σε τελική κατάσταση χρησιμοποιώντας μία συγκεκριμένη λέξη. Στο δεύτερο κεφάλαιο παρουσιάζουμε βασικές έννοιες και ορισμούς που θα μας χρειαστούν στην πορεία. Στο τρίτο κεφάλαιο, περιγράφουμε την διαδικασία ελαχιστοποίησης ενός DFA. Συγκεκριμένα, θα δείξουμε τον τρόπο με τον οποίο βρίσκουμε τις άχρηστες καταστάσεις, δηλαδή αυτές που δεν συνεισφέρουν στον υπολογισμό της γλώσσας του αυτομάτου, καθώς και τον τρόπο με τον οποίο τις απομακρύνουμε χωρίς να αλλάζει η συμπεριφορά του αυτομάτου μας. Επειτα, θα δούμε πως αναγνωρίζουμε τις ισοδύναμες καταστάσεις, καθώς και τον τρόπο σύμφωνα με τον οποίο γίνεται η συγχώνευσή τους για να πάρουμε την τελική μορφή του ελαχιστοποιημένου αυτομάτου. Στο τέταρτο κεφάλαιο ασχολούμαστε με την υπερελαχιστοποίηση ενός ήδη ελαχιστοποιημένου
ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ 8 DFA. Εντοπίζουμε τις σχεδόν ισοδύναμες καταστάσεις και τις συγχωνεύουμε σύμφωνα με τον αλγόριθμο υπερελαχιστοποίησης ενός WDFA ο οποίος μας δίνει και το υπερελαχιστοποιημένο αυτόματο. Μελετάμε επίσης τις σχέσεις που προκύπτουν μεταξύ των αυτομάτων. Τέλος στο πέμπτο κεφάλαιο βλέπουμε πως λειτουργούν οι παραπάνω διαδικασίες στην περίπτωση των WDFA. Μελετάμε την ελαχιστοποίηση με βάρη με τη βοήθεια ενός παραδείγματος και περνάμε στην υπερελαχιστοποίηση με βάρη εισάγωντας νέες βοηθητικές έννοιες που θα μας χρειαστούν στον αλγόριθμο υπερελαχιστοποίησης ενός WDFA με τον οποίο και κλείνουμε την εργασία μας.
Κεφάλαιο 2 Βασικές έννοιες και ορισμοί Συμβολίζουμε με N το σύνολο όλων των μη αρνητικών ακεραίων αριθμών. Ορισμός 2.1. Εστω S ένα μη κενό σύνολο. Αν το S είναι εφοδιασμένο με μία προσεταιριστική πράξη ( ), δηλαδή αν (a b) c = a (b c), a, b, c S, τότε αποτελεί μία ημιομάδα. Εστω S μία ημιομάδα. Αν η S έχει ουδέτερο στοιχείο, δηλαδή αν e S τέτοιο ώστε e a = a = a e τότε η S ονομάζεται μονοειδές. Αν επιπλέον η πράξη μας είναι αντιμεταθετική, δηλαδή a b = b a, a, b S τότε λέμε ότι το S είναι αντιμεταθετικό μονοειδές και συμβολίζεται με (S,, 1). Ορισμός 2.2. Εστω S ένα μη κενό σύνολο εφοδιασμένο με δύο πράξεις (θα συμβολίζουμε την πρώτη με + και τη δεύτερη με ). Η δομή (S, +, 0,, 1) ονομάζεται ημιδακτύλιος όταν: 1. Το (S, +, 0) είναι αντιμεταθετικό μονοειδές με ουδέτερο στοιχείο το 0. 2. Το (S,, 1) είναι μονοειδές με ουδέτερο στοιχείο το 1. 3. Η δεύτερη πράξη είναι επιμεριστική ως προς την πρώτη πράξη a (b + c) = a b + a c και (a + b) c = a c + b c, a, b, c S. 4. Ισχύει 0 x = 0 = x 0, x S. Αν και η δεύτερη πράξη είναι αντιμεταθετική τότε έχουμε έναν αντιμεταθετικό ημιδακτύλιο. 9
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 10 Ορισμός 2.3. Εστω S ένας ημιδακτύλιος. Ενα μη μηδενικό στοιχείο του S, a S, ονομάζεται αντιστρέψιμο αν υπάρχει μη μηδενικό στοιχείο b S, τέτοιο ώστε να ισχύει: ab = 1 = ba. Το στοιχείο b συμβολίζεται και ως a 1 και ονομάζεται αντίστροφο στοιχείο του a. Ορισμός 2.4. Αν σε έναν ημιδακτύλιο S κάθε μη μηδενικό στοιχείο του είναι αντιστρέψιμο, τότε ο S ονομάζεται ημισώμα. Ορισμός 2.5. Εστω A ένα μη κενό σύνολο. Κάθε μη κενό υποσύνολο του A A, R A A λέγεται σχέση του A. Συνήθως αντικαθιστούμε τον συμβολισμό (a, b) R, με τον συμβολισμό arb. Αν η σχέση R έχει τις παρακάτω ιδιότητες: 1. ανακλαστική: ara, a A 2. συμμετρική: arb bra, a, b A 3. μεταβατική: αν arb και brc arc, a, b, c A τότε ονομάζεται σχέση ισοδυναμίας και αντί για R συμβολίζεται με. Ορισμός 2.6. Εστω ότι έχουμε ένα μη κενό σύνολο A και μία σχέση ισοδυναμίας πάνω σε αυτό. Ονομάζουμε κλάση ισοδυναμίας ενός στοιχείου x A και τη συμβολίζουμε με x το σύνολο όλων των στοιχείων του A που είναι ισοδύναμα με το x, δηλαδή: x = {y A/y x}. Ονομάζουμε αλφάβητο Σ ένα μη κενό πεπερασμένο σύνολο και τα στοιχεία του γράμματα. Μια λέξη (ή συμβολοσειρά) από το αλφάβητο Σ είναι μια πεπερασμένη ακολουθία γραμμάτων. Το Σ είναι το σύνολο όλων των λέξεων από το αλφάβητο Σ, συμπεριλαμβανομένης της κένης λέξης ε. Σ = {ε} {σ 1... σ l /l 1, σ 1,..., σ l Σ}.
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 11 Θεωρούμε δύο λέξεις s 1 = σ 1... σ l, s 2 = β 1... β k Σ. Θα ονομάζονται ίσες, και θα γράφουμε s 1 = s 2 αν l = k και σ i = β i για κάθε 1 i l. Η παράθεση s 1 s 2 της s 1 και s 2 ορίζεται ως s 1 s 2 = σ 1... σ l β 1... β k. Η παράθεση της s 1 με την s 2 είναι προσεταιριστική, δηλαδή για κάθε s 1, s 2, s 3 Σ ισχύει s 1 (s 2 s 3 ) = (s 1 s 2 )s 3 και s 1 ε = s 1 = εs 1 για κάθε s 1 Σ. Για κάθε λέξη s Σ, ορίζουμε τη n-οστή δύναμη s n Σ για κάθε n 0 επαγωγικά ως εξής: s 0 = ε s n+1 = s n s. Το μήκος s της λέξης s = σ 1... σ l με σ 1,..., σ l Σ είναι το πλήθος των γραμμάτων της, δηλαδή s = l. Τα σύνολα Σ l και Σ l περιέχουν όλες τις λέξεις από το αλφάβητο Σ μήκους το πολύ l ή τουλάχιστον l αντίστοιχα. Μια τυπική γλώσσα ή απλά γλώσσα L από το αλφάβητο Σ είναι ένα υποσύνολο L Σ. Η συμμετρική διαφορά S T δύο συνόλων S και T είναι S T = (S T ) (T S). Ορισμός 2.7 (DFA). Ενα πεπερασμένο προσδιοριστό αυτόματο είναι μια πεντάδα της μορφής A = (Q, Σ, δ, q 0, F ), όπου: Q είναι το πεπερασμένο σύνολο των καταστάσεων, Σ είναι το αλφάβητο εισόδου, δ : Q Σ Q είναι η συνάρτηση μεταφοράς, δηλαδή μία απεικόνιση που περιγράφει την λειτουργία του αυτομάτου, q 0 Q είναι η αρχική κατάσταση και F Q είναι το σύνολο των τελικών καταστάσεων.
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 12 Η δ επεκτείνεται σε μία συνάρτηση δ : Q Σ Q επαγωγικά στο μήκος των λέξεων ως εξής: δ(q, s 1 s 2 ) = δ(δ(q, s 1 ), s 2 ) και δ(q, ε) = q, για κάθε q Q και s 1, s 2 Σ. Μια λέξη εισόδου s Σ αναγνωρίζεται από το αυτόματο αν: δ(q 0, s) F. Η γλώσσα όλων των λέξεων που αναγνωρίζονται από το A ονομάζεται γλώσσα (ή συμπεριφορά) του A και συμβολίζεται με L(A), δηλαδή: L(A) = {s Σ δ(q 0, s) F }. Ορισμός 2.8. Εστω αλφάβητο Σ. Μία γλώσσα L Σ ονομάζεται αναγνωρίσιμη, αν υπάρχει αυτόματο A = (Q, Σ, δ, q 0, F ) του οποίου η γλώσσα να είναι η L, δηλαδή L = L(A). Συμβολίζουμε με Rec(Σ) την κλάση όλων των αναγνωρίσιμων γλωσσών από το αλφάβητο Σ. Ορισμός 2.9. Θεωρούμε A = (Q, Σ, δ, q 0, F ) ένα πεπερασμένο προσδιοριστό αυτόματο. Μια κατάσταση q Q ονομάζεται απρόσιτη (unreachable), αν δεν υπάρχει καμία λέξη εισόδου s Σ τέτοια ώστε δ(q 0, s) = q. Η κατάσταση q Q βρίσκεται στο προοίμιο (preamble), αν υπάρχει τουλάχιστον μία λέξη εισόδου s Σ με δ(q 0, s) = q, αλλά ο αριθμός των λέξεων αυτών είναι πεπερασμένος. Η κατάσταση q Q βρίσκεται στον πυρήνα (kernel), αν υπάρχουν απείρως πολλές (διαφορετικές μεταξύ τους) λέξεις εισόδου s Σ με δ(q 0, s) = q. Τα σύνολα των παραπάνω καταστάσεων θα ορίζονται με U, P, K αντίστοιχα. Λήμμα 2.1. Για κάθε αυτόματο A = (Q, Σ, δ, q 0, F ), μία κατάσταση q Q ανήκει στον πυρήνα αν και μόνο αν είναι προσιτή από την αρχική κατάσταση μέσω ενός μονοπατιού που περνάει από μία κατάσταση q τέτοια ώστε να υπάρχει ένας κύκλος ο οποίος αρχίζει και τελειώνει στην q. Απόδειξη. Προφανώς, αν η q είναι προσιτή από ένα μονοπάτι που περνάει από κάποια κατάσταση q, για την οποία υπάρχει ένος κύκλος που ξεκινάει και τελειώνει σε αυτήν,
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 13 τότε η q είναι προσιτή από απείρως πολλές εισόδους, με την επανάληψη του κύκλου αυθαίρετα πολλές φορές. Για αυτό το λόγο, η q ανήκει στον πυρήνα. Αντίθετα τώρα, q K, άρα είναι προσιτή από την αρχική κατάσταση q 0 με απείρως πολλές εισόδους, έχουμε δηλαδή q = δ(q 0, s) για s Σ μήκους s card(q). Τότε όμως κάποια κατάσταση q θα πρέπει να επαναλαμβάνεται ενώ διαβάζουμε το s, το οποίο μας δίνει έναν κύκλο που περιέχει την κατάσταση q. Λήμμα 2.2. Θεωρούμε A = (Q, Σ, δ, q 0, F ) ένα DFA χωρίς απρόσιτες καταστάσεις. Τότε, για κάθε q A, q B Q, η πρόταση τουλάχιστον μία από τις καταστάσεις q A, q B βρίσκεται στο προοίμιο είναι ισοδύναμη με τα ακόλουθα: 1. είτε q A P και q A δεν είναι προσβάσιμη από την q B, 2. είτε q B P και q B δεν είναι προσβάσιμη από την q A. Απόδειξη. Το επιχείρημα για την φορά είναι προφανές. Ας υποθέσουμε λοιπόν ότι τουλάχιστον μία από τις καταστάσεις q A, q B P. Αν q A K, τότε q B P. Επιπλέον η q B δεν είναι προσβάσιμη από την q A με κανένα μονοπάτι, διαφορετικά q B K, μιας και θα ήταν προσβάσιμη από την q 0 με απείρως πολλές εισόδους μέσω της q A, το οποίο μας οδηγεί σε αντίφαση. Οπότε καταλήγουμε στο (ii). Ομοίως, αν q B K, τότε q A P. Επιπλέον η q A δεν είναι προσβάσιμη από την q B, διαφορετικά q A K, το οποίο μας οδηγεί πάλι σε αντίφαση. Οπότε καταλήγουμε στο (i). Τελικά, αν q A, q B / K, τότε και οι δύο βρίσκονται στο προοίμιο. Επιπλέον, είτε η q B δεν είναι προσβάσιμη από την q A, είτε η q A δεν είναι προσβάσιμη από την q B. Σε περίπτωση που υποθέσουμε το αντίθετο, θα πάρουμε έναν κύκλο που περιέχει τις q A, q B. Αυτές όμως είναι προσβάσιμες από την αρχική κατάσταση q 0, μιας και έχουμε ήδη υποθέσει ότι δεν υπάρχουν απρόσιτες καταστάσεις στο αυτόματό μας. Τότε όμως θα πρέπει q A, q B K, πράγμα άτοπο. Καταλήγουμε λοιπόν στα (i) και (ii).
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 14 Η δομή των βαρών μας είναι το αντιμεταθετικό ημισώμα (αντιμεταθετικός ημιδακτύλιος με πολλαπλασιαστικό αντίστροφο) K, +,, 0, 1, δηλαδή: K, +, 0 και K,, 1 είναι αντιμεταθετικά μονοειδή, ο πολλαπλασιασμός ( ) επιμερίζεται ως προς το άθροισμα (+) και k K {0}, υπάρχει ένα k 1 K τέτοιο ώστε k k 1 = 1. Για το ημισώμα K, +,, 0, 1 θα ισχύει ότι 0 1, K = K {0} και κάποιες φορές θα γράφουμε k 1 k 2 αντί για k 1 k 1 2. Μία τυπική σειρά (ή σειρά) είναι μία απεικόνιση ϕ : Σ K, της οποίας το support είναι η γλώσσα, supp(ϕ) = ϕ 1 (K). Αν έχουμε k K, τότε (k ϕ) : Σ K είναι μία σειρά τέτοια ώστε (k ϕ)(s) = k ϕ(s), για κάθε s Σ. Ορισμός 2.10. (WDFA) Ενα πεπερασμένο προσδιοριστό αυτόματο με βάρη είναι μία πλειάδα της μορφής A = (Q, Σ, q 0, k 0, δ, wt, F ) όπου: Q είναι το πεπερασμένο σύνολο καταστάσεων, Σ είναι το αλφάβητο εισόδου, q 0 Q είναι η αρχική κατάσταση, k 0 K είναι το αρχικό βάρος, δ : Q Σ Q είναι η συνάρτηση μεταφοράς, wt : Q Σ K είναι η συνάρτηση μεταφοράς των βαρών και F Q είναι το σύνολο των τελικών καταστάσεων. Η δ επεκτείνεται σε μία συνάρτηση δ : Q Σ Q επαγωγικά στο μήκος των λέξεων ως εξής: δ(q, σs) = δ(δ(q, σ), s) και δ(q, ε) = q, για κάθε q Q, σ Σ και s Σ. Αντίστοιχα, η wt επεκτείνεται σε μία συνάρτηση wt : Q Σ K επαγωγικά στο μήκος των λέξεων ως εξής: wt(q, σs) = wt(q, σ) wt(δ(q, σ), s) και wt(q, ε) = 1, για
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 15 κάθε q Q, σ Σ και s Σ. Θα γράφουμε δ(s) και wt(s) για δ(q 0, s) και wt(q 0, s) αντίστοιχα. Ορισμός 2.11 (q-semantics). Για κάθε q Q ορίζουμε την απεικόνιση [[q]] A : Σ K, από τη σχέση: wt(q, s), αν δ(q, s) F [[q]] A (s) = 0, διαφορετικά. για κάθε s Σ. Διαισθητικά [[q]] A είναι μία σειρά η οποία αναγνωρίζεται από το αυτόματο ξεκινώντας από την κατάσταση q με αρχικό βάρος 1. Η συμπεριφορά ενός αυτομάτου με βάρη A είναι η σειρά [[A]] = k 0 [[q 0 ]] A. Παράδειγμα 2.1. Θεωρούμε το παρακάτω WDFA A από το αντιμεταθετικό ημισώμα N, +,, 0, 1 και τη συμπεριφορά του με τη λέξη baa. Σχήμα 2.1: WDFA A. ( Οπου δεν εμφανίζεται βάρος, θεωρείται ο αριθμός 1.) [[A]](baa) = k 0 [[q 0 ]] A (baa) = k 0 wt(q 0, baa) αφού δ(q 0, baa) F. [[A]](baa) = 2 2 1 2 = 8.
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 16 2.1 Εφαρμογές των DFA Τα DFA συνδέονται με διάφορους κλάδους της επιστήμης και έχουν πάρα πολλές ε- φαρμογές στην καθημερινότητά μας όπως: Software και Hardware applications Virtual reality Αυτόματος Πωλητής Βιντεοπαιχίδια Ανάλυση Κειμένου Φωτεινοί Σηματοδότες Επεξεργασία Φυσικής Γλώσσας Σχήμα 2.2: Εφαρμογές των DFA σε διάφορους κλάδους της επιστήμης. Θα δούμε τη χρησιμότητά του με την βοήθεια των παρακάτω παραδειγμάτων:
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 17 Αυτόματος Πωλητής Δέχεται νομίσματα των 0.50, 2.00 και χρεώνει 2.50 για ένα προιόν. Μόλις λάβει τουλάχιστον 2.50 (μπλέ χρωματισμένες καταστάσεις) τότε ο χρήστης μπορεί να παραλάβει το προιόν. Τα self-loops αναπαριστούν τις εισόδους που αγνοούμε: Ο Αυτόματος πωλητής δεν θα δώσει το προιόν μέχρι να λάβει τουλάχιστον 2.50. Ο Αυτόματος πωλητής δεν θα δεχτεί παραπάνω χρήματα σε περίπτωση που έχει ήδη λάβει ποσό μεγαλύτερο ή ίσο των 2.50. Σχήμα 2.3: Αυτόματος Πωλητής
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 18 DFA που περιγράφει την συμπεριφορά του Αυτόματου πωλητή: A = (Q, Σ, δ, q 0, F ), όπου: Q = {0.00, 0.50, 1.00, 1.50, 2.00, 2.50, 3.00, 3.50, 4.00}, Σ = {0.50, 2.00, επελεξε}, δ είναι η συνάρτηση μεταφοράς όπως ήδη περιγράψαμε, q 0 = 0.00, F =. Pac-Man s Ghosts Κανόνες παιχνιδιού: 1. Ο παίκτης περιηγείται μέσα στον λαβύρινθο. 2. Τρώει τα σφαιρίδια. 3. Αποφεύγει τα φαντάσματα που τον κηνυγάνε. 4. Σε περίπτωση που φάει μαγικό σφαιρίδιο, για λίγη ώρα μπορεί να τρώει φαντάσματα.
ΚΕΦΑΛΑΙΟ 2. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΑΙ ΟΡΙΣΜΟΙ 19 Τα φαντάσματα έχουν 4 πιθανές συμπεριφορές. Αυτές αντιστοιχούν σε ένα DFA με τέσσερις καταστάσεις.: Τυχαία περιήγηση μέσα στον λαβύρινθο. Κυνηγάνε τον Pac-Man σε περίπτωση που τον εντοπίσουν. Αποφεύγουν τον Pac-Man σε περίπτωση που έχει φάει μαγικό σφαιρίδιο. Επιστρέφουν στη βάση για να αναγεννηθούν. Σχήμα 2.4: Συμπεριφορά Φαντασμάτων
Κεφάλαιο 3 Ελαχιστοποίηση ενός DFA Σε αυτό το κεφάλαιο, περιγράφουμε την διαδικασία ελαχιστοποίησης ενός DFA (Deterministic Finite Automaton). Αν έχουμε ένα πεπερασμένο προσδιοριστό αυτόματο μπορούμε να βρούμε, σύμφωνα με τον αλγόριθμο ελαχιστοποίησης ένα ισοδύναμο προσδιοριστό αυτόματο, με την έννοια του να αναγνωρίζει την ίδια γλώσσα. Το αυτόματο αυτό έχει τον ελάχιστο αριθμό καταστάσεων και είναι μοναδικό. 3.1 Αφαίρεση Άχρηστων Καταστάσεων Ας είναι λοιπόν A = (Q, Σ, δ, q 0, F ) ένα πεπερασμένο προσδιοριστό αυτόματο (DFA): Μια κατάσταση q Q ονομάζεται προσιτή αν υπάρχει λέξη s Σ έτσι ώστε q = δ(q 0, s). Η q ονομάζεται συμπροσιτή αν υπάρχει λέξη t Σ έτσι ώστε δ(q, t) F. Η q ονομάζεται χρήσιμη αν είναι προσιτή και συμπροσιτή. Θα συμβολίζουμε με Q ac (αντίστοιχα Q coac, Q t ) το σύνολο των προσιτών (αντίστοιχα συμπροσιτών, χρήσιμων) καταστάσεων του A. Πρόταση 3.1. Θεωρούμε A = (Q, Σ, δ, q 0, F ) ένα DFA. Το σύνολο των Q ac υπολογίζεται σε πεπερασμένου πλήθους βήματα. Απόδειξη. Θεωρούμε την ακολουθία υποσυνόλων (I n ) n 0 του Q η οποία ορίζεται ως εξής: 20
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 21 I 0 = {q 0 } I 1 = {q q Q, υπάρχουν σ Σ έτσι ώστε q δ(q 0, σ)} \q 0, I 2 = {q q Q, υπάρχουν q 1 I 1, σ Σ έτσι ώστε q δ(q 1, σ)} \(q 0 I 1 ),... I n+1 = {q q Q, υπάρχουν q n I n, σ Σ έτσι ώστε q δ(q n, σ)} \(q 0... I n ), για κάθε n 0. Τα σύνολα I n, n 0, είναι ανά δύο ξένα μεταξύ τους, συνεπώς υπάρχει δείκτης m < card(q) έτσι ώστε I m και I i = για κάθε i > m. Από τον τρόπο ορισμού της ακολουθίας (I n ) n 0 είναι φανερό ότι Q ac = I k. 0 k m Πρόταση 3.2. Από κάθε πεπερασμένο προσδιοριστό αυτόματο A = (Q, Σ, δ, q 0, F ) μπορούμε να κατασκευάσουμε ένα ισοδύναμο πεπερασμένο προσδιοριστό αυτόματο A ac του οποίου όλες οι καταστάσεις να είναι προσιτές. Με τη βοήθεια της Πρότασης 3.1 υπολογίζουμε το σύνολο Q ac των προσιτών καταστάσεων του A. Το αυτόματο A ac = (Q ac, Σ, δ ac, q 0, F ac ), όπου δ ac είναι ο περιορισμός της δ στο Q ac Σ και F ac = F Q ac, έχει όλες του τις καταστάσεις προσιτές και είναι ισοδύναμο με το A. Πρόταση 3.3. Θεωρούμε A = (Q, Σ, δ, q 0, F ) ένα DFA. Το σύνολο των Q coac υπολογίζεται σε πεπερασμένου πλήθους βήματα. Απόδειξη. Θεωρούμε την ακολουθία υποσυνόλων (F n ) n 0 του Q η οποία ορίζεται ως εξής: F 0 = F F 1 = {p p Q, υπάρχουν p 0 F 0, σ Σ έτσι ώστε p 0 δ(p, σ)} \F 0, F 2 = {p p Q, υπάρχουν p 1 F 1, σ Σ έτσι ώστε p 1 δ(p, σ)} \(F 0 F 1 ),... F n+1 = {p p Q, υπάρχουν p n F n, σ Σ έτσι ώστε p n δ(p, σ)} \(F 0... F n ), για κάθε n 0. Τα σύνολα F n, n 0, είναι ανά δύο ξένα μεταξύ τους, συνεπώς υπάρχει δείκτης l < card(q) έτσι ώστε F l και F i = για κάθε i > l. Από τον τρόπο ορισμού της
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 22 ακολουθίας (F n ) n 0 είναι φανερό ότι Q coac = F k. 0 k l Πρόταση 3.4. Από κάθε πεπερασμένο προσδιοριστό αυτόματο A = (Q, Σ, δ, q 0, F ) μπορούμε να κατασκευάσουμε ένα ισοδύναμο πεπερασμένο προσδιοριστό αυτόματο A coac του οποίου όλες οι καταστάσεις να είναι συμπροσιτές. Με τη βοήθεια της Πρότασης 3.3 υπολογίζουμε το σύνολο Q coac των συμπροσιτών καταστάσεων του A. Το αυτόματο A coac = (Q coac, Σ, δ coac, q 0, F ), όπου δ coac είναι ο περιορισμός της δ στο Q coac Σ, έχει όλες του τις καταστάσεις συμπροσιτές και είναι ισοδύναμο με το A. Πρόταση 3.5. Θεωρούμε A = (Q, Σ, δ, q 0, F ) ένα DFA. Το σύνολο των Q t υπολογίζεται σε πεπερασμένου πλήθους βήματα. Απόδειξη. Εφαρμόζουμε διαδοχικά τον αλγόριθμο που περιγράψαμε στην Πρόταση 3.1 και τον αλγόριθμο που περιγράψαμε στην Πρόταση 3.3. Θεώρημα 3.1. Από κάθε πεπερασμένο προσδιοριστό αυτόματο A = (Q, Σ, δ, q 0, F ) μπορούμε να κατασκευάσουμε ένα ισοδύναμο πεπερασμένο προσδιοριστό αυτόματο του οποίου όλες οι καταστάσεις να είναι χρήσιμες. Από το A κατασκευάζουμε το αυτόματο A ac και στη συνέχεια το (A ac ) coac. Το (A ac ) coac είναι ισοδύναμο με το A και έχει όλες τις καταστάσεις του χρήσιμες. Στη συνέχεια δίνουμε ένα παράδειγμα για να γίνουν όλα αυτά πιο κατανοητά. Παράδειγμα 3.1. Δίνεται το παρακάτω πεπερασμένο προσδιοριστό αυτόματο: A = ({A, B, C, D, E, F }, {a, b}, δ, A, {B, C}). Μπορούμε εύκολα να παρατηρήσουμε ότι δεν υπάρχει επιτυχής διαδρομή του αυτομάτου (δηλαδή διαδρομή που ξεκινά από την αρχική κατάσταση και τελειώνει σε τελική κατάσταση) που να περνάει από τις καταστάσεις F, E, D. Επομένως, αν αφαιρέσουμε αυτές τις καταστάσεις, το διάγραμμα του αυτομάτου που θα προκύψει θα έχει την ίδια γλώσσα με το A.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 23 Σχήμα 3.1: DFA με άχρηστες καταστάσεις Αρχικά, χρησιμοποιούμε την Πρόταση 3.1 για να βρούμε το A ac. Προκύπτει: I 0 = {A} I 1 = {B} I 2 = {C} I 3 = {D} I 4 =, και συνεπώς I i = για κάθε i 4. Ετσι: Q ac = I 0 I 1 I 2 I 3 = {A, B, C, D}. Το πεπερασμένο προσδιοριστό αυτόματο A ac δίνεται από το επόμενο διάγραμμα: Χρησιμοποιούμε τώρα την Πρόταση 3.3 για να βρούμε το A coac που προκύπτει από το αυτόματο A ac. Εχουμε: F 0 = F = {B, C} F 1 = {A} F 2 =, και συνεπώς F i = για κάθε i 2.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 24 Ετσι: Q coac = F 0 F 1 = {A, B, C}. Το πεπερασμένο προσδιοριστό αυτόματο (A ac ) coac που δίνεται από το επόμενο διάγραμμα είναι ισοδύναμο με το αρχικό και έχει όλες του τις καταστάσεις χρήσιμες: Σχήμα 3.2: DFA με όλες του τις καταστάσεις χρήσιμες 3.2 Συγχώνευση ισοδύναμων καταστάσεων Στην ενότητα αυτή θα δείξουμε ότι ένα DFA του οποίου όλες οι καταστάσεις είναι χρήσιμες, ενδεχομένως να επιδέχεται περαιτέρω ελαχιστοποίηση. Ορισμός 3.1. Δύο καταστάσεις q A και q B είναι ισοδύναμες, το οποίο θα δηλώνεται ως q A q B, αν για κάθε s Σ, ισχύει δ(q A, s) F αν και μόνο αν δ(q B, s) F. Δηλαδή, για τις ισοδύναμες καταστάσεις q A, q B δεν υπάρχει κάποια λέξη εισόδου s για την οποία η δ(q A, s) F ενώ η δ(q B, s) / F. Ο παραπάνω ορισμός μπορεί να επεκταθεί σε ζεύγη καταστάσεων τα οποία ανήκουν σε διαφορετικά αυτόματα αλλά χρησιμοποιούν το ίδιο αλφάβητο εισόδου. Λήμμα 3.1. είναι μια σχέση ισοδυναμίας. Απόδειξη. Η είναι μια σχέση ισοδυναμίας αφού πληρεί τις παρακάτω ιδιότητες: 1. ανακλαστική: q A q A, αφού για κάθε s Σ ισχύει δ(q A, s) F αν και μόνο αν δ(q A, s) F 2. συμμετρική: q A q B, δηλαδή για κάθε s Σ ισχύει δ(q A, s) F αν και μόνο αν δ(q B, s) F q B q A 3. μεταβατική: q A q B και q B q C q A q C Υποθέτουμε ότι q A q B και q B q C ενώ q A q C. Τότε υπάρχει κάποια λέξη
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 25 s τέτοια ώστε ακριβώς ένα από τα δ(q A, s) και δ(q C, s) F. Ας υποθέσουμε, χωρίς βλάβη της γενικότητας, ότι δ(q A, s) F. Αν δ(q B, s) F τότε q B q C μιας και δ(q B, s) F ενώ δ(q C, s) / F. Αν τώρα δ(q B, s) / F τότε q A q B για τον ίδιο λόγο. Αφού καταλήξαμε σε άτοπο ισχύει q A q C. Λήμμα 3.2. Αν q A q B, τότε για κάθε s Σ, δ(q A, s) δ(q B, s). Απόδειξη. Υποθέτουμε ότι για κάποιο s Σ, q A = δ(q A, s) δ(q B, s) = q B. Αφού q A q B υπάρχει μία τουλάχιστον λέξη s τέτοια ώστε δ(q A, s ) F, αν και μόνο αν δ(q B, s ) F (χωρίς βλάβη της γενικότητας). Τότε όμως αν πάρουμε την παράθεση ss προκύπτει ότι δ(q A, ss ) F, αν και μόνο αν δ(q B, ss ) F q A q B. Άτοπο. Τελικά αν q A q B, τότε s Σ, δ(q A, s) δ(q B, s). Λήμμα 3.3. Ισχύει q A q B αν και μόνο αν για κάθε σ Σ, δ(q A, σ) δ(q B, σ). Απόδειξη. Η φορά είναι το Λήμμα 3.2 με s = 1. Για την φορά θεωρούμε το Σ = {σ 1, σ 2,..., σ m } και υποθέτουμε ότι σ i Σ, με i = 1, 2,..., m, δ(q A, σ i ) δ(q B, σ i ). Αφού δ(q A, σ i ) δ(q B, σ i ), τότε δ(δ(q A, σ i ), s) F αν και μόνο αν δ(δ(q B, σ i ), s) F, s Σ. Τελικά, s Σ μήκους s 1, δ(q A, s ) F αν και μόνο αν δ(q B, s ) F q A q B. Ορισμός 3.2. Δύο αυτόματα A 1 = (Q 1, Σ, δ 1, q 0,1, F 1 ) και A 2 = (Q 2, Σ, δ 2, q 0,2, F 2 ) είναι ισοδύναμα, το οποίο θα δηλώνεται ως A 1 A 2, αν οι αρχικές τους καταστάσεις q 0,1 και q 0,2 είναι ισοδύναμες, δηλαδή q 0,1 q 0,2. Τα ισοδύναμα αυτόματα συμφωνούν στην αναγνώριση όλων των εισόδων, αναγνωρίζουν δηλαδή την ίδια γλώσσα, L(A 1 ) = L(A 2 ). Ορισμός 3.3. Το αυτόματο A = (Q, Σ, δ, q 0, F ) είναι ελαχιστοποιημένο, αν δεν υπάρχει αυτόματο A = (Q, Σ, δ, q 0, F ) με λιγότερες καταστάσεις το οποίο να είναι
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 26 ισοδύναμο με το A. Δηλαδή, ένα ελαχιστοποιημένο αυτόματο A δεν μπορεί να αντικατασταθεί από κάποιο A, το οποίο χρησιμοποιεί μικρότερο αριθμό καταστάσεων γιατί αλλιώς A και A θα διαφέρουν στην αναγνώριση μιας τουλάχιστον λέξης εισόδου s Σ. Η ελαχιστοποίηση ενός αυτόματου γίνεται με την συγχώνευση ισοδύναμων καταστάσεων, σύμφωνα με συγκεκριμένα κριτήρια. Ο καθορισμός των καταστάσεων που θα συγχωνευθούν, δεν γίνεται με επιλογή αυτών, αλλά με αποκλεισμό των διαχωρίσιμων μεταξύ τους καταστάσεων. Τα κριτήρια σύμφωνα με τα οποία δύο καταστάσεις είναι διαχωρίσιμες είναι: 1. αν q A F και q B / F τότε οι καταστάσεις q A, q B είναι διαχωρίσιμες, 2. αν για τις καταστάσεις q A και q B ισχύει ότι για κάποια είσοδο s, οι r = δ(q A, s) και t = δ(q B, s) είναι ζεύγος διαχωρίσιμων καταστάσεων, τότε και οι καταστάσεις q A, q B είναι διαχωρίσιμες. Δηλαδή υπάρχει κάποια λέξη w για την οποία μία από τις δ(r, w), δ(t, w) είναι τελική κατάσταση, ενώ η άλλη δεν είναι. Συνεπώς η λέξη sw διαχωρίζει την καταστάση q A από την q B αφού δ(q A, sw) = δ(r, w) και δ(q B, sw) = δ(t, w). Στην περίπτωση της απλής ελαχιστοποίησης όπως στην παράγραφό μας όταν δύο καταστάσεις βρεθούν ισοδύναμες και πρέπει να συγχωνευθούν δεν έχει σημασία ποιά κατάσταση από τις δύο θα κρατήσουμε. Τα αποτελέσματα είναι συμμετρικά είτε επιλέξουμε τη μία είτε την άλλη. 3.3 Table filling algorithm Στην ενότητα αυτή παρουσιάζουμε τον Table filling algorithm, έναν αλγόριθμο αναδρομικής ανακάλυψης διαχωρίσιμων ζευγών που μας βοηθάει στη διαδικασία ελαχιστοποίησης του αυτομάτου.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 27 Δημιουργούμε έναν τετραγωνικό n n πίνακα, όπου n είναι οι χρήσιμες καταστάσεις του αυτομάτου. Ο πίνακας αυτός έχει στην αριστερή στήλη και την κάτω γραμμή τις χρήσιμες καταστάσεις του αυτομάτου. Τελικός σκοπός του πίνακα είναι να μας δώσει τα ζεύγη των διαχωρίσιμων καταστάσεων. Σε κάθε μία από τις περιπτώσεις που αναφέρονται παρακάτω βάζουμε x σε συγκεκριμένες θέσεις του πίνακα. Οι καταστάσεις στις οποίες αντιστοιχεί το x είναι διαχωρίσιμες. Τα τετραγωνάκια που θα μείνουν τελικά κενά, υποδεικνύουν τα ζεύγη των καταστάσεων που βρέθηκαν τελικά ισοδύναμα. Περιπτώσεις: Διαχωρίζουμε τις τελικές από τις μη τελικές καταστάσεις. Το ζεύγος (p, q) είναι διαχωρίσιμο αν p F και q / F. Σε αυτή την περίπτωση βάζουμε x στις θέσεις (p, q) και (q, p). Εάν για κάποια λέξη s Σ, το ζεύγος (δ(p, s), δ(q, s)) είναι διαχωρίσιμο, τότε και το ζεύγος (p, q) είναι επίσης διαχωρίσιμο. Προσθέτουμε λοιπόν x στις αντίστοιχες θέσεις. Θεώρημα 3.2 (Εγκυρότητα του Table filling algorithm). Αν δύο καταστάσεις δεν είναι διαχωρίσιμες σύμφωνα με τον table fillling algorithm, τότε οι καταστάσεις αυτές είναι ισοδύναμες. Απόδειξη. Θεωρούμε το αυτόματο A = (Q, Σ, δ, q 0, F ) και ας υποθέσουμε ότι ο ι- σχυρισμός μας δεν ισχύει, δηλαδή ότι υπάρχει ένα τουλάχιστον ζεύγος καταστάσεων q A, q B τέτοιο ώστε : 1. q A q B, με την έννοια ότι υπάρχει μια λέξη s τέτοια ώστε ακρίβως ένα από τα δ(q A, s) και δ(q B, s) F. 2. Ο table fillling algorithm δεν βρίσκει διαχωρίσιμες τις καταστάσεις q A και q B. Ενα τέτοιο ζεύγος καταστάσεων θα θεωρείται κακό ζεύγος. Αν υπάρχουν κακά ζεύγη, τότε υπάρχουν κάποια από αυτά τα οποία διαχωρίζονται από την μικρότερη λέξη ανάμεσα από πολλές λέξεις που διαχωρίζουν κακά ζεύγη.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 28 Ας είναι q A, q B ένα τέτοιο κακό ζεύγος καταστάσεων, και s = σ 1 σ 2... σ n μια λέξη τόσο μικρή όσο εκείνη που διαχωρίζει την καταστάση q A από την κατάσταση q B. Τότε ακριβώς μία από τις δ(q A, s) και δ(q B, s) F. Παρατηρούμε ότι η s δεν μπορεί να είναι η κενή λέξη, γιατί αυτό θα φαινόταν από τον table fillling algorithm. Οπότε n 1. Θεωρούμε r = δ(q A, σ 1 ) και t = δ(q B, σ 1 ). Οι καταστάσεις r, t είναι διαχωρίσιμες από την λέξη s = σ 2 σ 3... σ n, μιας και δ(r, s ) = δ(q A, s) και δ(t, s ) = δ(q B, s). Ομως η s είναι μικρότερη από κάθε λέξη που διαχωρίζει ένα κακό ζεύγος. Για αυτό το λόγο r, t δεν μπορεί να είναι ένα κακό ζεύγος. Αλλιώς, ο table fillling algorithm θα έπρεπε να είχε ανακαλύψει ότι αυτές είναι διαχωρίσιμες. Το επαγωγικό μέρος του table fillling algorithm δεν θα σταματήσει μέχρι να συμπεράνει ότι οι q A και q B είναι διαχωρίσιμες, μέχρι που να βρεί ότι r = δ(q A, σ 1 ) t = δ(q B, σ 1 ). Εχουμε αντικρούσει την υπόθεσή μας πως υπάρχει ένα κακό ζεύγος. Παράδειγμα 3.2. Δίνεται το παρακάτω πεπερασμένο προσδιοριστό αυτόματο: A = ({q 0, q 1, q 2, q 3, q 4, q 5 }, {a, b}, δ, q 0, {q 2, q 5 }). Θα εφαρμόσουμε τον table filling algorithm στο αυτόματό μας. Στο τέλος της διαδικασίας θα έχουμε διακρίνει ποιες καταστάσεις είναι διαχωρίσιμες και ποιες είναι ισοδύναμες. Σχήμα 3.3: DFA πριν την εφαρμογή του table filling algorithm
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 29 Οι καταστάσεις q 2 και q 5 F η κενή λέξη τις διαχωρίζει από τις υπόλοιπες. Τοποθετούμε λοιπόν x στις αντίστοιχες θέσεις. Σχήμα 3.4: Διαχωρισμός τελικών και μη τελικών καταστάσεων Για τις καταστάσεις q 0 και q 1 : Η κενή λέξη δεν τις διαχωρίζει, μιας και οι δυο είναι μη τελικές καταστάσεις. Με είσοδο το a, θα πάρουμε τις καταστάσεις q 1 και q 2 αντίστοιχα οι οποίες είναι διαχωρίσιμες, δηλαδή: q 0 q 1. Κατά τον ίδιο τρόπο διαχωρίζονται: q 0 q 4, q 4 q 3, q 3 q 1. Για τις καταστάσεις q 0 και q 3 : Η κενή λέξη δεν τις διαχωρίζει, μιας και οι δυο είναι μη τελικές καταστάσεις. Με είσοδο το a, θα πάρουμε τις καταστάσεις q 1 και q 3 οπότε οι καταστάσεις q 0 και q 3 δεν διαχωρίζονται. Με είσοδο το b, δεν υπάρχει πάλι διαχωρισμός αφού θα πάρουμε τις καταστάσεις q 4 και q 3 αντίστοιχα, οι οποίες δεν είναι τελικές. Ωστόσο, η είσοδος aa τις διαχωρίζει, γιατί δ(q 0, aa) = q 2 F, ενώ δ(q 3, aa) = q 3 / F.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 30 Σχήμα 3.5: Επιπλέον καταστάσεις που είναι διαχωρίσιμες Για τις καταστάσεις q 1 και q 4 : Η κενή λέξη δεν τις διαχωρίζει, μιας και οι δυο είναι μη τελικές καταστάσεις. Με είσοδο το a, πηγαίνουν στις καταστάσεις q 2 και q 5 αντίστοιχα, που είναι και οι δύο τελικές. Παρατηρούμε λοιπόν ότι, καμία είσοδος που ξεκινάει με a δεν μπορεί να τις διαχωρίσει μιας και για κάθε είσοδο s, δ(q 1, as) F και δ(q 4, as) F. Με είσοδο το b, και οι δύο πηγαίνουν στην κατάσταση q 3. Οπότε, καμία είσοδος που ξεκινάει με b δεν μπορεί να τις διαχωρίσει μιας και για κάθε είσοδο s, δ(q 1, bs) = δ(q 4, bs) = q 3. Αντίστοιχα δουλεύουμε και για τις q 2, q 5. Τελικά, μετά την εφαρμογή του αλγορίθμου προκύπτει ότι: q 1 q 4 και q 2 q 5. 3.4 Αλγόριθμος ελαχιστοποίησης ενός DFA Θεώρημα 3.3 (Χαρακτηρισμός των ελαχιστοποιημένων αυτομάτων). Εστω ένα DFA A = (Q, Σ, δ, q 0, F ). Θεωρείται ελαχιστοποιημένο, δηλαδή δεν μπορεί να αντικατασταθεί από κάποιο άλλο ισοδύναμο A με λιγότερες καταστάσεις, αν και μόνο αν, στο A:
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 31 1. δεν υπάρχει άχρηστη κατάσταση q A και 2. δεν υπάρχει ζεύγος διαφορετικών αλλά ισοδύναμων καταστάσεων q A q B. Κάθε ελαχιστοποιημένο αυτόματο είναι μοναδικό λόγω του ισομορφισμού, για κάθε αναγνωρίσιμη γλώσσα. Διατηρεί ακριβώς την συμπεριφορά του αυτομάτου. Θεώρημα 3.4. Αν δύο ελαχιστοποιημένα αυτόματα A = (Q, Σ, δ, q 0, F ) και A = (Q, Σ, δ, q 0, F ) είναι ισοδύναμα, τότε είναι ισόμορφα, δηλαδή υπάρχει μία συνάρτηση h : Q Q με τις ακόλουθες ιδιότητες: 1. Η συνάρτηση είναι αμφίεση, δηλαδή: αν q A q B, τότε h(q A ) h(q B ) για κάθε q A, q B Q, για κάθε q Q υπάρχει ένα q Q τέτοιο ώστε h(q) = q. 2. Η συνάρτηση διατηρεί την συμπεριφορά του αυτομάτου, δηλαδή: h(q 0 ) = q 0, h(δ(q, σ)) = δ (h(q), σ), για κάθε q Q και σ Σ, h(q) F αν και μόνο αν q F, για κάθε q Q. Το αντίστροφο του Θεωρήματος (3.4) ισχύει επίσης: Δύο ισόμορφα αυτόματα είναι ισοδύναμα. Αλγόριθμος 3.1. Είμαστε πλέον έτοιμοι να δώσουμε την τελική μορφή του αλγορίθμου ελαχιστοποίησης ενός πεπερασμένου προσδιοριστού αυτομάτου (DFA), A = (Q, Σ, δ, q 0, F ) : 1. Αρχικά, αφαιρούμε κάθε άχρηστη κατάσταση. 2. Χρησιμοποιούμε τον table fillling algorithm για να βρούμε όλα τα ζεύγη ισοδύναμων καταστάσεων. 3. Τοποθετούμε τις καταστάσεις του συνόλου Q στις κλάσεις ισοδυναμίας που δημιουργήσαμε.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 32 4. Κατασκευάζουμε το ελαχιστοποιημένο αυτόματο A = (Q, Σ, δ, q 0, F ) όπου: Q είναι οι κλάσεις ισοδυναμίας, Σ είναι το αλφάβητο εισόδου, δ είναι η συνάρτηση μεταφοράς, q 0 είναι η κλάση ισοδυναμίας που αποτελείται από την αρχική κατάσταση του A, και F είναι το σύνολο των κλάσεων ισοδυναμίας των τελικών καταστάσεων του A. Η δ ορίζεται ως εξής: Ας είναι D ένα σύνολο ισοδύναμων καταστάσεων του A και σ 1 Σ. Τότε πρέπει να υπάρχει μία κλάση ισοδυναμίας T τέτοια ώστε q A D, δ (q A, σ 1 ) T. Διαφορετικά, η σ 1 πηγαίνει τις q A, q B D σε καταστάσεις που βρίσκονται σε διαφορετικές κλάσεις ισοδυναμίας. Συνεπώς, q A q B και δεν θα ανήκουν στο ίδιο σύνολο ισοδύναμων καταστάσεων, D πράγμα άτοπο. Τελικά δ (D, σ 1 ) = T. Παράδειγμα 3.3. Θα χρησιμοποιήσουμε τον αλγόριθμου ελαχιστοποίησης ενός DFA 3.1 για να ελαχιστοποιήσουμε το παρακάτω αυτόματο A = ({A, B, C, D, E, F, G, H}, {0, 1}, δ, A, {C}). Σχήμα 3.6: Μη ελαχιστοποιημένο DFA
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 33 Σύμφωνα με τον αλγόριθμο ελαχιστοποίησης το πρώτο πράγμα που πρέπει να κάνουμε είναι να ελέγξουμε αν υπάρχουν άχρηστες καταστάσεις στο αυτόματό μας. Αρχικά, χρησιμοποιούμε την Πρόταση 3.1 για να βρούμε το A ac. Προκύπτει: I 0 = {A} I 1 = {B, F } I 2 = {C, G} I 3 = {E} I 4 = {H} I 5 =, και συνεπώς I i = για κάθε i 5. Ετσι: Q ac = I 0 I 1 I 2 I 3 I 4 = {A, B, C, E, F, G, H}. Χρησιμοποιούμε τώρα την Πρόταση 3.3 για να βρούμε το A coac που προκύπτει από το αυτόματο A ac. Εχουμε: F 0 = F = {C} F 1 = {B, F, H} F 2 = {A, E} F 3 = {G} F 4 =, και συνεπώς F i = για κάθε i 4. Ετσι: Q coac = F 0 F 1 F 2 F 3 = {A, B, C, E, F, G, H}. Το πεπερασμένο προσδιοριστό αυτόματο (A ac ) coac που δίνεται από το επόμενο διάγραμμα είναι ισοδύναμο με το αρχικό και έχει όλες του τις καταστάσεις χρήσιμες: Σχήμα 3.7: DFA με όλες του τις καταστάσεις χρήσιμες
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 34 Στη συνέχεια χρησιμοποιούμε τον Table filling algorithm για να βρούμε τα ζεύγη των ισοδύναμων καταστάσεων. Προκύπτουν οι παρακάτω πίνακες: Σχήμα 3.8: Πίνακας καταστάσεων με εφαρμογή του πρώτου κριτήριου: Αρχικά δεν υπάρχουν x στον πίνακα. Εφαρμόζοντας το πρώτο κριτήριο, διαχωρίζονται οι τελικές από τις μη τελικές καταστάσεις. Η κατάσταση C λοιπόν είναι η μόνη τελική κατάσταση, οπότε βάζουμε x σε κάθε ζεύγος που περιλαμβάνει την C. Για παράδειγμα, C G, αφού διαχωρίζονται από την κενή λέξη. Τώρα που ξέρουμε κάποια διαχωρίσιμα ζεύγη μπορούμε να ανακαλύψουμε και τα υπόλοιπα. Ας παρατηρήσουμε τι θα συμβεί εφαρμόζοντας το δεύτερο κριτήριο: Για τις καταστάσεις B και F : Η κενή λέξη δεν τις διαχωρίζει, μιας και οι δυο είναι μη τελικές καταστάσεις. Με είσοδο το 0, θα πάρουμε τις καταστάσεις G και C οι οποίες είναι διαχωρίσιμες, οπότε οι καταστάσεις B και F είναι διαχωρίσιμες. Για τις καταστάσεις A και G: Η κενή λέξη δεν τις διαχωρίζει, μιας και οι δυο είναι μη τελικές καταστάσεις. Με είσοδο το 1, θα πάρουμε τις καταστάσεις F και E οπότε οι καταστάσεις A και G δεν διαχωρίζονται.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 35 Με είσοδο το 0, δεν υπάρχει πάλι διαχωρισμός αφού θα πάρουμε τις καταστάσεις B και G αντίστοιχα, οι οποίες δεν είναι τελικές. Ωστόσο, η είσοδος 01 διαχωρίζει την κατάσταση A από την κατάσταση G, γιατί δ(a, 01) = C F, ενώ δ(g, 01) = E / F. Για τις καταστάσεις A και E: Η κενή λέξη δεν τις διαχωρίζει, μιας και οι δυο είναι μη τελικές καταστάσεις. Με είσοδο το 1, και οι δύο πάνε στην κατάσταση F. Οπότε, καμία είσοδος που ξεκινάει με 1 δεν μπορεί να τις διαχωρίσει μιας και για κάθε είσοδο s, δ(a, 1s) = δ(e, 1s). Με είσοδο το 0, πηγαίνουν στις καταστάσεις B, H αντίστοιχα και καμία από αυτές δεν είναι τελική. Ωστόσο οι καταστάσεις B και H δεν μας βοηθούν μιας και με είσοδο το 1 και οι δύο πηγαίνουν στην κατάσταση C και με είσοδο το 0 πηγαίνουν στην κατάσταση G. Οπότε A E. Την ίδια διαδικασία ακολουθούμε και για τα υπόλοιπα ζεύγη μέχρι που προκύπτει ο τελικός πίνακας.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 36 Σχήμα 3.9: Τελικός πίνακας ισοδύναμων καταστάσεων με εφαρμογή και του δεύτερου κριτήριου: Δημιουργούμε τις κλάσεις ισοδυναμίας σύμφωνα με τα αποτελέσματα που μας έδωσε ο table filling algorithm : ({A, E}, {B, H}, {C}, {F }, {G}). Είμαστε έτοιμοι να δώσουμε την τελική, ελαχιστοποιημένη μορφή του αυτομάτου μας. Σχήμα 3.10: Ελαχίστοποιημένο DFA Οι πέντε καταστάσεις του αντιστοιχούν στις πέντε κλάσεις των ισοδύναμων καταστάσεων.
ΚΕΦΑΛΑΙΟ 3. ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 37 Η αρχική κατάσταση είναι η {A, E}, μιας και η A ήταν η αρχική κατάσταση του αρχικού αυτομάτου. Η τελική κατάσταση είναι η C, μιας και ήταν η μόνη τελική κατάσταση του αρχικού αυτομάτου. Μπορούμε επίσης να δούμε ότι οι μεταβάσεις του Σχήματος 3.10 αντικατοπτρίζουν κατάλληλα τις μεταβάσεις του Σχήματος 3.6.
Κεφάλαιο 4 Υπερελαχιστοποίηση ενός DFA Σε αυτό το κεφάλαιο, παρουσιάζουμε τον αλγόριθμο (πολυωνυμικού-χρόνου) υπερελαχιστοποίησης ενός DFA (Deterministin Finite Automaton). Η γλώσσα που αναγνωρίζεται από το υπερελαχιστοποιημένο αυτόματο διαφέρει από την αρχική για συγκεκριμένες εισόδους. Το αυτόματο αυτό είναι σχεδόν ισοδύναμο με το αρχικό, έχει λιγότερες καταστάσεις από το αντίστοιχο ελαχιστοποιημένο και δεν είναι απαραίτητα μοναδικό. 4.1 Συγχώνευση σχεδόν ισοδύναμων καταστάσεων Ορισμός 4.1. Δύο καταστάσεις q A και q B είναι σχεδόν ισοδύναμες, το οποίο θα δηλώνεται ως q A q B, αν υπάρχει ένα k 0 τέτοιο ώστε για κάθε s Σ μήκους s k, ισχύει δ(q A, s) F αν και μόνο αν δ(q B, s) F. Για τις σχεδόν ισοδύναμες καταστάσεις q A, q B, ισχύει ότι η δ(q A, s) F ενώ η δ(q B, s) / F μόνο για συγκεκριμένες λέξεις s. Λήμμα 4.1. είναι μια σχέση ισοδυναμίας. Απόδειξη. Η είναι μια σχέση ισοδυναμίας αφού πληρεί τις παρακάτω ιδιότητες: 1. ανακλαστική: q A q A αν υπάρχει ένα k 0 τέτοιο ώστε για κάθε s Σ μήκους s k, ισχύει δ(q A, s) F αν και μόνο αν δ(q A, s) F 38
ΚΕΦΑΛΑΙΟ 4. ΥΠΕΡΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 39 2. συμμετρική: q A q B αν υπάρχει ένα k 0 τέτοιο ώστε για κάθε s Σ μήκους s k, ισχύει δ(q A, s) F αν και μόνο αν δ(q B, s) F q B q A 3. μεταβατική: Αν q A q B, τότε έχουμε κάποιο k 1 0 τέτοιο ώστε, για κάθε s Σ μήκους s k 1, οι καταστάσεις δ(q A, s) και δ(q B, s) είναι και οι δύο τελικές ή και οι δύο μη τελικές. Ομοίως, αν q B q C, τότε έχουμε κάποιο k 2 0 τέτοιο ώστε, για κάθε s Σ μήκους s k 2, οι καταστάσεις δ(q B, s) και δ(q C, s) είναι και οι δύο τελικές ή και οι δύο μη τελικές. Από αυτό προκύπτει ότι δ(q A, s) F αν και μόνο αν δ(q C, s) F, για κάθε s Σ μήκους s max {k 1, k 2 }. Τελικά, αν q A q B και q B q C τότε q A q C. Λήμμα 4.2. Αν q A q B, τότε για κάθε s Σ, δ(q A, s) δ(q B, s). Απόδειξη. Υποθέτουμε ότι για κάποιο s Σ, s k, q A = δ(q A, s) q B = δ(q B, s). Αφού q A q B υπάρχει τουλάχιστον μια λέξη s τέτοια ώστε δ(q A, s ) F, αν και μόνο αν δ(q B, s ) / F (χωρίς βλάβη της γενικότητας). Παίρνοντας όμως την παράθεση ss, προκύπτει ότι δ(q A, ss ) F αν και μόνο αν δ(q B, ss ) / F, ss k +1 q A q B. Άτοπο. Οπότε, αν δ(q A, s) δ(q B, s), για κάποιο s Σ, τότε q A q B. Λήμμα 4.3. q A q B αν και μόνο αν για κάθε σ Σ, δ(q A, σ) δ(q B, σ). Απόδειξη. Το επιχείρημα για την φορά, είναι μία ειδική περίπτωση του Λήμματος 4.2, χρησιμοποιώντας s = 1. Για την φορά, χρησιμοποιούμε το αλφάβητο εισόδου Σ = {σ 1, σ 2,..., σ m } και υποθέτουμε ότι για κάθε σύμβολο σ i Σ, δ(q A, σ i ) δ(q B, σ i ). Συνεπώς, υπάρχουν k i 0 τέτοια ώστε για κάθε s Σ μήκους s k i, οι καταστάσεις δ(δ(q A, σ i ), s) και δ(δ(q B, σ i ), s) είναι και οι δύο τελικές ή και οι δύο μη τελικές. Προκύπτει λοιπόν, ότι για κάθε s Σ μήκους s 1 + max {k 1, k 2,..., k m }, η δ(q A, s ) F αν και μόνο αν δ(q B, s ) F, οπότε q A q B.
ΚΕΦΑΛΑΙΟ 4. ΥΠΕΡΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 40 Ορισμός 4.2. Δύο αυτόματα A 1 = (Q 1, Σ, δ 1, q 0,1, F 1 ) και A 2 = (Q 2, Σ, δ 2, q 0,2, F 2 ) είναι σχεδόν ισοδύναμα, το οποίο θα δηλώνεται ως A 1 A 2, αν q 0,1 q 0,2. Δύο γλώσσες L 1 και L 2 είναι πεπερασμένα διαφορετικές, αν η συμμετρική τους διαφορά είναι πεπερασμένη, το οποίο θα δηλώνεται ως L 1 L 2. Δηλαδή τα σχεδόν ισοδύναμα αυτόματα συμφωνούν στην αναγνώριση όλων εκτός από πεπερασμένου πλήθους λέξεις, δηλαδή L(A 1 ) L(A 2 ). Ορισμός 4.3. Το αυτόματο A = (Q, Σ, δ, q 0, F ) είναι υπερελαχιστοποιημένο, αν δεν υπάρχει αυτόματο A = (Q, Σ, δ, q 0, F ) με λιγότερες καταστάσεις το οποίο να είναι σχεδόν ισοδύναμο με το A. Αν το A είναι υπερελαχιστοποιημένο, τότε κάθε A με λιγότερες καταστάσεις πρέπει να διαφέρει στην αναγνώριση όχι μόνο μιας λέξης εισόδου, αλλά για απείρως πολλές λέξεις εισόδου. Το παρακάτω λήμμα είναι χρήσιμο για την απλοποίηση του αλγορίθμου υπερελαχιστοποίησης. Λήμμα 4.4. Εστω A = (Q, Σ, δ, q 0, F ) ένα DFA χωρίς απρόσιτες καταστάσεις. Τότε, για κάθε ζεύγος διαφορετικών αλλά σχεδόν ισοδύναμων καταστάσεων q A q B ισχύει, q A, q B P, και καμία από τις δύο δεν είναι προσβάσιμη από την άλλη μέσω οποιουδήποτε μονοπατιού, ή υπάρχει μία κατάσταση q C K, τέτοια ώστε q C q A και q C q B (συμπεριλαμβανομένου του γεγονότος q C = q A ή q C = q B ). Απόδειξη. Αν τουλάχιστον μία από τις καταστάσεις ανήκει στο K, τότε η κατάσταση αυτή μπορεί να χρησιμοποιηθεί σαν την q C οπότε έχουμε τελειώσει. Τώρα υποθέτουμε ότι q A, q B P. Αν καμία από αυτές δεν είναι προσβάσιμη από την άλλη με κανένα μονοπάτι έχουμε τελειώσει και πάλι. Χωρίς βλάβη της γενικότητας, υποθέτουμε ότι q A, q B P, αλλά υπάρχει ένα μονοπάτι που συνδέει την q A με την q B. Δηλαδή, δ(q A, s) = q B, για κάποια λέξη s Σ, s ε.
ΚΕΦΑΛΑΙΟ 4. ΥΠΕΡΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 41 Τώρα, ας είναι q 0 = q A και q k+1 = δ(q k, s) για κάθε k 1. Μπορούμε εύκολα να δούμε πως αυτό μας δίνει μία ακολουθία καταστάσεων q 1, q 2, q 3,... τέτοιες ώστε η q k+1 να είναι προσβάσιμη από την q k. Προφανώς, μία τέτοια ακολουθία καταστάσεων πρέπει να περιέχει μία κατάσταση του πυρήνα, μιας και κάποιες καταστάσεις θα πρέπει να επαναλαμβάνονται, δηλαδή θα πρέπει να έχουμε q i = q i για κάποιο i < i. Τότε όμως q i,..., q i K και βρίσκονται κατά μήκος ενός κύκλου. Αφού ισχύει q 0 = q A, αρκεί να δείξουμε ότι q 0 q 1 q 2.... Αρχικά, q 0 = q A q B = δ(q A, s) = δ(q 0, s) = q 1. Για αυτό το λόγο q 0 q 1. Σύμφωνα με το Λήμμα 4.2 και χρησιμοποιώντας επαγωγικά q k q k+1, παίρνουμε ότι δ(q k, s) δ(q k+1, s), που με την σειρά του δίνει q k+1 q k+2. Ετσι, παίρνοντας q C = q i, παίρνουμε μία κατάσταση του πυρήνα σχεδόν ισοδύναμη με την q A = q 0. Θεώρημα 4.1. Θεωρούμε ένα DFA A = (Q, Σ, δ, q 0, F ). Αν q A q B, τότε, για κάθε s Σ μήκους s card(q) 2, ισχύει ότι δ(q A, s) δ(q B, s). Απόδειξη. Θεωρούμε q A q B και για κάποιο s Σ μήκους s card(q) 2 ισχύει ότι q A = δ(q A, s ) δ(q B, s ) = q B. Τότε υπάρχει τουλάχιστον μία λέξη a Σ τέτοια ώστε (χωρίς βλάβη της γενικότητας) δ(q A, a) F ενώ δ(q B, a) F. Συνεπώς, δ(q A, s a) F, ενώ δ(q B, s a) / F. Η λέξη s Σ είναι αρκτετά μεγάλη ώστε να μπορεί να γραφεί στη μορφή s = σ 1 σ 2... σ l, για κάποια σύμβολα σ 1, σ 2,..., σ l Σ, με l card(q) 2 αφού s card(q) 2. Θεωρούμε λοιπόν τα παρακάτω ζεύγη καταστάσεων q (0) A, q(0) B, q (1) A, q(1) B, q (2) A, q(2) B,..., q (l) A, q(l) B, όπου q (i) A = δ(q A, σ 1... σ i ) και q (i) B = δ(q B, σ 1... σ i ), για i = 0, 1, 2,..., l. Θεωρούμε επίσης q (0) A, q(0) B = q A, q B και q (l) A, q(l) B = q A, q B. Εύκολα παρατηρούμε ότι τα ζεύγη καταστάσεων είναι περισσότερα από card(q) 2 αλλά κάθε q (i) A, q(i) B Q Q. Αναγκαστικά λοιπόν ισχύει ότι q (i ) A, ) q(i B = q (i ) A, ) q(i B, για κάποια i και i που ικανοποιούν το 0 i i l. Χωρίζουμε λοιπόν την s ως εξής: s = s 1 s 2 s 3, όπου s 1 = σ 1... σ i, s 2 = σ i +1... σ i, και s 3 = σ i +1... σ l (υπάρχει και η περίπτωση s 1 = ε ή s 3 = ε, όμως s 2 ε ), έτσι ώστε:
ΚΕΦΑΛΑΙΟ 4. ΥΠΕΡΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 42 δ(q A, s 1 ) = q (i ) A, δ(q(i ) A, s 2) = q (i ) A = q(i ) A, δ(q(i ) A, s 3) = q A, και δ(q A, a) F, δ(q B, s 1 ) = q (i ) B, ) δ(q(i B, s 2) = q (i ) B = ) q(i B, ) δ(q(i B, s 3) = q B, και δ(q B, a) / F. Με την επανάληψη της λέξης s 2 άπειρες φορές, παίρνουμε άπειρες λέξεις : s 1 s 2 s 3 a, s 1 s 2 s 2 s 3 a, s 1 s 2 s 2 s 2 s 3 a,..., για τις οποίες, ξεκινώντας από την q A και q B οι καταστάσεις που θα προκύψουν αντίστοιχα θα είναι η μία τελική και η άλλη μη τελική. Ως εκ τούτου, αν δ(q A, s ) δ(q B, s ) για κάποιο s Σ μήκους s card(q) 2, τότε q A q B. Άτοπο. Δηλαδή αν δώσουμε στο αυτόματό μας μία λέξη με αρκετά μεγάλο μήκος και την τρέξουμε στο αυτόματο ξεκινώντας από δύο σχεδόν ισοδύναμες καταστάσεις q A, q B τότε οι καταστάσεις που θα προκύψουν δεν θα είναι σχεδόν ισοδύναμες όπως θα περιμέναμε αλλά θα είναι ισοδύναμες. 4.2 Χαρακτηρισμός των υπερελαχιστοποιημένων αυτομάτων Θεώρημα 4.2. Θεωρούμε ένα DFA A = (Q, Σ, δ, q 0, F ). Αν στο A, (α) υπάρχει μία απρόσιτη κατάσταση q A, ή (β) (γ) υπάρχει ένα ζεύγος διαφορετικών αλλά ισοδύναμων καταστάσεων q A q B, ή υπάρχει ένα ζεύγος διαφορετικών αλλά σχεδόν ισοδύναμων καταστάσεων q A q B, τέτοιο ώστε τουλάχιστον μία από αυτές να βρίσκεται στο προοίμιο, τότε το A μπορεί να αντικατασταθεί από ένα σχεδόν ισοδύναμο DFA A = (Q, Σ, δ, q 0, F ) που χρησιμοποιεί λιγότερες καταστάσεις. Απόδειξη. Σε περίπτωση που ισχύουν τα (α),(β), τότε όπως ήδη γνωρίζουμε μπορούμε να αντικαταστήσουμε το A με ένα ισοδύναμο A (άρα και σχεδόν ισοδύναμο) που χρησιμοποιεί λιγότερες καταστάσεις. Θεωρούμε λοιπόν ότι ισχύει το (γ), αλλά δεν ισχύει το (α). Σύμφωνα με το Λήμμα 2.2:
ΚΕΦΑΛΑΙΟ 4. ΥΠΕΡΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ DFA 43 1. είτε q A P και q A δεν είναι προσβάσιμη από την q B, 2. είτε q B P και q B δεν είναι προσβάσιμη από την q A. Εστω ότι ισχύει το (i). Το A θα προκύψει απλά ανακατευθύνοντας όλα τα μονοπάτια που τελειώνουν στην q A, από την q A στην q B. Δηλαδή, A = (Q \ {q A }, Σ, δ, q 0, F \ {q A }), όπου δ(q, s), αν δ(q, s) q δ A (q, s) = q B, αν δ(q, s) = q A για κάθε q Q \ {q A } και s Σ. Ομοίως, q q 0, αν q 0 q A 0 = q B, αν q 0 = q A Το A χρησιμοποιεί μικρότερο αριθμό καταστάσεων από το A. Το μόνο που μένει να αποδείξουμε είναι πως A A. Η q A P υπάρχει μία σταθερά k 1 0 τέτοια ώστε q A = δ(q 0, β) για κάποιες λέξεις β Σ, με β k 1. Επίσης q A q B υπάρχει μία σταθερά k 2 0 τέτοια ώστε β Σ, μήκους β k 2, ισχύει ότι δ(q A, β) F αν και μόνο αν δ(q B, β) F. Θεωρούμε τη λέξη s Σ, μήκους s k 1 + k 2 : Αν εισάγουμε την s στο A και στο μονοπάτι που θα δημιουργηθεί δεν υπάρχει η q A, τότε το ίδιο μονοπάτι θα δημιουργηθεί και στο A. Σε αυτή την περίπτωση λοιπόν τα A, A αναγνωρίζουν τις ίδιες λέξεις. Αν εισάγουμε την s στο A και εμφανιστεί η q A τότε τα πράγματα αλλάζουν. (Η q A δεν θα μπορούσε να εμφανιστεί πάνω από μία φορά αφού q A P ). Γνωρίζουμε ότι s k 1 + k 2 s = s 1 s 2 έτσι ώστε δ(q 0, s 1 ) = q A s 1 k 1 και s 2 k 2. s L(A) αν και μόνο αν : δ(q 0, s) F δ(q 0, s 1 s 2 ) F δ(δ(q 0, s 1 ), s 2 ) F δ(q A, s 2 ) F. s L(A ) αν και μόνο αν : δ (q 0, s) F δ (q 0, s 1 s 2 ) F δ (δ (q 0, s 1 ), s 2 ) F δ (q B, s 2 ) F δ(q B, s 2 ) F.