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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

aab aabb aaabb aaaabb aaaabb aaaabb

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Απάντηση: (func endfunc)-([a-za-z])+

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

Περιεχόμενα Τι περιγράφει ένα ΣΔ ΣΔ και παραγωγές Θεωρία Υπολογισμού Ενότητα 15: Συντακτικά Δέντρα Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Π.

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

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

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

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

Θέματα υπολογισμού στον πολιτισμό

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

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

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

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

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

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

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

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

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

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

CSC 314: Switching Theory

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

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

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

Κεφάλαιο 2: Τυπικές γλώσσες

4.3 Ορθότητα και Πληρότητα

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

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

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

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

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

Στοιχεία Θεωρίας Γλωσσών. (συνέχεια) (συνέχεια) Πέμπτη 27 Οκτωβρίου 2016 Θεόδωρος Τζουραμάνης Επίκουρος Καθηγητής

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

Ασκήσεις μελέτης της ενότητας «Συντακτική Ανάλυση»

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

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

Έστω συμβολοσειρά Το σύνολο FIRST περιέχει τα τερματικά σύμβολα από τα οποία αρχίζουν οι συμβολοσειρές που παράγονται από την

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

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

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

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

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

Transcript:

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

Ασυμφραστικές Γλώσσες Στην προηγούμενη ενότητα παρατηρήσαμε ότι υπάρχουν γλώσσες οι οποίες δεν είναι κανονικές. Δεν μπορούν να τύχουν περιγραφής από κανονικές εκφράσεις Δεν υπάρχει πεπερασμένο αυτόματο που να τις αναγνωρίζει Παράδειγμα μη κανονική γλώσσας: Β ={0 k 1 k k 0} Υπάρχει δυνατότερο υπολογιστικό μοντέλο που να μπορεί να αναγνωρίζει μη κανονικές γλώσσες όπως την Β; Ναι! Οι ασυμφραστικές γλώσσες ιδιότητες με αναδρομικό χαρακτήρα Περιγραφή: Ασυμφραστικές Γραμματικές Μηχανή: Αυτόματα με στοίβα Εφαρμογές: σχεδίαση και μετάφραση γλωσσών προγραμματισμού συντακτική ανάλυση προγραμμάτων ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-2

Ασυμφραστικές Γραμματικές Ασυμφραστικές γραμματικές (context-free grammars, CFG) Συλλογή κανόνων για την παραγωγή λέξεων Κανόνας αντικατάστασης / κανόνας παραγωγής: S w S: μεταβλητή w: λέξη, αποτελεί συναρμογή μεταβλητών και τερματικών σύμβολων Παράδειγμα: S asa (1) S T (2) T # (3) Κανόνες παραγωγής S, T: μεταβλητές (μη τερματικά σύμβολα) a, #: τερματικά σύμβολα Εναρκτήρια Μεταβλητή: μεταβλητή πρώτου κανόνα 4 ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-3

Παραγωγή Λέξεων Μια γραμματική μας επιτρέπει να παραγάγουμε λέξεις. Βήματα παραγωγής λέξης: 1. Γράφουμε την εναρκτήρια μεταβλητή 2. Επιλέγουμε ένα μη-τερματικό σύμβολο που υπάρχει στη λέξη που έχουμε γραμμένη και το αντικαθιστούμε με το δεξί μέλος ενός κανόνα που αναφέρεται στο σύμβολο αυτό. 3. Επαναλαμβάνουμε το 2 μέχρις ότου η λέξη να περιέχει μόνο τερματικά σύμβολα. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-4

Παραγωγή Λέξεων Έστω η ασυμφραστική γραμματική S asa (1) S T (2) T # (3) Για την εναρκτήρια μεταβλητή έχουμε (ανάμεσα σε άλλα): S asa από τον κανόνα παραγωγής (1) Μετασχηματισμοί μπορούν να εφαρμοστούν και στο εσωτερικό μιας λέξης χρησιμοποιώντας τους κανόνες: asa ata από τον κανόνα παραγωγής (2) aτa a#a από τον κανόνα παραγωγής (3) Συμβολισμός:S a#a Το S μπορεί να μετασχηματιστεί στη λέξη a#a σε ένα ή περισσότερα βήματα. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-5

