Εισαγωγή στην Επιστήμη των Υπολογιστών

Σχετικά έγγραφα
Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6

Εισαγωγή στην Επιστήμη των Υπολογιστών

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Περιεχόμενα. 1 Υπολογισιμότητα. Ιστορία - Εισαγωγή. Μαθηματικό Υπόβαθρο. LOOP: Μια απλή γλώσσα προγραμματισμού

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA)

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

Σειρά Προβλημάτων 4 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

Εισαγωγή στην Επιστήμη των Υπολογιστών

Σειρά Προβλημάτων 4 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 4: Μη Ντετερμινιστικά (Αντιαιτιοκρατικά) Πεπερασμένα Αυτόματα (ΝFA)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 9: Αυτόματα Στοίβας (Pushdown Automata - PDA)

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Σειρά Προβλημάτων 4 Λύσεις

Πεπερασμένα Αυτόματα. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Τα Θεμέλια της Πληροφορικής

Πεπερασμένα Αυτόματα και Κανονικές Παραστάσεις

Σειρά Προβλημάτων 1 Λύσεις

Μεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Θεωρία Υπολογισμού και Πολυπλοκότητα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 5: Κανονικές Εκφράσεις

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Σειρά Προβλημάτων 1 Λύσεις

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

Φροντιστήριο 10 Λύσεις

Φροντιστήριο 9 Λύσεις

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΛΗ30 ΕΝΟΤΗΤΑ 3: ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ. Μάθηµα 3.2: ηµήτρης Ψούνης

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 12: Μηχανές Turing

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Σειρά Προβλημάτων 5 Λύσεις

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2): Αυτόµατα Στοίβας. Παραδείγµατα Σχεδιασµού CFG. Παράδειγµα 1.

Ασκήσεις από παλιές εξετάσεις

Η δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ

Σειρά Προβλημάτων 1 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (3) Παραδείγµατα µε Κανονικές Εκφράσεις. Σε αυτό το µάθηµα.

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 10: Αυτόματα Στοίβας II

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Θεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα

Κανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Σε αυτό το µάθηµα. Εισαγωγή στις Μηχανές Turing. Μηχανή Turing (Turing Machine - TM) Μηχανές Turing. Παραδείγµατα Μηχανών Turing

Θεωρία Υπολογισμού και Πολυπλοκότητα

Σειρά Προβλημάτων 3 Λύσεις

HEAD INPUT. q0 q1 CONTROL UNIT

Σειρά Προβλημάτων 1 Λύσεις

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 14: Διαγνωσιμότητα (Επιλυσιμότητα)

Θεωρία Υπολογισμού. Ενότητα 7 : Ντετερμινιστικά Πεπερασμένα Αυτόματα, Κανονικές Πράξεις. Αλέξανδρος Τζάλλας

Φροντιστήριο 2 Λύσεις

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Φροντιστήριο 2 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

Θεωρία Υπολογισμού και Πολυπλοκότητα To Δόγμα Church-Turing

Παραλλαγές και επεκτάσεις αυτομάτων I

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Σειρά Προβλημάτων 5 Λύσεις

Αλγόριθμοι για αυτόματα

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Υπολογισμού και Πολυπλοκότητα

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α.

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Μηχανές Turing (T.M) I

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 15: Διαγνωσιμότητα (Επιλυσιμότητα) ΙΙ

Ασκήσεις Επανάληψης. Επανάληψη Εαρινό Εξάμηνο 2019 Σελίδα 1

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

771 Η - Θεωρία Υπολογισµών και Αλγορίθµων

Σειρά Προβλημάτων 3 Λύσεις

Transcript:

Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 6η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/introcs 1

