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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

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

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Transcript:

Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσ.h.m.μ.y. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές Στάθης Ζάχος Συνεργασία: Κωστής Σαγώνας Επιμέλεια: Πάνος Χείλαρης, Βαγγέλης Μπαμπάς, Γεωργία Καούρη 1 Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων καταστάσεων: Συστήματα που έχουν εσωτερικές καταστάσεις και προκαθορισμένο τρόπο μετάβασης από μία κατάσταση σε άλλη με βάση την τρέχουσα κατάσταση και την είσοδο (συνήθως ενέργεια κάποιου χρήστη). Μπορεί να έχουν και έξοδο. Εφαρμογές σε πλήθος επιστημονικών πεδίων 2 Παράδειγμα: πωλητής καφέ (i) Προδιαγραφές ύο είδη καφέ: ελληνικός ή φρέντο. Κόστος καφέ: 40 λεπτά. Επιτρέπονται κέρματα 10, 20, ή 50 λεπτών. Παράδειγμα: πωλητής καφέ (ii) Σχεδίαση του συστήματος Εσωτερικές καταστάσεις: q0, q1, q2, q3, q4, q5 (qi: εκφράζει ότι έχουν δοθεί μέχρι στιγμής 10*i λεπτά). Πιθανές είσοδοι (ενέργειες): Ρ1, Ρ2, Ρ5 (ρίψη κέρματος 10, 20, ή 50 λεπτών), Κ1, Κ2 (πάτημα κουμπιού 1 για ελληνικό καφέ, ή 2 για φρέντο). Πιθανές έξοδοι: E1, E2, E3, E4, E5 (Ei: εκφράζει ότι επιστρέφονται 10*i λεπτά), ΕΛ (παροχή ελληνικού καφέ), ΦΡ (παροχή φρέντο). 3 4 Παράδειγμα: πωλητής καφέ (iii) Πίνακας καταστάσεων: δείχνει ποια είναι η επόμενη κατάσταση και η έξοδος για κάθε συνδυασμό τρέχουσας κατάστασης και εισόδου. Αρχική κατάσταση: q0. Είσοδος Κατάστ. q0 q1 q2 q3 q4 Ρ1 q1, - q2, - q3, - q4, - q4, Ε1 Ρ2 q2, - q3, - q4, - q4, Ε1 q4, E2 Ρ5 q4, Ε1 q4, E2 q4, E3 q4, E4 q4, E5 Κ1 q0, - q1, - q2, - q3, - q0, ΕΛ Κ2 q0, - q1, - q2, - q3, - q0, ΦΡ Παράδειγμα: πωλητής καφέ (iv) ιάγραμμα καταστάσεων: παρέχει τις ίδιες πληροφορίες με τον πίνακα καταστάσεων με πιο εποπτικό τρόπο. Αρχική κατάσταση: q0 (σημειώνεται με βέλος). Ρ1/E1 Ρ2/E2 Ρ5/E5 K1/EΛ K2/ΦΡ q0 q4 Ρ5/E1 Ρ5/E2 Ρ1/- Ρ2/- q3 q1 K1/- K2/- q2 K1/- K2/- Ρ1/- 5 6 1

