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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

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

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

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

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

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

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

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

Ισοδυναµίες, Μερικές ιατάξεις

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

Context free γραμματικές και γλώσσες

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

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

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

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

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

Αποφασισιµότητα / Αναγνωρισιµότητα. Μη Επιλύσιµα Προβλήµατα. Η έννοια της αναγωγής. Τερµατίζει µια δεδοµένη TM για δεδοµένη είσοδο;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Προηγούµενο: Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Σύνοψη Ιδιοτήτων

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

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

CSC 314: Switching Theory

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

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

Στοιχεία Θεωρίας Γραφηµάτων (1)

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

Σχέσεις, Ιδιότητες, Κλειστότητες

ιαιρετότητα Στοιχεία Θεωρίας Αριθµών «Ο Αλγόριθµος της ιαίρεσης» Αριθµητική Υπολοίπων 0 r < d και a = d q +r

p (R 1 (R 2 R 3 )) q pr 1 r 1, r 1 R 2 r 2, r 2 R 3 q p (R 1 R 2 ) r 2 και r 2 R 3 q p ((R 1 R 2 ) R 3 ) q άρα R 1 (R 2 R 3 ) (R 1 R 2 ) R 3

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

Σύνοψη Προηγούµενου. Ισοδυναµίες, Μερικές ιατάξεις. Σχέσεις Ισοδυναµίας. Σχέσεις, Ιδιότητες, Αναπαράσταση. Ανακλαστικές (a, a) R

Γραµµατικές για Κανονικές Γλώσσες

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

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

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

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

Transcript:

Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα 2): Αυτόµατα Στοίβας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Μη Κανονικές Γλώσσες Το Λήµµα της Αντλησης για τις Κανονικές Γλώσσες Γραµµατικές οµής Φράσεως. Κανονικές Γραµµατικές Regular Grammars) Γραµµατικές και Γλώσσες χωρίς Συµφραζόµενα Context-Free Grammars / Languages -- CFGs / CFLs) Συντακτικά έντρα και ιφορούµενες Γραµµατικές. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 1 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 2 / 34 Παραδείγµατα Σχεδιασµού CFG Παράδειγµα 1 1. Να δοθεί CFG για καθεµία από τις γλώσσες: α) { w c w R w { a, b } } β) { w w R w in { a, b } } γ) { w { a, b } w = w R } 2. Να δοθεί CFG για όλες τις κανονικές εκφράσεις επί του { a, b }, όπου: T = { a, b,, ),,, } α) { w c w R w { a, b } }: V = {a, b, c, S}, T = {a, b}, R = { S a S a b S b c } β) { w w R w in { a, b } }: V = {a, b, S}, T = {a, b}, R = { S a S a b S b ɛ } 3. Να δοθεί CFG για καθεµία από τις γλώσσες: α) { a m b n m n } β) { w {a, b} η w έχει διπλάσιο πλήθος b από a } γ) { a i b j c k είτε i = j είτε j = k } γ) { w { a, b } w = w R }: V = {a, b, S}, T = {a, b}, R = { S a S a b S b a b ɛ } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 3 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 4 / 34

Παράδειγµα 2 Παράδειγµα 3 α) { a m b n m n }: Η γραµµατική των κανονικών εκφράσεων επί του {a, b} : V = { S, a, b,, ),,, } T = { a, b,, ),,, } R = { S a b S S ) S S ) S } V = { a, b, S, T, U, V }, T = { a, b }, R = { S asb, S as, S ɛ } ϐ) { w {a, b} η w έχει διπλάσιο πλήθος b από a }: V = { S, a, b }, T = { a, b } R = { S Sabb asbb absb abbs Sbab bsab S basb babs Sbba bsba bbsa bbas } γ) L = { a i b j c k είτε i = j είτε j = k }: Υπόδειξη: ) ) L = { a n b n n 0 }{c } {a }{ b n c n n 0 } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 5 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 6 / 34 Σε αυτό το µάθηµα Αυτόµατα Στοίβας Pushdown Automata Αυτόµατα Στοίβας Pushdown Automata) Κλειστότητα και µη) Γλωσσών χωρίς Συµφραζόµενα. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 7 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 8 / 34