Μηχανές πεπερασμένων καταστάσεων (FSM) Τρόπος κωδικοποίησης αλγορίθμων Τρόπος περιγραφής συστημάτων πεπερασμένων καταστάσεων: Συστήματα που έχουν εσωτερικές καταστάσεις και προκαθορισμένο τρόπο μετάβασης από μία κατάσταση σε άλλη με βάση την τρέχουσα κατάσταση και την είσοδο (συνήθως ενέργεια κάποιου χρήστη). Μπορεί να έχουν και έξοδο. Εφαρμογές σε πλήθος επιστημονικών πεδίων 2

Παράδειγμα: μηχάνημα καφέ (i) Προδιαγραφές Δύοείδηκαφέ: ελληνικός ή φρέντο. Κόστος καφέ: 40 λεπτά. Επιτρέπονται κέρματα 10, 20, ή 50 λεπτών. 3

Παράδειγμα: μηχάνημα καφέ (ii) Σχεδίαση του συστήματος Εσωτερικές καταστάσεις: q 0, q 1, q 2, q 3, q 4, q 5 q i : έχουν δοθεί μέχρι στιγμής 10*i λεπτά Πιθανές είσοδοι (ενέργειες): P1, P2, P5, K1, K2 Ρ1, Ρ2, Ρ5: ρίψη κέρματος 10, 20, ή 50 λεπτών Κ1, Κ2: κουμπί 1 για ελληνικό καφέ, 2 για φρέντο Πιθανές έξοδοι: E1, E2, E3, E4, E5, ΕΛ, ΦΡ E i : επιστρέφονται 10*i λεπτά ΕΛ: παροχή ελληνικού καφέ ΦΡ: παροχή φρέντο 4

Παράδειγμα: μηχάνημα καφέ (iii) Πίνακας καταστάσεων: δείχνει ποια είναι η επόμενη κατάσταση και η έξοδος για κάθε συνδυασμό τρέχουσας κατάστασης και εισόδου. Αρχική κατάσταση: q0. Είσοδος Κατάστ. q 0 Ρ1 q 1, - Ρ2 q 2, - Ρ5 q 4, Ε1 Κ1 q 0, - Κ2 q 0, - q 1 q 2, - q 3, - q 4, E2 q 1, - q 1, - q 2 q 3, - q 4, - q 4, E3 q 2, - q 2, - q 3 q 4, - q 4, Ε1 q 4, E4 q 3, - q 3, - q 4 q 4, Ε1 q 4, E2 q 4, E5 q 0, ΕΛ q 0, ΦΡ 5

Παράδειγμα: μηχάνημα καφέ (iv) Διάγραμμα καταστάσεων: παρέχει τις ίδιες πληροφορίες με τον πίνακα καταστάσεων με πιο εποπτικό τρόπο. Αρχική κατάσταση: q 0 (σημειώνεται με βέλος). Ρ1/- K1/- q 0 q K2/- 1 Ρ5/E2 K1/EΛ K2/ΦΡ Ρ5/E1 Ρ1/- Ρ1/E1 Ρ2/E2 Ρ5/E5 q 4 Ρ2/- q 3 q 2 K1/- K2/- 6

Παράδειγμα II: αριθμητική modulo Κατασκευή μηχανής που να κάνει την πράξη n mod 3 Πόσες καταστάσεις χρειαζόμαστε; Χρήση ιδιότητας: n mod 3 = (n 1 +...+n k ) mod 3, n i τα (δεκαδικά) ψηφία του n Αποδείξτε το! 0,3,6,9 / 0 1,4,7 / 1 q 0 q 1 2,5,8 / 0 0,3,6,9 / 1 1,4,7 / 0 2,5,8 / 2 1,4,7 / 2 2,5,8 / 1 0,3,6,9 / 2 q 2 7

Παράδειγμα II: αριθμητική modulo Απλοποίηση: αν ενδιαφέρει μόνο η διαιρετότητα με το 3 δεν χρειάζεται έξοδος Ορίζουμε καταστάσεις αποδοχής (διπλός κύκλος) 0,3,6,9 1,4,7 q 0 q 1 2,5,8 0,3,6,9 1,4,7 2,5,8 1,4,7 2,5,8 0,3,6,9 q 2 εκτέλεση με είσοδο 403: (q 0 )403 4(q 1 )03 40(q 1 )3 403(q 1 ) ΑΠΟΡΡΙΨΗ 8