Αυτόματα (i) Ένα αυτόματο έχει μερικές εσωτερικές καταστάσεις q 0, q 1, q 7, q 15,..., και μια συνάρτηση μετάβασης δ που καθορίζει την επόμενη κατάσταση του αυτομάτου με βάση την τρέχουσα κατάσταση και την συμβολοσειρά εισόδου. Αυτόματα (ii) Μηχανισμοί: χωρίς είσοδο έξοδο. δ(q ) i = q j εκτέλεση: q 0 q j q k q m... Αυτόματα πεπερασμένων καταστάσεων (FSA): με είσοδο που γίνεται αποδεκτή ή απορρίπτεται. δ(q i, α) =q j ( εισόδου (a είναι ένα από τα σύμβολα της εκτέλεση: εξαρτάται από την είσοδο 7 8 Παράδειγμα FSA για αναγνώριση περιττών αριθμών 1 0 q 0 q 1 1 0 q 0 : το τελευταίο ψηφίο που διαβάστηκε είναι διάφορο του 1. q 1 : το τελευταίο ψηφίο που διαβάστηκε είναι ίσο με 1. η q 0 είναι αρχική κατάσταση ενώ η q 1 είναι κατάσταση αποδοχής (ή τελική). 9 Ισχυρότερα αυτόματα Μηχανές πεπερασμένων καταστάσεων (FSM): είναι ( β FSA με έξοδο: δ(q i, α) = (q j, Αυτόματα στοίβας (PDA, pushdown automata): έχουν πολύ περισσότερες δυνατότητες καθώς έχουν μνήμη (σε μορφή στοίβας). Μηχανές Turing (TM): έχουν ακόμη περισσότερες δυνατότητες καθώς έχουν απεριόριστη μνήμη (σε μορφή ταινίας). Γραμμικά περιορισμένα αυτόματα (LBA): είναι ΤΜ με μνήμη περιορισμένη γραμμικά ως προς το μήκος της εισόδου. 10 Αυτόματα και τυπικές γλώσσες Τυπικές γλώσσες Τυπικές γλώσσες: χρησιμοποιούνται για την περιγραφή υπολογιστικών προβλημάτων αλλά και γλωσσών προγραμματισμού. Αυτόματα: χρησιμεύουν για την αναγνώριση τυπικών γλωσσών και για την κατάταξη της δυσκολίας των αντίστοιχων προβλημάτων. Κάθε αυτόματο (χωρίς έξοδο) αναγνωρίζει μια τυπική γλώσσα. 11 12 2

Ορισμός DFA Παράδειγμα DFA 13 14 Παράδειγμα γλώσσας με DFA και γλώσσας χωρίς DFA Επέκταση ορισμού συνάρτησης δ DFA έχεται ως ορίσματα μια κατάσταση q και μια συμβολοσειρά w και δίνει την κατάσταση όπου θα βρεθεί το αυτόματο αν ξεκινήσει από την q και διαβάσει την w. 15 16 Γλώσσα αποδεκτή από DFA Μη ντετερμινιστικά πεπερασμένα αυτόματα (NFA) 17 18 3

Παράδειγμα NFA Τυπικός ορισμός NFA 19 20 Γλώσσα αποδεκτή από NFA Ισοδυναμία DFA και NFA (i) Σημείωση: η συνάρτησηδ είναι επεκτεταμένη ώστε να δέχεται σαν ορίσματα μια κατάσταση q και μια συμβολοσειρά w και να δίνει το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το αυτόματο αν ξεκινήσει από την q καιδιαβάσειτηνw. 21 22 Ισοδυναμία 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. Παράδειγμα μετατροπής NFA σε DFA NFA για τη γλώσσα L 4 ("2 συνεχόμενα a "): DFA για τη γλώσσα L 4 : 23 24 4

Παράδειγμα μετατροπής NFA σε DFA (ii) DFA για τη γλώσσα L 4 : NFA ε Τα μη ντετερμινιστικά αυτόματα με ε-κινήσεις (NFA ε ) επιτρέπουν και ορισμένες μεταβάσεις χωρίς να διαβάζεται σύμβολο (ισοδύναμα: με είσοδο το κενό string ε). Αποδέχονται τις συμβολοσειρές που μπορούν να οδηγήσουν σε τελική κατάσταση, χρησιμοποιώντας ενδεχομένως και ε-κινήσεις. 25 26 Τυπικός ορισμός NFA ε Γλώσσα αποδεκτή από NFA ε Σημείωση: η συνάρτηση δ είναι επεκτεταμένη ώστε να δέχεται σαν ορίσματα μια κατάσταση q και μια συμβολοσειρά w και να δίνει το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το αυτόματο αν ξεκινήσει από την q καιδιαβάσειτηνw, χρησιμοποιώντας ενδεχομένως και ε-κινήσεις όπου αυτό επιτρέπεται. 27 28 ε-κλείσιμο Για να ορίσουμε τυπικά την αποδοχή σε NFA ε, αλλά και για να δείξουμε την ισοδυναμία με DFA, χρειαζόμαστε την έννοια του ε-κλεισίματος μιας κατάστασης q, που είναι το σύνολο των καταστάσεων στις οποίες μπορεί να φτάσει το αυτόματο ξεκινώντας από την q και χρησιμοποιώντας μόνο ε-κινήσεις. 29 Ισοδυναμία 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 και χρησιμοποιώντας στη συνέχεια ε-κινήσεις. 30 5

Παράδειγμα ισοδυναμίας NFA ε και DFA Ελαχιστοποίηση DFA Εξαλείφουμε τις απρόσιτες καταστάσεις Σημειώνουμε ως διακρίσιμες δύο καταστάσεις αν: η μία είναι τελική ενώ η άλλη όχι οδηγούν με ένα ή περισσότερα σύμβολα σε διακρίσιμες καταστάσεις (βλ. παρακάτω για αναλυτική μέθοδο) Συγχωνεύουμε ισοδύναμες (= μη διακρίσιμες) καταστάσεις. 31 32 Εύρεση διακρίσιμων καταστάσεων Παράδειγμα ελαχιστοποίησης DFA Κατασκευάζουμε πίνακα για να συγκρίνουμε κάθε ζεύγος καταστάσεων. Βάζουμε ένα X σε κάθε θέση του πίνακα κάθε φορά που ανακαλύπτουμε ότι δύο καταστάσεις δεν είναι ισοδύναμες. Αρχικά εγγράφουμε X σε όλα τα ζεύγη που προφανώς διακρίνονται γιατί η μία είναι τελική και η άλλη δεν είναι. Μετά προσπαθούμε να δούμε αν διακρίνονται δύο καταστάσεις, διότι από αυτές με ένα σύμβολο a οδηγούμαστε σε διακρίσιμες καταστάσεις. Επαναλαμβάνουμε την πιο πάνω προσπάθεια ώσπου να μην προστίθεται κανένα X πια στον πίνακα. Τα υπόλοιπα ζευγάρια είναι μη διακρίσιμα, δηλαδή ισοδύναμα (και επομένως συγχωνεύσιμα). 33 34 Παραδ. ελαχιστοποίησης DFA (συν.) 2ο παραδ. ελαχιστοποίησης DFA DFA για τη γλώσσα L 4 = { w {a,b}* w περιέχει 2 συνεχόμενα a }: 35 36 6

Γλώσσες, αυτόματα, γραμματικές Τυπικές γλώσσες: χρησιμοποιούνται για την περιγραφή υπολογιστικών προβλημάτων αλλά και γλωσσών προγραμματισμού. Αυτόματα: χρησιμεύουν για την αναγνώριση τυπικών γλωσσών και για την κατάταξη της δυσκολίας των αντίστοιχων προβλημάτων. Κάθε αυτόματο (χωρίς έξοδο) αναγνωρίζει μια τυπική γλώσσα. Tυπικές γραμματικές: άλλος τρόπος περιγραφής τυπικών γλωσσών. Κάθε τυπική γραμματική παράγει μια τυπική γλώσσα. Τυπικές γλώσσες Πρωταρχικές έννοιες: σύμβολα, παράθεση. Αλφάβητο: πεπερασμένο σύνολο συμβόλων. Π.χ. {0,1}, {x,y,z}, {a,b}. Λέξη (ή συμβολοσειρά, ή πρόταση) ενός αλφαβήτου: πεπερασμένου μήκους ακολουθία συμβόλων του αλφαβήτου. Π.χ. 011001, abbbab. w = μήκος λέξης w. ε = κενή λέξη. vw = παράθεση λέξεων v και w. Άλλες έννοιες: πρόθεμα (prefix), κατάληξη (suffix), υποσυμβολοσειρά (substring), αντίστροφη (reversal), παλινδρομική ή καρκινική (palindrome). 37 38 Τυπικές γλώσσες (συν.) Παράδειγμα γραμματικής για την γλώσσα των περιττών αριθμών S Χ 1 Χ Χ 0 Χ Χ 1 Χ ε S: το αρχικό σύμβολο X: μη τερματικό σύμβολο 0,1: τερματικά σύμβολα ε: η κενή συμβολοσειρά Τα S και X αντικαθίστανται με βάση τους κανόνες 39 40 Τυπικές γραμματικές (i) Τυπικές γραμματικές (ii) 41 42 7

Παράδειγμα τυπικής γραμματικής Ιεραρχία Γραμματικών Chomsky Πιθανή ακολουθία παραγωγής: Γλώσσα που παράγεται: 43 44 Ιεραρχία Γραμματικών Chomsky Κανονικές Εκφράσεις (Regular Expressions) 45 46 Ορισμός κανονικών εκφράσεων Παραδείγματα κανονικών εκφράσεων 47 48 8

Ισοδυναμία Κανονικών Παραστάσεων και Αυτομάτων 2. Επαγωγικό βήμα. Έστω ότι για r1, r2 έχουμε αυτόματα Μ1, Μ2, με τελικές καταστάσεις f1, f2: 49 50 Ισοδυναμία Κανονικών Παραστάσεων και Αυτομάτων (συν.) <= : Κατασκευή κανονικής παράστασης από FA Παράδειγμα κατασκευής κανονικής παράστασης από FA Απαλείφουμε ενδιάμεσες καταστάσεις σύμφωνα με το σχήμα: 51 52 Κανονικές Γραμματικές Γλώσσες που δεν είναι regular Οι κανονικές γραμματικές είναι γραμματικές όπου όλοι οι κανόνες είναι της μορφής: εξιά γραμμικοί (right linear) A wb ή A w Αριστερά γραμμικοί (left linear) A Bw ή A w (όπου w είναι μια ακολουθία από τερματικά σύμβολα της γλώσσας) Οι κανονικές γλώσσες είναι γλώσσες που παράγονται από κανονικές γραμματικές 53 54 9

Pumping Lemma Έστω άπειρη κανονική γλώσσα L. Τότε: υπάρχει ένας φυσικός n ώστε για κάθε w L με μήκος τουλάχιστον n υπάρχει «σπάσιμο» του w σε x, y, z, w = x δηλαδή w = xyz, με xy n και y > 0 ώστε για κάθε i = 0, 1, 2,... : x y i z L y z Μη Κανονικές Γλώσσες Χρήση του Pumping Lemma γιαναδείξουμε ότι μια γλώσσα L δεν είναι κανονική: έστω ότι η L είναι κανονική τότε υπάρχει ένα μήκος n (pumping length) επιλέγουμε ένα w L με μήκος τουλάχιστον n και επιχειρηματολογούμε ότι για κάθε τρόπο γραφής w = xyz που ικανοποιεί τις συνθήκες του λήμματος, το «φούσκωμα» του y δίνει μία λέξη που δεν είναι στη γλώσσα L άρα καταλήγουμε σε άτοπο. Στάθης Ζάχος,, 55 Στάθης Ζάχος,, 56 Παράδειγμα χρήσης Θεώρημα: Η γλώσσα L = {w: w έχει τον ίδιο αριθμό από 0 και 1} δεν είναι κανονική. Απόδειξη: έστω n το μήκος «φουσκώματος» του L επιλέγουμε w = 0 n 1 n w = 000000000 0111111111 1 w = xyz, με y > 0 και xy n. p p Παράδειγμα χρήσης (συν.) 3 ενδεχόμενα (αν ξεχάσουμε ότι xy n ): w = 000000000 0111111111 1 x y z w = 000000000 0111111111 1 x y z w = 000000000 0111111111 1 x y z στις πρώτες 2 περιπτώσεις, το «φούσκωμα» του y δίνει λέξεις που δεν είναι στη γλώσσα L η 3 η περίπτωση θέλει περισσότερη προσοχή Στάθης Ζάχος,, 57 Στάθης Ζάχος,, 58 Παράδειγμα χρήσης (συν.) Ας θυμηθούμε τώρα τη συνθήκη: xy n επειδή w = 0 n 1 n, η περίπτωση αυτή δεν είναι δυνατή: w = 000000000 0111111111 1 x y z άρα, και σε αυτήν την περίπτωση καταλήγουμε σε άτοπο και κατά συμπέρασμα η L δεν είναι κανονική. εύτερο παράδειγμα χρήσης Θεώρημα: L = {0 i 1 j : i > j} δεν είναι κανονική. Απόδειξη: έστω n το μήκος «φουσκώματος» του L επιλέγουμε w = 0 n+1 1 n w = 000000000 01111111 1 n+1 n w = xyz, με y > 0 και xy n. Στάθης Ζάχος,, 59 Στάθης Ζάχος,, 60 10

εύτερο παράδειγμα χρήσης (συν.) Ένα μόνο ενδεχόμενο: w = 000000000 0111111111 1 x y z το φούσκωμα του y δίνει λέξεις της γλώσσας (;) από πρώτη άποψη αυτό φαίνεται προβληματικό το λήμμα ορίζει ότι για κάθε i 0, xy i z L Όμως, ηλέξηxy 0 z δεν είναι στην L. Άρα η L δεν είναι κανονική. Εναλλακτική χρήση Pumping Lemma (adversary argument) Στάθης Ζάχος,, 61 62 Παράδειγμα χρήσης Pumping Lemma με adversary argument Γραμματικές Χωρίς Συμφραζόμενα Άτοπο. 63 64 Συντακτικά ένδρα 65 66 11

67 68 69 70 Απλοποίηση Γραμματικών Κανονικές Μορφές 71 72 12

Αλγόριθμος CYK Αυτόματα Στοίβας (PushDown Automata PDA) 73 74 75 76 77 78 13

Σχέση c.f. γλωσσών και PDA Γενικές Γραμματικές 79 80 Γραμματικές Με Συμφραζόμενα ( sensitive (context 81 82 Σχέση c.s. γλωσσών και LBA 83 84 14

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