Παραδείγματα Έστω η ασυμφραστική γραμματική S asa (1) S T (2) T # (3) S asa από τον κανόνα παραγωγής (1) aasaa από τον κανόνα παραγωγής (1) aataa από τον κανόνα παραγωγής (2) aa#aa από τον κανόνα παραγωγής (3) Άρα η S παράγει τη λέξη aa#aa S T από τον κανόνα παραγωγής (2) # από τον κανόνα παραγωγής (3) Άρα η S παράγει τη λέξη # Οι λέξεις που παράγει η S είναι οι {a n #a n n 0} ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-6

Συντακτικά Δέντρα (parse tree) Η παραγωγή οποιασδήποτε λέξης μπορεί να τύχει αναπαράστασης ως ένα συντακτικό δένδρο: Ρίζα του δέντρου είναι η εναρκτήρια μεταβλητή Παιδιά κάθε εσωτερικού κόμβου είναι τα σύμβολα (τερματικά ή μη) με τα οποία το αντικαθιστούμε: S S asa aasaa a S a aataa aa#aa a S a T # ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-7

Ασυμφραστικές Γραμματικές Ορισμοί ΟΡΙΣΜΟΣ Ασυμφραστική Γραμματική είναι μια τετράδα (V, Σ, R, S) όπου 1. V είναι ένα σύνολο μεταβλητών, 2. Σ είναι ένα αλφάβητο τερματικών συμβόλων 3. R V (Σ V) * είναι το σύνολο κανόνων 4. S V είναι η αρχική μεταβλητή ΟΡΙΣΜΟΣ Οι γλώσσες που παράγονται από ασυμφραστικές γραμματικές ονομάζονται ασυμφραστικές γλώσσες (context free languages). ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 3-8

Έστω Τυπικός ορισμός παραγωγής λέξεων u, v, w λέξεις από μεταβλητές και τερματικά σύμβολα Α w κανόνας της γραμματικής Τότε Η λέξη uav αποδίδει τη λέξη uwv. Αυτή την εφαρμογή του κανόνα τη συμβολίζουμε ως uav uwv Η λέξη u παράγει τη λέξη v αν η u μπορεί να μετασχηματιστεί στη v σε μηδέν ή περισσότερα βήματα: u u 1 u 2... u k v Αυτή τη διαδοχική εφαρμογή κανόνων τη συμβολίζουμε ως u v Γλώσσα της γραμματικής G είναι το σύνολο L(G) = {w Σ * S w} ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-9

Συγχώνευση Κανόνων Μπορούμε να συγχωνεύσουμε όλους τους κανόνες που έχουν στο αριστερό τους μέλος την ίδια μεταβλητή μέσω του συμβόλου. Παράδειγμα: Αν Α 0Α1 και Α Β τότε γράφουμε Α 0Α1 Β ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-10

Παραδείγματα Παράδειγμα 1: G 1 = ({S}, {a, b}, R, S) όπου R το σύνολο των κανόνων S asb SS ε L(G 1 ) = {(a k b k ) * k 0} Παράδειγμα 2: G 2 = ( { ΕΚΦΡΑΣΗ, ΟΡΟΣ, ΠΑΡΑΓΟΝΤΑΣ }, { a, +,, (, ) }, R, ΕΚΦΡΑΣΗ ) και R οι κανόνες: ΕΚΦΡΑΣΗ ΕΚΦΡΑΣΗ + ΟΡΟΣ ΟΡΟΣ ΟΡΟΣ ΟΡΟΣ ΠΑΡΑΓΟΝΤΑΣ ΠΑΡΑΓΟΝΤΑΣ ΠΑΡΑΓΟΝΤΑΣ ( ΕΚΦΡΑΣΗ ) a L(G 2 ) =? ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-11

Σχεδίαση Ασυμφραστικών Γραμματικών Κατασκευή γραμματικής για σύνθετη γλώσσα Διαιρούμε τη γραμματική σε απλούστερα μέρη Κατασκευάζουμε μια γραμματική για κάθε μέρος Προσθέτουμε τον κανόνα S S 1 S 2 S n όπου S i το εναρκτήριο σύμβολο για κάθε μια από τις επιμέρους γραμματικές ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-12