Αυτόµατα Στοίβας Τρόπος Λειτουργίας PDA Ατυπη Περιγραφή λειτουργίας ενός PDA για τη γλώσσα { 0 n 1 n n 0 }. Pushdown Automata -- PDA. Είναι µη ντετερµινιστικά αυτόµατα, εφοδιασµένα µε πρόσθετη µνήµη. Η µνήµη λειτουργεί µε τον τρόπο µιας στοίβας: Το αυτόµατο µπορεί να γράφει/διαβάζει στην κορυφή της στοίβας µόνο. LIFO αρχή λειτουργίας: Last-In First-Out. Το αυτόµατο εισάγει στην push) ή εξάγει pop) από τη στοίβα. Είναι ισοδύναµα µε τις Γραµµατικές χωρίς Συµφραζόµενα. Η στοίβα µπορεί να αποθηκεύει απεριόριστη ποσότητα πληροφορίας. ιαβάζουµε σύµβολα από την είσοδο. Οσο διαβάζουµε 0, εισάγουµε το 0 στη στοίβα. Από το πρώτο 1 και µετά: εξάγουµε από τη στοίβα ένα 0 για κάθε 1 που διαβάζουµε. Αν η είσοδος εξαντληθεί µε κενή στοίβα, το PDA αποδέχεται. Το PDA δεν αποδέχεται αν: η στοίβα εκκενωθεί πριν εξαντληθούν τα 1, τελειώσει η είσοδος πριν αδειάσει η στοίβα, εµφανιστεί στην είσοδο κάποιο 0 µετά από 1. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 9 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 10 / 34 Παρατηρήσεις Αυτόµατα Στοίβας Θα ϑεωρούµε πάντα µη ντετερµινιστικά PDA. Τα ντετερµινιστικά PDAs είναι λιγότερο ισχυρά από τα µη ντετερµινιστικά: Αναγνωρίζουν αυστηρά µικρότερη κλάση γλωσσών από τις CFL. Αντίθετα από τα DFAs και τα NFAs που αναγνωρίζουν την ίδια κλάση. Μόνο τα µη ντετερµινιστικά PDAs είναι ισοδύναµα µε τις CFL. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 11 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 12 / 34

Αυτόµατα Στοίβας Ορισµός Υπολογισµού Ενα PDA M = Q, Σ, Γ, δ, q 0, F), αποδέχεται είσοδο w αν: Μια εξάδα Q, Σ, Γ, δ, q 0, F) όπου Q, Σ, Γ, F πεπερασµένα σύνολα, και: 1. Q είναι το σύνολο καταστάσεων, 2. Σ είναι το αλφάβητο εισόδου, 3. Γ είναι το αλφάβητο στοίβας, 4. δ : Q Σ ɛ Γ ɛ PQ Γ ɛ ) είναι η συνάρτηση µεταβάσεων, 5. q 0 είναι η αρχική κατάσταση, 6. F Q είναι το σύνολο των καταστάσεων αποδοχής. w = w 1 w 2 w n, όπου κάθε w i Σ ɛ, υπάρχει ακολουθία καταστάσεων, r 0, r 1,..., r m Q υπάρχει ακολουθία λέξεων s 0, s 1,..., s m Γ, έτσι ώστε: 1. r 0 = q 0 και s 0 = ɛ. 2. r i+1, b) δr i, w i+1, α), για κάθε i = 0,..., m 1, όπου: s i = α t και s i+1 = b t, για α, b Γ ɛ και t Γ. 3. r m F. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 13 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 14 / 34 Παρατηρήσεις Η συνθήκη 1: r 0 = q 0 και s 0 = ɛ εξασφαλίζει ότι το αυτόµατο εκκινεί στην αρχική κατάσταση µε κενή στοίβα. Η συνθήκη 2: Παράδειγµα 1α) Το PDA που αναγνωρίζει τη γλώσσα { 0 n 1 n n 0 } ɛ, ɛ $ q 1 q 2 0, ɛ 0 1, 0 ɛ r i+1, b) δr i, w i+1, α), όπου: s i = α t, s i+1 = b t α, b Γ ɛ t Γ q 4 q 3 1, 0 ɛ ορίζει ότι το αυτόµατο κινείται ορθά, σύµφωνα µε την τρέχουσα κατάσταση, το επόµενο σύµβολο εισόδου, και το κορυφαίο σύµβολο της στοίβας. Η συνθήκη 3: r m F, ορίζει ότι το M καταλήγει σε κατάσταση αποδοχής. Συµβολισµός a, b c Το PDA διαβάζει στην είσοδο σύµβολο a. Εξάγει από την κορυφή της στοίβας σύµβολο b. Εισάγει στην κορυφή της στοίβας σύµβολο c. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 15 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 16 / 34

