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

Σχετικά έγγραφα
Εισαγωγή στην Επιστήμη των Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.

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

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

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

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

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

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

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

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

Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι. Εαρινό Εξάμηνο Lec /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

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

Γλώσσες Χωρίς Συμφραζόμενα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τυπικές Γραμματικές και Άλλα Αυτόματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων)

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

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

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

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

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

Γλώσσες Χωρίς Συμφραζόμενα

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

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

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

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

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

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

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

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

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

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις

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

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

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

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

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

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

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

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

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

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

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

Υπολογίσιμες Συναρτήσεις

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

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

Κεφάλαιο 2: Τυπικές γλώσσες

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

Τεχνητή Νοημοσύνη. 21η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

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 s } L 1 = {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 αποδέχεται συμβολοσειρά w αν δ(q 0,w) 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 αποδέχεται συμβολοσειρά w ανν δ(q 0,w) 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 Συγχώνευση qi, qm x 1 x 2 x k 0, 1 0 q 0 q im q 1 y 1 y 2 y n 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

Γλώσσες, αυτόματα, γραμματικές Τυπικές γλώσσες: χρησιμοποιούνται για την περιγραφή υπολογιστικών προβλημάτων αλλά και γλωσσών προγραμματισμού. Αυτόματα: χρησιμεύουν για την αναγνώριση τυπικών γλωσσών και για την κατάταξη της δυσκολίας των αντίστοιχων προβλημάτων. Tυπικές γραμματικές: άλλοςτρόποςπεριγραφής τυπικών γλωσσών. Κάθε τυπική γραμματική παράγει μια τυπική γλώσσα. 47

Τυπικές γλώσσες Πρωταρχικές έννοιες: σύμβολα, παράθεση. Αλφάβητο: πεπερασμένο σύνολο συμβόλων. Π.χ. {0,1}, {x,y,z}, {a,b}. Λέξη (ή συμβολοσειρά, ή πρόταση) ενός αλφαβήτου: πεπερασμένου μήκους ακολουθία συμβόλων του αλφαβήτου. Π.χ. 011001, abbbab. w = μήκος λέξης w. ε = κενή λέξη, ε = 0. Άλλες έννοιες: πρόθεμα (prefix), κατάληξη (suffix), υποσυμβολοσειρά (substring), αντίστροφη (reversal), παλινδρομική ή καρκινική (palindrome). 48

Τυπικές γλώσσες (συν.) vw = παράθεση λέξεων v και w. Ισχύει: εx = xε = x, για κάθε συμβολοσειρά x. ορισμός x n με πρωταρχική αναδρομή: x 0 = ε x k+1 = x k x Σ*: το σύνολο όλων των λέξεων του αλφαβήτου Σ. Γλώσσα απότοαλφάβητοσ: κάθε σύνολο συμβολοσειρών L Σ*. 49

Παράδειγμα γραμματικής για την γλώσσα των περιττών αριθμών S A 1 A A 0 A A 1 A ε S: το αρχικό σύμβολο A: μη τερματικό σύμβολο 0,1: τερματικά σύμβολα ε: η κενή συμβολοσειρά Τα S και A αντικαθίστανται με βάση τους κανόνες Κάθε περιττός προκύπτει από το S με κάποια σειρά έγκυρων αντικαταστάσεων Κανονική παράσταση: (0+1)*1 50

Τυπικές γραμματικές (i) Μια τυπική γραμματική G αποτελείται από: ένα αλφάβητο V από μη τερματικά σύμβολα (μεταβλητές), ένα αλφάβητο T από τερματικά σύμβολα (σταθερές), τ.ω. V T =, ένα πεπερασμένο σύνολο P από κανόνες παραγωγής, δηλαδή διατεταγμένα ζεύγη (α,β), όπου α,β (V T)* και α ε (σύμβαση: γράφουμε α β αντί για (α,β)), ένα αρχικό σύμβολο (ή αξίωμα) S V. 51

Τυπικές γραμματικές (ii) Σύμβαση για τη χρήση γραμμάτων: a, b, c, d,... T : πεζά λατινικά, τα αρχικά του αλφαβήτου, συμβολίζουν τερματικά A, B, C, D,... V : κεφαλαία λατινικά συμβολίζουν μη τερματικά u, v, w, x, y, z... T* : πεζά λατινικά, τα τελευταία του αλφαβήτου, συμβολίζουν συμβολοσειρές τερματικών α, β, γ, δ,... (V T)* : ελληνικά συμβολίζουν οποιεσδήποτε συμβολοσειρές (τερματικών και μη) 52

Τυπικές γραμματικές (iii) Ορισμοί για τις παραγωγές: Λέμε ότι γ 1 αγ 2 παράγει γ 1 βγ 2,και συμβολίζουμε με γ 1 αγ 2 γ 1 βγ 2, αν ο α β είναι κανόνας παραγωγής (δηλαδή (α,β) P). Συμβολίζουμε με * το ανακλαστικό, μεταβατικό κλείσιμο του, δηλαδή, α * β («το α παράγει το β») σημαίνει ότι υπάρχει μια ακολουθία: α α 1 α 2... α k β. Γλώσσα που παράγεται από τη γραμματική G: L(G):= {w T* S * w }. γραμματικές G 1, G 2 ισοδύναμες αν L(G 1 ) = L(G 2 ). 53

Παράδειγμα τυπικής γραμματικής S ε αsb: σύντμηση των S ε και S αsb Μία δυνατή ακολουθία παραγωγής: Γλώσσα που παράγεται: 54

Ιεραρχία Γραμματικών Chomsky 55

Ιεραρχία Chomsky: μια εκπληκτική σύμπτωση (;) τύπου 0 ΤΜ (μηχανές Turing) τύπου 1 LBA (γραμμικά περιορισμένα αυτόματα) τύπου 2 PDA (pushdown automata) τύπου 3 DFA (και NFA) 56

Κανονικές Γραμματικές Οι κανονικές γραμματικές είναι γραμματικές όπου όλοι οι κανόνες είναι της μορφής: Δεξιογραμμικοί (right linear) A wb ή A w Αριστερογραμμικοί (left linear) A Bw ή A w (όπου w είναι μια ακολουθία από τερματικά σύμβολα της γλώσσας) Θεώρημα: οι κανονικές γλώσσες είναι οι γλώσσες που παράγονται από κανονικές γραμματικές 57

Ισοδυναμία κανονικών γραμματικών και DFA Χρησιμοποιούμε τη δεξιογραμμική μορφή: A wb αντιστοιχεί με Α w Β A w αντιστοιχεί με Α w S αντιστοιχεί με q 0 58

Μία ακόμη ισοδυναμία! Θεώρημα: οι κανονικές γλώσσες είναι οι γλώσσες που περιγράφονται από κανονικές παραστάσεις 59

Κανονικές παραστάσεις (regular expressions) 60

Ορισμός κανονικών παραστάσεων Κανονικές παραστάσεις: παριστάνουν γλώσσες που προκύπτουν από απλά σύμβολα ενός αλφαβήτου με τις πράξεις παράθεση, ένωση, και άστρο του Kleene. : παριστάνει κενή γλώσσα ε : παριστάνει {ε} α : παριστάνει {α}, α Σ (r+s) : παριστάνει R U S, R = L(r), S = L(s) (rs) : παριστάνει RS, R = L(r), S = L(s) (r*) : παριστάνει R*, R = L(r) όπου L(t) η γλώσσα που παριστάνεται από καν. παρ. t 61

Παραδείγματα κανονικών παραστάσεων Προτεραιότητα τελεστών: άστρο Kleene παράθεση ένωση 62

Ισοδυναμία κανονικών παραστάσεων και αυτομάτων Θεώρημα: Μια γλώσσα L μπορεί να παρασταθεί με κανονική παράσταση ανν είναι κανονική (δηλαδή L=L(M) για κάποιο πεπερασμένο αυτόματο M) Ιδέα απόδειξης: => : Επαγωγή στη δομή της κανονικής παράστασης r : 63

2. Επαγωγικό βήμα. Έστω ότι για r 1, r 2 έχουμε αυτόματα Μ 1, Μ 2, με τελικές καταστάσεις f 1, f 2 : 64

Ισοδυναμία κανονικών παραστάσεων και αυτομάτων (συν.) <= : Κατασκευή κανονικής παράστασης από FA. Απαλείφουμε ενδιάμεσες καταστάσεις σύμφωνα με το σχήμα: 65

Παράδειγμα κατασκευής κανονικής παράστασης από FA 66

Παράδειγμα κατασκευής κανονικής παράστασης από FA 67

Είναι όλες οι γλώσσες κανονικές; Ηαπάντησηείναι«όχι» Για να το αποδείξουμε χρησιμοποιούμε ένα σημαντικό θεώρημα που λέγεται Pumping Lemma (Λήμμα Άντλησης) 68

Pumping Lemma (διαίσθηση) Αν μια γλώσσα L είναι κανονική τότε την αποδέχεται ένα DFA με πεπερασμένο αριθμό καταστάσεων, έστω n. Έστω λέξη z με z >n που ανήκει στη γλώσσα, άρα γίνεται αποδεκτή από το αυτόματο. Καθώς επεξεργαζόμαστε το z, το αυτόματο πρέπει να περάσει ξανά από κάποια κατάσταση (αρχή περιστερώνα): Αφού z=uvw L θα πρέπει και uv i w L, για κάθε i N 69

Pumping Lemma (διατύπωση) Έστω κανονική γλώσσα L. Τότε: 70

Pumping Lemma (με λόγια) Έστω κανονική γλώσσα L. Τότε: υπάρχει ένας φυσικός n (= πλήθος καταστάσεων του DFA) ώστε: για κάθε z L με μήκος z n υπάρχει «σπάσιμο» του z σε u, v, w, δηλαδή z = uvw, με uv n και v >0 ώστε για κάθε i = 0, 1, 2,... : uv i w L 71

Απόδειξη ότι μια γλώσσα δεν είναι κανονική Χρήση του Pumping Lemma για να δείξουμε ότι μια (μη πεπερασμένη) γλώσσα L δεν είναι κανονική: αν η L ήταν κανονική: τότε το PL λέει ότι υπάρχει n εμείς επιλέγουμε z L με μήκος z n το PL λέει ότι υπάρχει «σπάσιμο» z = uvw, με uv n και v >0 εμείς επιλέγουμε i ώστε η λέξη uv i w να μην είναι στη γλώσσα L ΑΤΟΠΟ 72

Παράδειγμα χρήσης Pumping Lemma (i) Θεώρημα: Η γλώσσα L = {z: z έχει το ίδιο πλήθος 0 και 1} δεν είναι κανονική. Απόδειξη: το PL λέει ότι υπάρχει n εμείς επιλέγουμε z = 0 n 1 n L με μήκος z = 2n n z = 000000000 0111111111 1 n n το PL λέει ότι υπάρχει «σπάσιμο» z = uvw, με uv n και v >0 73

Παράδειγμα χρήσης Pumping Lemma (ii) Υπάρχει μία μόνο (ουσιαστικά) περίπτωση: w = 0...00...00 0111111111 1 u v w Η επανάληψη του v δίνει λέξεις που δεν είναι στη γλώσσα L: π.χ. uv 2 w δεν ανήκει στην L. ΑΤΟΠΟ Επομένως η L δεν είναι κανονική. 74

Δεύτερο παράδειγμα χρήσης PL (i) Θεώρημα: L = {0 i 1 j : i > j} δεν είναι κανονική. Απόδειξη: το PL λέει ότι υπάρχει n εμείς επιλέγουμε z = 0 n+1 1 n L με μήκος z = 2n+1 n z = 000000000 01111111 1 n+1 n το PL λέει ότι υπάρχει «σπάσιμο» z = uvw, με uv n και v > 0. 75

Δεύτερο παράδειγμα χρήσης PL (ii) Υπάρχει μία μόνο (ουσιαστικά) περίπτωση: z = 0...00...00 0111111111 1 u v w η επανάληψη του v δίνει λέξεις της γλώσσας (;) από πρώτη άποψη αυτό φαίνεται προβληματικό το λήμμα ορίζει ότι θα πρέπει για κάθε i 0, uv i w L όμως, η λέξηuv 0 w δεν είναι στην L. ΑΤΟΠΟ Επομένως η L δεν είναι κανονική. 76

Το Pumping Lemma με επιχείρημα αντιπάλου (adversary argument) 77

Παράδειγμα χρήσης Pumping Lemma με επιχείρημα αντιπάλου ΑΤΟΠΟ 78

Context Free Grammars 79

Γραμματικές Χωρίς Συμφραζόμενα (Context Free) [i] 80

Γραμματικές Χωρίς Συμφραζόμενα (Context Free) [ii] 81

Συντακτικά Δένδρα (parse trees) (i) Φύλλωμα (leafstring): aaabbb και bbba αντίστοιχα. 82

Συντακτικά Δένδρα (parse trees) (ii) 83

Συντακτικά Δένδρα (parse trees) (iii) 84

Διφορούμενες γραμματικές Μια γραμματική G ονομάζεται διφορούμενη (ambiguous) αν υπάρχουν δύο συντακτικά δένδρα με το ίδιο φύλλωμα w L(G) 85

Εγγενώς διφορούμενες γραμματικές Για την γλώσσα του προηγούμενου παραδείγματος υπάρχει και μη διφορούμενη γραμματική που την παράγει (άσκηση). Υπάρχουν όμως και γλώσσες χωρίς συμφραζόμενα για τις οποίες όλες οι γραμματικές που τις παράγουν είναι διφορούμενες. Μια τέτοια γλώσσα (καθώς και κάθε γραμματική που την παράγει) λέγεται εγγενώς διφορούμενη (inherently ambiguous). Παράδειγμα: 86

Απλοποίηση Γραμματικών 87

Κανονικές Μορφές 88

Αλγόριθμος CYK 89

Αυτόματα Στοίβας (PushDown Automata PDA) [i] 90

Αυτόματα Στοίβας (PushDown Automata PDA) [ii] 91

Αυτόματα Στοίβας (PushDown Automata PDA) [iii] 92

Αυτόματα Στοίβας (PushDown Automata PDA) [iv] 93

Αυτόματα Στοίβας (PushDown Automata PDA) [v] 94

Σχέση context free γλωσσών και PDA 95

Γενικές Γραμματικές (i) 96

Γενικές Γραμματικές (ii) 97

Γραμματικές με Συμφραζόμενα (context sensitive) [i] 98

Γραμματικές με συμφραζόμενα (context sensitive) [ii] 99

Σχέση context sensitive γλωσσών και LBA 100

Iεραρχία κλάσεων γλωσσών 101

Θεωρία γλωσσών και γραμματικών Εφαρμογές σε: Ψηφιακή Σχεδίαση, Γλώσσες Προγραμματισμού, Μεταγλωττιστές, Τεχνητή Νοημοσύνη, Θεωρία Πολυπλοκότητας Ιστορικά σημαντικοί ερευνητές: Chomsky, Backus, Rabin, Scott, Kleene, Greibach, κ.α. 102