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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

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

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

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

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

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

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

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

9 Αριθμητική modulo: ασκήσεις Άσκηση 1: φτιάξτε μηχανή ελέγχου διαιρετότητας με το 5 Άσκηση 2: φτιάξτε μηχανή ελέγχου διαιρετότητας με το 7 9

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

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

12 Παράδειγμα: αναγνώριση περιττών 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

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

14 Άλλες τυπικές γλώσσες 14

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

16 Τυπικός ορισμός 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

17 Γλώσσα με DFA και γλώσσα χωρίς DFA Αποδεικνύεται ότι δεν υπάρχει DFA που να αναγνωρίζει την L 3! (χρειάζεται μνήμη με μέγεθος που εξαρτάται από την είσοδο) 17

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

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

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

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

22 Παράδειγμα NFA Στη συνάρτηση μετάβασης, κενό σύνολο σημαίνει ότι η τρέχουσα εκτέλεση απορρίπτει (προσοχή: μπορεί κάποια άλλη να αποδέχεται). 22

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

24 Τυπικός ορισμός 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

25 Αποδοχή 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

26 Ισοδυναμία NFA και DFA Θεώρημα Rabin-Scott: για κάθε NFA υπάρχει ένα DFA που αποδέχεται την ίδια γλώσσα. Επομένως τα DFA και τα NFA αναγνωρίζουν ακριβώς την ίδια κλάση γλωσσών: τις κανονικές γλώσσες (regular languages). Οι κανονικές γλώσσες αντιστοιχούν σε κανονικές παραστάσεις (regular expressions): π.χ. (α+b)*bbab(α+b)* 26

27 NFA DFA (i) NFA για τη γλώσσα L 4 ("2 συνεχόμενα a") Κατασκευάζουμε το δυναμοσύνολο των καταστάσεων. Αρχική κατάσταση: {q 0 }. Τελικές: όσες περιέχουν τελική. Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων. 27