Παράδειγµα 1 ϐ) Τυπικός ορισµός του PDA που αναγνωρίζει τη { 0 n 1 n n 0 } Q, Σ, Γ, δ, q 1, F) όπου: Q = { q 1, q 2, q 3, q 4 }, Σ = { 0, 1 }, Γ = { 0, $ }, F = { q 1, q 4 } Συνάρτηση Μεταβάσεων δ δq 1, ɛ, ɛ) = { q 2, $) } δq 2, 0, ɛ) = { q 2, 0) } δq 2, 1, 0) = { q 3, ɛ) }......... =......... Είσοδος: 0 1 ɛ Στοίβα: 0 $ ɛ 0 $ ɛ 0 $ ɛ q 1 { q 2, $) } q 2 { q 2, 0) } { q 3, ɛ) } q 3 { q 2, ɛ) } { q 4, ɛ) } q 4 Παράδειγµα 2 Ενα PDA που αναγνωρίζει τη γλώσσα: { a i b j c k i, j, k 0 και i = j ή i = k } q 1 ɛ, ɛ $ b, a ɛ c, ɛ ɛ q 3 q 4 ɛ, ɛ ɛ q 2 ɛ, ɛ ɛ ɛ, ɛ ɛ q 5 q 6 q 7 a, ɛ a b, ɛ ɛ c, a ɛ Ο «άνω κλάδος» του PDA ελέγχει τη συνθήκη i = j. Ο «κάτω κλάδος» ελέγχει τη συνθήκη i = k. Το PDA µεταβαίνει σε καθέναν από τους «κλάδους» µη ντετερµινιστικά, από την q 2. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 17 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 18 / 34 Παράδειγµα 3 Ισοδυναµία PDA µε CFG Ενα PDA που αναγνωρίζει τη γλώσσα: { w w R w { 0, 1 } } ɛ,ɛ $ q 1 q 2 q 4 q 3 ɛ, ɛ ɛ 0,ɛ 0 1,ɛ 1 0,0 ɛ 1,0 ɛ Στην q 2, εισάγει στη στοίβα τα σύµβολα του τµήµατος w της λέξης εισόδου. Στην q 3, διαβάζει από το τµήµα w R και συγκρίνει µε την κορυφή της στοίβας. Θεώρηµα: Μια γλώσσα είναι CFL αν και µόνο αν αναγνωρίζεται από PDA. Απόδειξη σε δύο Βήµατα: Λήµµα 1: Αν µια γλώσσα είναι CFL, τότε αναγνωρίζεται από PDA. Απόδειξη: Μετατροπή CFG σε PDA Λήµµα 2: Η γλώσσα που αναγνωρίζεται από ένα PDA είναι CFL. Απόδειξη: Μετατροπή PDA σε CFG. Μη ντετερµινιστική µετάβαση q 2 q 3. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 19 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 20 / 34