Αυτόματα Μηχανές πεπερασμένων καταστάσεων χωρίς έξοδο: κάποιες καταστάσεις αποδέχονται, ενώ οι υπόλοιπες απορρίπτουν. Καταστάσειςαποδοχήςσυμβολίζονταιμε επιπλέον κύκλο. Ένα αυτόματο έχει κάποιες εσωτερικές καταστάσεις q 0, q 1, q 7, q 15,..., και μια συνάρτηση μετάβασης δ που καθορίζει την επόμενη κατάσταση του αυτομάτου με βάση την τρέχουσα κατάσταση και την συμβολοσειρά εισόδου. Αποδέχεται ή απορρίπτει τη συμβολοσειρά εισόδου. Αναγνωριστές γλωσσών (= προβλήματα απόφασης). 9

Αυτόματα και τυπικές γλώσσες Τυπικές γλώσσες: χρησιμοποιούνται για την περιγραφή υπολογιστικών προβλημάτων αλλά και γλωσσών προγραμματισμού. Π.χ. L = {x {0,1}* x κωδικοποίηση πρώτου αριθμού} Αυτόματα: χρησιμεύουν για την αναγνώριση τυπικών γλωσσών και για την κατάταξη της δυσκολίας των αντίστοιχων προβλημάτων: Κάθε αυτόματο αναγνωρίζει μια τυπική γλώσσα: το σύνολο των συμβολοσειρών που το οδηγούν σε κατάσταση αποδοχής. 10

Παράδειγμα: αναγνώριση περιττών 1 0 q 0 q 1 1 0 q 0 : τελευταίο ψηφίο διάφορο του 1 q 1 : τελευταίο ψηφίο ίσο με 1 η q 0 λέγεται αρχική κατάσταση ενώ η q 1 λέγεται κατάσταση αποδοχής (ή τελική) εκτέλεση με είσοδο 0110: (q 0 )0110 0(q 0 )110 01(q 1 )10 011(q 1 )0 0110(q 0 ) ΑΠΟΡΡΙΨΗ εκτέλεση με είσοδο 101: (q 0 )101 1(q 1 )01 10(q 0 )1 101(q 1 ) ΑΠΟΔΟΧΗ 11

Άλλα αυτόματα Μηχανισμοί: χωρίς είσοδο έξοδο: δ(q i ) = q j εκτέλεση: q 0 -> q j -> q k -> q m... Αυτόματα στοίβας (PDA, pushdown automata): έχουν πολύ περισσότερες δυνατότητες καθώς μπορούν να χρησιμοποιήσουν γραμμικά περιορισμένη (ως προς το μήκος της εισόδου) μνήμη (σε μορφή στοίβας). Μηχανές Turing (TM): έχουν ακόμη περισσότερες δυνατότητες καθώς έχουν απεριόριστη μνήμη (σε μορφή ταινίας, με δυνατότητα επιστροφής). Γραμμικά περιορισμένα αυτόματα (LBA): είναι ΤΜ με γραμμικά περιορισμένη μνήμη (σε μορφή ταινίας, με δυνατότητα επιστροφής). 12