Σχεδίαση CFG για ειδικές περιπτώσεις Γραμματική για κανονική γλώσσα για την οποία είναι γνωστό το αυτόματο που την αναγνωρίζει: Για κάθε κατάσταση q i εισάγουμε ένα μη τερματικό σύμβολο R i Για κάθε σύμβολο του αλφάβητου, εισάγουμε ένα τερματικό σύμβολο Για κάθε μετάβαση δ(q i, a) = q j εισάγουμε ένα κανόνα της μορφής R i ar j Για κάθε κατάσταση αποδοχής q i εισάγουμε τον κανόνα R i ε Εναρκτήρια κατάσταση η R 0 όπου q 0 η εναρκτήρια κατάσταση του αυτομάτου ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-13

Σχεδίαση CFG για ειδικές περιπτώσεις Αλληλένδετες υπολέξεις Εμφάνιση μιας υπολέξης με βάση πόσες φορές εμφανίζεται μια δεύτερη υπολέξη, π.χ. {0 k 1 k k 0} Χρησιμοποιούμε κανόνες της μορφής R urv Όπου u η πρώτη υπολέξη, και v η υπολέξη που εξαρτάται από την u Αναδρομικές Δομές Εμφανίζονται ως τμήματα άλλων δομών ή ακόμη και του εαυτού τους, π.χ. ΕΚΦΡΑΣΗ ΕΚΦΡΑΣΗ + ΟΡΟΣ ΟΡΟΣ ΟΡΟΣ ΟΡΟΣ ΠΑΡΑΓΟΝΤΑΣ ΠΑΡΑΓΟΝΤΑΣ ΠΑΡΑΓΟΝΤΑΣ ( ΕΚΦΡΑΣΗ ) a ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-14