28 NFA DFA (ii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων. 28

29 NFA DFA (iii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων. 29

30 NFA DFA (iv) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων. 30

31 NFA DFA (v) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Υπόδειξη: εξετάζουμε μόνο προσβάσιμα από {q 0 } σύνολα καταστάσεων. 31

32 NFA DFA (vi) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 32

33 NFA DFA (vii) NFA για τη γλώσσα L 4 DFA για τη γλώσσα L 4 Οι μη προσβάσιμες καταστάσεις δεν παίζουν ρόλο! 33

34 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

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

36 Iσοδυναμία NFA ε με DFA: παράδειγμα 36

37 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

38 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

39 NFA ε DFA: εναλλακτική μέθοδος (σε NFA πρώτα, ταχύτερα) Έστω το NFA ε Μ = (Q,Σ,q0,F,δ). Κατασκευάζουμε πρώτα ισοδύναμο NFA M'= (Q,Σ,q 0,F',δ') ως εξής: F' : είναι το F μαζί με κάθε κατάσταση q για την οποία το ε-κλείσιμο(q) περιέχει κάποια τελική. δ'(q,α) = δ(ε-κλείσιμο(q),α), (δ επεκτ/νη) δηλαδή δ'(q,α) είναι το σύνολο των καταστάσεων όπου μπορεί να βρεθεί το Μ ξεκινώντας από την κατάσταση q, χρησιμοποιώντας οσεσδήποτε ε-κινήσεις πρώτα, και μετά μία α-κίνηση (δηλ. χωρίς ε-κινήσεις μετά το α). Από το M' κατασκευάζουμε ισοδύναμο DFA. 39

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

41 Ελαχιστοποίηση DFA (i) Δύο καταστάσεις DFA λέγονται μη ισοδύναμες, δηλαδή διακρίσιμες, αν υπάρχει συμβολοσειρά που να οδηγεί την μία από αυτές σε τελική κατάσταση, ενώ την άλλη όχι. q i 0 0, 1 q 0 1 0,1 q 1 q m 41

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

43 Ελαχιστοποίηση 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

44 Ελαχιστοποίηση DFA: 2 ο παράδειγμα Αρχικό DFA Ελάχιστο DFA 44

45 Ελαχιστοποίηση DFA: 3 ο παράδειγμα Αρχικό DFA Ελάχιστο DFA 45

46 Μέθοδος ελαχιστοποίησης DFA Δύο καταστάσεις λέγονται k-διακρίσιμες αν με κάποια συμβολοσειρά μήκους ακριβώς k οδηγούν σε διαφορετικό αποτέλεσμα. Έτσι, δύο καταστάσεις είναι: 0-διακρίσιμες ανν η μία είναι τελική ενώ η άλλη όχι. (i+1)-διακρίσιμες ανν με ένα σύμβολο (οποιοδήποτε) οδηγούν σε i-διακρίσιμες καταστάσεις. Δύο καταστάσεις λέγονται ισοδύναμες αν δεν είναι k- διακρίσιμες για οποιοδήποτε k. 46

47 Μέθοδος ελαχιστοποίησης DFA Ιδέα μεθόδου: για κάθε i = 0, 1, 2,... εντοπίζουμε τα i-διακρίσιμα ζεύγη καταστάσεων έως ότου να μην προκύπτουν άλλα. Τα υπόλοιπα ζεύγη είναι ισοδύναμα. Γιατί δουλεύει: δεν υπάρχουν (i+1)-διακρίσιμες καταστάσεις αν δεν υπάρχουν i-διακρίσιμες καταστάσεις 47

48 Η μέθοδος συστηματικά Κατασκευάζουμε τριγωνικό πίνακα για να συγκρίνουμε κάθε ζεύγος καταστάσεων. Γράφουμε X k στην αντίστοιχη θέση του πίνακα την πρώτη φορά που διαπιστώνουμε ότι δύο καταστάσεις είναι k-διακρίσιμες, ως εξής: Αρχικά γράφουμε X 0 σε όλα τα ζεύγη κατ/σεων που είναι 0-διακρίσιμες γιατί η μία είναι τελική και η άλλη όχι. Σε κάθε "γύρο" i+1, εξετάζουμε όλα τα μη σημειωμένα ζεύγη και γράφουμε Χ i+1 σε ένα ζεύγος αν από τις δύο καταστάσεις του με ένα σύμβολο το DFA πηγαίνει σε i - διακρίσιμες καταστάσεις (ήδη σημ/νες με Χ i ). Επαναλαμβάνουμε μέχρι που σε κάποιο γύρο k να μην υπάρχει ζεύγος που να σημειωθεί με Χ k. Τα μη σημειωμένα ζεύγη αντιστοιχούν σε ισοδύναμες καταστάσεις (που επομένως συγχωνεύονται). 48

49 Παράδειγμα εφαρμογής της μεθόδου Γύρος 0: 0-διακρίσιμες καταστάσεις 49

50 Παράδειγμα εφαρμογής της μεθόδου Γύρος 1: 1-διακρίσιμες καταστάσεις 50

51 Παράδειγμα εφαρμογής της μεθόδου Γύρος 2: καμμία 2-διακρίσιμη κατάσταση 51

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

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

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

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

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

57 Τυπικές γραμματικές Συστηματικός τρόπος μετασχηματισμού συμβολοσειρών μέσω κανόνων παραγωγής. Αλφάβητο: τερματικά και μη τερματικά σύμβολα και ένα αρχικό σύμβολο (μη τερματικό). Πεπερασμένο σύνολο κανόνων της μορφής α β: ορίζουν δυνατότητα αντικατάστασης της συμβολοσειράς α με την συμβολοσειρά β. Κάθε τυπική γραμματική παράγει μια τυπική γλώσσα: το σύνολο των συμβολοσειρών (με τερματικά σύμβολα μόνο) που παράγονται από το αρχικό σύμβολο. Λέγονται και συστήματα μεταγραφής (rewriting systems) αλλά και γραμματικές δομής φράσεων (phrase structure grammars). 57

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

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

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

61 Τυπικές γραμματικές: ορισμοί (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

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

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

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

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

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

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

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

69 Ορισμός κανονικών παραστάσεων Κανονικές παραστάσεις: παριστάνουν γλώσσες που προκύπτουν από απλά σύμβολα ενός αλφαβήτου με τις πράξεις παράθεση, ένωση, και άστρο του 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

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

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

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

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

74 Παράδειγμα κατασκευής κανονικής παράστασης από FA Αρχικό DFA Μετά από διαγραφή q 2 74

75 Παράδειγμα κατασκευής κανονικής παράστασης από FA Διαγραφή q 3 75

76 Παράδειγμα κατασκευής κανονικής παράστασης από FA Διαγραφή q 0 76

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

78 Ποιες γλώσσες είναι κανονικές; Όλες οι πεπερασμένες. Όσες σχηματίζονται από κανονικές με τις πράξεις: παράθεση, ένωση, άστρο Kleene, αλλά και συμπλήρωμα, τομή, αναστροφή (άσκηση), κ.ά. Γινόμενο αυτομάτων (product of automata): εναλλακτικός τρόπος κατασκευής DFA για τομή (αλλά και ένωση) κανονικών γλωσσών. 78

79 Γινόμενο αυτομάτων 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

80 Γινόμενο αυτομάτων NFA Ορίζεται με παρόμοιο τρόπο. Χρειάζεται προσοχή στις ε-κινήσεις και στο συνδυασμό junk states. 80

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

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

83 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

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

85 Παράδειγμα χρήσης 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 85

86 Παράδειγμα χρήσης Pumping Lemma (ii) παρατηρούμε ότι αναγκαστικά v = 0 k για κάποιο k: w = u v w και επιλέγουμε i = 2, διαπιστώνοντας ότι uv i w = uv 2 w δεν ανήκει στην L. ΑΤΟΠΟ Επομένως η L δεν είναι κανονική. 86

87 Δεύτερο παράδειγμα χρήσης 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 87

88 Δεύτερο παράδειγμα χρήσης 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

89 Προσοχή στη χρήση του PL! Το Pumping Lemma είναι αναγκαία αλλά όχι και ικανή συνθήκη για να είναι μια γλώσσα κανονική. Υπάρχουν μη κανονικές γλώσσες που ικανοποιούν τις συνθήκες του! Επομένως χρησιμεύει μόνο για απόδειξη μη κανονικότητας. 89

90 Γραμματικές για μη κανονικές γλώσσες Χωρίς συμφραζόμενα (context free, CF): τύπου 2, αντιστοιχία με αυτόματα στοίβας (pushdown automata, PDA) Με συμφραζόμενα (context sensitive, CS): τύπου 1, αντιστοιχία με γραμμικά περιορισμένα αυτόματα (linear bounded automata, LBA) Γενικές (general): τύπου 0, αντιστοιχία με μηχανές Turing (Turing machines, TM) 90

91 Γραμματικές χωρίς συμφραζόμενα (Context Free) (i) Εφαρμογές σε: συντακτικό γλωσσών προγραμματισμού (Pascal, C, C++, Java) συντακτικό γλωσσών περιγραφής σελίδων web (HTML, XML), editors,... 91

92 Γραμματικές χωρίς συμφραζόμενα (Context Free) (ii) Μορφή κανόνων: Α α, Α μη τερματικό Παράδειγμα: Δυνατή ακολουθία παραγωγής: Γλώσσα που παράγεται: 92

93 Γραμματικές χωρίς συμφραζόμενα (Context Free) (iii) 2 ο παράδειγμα: G 2 :, Δυνατές ακολουθίες παραγωγής: S 3, S S+S 3+S 3+S*S 3+4*7 93

94 Γραμματικές χωρίς συμφραζόμενα (Context Free) (iv) 3 ο παράδειγμα: G 3 :, και P περιέχει: Δυνατή ακολουθία παραγωγής: Γλώσσα που παράγεται (όχι προφανές): 94

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

96 Συντακτικά Δένδρα (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

97 Συντακτικά Δένδρα (parse trees) (iii) Θεώρημα. Έστω G={V,T,P,S} μια γραμματική χωρίς συμφραζόμενα. Τότε S * α αν και μόνο αν υπάρχει συντακτικό δένδρο της G με φύλλωμα α. Απόδειξη: <= : Με επαγωγή ως προς τον αριθμό των εσωτερικών κόμβων. => : Με επαγωγή ως προς των αριθμό των βημάτων της ακολουθίας παραγωγών (άσκηση). 97

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

99 Αλγόριθμος αναγνώρισης για CF γραμματικές: CYK Με εξαντλητικό τρόπο μπορούμε να αποφασίσουμε αν μια συμβολοσειρά x παράγεται από μια γραμματική CF (χωρίς συμφραζόμενα) σε εκθετικό όμως χρόνο. Οι ιδιότητες της κανονικής μορφής Chomsky επιτρέπουν ταχύτερη αναγνώριση μιας συμβολοσειράς. Αλγόριθμος CYK (Cocke, Younger, Kasami): αποφασίζει αν μια συμβολοσειρά x παράγεται από μια γραμματική σε χρόνο O( x 3 ), αρκεί η γραμματική να δίνεται σε Chomsky Normal Form. 99

100 Αυτόματα Στοίβας (PDA) (i) Έχουν ταινία εισόδου μιας κατεύθυνσης (όπως και τα FA) αλλά επιπλέον μνήμη υπό μορφή στοίβας. Πρόσβαση μόνο στην κορυφή της στοίβας με τις λειτουργίες: push: τοποθετεί στοιχείο στην κορυφή της στοίβας pop: διαβάζει και αφαιρεί στοιχείο από την κορυφή της στοίβας 100

101 Αυτόματα Στοίβας (PDA) (ii) Παράδειγμα: PDA για αναγνώριση της γλώσσας 101

102 Αυτόματα Στοίβας (PDA) (iii) 102

103 Αυτόματα Στοίβας (PDA) (iv) 103

104 Αυτόματα Στοίβας (PDA) (v) Για να γίνει αποδεκτή η γλώσσα χωρίς δηλαδή ειδικό μεσαίο σύμβολο c χρειαζόμαστε απαραίτητα μη ντετερμινιστικό PDA. Τα μη ντετερμινιστικά PDA είναι γνησίως πιο ισχυρά από τα ντετερμινιστικά. Με τον όρο PDA αναφερόμαστε συνήθως στα μηντετερμινιστικά PDA. 104

105 Ισοδυναμία CF γραμματικών και PDA Θεώρημα. Τα παρακάτω είναι ισοδύναμα για μια γλώσσα L: 105

106 Ποιες γλώσσες είναι 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

107 Είναι όλες οι γλώσσες Context Free; Η απάντηση είναι «όχι». Για να το αποδείξουμε χρησιμοποιούμε ένα άλλο λήμμα άντλησης, το Pumping Lemma για γλώσσες χωρίς συμφραζόμενα. Βασίζεται στο συντακτικό δένδρο (περισσότερα σε άλλα μαθήματα: «Υπολογισιμότητα»). 107

108 Γενικές Γραμματικές (i) Παράδειγμα: {a 2n n є Ν} 108

109 Γενικές Γραμματικές (ii) Θεώρημα. Τα ακόλουθα είναι ισοδύναμα: 1. Η γλώσσα L γίνεται αποδεκτή από μια μηχανή Turing 2. L=L(G), όπου G είναι γενική γραμματική Μια τέτοια γλώσσα λέγεται και αναδρομικά αριθμήσιμη (recursively enumerable). 109

110 Μηχανές 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

111 Γραμματικές με Συμφραζόμενα (context sensitive) (i) α = ε Λέγονται «με συμφραζόμενα» γιατί μπορούν να τεθούν στην εξής κανονική μορφή: 111

112 Γραμματικές με Συμφραζόμενα (context sensitive) (ii) Μετατροπή σε κανονική μορφή: Α0 Η0 Η0 ΗΑ ΗΑ 0Α 112

113 Ισοδυναμία γραμματικών CS και LBA Γραμμικά φραγμένο αυτόματο (Linear Bounded Automaton, LBA): είναι μια μη ντετερμινιστική μηχανή Turing που η κεφαλή της είναι περιορισμένη να κινείται μόνο στο τμήμα που περιέχει την αρχική είσοδο. Θεώρημα. Τα ακόλουθα είναι ισοδύναμα (L χωρίς ε): 1. Η γλώσσα L γίνεται αποδεκτή από LBA. 2. Η γλώσσα L είναι context sensitive. 113

114 Iεραρχία κλάσεων γλωσσών Θεώρημα Ιεραρχίας. (γλώσσες χωρίς ε): regular context free context sensitive r.e. (r.e. = recursiverly enumerable) 114

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων

Διαβάστε περισσότερα

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

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6 Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Περιεχόμενα. 1 Υπολογισιμότητα. Ιστορία - Εισαγωγή. Μαθηματικό Υπόβαθρο. LOOP: Μια απλή γλώσσα προγραμματισμού Αυτόματα και Τυπικές Γλώσσες Περιεχόμενα 1 Υπολογισιμότητα Ιστορία - Εισαγωγή Μαθηματικό Υπόβαθρο LOOP: Μια απλή γλώσσα προγραμματισμού LOOP-υπολογίσιμες και πρωταρχικές αναδρομικές συναρτήσεις Σταθερά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσ.h.m.μ.y. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές Στάθης Ζάχος Συνεργασία: Κωστής Σαγώνας Επιμέλεια:

Διαβάστε περισσότερα

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνοσεμφε 4η ενότητα: Αυτόματα, τυπικές γλώσσες, γραμματικές Διδάσκοντες Θεωρία: Στάθης Ζάχος, Άρης Παγουρτζής Εργαστήριο: Δώρα Σούλιου Βοηθός διδασκαλίας:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab

Διαβάστε περισσότερα

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

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - ΕΜΠ Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA)

Διαβάστε περισσότερα

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

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - ΕΜΠ Φεβρουάριος 2017 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA)

Διαβάστε περισσότερα

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

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation Διδάσκων: Στάθης Ζάχος Επιμέλεια Διαφανειών: Μάκης Αρσένης CoReLab ΣΗΜΜΥ - ΕΜΠ Απρίλιος 2019 Διδάσκων: Στάθης Ζάχος ( CoReLab - NTUA)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Κανονικές Εκφράσεις (1.3) Τυπικός Ορισμός Ισοδυναμία με κανονικές γλώσσες Μη Κανονικές

Διαβάστε περισσότερα

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Επανάληψη Μαθήματος Το Μάθημα σε μια Διαφάνεια Υπολογιστικά μοντέλα Κανονικές Γλώσσες Ντετερμινιστικά Αυτόματα Μη Ντετερμινιστικά Αυτόματα Κανονικές Εκφράσεις

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα Κανονικές Γλώσσες Κανονικές Γλώσσες Διδάσκοντες: Φ. Αφράτη, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Κανονική γλώσσα αν παράγεται από κανονική γραμματική. Παραγωγές P (V Σ) Σ * ((V Σ) ε) Παραγωγές μορφής:

Διαβάστε περισσότερα

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

Τα Θεμέλια της Πληροφορικής Τα Θεμέλια της Πληροφορικής Στάθης Ζάχος Άρης Παγουρτζής . Περιεχόμενα Περιεχόμενα i 1 Εισαγωγή 1 1.1 Κλάδοι Επιστήμης των Υπολογιστών............... 2 1.2 Επανάληψη, επαγωγή, αναδρομή..................

Διαβάστε περισσότερα

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

Κεφάλαιο 2: Τυπικές γλώσσες. Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος / 216 Κεφάλαιο 2: Τυπικές γλώσσες Νίκος Παπασπύρου, Κωστής Σαγώνας Μεταγλωττιστές Μάρτιος 2017 13 / 216 Τυπικές γλώσσες (i) Βασικές έννοιες Αλφάβητο Σύμβολο Συμβολοσειρά Μήκος συμβολοσειράς Σύνολο συμβολοσειρών

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ασυμφραστικές Γραμματικές (2.1) Τυπικός Ορισμός Σχεδιασμός Ασυμφραστικών Γραμματικών

Διαβάστε περισσότερα

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

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 1 /

Διαβάστε περισσότερα

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

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί); Μοντελοποίηση του Υπολογισµού Στοιχεία Θεωρίας Υπολογισµού (): Τυπικές Γλώσσες, Γραµµατικές Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ποιές οι θεµελιώδεις δυνατότητες

Διαβάστε περισσότερα

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

Πεπερασμένα Αυτόματα και Κανονικές Παραστάσεις Κεφάλαιο 7 Πεπερασμένα Αυτόματα και Κανονικές Παραστάσεις 7.1 Εισαγωγή Στο κεφάλαιο αυτό θα ασχοληθούμε με τυπικές γλώσσες που μπορούν να περιγράψουν υπολογιστικά προβλήματα και επίσης χρησιμεύουν στον

Διαβάστε περισσότερα

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

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης. Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1) Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες () Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Πεπερασμένα Αυτόματα (Κεφάλαιο., Sipser) Ορισμός πεπερασμένων αυτομάτων και ορισμός του

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τυπικές Γραμματικές και Άλλα Αυτόματα Κεφάλαιο 8 Τυπικές Γραμματικές και Άλλα Αυτόματα 8.1 Εισαγωγή Στο κεφάλαιο αυτό θα ασχοληθούμε με μη κανονικές γλώσσες και γραμματικές, καθώς και τα αντίστοιχα αυτόματα που τις αναγνωρίζουν. Πιο συγκεκριμένα

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 1: Εισαγωγή Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε

Διαβάστε περισσότερα

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

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2): Αυτόµατα Στοίβας. Παραδείγµατα Σχεδιασµού CFG. Παράδειγµα 1. Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα 2): Αυτόµατα Στοίβας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Μη Κανονικές Γλώσσες Το Λήµµα της Αντλησης για τις

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει την ακόλουθη γλώσσα. { a n b n+2 c n 2 n 2 } Λύση: H ζητούμενη μηχανή Turing μπορεί να

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {w 1w 2 w 1 {0,1} * και w 2 = 0 k 1 m όπου k και m

Διαβάστε περισσότερα

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

Φροντιστήριο 10 Λύσεις Άσκηση 1 Φροντιστήριο 10 Λύσεις Να κατασκευάσετε μια μηχανή Turing με δύο ταινίες η οποία να αποδέχεται στην πρώτη της ταινία μια οποιαδήποτε λέξη w {0,1} * και να γράφει τη λέξη w R στη δεύτερη της ταινία.

Διαβάστε περισσότερα

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

Φροντιστήριο 9 Λύσεις Άσκηση 1 Φροντιστήριο 9 Λύσεις Να κατασκευάσετε μια μηχανή Turing με δύο ταινίες η οποία να αποδέχεται στην πρώτη της ταινία μια οποιαδήποτε λέξη w {a,b} * και να γράφει τη λέξη w R στη δεύτερη της ταινία.

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητα Ενδιάμεση Εξέταση Ημερομηνία : Παρασκευή, 17 Μαρτίου 2017 Διάρκεια : 9.00 10.30 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο:

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 8: Πεπερασμένα Αυτόματα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 1 Λύσεις Σειρά Προβλημάτων Λύσεις Άσκηση Ορίζουμε τη συναρμογή δύο γλωσσών Α και Β ως ΑΒ = { uv u A, v B }. (α) Έστω Α = {α,β,γ} και Β =. Να περιγράψετε τη γλώσσα ΑΒ. (β) Θεωρήστε τις γλώσσες L, M και N. Να δείξετε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 8: Ιδιότητες Γραμματικών χωρίς Συμφραζόμενα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος. Σύνοψη Προηγούµενου Κανονικές Γλώσσες () ιαδικαστικά του Μαθήµατος. Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Εισαγωγή: Υπολογισιµότητα και Πολυπλοκότητα. Βασικές

Διαβάστε περισσότερα

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

Αλγόριθμοι για αυτόματα Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 24: Μη Ντεντερμινιστικές Μηχανές Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w#z w, z {a,b}* και η z είναι υπολέξη της w}. Συγκεκριμένα,

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 5: Μη κανονικές γλώσσες Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { n 3 } (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q,

Διαβάστε περισσότερα

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

Υπολογίσιμες Συναρτήσεις Υπολογίσιμες Συναρτήσεις Σ Π Υ Ρ Ι Δ Ω Ν Τ Ζ Ι Μ Α Σ Δ Τ Ο Μ Ε Α Σ Τ Μ Η Μ Α Μ Α Θ Η Μ Α Τ Ι Κ Ω Ν Σ Χ Ο Λ Η Θ Ε Τ Ι Κ Ω Ν Ε Π Ι Σ Τ Η Μ Ω Ν Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Ι Ω Α Ν Ν Ι Ν Ω Ν Υπολογίσιμες Συναρτήσεις

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {1010 2 10 3 10 n 1 10 n 1 n 1}. (β) Να διατυπώσετε

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαγνώσιμες Γλώσσες (4.1) Επιλύσιμα Προβλήματα σχετικά με Κανονικές Γλώσσες Επιλύσιμα Προβλήματα

Διαβάστε περισσότερα

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

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α. Δύο Π.Α. Μ 1 και Μ 2 είναι ισοδύναμα ανν L(M 1 ) = L(M 2 ). Έστω Μ = (Q, Σ, q 0, Δ, F) μη Αιτ. Π.Α. Για κάθε κατάσταση q Q, ορίζουμε ως Ε(q) Q το σύνολο των καταστάσεων

Διαβάστε περισσότερα

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

Μηχανές Turing (T.M) I Μηχανές Turing (T.M) I Οι βασικές λειτουργίες μιας TM είναι: Διάβασε το περιεχόμενο του τρέχοντος κυττάρου Γράψε 1 ή 0 στο τρέχον κύτταρο Κάνε τρέχον το αμέσως αριστερότερο ή το αμέσως δεξιότερο κύτταρο

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { a 2n b n c 3n n 2 } : H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { ww rev w {a, b} * και w αποτελεί καρκινική λέξη } (α) H ζητούμενη μηχανή

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 3 Λύσεις Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) {0 n 1 n n > 0} {0 n 1 2n n > 0} (β) {w {a,b} * η w ξεκινά και τελειώνει με το ίδιο σύμβολο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Πιο κάτω υπάρχει ένα σχεδιάγραμμα που τοποθετεί τις κλάσεις των κανονικών, ασυμφραστικών, διαγνώσιμων και αναγνωρίσιμων γλωσσών μέσα στο σύνολο όλων των γλωσσών. Ακολουθούν

Διαβάστε περισσότερα

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

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα (2) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Αυτόµατα Στοίβας Pushdown utomata Ισοδυναµία µε τις Γλώσσες χωρίς Συµφραζόµενα:

Διαβάστε περισσότερα

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος Περιγραφή μαθήματος Θεωρία Υπολογισμού Άρτιοι ΑΜ Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας (Θεωρία Αλγορίθμων). Διδάσκων: Σταύρος Κολλιόπουλος

Διαβάστε περισσότερα

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Θεωρία Υπολογισμού Άρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Περιγραφή μαθήματος Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το

Διαβάστε περισσότερα

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

Ασκήσεις από παλιές εξετάσεις Άσκηση 2 - Τελική εξέταση 2012 Ασκήσεις από παλιές εξετάσεις (α) [10 μονάδες] Να μετατρέψετε το πιο κάτω NFA σε ένα ισοδύναμο DFA χρησιμοποιώντας την κατασκευή που μελετήσαμε στο μάθημα. a a q 0 a, ε q

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μη Ασυμφραστικές Γλώσσες (2.3) Λήμμα Άντλησης για Ασυμφραστικές Γλώσσες Παραδείγματα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 10: Αυτόματα Στοίβας II ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 10: Αυτόματα Στοίβας II Τι θα κάνουμε σήμερα Ισοδυναμία αυτομάτων στοίβας με ασυμφραστικές γραμματικές (2.2.3) 1 Ισοδυναμία PDA με CFG Θεώρημα: Μια

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 1 Λύσεις Σειρά Προβλημάτων Λύσεις Άσκηση Έστω αλφάβητο Σ και γλώσσες Λ, Λ επί του αλφάβητου αυτού. Να διερευνήσετε κατά πόσο ισχύει κάθε μια από τις πιο κάτω σχέσεις. Σε περίπτωση που μια σχέση ισχύει να το αποδείξετε,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { a k b m c n k < m ή m > 2n, όπου k,m,n 0 } Μια γραμματική για τη γλώσσα έχει ως εξής:

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 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} + και όλα

Διαβάστε περισσότερα

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται με βάση διάφορα κριτήρια: Κατεύθυνση ανάλυσης μη τερματικών συμβόλων Σειρά επιλογής

Διαβάστε περισσότερα

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

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις Μοντελοποίηση Υπολογισμού Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις Προβλήματα - Υπολογιστές Δεδομένου ενός προβλήματος υπάρχουν 2 σημαντικά ερωτήματα: Μπορεί να επιλυθεί με χρήση υπολογιστή;

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητα Ενδιάμεση Εξέταση Ημερομηνία : Κυριακή, 15 Μαρτίου 2015 Διάρκεια : 15.00 17.00 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο:

Διαβάστε περισσότερα

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 1 η : Parsers Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Συντακτική Ανάλυση για ΓΧΣ Οι τεχνικές συντακτικής ανάλυσης κατηγοριοποιούνται

Διαβάστε περισσότερα

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 12: Μηχανές Turing ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 12: Μηχανές Turing Τι θα κάνουμε σήμερα Εισαγωγή στις Μηχανές Turing (TM) Τυπικός Ορισμός Μηχανής Turing (3.1.1) 1 Τι είδαμε μέχρι στιγμής Πεπερασμένα

Διαβάστε περισσότερα

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

Παραλλαγές και επεκτάσεις αυτομάτων I Παραλλαγές, επεκτάσεις και εφαρμογές FA/REGEXP Παραλλαγές και επεκτάσεις αυτομάτων I Ορισμός Ένα two-way deterministic FA (2DFA) είναι μία πεντάδα M = (Q, Σ, δ, q 0, F), όπου τα Q, Σ, q 0 και F είναι όπως

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

HEAD INPUT. q0 q1 CONTROL UNIT

HEAD INPUT. q0 q1 CONTROL UNIT Πεπερασμένα Αυτόματα (ΠΑ) Τα πεπερασμένα αυτόματα είναι οι απλούστερες «υπολογιστικές μηχανές». Δεν έχουν μνήμη, μόνο μία εσωτερική μονάδα με πεπερασμένο αριθμό καταστάσεων. Διαβάζουν τη συμβολοσειρά εισόδου

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 4. Πεπερασμένα Αυτόματα 6 Φεβρουαρίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Μοντέλα Υπολογισμού 1930 : Μηχανή Turing : αφαιρετική μηχανή (μοντελοποίηση ενός υπολογιστή)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (3) Παραδείγµατα µε Κανονικές Εκφράσεις. Σε αυτό το µάθηµα. Σύνοψη Προηγούµενου Κανονικές Γλώσσες (3) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς (Ντετερµινιστική) Κλειστότητα Κανονικών Γλωσσών ως προς Ενωση. Κατασκευή: DFA

Διαβάστε περισσότερα

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

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k )) Υπολογισμοί με Μ.Τ. Εστω M = (K, Σ, δ, s, {y, n}) μια Μ.Τ. Κάθε συνολική κατάσταση τερματισμού της οποίας η κατάσταση τερματισμού είναι το y, θα ονομάζεται συνολική κατάσταση αποδοχής, ενώ αν η κατάσταση

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 10. Μηχανές Turing 20,23 Μαρτίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Μηχανές Turing: Ένα Γενικό Μοντέλο Υπολογισμού Ποια μοντέλα υπολογισμού μπορούν να δεχθούν γλώσσες