Άλλες τυπικές γλώσσες L 1 = {w {a, b} w begins with a} L 2 = {w {1, 3} w contains even # of 1 0 s} L 3 = {w Σ w is a palindrome} 13

Ορισμός DFA Ντετερμινιστικό πεπερασμένο αυτόματο (Deterministic Finite Automaton, DFA): πεντάδα Μ = (Q,Σ,δ,q 0,F) Q : το σύνολο των καταστάσεων του Μ (πεπερασμένο), π.χ. Q = {q 0, q 1, q 7, q 15 } Σ : πεπερασμένο αλφάβητο εισόδου (Σ Q = ), π.χ. Σ = {0,1} δ : Q x Σ Q : συνάρτηση μετάβασης, π.χ. δ(q i,0) = q j q 0 Q : αρχική κατάσταση F Q: σύνολο τελικών καταστάσεων (αποδοχής), π.χ. F = {q 1, q 15 } 14

Παράδειγμα DFA L 1 = {w {a, b} w begins with a} εκτέλεση με είσοδο abba : (q 0 )abba a(q 1 )bba ab(q 1 )ba abb(q 1 )a abba(q 1 ) ΑΠΟΔΟΧΗ 15

Γλώσσα με DFA και γλώσσα χωρίς DFA 16

Αποδοχή DFA: τυπικοί ορισμοί Επέκταση συνάρτησης δ: Q x Σ* Q Η επεκτεταμένη δ δέχεται ως ορίσματα μια κατάσταση q και μια συμβολοσειρά u και δίνει την κατάσταση όπου θα βρεθεί το αυτόματο αν ξεκινήσει από την q και διαβάσει την u. Ορισμός επεκτεταμένης δ (σχήμα πρωταρχικής αναδρομής): δ(q, ε) =q δ(q, wa) =δ(δ(q, w),a) όπου w είναι συμβολοσειρά οποιουδήποτε μήκους, ενώ α απλό σύμβολο του αλφαβήτου 17

Αποδοχή DFA: τυπικοί ορισμοί Ένα DFA αποδέχεται μία συμβολοσειρά u ανν δ(q 0,u) F Ένα DFA M αποδέχεται τη γλώσσα L(M) = {w δ(q 0,w) F} Οι γλώσσες που γίνονται αποδεκτές από DFA λέγονται κανονικές 18

Μη ντετερμινιστικά αυτόματα Ντετερμινιστικά αυτόματα: για κάθε κατάσταση και σύμβολο εισόδου υπάρχει μοναδική επόμενη κατάσταση Μη-ντετερμινιστικά αυτόματα: για κάθε κατάσταση και σύμβολο εισόδου υπάρχει επιλογή από σύνολο δυνατών επόμενων κατάστασεων 19

Μη ντετερμινιστικά πεπερασμένα αυτόματα NFA (Non-deterministic Finite Automaton): για κάθε κατάσταση και σύμβολο εισόδου επιλέγεται μία από ένα σύνολο δυνατών επόμενων κατάστασεων. NFAε (NFA με ε-κινήσεις): μπορεί να αλλάζει κατάσταση χωρίς ανάγνωση επόμενου συμβόλου. 20

Παράδειγμα NFA 21

Παράδειγμα NFA Δένδρο υπολογισμού για είσοδο aabaa ΑΠΟΔΟΧΗ 22

Τυπικός ορισμός NFA πεντάδα Μ = (Q,Σ,δ,q 0,F) Q : το σύνολο των καταστάσεων του Μ (πεπερασμένο) Σ : πεπερασμένο αλφάβητο εισόδου (Σ Q = ) δ : Q x Σ Pow(Q) : συνάρτηση μετάβασης, π.χ. δ(q i,1) = {q j, q k, q m } q 0 Q : αρχική κατάσταση F Q: σύνολο τελικών καταστάσεων (αποδοχής) Σημείωση: αν για κάποιο συνδυασμό κατάστασης και συμβόλου εισόδου η συνάρτηση μετάβασης δίνει κενό σύνολο τότε το NFA απορρίπτει την συμβολοσειρά εισόδου. 23

Αποδοχή NFA: τυπικοί ορισμοί Ένα ΝFA αποδέχεται συμβολοσειρά u αν δ(q 0,u) F=. Ένα DFA M αποδέχεται τη γλώσσα L(M) = {w δ(q 0,w) F= } Σημείωση: η συνάρτησηδ είναι επεκτεταμένη ώστε να δέχεται σαν ορίσματα μια κατάσταση q και μια συμβολοσειρά w και να δίνει το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το αυτόματο αν ξεκινήσει από την q και διαβάσει την w. 24

Ισοδυναμία DFA και NFA (i) Θεώρημα Rabin-Scott: για κάθε NFA υπάρχει ένα DFA που αποδέχεται την ίδια γλώσσα. Επομένως τα DFA και τα NFA αναγνωρίζουν ακριβώς την ίδια κλάση γλωσσών (κανονικές γλώσσες). 25

Ισοδυναμία DFA και NFA (ii) Έστω το NFA Μ = (Q,Σ,q 0,F,δ). Ένα ισοδύναμο DFA M'= (Q',Σ,q ' 0,F',δ'), ορίζεται ως εξής: Q' = Pow(Q), δηλαδή οι καταστάσεις του Μ είναι όλα τα υποσύνολα καταστάσεων του Μ. q ' 0 = {q 0 }, F' = {R Q' R F }, δηλαδή μια κατάσταση του Μ είναι τελική αν περιέχει μια τελική κατάσταση του Μ. δ'(r, a) = {q Q q δ(r, a) για r R}, δηλαδή δ'(r, a) είναι το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το Μ ξεκινώντας από οποιαδήποτε κατάσταση του R και διαβάζοντας a. 26

Μετατροπή NFA σε DFA (i) NFA για τη γλώσσα L 4 ("2 συνεχόμενα a ") DFA για τη γλώσσα L 4 27

Μετατροπή NFA σε DFA (ii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 28

Μετατροπή NFA σε DFA (iii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 29

Μετατροπή NFA σε DFA (iv) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 30

Μετατροπή NFA σε DFA (v) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 31

Μετατροπή NFA σε DFA (vi) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 32

Αυτόματα με ε-κινήσεις: NFA ε Επιτρέπουν μεταβάσεις χωρίς να διαβάζεται σύμβολο (ισοδύναμα: με είσοδο το κενό string ε). Αποδέχονται τις συμβολοσειρές που μπορούν να οδηγήσουν σε τελική κατάσταση, χρησιμοποιώντας ενδεχομένως και ε-κινήσεις. 33

Τυπικός ορισμός NFA ε πεντάδα Μ = (Q,Σ,δ,q 0,F) Q : το σύνολο των καταστάσεων του Μ (πεπερασμένο) Σ : πεπερασμένο αλφάβητο εισόδου (Σ Q = ) δ : Q x (Σ {ε}) Pow(Q) : συνάρτηση μετάβασης, π.χ. δ(q i,1) = {q j, q k, q m }, δ(q i,ε) = {q k, q n } q 0 Q : αρχική κατάσταση F Q: σύνολο τελικών καταστάσεων (αποδοχής) 34

Αποδοχή NFA ε : τυπικοί ορισμοί Ένα ΝFA αποδέχεται συμβολοσειρά u ανν δ(q 0,u) F= Ένα DFA M αποδέχεται τη γλώσσα L(M) = {w δ(q 0,w) F= } Σημείωση: η συνάρτησηδ είναι επεκτεταμένη ώστε να δέχεται σαν ορίσματα μια κατάσταση q και μια συμβολοσειρά w και να δίνει το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το αυτόματο αν ξεκινήσει από την q και διαβάσει την w, χρησιμοποιώντας ενδεχομένως και ε-κινήσεις όπου αυτό επιτρέπεται. 35

Συνάρτηση ε-κλείσιμο ΓιαναορίσουμετυπικάτηναποδοχήσεNFAε, αλλά και για να κάνουμε μετατροπή NFAε σε DFA (ισοδυναμία), χρειαζόμαστε την έννοια του ε-κλεισίματος μιας κατάστασης q, που είναι το σύνολο των καταστάσεων στις οποίες μπορεί να φτάσει το αυτόματο ξεκινώντας από την q και χρησιμοποιώντας μόνο ε- κινήσεις Ορισμός. Ως ε-κλείσιμο: Q -> Pow(Q) ορίζουμε τη συνάρτηση ε-κλείσιμο(q) = {p p προσβάσιμο από q μόνο με ε-κινήσεις} 36

Ισοδυναμία NFA ε και DFA Έστω το NFA ε Μ = (Q,Σ,q 0,F,δ). Ένα ισοδύναμο DFA M'= (Q',Σ,q ' 0,F',δ'), ορίζεται ως εξής: Q' = Pow(Q), δηλαδή οι καταστάσεις του Μ είναι όλα τα υποσύνολα καταστάσεων του Μ. q ' 0 = ε-κλείσιμο(q 0 ), F' = {R Q' R F }, δηλαδή μια κατάσταση του Μ είναι τελική αν περιέχει μια τελική κατάσταση του Μ. δ'(r, a) = {q Q q ε-κλείσιμο(δ(r, a)) για r R}, δηλαδή δ'(r, a) είναι το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το Μ ξεκινώντας από οποιαδήποτε κατάσταση του R και διαβάζοντας a και χρησιμοποιώντας στη συνέχεια ε-κινήσεις. 37

Παράδειγμα ισοδυναμίας NFA ε και DFA 38

Ελαχιστοποίηση DFA (i) Δύο καταστάσεις μπορούν να συγχωνευτούν σε μία (είναι ισοδύναμες) αν: οδηγούν με τα ίδια σύμβολα στο ίδιο αποτέλεσμα x 1 x 2 x k q i 0 0, 1 q 0 1 q 1 1 y 1 y 2 y n q m 0 39

Ελαχιστοποίηση DFA (ii) Αρχικό DFA x 1 x 2 x k q 0 1 q 1 y 1 y 2 y n q i 0 0 0, 1 1 q m x 1 x 2 x k Συγχώνευση q i, q m 0 q 0 q im q 1 y 1 y 2 y n 0, 1 1 40

Ελαχιστοποίηση DFA: παράδ/μα Αρχικό DFA: Ελάχιστο DFA: 41

Μέθοδος ελαχιστοποίησης DFA Εξαλείφουμε τις απρόσιτες καταστάσεις Αντί να εντοπίζουμε ισοδύναμες, σημειώνουμε τις μη ισοδύναμες (διακρίσιμες) καταστάσεις: η μία είναι τελική ενώ η άλλη όχι οδηγούν με ένα ή περισσότερα σύμβολα σε διακρίσιμες καταστάσεις Επαναλαμβάνουμε τη διαδικασία Συγχωνεύουμε ισοδύναμες (= μη διακρίσιμες) καταστάσεις 42

Η μέθοδος αναλυτικά Κατασκευάζουμε πίνακα για να συγκρίνουμε κάθε ζεύγος καταστάσεων. Γράφουμε X στην αντίστοιχη θέση του πίνακα κάθε φορά που ανακαλύπτουμε ότι δύο καταστάσεις είναι διακρίσιμες. Αρχικά γράφουμε X σε όλα τα ζεύγη που προφανώς διακρίνονται γιατί η μία είναι τελική και η άλλη δεν είναι. Στη συνέχεια γράφουμε Χ σε ζεύγη καταστάσεων αν από αυτές με κάποιο σύμβολο a οδηγούμαστε σε διακρίσιμες καταστάσεις. Επαναλαμβάνουμε την πιο πάνω προσπάθεια ώσπου να μην προστίθεται κανένα X πια στον πίνακα. Τα υπόλοιπα ζευγάρια είναι μη διακρίσιμα, δηλαδή ισοδύναμα (και επομένως συγχωνεύονται). 43

Παράδειγμα εφαρμογής της μεθόδου 44

Παράδειγμα εφαρμογής της μεθόδου 45

2 ο παράδειγμα ελαχιστοποίησης DFA DFA για τη γλώσσα L 4 = { w є {a,b}* w περιέχει 2 συνεχόμενα a }: 46