Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation
|
|
- Κυρία Διδασκάλου
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - ΕΜΠ Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
2 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Περιεχόμενα 1 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Ιδιότητες κανονικών συνόλων Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA 2 Τυπικές Γλώσσες Τυπικές Γραμματικές Απλοποίηση cf γραμματικών Αυτόματα στοίβας (pushdown automata) Ιδιότητες cf γλωσσών 3 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή LOOP: Μια απλή γλώσσα προγραμματισμού Προγράμματα WHILE και μερικές αναδρομικές συναρτήσεις Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
3 Αυτόματα και τυπικές γλώσσες Τυπικές γλώσσες: χρησιμοποιούνται για την κωδικοποίηση υπολογιστικών προβλημάτων αλλά και τον ορισμό γλωσσών προγραμματισμού Πχ L = {x {0,1}* x δυαδική γραφή πρώτου αριθμού} Αυτόματα: χρησιμεύουν για την αναγνώριση τυπικών γλωσσών και για την κατάταξη της δυσκολίας των αντίστοιχων προβλημάτων: Κάθε αυτόματο αναγνωρίζει μια τυπική γλώσσα: το σύνολο των συμβολοσειρών που το οδηγούν σε κατάσταση αποδοχής 11
4 Παράδειγμα: αναγνώριση περιττών 1 0 q 0 q 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 ) ΑΠΟΔΟΧΗ 12
5 Άλλα αυτόματα Μηχανισμοί: χωρίς είσοδο έξοδο: δ(q i ) = q j εκτέλεση: q 0 -> q j -> q k -> q m Αυτόματα στοίβας (PDA, pushdown automata): έχουν πολύ περισσότερες δυνατότητες καθώς μπορούν να χρησιμοποιήσουν μνήμη (σε μορφή στοίβας) Μηχανές Turing (TM): έχουν ακόμη περισσότερες δυνατότητες καθώς έχουν απεριόριστη μνήμη (σε μορφή ταινίας, με δυνατότητα επιστροφής) Γραμμικά περιορισμένα αυτόματα (LBA): είναι ΤΜ με μνήμη γραμμικά περιορισμένη (ως προς το μήκος της εισόδου) 13
6 Άλλες τυπικές γλώσσες 14
7 Παράδειγμα: DFA για L 1 εκτέλεση με είσοδο abba : (q 0 )abba a(q 1 )bba ab(q 1 )ba abb(q 1 )a abba(q 1 ) ΑΠΟΔΟΧΗ 15
8 Τυπικός ορισμός DFA Ντετερμινιστικό πεπερασμένο αυτόματο (Deterministic Finite Automaton, DFA): πεντάδα Μ = (Q,Σ,δ,q 0,F) Q : το σύνολο των καταστάσεων του Μ (πεπερασμένο), πχ Q = {q 0, q 1, q 2 } Σ : πεπερασμένο αλφάβητο εισόδου (Σ Q = ), πχ Σ = {a,b} δ : Q x Σ Q : συνάρτηση μετάβασης, πχ δ(q 0,a) = q 1 q 0 Q : αρχική κατάσταση F Q: σύνολο τελικών καταστάσεων (αποδοχής), πχ F = {q 1 } 16
9 Γλώσσα με DFA και γλώσσα χωρίς DFA Αποδεικνύεται ότι δεν υπάρχει DFA που να αναγνωρίζει την L 3! (χρειάζεται μνήμη με μέγεθος που εξαρτάται από την είσοδο) 17
10 Αποδοχή DFA: τυπικοί ορισμοί Επέκταση συνάρτησης δ: Q x Σ* Q Η επεκτεταμένη δ δέχεται ως ορίσματα μια κατάσταση q και μια συμβολοσειρά u και δίνει την κατάσταση όπου θα βρεθεί το αυτόματο αν ξεκινήσει από την q και διαβάσει την u Ορισμός επεκτεταμένης δ (σχήμα πρωταρχικής αναδρομής): όπου w είναι συμβολοσειρά οποιουδήποτε μήκους, ενώ α απλό σύμβολο του αλφαβήτου 18
11 Αποδοχή DFA: τυπικοί ορισμοί Ένα DFA αποδέχεται μία συμβολοσειρά u ανν δ(q 0,u) F Ένα DFA M αποδέχεται τη γλώσσα L(M) = {w δ(q 0,w) F} Οι γλώσσες που γίνονται αποδεκτές από DFA λέγονται κανονικές 19
12 Μη ντετερμινιστικά αυτόματα Ντετερμινιστικά αυτόματα: για κάθε συνδυασμό κατάστασης / συμβόλου εισόδου υπάρχει μοναδική επόμενη κατάσταση Μη-ντετερμινιστικά αυτόματα: για κάθε συνδυασμό κατάστασης / συμβόλου εισόδου υπάρχει επιλογή από σύνολο δυνατών επόμενων κατάστασεων αποδοχή αν κάποια σειρά επιλογών οδηγεί σε αποδοχή 20
13 Μη ντετερμινιστικά πεπερασμένα αυτόματα NFA (Non-deterministic Finite Automaton): για κάθε κατάσταση και σύμβολο εισόδου επιλέγεται μία από ένα σύνολο δυνατών επόμενων κατάστασεων NFAε (NFA με ε-κινήσεις): μπορεί να αλλάζει κατάσταση χωρίς ανάγνωση επόμενου συμβόλου 21
14 Παράδειγμα NFA Στη συνάρτηση μετάβασης, κενό σύνολο σημαίνει ότι η τρέχουσα εκτέλεση απορρίπτει (προσοχή: μπορεί κάποια άλλη να αποδέχεται) 22
15 Παράδειγμα NFA Δένδρο υπολογισμού για είσοδο ααbαα ΑΠΟΔΟΧΗ 23
16 Τυπικός ορισμός NFA πεντάδα Μ = (Q,Σ,δ,q 0,F) Q : το σύνολο των καταστάσεων του Μ (πεπερασμένο) Σ : πεπερασμένο αλφάβητο εισόδου (Σ Q = ) δ : Q x Σ Pow(Q) : συνάρτηση μετάβασης, πχ δ(q i, α) = { q j, q k, q m } q 0 Q : αρχική κατάσταση F Q: σύνολο τελικών καταστάσεων (αποδοχής) Υπενθύμιση: στη συνάρτηση μετάβασης, κενό σύνολο σημαίνει ότι η συγκεκριμένη εκτέλεση απορρίπτει (προσοχή: μπορεί κάποια άλλη να αποδέχεται) 24
17 Αποδοχή NFA: τυπικοί ορισμοί Ένα ΝFA αποδέχεται συμβολοσειρά w αν δ(q 0,w) F Ένα NFA M αποδέχεται τη γλώσσα L(M) = {w δ(q 0,w) F } Σημείωση: η συνάρτηση δ είναι επεκτεταμένη ώστε να δέχεται σαν ορίσματα μια κατάσταση q και μια συμβολοσειρά w και να δίνει το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το αυτόματο αν ξεκινήσει από την q και διαβάσει την w Παράδειγμα: δ(q 0, αα) = {q 0,q 1,q 2 }, δ(q 0, bα) = {q 0,q 1 } 25
18 Ισοδυναμία NFA και DFA Θεώρημα Rabin-Scott: για κάθε NFA υπάρχει ένα DFA που αποδέχεται την ίδια γλώσσα Επομένως τα DFA και τα NFA αναγνωρίζουν ακριβώς την ίδια κλάση γλωσσών: τις κανονικές γλώσσες (regular languages) Οι κανονικές γλώσσες αντιστοιχούν σε κανονικές παραστάσεις (regular expressions): πχ (α+b)*bbab(α+b)* 26
19 NFA DFA (i) NFA για τη γλώσσα L 4 ("2 συνεχόμενα a") Κατασκευάζουμε το δυναμοσύνολο των καταστάσεων Αρχική κατάσταση: {q 0 } Τελικές: όσες περιέχουν τελική Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων 27
20 NFA DFA (ii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων 28
21 NFA DFA (iii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων 29
22 NFA DFA (iv) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων 30
23 NFA DFA (v) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων 31
24 NFA DFA (vi) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 32
25 NFA DFA (vii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Οι μη προσβάσιμες καταστάσεις δεν παίζουν ρόλο! 33
26 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, α) = {q Q q δ(r, α) για r R}, είναι δηλαδή το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το Μ ξεκινώντας από οποιαδήποτε κατάσταση του συνόλου R και διαβάζοντας το σύμβολο α (α-κίνηση) 34
27 Αυτόματα με ε-κινήσεις: NFA ε Επιτρέπουν μεταβάσεις χωρίς να διαβάζεται σύμβολο (ισοδύναμα: με είσοδο το κενό string ε) Αποδέχονται τις συμβολοσειρές που μπορούν να οδηγήσουν σε τελική κατάσταση, χρησιμοποιώντας ενδεχομένως και ε-κινήσεις Παράδειγμα: 35
28 Iσοδυναμία NFA ε με DFA: παράδειγμα 36
29 NFA ε DFA: η μέθοδος τυπικά Έστω το NFA ε Μ = (Q,Σ,q 0,F,δ) Ένα ισοδύναμο DFA M'= (Q',Σ,q ' 0,F',δ'), ορίζεται ως εξής: Q' = Pow(Q), δηλαδή οι καταστάσεις του Μ είναι όλα τα υποσύνολα καταστάσεων του Μ q ' 0 = ε-κλείσιμο(q 0 )= {p p προσβάσιμο από q 0 μόνο με ε- κινήσεις}, F' = {R Q' R F }, δηλαδή μια κατάσταση του Μ είναι τελική αν περιέχει μια τελική κατάσταση του Μ δ'(r,a) = {q Q q ε-κλείσιμο(δ(r,α)) για r R}, δηλαδή δ'(r,α) είναι το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το Μ ξεκινώντας από οποιαδήποτε κατάσταση του R, κάνοντας μία α- κίνηση και χρησιμοποιώντας στη συνέχεια οσεσδήποτε ε-κινήσεις 37
30 NFA ε DFA: εναλλακτική μέθοδος (σε NFA πρώτα) Έστω το NFA ε Μ = (Q,Σ,q0,F,δ) Κατασκευάζουμε πρώτα ισοδύναμο NFA M'= (Q,Σ,q 0,F',δ') ως εξής: F' = F U {q 0 } αν ε-κλείσιμο(q 0 ) περιέχει τελική, F' = F αλλιώς δ'(q,α) = ε-κλείσιμο(δ(ε-κλείσιμο(q),α)), (δ επεκτ/νη) δηλαδή δ'(q,α) είναι το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το Μ ξεκινώντας από την κατάσταση q, χρησιμοποιώντας οσεσδήποτε ε-κινήσεις, μία α-κίνηση, και χρησιμοποιώντας ξανά οσεσδήποτε ε-κινήσεις Από το M' κατασκευάζουμε ισοδύναμο DFA 38
31 NFA ε DFA: εναλλακτική μέθοδος (σε NFA πρώτα, ταχύτερα) Έστω το NFA ε Μ = (Q,Σ,q0,F,δ) Κατασκευάζουμε πρώτα ισοδύναμο NFA M'= (Q,Σ,q 0,F',δ') ως εξής: F' : είναι το F μαζί με κάθε κατάσταση q για την οποία το ε-κλείσιμο(q) περιέχει κάποια τελική δ'(q,α) = δ(ε-κλείσιμο(q),α), (δ επεκτ/νη) δηλαδή δ'(q,α) είναι το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το Μ ξεκινώντας από την κατάσταση q, χρησιμοποιώντας οσεσδήποτε ε-κινήσεις πρώτα, και μετά μία α-κίνηση (δηλ χωρίς ε-κινήσεις μετά το α) Από το M' κατασκευάζουμε ισοδύναμο DFA 39
32 Ελαχιστοποίηση DFA: παράδειγμα L 4 = { w є {a,b}* w περιέχει 2 συνεχόμενα a }: Αρχικό DFA Ελάχιστο DFA 40
33 Ελαχιστοποίηση DFA (i) Δύο καταστάσεις DFA λέγονται μη ισοδύναμες, δηλαδή διακρίσιμες, αν υπάρχει συμβολοσειρά που να οδηγεί την μία από αυτές σε τελική κατάσταση, ενώ την άλλη όχι q i 0 0, 1 q 0 1 0,1 q 1 q m 41
34 Ελαχιστοποίηση DFA (ii) Δύο καταστάσεις μπορούν να συγχωνευτούν σε μία (είναι ισοδύναμες) αν: οδηγούν με ίδιες συμβολοσειρές σε ίδιο αποτέλεσμα q i 0 0, 1 q q 1 0 q m 42
35 Ελαχιστοποίηση DFA (iii) Αρχικό DFA q i 0 0, 1 q q 1 0 q m Συγχώνευση q i, q m 1 0, 1 q q 0 0 im q 1 43
36 Ελαχιστοποίηση DFA: 2 ο παράδειγμα Αρχικό DFA Ελάχιστο DFA 44
37 Ελαχιστοποίηση DFA: 3 ο παράδειγμα Αρχικό DFA Ελάχιστο DFA 45
38 Μέθοδος ελαχιστοποίησης DFA Δύο καταστάσεις λέγονται k-διακρίσιμες αν με κάποια συμβολοσειρά μήκους ακριβώς k οδηγούν σε διαφορετικό αποτέλεσμα (και δεν είναι i-διακρίσιμες για κανένα i<k) Έτσι, δύο καταστάσεις είναι: 0-διακρίσιμες ανν η μία είναι τελική ενώ η άλλη όχι (i+1)-διακρίσιμες ανν με κάποιο σύμβολο οδηγούν σε i-διακρίσιμες καταστάσεις Δύο καταστάσεις λέγονται ισοδύναμες αν δεν είναι k- διακρίσιμες για οποιοδήποτε k 46
39 Μέθοδος ελαχιστοποίησης DFA Ιδέα μεθόδου: για κάθε i = 0, 1, 2, εντοπίζουμε τα i-διακρίσιμα ζεύγη καταστάσεων έως ότου να μην προκύπτουν άλλα Τα υπόλοιπα ζεύγη είναι ισοδύναμα Γιατί δουλεύει: δεν υπάρχουν (i+1)-διακρίσιμες καταστάσεις αν δεν υπάρχουν i-διακρίσιμες καταστάσεις 47
40 Η μέθοδος συστηματικά Κατασκευάζουμε τριγωνικό πίνακα για να συγκρίνουμε κάθε ζεύγος καταστάσεων Γράφουμε X k στην αντίστοιχη θέση του πίνακα την πρώτη φορά που διαπιστώνουμε ότι δύο καταστάσεις είναι k-διακρίσιμες, ως εξής: Αρχικά γράφουμε X 0 σε όλα τα ζεύγη κατ/σεων που είναι 0-διακρίσιμες γιατί η μία είναι τελική και η άλλη όχι Σε κάθε "γύρο" i+1, εξετάζουμε όλα τα μη σημειωμένα ζεύγη και γράφουμε Χ i+1 σε ένα ζεύγος αν από τις δύο καταστάσεις του με ένα σύμβολο το DFA πηγαίνει σε i - διακρίσιμες καταστάσεις (ήδη σημ/νες με Χ i ) Επαναλαμβάνουμε μέχρι που σε κάποιο γύρο k να μην υπάρχει ζεύγος που να σημειωθεί με Χ k Τα μη σημειωμένα ζεύγη αντιστοιχούν σε ισοδύναμες καταστάσεις (που επομένως συγχωνεύονται) 48
41 Παράδειγμα εφαρμογής της μεθόδου Γύρος 0: εννέα ζεύγη 0-διακρίσιμων καταστάσεων 49
42 Παράδειγμα εφαρμογής της μεθόδου Γύρος 1: δύο ζεύγη 1-διακρίσιμων καταστάσεων 50
43 Παράδειγμα εφαρμογής της μεθόδου Γύρος 2: κανένα ζεύγος 2-διακρίσιμων καταστάσεων 51
44 Παράδειγμα εφαρμογής της μεθόδου 52
45 Γλώσσες, αυτόματα, γραμματικές Τυπικές γλώσσες: χρησιμοποιούνται για την περιγραφή υπολογιστικών προβλημάτων αλλά και γλωσσών προγραμματισμού Αυτόματα: χρησιμεύουν για την αναγνώριση τυπικών γλωσσών και για την κατάταξη της δυσκολίας των αντίστοιχων προβλημάτων Tυπικές γραμματικές: άλλος τρόπος περιγραφής τυπικών γλωσσών Κάθε τυπική γραμματική παράγει μια τυπική γλώσσα 53
46 Θεωρία γλωσσών και γραμματικών Εφαρμογές σε: Ψηφιακή Σχεδίαση, Γλώσσες Προγραμματισμού, Μεταγλωττιστές, Τεχνητή Νοημοσύνη, Θεωρία Πολυπλοκότητας Ιστορικά σημαντικοί ερευνητές: Chomsky, Backus, Rabin, Scott, Kleene, Greibach, κα 54
47 Τυπικές γλώσσες Πρωταρχικές έννοιες: σύμβολα, παράθεση Αλφάβητο: πεπερασμένο σύνολο συμβόλων Πχ {0,1}, {x,y,z}, {a,b} Λέξη (ή συμβολοσειρά, ή πρόταση) ενός αλφαβήτου: πεπερασμένου μήκους ακολουθία συμβόλων του αλφαβήτου Πχ , abbbab w : μήκος λέξης w ε : κενή λέξη, ε = 0 Άλλες έννοιες: πρόθεμα (prefix), κατάληξη (suffix), υποσυμβολοσειρά (substring), αντίστροφη (reversal), παλινδρομική ή καρκινική (palindrome) 55
48 Τυπικές γλώσσες (συν) vw = παράθεση λέξεων v και w Ισχύει: εx = xε = x, για κάθε συμβολοσειρά x ορισμός x n με πρωταρχική αναδρομή: Σ*: το σύνολο όλων των λέξεων του αλφαβήτου Σ Γλώσσα από το αλφάβητο Σ: κάθε σύνολο συμβολοσειρών L Σ* 56
49 Τυπικές γραμματικές Συστηματικός τρόπος μετασχηματισμού συμβολοσειρών μέσω κανόνων παραγωγής Αλφάβητο: τερματικά και μη τερματικά σύμβολα και ένα αρχικό σύμβολο (μη τερματικό) Πεπερασμένο σύνολο κανόνων της μορφής α β: ορίζουν δυνατότητα αντικατάστασης της συμβολοσειράς α με την συμβολοσειρά β Κάθε τυπική γραμματική παράγει μια τυπική γλώσσα: το σύνολο των συμβολοσειρών (με τερματικά σύμβολα μόνο) που παράγονται από το αρχικό σύμβολο Λέγονται και συστήματα μεταγραφής (rewriting systems) αλλά και γραμματικές δομής φράσεων (phrase structure grammars) 57
50 Παράδειγμα γραμματικής για την γλώσσα των περιττών αριθμών S A 1 A A 0 A A 1 A ε S: το αρχικό σύμβολο A: μη τερματικό σύμβολο 0,1: τερματικά σύμβολα ε: η κενή συμβολοσειρά Τα S και A αντικαθίστανται με βάση τους κανόνες Κάθε περιττός προκύπτει από το S με κάποια σειρά έγκυρων αντικαταστάσεων Κανονική παράσταση: (0+1)*1 58
51 Τυπικές γραμματικές: ορισμοί (i) Μια τυπική γραμματική G αποτελείται από: ένα αλφάβητο V από μη τερματικά σύμβολα (μεταβλητές), ένα αλφάβητο T από τερματικά σύμβολα (σταθερές), τω V T =, ένα πεπερασμένο σύνολο P από κανόνες παραγωγής, δηλαδή διατεταγμένα ζεύγη (α,β), όπου α,β (V T)* και α ε (σύμβαση: γράφουμε α β αντί για (α,β)), ένα αρχικό σύμβολο (ή αξίωμα) S V 59
52 Τυπικές γραμματικές: ορισμοί (ii) Σύμβαση για τη χρήση γραμμάτων: a, b, c, d, T : πεζά λατινικά, τα αρχικά του αλφαβήτου, συμβολίζουν τερματικά A, B, C, D, V : κεφαλαία λατινικά συμβολίζουν μη τερματικά u, v, w, x, y, z T* : πεζά λατινικά, τα τελευταία του αλφαβήτου, συμβολίζουν συμβολοσειρές τερματικών α, β, γ, δ, (V T)* : ελληνικά συμβολίζουν οποιεσδήποτε συμβολοσειρές (τερματικών και μη) 60
53 Τυπικές γραμματικές: ορισμοί (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 ) 61
54 Παράδειγμα τυπικής γραμματικής S ε αsb: σύντμηση των S ε και S αsb Μία δυνατή ακολουθία παραγωγής: Γλώσσα που παράγεται: 62
55 Ιεραρχία Γραμματικών Chomsky 63
56 Ιεραρχία Chomsky: μια εκπληκτική σύμπτωση (;) τύπου 0 ΤΜ (μηχανές Turing) τύπου 1 LBA (γραμμικά περιορισμένα αυτόματα) τύπου 2 PDA (pushdown automata) τύπου 3 DFA (και NFA) 64
57 Κανονικές Γραμματικές Οι κανονικές γραμματικές είναι γραμματικές όπου όλοι οι κανόνες είναι της μορφής: Δεξιογραμμικοί (right linear) A wb ή A w Αριστερογραμμικοί (left linear) A Bw ή A w (όπου w είναι μια ακολουθία από τερματικά σύμβολα της γλώσσας) Θεώρημα: οι κανονικές γλώσσες ταυτίζονται με τις γλώσσες που παράγονται από κανονικές γραμματικές 65
58 Ισοδυναμία κανονικών γραμματικών και DFA Χρησιμοποιούμε τη δεξιογραμμική μορφή: A wb αντιστοιχεί με Α w Β A w αντιστοιχεί με Α w S αντιστοιχεί με q 0 66
59 Μία ακόμη ισοδυναμία! Θεώρημα: οι κανονικές γλώσσες ταυτίζονται με τις γλώσσες που περιγράφονται από κανονικές παραστάσεις 67
60 Κανονικές παραστάσεις (regular expressions) 68
61 Ορισμός κανονικών παραστάσεων Κανονικές παραστάσεις: παριστάνουν γλώσσες που προκύπτουν από απλά σύμβολα ενός αλφαβήτου με τις πράξεις παράθεση, ένωση, και άστρο του 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 69
62 Παραδείγματα κανονικών παραστάσεων Προτεραιότητα τελεστών: άστρο Kleene παράθεση ένωση 70
63 Ισοδυναμία κανονικών παραστάσεων και αυτομάτων Θεώρημα Μια γλώσσα L μπορεί να παρασταθεί με κανονική παράσταση ανν είναι κανονική (δηλαδή L=L(M) για κάποιο πεπερασμένο αυτόματο M) Ιδέα απόδειξης: => : Επαγωγή στη δομή της κανονικής παράστασης r : 71
64 2 Επαγωγικό βήμα Έστω ότι για r 1, r 2 έχουμε αυτόματα Μ 1, Μ 2, με τελικές καταστάσεις f 1, f 2 : 72
65 Ισοδυναμία κανονικών παραστάσεων και αυτομάτων (συν) <= : Κατασκευή κανονικής παράστασης από FA (GNFA) Απαλείφουμε ενδιάμεσες καταστάσεις σύμφωνα με το σχήμα: 73
66 Παράδειγμα κατασκευής κανονικής παράστασης από FA Αρχικό DFA Μετά από διαγραφή q 2 74
67 Παράδειγμα κατασκευής κανονικής παράστασης από FA Διαγραφή q 3 75
68 Παράδειγμα κατασκευής κανονικής παράστασης από FA Διαγραφή q 0 76
69 Παράδειγμα κατασκευής κανονικής παράστασης από FA Τελική παράσταση 77
70 Ποιες γλώσσες είναι κανονικές; Όλες οι πεπερασμένες Όσες σχηματίζονται από κανονικές με τις πράξεις: παράθεση, ένωση, άστρο Kleene, αλλά και συμπλήρωμα, τομή, αναστροφή (άσκηση), κά Γινόμενο αυτομάτων (product of automata): τρόπος κατασκευής DFA για τομή (αλλά και ένωση) κανονικών γλωσσών 78
71 Γινόμενο αυτομάτων DFA Έστω δύο DFA Μ 1, Μ 2 με n, m καταστάσεις αντίστοιχα (Q 1 ={q 0,, q n-1 }, Q 2 ={p 0,, p m-1 }) και κοινό αλφάβητο, που αναγνωρίζουν γλώσσες L 1, L 2 αντίστοιχα Το γινόμενο των Μ 1, Μ 2 είναι ένα DFA με m n καταστάσεις, μία για κάθε ζεύγος καταστάσεων του αρχικού αυτομάτου (σύνολο καταστάσεων Q = Q 1 x Q 2 ), το ίδιο αλφάβητο και αρχική κατάσταση (q 0,p 0 ) Συνάρτηση μετάβασης: δ ((q i,p j ),σ)=(q i, p k ) δ(q i,σ)=q i δ(p k,σ)=p k Τελικές καταστάσεις: ανάλογα με την πράξη μεταξύ L 1, L 2 που θέλουμε Για τομή θέτουμε ως τελικές ζεύγη όπου και οι δύο τελικές στα Μ 1, Μ 2, για ένωση ζεύγη που περιέχουν μία τουλάχιστον τελική Παρατήρηση: εύκολη υλοποίηση και άλλων πράξεων μεταξύ L 1, L 2 (διαφορά, συμμετρική διαφορά) με κατάλληλο ορισμό των τελικών καταστάσεων 79
72 Γινόμενο αυτομάτων NFA Ορίζεται με παρόμοιο τρόπο Χρειάζεται προσοχή στις ε-κινήσεις και στο συνδυασμό μεταβάσεων σε junk states με κανονικές μεταβάσεις 80
73 Είναι όλες οι γλώσσες κανονικές; Η απάντηση είναι «όχι» Για να το αποδείξουμε χρησιμοποιούμε ένα σημαντικό θεώρημα που λέγεται Pumping Lemma (Λήμμα Άντλησης) 81
74 Pumping Lemma (διαίσθηση) Αν μια γλώσσα L είναι κανονική τότε την αποδέχεται ένα DFA με πεπερασμένο αριθμό καταστάσεων, έστω n Έστω λέξη z με z >=n που ανήκει στη γλώσσα, άρα γίνεται αποδεκτή από το αυτόματο Καθώς επεξεργαζόμαστε το z, το αυτόματο πρέπει να περάσει ξανά από κάποια κατάσταση (αρχή περιστερώνα): Αφού z = uvw L θα πρέπει και uv i w L, για κάθε i N 82
75 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 83
76 Απόδειξη ότι μια γλώσσα δεν είναι κανονική Χρήση του Pumping Lemma για να δείξουμε ότι μια (μη πεπερασμένη) γλώσσα L δεν είναι κανονική: Έστω η L κανονική Τότε: το PL λέει ότι υπάρχει n Εμείς για κάθε n επιλέγουμε κατάλληλο z L με μήκος z n το PL λέει ότι υπάρχει «σπάσιμο» z = uvw, με uv n και v > 0 Εμείς για κάθε «σπάσιμο» z = uvw, με uv n και v > 0 επιλέγουμε i ώστε η λέξη uv i w να μην είναι στη γλώσσα L ΑΤΟΠΟ (adversary argument) 84
77 Παράδειγμα χρήσης Pumping Lemma (i) Θεώρημα Η γλώσσα L = {z z έχει το ίδιο πλήθος 0 και 1} δεν είναι κανονική Απόδειξη: Έστω L κανονική Τότε: το PL λέει ότι υπάρχει n Εμείς για κάθε n επιλέγουμε z = 0 n 1 n L με μήκος z = 2n > n z = n n το PL λέει ότι υπάρχει «σπάσιμο» z = uvw, με uv n και v > 0 Εμείς για κάθε «σπάσιμο» z = uvw, με uv n και v > 0 85
78 Παράδειγμα χρήσης Pumping Lemma (ii) παρατηρούμε ότι αναγκαστικά v = 0 k για κάποιο k: w = u v w και επιλέγουμε i = 2, διαπιστώνοντας ότι uv i w = uv 2 w δεν ανήκει στην L ΑΤΟΠΟ Επομένως η L δεν είναι κανονική 86
79 Δεύτερο παράδειγμα χρήσης PL (i) Θεώρημα Η γλώσσα L = {z z=0 i 1 j, i > j} δεν είναι κανονική Απόδειξη: Έστω L κανονική Τότε: το PL λέει ότι υπάρχει n Εμείς για κάθε n επιλέγουμε z = 0 n+1 1 n L με μήκος z = 2n+1 > n z = n+1 n το PL λέει ότι υπάρχει «σπάσιμο» z = uvw, με uv n και v > 0 Εμείς για κάθε «σπάσιμο» z = uvw, με uv n και v > 0 87
80 Δεύτερο παράδειγμα χρήσης PL (ii) παρατηρούμε ότι αναγκαστικά v = 0 k για κάποιο k: z = u v w όμως, η επανάληψη του v δίνει λέξεις της γλώσσας από πρώτη άποψη αυτό φαίνεται προβληματικό όμως το λήμμα ορίζει ότι θα πρέπει για κάθε i 0: uv i w L επιλέγουμε i = 0: η λέξη uv 0 w δεν είναι στην L Επομένως η L δεν είναι κανονική ΑΤΟΠΟ 88
81 Προσοχή στη χρήση του PL! Το Pumping Lemma είναι αναγκαία αλλά όχι και ικανή συνθήκη για να είναι μια γλώσσα κανονική Υπάρχουν μη κανονικές γλώσσες που ικανοποιούν τις συνθήκες του! Επομένως χρησιμεύει μόνο για απόδειξη μη κανονικότητας 89
82 Γραμματικές για μη κανονικές γλώσσες Χωρίς συμφραζόμενα (context free, CF): τύπου 2, αντιστοιχία με αυτόματα στοίβας (pushdown automata, PDA) Με συμφραζόμενα (context sensitive, CS): τύπου 1, αντιστοιχία με γραμμικά περιορισμένα αυτόματα (linear bounded automata, LBA) Γενικές (general): τύπου 0, αντιστοιχία με μηχανές Turing (Turing machines, TM) 90
83 Γραμματικές χωρίς συμφραζόμενα (Context Free) (i) Εφαρμογές σε: συντακτικό γλωσσών προγραμματισμού (Pascal, C, C++, Java) συντακτικό γλωσσών περιγραφής σελίδων web (HTML, XML), editors, 91
84 Γραμματικές χωρίς συμφραζόμενα (Context Free) (ii) Μορφή κανόνων: Α α, Α μη τερματικό Παράδειγμα: Δυνατή ακολουθία παραγωγής: Γλώσσα που παράγεται: 92
85 Γραμματικές χωρίς συμφραζόμενα (Context Free) (iii) 2 ο παράδειγμα: G 2 : T = {0,1,2,3,4,5,6,7,8,9,+,*} V = {S } P : S S+S, S S*S, S Δυνατές ακολουθίες παραγωγής: S 3, S S+S 3+S 3+S*S 3+4*7 93
86 Γραμματικές χωρίς συμφραζόμενα (Context Free) (iv) 3 ο παράδειγμα: G 3 :, και P περιέχει: Δυνατή ακολουθία παραγωγής: Γλώσσα που παράγεται (όχι προφανές): 94
87 Συντακτικά Δένδρα (parse trees) (i) Φύλλωμα (leafstring): αααbbb και αbbα αντίστοιχα 95
88 Συντακτικά Δένδρα (parse trees) (ii) Έστω G={V,T,P,S} μια γραμματική χωρίς συμφραζόμενα Ένα δένδρο είναι συντακτικό δένδρο της G αν: Κάθε κόμβος του δένδρου έχει επιγραφή, που είναι σύμβολο (τερματικό ή μη τερματικό ή ε) Η επιγραφή της ρίζας είναι το S Αν ένας εσωτερικός κόμβος έχει επιγραφή A, τότε το Α είναι μη τερματικό σύμβολο Αν τα παιδιά του, από αριστερά προς τα δεξιά, έχουν επιγραφές X 1,X 2,,X k τότε ο A X 1,X 2,,X k είναι κανόνας παραγωγής Αν ένας κόμβος έχει επιγραφή ε, τότε είναι φύλλο και είναι το μοναδικό παιδί του γονέα του 96
89 Συντακτικά Δένδρα (parse trees) (iii) Θεώρημα Έστω G={V,T,P,S} μια γραμματική χωρίς συμφραζόμενα Τότε S * α αν και μόνο αν υπάρχει συντακτικό δένδρο της G με φύλλωμα α Απόδειξη: <= : Με επαγωγή ως προς τον αριθμό των εσωτερικών κόμβων => : Με επαγωγή ως προς των αριθμό των βημάτων της ακολουθίας παραγωγών (άσκηση) 97
90 Διφορούμενες γραμματικές Μια γραμματική G ονομάζεται διφορούμενη (ambiguous) αν υπάρχουν δύο συντακτικά δένδρα με το ίδιο φύλλωμα w L(G) Παράδειγμα: G 2 : T = {0,1,2,3,4,5,6,7,8,9,+,*} V = {S } P : S S+S S*S
91 Αλγόριθμος αναγνώρισης για CF γραμματικές: CYK Με εξαντλητικό τρόπο μπορούμε να αποφασίσουμε αν μια συμβολοσειρά x παράγεται από μια γραμματική CF (χωρίς συμφραζόμενα) σε εκθετικό όμως χρόνο Οι ιδιότητες της κανονικής μορφής Chomsky επιτρέπουν ταχύτερη αναγνώριση μιας συμβολοσειράς Αλγόριθμος CYK (Cocke, Younger, Kasami): αποφασίζει αν μια συμβολοσειρά x παράγεται από μια γραμματική σε χρόνο O( x 3 ), αρκεί η γραμματική να δίνεται σε Chomsky Normal Form 99
92 Αυτόματα Στοίβας (PDA) (i) Έχουν ταινία εισόδου μιας κατεύθυνσης (όπως και τα FA) αλλά επιπλέον μνήμη υπό μορφή στοίβας Πρόσβαση μόνο στην κορυφή της στοίβας με τις λειτουργίες: push(x): τοποθετεί στοιχείο x στην κορυφή της στοίβας pop: διαβάζει και αφαιρεί στοιχείο από την κορυφή της στοίβας 100
93 Αυτόματα Στοίβας (PDA) (ii) Παράδειγμα: PDA για αναγνώριση της γλώσσας Περιγραφή αυτομάτου push(a) στη στοίβα για κάθε 0 στην είσοδο, push(b) στη στοίβα για κάθε 1 στην είσοδο, συνέχισε μέχρι να διαβαστεί c μετά pop: εφόσον πάνω στοιχείο στοίβας συμφωνεί με είσοδο (a με 0, b με 1) συνέχισε Αποδοχή με κενή στοίβα 101
94 Τυπικός ορισμός PDA Αυτόματο στοίβας (Pushdown Automaton, PDA): επτάδα Μ = (Q,Σ,Γ,δ,q 0,Z 0,F) Q : το σύνολο των καταστάσεων του Μ (πεπερασμένο) Σ : αλφάβητο εισόδου Γ : αλφάβητο στοίβας δ : Q x Σ U {ε} x Γ Pow(Q x Γ*) : συνάρτηση μετάβασης (μη ντετερμινισμός, ε-κινήσεις) q 0 Q : αρχική κατάσταση Ζ 0 Γ : αρχικό σύμβολο στοίβας F Q : σύνολο τελικών καταστάσεων 102
95 Αυτόματα Στοίβας (PDA) (iv) Είδη αποδοχής PDA Αν βρεθεί σε τελική κατάσταση (δηλ αποδοχής) μόλις διαβαστεί όλη η είσοδος, ανεξαρτήτως περιεχομένου στοίβας Αν βρεθεί με κενή στοίβα μόλις διαβαστεί όλη η είσοδος, ανεξαρτήτως κατάστασης Αντίστοιχα ορίζονται οι γλώσσες: L f (M): αποδοχή με τελική κατάσταση L e (M): αποδοχή με κενή στοίβα 103
96 Αυτόματα Στοίβας (PDA) (v) Για να γίνει αποδεκτή η γλώσσα χωρίς δηλαδή ειδικό μεσαίο σύμβολο c χρειαζόμαστε απαραίτητα μη ντετερμινιστικό PDA Τα μη ντετερμινιστικά PDA είναι γνησίως πιο ισχυρά από τα ντετερμινιστικά Με τον όρο PDA αναφερόμαστε συνήθως στα μηντετερμινιστικά PDA 104
97 Ισοδυναμία CF γραμματικών και PDA Θεώρημα Τα παρακάτω είναι ισοδύναμα για μια γλώσσα L: L = L f (M), M είναι PDA L = L e (M ), M είναι PDA H L είναι γλώσσα χωρίς συμφραζόμενα (cf) 105
98 Ποιες γλώσσες είναι Context Free; Όλες οι κανονικές Επίσης όσες σχηματίζονται από γλώσσες CF με τις πράξεις: παράθεση, ένωση, άστρο Kleene Αλλά όχι απαραίτητα με τις πράξεις τομή, συμπλήρωμα: πχ η γλώσσα {a n b n c n n Ν} δεν είναι CF, ενώ είναι τομή δύο CF γλωσσών: {a n b n c n n Ν} = {a n b n c m n,m Ν} {a k b n c n k,n Ν} 106
99 Είναι όλες οι γλώσσες Context Free; Η απάντηση είναι «όχι» Για να το αποδείξουμε χρησιμοποιούμε ένα άλλο λήμμα άντλησης, το Pumping Lemma για γλώσσες χωρίς συμφραζόμενα Βασίζεται στο συντακτικό δένδρο (περισσότερα στο μάθημα «Υπολογισιμότητα») 107
100 Γενικές Γραμματικές (i) Παράδειγμα: {a 2n n є Ν} 108
101 Γενικές Γραμματικές (ii) Θεώρημα Τα παρακάτω είναι ισοδύναμα: 1 Η γλώσσα L γίνεται αποδεκτή από μια μηχανή Turing 2 L=L(G), όπου G είναι γενική γραμματική Μια τέτοια γλώσσα λέγεται και αναδρομικά αριθμήσιμη (recursively enumerable) 109
102 Μηχανές Turing Αυτόματα με απεριόριστη ταινία Η είσοδος είναι αρχικά γραμμένη στην ταινία, η κεφαλή μπορεί να κινείται αριστεράδεξιά, καθώς και να αλλάζει το σύμβολο που διαβάζει Παράδειγμα συνάρτησης μετάβασης: < q 0, 1, q 0, R > < q 0, 0, q 1, 1 > < q 1, 1, q 1, L > < q 1, 0, q 2, R > 110
103 Γραμματικές με Συμφραζόμενα (context sensitive) (i) α = ε Λέγονται «με συμφραζόμενα» γιατί μπορούν να τεθούν στην εξής κανονική μορφή: 111
104 Γραμματικές με Συμφραζόμενα (context sensitive) (ii) Γραμματική cs για τη γλώσσα 1 n 0 n 1 n : S 1Z1 Z 0 1Z0A A0 0A A1 11 Μετατροπή σε κανονική μορφή: Α0 Η0 Η0 ΗΑ ΗΑ 0Α Άλλα παραδείγματα: {1 i 0 j 1 k : i <= j <= k }, { ww w Σ* }, {a n b n a n b n n Ν} 112
105 Ισοδυναμία γραμματικών CS και LBA Γραμμικά φραγμένο αυτόματο (Linear Bounded Automaton, LBA): είναι μια μη ντετερμινιστική μηχανή Turing που η κεφαλή της είναι περιορισμένη να κινείται μόνο στο τμήμα που περιέχει την αρχική είσοδο Θεώρημα Τα παρακάτω είναι ισοδύναμα (L χωρίς ε): 1 Η γλώσσα L γίνεται αποδεκτή από LBA 2 Η γλώσσα L είναι context sensitive 113
106 Iεραρχία κλάσεων γλωσσών Θεώρημα Ιεραρχίας regular context free context sensitive re (re = recursiverly enumerable) τύπου 0 ΤΜ (μηχανές Turing) τύπου 1 LBA (γραμμικά περιορισμένα αυτόματα) τύπου 2 PDA (pushdown automata) τύπου 3 DFA (και NFA) 114
107 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Παραλλαγές και επεκτάσεις αυτομάτων I Ορισμός Ένα two-way deterministic FA (2DFA) είναι μία πεντάδα M = (Q, Σ, δ, q 0, F), όπου τα Q, Σ, q 0 και F είναι όπως προηγουμένως και δ είναι μία απεικόνιση από το Q ˆ Σ στο Q ˆ tl, Ru, δηλαδή δ : Q ˆ Σ Ñ Q ˆ tl, Ru Εάν δ(q, a) = (p, L), τότε στην κατάσταση q, διαβάζοντας το σύμβολο a, το 2DFA πάει στην κατάσταση p και μετακινεί την κεφαλή προς τα αριστερά κατά μία θέση Εάν δ(q, a) = (p, R), τότε το 2DFA πάει στην κατάσταση p και μετακινεί την κεφαλή προς τα δεξιά κατά μία θέση Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
108 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Παραλλαγές και επεκτάσεις αυτομάτων II Configuration ή instantaneous description (ID) ενός 2DFA: περιγράφει το string εισόδου, την τρέχουσα κατάσταση και την τρέχουσα θέση της κεφαλής εισόδου Ένα ID του M είναι ένα string στο Σ QΣ Το ΙD wqx, όπου w, x P Σ, αντιπροσωπεύει τα εξής: 1 wx είναι το string εισόδου, 2 q είναι η τρέχουσα κατάσταση και 3 η κεφαλή εισόδου διαβάζει το πρώτο σύμβολο του x Εάν το x = ε, τότε η κεφαλή εισόδου έχει μετακινηθεί στο δεξί άκρο της ταινίας εισόδου Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
109 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Παραλλαγές και επεκτάσεις αυτομάτων III Στη συνέχεια εισάγουμε την σχέση $ M στα ID s, έτσι ώστε I 1 $ M I 2, αν και μόνο αν το M μπορεί να πάει από την instantaneous description I 1 στην I 2 με μία κίνηση Ορίζουμε τη σχέση $ M, ή απλά $, αν το M εννοείται, ως εξής: 1 a 1a 2 a i 1qa i a n $ a 1a 2 a i 1a ipa i+1 a n, όταν δ(q, a i) = (p, R) και 2 a 1 a 2 a i 2 a i 1 qa i a n $ a 1 a 2 a i 2 pa i 1 a i a n, όταν δ(q, a i ) = (p, L) και i ą 1 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
110 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Παραλλαγές και επεκτάσεις αυτομάτων IV Στα διαγράμματα, μία ακμή εκτός από το σύμβολο εισόδου έχει επίσης επιγραφή L ή R Το ανακλαστικό, μεταβατικό κλείσιμο της σχέσης $ είναι το $ Computation is a legal finite sequence of configurations Ορισμός L(M) = tw q 0 w $ wp για κάποιο p στο Fu Θεώρημα Έστω M ένα 2DFAΤότε L(M) είναι κανονική Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
111 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP FA με έξοδο I Μηχανή Moore Ορισμός Μία μηχανή Moore είναι μία εξάδα M = (Q, Σ,, δ, λ, q 0 ), όπου τα Q, Σ, δ και q 0 είναι όπως στα DFA, με δ : Q ˆ Σ Ñ Q Επιπλέον: : αλφάβητο εξόδου λ: απεικόνιση από το Q στο, που δίνει την έξοδο που σχετίζεται με κάθε κατάσταση, δηλαδή λ: Q Ñ input a 1 a 2 a n states q 0 q 1 q 2 q n 1 q n μήκος n + 1 output λ(q 0 ) λ(q 1 ) λ(q 2 ) λ(q n 1 ) λ(q n ) μήκος n + 1 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
112 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP FA με έξοδο II Μηχανή Moore Παρατηρήσεις: Κάθε μηχανή Moore δίνει έξοδο λ(q 0 ) = 5 για είσοδο ε Το DFA μπορεί να θεωρηθεί ως μία ειδική περίπτωση μίας μηχανής Moore όπου το αλφάβητο είναι {0,1} και η κατάσταση q αποδέχεται αν και μόνο αν λ(q) = 1 Μία μηχανή Moore δεν έχει τελικές καταστάσεις και έχει μήκος εξόδου n + 1 Τα διαγράμματα μηχανών Moore είναι όπως αυτά των FA, αλλά επιπλέον σημειώνουμε μαζί με την κατάσταση το αντίστοιχο σύμβολο εξόδου ως εξής q i /(q i ), πχ: a q/b p/c Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
113 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP FA με έξοδο I Μηχανή Mealy Ορισμός Μία μηχανή Mealy είναι μια εξάδα M = (Q, Σ,, δ, λ, q 0), όπου όλα είναι όπως στη μηχανή Moore, με δ : Q ˆ Σ Ñ Q, εκτός από το λ που είναι απεικόνιση από το Q ˆ Σ στο, δηλαδή λ: Q ˆ Σ Ñ Η έξοδος του M με είσοδο το a 1 a 2 a n είναι λ(q 0, a 1 )λ(q 1, a 2 ) λ(q n 1, a n ), όπου q 0, q 1,, q n είναι η ακολουθία των καταστάσεων έτσι ώστε δ(q i 1, a i ) = q i, για 1 ď i ď n Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
114 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP FA με έξοδο II Μηχανή Mealy Παρατηρήσεις: Η ακολουθία εξόδου έχει μήκος n και όχι n + 1 όπως η μηχανή Moore και με είσοδο ε μία μηχανή Mealy δίνει έξοδο ε Τα διαγράμματα μηχανών Mealy είναι όπως αυτά των FA, αλλά επιπλέον σημειώνουμε στις μεταβάσεις την αντίστοιχη έξοδο, πχ: a/b b/c q p r Μία γενίκευση των μηχανών Mealy είναι το Finite Transducer (ή finite state machine, FSM) με συνάρτηση: λ: Q ˆ Σ Ñ Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
115 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Ισοδυναμία μηχανών Moore και Mealy I Ορισμός Έστω M μία μηχανή Moore ή Mealy Ορίζουμε T M (w), για είσοδο w να είναι η έξοδος που παράγεται από την M με είσοδο w Παρατήρηση Δεν είναι δυνατόν ποτέ να είναι ίδιες οι συναρτήσεις T M (w), T M 1(w), αν M είναι μία μηχανή Moore και M 1 μία μηχανή Mealy, επειδή T M (w) είναι ένα περισσότερο από T M 1(w), για κάθε w Ωστόσο, μπορούμε να δώσουμε τον παρακάτω ορισμό ισοδυναμίας: Ορισμός Μία μηχανή Mealy M και μία μηχανή Moore M 1 είναι 5T M (w) = T M 1(w), όπου λ 1 (q 0 ) = 5 και T M 1(ε) = 5, T M (w) = η έξοδος μετά την επεξεργασία του w Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
116 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Ισοδυναμία μηχανών Moore και Mealy II Μπορούμε να αποδείξουμε το ακόλουθο θεώρημα για την ισοδυναμία μεταξύ μηχανών Moore και Mealy: Moore ñ DM 1 Mealy Mealy ñ DM 1 Moore ισοδύναμη Απόδειξη 1 Έστω μία μηχανή Moore M 1 Κατασκευάζουμε μία ισοδύναμη μηχανή Mealy M 2 : ορίζουμε λ 1 (q, a) = λ(δ(q, a)) για όλες τις καταστάσεις q και για όλα τα σύμβολα εισόδου a 2 Έστω M 1 μηχανή Mealy Τότε M 2 = tq ˆ, Σ,, δ 1, λ 1, [q 0, b 0 ]u, όπου b 0 είναι τυχαίο στοιχείο του Αυτό σημαίνει ότι οι καταστάσεις του M 2 είναι ζευγάρια της μορφής [q, b], αποτελούμενα από μία κατάσταση της M 1 και ένα σύμβολο εξόδου Ορίζουμε δ 1 ([q, b], a) = [δ(q, a), λ(q, a)] και λ 1 ([q, b]) = b Το δεύτερο στοιχείο μίας κατάστασης [q, b] της M 2 είναι η έξοδος που παράγεται από την M 1 σε κάποια μετάβαση στην κατάσταση q Μόνο τα πρώτα στοιχεία των καταστάσεων της M 2 καθορίζουν τις κινήσεις της M 2 Εύκολα με επαγωγή στο n δείχνεται ότι αν η M 1 πηγαίνει στις καταστάσεις q 0, q 1,, q n με είσοδο a 1 a 2 a n και δίνει έξοδο b 1, b 2,, b n, τότε η M 2 πηγαίνει στις καταστάσεις [q 0, b 0 ], [q 1, b 1 ],, [q n, b n] και δίνει έξοδο b 0, b 1,, b n Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
117 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Pumping lemma για κανονικά σύνολα I Λήμμα (Pumping lemma) Εάν L είναι regular τότε: Dn P P L με z ě n, Du, v, w P Σ : [z = uvw ^ uv ď n ^ v ě 1 P N (uv i w P L)] Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
118 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Pumping lemma για κανονικά σύνολα II Χρησιμοποιώντας το λήμμα δείχνουμε ότι ένα δοσμένο σύνολο δεν είναι regular Η μέθοδος είναι η ακόλουθη: 1 Διαλέγεις τη γλώσσα που θέλεις να αποδείξεις πως δεν είναι regular 2 Ο αντίπαλος (PL) επιλέγει ένα n Θα πρέπει να μπορείς για οποιοδήποτε πεπερασμένο ακέραιο n διαλέξει, να αποδείξεις ότι η L δεν είναι regular, αλλά από τη στιγμή που ο αντίπαλος έχει διαλέξει ένα n αυτό είναι σταθερό στην απόδειξη 3 Διαλέγεις ένα string z της L έτσι ώστε z ě n 4 Ο αντίπαλος (PL) σπάει το z σε u, v και w που ικανοποιούν τους περιορισμούς uv ď n και v ě 1 5 Φτάνεις σε αντίφαση δείχνοντας ότι για κάθε u, v, w που καθορίζονται από τον αντίπαλο, υπάρχει ένα i για το οποίο uv i w δεν ανήκει στην L Τότε μπορούμε να συμπεράνουμε ότι η L δεν είναι regular Η επιλογή του i μπορεί να εξαρτάται από τα n, u, v, w Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
119 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Pumping lemma για κανονικά σύνολα III Παράδειγμα L = ta k b k k P Nu = tε, ab, aabb, aaabbb, u 1 Υποθέτουμε ότι L είναι regular και χρησιμοποιούμε το pumping lemma 2 PL: Dn P N 3 Διαλέγουμε z = a n b n Εντάξει επιλογή, διότι z P L, z = 2n ě n 4 PL: z μπορεί να γραφεί: z = uvw με uv ď n ^ v ě 1, ώστε v = a l με l ě 1 5 Διαλέγουμε i = 2: uvvw = a n+l b n P L Άτοπο Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
120 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Pumping lemma για κανονικά σύνολα IV Παράδειγμα Το σύνολο L = t0 k2 k ě 1u = t0, 0000, , u, δεν είναι regular 1 Υποθέτουμε ότι L είναι regular και χρησιμοποιούμε το pumping lemma 2 PL: Dn P N 3 Διαλέγουμε z = 0 n2 Εντάξει επιλογή, διότι z = n 2 ě n 4 PL: z μπορεί να γραφεί: z = uvw με uv ď n ^ v ě 1, ώστε v = 0 l με 1 ď l ď n 5 Διαλέγουμε i = 2: uvvw = 0 n2 +l P L, αλλά n 2 + l δεν είναι τέλειο τετράγωνο, διότι: n 2 ă n ď n 2 + l ď n 2 + n = n(n + 1) ă (n + 1) 2 Άτοπο Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
121 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Ιδιότητες κλειστότητας για κανονικά σύνολα Λογικές (boolean) πράξεις Υπενθύμιση: Οι boolean (λογικές) πράξεις είναι η ένωση, η τομή και το συμπλήρωμα Θεώρημα Η κλάση των regular sets είναι μηχανιστικά κλειστή (effectively closed) ως προς τις λογικές πράξεις, την παράθεση (concatenation) και το Kleene * Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
122 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Ιδιότητες κλειστότητας για κανονικά σύνολα I Αντικαταστάσεις και ομομορφισμοί Αντικατάσταση: f: Σ Ñ Pow( ) Ειδική περίπτωση: Ομομορφισμός: h: Σ Ñ Αντίστροφος ομομορφισμός: h 1 (w) = tx h(x) = wu για string και h 1 (L) = tx h(x) P Lu για γλώσσα Ιδιότητες: h(h 1 (L)) Ď L ενώ h 1 (h(l)) Ě L, για κάθε γλώσσα L Η απεικόνιση f μπορεί να επεκταθεί και σε strings ως εξής: " f(ε) = ε f(wa) = f(w)f(a) Η f επεκτείνεται και σε γλώσσες: fˆ(l) = Ť xpl f(x) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
123 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Ιδιότητες κλειστότητας για κανονικά σύνολα II Αντικαταστάσεις και ομομορφισμοί Ορισμός Κανονική αντικατάσταση (regular substitution): αντικατάσταση (substitution) τέτοια P Σ: f(a) είναι regular Θεώρημα Η κλάση των regular sets είναι μηχανιστικά κλειστή (effectively closed) ως προς τις πράξεις της κανονικής αντικατάστασης, ομομορφισμού και αντίστροφου ομομορφισμού Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
124 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Ιδιότητες κλειστότητας για κανονικά σύνολα Πηλίκα Γλωσσών (quotients of languages) Πηλίκο γλωσσών: L 1 /L 2 = tw Dv P L 2 : wv P L 1 u Παράδειγμα L 1 = ab c και L 2 = b c τότε L 1 /L 2 = ab Θεώρημα Η κλάση των regular sets είναι κλειστή ως προς πηλίκο με τυχαίο σύνολο Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
125 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Αλγόριθμοι απόφασης για κανονικά σύνολα I Θεώρημα Έστω M ένα DFA με Q = n Τότε 1 L(M) H ô Dz P L(M) με z ă n 2 L(M) = 8 ô Dz P L(M) με n ď z ă 2n Θεώρημα Υπάρχει μηχανιστικός αλγόριθμος που αποφασίζει αν δύο πεπερασμένα αυτόματα αποδέχονται το ίδιο σύνολο, δηλαδή αν είναι ισοδύναμα Απόδειξη Έστω M 1, M 2 τα αυτόματα που αποδέχονται την L 1, L 2 αντίστοιχα Γνωρίζουμε από θεώρημα ότι υπάρχει αυτόματο M που αποδέχεται το L = (L 1 X L 2 ) Y (L 1 X L 2 ) Ισχύει L = H ô L 1 = L 2 Έτσι από το προηγούμενο θεώρημα υπάρχει αλγόριθμος που αποφασίζει αν L 1 = L 2 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
126 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Ιδιότητες κανονικών συνόλων Αλγόριθμοι απόφασης για κανονικά σύνολα II L 1 L Σχήμα: Ισοδυναμία πεπερασμένων αυτομάτων Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
127 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Το θεώρημα Myhill-Nerode I Για κάθε γλώσσα L θα ορίσουμε μία αντίστοιχη σχέση ισοδυναμίας R L ως εξής: Ορισμός Ορίζουμε x R L y αν και μόνον αν για κάθε z P Σ, xz P L ακριβώς όταν yz P L (δηλαδή για κάθε z είτε αμφότερα τα xz, yz ανήκουν στην γλώσσα είτε κανένα από τα δύο δεν ανήκει στην γλώσσα) Ο δείκτης μίας σχέσης ισοδυναμίας είναι το πλήθος των κλάσεων ισοδυναμίας αυτής Έτσι, λέμε ότι μία ισοδυναμία είναι πεπερασμένου δείκτη αν το πλήθος των κλάσεων ισοδυναμίας της είναι πεπερασμένο Παρατήρηση: Όπως θα δείξουμε παρακάτω, κάτι που χαρακτηρίζει κάθε κανονική γλώσσα L είναι ότι η R L είναι πεπερασμένου δείκτη Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
128 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Το θεώρημα Myhill-Nerode II Επίσης, για κάθε πεπερασμένο αυτόματο με αλφάβητο Σ ορίζουμε μία αντίστοιχη σχέση R M στο Σ ως εξής: Ορισμός x R M y αν και μόνον αν δ(q 0, x) = δ(q 0, y) Πρόταση Η R M είναι δεξιά αναλλοίωτη (right invariant), ως προς την παράθεση, δηλαδή για κάθε x, y με x R M y έχουμε ότι για κάθε z ισχύει xz R M yz Απόδειξη δ(q 0, xz) = δ(δ(q 0, x), z) = δ(δ(q 0, y), z) = δ(q 0, yz) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
129 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Το θεώρημα Myhill-Nerode III Θεώρημα (Myhill-Nerode) Τα παρακάτω είναι ισοδύναμα για μία γλώσσα L: (i) η L είναι κανονική (ii) η L είναι ένωση κάποιων από τις κλάσεις ισοδυναμίας μίας δεξιά αναλλοίωτης σχέσης ισοδυναμίας πεπερασμένου δείκτη (iii) η σχέση R L είναι πεπερασμένου δείκτη Απόδειξη: Θα δείξουμε τις εξής κατευθύνσεις: (i) Ñ (ii) Ñ (iii) Ñ (i) (i) ùñ (ii) Έστω DFA = (Q, Σ, δ, q 0, F) που αποδέχεται την L Όπως είδαμε, η R M είναι δεξιά αναλλοίωτη Οι κλάσεις ισοδυναμίας της R M είναι όσες και οι καταστάσεις του αυτομάτου M, δηλαδή η R M είναι επιπλέον πεπερασμένου δείκτη Προφανώς, η γλώσσα που γίνεται αποδεκτή από το αυτόματο M είναι ένωση των κλάσεων ισοδυναμίας που αντιστοιχούν σε τελικές καταστάσεις του αυτομάτου Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
130 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Το θεώρημα Myhill-Nerode IV (ii) ùñ (iii) Έστω ισοδυναμία E που ικανοποιεί την ιδιότητα που δίνεται στο (ii) Θα δείξουμε την συνεπαγωγή: Αν x E y, τότε x R L y Πράγματι έστω x E y Αφού η E είναι δεξιά αναλλοίωτη, έχουμε ότι για κάθε z P ισχύει xz E yz, δηλαδή είτε αμφότερα τα xz, yz ανήκουν στην γλώσσα L, είτε κανένα από τα δύο δεν ανήκει στην γλώσσα L, δηλαδή (από τον ορισμό της R L) x R L y Επομένως, κάθε κλάση ισοδυναμίας της E περιέχεται σε μία κλάση ισοδυναμίας της R L Αυτό σημαίνει ότι η σχέση E αποτελεί εκλέπτυνση (refinement, βλέπε σχήμα) της σχέσης R L και αφού η E είναι πεπερασμένου δείκτη, δεν μπορεί παρά και η R L να είναι πεπερασμένου δείκτη Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
131 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Το θεώρημα Myhill-Nerode V Σ /R L Σ /E Σχήμα: Εκλέπτυνση (refinement) σχέσης ισοδυναμίας (fine-coarse=λεπτή-αδρή) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
132 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Το θεώρημα Myhill-Nerode VI (iii) ùñ (i) Αποδεικνύουμε πρώτα τον εξής ισχυρισμό: Η R L είναι δεξιά αναλλοίωτη Πράγματι, αν x R L y τότε για κάθε u έχουμε xu R L yu αφού από τον ορισμό της R L για κάθε v έχουμε xuv P L ðñ yuv P L (αρκεί να θέσουμε z = uv) Τελικά, θα κατασκευάσουμε αυτόματο M = (Q, Σ, δ, q 0, F) που αποδέχεται την γλώσσα L, δεδομένης της σχέσης R L Την κλάση ισοδυναμίας στην R L του τυχόντος στοιχείου x P Σ συμβολίζουμε με [x] Το σύνολο των καταστάσεων Q είναι οι κλάσεις ισοδυναμίας της R L, δηλαδή Q = t[x] x P Σ u Αρχική κατάσταση είναι η [ε] (η κλάση ισοδυναμίας στην οποία ανήκει η κενή συμβολοσειρά) Το σύνολο των τελικών καταστάσεων είναι F = t[x] x P Lu Η συνάρτηση μετάβασης ορίζεται δ([x], a) = [xa] (ο ορισμός δεν εξαρτάται από το x και είναι συνεπής δεδομένου ότι η R L είναι δεξιά αναλλοίωτη) Το αυτόματο αποδέχεται την L αφού δ(q 0, x) = [x] κι επομένως x P L(M) αν και μόνον αν [x] P F Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
133 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Ελαχιστοποιώντας πεπερασμένα αυτόματα I Myhill-Nerode ñ μοναδικό DFA ελάχιστων καταστάσεων Παράδειγμα: Έστω το αυτόματο M που φαίνεται στο σχήμα, το οποίο αποδέχεται την γλώσσα L = 0 10 b 1 d 1 f a 1 c 0 e 0, 1 0 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
134 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Ελαχιστοποιώντας πεπερασμένα αυτόματα II Στην L(M) υπάρχουν 6 κλάσεις ισοδυναμίας, οι ακόλουθες: οπότε και L = C c Y C d Y C e C a = (00), C b = (00) 0, C c = (00) 1, C d = (00) 01, C e = 0 100, C f = (0 + 1), Τα C a, C b είναι το C 1 (χωρίς 1) = 0 Τα C c, C d, C e είναι το C 2 (με ένα 1) = 0 10 και το C f είναι το C 3 (περισσότερα του ενός 1) = (0 + 1) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
135 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Ελαχιστοποιώντας πεπερασμένα αυτόματα III Το ελάχιστο αυτόματο φαίνεται στο παρακάτω σχήμα 0 0 0, 1 Ñ a, b 1 c, d, e 1 f Η ίδια μέθοδος συστηματικά με πίνακα: 1 Εξαλείφουμε όλες τις απρόσιτες καταστάσεις 2 Συγχωνεύουμε ισοδύναμες καταστάσεις που δεν διακρίνονται με κανένα επόμενο string Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
136 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Ελαχιστοποιώντας πεπερασμένα αυτόματα IV Μέθοδος για το δεύτερο: Tο p είναι διακρίσιμο από το q εάν υπάρχει ένα x τέτοιο ώστε δ(p, x) είναι στο F και δ(q, x) δεν είναι ή αντίστροφα Φτιάχνουμε ένα πίνακα για να συγκρίνουμε κάθε ζεύγος καταστάσεων Βάζουμε ένα X σε κάθε θέση του πίνακα κάθε φορά που ανακαλύπτουμε ότι δύο καταστάσεις δεν είναι ισοδύναμες Αρχικά εγγράφουμε X σε όλα τα ζεύγη που προφανώς διακρίνονται γιατί η μία είναι τελική και η άλλη δεν είναι Μετά προσπαθούμε να δούμε αν διακρίνονται δύο καταστάσεις, διότι από αυτές με ένα σύμβολο a οδηγούμαστε σε διακρίσιμες καταστάσεις Επαναλαμβάνουμε την πιο πάνω προσπάθεια ώσπου να μην προστίθεται κανένα X πια στον πίνακα Τα υπόλοιπα ζευγάρια είναι μη διακρίσιμα και συνεπώς συγχωνεύσιμα Στο πίνακα οι δείκτες 1 και 2 του X δείχνουν σε ποια επανάληψη εγγράφουμε το X Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
137 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Ελαχιστοποιώντας πεπερασμένα αυτόματα V b c X 1 X 1 d X 1 X 1 e X 1 X 1 f X 2 X 2 X 1 X 1 X 1 a b c d e Τελικά οι ισοδύναμες καταστάσεις είναι a b, c d e Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
138 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Ελαχιστοποιώντας πεπερασμένα αυτόματα I Μέθοδος Beckmann Άλλη μέθοδος για την κατασκευή ενός ελάχιστου DFA είναι η μέθοδος Beckmann 1 Κατασκεύασε το καθρέφτισμα του FA: δηλαδή ανάστρεψε τη φορά των τόξων Αντάλλαξε τελικές με αρχικές καταστάσεις 2 Κατασκεύασε DFA ισοδύναμο με το προκύπτον 0 0 0, 1 Ñ cde 1 ab 1 j Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
139 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA Ελαχιστοποιώντας πεπερασμένα αυτόματα II Μέθοδος Beckmann 3 Ξανακατασκεύασε το καθρέφτισμα 0 0 Ñ ab 1 cde 4 Ξανακατασκεύασε ισοδύναμο DFA Αυτό τώρα είναι το ελάχιστο DFA που βρήκαμε και παραπάνω, δηλ 0 0 0, 1 Ñ a, b 1 c, d, e 1 f Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
140 Τυπικές Γλώσσες Περιεχόμενα 1 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Ιδιότητες κανονικών συνόλων Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA 2 Τυπικές Γλώσσες Τυπικές Γραμματικές Απλοποίηση cf γραμματικών Αυτόματα στοίβας (pushdown automata) Ιδιότητες cf γλωσσών 3 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή LOOP: Μια απλή γλώσσα προγραμματισμού Προγράμματα WHILE και μερικές αναδρομικές συναρτήσεις Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
141 Τυπικές Γλώσσες Τυπικές Γραμματικές Τυπικές Γραμματικές I Μια τυπική γραμματική (formal grammar) G = (V, T, P, S) αποτελείται από: ένα πεπερασμένο αλφάβητο V από μη τερματικά σύμβολα (non terminals) ή μεταβλητές (variables), ένα πεπερασμένο αλφάβητο T από τερματικά σύμβολα (terminals) ή σταθερές (constants), τώ V X T = H, ένα πεπερασμένο σύνολο P από κανόνες παραγωγής (production rules) ή απλούστερα παραγωγές (productions), δηλαδή διατεταγμένα ζεύγη (α, β) όπου α, β P (V Y T) και α ε (Σύμβαση: γράφουμε α Ñ β αντί για (α, β)), ένα αρχικό σύμβολο (start symbol) ή αξίωμα S P V Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
142 Τυπικές Γλώσσες Τυπικές Γραμματικές Τυπικές Γραμματικές II Θα χρησιμοποιήσουμε την εξής σύμβαση για τη χρήση γραμμάτων: a, b, c, d, P T A, B, C, D, P V z, y, x, w, v, u, P T α, β, γ, δ, P (V Y T) Θα γράφουμε α Ñ β γ δ ως ένα κανόνα στο P αντί για τους τρεις κανόνες α Ñ β, α Ñ γ, α Ñ δ στο P Για μια γραμματική G λέμε ότι το γ 1 βγ 2 προκύπτει (is derived from) από το γ 1 αγ 2 και γράφουμε γ 1 αγ 2 ñ γ 1 βγ 2, αν ο α Ñ β είναι κανόνας παραγωγής G (δηλαδή (α, β) P P) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
143 Τυπικές Γλώσσες Τυπικές Γραμματικές Τυπικές Γραμματικές III Συμβολίζουμε με ñ το ανακλαστικό, μεταβατικό κλείσιμο του ñ, δηλαδή α ñ β σημαίνει ότι υπάρχει μια ακολουθία παραγωγών (derivation): α ñ α 1 ñ α 2 ñ α k ñ β Μια συμβολοκολουθία α P (V Y T) ονομάζεται προτασιακή μορφή (sentential form) αν ισxύει S ñ α Ως γλώσσα που παράγεται από τη γραμματική G ορίζουμε την L(G) := tw P T S ñ wu Δύο γραμματικές G 1, G 2 θα ονομάζονται ισοδύναμες αν L(G 1 ) = L(G 2 ) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
144 Τυπικές Γλώσσες Τυπικές Γραμματικές Ιεραρχία Chomsky I Ο Noam Chomsky (1956) ταξινόμησε τις τυπικές γραμματικές σε μια ιεραρχία σύμφωνα με τη μορφή των κανόνων παραγωγής τους Noam Chomsky Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
145 Τυπικές Γλώσσες Τυπικές Γραμματικές Ιεραρχία Chomsky II τύπου 0: γενικές γραμματικές (general, phrase structure, semi-thue) Μορφή: P Ď tα Ñ β α, β P (V Y T) ^ α εu τύπου 1: γραμματικές με συμφραζόμενα ή μονοτονικές (context sensitive, monotonic) Μορφή: P Ď (tα Ñ β α, β P (V Y T) ^ α ď β ^ a εu Y ts Ñ εu) τύπου 2: γραμματικές χωρίς συμφραζόμενα (context free) Μορφή: P Ď ta Ñ α A P V, α P (V Y T) u τύπου 3: κανονικές γραμματικές (regular) Μορφή: 1 δεξιογραμμική: P Ď (ta Ñ w A P V, w P T u Y ta Ñ wb A, B P V, w P T u) 2 ή αριστερογραμμική: P Ď (ta Ñ w A P V, w P T u Y ta Ñ Bw A, B P V, w P T u) Η ιεράρχηση αυτή είναι γνήσια, δηλαδή ισχύει τύπου 3 Ă τύπου 2 Ă τύπου 1 Ă τύπου 0 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
146 Τυπικές Γλώσσες Τυπικές Γραμματικές Κανονικές γραμματικές I Στις κανονικές γραμματικές όλοι οι κανόνες παραγωγής είναι της μορφής: 1 δεξιογραμμικοί (rightlinear): A Ñ wb, A Ñ w, όπου w P T, ή 2 αριστερογραμμικοί (leftlinear): A Ñ Bw, A Ñ w, όπου w P T Παράδειγμα (ba) a δεξιογραμμικά: S Ñ bas a αριστερογραμμικά: S Ñ Ra, R Ñ Rba ε Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
147 Τυπικές Γλώσσες Τυπικές Γραμματικές Κανονικές γραμματικές I Από γραμματική σε αυτόματο Κατασκευάζουμε FA που αποδέχεται την κανονική γλώσσα που παράγεται από τη δεξιογραμμική γραμματική (S Ñ bas a): S ε a ba Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
148 Τυπικές Γλώσσες Τυπικές Γραμματικές Κανονικές γραμματικές II Από γραμματική σε αυτόματο Κατασκευάζουμε FA που αποδέχεται την κανονική γλώσσα που παράγεται από την αριστερογραμμική γραμματική (S Ñ Ra, R Ñ Rba ε): ε R S ε a ba Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
149 Τυπικές Γλώσσες Τυπικές Γραμματικές Κανονικές γραμματικές I Από αυτόματο σε γραμματική Κατασκευή δεξιογραμμικής γραμματικής από αυτόματο Έστω M: q a a, b 0 q f q j b a b a, b $ & % q 1 q 0 Ñ a bq 1 aq f (S := q 0 ) q 1 Ñ aq 0 bq j q f Ñ aq j bq j q j Ñ aq j bq j Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
150 Τυπικές Γλώσσες Τυπικές Γραμματικές Κανονικές γραμματικές II Από αυτόματο σε γραμματική Απαλοιφή συμβόλων που δεν παράγουν τίποτα (non yielding) q j, q f και παραγωγών που σχετίζονται με αυτά: " q0 Ñ a bq 1 (S := q 0) q 1 Ñ aq 0 Κατασκευή αριστερογραμμικής γραμματικής (αντιστροφή βελών) $ q f Ñ q 0 a (S := q f ) & q 0 Ñ q 1 a ε q 1 Ñ q 0 b % q j Ñ q j b q j a q f b q f a q 1 b Απαλοιφή συμβόλων στα οποία δεν φθάνουμε ποτέ (unreachable): q j, καθώς και παραγωγών που σχετίζονται με αυτά: $ & % q f Ñ q 0 a (S := q f ) q 0 Ñ q 1 a ε q 1 Ñ q 0 b Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
151 Τυπικές Γλώσσες Τυπικές Γραμματικές Κανονικές γραμματικές I Ισοδυναμία με αυτόματο Θεώρημα Τα ακόλουθα είναι ισοδύναμα: 1 L = L(G 1), όπου G 1 είναι δεξιογραμμική γραμματική 2 L = L(G 2 ), όπου G 2 είναι αριστερογραμμική γραμματική 3 L = L(M), όπου M είναι FA Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
152 Τυπικές Γλώσσες Τυπικές Γραμματικές Context-free grammars I Παράδειγμα (1) Έστω η γραμματική G 1: V = tsu, T = ta, bu, P = ts Ñ ε asbu Μια δυνατή ακολουθία παραγωγών είναι η: S ñ asb ñ aasbb ñ aaasbbb ñ aaabbb H γλώσσα που παράγεται από την G 1 είναι η L(G 1 ) := ta n b n n P Nu Παράδειγμα (2) G 2 = (V, T, P, S) όπου T = t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, u, V = tsu και το P περιέχει τους κανόνες: S Ñ S + S S Ñ S S S Ñ Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
153 Τυπικές Γλώσσες Τυπικές Γραμματικές Context-free grammars II Παράδειγμα (3) G 3 = (V, T, P, S), V = ts, A, Bu, T = ta, bu και το P περιέχει τους κανόνες: S Ñ ab ba A Ñ a as baa B Ñ b bs abb Μια δυνατή ακολουθία παραγωγών της πιο πάνω γραμματικής είναι: S ñ ab ñ abs ñ abba ñ abba Αν και δεν είναι προφανές, L(G 3) = tw P T + w έχει ίσο αριθμό a και bu Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
154 Τυπικές Γλώσσες Τυπικές Γραμματικές Συντακτικά δένδρα I Θεώρημα Έστω G(V, T, P, S) μια cf γραμματική Τότε S ñ α ανν υπάρχει συντακτικό δένδρο με φύλλωμα το α Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
155 Τυπικές Γλώσσες Τυπικές Γραμματικές Συντακτικά δένδρα II a A b b S B a S S a S b b S a a S b (1) (3) ε Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
156 Τυπικές Γλώσσες Τυπικές Γραμματικές Συντακτικά δένδρα III Ορισμός Μια γραμματική ονομάζεται διφορούμενη (ambiguous) αν υπάρχουν δύο συντακτικά δένδρα που να έχουν ως φύλλωμα το ίδιο w P L(G) S S S S 2 3 S S S 4 S S S + 3 Παράδειγμα διφορούμενης γραμματικής Η συμβολοσειρά αποτελεί φύλλωμα δύο πιθανών συντακτικών δένδρων της γραμματικής G 2 του παραδείγματος (2) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
157 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Άχρηστα σύμβολα (unreachable + non-yielding) Ορισμός Ένα σύμβολο λέγεται reachable ανν υπάρχει μια παραγωγή της μορφής S ñ αxβ για κάποια α, β P (V Y T) Διαφορετικά λέγεται unreachable Ορισμός Ένα σύμβολο λέγεται yielding ανν υπάρχει μια παραγωγή της μορφής X ñ w για κάποιο w P T Διαφορετικά λέγεται non-yielding Θεώρημα Κάθε μη κενή cf γλώσσα παράγεται από μια cf γραμματική χωρίς άχρηστα σύμβολα Απόδειξη Απαλείφουμε τα non-reachable και non-yielding σύμβολα (η διαδικασία αυτή μπορεί να γίνει μηχανιστικά) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
158 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών ε-productions I Ορισμός Παραγωγές τις μορφής A Ñ ε ονομάζονται ε-productions Ορισμός Μια μετβλητή A λέγεται nullable αν υπάρχει μια ακολουθία παραγωγών τέτοια ώστε A ñ ε Θεώρημα Δεδομένης μιας cf γραμματικής G = (V, T, P, S) μπορούμε να κατασκευάσουμε μια cf γραμματική G 1 χωρίς άχρηστα σύμβολα και ε-productions τέτοια ώστε L(G 1 ) = L(G) ztεu Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
159 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών ε-productions II Παράδειγμα Εστω η γραμματική S Ñ aabac A Ñ aaba ε B Ñ bbb τότε παίρνω S Ñ aabac abac aabc abc A Ñ aaba B Ñ bbb Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
160 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών unit productions Ορισμός Μια παραγωγή της μορφής A Ñ B καλείται unit production Θεώρημα Κάθε cf γλώσσα που δεν περιέχει το ε παράγεται από μία γραμματική χωρίς άχρηστα σύμβολα, ε-productions και unit productions Παράδειγμα Εστω οι παραγωγές: A Ñ B abb B Ñ cab τότε παίρνω A Ñ cab abb B Ñ cab Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
161 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Απλοποίηση cf γραμματικών Συνοψίζοντας, τα βήματα που πρέπει να ακολουθήσει κανείς για να απλοποιήσει μια cf γραμματική είναι: 1 Απαλοιφή ε-productions 2 Απαλοιφή non-yielding συμβόλων 3 Απαλοιφή unreachable συμβόλων 4 Απαλοιφή unit productions Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
162 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Chomsky Normal Form I Η ιδέα της κανονικής μορφής Chomsky είναι να περιορίσουμε το μέγεθος του δεξιού μέλους κάθε παραγωγής, έτσι ώστε μια μεταβλητή να αντικαθίσταται από δύο μόνο άλλες μεταβλητές το πολύ σε κάθε βήμα Παράδειγμα Η γλώσσα μετατρέπεται αρχικά σε και, εν τέλει, σε S Ñ SaS b S Ñ SC a S b, C a Ñ a S Ñ SD 1 b, C a Ñ a, D 1 Ñ C a S Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
163 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Chomsky Normal Form II Θεώρημα (Κανονική μορφή Chomsky, CNF) Κάθε cf γλώσσα χωρίς το ε παράγεται από μια γραμματική στην οποία όλες οι παραγωγές είναι της μορφής A Ñ BC ή A Ñ a όπου A, B, C μεταβλητές και a τερματικό Παράδειγμα: Έστω η γραμματική G 1 = (v, t, p, s), V = ts, A, Bu, T = ta, bu και P: S Ñ ab ba A Ñ a as baa B Ñ b bs abb σύμφωνα με το πιο πάνω θεώρημα, η G 2 = (V 1, T, P 1, S) θα έχει V 1 = V Y tc a, C b u και P 1 : S Ñ C a B C b A A Ñ a C a S C b AA B Ñ b C b S C a BB C a Ñ a C b Ñ b Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
164 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Chomsky Normal Form III τέλος μετατρέπουμε την G 2 στην G 3 = (V 2, T, P 2, S), η οποία είναι σε CNF, και έχει V 2 = V 1 Y td 1, D 2 u και P 2 : S Ñ C a B C b A A Ñ a C a S C b D 1 D 1 Ñ AA B Ñ b C bs C ad 2 D 2 Ñ BB C a Ñ a C b Ñ b Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
165 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form I Η ιδέα πίσω από την κανονική μορφή Greibach (GNF) είναι να μετατρέψουμε τους κανόνες παραγωγής με τέτοιο τρόπο ώστε το αποτέλεσμα μιας αντικατάστασης μιας μεταβλητής, σύμφωνα με τους κανόνες παραγωγής, να έχει πάντοτε ως πρώτο σύμβολο ένα τερματικό Παράδειγμα Μια γραμματική με κανόνες παραγωγής: μετατρέπεται σε S Ñ Sac Sc da S Ñ da S Ñ dab B Ñ ac c B Ñ acb cb Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
166 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form II Λήμμα Έστω μια cf γραμματική G Έστω επιπλέον A Ñ α 1α 2 μια παραγωγή στο P και B Ñ β 1 β 2 β r όλες οι B-παραγωγές Ονομάζουμε G 1 = (V, T, P 1, S) την γραμματική που προκύπτει από την G αν αφαιρέσουμε την παραγωγή A Ñ α 1α 2 και στη θέση της προσθέσουμε τις παραγωγές A Ñ α 1 β 1 α 2 α 1 β 2 α 2 α 1 β r α 2 Τότε ισχύει L(G) = L(G 1 ) Λήμμα Έστω μια cf γραμματική G = (V, T, P, S) Έστω επίσης A Ñ α 1 α 2 α r όλες οι A-παραγωγές στις οποίες το A είναι το αριστερότερο σύμβολο στο δεξί μέλος μιας παραγωγής (left recursion) και A Ñ β 1 β 2 β s οι υπόλοιπες A-παραγωγές Ονομάζουμε G 1 = (V Y tbu, T, P 1, S) την cf γραμματική που προκύπτει από την G προσθέτοντας την μεταβλητή B στο V και αντικαθιστώντας όλες τις A-παραγωγές με τις παραγωγές: # A Ñ β 1 β 2 β s β 1B β 2B β s B Ñ α 1 α 2 α r α 1B α 2B α rb Τότε L(G 1 ) = L(G) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
167 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form III Θεώρημα (Κανονική μορφή Greibach, GNF) Κάθε cf γλώσσα χωρίς το ε παράγεται από μια γραμματική στην οποία όλες οι παραγωγές είναι της μορφής A Ñ aα, όπου α P V, a P T Απόδειξη: Βήμα πρώτο Μετατρέπουμε επαγωγικά τις παραγωγές έτσι ώστε αν A i Ñ A j γ, γ P V είναι μια παραγωγή, τότε j ą i Έστω ότι όλες οι A i -παραγωγές με 1 ď i ă k, για κάποιο k, έχουν τροποποιηθεί έτσι ώστε αν A i Ñ A j γ είναι μια παραγωγή, τότε j ą i (επαγωγική υπόθεση) Θα τροποποιήσουμε τώρα τις A k παραγωγές έτσι ώστε να έχουν και αυτές την επιθυμητή ιδιότητα Αν A k Ñ A jγ είναι μια παραγωγή με j ă k και A j Ñ β 1 β 2 β r, δημιουργούμε ένα νέο σύνολο παραγωγών αντικαθιστώντας το A j με το δεξί μέλος κάθε A j παραγωγής, σύμφωνα με το πρώτο λήμμα Έτσι λαμβάνουμε τις παραγωγές A k Ñ β 1 γ β 2 γ β r γ Τώρα μεγάλωσε ο δείκτης της πρώτης μεταβλητής των A k -παραγωγών Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
168 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form IV Επαναλαμβάνοντας αυτή τη διαδικασία το πολύ k 1 φορές, καταλήγουμε σε παραγωγές της μορφής A k Ñ A l, l ě k Οι παραγωγές με l = k (left recursion) αντικαθίστανται στη συνέχεια σύμφωνα με το δεύτερο λήμμα, εισάγοντας μια νέα μεταβλητή B k Προσθέτουμε λοιπόν κανόνες παραγωγής της μορφής B k Ñ γ, B k Ñ γ k και A k Ñ γ k, για κάθε παραγωγή της μορφής A k Ñ γ που το γ δεν ξεκινά με A k Επαναλαμβάνοντας την πιο πάνω διαδικασία για κάθε μεταβλητή του V, καταλήγουμε να έχουμε μόνο παραγωγές με μορφή μια από τις παρακάτω: 1 A i Ñ A j γ, όπου j ą i, 2 A i Ñ aγ, όπου a P T, 3 B i Ñ γ, όπου και εδώ αλλά και πριν γ P (V Y tb 1, B 2,, B i 1u) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
169 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form V Βήμα δεύτερο Παρατηρούμε ότι το αριστερότερο σύμβολο στη δεξιά πλευρά κάθε A m -παραγωγής πρέπει να είναι τερματικό, καθώς η A m είναι αριθμημένη με τον μεγαλύτερο δείκτη Το αριστερότερο σύμβολο στη δεξιά πλευρά κάθε A m 1 -παραγωγής θα πρέπει να είναι είτε A m είτε κάποιο τερματικό σύμβολο Όπου είναι A m, μπορούμε να κατασκευάζουμε νέες παραγωγές αντικαθιστώντας το A m σύμφωνα με το πρώτο λήμμα Αυτές οι παραγωγές θα έχουν δεξιά μέλη που θα ξεκινούν με τερματικά σύμβολα Με τον ίδιο τρόπο, προχωρούμε στη συνέχεια στις παραγωγές των A m 2, A m 3, A 2, A 1, μέχρι το δεξί μέλος κάθε παραγωγής να ξεκινά με κάποιο τερματικό σύμβολο Βήμα τρίτο Τέλος, ελέγχουμε τις παραγωγές των νέων μεταβλητών B 1, B 2,, B m Αφού ξεκινήσαμε με μια γραμματική σε CNF, είναι εύκολο να δείξουμε με επαγωγή στον αριθμό των εφαρμογών των λημμάτων ότι το δεξί μέλος κάθε B i -παραγωγής θα ξεκινάει είτε με κάποιο τερματικό είτε με κάποιο A j Oπότε, άλλη μία εφαρμογή του πρώτου λήμματος, για να μετατραπούν οι παραγωγές της μορφής B i Ñ A j γ, ολοκληρώνει την κατασκευή Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
170 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form VI Παράδειγμα: Έστω η γραμματική G = (ta 1, A 2, A 3 u, ta, bu, P, A 1 ), όπου το P περιέχει τους εξής κανόνες παραγωγής: A 1 Ñ A 2 A 3 A 2 Ñ A 3 A 1 b A 3 Ñ A 1 A 2 a σε Chomsky Normal Form Βήμα πρώτο Οι παραγωγές για A 1, A 2 έχουν την επιθυμητή μορφή, ενώ η A 3 Ñ A 1 A 2 όχι, καθώς ξεκινάει με μεταβλητή μικρότερου δείκτη Εφαρμόζοντας το πρώτο λήμμα παίρνουμε A 3 Ñ A 2 A 3 A 2 a που επίσης δεν είναι στην επιθυμητή μορφή, άρα ξαναεφαρμόζουμε το πρώτο λήμμα και παίρνουμε A 3 Ñ A 3 A 1 A 3 A 2 ba 3 A 2 a Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
171 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form VII Τώρα έχουμε A 3 Ñ A 3γ (left recursion), άρα εφαρμόζουμε το δεύτερο λήμμα Εισάγουμε μια καινούρια μεταβλητή B 3 και οι κανόνες παραγωγής γίνονται: A 3 Ñ ba 3A 2B 3 ab 3 ba 3A 2 a B 3 Ñ A 1 A 3 A 2 A 1 A 3 A 2 B 3 Βήμα δεύτερο Τώρα όλες οι A 3 -παραγωγές ξεκινούν με τερματικά Για να συμβεί το ίδιο και στις υπόλοιπες A i μεταβλητές, εφαρμόζουμε επαναληπτικά το πρώτο λήμμα Η διόρθωση των A 2 -παραγωγών δίνει: A 2 Ñ ba 3 A 2 B 3 A 1 A 2 Ñ ba 3 A 2 A 1 A 2 Ñ ab 3 A 1 A 2 Ñ aa 1 A 2 Ñ b Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
172 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form VIII Ενώ η διόρθωση των A 1-παραγωγών: A 1 Ñ ba 3 A 2 B 3 A 1 A 3 A 1 Ñ ba 3 A 2 A 1 A 3 A 1 Ñ ab 3 A 1 A 3 A 1 Ñ aa 1 A 3 A 1 Ñ ba 3 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
173 Τυπικές Γλώσσες Απλοποίηση cf γραμματικών Greibach Normal Form IX Βήμα τρίτο Οι B 3 παραγωγές μετατρέπονται με εφαρμογή του πρώτου λήμματος σε κανονική μορφή, προσθέτοντας έτσι άλλες 10 παραγωγές Το τελικό σύνολο από παραγωγές είναι το εξής: A 3 Ñ ba 3 A 2 B 3 ba 3 A 2 ab 3 a A 2 Ñ ba 3A 2B 3A 1 ba 3A 2A 1 ab 3A 1 aa 1 b A 1 Ñ ba 3 A 2 B 3 A 1 A 3 ba 3 A 2 A 1 A 3 ab 3 A 1 A 3 aa 1 A 3 ba 3 B 3 Ñ ba 3 A 2 B 3 A 1 A 3 A 3 A 2 B 3 ba 3 A 2 B 3 A 1 A 3 A 3 A 2 B 3 Ñ ab 3 A 1 A 3 A 3 A 2 B 3 ab 3 A 1 A 3 A 3 A 2 B 3 Ñ ba 3A 3A 2B 3 ba 3A 3A 2 B 3 Ñ ba 3A 2A 1A 3A 3A 2B 3 ba 3A 2A 1A 3A 3A 2 B 3 Ñ aa 1 A 3 A 3 A 2 B 3 aa 1 A 3 A 3 A 2 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
174 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Εισαγωγή στα PDA I Ένα αυτόματο στοίβας (push down automaton ή για συντομία PDA) αποτελείται από μία ταινία εισόδου, αλλά επιπλέον, σε σχέση με τα FA, έχει και μία στοίβα (μη φραγμένη σε μέγεθος μνήμη, αλλά με περιορισμένες δυνατότητες πρόσβασης σε αυτήν) Η πρόσβαση στην στοίβα γίνεται μόνον στην κορυφή αυτής με τις εξής δύο λειτουργίες: 1 push: Τοποθετεί ένα στοιχείο που δίνεται στην κορυφή της στοίβας 2 pop: Αφαιρεί ένα στοιχείο για χρήση από την κορυφή της στοίβας Παρατήρηση Είναι προφανές ότι αν κάποιο στοιχείο βρίσκεται βαθιά μέσα στην στοίβα, δηλαδή αφού έχει μπει στην στοίβα με push, έχουν επίσης μπει με push άλλα στοιχεία πάνω από αυτό, προκειμένου να έχουμε πρόσβαση σε αυτό θα πρέπει να κάνουμε pop σε όλα τα στοιχεία που είναι από πάνω του Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
175 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Εισαγωγή στα PDA II Παράδειγμα: Θεωρήστε την γλώσσα L = twcw R w P (0 + 1) u Για παράδειγμα 110c011 P L Να πώς μπορούμε να αναγνωρίσουμε την παραπάνω γλώσσα με ένα PDA: 1 push(a) στην στοίβα για κάθε 0 που συναντάς στην είσοδο, push(b) στην στοίβα για κάθε 1 που συναντάς στην είσοδο, μέχρι να συναντήσεις το c 2 διάβασε το c, κάνε pop τα στοιχεία της στοίβας και διάβαζε παράλληλα την είσοδο, αποδέξου αν υπάρχει συμφωνία των στοιχείων εισόδου με τα στοιχεία της στοίβας (a με 0, b με 1) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
176 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Εισαγωγή στα PDA III Η συμβολοσειρά 110c011 γίνεται αποδεκτή ως εξής: q 0, 110c011, $ M q 0, 10c011, $M q 0, 0c011, b $M q 0, c011, a b b b b $ M q 2, 011, a b $M q 2, 11, b $M q 2, 1, $M q 2,, b b b Αντιθέτως, η συμβολοσειρά 01c01 δεν γίνεται αποδεκτή Ένας υπολογισμός είναι μία πεπερασμένη ακολουθία από configurations ή στιγμιαίες περιγραφές Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
177 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Τυπικός ορισμός PDA Ορισμός Ένα αυτόματο στοίβας (push down automaton ή για συντομία PDA) είναι μία πλειάδα M = (Q, Σ, Γ, δ, q 0, Z 0, F), όπου: Q: πεπερασμένο σύνολο καταστάσεων, Σ: αλφάβητο εισόδου, Γ: αλφάβητο στοίβας, δ: Q ˆ (Σ Y tεu) ˆ Γ Ñ Pow(Q ˆ Γ ) (πεπερασμένα υποσύνολα), η συνάρτηση μετάβασης (επιτρέπονται ε-κινήσεις και μη ντετερμινισμός), q 0 P Q: αρχική κατάσταση, Z 0 P Γ: αρχικό σύμβολο στην στοίβα, F Ď Q: τελικές καταστάσεις Υπάρχουν δύο είδη PDA ως προς το αποδέχεσθαι: 1 αποδέξου όταν βρίσκεσαι σε τελική κατάσταση αφού έχεις διαβάσει όλη την ταινία εισόδου, ανεξάρτητα από το τι υπάρχει στην στοίβα, ή, 2 αποδέξου όταν η στοίβα είναι άδεια αφού έχεις διαβάσει όλη την ταινία εισόδου, ανεξάρτητα από την κατάσταση στην οποία ευρίσκεσαι (σύμβαση: F = H) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
178 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ερμηνεία της συνάρτησης μετάβασης δ I δ(q, a, z) = t(q 1, γ 1 ), (q 2, γ 2 ),, (q m, γ m )u όπου q, q 1, q 2,, q m P Q a P Σ Y tεu z P Γ: αλφάβητο στοίβας, γ 1, γ 2,, γ m P Γ Επίλεξε ένα από τα (q i, γ i) μη ντετερμινιστικά: η επόμενη κατάσταση είναι η q i κάνε pop το z από την στοίβα και κάνε push όλο το γ i (το τελευταίο σύμβολο πρώτα) Για παράδειγμα: γ i = abc: bc Ñ a γ i = ε: z z Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190 Ñ
179 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ερμηνεία της συνάρτησης μετάβασης δ II Παράδειγμα PDA που αποδέχεται την twcw R w P (0 + 1) u: M = (tq 0, q 2 u, t0, 1, cu, ta, b, Bu, δ, q 0, B, H), όπου δ: δ(q 0, 0, B a) = t(q 0, a B a)u, b b δ(q 0, 1, B a) = t(q 0, b B a)u, b b δ(q 0, c, B a) = t(q 2, B a)u b b δ(q 2, 0, a) = t(q 2, ε)u, δ(q 2, 1, b) = t(q 2, ε)u, δ(q 2, ε, B) = t(q 2, ε)u (Είναι ντετερμινιστικό!) Ένας υπολογισμός τυπικά: (q 0, 110c011, B) $ (q 0, 10c011, bb) $ (q 0, 0c011, bbb) $ (q 0, c011, abbb) $ (q 2, 011, abbb) $ (q 2, 11, bbb) $ (q 2, 1, bb) $ (q 2, ε, B) $ (q 2, ε, ε) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
180 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Γλώσσα που αποδέχεται ένα PDA Ας ορίσουμε τυπικά και την γλώσσα που αποδέχεται ένα PDA: Ορισμός 1 Γλώσσα που αποδέχεται σε τελική κατάσταση L f (M) = tw (q 0, w, Z 0 ) $ (q, ε, γ) ^ q P Fu M 2 Γλώσσα που αποδέχεται με κενή στοίβα L e (M) = tw (q 0, w, Z 0 ) $ (q, ε, ε) } M Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
181 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ντετερμινισμός και μη Προκειμένου να γίνει αποδεκτή η L 1 = tww R w P (0 + 1) u χωρίς το σημάδι c στην μέση της συμβολοσειράς χρειαζόμαστε απαραιτήτως ένα μη ντετερμινιστικό PDA Τα μη ντετερμινιστικά PDA είναι γνησίως πιο ισχυρά από τα ντετερμινιστικά Ασκηση Κατασκευάστε PDA που αποδέχεται την L 1 Σε ένα ντετερμινιστικό PDA δεν υπάρχουν επιλογές, αλλά επιτρέπουμε ε-κινήσεις Αν μία ε-κίνηση είναι δυνατή δεν είναι δυνατή καμμία άλλη κίνηση Τυπικά: Ορισμός Ένα PDA είναι ντετερμινιστικό όταν: 1 δ(q, a, z) ď 1 για κάθε q P Q, a P Σ Y tεu, z P Γ και 2 για κάθε q P Q, a P Σ, z P Γ, αν δ(q, ε, z) H, τότε δ(q, a, z) = H Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
182 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές I Ας θυμηθούμε τις δύο γλώσσες αποδοχής που αντιστοιχούν σε ένα PDA: L f(m) = tw (q 0, w, Z 0) $ (q, ε, γ) ^ q P Fu M L e(m) = tw (q 0, w, Z 0) $ (q, ε, ε)u M Θα χρησιμοποιήσουμε μία επιπλέον γλώσσα αποδοχής: L(M) = tw (q 0, w, Z 0 ) $ (q, ε, ε) ^ q P Fu M Προφανώς, σε αυτήν το αυτόματο αποδέχεται όταν ταυτόχρονα αφού έχει διαβάσει όλη την είσοδο βρίσκεται σε τελική κατάσταση και επιπλέον η στοίβα είναι άδεια Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
183 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές II Θεώρημα Τα παρακάτω είναι ισοδύναμα για μία γλώσσα L: 1 L = L f(m 2), M 2 είναι PDA 2 L = L e (M 1 ), M 1 είναι PDA 3 L = L(M b ), M b είναι PDA 4 L = L f (M a ) = L e (M a ) = L(M a ), M a είναι PDA 5 Η L είναι γλώσσα χωρίς συμφραζόμενα (context free) Απόδειξη: Θα δείξουμε τις εξής κατευθύνσεις: 1 ðñ 4, 2 ðñ 4, 3 ðñ 4, 4 ðñ 5 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
184 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές III 1 ùñ 4: Κατασκευάζουμε pda M a που εξομοιώνει το M 2 Το M a θα πρέπει να αδειάζει την στοίβα όταν το M 2 φτάνει σε τελική κατάσταση (χρησιμοποιούμε την κατάσταση q e για αυτόν τον λόγο) Ακόμη χρησιμοποιούμε ένα στοιχείο X 0 στον πάτο της στοίβας έτσι ώστε το αυτόματο να μην αποδέχεται σε οποιαδήποτε άλλη περίπτωση Τέλος, χρησιμοποιούμε μία νέα τελική κατάσταση q f προκειμένου να έχουμε και τις δύο συνθήκες τερματισμού ταυτόχρονα M a = (Q Y tq 1 0, q e, q f u, Σ, Γ Y tx 0 u, δ 1, q 1 0, X 0, tq f u) 1 πρώτη μετάβαση: δ 1 (q 1 0, ε, X 0 ) = t(q 0, Z 0 X 0 )u 2 όλες οι παλιές μεταβάσεις: δ 1 (q, a, z) Ě δ(q, a, z), για κάθε q P Q, a P Σ Y tεu, z P Γ 3 μεταβάσεις για άδειασμα στοίβας: δ 1 (q, a, z) Q (q e, ε), για κάθε q P F Y tq e u, z P Γ 4 τελική μετάβαση: δ 1 (q, ε, X 0) = t(q f, ε)u, για κάθε q P F Y tq eu Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
185 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές IV Θα δείξουμε L f (M 2 ) = L e (M a ) = L f (M a ) = L(M a ) Έστω x P L f (M 2 ), δηλαδή ισχύει: (q 0, x, Z 0 ) $ (q, ε, γ) ^ q P F Τότε θα έχουμε M 2 (q 1 0, x, X 0 ) $ (q 0, x, Z 0 X 0 ) $ (q, ε, X 0 ) $ (q e, ε, X 0 ) $ (q f, ε, ε) και επομένως το x ανήκει M a M a M a M a σε κάθε ένα από τα L e(m a), L f(m a), L(M a) Παρόμοια δείχνουμε και τις άλλες συμπεριλήψεις 2 ùñ 4: Κατασκευάζουμε pda M a που εξομοιώνει το M 1 Το M a θα πρέπει να μπαίνει στην τελική κατάσταση όταν το M 1 αδειάζει την στοίβα του Χρησιμοποιούμε ένα νέο στοιχείο X 0 στον πάτο της στοίβας έτσι ώστε να έχουμε και τις δύο συνθήκες τερματισμού ταυτόχρονα M a = (Q Y tq 1 0, q f u, Σ, Γ Y tx 0 u, δ 1, q 1 0, X 0, tq f u) 1 πρώτη μετάβαση: δ 1 (q 1 0, ε, X 0 ) = t(q 0, Z 0 X 0 )u Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
186 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές V 2 όλες οι παλιές μεταβάσεις: δ 1 (q, a, z) Ě δ(q, a, z), για κάθε q P Q, a P Σ Y tεu, z P Γ 3 τελική μετάβαση: δ 1 (q, ε, X 0 ) = t(q f, ε)u, για κάθε q P Q Τελικά, όπως παραπάνω δείχνουμε L e(m 1) = L f(m a) = L e(m a) = L(M a) 3 ùñ 4: Χρησιμοποιούμε ένα νέο στοιχείο X 0 στον πάτο της στοίβας και μία νέα (μοναδική) τελική κατάσταση q f για να αποφύγουμε την περίπτωση να ισχύει μόνον μία συνθήκη τερματισμού Η κατασκευή είναι παρόμοια με αυτήν του 2 ùñ 4 Η μόνη διαφορά είναι στο 3 (τελική μετάβαση), όπου το για κάθε q P Q γίνεται για κάθε τελική κατάσταση (q P F) Τα 4 ùñ 1, 4 ùñ 2, 4 ùñ 3 είναι προφανή Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
187 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές VI 5 ùñ 4: Έστω ότι δίνεται γραμματική χωρίς συμφραζόμενα G τέτοια ώστε ε R L(G) (σε αντίθετη περίπτωση η κατασκευή μας είναι ελαφρά διαφορετική) Υποθέτουμε επίσης ότι δίνεται σε κανονική μορφή Greibach Κατασκευάζουμε ένα pda M a που εξομοιώνει αριστερότερες ακολουθίες παραγωγών της G: και για την συνάρτηση μετάβασης: M a = (tq 0 u, T, V, δ, q 0, S, tq 0 u) (q 0, γ) P δ(q 0, a, A) ανν (A Ñ aγ) P P (μη ντετ) Τότε για x P T, α P V ισχύει: S ñ xα ανν (q 0, x, S) $ M a (q 0, ε, α) Η κατεύθυνση ð αποδεικνύεται με επαγωγή στο πλήθος των υπολογιστικών βημάτων και η ñ με επαγωγή στο πλήθος των βημάτων της ακολουθίας παραγωγής Επομένως: S ñ x ανν (q 0, x, S) $ (q 0, ε, ε), δηλαδή x P L(G) ανν x P L(M a ) M a Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
188 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές VII 4 ùñ 5: Έστω pda M a = (Q, Σ, Γ, δ, q 0, Z 0, q f) Θα δείξουμε ότι για την L = L(M a) υπάρχει γραμματική χωρίς συμφραζόμενα Μάλιστα, την κατασκευάζουμε ως εξής: G = (V, T, P, S), με T = Σ, V = tsu Y (Q ˆ Γ ˆ Q) και σύνολο κανόνων παραγωγής P, οι οποίοι αποσκοπούν στο [q, A, q f ] ñ G x ανν (q, x, A) $ (q f, ε, ε), δηλαδή το M a πηγαίνει από την κατάσταση q στην κατάσταση q f M a επεξεργαζόμενο την συμβολοσειρά x και σβήνοντας το A από την στοίβα Συγκεκριμένα: 1 S Ñ [q 0, Z 0, q f ] 2 Για κάθε q, q m+1 P Q, A P Γ, a P Σ Y tεu: [q, A, q m+1 ] Ñ a[q 1, B 1, q 2 ][q 2, B 2, q 3 ] [q m, B m, q m+1 ] για κάθε συνδυασμό καταστάσεων q 2,, q m αν και μόνον αν ισχύει δ(q, a, A) Q (q 1, B 1 B m ) (Πχ για m = 0: [q, A, q 1 ] Ñ a) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
189 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές VIII δ(q, a, A) = t(q 1, B 1 B m )u [q, A, q m+1] Ñ a[q 1, B 1, ][, B 2, #][# ] [?][?, B m, q συνδυασμό Σχήμα: Κατασκευή κανόνα παραγωγής από κανόνα μετάβασης Πλέον αρκεί να δείξουμε με επαγωγή στο πλήθος των υπολογιστικών βημάτων και το μήκος της ακολουθίας παραγωγών ότι ισχύει: [q, A, p] ñ G x ανν (q, x, A) $ (p, ε, ε) κι M a επομένως [q 0, Z 0, q f ] ñ G x ανν (q 0, x, Z 0 ) $ M a (q f, ε, ε) και άρα S ñ G x ανν (q 0, x, Z 0 ) $ M a (q f, ε, ε), δηλαδή L(G) = L(M a ) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
190 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές IX Παράδειγμα: Έστω το pda: M = (tq 0, q f u, t0, 1u, tx, Z 0 u, δ, q 0, Z 0, tq f u), όπου: δ(q 0, 0, Z 0 ) = tq 0, XZ 0 u, δ(q 0, 0, X) = tq 0, XXu, δ(q 0, 1, X) = δ(q f, 1, X) = δ(q f, ε, X) = δ(q f, ε, Z 0 ) = tq f, εu Το pda λειτουργεί ως εξής: push(x) όσο συναντάς 0 και μετά pop(x) όσο συναντάς 1 ή αν φτάσεις στο τέλος της εισόδου μέχρι να αδειάσει η στοίβα Η γλώσσα που αναγνωρίζεται από το pda είναι: L(M) = t0 m 1 n m ě n ě 1u Θα κατασκευάσουμε γραμματική G = (V, T, P, S) που παραγάγει την L(M) με την μέθοδο της προηγούμενης απόδειξης Για λόγους αναγνωσιμότητας έχουν παραλειφθεί τα κόμματα στις τριάδες Έχουμε T = t0, 1u και V = ts, [q 0 Xq 0 ], [q 0 Xq f ], [q f Xq 0 ], [q f Xq f ], [q 0 Z 0 q 0 ], [q 0 Z 0 q f ], [q f Z 0 q 0 ], [q f Z 0 q f ]u Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
191 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές X Οι κανόνες παραγωγής P είναι: S Ñ [q 0 Z 0 q f ] (1) + [q 0 Z 0 q f ] Ñ 0[q 0 Xq 0 ][q 0 Z 0 q f ] αφού δ(q 0, 0, Z 0 ) = tq 0, XZ 0 u (2) [q 0 Z 0 q f ] Ñ 0[q 0 Xq f ][q f Z 0 q f ] + [q 0 Xq 0 ] Ñ 0[q 0 Xq 0 ][q 0 Xq 0 ] [q 0 Xq 0 ] Ñ 0[q 0 Xq f ][q f Xq 0 ] αφού δ(q 0, 0, X) = tq 0, XXu (3) [q 0 Xq f ] Ñ 1 αφού δ(q 0, 1, X) = tq f, εu (4) [q f0 q f ] Ñ ε αφού δ(q f, ε, Z 0 ) = tq f, εu (5) + [q 0 Xq f ] Ñ 0[q 0 Xq 0 ][q 0 Xq f ] αφού δ(q 0, 0, X) = tq 0, XXu (6) [q 0 Xq f ] Ñ 0[q 0 Xq f ][q f Xq f ] [q f Xq 0 ] Ñ πουθενά αφού δ(q f, ) = tq 0, u δεν ορίζεται (7) [q f Xq f ] Ñ ε 1 αφού δ(q f, ε 1, X) = tq f, εu (8) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
192 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές XI Αν παραλείψουμε τα μη παραγωγικά σύμβολα ([q f Xq 0 ], [q 0 Xq 0 ]) και τις παραγωγές στις οποίες εμφανίζονται και θέτοντας: προκύπτει η γραμματική: S [q 0 Z 0 q f ], A [q 0 Xq f ], B [q f Z 0 q f ], C [q f Xq f ], S Ñ 0AB, A Ñ 0AC 1, B Ñ ε, C Ñ ε 1, η οποία απλοποιείται στην: και τελικά στην: S Ñ 0A, A Ñ 0A 0A1 1, S Ñ 0S 0S1 01, οπότε προφανώς L(G) = L(M) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
193 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές XII Εναλλακτικές αποδείξεις: Μία άλλη ιδέα για κατασκευή pda δεδομένης γραμματικής χωρίς συμφραζόμενα, μόνον με μία κατάσταση στο pda: M a = (tq 0u, T, T Y V, δ, q 0, S, tq 0u) 1 δ(q 0, ε, A) Q (q 0, γ) ανν (A Ñ γ) P P, 2 δ(q 0, a, a) Q (q 0, ε), για κάθε a P T Δείχνουμε S ñ G x ανν (q 0, x, S) $ M a (q 0, ε, ε) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
194 Τυπικές Γλώσσες Αυτόματα στοίβας (pushdown automata) Ισοδυναμία PDA με διαφορετικές αποδοχές XIII Στο βιβλίο του ο Sipser παριστάνει τα pda με διαγράμματα παρόμοια με αυτά των FA: οι καταστάσεις παριστάνονται μέσα σε κύκλο ενώ οι μεταβάσεις με βέλη που είναι επιγεγραμμένα με παραστάσεις της μορφής x/y Ñ z και σημαίνουν διάβασε το x από την είσοδο αν υπάρχει το y στην κορυφή της στοίβας, pop(y) από την στοίβα και push(z) στην στοίβα Έτσι, δεδομένης γραμματικής G το αντίστοιχο pda είναι: ε/a Ñ γ για (A Ñ γ) P P a/a Ñ ε για a P T q 0 q q f ε/ε Ñ S$ ε/$ Ñ ε Επίσης, για την κατασκευή γραμματικής χωρίς συμφραζόμενα δεδομένου pda ο Sipser χρησιμοποιεί μη τερματικά σύμβολα: V = ta pq p, q P Qu και κανόνες της μορφής: * (r, t) P δ(p, a, ε) : A pq Ñ aa rsb (q, ε) P δ(s, b, t) A pq Ñ A pr A rq A pp Ñ ε Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
195 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Pumping λήμματα για cf γλώσσες I Λήμμα (Pumping Lemma για cf γλώσσες) Αν L είναι μία γλώσσα χωρίς συμφραζόμενα τότε υπάρχει n P N τέτοιο ώστε για κάθε z P L με z ě n υπάρχουν u, v, w, x, y P Σ τέτοια ώστε: z = uvwxy ^ vwx ď n ^ vx ě 1 ^ (@i P N: uv i wx i y P L) Απόδειξη: Έστω G γραμματική σε κανονική μορφή Chomsky που παραγάγει την L tεu Έστω k = V (= πλήθος των μη τερματικών συμβόλων) Θεωρούμε n = 2 k και z ě n Ένα συντακτικό δένδρο για το z έχει ύψος μεγαλύτερο ή ίσο του log n + 1 = k + 1, επομένως υπάρχει κάποιο μονοπάτι από την ρίζα S σε ένα φύλλο του συντακτικού δένδρου με μήκος μεγαλύτερο ή ίσο του k + 1 Θεωρούμε το μακρύτερο τέτοιο μονοπάτι P Διατρέχουμε αυτό το μονοπάτι από το φύλλο προς την ρίζα και βρίσκουμε το πρώτο μη τερματικό σύμβολο, που επαναλαμβάνεται, έστω A (σίγουρα κάποιο μη τερματικό επαναλαμβάνεται επειδή υπάρχουν μόνον k διαφορετικά μη τερματικά) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
196 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Pumping λήμματα για cf γλώσσες II z = w A S A u v x y Σχήμα: Συντακτικό δένδρο pumping λήμματος Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
197 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Pumping λήμματα για cf γλώσσες III Στο συντακτικό δένδρο του σχήματος έχουμε vwx ď n, επειδή το A είναι το πρώτο μη τερματικό από το φύλλο που επαναλαμβάνεται και vx ě 1 επειδή το συντακτικό δένδρο προκύπτει από γραμματική σε μορφή Chomsky (άρα δυαδικό) Έτσι, A ñ vax και A ñ w Επομένως, θα έχουμε και A ñ v i wx i για κάθε i P N καθώς και S ñ uv i wx i y, δηλαδή uv i wx i y P L για κάθε i P N Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
198 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Pumping λήμματα για cf γλώσσες IV Όπως, και στις κανονικές γλώσσες, το παραπάνω pumping λήμμα μας βοηθάει να αποδείξουμε ότι κάποιες γλώσσες δεν είναι context free Παράδειγμα L = ta i b i c i i P Nu Ας υποθέσουμε ότι η L είναι cf Τότε θεωρώντας το n του pumping λήμματος επιλέγουμε z = a n b n c n Τότε θα υπάρχουν uvwxy = z με vwx ď n και vx ě 1 Διακρίνουμε περιπτώσεις για το vwx και ελέγχουμε αν uwy P L (δηλαδή το uv i wx i y για i = 0 από το PL) 1 vwx = a k, τότε το uwy έχει περισσότερα c από a 2 vwx = a k b l, τότε το uwy έχει περισσότερα c από a ή b 3 vwx = b k, τότε το uwy έχει περισσότερα c από b 4 vwx = b k c l, τότε το uwy έχει περισσότερα a από b ή c 5 vwx = c k, τότε το uwy έχει περισσότερα a από c Δηλαδή σε καμμία περίπτωση δεν έχουμε uwy P L Άτοπο Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
199 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Pumping λήμματα για cf γλώσσες V Το Pumping λήμμα μπορεί να χρησιμοποιηθεί παρομοίως, όπως παραπάνω, για να δειχθεί ότι η γλώσσα ta i b j c k i ď j ď ku δεν είναι context free Αλλο ένα παράδειγμα, κάπως διαφορετικής γλώσσας, είναι το εξής: Παράδειγμα L = ta i b j c i d j i, j P Nu Η παραπάνω γλώσσα επίσης δεν είναι context free Παρομοίως, όπως παραπάνω, υποθέτουμε ότι είναι cf, οπότε θα ισχύει το Pumping λήμμα Για το n του PL θεωρούμε την z = a n b n c n d n Όπως παραπάνω, για κάθε πιθανό vwx (περιπτώσεις a k, a k b l, b k, b k c l, c k, c k d l, d k ) δείχνουμε ότι uwy R L Άτοπο Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
200 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Pumping λήμματα για cf γλώσσες VI Το pumping λήμμα, αν και είναι πολύ χρήσιμο, υπάρχουν περιπτώσεις μη cf γλωσσών για τις οποίες δεν βοηθάει Για τέτοιες γλώσσες χρειαζόμαστε ένα γενικευμένο PL που να επιτρέπει να κάνουμε pump επιλεκτικά σε προκαθορισμένες θέσεις Λήμμα (Ogden s Lemma) Αν L είναι μία γλώσσα χωρίς συμφραζόμενα τότε υπάρχει n P N τέτοιο ώστε για κάθε συμβολοσειρά z P L στην οποία σημαδεύουμε n ή περισσότερες θέσεις υπάρχουν u, v, w, x, y P Σ τέτοια ώστε: z = uvwxy ^ το vwx έχει το πολύ n σημαδεμένες θέσεις ^ τα v και x έχουν το λιγότερο 1 σημαδεμένη θέση ^ (@i P N: uv i wx i y P L) Σκαρίφημα απόδειξης Παρόμοια με την απόδειξη του Pumping λήμματος Θέτουμε n = 2 k + 1 Θεωρούμε το «μακρύτερο» μονοπάτι με τους περισσότερους απογόνους με σημαδεμένες θέσεις Υπάρχουν τουλάχιστον k + 1 σημεία διακλάδωσης (σημεία όπου και οι δύο απόγονοι καταλήγουν σε σημαδεμένη θέση) στο P Επομένως, υπάρχει μη τερματικό που επαναλαμβάνεται και η απόδειξη συνεχίζεται όπως στο PL Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
201 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Pumping λήμματα για cf γλώσσες VII Παράδειγμα Θα αποδείξουμε ότι η L = ta i b j c k d l i = 0 _ j = k = lu δεν είναι context free Παρομοίως, όπως παραπάνω, υποθέτουμε ότι είναι cf, οπότε θα ισχύει το λήμμα του Ogden Για το n του Ogden θεωρούμε την z = ab n c n d n, όπου σημαδεύουμε όλα τα b: ab n c n d n Τότε θα υπάρχουν τα uvwxy = z του λήμματος του Ogden Διακρίνουμε δύο περιπτώσεις: 1 το v ή το x περιέχουν δύο διαφορετικά σύμβολα, τότε το pumping καταστρέφει την σειρά 2 ένα από τα v, x περιέχει b και το άλλο άλλα σύμβολα, τότε το pumping καταστρέφει το ισάριθμο των συμβόλων Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
202 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Ιδιότητες κλεισίματος I Θεώρημα Οι γλώσσες χωρίς συμφραζόμενα είναι κλειστές ως προς ένωση, παράθεση και κλείσιμο Kleene Απόδειξη Έστω γραμματικές για γλώσσες χωρίς συμφραζόμενα με αξιώματα S 1 και S 2 Χωρίς βλάβη της γενικότητας, υποθέτουμε ότι οι γραμματικές δεν έχουν κοινά μη τερματικά σύμβολα (αυτή η υπόθεση γίνεται και στις παρακάτω αποδείξεις) Κατασκευάζουμε γραμματική με αρχικό σύμβολο S, τους κανόνες των επί μέρους γραμματικών και έναν επιπλέον κανόνα για κάθε πράξη: Y: S Ñ S 1 S 2 παράθεση: S Ñ S 1 S 2 : S Ñ S 1S ε Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
203 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Ιδιότητες κλεισίματος II Θεώρημα Οι γλώσσες χωρίς συμφραζόμενα είναι κλειστές ως προς i) context free αντικατάσταση, ii) ομομορφισμό και iii) αντίστροφο ομομορφισμό Απόδειξη i) Έστω η αντικατάσταση f: a ÞÑ L a με L a γλώσσα χωρίς συμφραζόμενα, για κάθε τερματικό σύμβολο a της αρχικής γραμματικής Έστω ότι η κάθε L a περιγράφεται με γραμματική G a με αξίωμα S a Κατασκευάζουμε νέα γραμματική που περιέχει όλους τους κανόνες της αρχικής γραμματικής G και των G a και αντικαθιστούμε κάθε εμφάνιση των τερματικών συμβόλων της G στους κανόνες της G με το αντίστοιχο αξίωμα S a ii) Υποπερίπτωση του i) iii) Έστω M pda που αποδέχεται την L και ομομορφισμός h: Σ 1 Ñ Σ Κατασκευάζουμε pda M 1 που αποδέχεται την h 1 (L) Το M 1 με είσοδο a παραγάγει το h(a) και εξομοιώνει το h(a) στο αυτόματο M Κάτι τέτοιο είναι δυνατό δεδομένου του πεπερασμένου πλήθους των μη τερματικών συμβόλων (οπότε η εξομοίωση κάθε συμβόλου αποθηκεύεται στον πεπερασμένο έλεγχο του pda M 1 ) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
204 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Ιδιότητες κλεισίματος III Θεώρημα Οι γλώσσες χωρίς συμφραζόμενα δεν είναι κλειστές ως προς i) τομή και ii) συμπλήρωμα Απόδειξη i) Αντιπαράδειγμα: ta i b i c j i, j P Nu X ta i b j c j i, j P Nu = ta i b i c i i P Nu cf γλώσσα cf γλώσσα όχι cf (Βλέπε παράδειγμα?? για την ta i b i c i i P Nu) ii) Από το νόμο de Morgan: L 1 X L 2 = L 1 Y L 2, επειδή οι cf γλώσσες είναι κλειστές ως προς ένωση, αν ήταν κλειστές και ως προς συμπλήρωμα, τότε θα ήταν και ως προς τομή άτοπο Παρ όλα αυτά, η τομή μίας γλώσσας χωρίς συμφραζόμενα με μία κανονική γλώσσα είναι γλώσσα χωρίς συμφραζόμενα: Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
205 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Ιδιότητες κλεισίματος IV Θεώρημα Έστω L γλώσσα χωρίς συμφραζόμενα και R κανονική γλώσσα Τότε η L X R είναι γλώσσα χωρίς συμφραζόμενα Ιδέα απόδειξης Κατασκευάζουμε ένα pda που εξομοιώνει παράλληλα το pda που αναγνωρίζει την L και το fa (πεπερασμένο αυτόματο) που αναγνωρίζει την R Δίνουμε και μία εφαρμογή του παραπάνω θεωρήματος: Παράδειγμα Η L = tww w P (a + b) u δεν είναι cf Πράγματι η τομή της L με την κανονική γλώσσα a b a b : L X a b a b = ta i b j a i b j i, j P Nu = L 1 δεν είναι cf (Για το τελευταίο, θεωρήστε τον ομομορφισμό h(a) = h(c) = a, h(b) = h(d) = b και δείτε ότι h 1 (L 1 ) X a b c d = ta i b j c i d j i, j P Nu = L 2 και για την L 2 έχουμε ήδη αποδείξει ότι δεν είναι cf, σε προηγούμενο παράδειγμα) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
206 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Αλγόριθμοι για cf γλώσσες I Θεώρημα Υπάρχουν αλγόριθμοι που αποκρίνονται αν μία γλώσσα χωρίς συμφραζόμενα είναι α) κενή, β) πεπερασμένη ή άπειρη Απόδειξη α) Είτε με την βοήθεια του pumping λήμματος, είτε με εύρεση των χρήσιμων (δηλαδή προσβάσιμων από το αξίωμα και παραγωγικών) μη τερματικών συμβόλων β) Πάλι, είτε με την βοήθεια του pumping λήμματος, είτε, θεωρώντας ότι η γραμματική είναι σε κανονική μορφή Chomsky με σχεδιασμό του γράφου με κόμβους τα χρήσιμα μη τερματικά σύμβολα και κατευθυνόμενες ακμές, έστω πχ από το A στο B, αν υπάρχει κανόνας A Ñ BC ή A Ñ CB Η γλώσσα είναι άπειρη αν και μόνον αν υπάρχει κύκλος στον γράφο (ισοδύναμα υπάρχει re-entrant μη τερματικό σύμβολο) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
207 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Αλγόριθμοι για cf γλώσσες II Δεδομένης γραμματικής χωρίς συμφραζόμενα G, υπάρχει μηχανιστικός αλγόριθμος ο οποίος για οποιαδήποτε συμβολοσειρά x αποκρίνεται αν x P L(G) ή όχι Πχ αν συστηματικά κατασκευάσουμε όλες τις παραγόμενες συμβολοσειρές κατά αύξουσα σειρά μήκους, τότε μπορούμε να αποφασίσουμε εάν x P L(G) Ο αλγόριθμος όμως είναι εκθετικού χρόνου ως προς το μήκος της συμβολοσειράς εισόδου Αν όμως η γραμματική δίνεται σε κανονική μορφή Chomsky, τότε υπάρχει ταχύτερος αλγόριθμος, πολυπλοκότητας O( x 3 ), ο λεγόμενος αλγόριθμος CYK (από τους Cocke, Younger, Kasami) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
208 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Αλγόριθμοι για cf γλώσσες III Αλγόριθμος CYK function CYK(x: string): boolean (* assumes Chomsky nf *) begin n := x for i := 1 to n do V 1 i := ta (A Ñ a) P P ^ (x) i = au; for j := 2 to n do for i := 1 to n j + 1 do begin V j i := H; for k := 1 to j 1 do V j i := V j i Y ta (A Ñ BC) P P ^ B P Vk i ^ C P V j k i+k u end ; CYK := S P V n 1 end Ο αλγόριθμος ουσιαστικά ελέγχει όλα τα δυνατά συντακτικά δένδρα, αρχίζοντας από τα τερματικά σύμβολα στα φύλλα και αποδίδοντας σε αυτά πιθανά μη τερματικά σύμβολα που τα παραγάγουν Ο αλγόριθμος συνεχίζει αποδίδοντας πιθανά μη τερματικά σύμβολα σε κάθε υποσυμβολοσειρά της συμβολοσειράς εισόδου και τέλος ελέγχει αν στην συμβολοσειρά εισόδου έχει αποδοθεί το αξίωμα S Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
209 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Αλγόριθμοι για cf γλώσσες IV Παράδειγμα Έστω γραμματική σε κανονική μορφή Chomsky: S Ñ AB BC, A Ñ BA a, B Ñ CC b, C Ñ AB a Στο σχήμα δίνουμε την εκτέλεση του αλγορίθμου και το αντίστοιχο συντακτικό δένδρο για είσοδο x = baaba Με τα βέλη, δείχνουμε την ακολουθία υπολογισμού για j = 4 (μήκος substring) και για τo substring (x) 25 (αρχίζει, δηλαδή, από την θέση i = 2): Μέσα σε κύκλο και με τον ίδιο αριθμό συμβολίζουμε τα δύο substrings (συνολικού μήκους 4) που συνδυάζονται για να δώσουν το (x) 25 x = b a a b a S 1 B A, C 1 A, C B A, C 3 j = 2 S, A B 2 S, C S, A 2 j = 3 H B 3 B 1 j = 4 H S, A, C j = 5 S, A, C B b A A a A a C B b B C a Σχήμα: Εκτέλεση αλγορίθμου CYK Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
210 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Αποτελέσματα μη αποκρισιμότητας I Για τις γραμματικές χωρίς συμφραζόμενα, υπάρχουν αρκετά σημαντικά προβλήματα απόφασης για τα οποία δεν υπάρχει μηχανιστικός αλγόριθμος Αναφέρουμε, χωρίς απόδειξη, τα εξής αποτελέσματα: Δεν υπάρχει μηχανιστικός αλγόριθμος που αποκρίνεται δεδομένων δύο γραμματικών χωρίς συμφραζόμενα G 1 και G 2, αν L(G 1) = L(G 2) (ισότητα equality) Δεν υπάρχει μηχανιστικός αλγόριθμος που αποκρίνεται δεδομένων δύο γραμματικών χωρίς συμφραζόμενα G 1 και G 2, αν L(G 1) X L(G 2) H (μη κενή τομή intersection non-emptiness) Δεν υπάρχει μηχανιστικός αλγόριθμος που αποκρίνεται δεδομένης γραμματικής χωρίς συμφραζόμενα G, αν η L(G) είναι κανονική (κανονικότητα regularity) Η κατάσταση σε σχέση με τις κανονικές γλώσσες έχει όπως φαίνεται στον επόμενο πίνακα Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
211 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Αποτελέσματα μη αποκρισιμότητας II αποκρίσιμα μη αποκρίσιμα ισότητα μη κενή τομή regular (μη) κενή γλώσσα άπειρη γλώσσα ανήκειν ανήκειν μη κενή τομή cf (μη) κενή γλώσσα ισότητα άπειρη γλώσσα κανονικότητα Πίνακας: Προβλήματα απόφασης για regular και cf γλώσσες Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
212 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Γραμμικότητα και ημιγραμμικότητα I Η παρακάτω μέθοδος μας βοηθάει να αποδείξουμε ότι μια γλώσσα δεν είναι cf Ορισμός Ένα υποσύνολο του N ονομάζεται γραμμικό αν τα στοιχεία του σχηματίζουν αριθμητική πρόοδο, είναι δηλαδή της μορφής tx 0 + kd k P Nu, όπου x 0, d σταθερές Παράδειγμα A = ty y = 3x + 1, x P Nu = t1, 4, 7, 10, u Ορισμός Ένα υποσύνολο του N ονομάζεται ημιγραμμικό αν είναι πεπερασμένη ένωση γραμμικών συνόλων Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
213 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Γραμμικότητα και ημιγραμμικότητα II Παράδειγμα B = ty y = 4x 3, x P Nu = t1, 5, 9, 13, u γραμμικό A Y B = t1, 4, 5, 7, 9, 10, u ημιγραμμικό σύνολο Παρατήρηση Στα ημιγραμμικά σύνολα οι αποστάσεις μεταξύ των στοιχείων δεν αυξάνονται Ισχύει το παρακάτω σημαντικό θεώρημα: Θεώρημα (Parikh) Για κάθε γραμματική χωρίς συμφραζόμενα G το σύνολο t x x P L(G)u είναι ημιγραμμικό Παράδειγμα Από την G: S Ñ asb ε προκύπτει η γλώσσα L(G) = ta n b n n P Nu και το σύνολο μηκών t2n n P Nu που είναι γραμμικό Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
214 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Γραμμικότητα και ημιγραμμικότητα III Παρατήρηση Το Θ Parikh ισχύει για οποιαδήποτε μετρική ιδιότητα των strings (δηλ όχι μόνο για το μήκος των strings) Παράδειγμα Η ta 2, a 4, a 8,, a 2n, u δεν είναι cf Πόρισμα Κάθε γλώσσα χωρίς συμφραζόμενα με αλφάβητο ενός συμβόλου είναι κανονική Απόδειξη Αφήνεται ως άσκηση Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
215 Τυπικές Γλώσσες Ιδιότητες cf γλωσσών Γραμμικότητα και ημιγραμμικότητα IV Παράδειγμα Επειδή η ta 2, a 4, a 8,, a 2n, u δεν είναι regular, δεν είναι ούτε cf Παράδειγμα ta n b m m ě n _ (m πρώτος ^ n ě m)u δεν είναι cf Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
216 Μοντέλα Υπολογισμού Περιεχόμενα 1 Πεπερασμένα Αυτόματα και Κανονικά Σύνολα Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Ιδιότητες κανονικών συνόλων Αλγεβρική περιγραφή κανονικών συνόλων Ελαχιστοποίηση DFA 2 Τυπικές Γλώσσες Τυπικές Γραμματικές Απλοποίηση cf γραμματικών Αυτόματα στοίβας (pushdown automata) Ιδιότητες cf γλωσσών 3 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή LOOP: Μια απλή γλώσσα προγραμματισμού Προγράμματα WHILE και μερικές αναδρομικές συναρτήσεις Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
217 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Το πρόγραμμα του Leibni(t)z O Leibniz πρότεινε το εξής πρόγραμμα: 1 Να δημιουργηθεί μια τυπική γλώσσα (formal language), με την οποία να μπορούμε να περιγράψουμε όλες τις μαθηματικές έννοιες και προτάσεις 2 Να δημιουργηθεί μια μαθηματική θεωρία (δηλαδή ένα σύνολο από αξιώματα και συμπερασματικούς κανόνες συνεπαγωγής), με την οποία να μπορούμε να αποδεικνύουμε όλες τις ορθές μαθηματικες προτάσεις 3 Να αποδειχθεί ότι αυτή η θεωρία είναι συνεπής (consistent), (δηλαδή ότι η πρόταση A και όχι Α (A ^ A) δεν είναι δυνατόν να αποδειχθεί σ αυτή τη θεωρία) Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
218 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Το πρόγραμμα του Leibni(t)z Gottfried Wilhelm Leibniz Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
219 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Υλοποίηση Γλώσσα George Boole Gottlob Frege Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
220 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Υλοποίηση Ενιαία θεωρία Georg Cantor Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
221 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Μη συνέπεια της αφελούς συνολοθεωρίας Bertrand Russel Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
222 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Πρόγραμμα Hilbert, Συνέπεια David Hilbert Kurt Gödel Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
223 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Θέση (thesis) Church-Turing Θέση (thesis) Church-Turing Όλα τα γνωστά και άγνωστα μοντέλα της έννοιας υπολογίσιμος είναι μηχανιστικά ισοδύναμα (effectively equivalent) Alonzo Church Alan Turing Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
224 Μοντέλα Υπολογισμού Ιστορία - Εισαγωγή Άλλα υπολογιστικά μοντέλα Stephen Kleene Emil Post Andrei Andreevich Markov, jr Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA) Αυτόματα και Υπολ Μοντ Φεβρουάριος / 190
Παραλλαγές και επεκτάσεις αυτομάτων I
Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Παραλλαγές και επεκτάσεις αυτομάτων I Ορισμός Ένα two-way deterministic FA (2DFA) είναι μία πεντάδα M = (Q, Σ, δ, q 0, F), όπου τα Q, Σ, q 0 και F είναι όπως
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων
Διαβάστε περισσότεραΑυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6
Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων
Διαβάστε περισσότεραΠεριεχόμενα. 1 Υπολογισιμότητα. Ιστορία - Εισαγωγή. Μαθηματικό Υπόβαθρο. LOOP: Μια απλή γλώσσα προγραμματισμού
Αυτόματα και Τυπικές Γλώσσες Περιεχόμενα 1 Υπολογισιμότητα Ιστορία - Εισαγωγή Μαθηματικό Υπόβαθρο LOOP: Μια απλή γλώσσα προγραμματισμού LOOP-υπολογίσιμες και πρωταρχικές αναδρομικές συναρτήσεις Σταθερά
Διαβάστε περισσότεραΑυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation
Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab
Διαβάστε περισσότεραΘεμελιώδη Θέματα Επιστήμης Υπολογιστών
Θεμελιώδη Θέματα Επιστήμης Υπολογιστών ΣΗΜΜΥ ΣΕΜΦΕ ΕΜΠ 1η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής 1 Μηχανές πεπερασμένων καταστάσεων (FSM) Τρόπος
Διαβάστε περισσότεραΑυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation
Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - ΕΜΠ Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA)
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 6η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/introcs
Διαβάστε περισσότεραΑυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσ.h.m.μ.y. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές Στάθης Ζάχος Συνεργασία: Κωστής Σαγώνας Επιμέλεια:
Διαβάστε περισσότεραΑυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation
Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - ΕΜΠ Απρίλιος 2019 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA)
Διαβάστε περισσότεραΘεμελιώδη Θέματα Επιστήμης Υπολογιστών
Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνο ΣΕΜΦΕ 4η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/focs
Διαβάστε περισσότεραΘεμελιώδη Θέματα Επιστήμης Υπολογιστών
Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνοσεμφε 4η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Διδάσκοντες Θεωρία: Στάθης Ζάχος, Άρης Παγουρτζής Εργαστήριο: Δώρα Σούλιου Βοηθός διδασκαλίας:
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 6η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/introcs
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 3η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/introcs
Διαβάστε περισσότεραΜηχανές Turing (T.M) I
Μηχανές Turing (T.M) I Οι βασικές λειτουργίες μιας TM είναι: Διάβασε το περιεχόμενο του τρέχοντος κυττάρου Γράψε 1 ή 0 στο τρέχον κύτταρο Κάνε τρέχον το αμέσως αριστερότερο ή το αμέσως δεξιότερο κύτταρο
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΑλγόριθμοι για αυτόματα
Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2)
Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Κανονικές Εκφράσεις (1.3) Τυπικός Ορισμός Ισοδυναμία με κανονικές γλώσσες Μη Κανονικές
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 3η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής http://www.corelab.ece.ntua.gr/courses/introcs
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Επανάληψη Μαθήματος Το Μάθημα σε μια Διαφάνεια Υπολογιστικά μοντέλα Κανονικές Γλώσσες Ντετερμινιστικά Αυτόματα Μη Ντετερμινιστικά Αυτόματα Κανονικές Εκφράσεις
Διαβάστε περισσότεραΤα Θεμέλια της Πληροφορικής
Τα Θεμέλια της Πληροφορικής Στάθης Ζάχος Άρης Παγουρτζής . Περιεχόμενα Περιεχόμενα i 1 Εισαγωγή 1 1.1 Κλάδοι Επιστήμης των Υπολογιστών............... 2 1.2 Επανάληψη, επαγωγή, αναδρομή..................
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή
Διαβάστε περισσότεραΚανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Κανονικές Γλώσσες ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Κανονικές Γλώσσες Κανονική γλώσσα αν
Διαβάστε περισσότεραΚανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα
Κανονικές Γλώσσες Κανονικές Γλώσσες Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Κανονική γλώσσα αν παράγεται από κανονική γραμματική. Παραγωγές P (V Σ) Σ * ((V Σ) ε) Παραγωγές μορφής:
Διαβάστε περισσότεραΠεπερασμένα Αυτόματα και Κανονικές Παραστάσεις
Κεφάλαιο 7 Πεπερασμένα Αυτόματα και Κανονικές Παραστάσεις 7.1 Εισαγωγή Στο κεφάλαιο αυτό θα ασχοληθούμε με τυπικές γλώσσες που μπορούν να περιγράψουν υπολογιστικά προβλήματα και επίσης χρησιμεύουν στον
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)
Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες () Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Πεπερασμένα Αυτόματα (Κεφάλαιο., Sipser) Ορισμός πεπερασμένων αυτομάτων και ορισμός του
Διαβάστε περισσότεραΓενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.
Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {w 1w 2 w 1 {0,1} * και w 2 = 0 k 1 m όπου k και m
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητα Ενδιάμεση Εξέταση Ημερομηνία : Παρασκευή, 17 Μαρτίου 2017 Διάρκεια : 9.00 10.30 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο:
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Σχεδιασμός Ασυμφραστικών Γραμματικών
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 1: Εισαγωγή Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει την ακόλουθη γλώσσα. { a n b n+2 c n 2 n 2 } Λύση: H ζητούμενη μηχανή Turing μπορεί να
Διαβάστε περισσότεραΙσοδυναμία Αιτ. Και μη Αιτ. Π.Α.
Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Δύο Π.Α. Μ 1 και Μ 2 είναι ισοδύναμα ανν L(M 1 ) = L(M 2 ). Έστω Μ = (Q, Σ, q 0, Δ, F) μη Αιτ. Π.Α. Για κάθε κατάσταση q Q, ορίζουμε ως Ε(q) Q το σύνολο των καταστάσεων
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι. Εαρινό Εξάμηνο Lec 05 & & 26 /02/2019 Διδάσκων: Γεώργιος Χρ.
Σχεδίαση Γλωσσών Προγραμματισμού Λεξική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 05 & 06 25 & 26 /02/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες
Διαβάστε περισσότεραΣτοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές
Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 /
Διαβάστε περισσότεραΠοιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);
Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 2 ο Αλφάβητα και Γλώσσες Αλφάβητο: Ένα μη κενό και πεπερασμένο σύνολο συμβόλων Γλώσσα: Ένα οποιοδήποτε υποσύνολο των συμβολοσειρών ενός αλφαβήτου (οι προτάσεις της γλώσσας, πχ.
Διαβάστε περισσότεραΣύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2): Αυτόµατα Στοίβας. Παραδείγµατα Σχεδιασµού CFG. Παράδειγµα 1.
Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα 2): Αυτόµατα Στοίβας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Μη Κανονικές Γλώσσες Το Λήµµα της Αντλησης για τις
Διαβάστε περισσότεραΤυπικές Γραμματικές και Άλλα Αυτόματα
Κεφάλαιο 8 Τυπικές Γραμματικές και Άλλα Αυτόματα 8.1 Εισαγωγή Στο κεφάλαιο αυτό θα ασχοληθούμε με μη κανονικές γλώσσες και γραμματικές, καθώς και τα αντίστοιχα αυτόματα που τις αναγνωρίζουν. Πιο συγκεκριμένα
Διαβάστε περισσότεραΓλώσσες Χωρίς Συμφραζόμενα
Γλώσσα χωρίς Συμφραζόμενα Γλώσσες Χωρίς Συμφραζόμενα Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Διαβάστε περισσότεραΦροντιστήριο 10 Λύσεις
Άσκηση 1 Φροντιστήριο 10 Λύσεις Να κατασκευάσετε μια μηχανή Turing με δύο ταινίες η οποία να αποδέχεται στην πρώτη της ταινία μια οποιαδήποτε λέξη w {0,1} * και να γράφει τη λέξη w R στη δεύτερη της ταινία.
Διαβάστε περισσότεραRecursive and Recursively Enumerable sets I
Recursive and Recursively Enumerable sets I Ορισμός Το σύνολο A είναι αναδρομικό ανν η χαρακτηριστική του συνάρτηση X A είναι αναδρομική. Το σύνολο A είναι αναδρομικά αριθμήσιμο (recursively enumerable)
Διαβάστε περισσότεραΦροντιστήριο 9 Λύσεις
Άσκηση 1 Φροντιστήριο 9 Λύσεις Να κατασκευάσετε μια μηχανή Turing με δύο ταινίες η οποία να αποδέχεται στην πρώτη της ταινία μια οποιαδήποτε λέξη w {a,b} * και να γράφει τη λέξη w R στη δεύτερη της ταινία.
Διαβάστε περισσότεραΚεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216
Κεφάλαιο 2: Τυπικές γλώσσες Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 13 / 216 Τυπικές γλώσσες (i) Βασικές έννοιες Αλφάβητο Σύμβολο Συμβολοσειρά Μήκος συμβολοσειράς Σύνολο συμβολοσειρών
Διαβάστε περισσότεραΠολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις.
Θέση Church-Turing I Πολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις Θέση Church-Turing: Όλες οι υπολογίσιμες συναρτήσεις
Διαβάστε περισσότεραΣειρά Προβλημάτων 1 Λύσεις
Σειρά Προβλημάτων Λύσεις Άσκηση Ορίζουμε τη συναρμογή δύο γλωσσών Α και Β ως ΑΒ = { uv u A, v B }. (α) Έστω Α = {α,β,γ} και Β =. Να περιγράψετε τη γλώσσα ΑΒ. (β) Θεωρήστε τις γλώσσες L, M και N. Να δείξετε
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { a 2n b n c 3n n 2 } : H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w#z w, z {a,b}* και η z είναι υπολέξη της w}. Συγκεκριμένα,
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 8: Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΣχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι. Εαρινό Εξάμηνο Lec /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής
Σχεδίαση Γλωσσών Προγραμματισμού Συντακτική Ανάλυση Ι Εαρινό Εξάμηνο 2018-2019 Lec 09 18 /03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Φάσεις μεταγλώττισης Αρχικό Πρόγραμμα Λεκτική Ανάλυση λεκτικές μονάδες Πίνακας
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { ww rev w {a, b} * και w αποτελεί καρκινική λέξη } (α) H ζητούμενη μηχανή
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {1010 2 10 3 10 n 1 10 n 1 n 1}. (β) Να διατυπώσετε
Διαβάστε περισσότεραΣειρά Προβλημάτων 4 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { n 3 } (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q,
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 10: Αυτόματα Στοίβας II
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 10: Αυτόματα Στοίβας II Τι θα κάνουμε σήμερα Ισοδυναμία αυτομάτων στοίβας με ασυμφραστικές γραμματικές (2.2.3) 1 Ισοδυναμία PDA με CFG Θεώρημα: Μια
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων)
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων) Τι θα κάνουμε σήμερα Εισαγωγικά Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Της Ασυμφραστικής
Διαβάστε περισσότεραΘεώρημα Υπάρχουν υπολογίσιμες συναρτήσεις που δεν είναι πρωταρχικές αναδρομικές.
Υπολογισιμότητα Θεώρημα Υπάρχουν υπολογίσιμες συναρτήσεις που δεν είναι πρωταρχικές αναδρομικές. Απόδειξη: Διαγωνιοποίηση. Μηχανιστική απαρίθμηση πρωταρχικών αναδρομικών συναρτήσεων: φ 0, φ 1, φ 2, Ορίζουμε:
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως
Διαβάστε περισσότεραΗ δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ
Πεπερασμένα Αυτόματα (ΠΑ) Τα πεπερασμένα αυτόματα είναι οι απλούστερες «υπολογιστικές μηχανές». Δεν έχουν μνήμη, μόνο μία εσωτερική μονάδα με πεπερασμένο αριθμό καταστάσεων. Διαβάζουν τη συμβολοσειρά εισόδου
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Θεωρία Υπολογισμού Ενότητα 8: Πεπερασμένα Αυτόματα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα
Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 10. Μηχανές Turing 20,23 Μαρτίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Μηχανές Turing: Ένα Γενικό Μοντέλο Υπολογισμού Ποια μοντέλα υπολογισμού μπορούν να δεχθούν γλώσσες
Διαβάστε περισσότεραHEAD INPUT. q0 q1 CONTROL UNIT
Πεπερασμένα Αυτόματα (ΠΑ) Τα πεπερασμένα αυτόματα είναι οι απλούστερες «υπολογιστικές μηχανές». Δεν έχουν μνήμη, μόνο μία εσωτερική μονάδα με πεπερασμένο αριθμό καταστάσεων. Διαβάζουν τη συμβολοσειρά εισόδου
Διαβάστε περισσότεραΣειρά Προβλημάτων 5 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Πιο κάτω υπάρχει ένα σχεδιάγραμμα που τοποθετεί τις κλάσεις των κανονικών, ασυμφραστικών, διαγνώσιμων και αναγνωρίσιμων γλωσσών μέσα στο σύνολο όλων των γλωσσών. Ακολουθούν
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 9: Αυτόματα Στοίβας (Pushdown Automata - PDA)
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 9: Αυτόματα Στοίβας (Pushdown Automata - PDA) Τι θα κάνουμε σήμερα Εισαγωγή στα Αυτόματα Στοίβας Τυπικός Ορισμός Αυτομάτου Στοίβας (2.2.1) Παραδείγματα
Διαβάστε περισσότεραΣειρά Προβλημάτων 3 Λύσεις
Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) {0 n 1 n n > 0} {0 n 1 2n n > 0} (β) {w {a,b} * η w ξεκινά και τελειώνει με το ίδιο σύμβολο
Διαβάστε περισσότεραΣύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.
Σύνοψη Προηγούµενου Κανονικές Γλώσσες () ιαδικαστικά του Μαθήµατος. Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Εισαγωγή: Υπολογισιµότητα και Πολυπλοκότητα. Βασικές
Διαβάστε περισσότεραΥπολογίσιμες Συναρτήσεις
Υπολογίσιμες Συναρτήσεις Σ Π Υ Ρ Ι Δ Ω Ν Τ Ζ Ι Μ Α Σ Δ Τ Ο Μ Ε Α Σ Τ Μ Η Μ Α Μ Α Θ Η Μ Α Τ Ι Κ Ω Ν Σ Χ Ο Λ Η Θ Ε Τ Ι Κ Ω Ν Ε Π Ι Σ Τ Η Μ Ω Ν Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Ι Ω Α Ν Ν Ι Ν Ω Ν Υπολογίσιμες Συναρτήσεις
Διαβάστε περισσότεραΣειρά Προβλημάτων 3 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { xyxy rev x {a, b}, y {a, b} * } (α) Μια γραμματική για τη γλώσσα έχει ως εξής: S as a
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα
Θεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαγνώσιμες Γλώσσες (4.1) Επιλύσιμα Προβλήματα σχετικά με Κανονικές Γλώσσες Επιλύσιμα Προβλήματα
Διαβάστε περισσότεραnum(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))
Υπολογισμοί με Μ.Τ. Εστω M = (K, Σ, δ, s, {y, n}) μια Μ.Τ. Κάθε συνολική κατάσταση τερματισμού της οποίας η κατάσταση τερματισμού είναι το y, θα ονομάζεται συνολική κατάσταση αποδοχής, ενώ αν η κατάσταση
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 5: Κανονικές Εκφράσεις
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 5: Κανονικές Εκφράσεις Τι θα κάνουμε σήμερα Κλειστότητα Κανονικών Πράξεων (1.2.3) Εισαγωγή στις Κανονικές Εκφράσεις Τυπικός ορισμός της κανονικής
Διαβάστε περισσότεραΣειρά Προβλημάτων 5 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το
Διαβάστε περισσότεραΓλώσσες Χωρίς Συμφραζόμενα
Γλώσσες Χωρίς Συμφραζόμενα Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης, Δ. Σούλιου Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γλώσσα χωρίς
Διαβάστε περισσότεραΣύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata
Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα (2) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Αυτόµατα Στοίβας Pushdown utomata Ισοδυναµία µε τις Γλώσσες χωρίς Συµφραζόµενα:
Διαβάστε περισσότεραΣειρά Προβλημάτων 3 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { a i b j c k d m i, j, k, m 0 και i + j = k + m } (β) { uxvx rev u,v,x {0,1,2} + και όλα
Διαβάστε περισσότεραf(t) = (1 t)a + tb. f(n) =
Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία
Διαβάστε περισσότεραΣύνοψη Προηγούµενου. Κανονικές Γλώσσες (3) Παραδείγµατα µε Κανονικές Εκφράσεις. Σε αυτό το µάθηµα.
Σύνοψη Προηγούµενου Κανονικές Γλώσσες (3) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς (Ντετερµινιστική) Κλειστότητα Κανονικών Γλωσσών ως προς Ενωση. Κατασκευή: DFA
Διαβάστε περισσότεραΣχήματα McCarthy I. Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα:
Σχήματα McCarthy I Το σχήμα McCarthy είναι ένα γενικότερο προγραμματιστικό σχήμα: f(x, y) = if g(...) = 0 then h(...) else k(...) όπου g(...), h(...) και k(...) είναι όροι-συναρτήσεις που κατασκευάζονται
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητα Ενδιάμεση Εξέταση Ημερομηνία : Κυριακή, 15 Μαρτίου 2015 Διάρκεια : 15.00 17.00 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο:
Διαβάστε περισσότεραΜη επιλυσιμότητα I. Απόδειξη. Ορίζουμε # # =
Μη επιλυσιμότητα I Θεώρημα Το TOT (πρόβλημα ολικής συνάρτησης) είναι μη επιλύσιμο, δηλαδή η f δεν είναι αναδρομική όπου: 1, αν φ x είναι ολική f(x) = 0, αλλιώς Απόδειξη. Ορίζουμε h(x) = φ x (x) + 1, αν
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 4: Μη Ντετερμινιστικά (Αντιαιτιοκρατικά) Πεπερασμένα Αυτόματα (ΝFA)
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 4: Μη Ντετερμινιστικά (Αντιαιτιοκρατικά) Πεπερασμένα Αυτόματα (ΝFA) Τι θα κάνουμε σήμερα Εισαγωγή στα Μη Ντετερμινιστικά Πεπερασμένα Αυτόματα Τυπικός
Διαβάστε περισσότεραΑσκήσεις από παλιές εξετάσεις
Άσκηση 2 - Τελική εξέταση 2012 Ασκήσεις από παλιές εξετάσεις (α) [10 μονάδες] Να μετατρέψετε το πιο κάτω NFA σε ένα ισοδύναμο DFA χρησιμοποιώντας την κατασκευή που μελετήσαμε στο μάθημα. a a q 0 a, ε q
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 5: Μη κανονικές γλώσσες Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΘεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος
Περιγραφή μαθήματος Θεωρία Υπολογισμού Άρτιοι ΑΜ Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας (Θεωρία Αλγορίθμων). Διδάσκων: Σταύρος Κολλιόπουλος
Διαβάστε περισσότεραΘεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr
Θεωρία Υπολογισμού Άρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Περιγραφή μαθήματος Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας
Διαβάστε περισσότεραΣειρά Προβλημάτων 5 Λύσεις
Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπ
Θεωρία Υπολογισμού Ενότητα 11: Κλειστότητα, ΠΑ & καν. εκφράσεις Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Cretive Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΘεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μη Ασυμφραστικές Γλώσσες (2.3) Λήμμα Άντλησης για Ασυμφραστικές Γλώσσες Παραδείγματα
Διαβάστε περισσότεραΠεπερασμένα Αυτόματα. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Πεπερασμένα Αυτόματα ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πεπερασμένα Αυτόματα είναι απλούστερες
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 6: Μη Κανονικές Γλώσσες
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 6: Μη Κανονικές Γλώσσες Τι θα κάνουμε σήμερα Εισαγωγικά Το Λήμμα της Άντλησης για κανονικές γλώσσες Παραδείγματα 1 Πότε μια γλώσσα δεν είναι κανονική;
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητα Ενδιάμεση Εξέταση Ημερομηνία : Σάββατο, 15 Μαρτίου 2014 Διάρκεια : 9.30 11.30 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο:
Διαβάστε περισσότεραΠολλοί τρόποι περιγραφής αλγορίθμων. Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις
Θέση Church-Turing Κανονική μορφή Kleene Θέση Church-Turing I Πολλοί τρόποι περιγραφής αλγορίθμων Όλοι είναι μηχανιστικά ισοδύναμοι και ειδικά ισοδύναμοι με μερικές αναδρομικές συναρτήσεις Θέση Church-Turing:
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Γιώργος Δημητρίου Ενότητα 1 η : Parsers Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται με βάση διάφορα κριτήρια: Κατεύθυνση ανάλυσης μη τερματικών συμβόλων Σειρά επιλογής
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA)
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA) Τι θα κάνουμε σήμερα Εισαγωγή στα Ντετερμινιστικά Πεπερασμένα Αυτόματα 14-Sep-11 Τυπικός Ορισμός Ντετερμινιστικών
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 12: Μηχανές Turing
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 12: Μηχανές Turing Τι θα κάνουμε σήμερα Εισαγωγή στις Μηχανές Turing (TM) Τυπικός Ορισμός Μηχανής Turing (3.1.1) 1 Τι είδαμε μέχρι στιγμής Πεπερασμένα
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται
Διαβάστε περισσότεραΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων
ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων Τι θα κάνουμε σήμερα Εισαγωγή Πολυταινιακές Μηχανές Turing (3.2.1) Μη Ντετερμινιστικές Μηχανές
Διαβάστε περισσότεραΗ NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.
Μη ντετερµινιστικές Μηχανές Turing - NTMs (1/6) Μηχανές Turing: Μη ντετερµινισµός, Επιλύσιµα Προβλήµατα Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 10 εκεµβρίου 2016
Διαβάστε περισσότερα