Παραδείγματα Παράδειγμα 1: Γλώσσα: L = {a m b n : m n} Γραμματική: G = (V,, R, S ) V = {S} = {a, b} R = { S asb, S as, S ε} Παράδειγμα 2: Γλώσσα: L={1 n #0 n ##: n > 0} Γραμματική: G = (V,, R, S ) V = {S, A} = {1, 0, #} R = { S A##, A 1B0, B 1B0 B # } ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-15

Παράδειγμα 3 Σχεδιάστε μια ασυμφραστική γραμματική για το συμπλήρωμα της γλώσσας L = {a k b k k 0} Μια λέξη ανήκει στην L αν Όλα τα a πριν από τα b a = b Μια λέξη ανήκει στο συμπλήρωμα της L αν ισχύει τουλάχιστον ένα από τα πιο κάτω: Υπάρχει a μετά από b (i) a > b (ii) a < b (iii) Θα φτιάξουμε τρεις γραμματικές για τις τρεις περιπτώσεις. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-16

Παράδειγμα 3 (συν.) Ξεκινούμε με την περίπτωση (i). Προσπάθεια 1: S SbaS S a S b S ε H γλώσσα παράγει κάθε λέξη στην οποία υπάρχει a μετά από κάποιο b; Όχι. Για παράδειγμα αδυνατεί να παραγάγει την aabba Ας κτίσουμε το NFA που αναγνωρίζει τη γλώσσα: a, b a, b Χ b Υ a Ζ ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-17

Παράδειγμα 3(συν.) Μετατρέπουμε το αυτόματο σε ασυμφραστική γραμματική. a, b a, b Χ b Υ a Ζ Κανόνες που προκύπτουν: Χ ax Χ bx Χ by Y az Z az Z bz Z ε ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-18

Παράδειγμα 3(συν.) Προχωρούμε στην περίπτωση (ii): όλες οι λέξεις a m b n με m >n P apb P aq Q ε Q aq Τέλος θεωρούμε την περίπτωση (iii): όλες οι λέξεις a m b n με m < n U aub U bv V ε V bv Συνδυάζουμε τις τρεις γραμματικές μέσω μίας νέας μεταβλητής που θα παίξει τον ρόλο της αρχικής και η οποία θα μετασχηματίζεται σύμφωνα με τον κανόνα: S X P U ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-19

Πολυτροπία Πολυτροπία εμφανίζεται σε κάποια γραμματική όταν παράγει την ίδια λέξη με περισσότερους από ένα τρόπους Περισσότερα από ένα συντακτικά δέντρα Προσοχή: «περισσότερο από ένα τρόπους» δεν υπονοεί απλά δύο διαφορετικές παραγωγές Οι παραγωγές πρέπει να διαφέρουν ως προς τη δομή τους και όχι απλά ως προς τη σειρά εφαρμογής κανόνων. Για διευκόλυνση της διατύπωσης της έννοιας ορίζουμε Εξ αριστερών παραγωγή Σε κάθε βήμα αντικαθιστούμε την αριστερότερη από τις εναπομείναντες μεταβλητές ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-20

Πολυτροπία Ορισμός ΟΡΙΣΜΟΣ Για κάθε ασυμφραστική γραμματική G και για κάθε λέξη w, λέμε ότι η w παράγεται πολύτροπα στην G εάν υπάρχουν για αυτήν περισσότερες από μια εξ αριστερών παραγωγές στην G. Η G ονομάζεται πολύτροπη αν παράγει κάποια λέξη πολύτροπα. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-21

Παράδειγμα Πολυτροπίας Έστω η γραμματική: Ε Ε + Ε Ε Ε (Ε) a Πως παράγεται η a + a a ; Δύο τρόποι: Ε Ε Ε Ε Ε Ε Ε Ε Ε Ε a + a a Και στη γραμματική που ακολουθεί; a + a a Ε Ε + Ο Ο Ο Ο P P P (E) a ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-22

Κανονική μορφή Chomsky ΟΡΙΣΜΟΣ Μια ασυμφραστική γραμματική G βρίσκεται σε κανονική μορφή Chomsky αν κάθε κανόνας της βρίσκεται σε μια από τις μορφές Α ΒC A a όπου a οποιοδήποτε τερματικό σύμβολο, Α οποιαδήποτε μεταβλητή, και B και C οποιεσδήποτε μεταβλητές διάφορες της εναρκτήριας S. Επιπλέον επιτρέπεται ο κανόνας S ε. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-23

CFG σε Κανονική Μορφή Chomsky ΘΕΩΡΗΜΑ Κάθε ασυμφραστική γλώσσα παράγεται από κάποια ασυμφραστική γραμματική σε κανονική μορφή Chomsky Πρέπει να δείξουμε ότι: Κάθε ασυμφραστική γραμματική μπορεί να μετατραπεί σε κανονική μορφή Chomsky. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-24

Βήματα Μετατροπής Βήμα 1: Προσθέτουμε μια νέα εναρκτήρια μεταβλητή S 0 S Βήμα 2: Απαλείφουμε όλους τους κανόνες της μορφής A ε Για κάθε κανόνα που εμφανίζεται η Α στο δεξί μέλος κάνουμε τα εξής: Για κάθε κανόνα R uav προσθέτουμε τον κανόνα R uv Αυτό γίνεται επαναληπτικά και για κάθε εμφάνιση της μεταβλητής Α. Για παράδειγμα: Αν R uavαw τότε προσθέτουμε R uvaw uavw uvw Αν R A τότε προσθέτουμε R ε Επαναλαμβάνουμε τα βήματα μέχρι να απαλειφθούν όλοι οι κανόνες ε. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-25

Βήματα Μετατροπής Βήμα 3: Απαλείφουμε τους μοναδιαίους κανόνες Α Β Για κάθε κανόνα Β u προσθέτουμε τον κανόνα Α u Βήμα 4: Μεταγράφουμε τους υπόλοιπους κανόνες ως εξής: Αντικαθιστούμε κάθε κανόνα της μορφής: Α u 1 u 2 u 3 u k, k 3 όπου u i τερματικό σύμβολο ή μεταβλητή, με τους κανόνες Για κάθε κανόνα της μορφής Α u 1 u 2 όπου κάποιο u i είναι τερματικό τότε αντικαθιστούμε στον κανόνα το u i από μία καινούρια μεταβλητή U i και προσθέτουμε τον κανόνα U i u i ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-26

Παράδειγμα Να μεταγάγετε την πιο κάτω ασυμφραστική γραμματική σε κανονική μορφή Chomsky. S ASA ab A B S B b ε ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 4-27