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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

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

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

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

Μονοπάτια και Κυκλώµατα Euler. Στοιχεία Θεωρίας Γραφηµάτων (3,4) Παραδείγµατα. Κριτήρια Υπαρξης.

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

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

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

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

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

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

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

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

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

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

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

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.

Άσκησηη 1. (α) Το αυτόματο. (γ) Να δείξετε όλα aabbb. Λύση. λέξεις. αυτόματο. (β) Τυπικά. μεταβάσεων δ. ορίζεται. (γ) Θα δείξουμε τα.

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

Απαρίθµηση Μονοπατιών. Στοιχεία Θεωρίας Γραφηµάτων (3) Μονοπάτια και Κυκλώµατα Euler. Ορέστης Τελέλης

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

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

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

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

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

Μάθηµα Θεωρίας Αριθµών Ε.Μ.Ε

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

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

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

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

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

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

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

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

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

Παράδειγµα (4) Στοιχεία Θεωρίας Γραφηµάτων (2) Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς. v 2. u 3.

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

- εξίσωση που εκφράζει τον n-οστό όρο a n της ακολουθίας, - µέσω ενός ή περισσότερων όρων από τους a 0, a 1,..., a n 1, - για κάθε n n 0, όπου n 0 N.

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων. Εφαρµογές. Παράδειγµα 1.

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

Αλγόριθµοι και Πολυπλοκότητα

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Μαθηµατική Επαγωγή. Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς

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

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

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

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

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

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

3.1 εκαδικό και υαδικό

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

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

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

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

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2

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

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

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

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

Γνωριµία. Θεωρία Υπολογισµού: Εισαγωγικά. Αντικείµενο Μαθήµατος. Επικοινωνία.

3 Αναδροµή και Επαγωγή

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

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 4

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

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Φυλλαδιο 4. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