Εγγραφή Λέξης στη Στοίβα Θεωρούµε ότι το PDA µπορεί να γράφει στη στοίβα µία λέξη σε µία µετάβαση. διευκολύνει την κατασκευή) δq, a, s) = r, u) όπου: q, r Q, a Σ ɛ, s Γ ɛ, u Γ ɛ. Μπορεί να «επιδιορθωθεί» εύκολα µε την εισαγωγή επιπλέον καταστάσεων: Εγγραφή Λέξης στη Στοίβα Εστω δύο καταστάσεις q, r, σύµβολο εισόδου a Σ ɛ, s Γ ɛ. Θέλουµε κατά τη µετάβαση από την q στην r όταν διαβάζεται σύµβολο a στην είσοδο να γράφεται στη στοίβα u = u 1 u 2 u l. Εισάγουµε τις καταστάσεις q 1, q 2,..., q l 1 και τροποποιούµε τη δ: Προσθέτουµε στο σύνολο) δq, a, s) το µέλος q 1, u l ). q a, s z q q 1 Θέτουµε: r a, s x y z = r ɛ, ɛ x q 2 ɛ, ɛ y δq 1, ɛ, ɛ) = { q 2, u l 1 ) }, δq 2, ɛ, ɛ) = { q 3, u l 2 ) },..., δq l 1, ɛ, ɛ) = { r, u 1 ) } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 21 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 22 / 34 Γραφική Απεικόνιση Μετατροπής CFG σε PDA Παράδειγµα Μετατροπής 1/5) ɛ, A w a, a ɛ Να δοθεί PDA για τη CFL µε γραµµατική G: { S a T b b G : T T a ɛ Τρεις «ϐασικές» καταστάσεις, q έναρξη, q ϐρόχος, q αποδοχή. ɛ, ɛ S $ q έναρξη q ϐρόχος q αποδοχή Επιπλέον καταστάσεις για εγγραφή στη στοίβα ολόκληρων λέξεων. Αρχικά, το PDA εγγράφει στη στοίβα τη λέξη S $: Το $ ϐοηθά στο PDA να «καταλαβαίνει» πότε η στοίβα είναι κενή. Οταν το $ ϐρεθεί στην κορυφή της στοίβας, ϑα είναι το τελευταίο σύµβολο. Κατόπιν, εισάγει την εναρκτήρια µεταβλητή, S της γραµµατικής. Με το πέρας των δύο αυτών ϐηµάτων µεταβαίνει στην κατάσταση q ϐρόχος. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 23 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 24 / 34

Παράδειγµα Μετατροπής 2/5) Εγγραφή της λέξης S $ στη στοίβα σε 2 ϐήµατα) Παράδειγµα Μετατροπής 3/5) Στην q βρόχος : Αν στην κορυφή της στοίβας έχει S, εγγράφεται a T b σε 3 ϐήµατα). Αν στην κορυφή της στοίβας έχει T, εγγράφεται T a σε 2 ϐήµατα). q έναρξη ɛ, ɛ $ ɛ, ɛ S q ϐρόχος Τα ϐήµατα αυτά είναι µη ντετερµινιστικά. Πάντα επιστροφή στην q ϐρόχος. q ϐρόχος Εγγράφεται µε αντίστροφη σειρά των συµβόλων της πρώτα $, µετά S). Εισάγεται µία επιπλέον κατάσταση, για εγγραφή λέξης δύο συµβόλων. ɛ, S b ɛ, T a ɛ, ɛ T ɛ, ɛ a ε διαβάζεται σύµβολο εισόδου ή σύµβολο από την κορυφή της στοίβας. ɛ, ɛ T Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 25 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 26 / 34 Παράδειγµα Μετατροπής 4/5) Παράδειγµα Μετατροπής 5/5) Μεταβάσεις Εγγραφής ενός Συµβόλου: Το πλήρες PDA: ɛ,s b ɛ,t ɛ a,a ɛ b,b ɛ ύο κανόνες για µη τερµατικό στην κορυφή: S b, T ɛ. ɛ,s b ɛ,t ɛ a,a ɛ b,b ɛ ɛ, ɛ $ ɛ, ɛ S q έναρξη q ϐρόχος q αποδοχή ύο µεταβάσεις για ανάγνωση τερµατικού στην κορυφή. q ϐρόχος ɛ, S b ɛ, T a ɛ, ɛ T ɛ, ɛ a Το τερµατικό στην κορυφή ϑα πρέπει να «ταιριάζεται» µε τερµατικό στην είσοδο. ɛ, ɛ T Από την q ϐρόχος µεταβαίνει στην q αποδοχή όταν διαβάσει $ στην κορυφή της στοίβας οπότε η στοίβα αδειάζει), και χωρίς να διαβάσει είσοδο ή να εγγράψει στη στοίβα. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 27 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 28 / 34