Διαβάστε περισσότερα

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

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή. Μη ντετερµινιστικές Μηχανές Turing - NTMs (1/6) Μηχανές Turing: Μη ντετερµινισµός, Επιλύσιµα Προβλήµατα Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 10 εκεµβρίου 2016

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { R η R είναι μια κανονική έκφραση η οποία παράγει μια μη πεπερασμένη γλώσσα} (β) { G η G είναι μια CFG η οποία

Διαβάστε περισσότερα

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 14: Διαγνωσιμότητα (Επιλυσιμότητα) ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 14: Διαγνωσιμότητα (Επιλυσιμότητα) Τι θα κάνουμε σήμερα Εισαγωγή Επιλύσιμα Προβλήματα σχετικά με τις Κανονικές Γλώσσες (4.1.1) Επιλύσιμα Προβλήματα

Διαβάστε περισσότερα

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

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

Διαβάστε περισσότερα

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 14: Γραμματικές Χωρίς Συμφραζόμενα Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

Διαβάστε περισσότερα

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

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί Αριθμήσιμα σύνολα Μαθηματικά Πληροφορικής 5ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Ορισμός Πόσα στοιχεία έχει το σύνολο {a, b, r, q, x}; Οσα και το σύνολο {,,, 4, 5} που είναι

Διαβάστε περισσότερα

f(t) = (1 t)a + tb. f(n) =

f(t) = (1 t)a + tb. f(n) = Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία

Διαβάστε περισσότερα

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

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού

Διαβάστε περισσότερα