Γνωριµία. ιακριτά Μαθηµατικά. Βιβλία Μαθήµατος. Επικοινωνία. ιδάσκων: Ορέστης Τελέλης. Ωρες γραφείου (502, Γρ.

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

Transcript:

Σύνοψη Προηγούµενου Γλώσσες χωρίς Συµφραζόµενα (2) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Αυτόµατα Στοίβας Pushdown utomata Ισοδυναµία µε τις Γλώσσες χωρίς Συµφραζόµενα: CFL PD. Κλειστότητα (και µη) Γλωσσών χωρίς Συµφραζόµενα. Κλειστότητα ως προς τις κανονικές πράξεις. Τοµή γλώσσας χωρίς συµφραζόµενα µε κανονική γλώσσα είναι CFL. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 1 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 2 / 36 Σε αυτό το µάθηµα Ισοδυναµία CFG και PD Αυτόµατα Στοίβας (PD): Ισοδυναµία µε τις Γλώσσες χωρίς Συµφραζόµενα: PD CFL. Αλγόριθµοι για Γραµµατικές χωρίς Συµφραζόµενα Μετατροπή CFG σε Κανονική Μορφή Chomsky Λήµµα: Κάθε PD µετατρέπεται σε ισοδύναµη CFG. ηλαδή σε CFG που παράγει τη γλώσσα που αποδέχεται το PD. Εχουµε ήδη δείξει ότι: Αλγόριθµος υναµικού Προγραµµατισµού Λήµµα: Κάθε CFG µετατρέπεται σε ισοδύναµο PD. Γλώσσες που είναι και δεν είναι χωρίς Συµφραζόµενα Μαζί µας δίνουν την ισοδυναµία PDs και CFGs. Εισαγωγή στις Μηχανές Turing Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 3 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 4 / 36

Μετατροπή PD CFG Μετατροπή PD CFG: Απλοποίηση PD (1/2) ίνεται ένα PD P = (Q, Σ, Γ, δ, q 0, F) Θα το «απλοποιήσουµε» λίγο, προκειµένου να το µετατρέψουµε σε CFG. Μία µόνο κατάσταση αποδοχής, f 0. Η στοίβα να εκκενώνεται πριν το αυτόµατο αποδεχθεί. Εισάγουµε τη νέα µοναδική κατάσταση αποδοχής f 0. Αν η στοίβα είναι κενή στις (προηγούµενες) καταστάσεις αποδοχής f F: Απλώς προσθέτουµε µία µετάβαση (f, ɛ) δ (f, ɛ, ɛ). Αν ενδέχεται η στοίβα να µην είναι κενή σε κάποια f F, εισάγουµε: Νέα αρχική κατάσταση q 0 q 0 και µετάβαση: δ(q 0, ɛ, ɛ) = { (q 0, $ }. Σε κάθε µετάβαση: είτε γράφει ή διαβάζει στη/από τη στοίβα (ένα από τα δύο σίγουρα, αλλά όχι και τα δύο σε µία µετάβαση). Κατόπιν, µετατρέπουµε το (απλοποιηµένο) PD σε γραµµατική. Από την f «έως» την f 0, µετάβαση που αδειάζει τη στοίβα: ɛ, a ɛ ɛ, $ ɛ f f 0 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 5 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 6 / 36 Μετατροπή PD CFG: Απλοποίηση PD (2/2) Μετατροπή PD σε CFG Βασική Ιδέα Κάθε µετάβαση µόνο γράφει στη ή µόνο διαβάζει από τη στοίβα. Θεωρούµε οποιοδήποτε Ϲεύγος καταστάσεων p και q. Θα εισάγουµε µη τερµατικό σύµβολο pq στη γραµµατική. a, b c q q a, b ɛ ɛ, ɛ c q r q Το pq ϑα παράγει όλες τις λέξεις που οδηγούν το PD: από την p µε κενή στοίβα, στην q µε κενή στοίβα a, ɛ ɛ q q ɛ, ɛ a ɛ, a ɛ q r q ισοδύναµα, από την p µε µια κατάσταση στοίβας, στην q µε την ίδια κατάσταση στοίβας. Μετάβαση από την p: εγγράφεται σύµβολο στη στοίβα (αφού είναι «κενή» και δεν συµβαίνει ανάγνωση). Μετάβαση προς την q: διαβάζεται σύµβολο από τη στοίβα (αφού πρόκειται να καταλήξει «κενή» ). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 7 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 8 / 36

Μετατροπή PD σε CFG Τυπική Σύνοψη Μετατροπής PD σε CFG Βασική Ιδέα ύο περιπτώσεις υπολογισµού του PD: Το σύµβολο που διαβάζεται στην q είναι αυτό που εγγράφεται στην p. Προσοµοιώνουµε την περίπτωση αυτή µε έναν κανόνα pq a rs b. a είναι σύµβ. εισόδου που διαβάζεται στην πρώτη µετάβαση από την p. b είναι σύµβ. εισόδου που διαβάζεται στην τελευταία µετάβαση προς την q. r είναι η κατάσταση του PD αµέσως µετά την p. s είναι η κατάσταση του PD ακριβώς πριν την q. Το σύµβολο που εγγράφεται στην p διαβάζεται στην r, πριν την q. ηλαδή πριν από την «εξάντληση» της εισόδου x, «αδειάζει» η στοίβα. Προσοµοιώνουµε την περίπτωση αυτή µε τον κανόνα pq pr rq. ίνεται απλοποιηµένο PD (Q, Σ, Γ, δ, q 0, {f}). Αρχικό µη τερµατικό σύµβολο της CFG: q0f. Για κάθε p, q, r, s Q, t Γ, a, b Σ ɛ : Αν (r, t) δ(p, a, ɛ) και (q, ɛ) δ(s, b, t) τότε: pq a rs b Για κάθε p, q, r Q προσθέτουµε τον κανόνα pq pr rq. Για κάθε p Q προσθέτουµε τον κανόνα pp ɛ. Απόδειξη Ορθότητας: Επαγωγικά (παραλείπεται). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 9 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 10 / 36 Κανονική Μορφή Chomsky Κανονική Μορφή Chomsky Μας ενδιαφέρει οι CFG να ϐρίσκονται σε µια «απλή» µορφή. ιευκολύνεται ο σχεδιασµός αλγορίθµων για το χειρισµό τους. Μια CFG είναι σε κανονική µορφή Chomsky εάν κάθε κανόνας της ϐρίσκεται σε µία από τις ακόλουθες µορφές: C,, C. a. Επιπλέον, επιτρέπουµε τον κανόνα ɛ. Κάθε CFG G µπορεί να µετατραπεί σε κανονική µορφή Chomsky. Μετατροπή σε στάδια: 1. Εισαγωγή Νέας Αρχικής Μεταβλητής. 2. Απαλοιφή ɛ-κανόνων (επαναληπτικά). 3. Απλοιφή Μοναδιαίων Κανόνων (επαναληπτικά). 4. Μεταγραφή Εναποµείναντων Κανόνων. Κάθε CFL παράγεται από CFG σε κανονική µορφή Chomsky. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 11 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 12 / 36

Μετατροπή σε ΚΜ Chomsky (1): Νέα Αρχική Μεταβλητή Μετατροπή σε ΚΜ Chomsky (2): ɛ-κανόνες Οσο υπάρχουν ɛ-κανόνες, επαναλαµβάνουµε: Νέα εναρκτήρια µεταβλητή. 1. Προσθέτουµε νέα εναρκτήρια µεταβλητή, 0. 2. Προσθέτουµε τον κανόνα: 0, όπου η προηγούµενη εναρκτήρια µεταβλητή. 1. Επιλέγουµε έναν κανόνα ɛ µε και τον αφαιρούµε. 2. Για κάθε κανόνα, R, στον οποίο εµφανίζεται στο δεξί µέλος η : Εισάγουµε κανόνα που διαφέρει από τον R στο ότι παραλείπεται µία εµφάνιση της στο δεξί µέλος. Επαναληπτικά για κάθε εµφάνιση της στο δεξί µέλος του R. Π.χ., για τον R : R u v w εισάγουµε τους κανόνες: R u v w, R u v w, R u v w. 3. Αν υπάρχει R, εισάγουµε τον R ɛ, (εκτός αν είχε αφαιρεθεί προηγουµένως). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 13 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 14 / 36 Μετατροπή σε ΚΜ Chomsky (3): Μοναδιαίοι Κανόνες Μετατροπή σε ΚΜ Chomsky (4): Εναποµείναντες Κανόνες Μεταγραφή Εναποµείναντων Κανόνων Οσο υπάρχουν µοναδιαίοι κανόνες, επαναλαµβάνουµε: 1. Επιλέγουµε έναν, της µορφής, και τον αφαιρούµε. 2. Για κάθε κανόνα της µορφής u, όπου u V + : Εισάγουµε κανόνα u, εκτός αν αυτός ήταν µοναδιαίος που έχουµε ήδη αφαιρέσει. 1. Κάθε κανόνας της µορφής: u 1 u 2 u k, k 3, u i V 2. Αντικαθίσταται από τους κανόνες: u 1 1, 1 u 2 2, 2 u 3 3,, k 2 u k 1 u k όπου i καινούριες µεταβλητές. 3. Αν k = 2 αντικαθιστούµε κάθε τερµατικό σύµβολο u i µε µια καινούρια µεταβλητή, U i, και προσθέτουµε τον κανόνα U i u i. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 15 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 16 / 36

Παράδειγµα (1/5) Μετατροπή της CFG G: G : Εισαγωγή νέας αρχικής κατάστασης: a ɛ Αφαιρούµε τον ɛ-κανόνα, ɛ. 0 a ɛ a ɛ 0 0 a ɛ a a ɛ Παράδειγµα (2/5) Αφαιρούµε τον ɛ-κανόνα, ɛ. 0 a a ɛ Αφαιρούµε το µοναδιαίο κανόνα,. 0 a a 0 a a 0 a a Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 17 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 18 / 36 Παράδειγµα (3/5) Παράδειγµα (4/5) Αφαιρούµε το µοναδιαίο κανόνα, 0. 0 a a Αφαιρούµε το µοναδιαίο κανόνα,. 0 a a a a 0 0 a a a a a a a a b Αφαιρούµε το µοναδιαίο κανόνα,. 0 a a a a b Μεταγραφή Εναποµείναντων Κανόνων 0 a a a a a a 0 γίνεται: 0 1 και 1 0 a γίνεται: 0 U και U a Οι υπόλοιποι κανόνες µπορούν να µεταγραφούν χωρίς προσθήκη επιπλέον µεταβλητών. Μπορούν να χρησιµοποιηθούν επιπλέον σύµβολα (για αποφυγή σφαλµάτων). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 19 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 20 / 36

Παράδειγµα (5/5) Παράδειγµα Η CFG των «ορθών παρενθέσεων»:, (), ɛ Αποτέλεσµα Μεταγραφής Εναποµείναντων Κανόνων: 0 1 U a 1 U a 1 U a 1 U a Εισάγουµε νέα αρχική µεταβλητή 0 και τον κανόνα 0. Απαλείφουµε τον κανόνα ɛ, εισάγοντας επιπλέον τους κανόνες: (αυτός ϑα αγνοηθεί), (), 0 ɛ εν υπάρχουν «µοναδιαίοι» κανόνες (εκτός του 0 ). Μεταγράφουµε τον κανόνα () σε: ( 1, 1 ) Τελική γραµµατική: { 0 ɛ, LR, L 1, 1 R, L (, R ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 21 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 22 / 36 Αλγόριθµος υναµικού Προγραµµατισµού Αλγόριθµος υναµικού Προγραµµατισµού Εστω γραµµατική G χωρίς συµφραζόµενα Η κανονική µορφή Chomsky επιτρέπει να αποφασίζουµε αν w L(G). Με αλγόριθµο πολυωνυµικού χρόνου. Αν δίνεται λέξη w = a 1 a 2... a n : Ο αλγόριθµος «αναλύει» κάθε δυνατή υπολέξη της w. Για κάθε s = 1,..., n 1 και για κάθε i = 1,..., n s: N[i, i + s] είναι σύνολο συµβόλων που µπορούν να παράγουν την: a i,..., a i+s Ο αλγόριθµος υπολογίζει όλα τα σύνολα N[i, i + s]. Ξεκινώντας από τις µικρότερες δυνατές υπολέξεις a i,..., a i+s. 1. για i := 1 έως n: N[i, i] := { i } (όπου i a i ) όλα τα υπόλοιπα σύνολα N[, ] είναι αρχικά 2. για s := 1 έως n 1 2.1 για i := 1 έως n s 2.1.1 για k := 1 έως i + s 1 αν C R µε: N[i, k] και C N[k + 1, i + s] τότε N[i, i + s] := N[i, i + s] { } 3. αν N[1, n] επίστρεψε true 4. επίστρεψε false Πολυπλοκότητα: O(n 3 G ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 23 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 24 / 36

Παράδειγµα Εκτέλεσης Για τη λέξη ( ( ) ( ( ) ) ) της G: {, LR, L1, 1 R, L (, R ) 1 2 3 4 5 6 7 8 1 {L} {} 2 {L} {} {} { 1 } 3 {R} 4 {L} {} { 1 } 5 {L} 1 6 {R} 7 {R} 8 {R} Ποσοτικά Μεγέθη στα Συντακτικά έντρα Για δεδοµένη Γραµµατική χωρίς Συµφραζόµενα G: Εύρος (fanout): φ(g) = max πλήθος συµβόλων στα δεξιά κάθε κανόνα. Μονοπάτι σε Συντακτικό έντρο: συνδέει τη ϱίζα µε κόµβο ϕύλλο (αρχικό µη τερµατικό σύµβολο στη ϱίζα, τερµατικό στο ϕύλλο). Υψος Συντακτικού έντρου: µήκος µακρύτερου µονοπατιού. Κάθε συντακτικό δέντρο της G µε ύψος h παράγει λέξη µήκους φ(g) h. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 25 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 26 / 36 Ενα Λήµµα Αντλησης για CFLs (1η Εκδοχή) Ενα Λήµµα Αντλησης για CFLs (2η Εκδοχή) Πιο παρόµοιο µε το Λήµµα Αντλησης για Κανονικές Γλώσσες Για κάθε Γραµµατική χωρίς Συµφραζόµενα G = (V, Σ, R, ): Για κάθε Γραµµατική χωρίς Συµφραζόµενα G = (V, Σ, R, ): Εστω οποιαδήποτε λέξη w L(G) µε µήκος w > φ(g) V Σ. Η w µπορεί να γραφεί στη µορφή w = u v x y z, έτσι ώστε: είτε v > 0, είτε y > 0 u v n x y n z L(G) για κάθε n 0. Υπάρχει αριθµός p τέτοιος ώστε για κάθε λέξη w L(G) µε w p: (εδώ παρατηρούµε ότι p = 1 + φ(g) V Σ ) Η w µπορεί να γραφεί στη µορφή w = u v x y z, έτσι ώστε: είτε v > 0, είτε y > 0 (ισοδύναµα, vy > 0) v x y p u v n x y n z L(G) για κάθε n 0. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 27 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 28 / 36

Παραδείγµατα Παράδειγµα 1 Η γλώσσα { a n b n c n n 0 } δεν είναι χωρίς Συµφραζόµενα Οι παρακάτω γλώσσες δεν είναι χωρίς Συµφραζόµενα: 1. { a n b n c n n 0 }. 2. { a n ο n 1 είναι πρώτος }. 3. { w {a, b, c} η w έχει ίσο πλήθος a, b, c }. 4. { a i b j c k i j k } 5. { ww w {0, 1} } Επιλέγουµε οποιαδήποτε λέξη w = a n b n c n, µε n φ(g) V Σ /3. Τότε εµφανώς, είναι w φ(g) V Σ. Από το Λήµµα της Αντλησης, η w γράφεται σαν w = u v x y z, ώστε: είτε v > 0, είτε y > 0, u v n x y n z L(G) για κάθε n 0. Αν όλα τα a, b, c εµφανίζονται στην v y, τότε: είτε η v είτε η y περιέχει τουλάχιστον δύο από τα σύµβολα. Τότε όµως η u v 2 x y 2 z έχει τα σύµβολα της γλώσσας σε λάθος σειρά. Αν κάποια (όχι όλα) από τα a, b, c εµφανίζονται στην v y, τότε η u v 2 x y 2 z έχει διαφορετικό πλήθος a, b, c. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 29 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 30 / 36 Παράδειγµα 2 Παράδειγµα 3 Η γλώσσα { a n ο n 1 είναι πρώτος } δεν είναι χωρίς Συµφραζόµενα Εστω G η CFG που παράγει τη γλώσσα. Επιλέγουµε πρώτο αριθµό p > φ(g) V Σ και λέξη w = a p. Από το Λήµµα της Αντλησης η w γράφεται σαν a p είτε v > 0, είτε y > 0, u v n x y n z L(G) για κάθε n 0. Εστω v y = a q και u x z = a r όπου q + r = p. = u v x y z, ώστε: Επειδή u v n x y n z L(G), έπεται ότι ο q + r n είναι πρώτος, για κάθε n 0 (!!!!) ΑΤΟΠΟ Η γλώσσα = { w {a, b, c} η w έχει ίσο πλήθος a, b, c } δεν είναι χωρίς Συµφραζόµενα Εστω ότι η δεδοµένη γλώσσα είναι χωρίς συµφραζόµενα. Τότε, η τοµή της µε κανονική γλώσσα ϑα είναι χωρίς συµφραζόµενα. Αρα, η L = { a n b n c n n 0 } είναι χωρίς συµφραζόµενα, διότι: ΑΤΟΠΟ L = { w w L(a b c ) } Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 31 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 32 / 36

Παράδειγµα 4 Παράδειγµα 5 (α) Η γλώσσα { a i b j c k 0 i j k } δεν είναι CFL. Με τη 2η εκδοχή του Λήµµατος Αντλησης (υπάρχει ελάχιστο µήκος p... ) Επιλέγουµε τη λέξη s = a p b p c p και τη γράφουµε σαν s = u v x y z. Τότε: u v > 0 και v x y p u v n x y n z ανήκει στη γλώσσα n 0. Αν v ή y έχουν > 1 είδος συµβόλου, η uv 2 xy 2 z δεν ανήκει στη γλώσσα. Αν «µας λείπει» το a: η uv 0 xy 0 z = uxz έχει λιγότερα b ή/και c από a. Αν «µας λείπει» το b: κάποια από τις v, y ϑα έχει a ή c. Αν υπάρχει a, η uv 2 xy 2 z έχει περισσότερα a από b. Αν υπάρχει c, η uv 0 xy 0 z έχει περισσότερα b από c. Η γλώσσα { w w w {0, 1} } δεν είναι CFL. Με τη 2η εκδοχή του Λήµµατος Αντλησης (υπάρχει ελάχιστο µήκος p... ) Θα µπορούσαµε να επιλέξουµε τη λέξη 0 p 10 p 1, που ανήκει στη γλώσσα. Οµως, αυτή επιδέχεται διαίρεση u v x y z που «δουλεύει»: 0 p 1 0 p 1 {}}{{}}{}{{} 0 0 0... }{{} 0 }{{} 1 }{{} 0 0} 0 0. {{.. 0 0 0 1} u v x y z Αν «µας λείπει» το c: η uv 2 xy 2 z έχει περισσότερα a από b ή b από c. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 33 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 34 / 36 Παράδειγµα 5(ϐ) Οι CFLs δεν είναι κλειστές ως προς Τοµή / Συµπλήρωµα Επιλέγουµε τη λέξη s = 0 p 1 p 0 p 1 p Θα πρέπει να µπορούµε να τη γράψουµε ως: s = u v x y z ώστε: u v > 0 και v x y p u v n x y n z ανήκει στη γλώσσα n 0. Θα πρέπει η v x y να εκτείνεται πέρα από «τα µισά» της s ιαφορετικά, η u v 2 x y 2 z δεν είναι µορφής w w. Οµοίως, η v x y δε µπορεί να είναι εξ ολοκλήρου στο 2ο µισό της s. Τότε όµως, επειδή v x y p, η u v n x y n z έχει µορφή: 0 p 1 i 0 j 1 p Οι παρακάτω γλώσσες είναι χωρίς συµφραζόµενα (είναι;): L 1 = { a n b n c m m, n 0 }, L 2 = { a m b n c n m, n 0 } Θεωρούµε την L = { a n b n c n m, n 0 }. Αν η τοµή των CFLs είναι CFL, τότε η L ϑα είναι CFL, διότι: L = L 1 L 2 ΑΤΟΠΟ (από προηγούµενο παράδειγµα). Αν το συµπλήρωµα µιας CFL είναι CFL, τότε η L ϑα είναι CFL, διότι: Τα i και j δε γίνεται να είναι ίσα µε p, άρα δεν ανήκει στη γλώσσα. ΑΤΟΠΟ ΑΤΟΠΟ L = L 1 L 2 = L1 L2 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 35 / 36 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Γλώσσες χωρίς Συµφραζόµενα 36 / 36