Σύνοψη Μετατροπής CFG σε PDA Ατυπη περιγραφή λειτουργίας του PDA 1. Εισάγουµε στη στοίβα το ειδικό σύµβολο, $, και την αρχική µεταβλητή. 2. Επαναλαµβάνουµε συνεχώς τα ακόλουθα: α) Αν το κορυφαίο σύµβολο της στοίβας είναι µεταβλητή, A V: επιλέγουµε µη ντετερµινιστικά κάποιον κανόνα µε A στο αριστερό µέλος και εισάγουµε στη στοίβα το δεξί µέλος του κανόνα. β) Αν το κορυφαίο σύµβολο της στοίβας είναι τερµατικό a Σ: διαβάζουµε το επόµενο σύµβολο εισόδου και το συγκρίνουµε µε το a. Αν συµπίπτουν, συνεχίζουµε. Αν διαφέρουν, απορρίπτουµε. γ) Αν το κορυφαίο σύµβολο της στοίβας είναι το $: µεταβαίνουµε στην κατάσταση αποδοχής. Αν η είσοδος έχει εξαντληθεί, γίνεται αποδεκτή. Τυπική Σύνοψη Μετατροπής CFG σε PDA { } Σύνολο καταστάσεων του PG): Q = q αρχική, q αποδοχή, q ϐρόχος E, όπου E οι «επιπλέον» καταστάσεις του µετασχηµατισµού που περιγράφηκε. Αρχικά, το PG) εισάγει στη στοίβα τα σύµβολα $ και S: ) { ) } δ q έναρξη, ɛ, ɛ = q ϐρόχος, S $ Μεταβάσεις επαναληπτικού ϐρόχου, όταν η κορυφή της στοίβας: µεταβλητή, A. ) { ) } δ q ϐρόχος, ɛ, A = q ϐρόχος, w υπάρχει κανόνας A w Μεταβάσεις επαναληπτικού ϐρόχου, όταν κορυφή στοίβας: τερµατικό σύµβολο, a. ) { ) } δ q ϐρόχος, a, a = q ϐρόχος, ɛ Οταν η κορυφή της στοίβας είναι το ειδικό σύµβολο, $. ) { ) } δ q ϐρόχος, ɛ, $ = q αποδοχή, ɛ Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 29 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 30 / 34 Κλειστότητα των CFL Απόδειξη Κλειστότητας των CFL Οι Γλώσσες χωρίς Συµφραζόµενα είναι κλειστές ως προς: Ενωση ), Παράθεση ), Σώρευση ). όπως εξάλλου και οι Κανονικές Γλώσσες. Απόδειξη: Εστω δύο CFLs, A και B και G 1, G 2 οι CFGs τους: G 1 = V 1, T 1, R 1, S 1 ), G 2 = V 2, T 2, R 2, S 2 ) Χρειαζόµαστε µια CFG G για καθεµία από τις ακόλουθες γλώσσες: A B, A B, A? Φτιάχνουµε µία γραµµατική CFG για καθεµία περίπτωση. Εισάγουµε καταρχάς ένα αρχικό σύµβολο S. A B: «Ενώνουµε» τις γραµµατικές των δύο γλωσσών τα σύνολα που τις ορίζουν). Θέτουµε τους επιπλέον κανόνες: S S 1 S 2. A B: «Ενώνουµε» τις γραµµατικές των δύο γλωσσών τα σύνολα που τις ορίζουν). Θέτουµε τον επιπλέον κανόνα: S S 1 S 2. A : Θέτουµε τους επιπλέον κανόνες στη γραµµατική της A: S S S 1 ɛ Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 31 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 32 / 34

Τοµή CFL µε Κανονική Γλώσσα Παράδειγµα Θεώρηµα: Η τοµή µιας CFL µε Κανονική Γλώσσα είναι CFL. Απόδειξη Εστω L µια CFL και M 1 = Q 1, Σ, Γ 1, δ 1, s 1, F 1 ) το PDA «της». Εστω R κανονική γλώσσα και M 2 = Q 2, Σ, δ 2, s 2, F 2 ) το DFA «της». Ορίζουµε PDA που προσοµοιώνει παράλληλα τα M 1, M 2. αποδέχεται µόνο όταν αποδέχονται και τα δύο αυτόµατα. Θέτουµε Q = Q 1 Q 2, Γ = Γ 1, s = s 1, s 2 ), F = F 1 F 2. Για κάθε µετάβαση q 1, a, b), p 1, γ)) δ 1 και για κάθε q 2 Q 2 : Η γλώσσα L που περιέχει όλες τις λέξεις µε ίσο πλήθος a και b, αλλά που δεν περιέχουν abaa ή babb, είναι CFL? Να ϐρεθεί CFG για τη γλώσσα L όλων των λέξεων µε ίσο πλήθος a και b. Να διατυπωθεί η L σαν τοµή της L µε µία κανονική γλώσσα. αφού δειχθεί για την κανονική γλώσσα ότι είναι κανονική. ορίζουµε στη δ τη µετάβαση: q 1, q 2 ), a, b), p 1, δq 2, a)), γ)). Για κάθε µετάβαση q 1, ɛ, b), p 1, γ)) δ 1 και για κάθε q 2 Q 2 : ορίζουµε στη δ τη µετάβαση: q 1, q 2 ), ɛ, b), p 1, q 2, ), γ)). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 33 / 34 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 34 / 34