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

Σχετικά έγγραφα
Σειρά Προβλημάτων 3 Λύσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Επανάληψης. Επανάληψη Εαρινό Εξάμηνο 2019 Σελίδα 1

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

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

HY 180 Λογική Διδάσκων: Δ. Πλεξουσάκης Φροντιστήριο 5

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

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

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

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

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

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

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

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

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 5: Προτασιακός Λογισμός: Κατασκευή Μοντέλων Τμήμα Επιστήμης Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

Θεωρία Υπολογισμού. Ασκήσεις. Δρ. Τζάλλας Αλέξανδρος, Καθηγητής Εφαρμογών. Τμ. Μηχανικών Πληροφορικής Τ.Ε.

CSC 314: Switching Theory

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

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

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

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

Transcript:

Σειρά Προβλημάτων 3 Λύσεις Άσκηση 1 Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) {0 n 1 n n > 0} {0 n 1 2n n > 0} (β) {w {a,b} * η w ξεκινά και τελειώνει με το ίδιο σύμβολο και περιέχει τον ίδιο αριθμό από a και b} (γ) {a i b j c k i,j,k 0 και i = j ή j = k} Λύση: (α) Θα δημιουργήσουμε δύο ξεχωριστές γραμματικές για κάθε μια από τις συνιστώσες της γλώσσας: Γραμματική για τη γλώσσα {0 n 1 n n > 0} P 0P1 01 Γραμματική για τη γλώσσα {0 n 1 2n n > 0} T 0Τ11 011 Στη συνέχεια θα συνδέσουμε τις δύο γραμματικές μέσω μιας αρχική μεταβλητής: S P T (β) Ξεχωρίζουμε δύο περιπτώσεις: είτε η λέξη ξεκινά και τελειώνει με a είτε με b. S apa bqb Έστω ότι η λέξη ξεκινά και τελειώνει με το σύμβολο a. Προβαίνουμε στις εξής παρατηρήσεις: 1. Αφού η λέξη ξεκινά και τελειώνει με a και έχει ίσο αριθμό από a και b, τότε η ενδιάμεση λέξη (που περιγράφεται στη γραμματική από το Ρ) θα πρέπει να περιέχει ακριβώς δύο περισσότερα b από a. 2. Επιπλέον, η ενδιάμεση λέξη πρέπει να εμφανίζει το μοτίβο bb. (γιατί;) 3. Τέλος, η ενδιάμεση λέξη πρέπει να περιέχει εμφάνιση του μοτίβου bb σε κάποιο σημείο όπου τόσο η αριστερή όσο και η δεξιά υπολέξη να περιέχουν ισάριθμα a και b. (γιατί;;) Παρόμοιες παρατηρήσεις μπορούν να γίνουν και για την περίπτωση όπου η λέξη ξεκινά και τελειώνει με b. Επομένως, ορίζουμε: S apa bqb περιγράφει λέξεις που αρχίζουν και τελειώνουν με το ίδιο σύμβολο P R bb R περιγράφει λέξεις με 2 συνεχόμενα b Q R aa R R ε a R b b R a b Q b a P a περιγράφει λέξεις με 2 συνεχόμενα a περιγράφει τις λέξεις με ίσο αριθμό από a και b Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 1

(γ) Θα δημιουργήσουμε δύο ξεχωριστές γραμματικές για κάθε μια από τις επιμέρους συνιστώσες της γλώσσας: Γραμματική για τη γλώσσα {a i b j c k i,j,k 0 και i = j} P QR Q aqb ε R cr ε Γραμματική για τη γλώσσα {a i b j c k i,j,k 0 και j = k} S TU T at ε U buc ε Γραμματική για τη γλώσσα {a i b j c k i,j,k 0 και i = j ή j = k} A P S Άσκηση 2 Να κτίσετε αυτόματα στοίβας για τις πιο κάτω γλώσσες: (α) {w {a,b} * η w ξεκινά και τελειώνει με το ίδιο σύμβολο και περιέχει τον ίδιο αριθμό από a και b} (β) { w w {a,b,#} * και η w περιέχει τόσα ab όσα και ba} (γ) {w w {a,b} *, και δεν υπάρχει λέξη x τέτοια ώστε w = xx} Λύση (α) Ακολουθεί το ζητούμενο αυτόματο. a,a aa b,b bb a,b ε b,a ε a,$ a$ b,$ b$ 3 1 ε, ε $ 2 5 ε, $ ε 6 4 a,a aa b,b bb a,b ε b,a ε a,$ a$ b,$ b$ Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 2

Ξεκινώντας, το αυτόματο τοποθετεί το $ στη στοίβα έτσι ώστε να αναγνωρίζει ότι η στοίβα είναι κενή. Στη συνέχεια διακλαδώνεται σε δύο μονοπάτια σύμφωνα με το πρώτο σύμβολο που διαβάζει στην είσοδο. Ας θεωρήσουμε το πάνω μονοπάτι όπου το πρώτο σύμβολο που διαβάστηκε από την είσοδο είναι το a. Σε αυτή την περίπτωση το αυτόματο θα αποδεχτεί μια λέξη μόνο αν αυτή τερματίζει σε a (μονοπάτι (3,5,6)). Επιπλέον, τοποθετεί το a στη στοίβα και στη συνέχεια διαβάζει τα επόμενη σύμβολα της λέξης με βάση τους εξής κανόνες: Αν το σύμβολο που διαβάστηκε είναι όμοιο με αυτό που βρίσκεται στην κορυφή της στοίβας τότε εισάγουμε ξανά τον κόμβο κορυφής της στοίβας όπως επίσης και το νέο σύμβολο. Αν το σύμβολο που διαβάστηκε είναι ανόμοιο με αυτό που βρίσκεται στην κορυφή της στοίβας κάνουμε Pop τη στοίβα «ακυρώνοντας» με αυτό τον τρόπο τα δύο σύμβολα. Αν ο κόμβος κορυφής είναι το $, τότε εισάγουμε ξανά το $ όπως επίσης και το νέο σύμβολο. Παρατηρούμε ότι ο ρόλος της στοίβας είναι να φυλάει ανά πάσα στιγμή τα σύμβολα που έχουν διαβαστεί και δεν έχουν «ακυρωθεί». Το αυτόματο τερματίζει εφόσον από την κατάσταση 3 διαβάσει το σύμβολο a από την είσοδο ακυρώνοντας ένα b από τη στοίβα και οδηγείται στην κατάσταση όπου η στοίβα είναι κενή ($ στην κορυφή). Με παρόμοιο τρόπο λειτουργεί και το μονοπάτι 2,4,5,6. Σημείωση: Στην περιγραφή του αυτομάτου έχουμε χρησιμοποιήσει τη συντομογραφία s,a w όπου το w είναι συμβολοσειρά και όχι σύμβολο. Οι μεταβάσεις αυτές μπορούν να απαλειφθούν με τον γνωστό τρόπο (Διαφάνειες 5 23 και 5 24 ). (β) Στην άσκηση αυτή, χρησιμοποιούμε παρόμοιες ιδέες με το προηγούμενο σκέλος. Η στοίβα χρησιμοποιείται για να μετρά το πλήθος των ab ή των ba που δεν έχουν μέχρι στιγμής ακυρωθεί: 1. Ξεκινούμε με την κενή στοίβα 2. Επαναλαμβάνουμε τα πιο κάτω βήματα μέχρι να διαβάσουμε ολόκληρη την είσοδο. 3. Διαβάζουμε ένα ένα τα σύμβολα στην είσοδο και μόλις εντοπίσουμε μια από τις συμβολοσειρές ab και ba τότε προχωρούμε σε ένα από τα βήματα 4 και 7. 4. Αν εντοπίσαμε τη συμβολοσειρά ab την τοποθετούμε στη στοίβα. 5. Για κάθε επόμενη συμβολοσειρά που εντοπίζουμε, αν αυτή είναι η ab, τότε την τοποθετούμε στη στοίβα, ενώ αν είναι η ba, τότε ακυρώνεται το ab που βρίσκεται στην κορυφή της στοίβας. 6. Αν σε κάποια στιγμή η στοίβα αδειάσει, τότε αυτό σημαίνει ότι μέχρι στιγμής έχουμε εντοπίσει ίσο αριθμό των δύο συμβολοσειρών και συνεχίζουμε από το Βήμα 2. 7. Αν εντοπίσαμε τη συμβολοσειρά ba την τοποθετούμε στη στοίβα 8. Για κάθε επόμενη συμβολοσειρά που εντοπίζουμε, αν αυτή είναι η ba, τότε την τοποθετούμε στη στοίβα, ενώ αν είναι η ab, τότε ακυρώνεται το ba που βρίσκεται στην κορυφή της στοίβας. 9. Αν σε κάποια στιγμή η στοίβα αδειάσει, τότε αυτό σημαίνει ότι μέχρι στιγμής έχουμε εντοπίσει ίσο αριθμό των δύο συμβολοσειρών. Και συνεχίζουμε από το Βήμα 2. Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 3

Ακολουθεί το ζητούμενο αυτόματο στοίβας όπου ως γλώσσα της στοίβας χρησιμοποιούμε την {$,0,1} όπου το 0 συμβολίζει τη συμβολοσειρά ab και το 1 τη συμβολοσειρά ba. #, ε ε a,ε ε #, ε ε 3 ε, $ ε 1 ε, ε $ ε, $ ε 2 a,1 11 a,0 ε a,$ 1$ 4 b,0 00 b,1 ε b,$ 0$ ε, $ ε 6 5 #, ε ε b,ε ε (γ) Μία λέξη ανήκει στη γλώσσα αν είτε (1) έχει περιττό μήκος είτε (2) έχει άρτιο μήκος και επιπλέον, για κάθε σπάσιμο της λέξης σε δύο τμήματα με περιττό μήκος, τα μεσαία σύμβολα των δύο λέξεων είναι διαφορετικά. (γιατί;!) Αυτό μπορεί να τύχει περιγραφής μέσω της πιο κάτω γραμματικής S S Odd S Even S Even XY YX X ZXZ a Y ZYZ b Z a b όπως επίσης και του πιο κάτω αυτομάτου στοίβας. S Odd ar br a b R 0S Odd 1S Odd a,# ε b,# ε a,ε # b,ε # a,ε # b,ε # 3 ε, $ $ 4 a,# ε b,# ε a,ε ε b,ε ε 1 Α ε, ε $ a,ε ε b,ε ε Β 2 a,# ε b,# ε 6 ε, $ $ a,ε # b,ε # 7 5 ε, $ ε 9 a,ε ε b,ε ε Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 4

Άσκηση 3 Να αποδείξετε ότι οι κλάση των ασυμφραστικών γλωσσών είναι κλειστή ως προς τις πράξεις της ένωσης, της συναρμογής και της σώρευσης. Λύση Θα πρέπει να δείξουμε ότι αν οι Λ 1 και Λ 2 είναι ασυμφραστικές γλώσσες τότε οι γλώσσες Λ 1 Λ 2, Λ 1 Λ 2 και Λ * 1 είναι επίσης ασυμφραστικές. Για να το πετύχουμε θα κατασκευάσουμε γραμματικές που αποδέχονται κάθε μια από αυτές τις καινούριες γλώσσες συνδυάζοντας τις γραμματικές των αρχικών γλωσσών. (Εναλλακτικά θα μπορούσαμε να δουλέψουμε με αυτόματα στοίβας.) Έστω G 1 = (V 1, Σ 1, R 1, S 1 ) και G 2 = (V 2, Σ 2, R 2, S 2 ) οι ασυμφραστικές γραμματικές που παράγουν τις Λ 1 και Λ 2 αντίστοιχα. Οι ζητούμενες γραμματικές είναι οι εξής: 1. G 1 2 = (V 1 V 2 {S}, Σ 1 Σ 2, R 1 R 2 {S S 1, S S 2 }, S). H γραμματική αυτή συνδυάζει τις δύο αρχικές γραμματικές και τις επεκτείνει με μια καινούρια αρχική μεταβλητή S η οποία επιτρέπει την παραγωγή των δύο αρχικών μεταβλητών των γραμματικών G 1 και G 2 μέσω των νέων κανόνων S S 1, S S 2. Μπορούμε να αποδείξουμε ότι η γραμματική G 1 2 παράγει τη γλώσσα Λ 1 Λ 2. Συγκεκριμένα, θα δείξουμε ότι w L(G 1 2 ) αν και μόνο αν w Λ 1 Λ 2 Έχουμε τα εξής: w L(G 1 2 ) S w S S 1 και S 1 w ή S S 2 και S 2 w S 1 w ή S 2 w w Λ 1 ή w Λ 2 w Λ 1 Λ 2 Το ζητούμενο έπεται. 2. G 12 = (V 1 V 2, Σ 1 Σ 2, R, S 1 ) όπου R = R 2 {A w R 1 w a, ε} {A S 2 A ε R 1 } {A as 2 A a R 1 } H γραμματική αυτή συνδυάζει τις δύο αρχικές γραμματικές και προσδιορίζει ως αρχική μεταβλητή την S 1. Με αυτό τον τρόπο διασφαλίζει ότι, η παραγωγή κάθε λέξης λειτουργεί αρχικά σύμφωνα με την G 1. Απομένει να υλοποιήσουμε το γεγονός ότι από τη στιγμή που θα ολοκληρωθεί μια λέξη σύμφωνα με την G 1 τότε θα πρέπει να συναρμοστεί σε αυτή μια λέξη της G 2. Για να το πετύχουμε αυτό, θα πρέπει να εντοπίσουμε κάθε κανόνα που οδηγεί σε ολοκλήρωση μιας λέξης στην G 1 και να οδηγήσουμε την παραγωγή στην αρχική μεταβλητή της G 2. Ως εκ τούτου, αντικαθιστούμε κάθε κανόνα A ε και A a της G 1 με τους κανόνες A S 2 και A a S 2. Μπορούμε να αποδείξουμε ότι η γραμματική G 12 παράγει τη γλώσσα Λ 1 Λ 2. Συγκεκριμένα, μπορούμε να δείξουμε ότι w L(G 12 ) αν και μόνο αν w Λ 1 Λ 2. 3. G 1 * = (V 1 {S}, Σ 1, R, S) όπου R = R 1 {S ε, S S 1 } {A S 1 A ε R 1 } {A as 1 A a R 1 }. Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 5

H γραμματική αυτή επεκτείνει τη G 1 με μία νέα αρχική μεταβλητή την S, η οποία (1) παράγει την κενή λέξη (S ε) και (2) οδηγεί στην αρχική μεταβλητή της G 1 (S S 1 ) επιτρέποντας με αυτόν τον τρόπο παραγωγή λέξεων σύμφωνα με την G 1. Επιπρόσθετα για να επιτευχθεί η σώρευση πολλαπλών λέξεων της G 1, εισάγει (προσοχή: εισάγει, δεν αντικαθιστά) νέους κανόνες οι οποίοι οδηγούν κάθε μονοπάτι στην αρχική μεταβλητή S 1 έτσι ώστε να επαναληφθεί η παραγωγή λέξεων. * Μπορούμε να αποδείξουμε ότι η γραμματική G 1 παράγει τη γλώσσα Λ * 1. Συγκεκριμένα, μπορούμε να δείξουμε ότι w L(G * 1 ) αν και μόνο αν w Λ * 1. Άσκηση 4 Να αποφασίσετε κατά πόσο οι πιο κάτω γλώσσες είναι ή όχι ασυμφραστικές αιτιολογώντας με ακρίβεια τις απαντήσεις σας. (α) {0 n 1 n 0 n 1 n n > 0} (β) {w w {a,b,#} * και η w είναι καρκινική} (γ) {a i b j c k i,j,k 0 και i j = k} Λύση (α) Λ 1 = {0 n 1 n 0 n 1 n n > 0} Υποθέτουμε για να φτάσουμε σε αντίφαση ότι η Λ 1 είναι ασυμφραστική. Τότε, σύμφωνα με το Λήμμα της Άντλησης, υπάρχει p, το μήκος άντλησης της γλώσσας, τέτοιο ώστε κάθε λέξη της γλώσσας με μήκος μεγαλύτερο από p να ικανοποιεί την ιδιότητα που περιγράφεται στο λήμμα. Ας επιλέξουμε τη λέξη w = 0 p 1 p 0 p 1 p και ας ονομάσουμε τα τμήματα της λέξης ως Α, Β, Γ, Δ, όπου w = ΑΒΓΔ, και Α=0 p, Β = 1 p, Γ=0 p, Δ=1 p. Τότε, σύμφωνα με το λήμμα, w = uvxyz έτσι ώστε η υπολέξη vxy περιέχει το πολύ p σύμβολα ( vxy p), τουλάχιστον μία από τις v και y να είναι μη κενή ( vy > 0) και οποιαδήποτε ταυτόχρονη επανάληψη των υπολέξεων v και y να διατηρεί την προκύπτουσα λέξη εντός της γλώσσας (uv i xy i z Λ 1, i 0). Αφού vxy p, τότε η λέξη αυτή δεν μπορεί να εκτείνεται σε περισσότερα από δύο τμήματα της λέξης. Διακρίνουμε τις πιο κάτω περιπτώσεις. Αν η vxy εκτείνεται μόνο στο τμήμα Α, τότε τα v και y θα αποτελούνται μόνο από 0. Επομένως, αν αντλήσουμε τα τμήματα v και y, η λέξη που θα προκύψει δεν θα ανήκει στη γλώσσα μας: uv 2 xy 2 z = 0 p+μ+λ 1 p 0 p 1 p Λ 1, για μ = v, λ = y. Το ίδιο επιχείρημα μπορεί να εφαρμοστεί για να δείξουμε ότι, αν η vxy εκτείνεται σε ένα από τα τμήματα Β, Γ και Δ, τότε και πάλι η λέξη δεν επιδέχεται άντλησης. Αν η vxy εκτείνεται στα δύο συνεχόμενα τμήματα Α και Β, τότε τα v και y θα αποτελούνται τόσο από 0 όσο και από 1. Επομένως, αν αντλήσουμε τα τμήματα v και y, η λέξη που θα προκύψει δεν θα ανήκει στη γλώσσα μας αφού τα δύο πρώτα τμήματα θα περιέχουν περισσότερα σύμβολα από τα Γ και Δ. Το ίδιο επιχείρημα μπορεί να εφαρμοστεί δείχνοντας ότι αν η vxy εκτείνεται σε κάποια άλλα συνεχόμενα τμήματα (Β και Γ ή Γ και Δ), τότε, και πάλι, η λέξη δεν θα επιδέχεται άντλησης. Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 6

Αυτό μας οδηγεί σε αντίφαση και επομένως η υπόθεσή μας ότι η γλώσσα Λ 1 είναι ασυμφραστική ήταν εσφαλμένη. Συμπέρασμα: Η Λ 1 είναι μη ασυμφραστική. (β) Λ 2 = {w w {a,b,#} * και η w είναι καρκινική} H γλώσσα Λ 2 είναι ασυμφραστική. Ακολουθεί γραμματική που την παράγει. S a S a b S b # S # ε a b # (γ) Λ 3 ={a i b j c k i,j,k 0 και i j = k} Υποθέτουμε για να φτάσουμε σε αντίφαση ότι η Λ 3 είναι ασυμφραστική. Τότε, σύμφωνα με το Λήμμα της Άντλησης, υπάρχει p, το μήκος άντλησης της γλώσσας, τέτοιο ώστε κάθε λέξη της γλώσσας με μήκος μεγαλύτερο από p να ικανοποιεί την ιδιότητα που περιγράφεται στο λήμμα. Ας επιλέξουμε τη λέξη w =. Τότε, σύμφωνα με το λήμμα, w = uvxyz έτσι ώστε η υπολέξη vxy περιέχει το πολύ p σύμβολα ( vxy p), τουλάχιστον μία από τις v και y να είναι μη κενή ( vy > 0) και οποιαδήποτε ταυτόχρονη επανάληψη των υπολέξεων v και y να διατηρεί την προκύπτουσα λέξη εντός της γλώσσας (uv i xy i z Λ 1, i 0). Αφού vxy p, τότε η λέξη αυτή δεν μπορεί να εκτείνεται σε περισσότερα από δύο τμήματα της λέξης. Διακρίνουμε τις πιο κάτω περιπτώσεις. Αν η vxy εκτείνεται μόνο στο τμήμα, τότε τα v και y θα αποτελούνται μόνο από a. Επομένως, αν αφαιρέσουμε τα τμήματα v και y, η λέξη που θα προκύψει δεν θα ανήκει στη γλώσσα μας: w = uv 0 xy 0 z = όπου λ = v, μ = y και προφανώς w Λ 3. Το ίδιο επιχείρημα μπορεί να εφαρμοστεί δείχνοντας ότι αν η vxy περιέχει μόνο b ή μόνο c, τότε η λέξη δεν θα επιδέχεται άντλησης. Αν η vxy εκτείνεται στα δύο συνεχόμενα τμήματα και, τότε τα v και y θα αποτελούνται τόσο από a όσο και από b. Επομένως, αν αφαιρέσουμε τα τμήματα v και y, η λέξη που θα προκύψει, w = uv 0 xy 0 z, δεν θα ανήκει στη γλώσσα μας αφού τα δύο πρώτα τμήματα θα περιέχουν λιγότερα σύμβολα ενώ το τρίτο τμήμα θα εξακολουθεί να περιέχει p 2 c. Το ίδιο επιχείρημα μπορεί να εφαρμοστεί δείχνοντας ότι αν η vxy εκτείνεται στα συνεχόμενα τμήματα και τότε, και πάλι, η λέξη δεν θα επιδέχεται άντλησης. Αυτό μας οδηγεί σε αντίφαση και επομένως η υπόθεσή μας ότι η γλώσσα Λ 3 είναι ασυμφραστική ήταν εσφαλμένη. Συμπέρασμα: Η Λ 3 είναι μη ασυμφραστική. Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 7

Άσκηση 5 (Προαιρετική) Θεωρείστε την πιο κάτω ασυμφραστική γραμματική: E E + E E E E E E^E (E) C C a b c (α) Να δείξετε ότι η γραμματική αυτή είναι πολύτροπη. (β) Να προτείνετε ισοδύναμη μονότροπη γραμματική. Δηλαδή, να προτείνετε μια καινούρια γραμματική η οποία να παράγει ακριβώς την ίδια γλώσσα με τη δοθείσα γραμματική με τη διαφορά ότι ενώ η δοθείσα γραμματική δυνατόν να παράγει κάποιες λέξεις πολύτροπα η καινούρια να τις παράγει μονότροπα. Η μονότροπη αυτή ερμηνεία της γλώσσας που θα προτείνετε θα πρέπει να ακολουθεί τη γνωστή σειρά προτεραιότητας των αριθμητικών πράξεων ακόμη και όταν δεν υπάρχουν παρενθέσεις. Για παράδειγμα, η λέξη a + b c είναι ισοδύναμη με την a + (b c) και όχι με την (a + b) c ενώ η λέξη a^b c είναι ισοδύναμη με την (a^b) c και όχι με την a^(b c). Λύση (α) Για να δείξουμε ότι γραμματική είναι πολύτροπη είναι αρκετό να δείξουμε ότι υπάρχει λέξη που παράγεται από τη γραμματική και η οποία μπορεί να παραχθεί μέσω περισσότερης από μίας εξ αριστερών παραγωγή. Μία τέτοια λέξη είναι η a + b c η οποία παράγεται μέσω των δύο πιο κάτω συντακτικών δέντρων. Ε Ε E + Ε Ε E a E E E + E c b c a b (β) Ισοδύναμη μονότροπη γραμματική είναι η πιο κάτω. S S + T P P P E E E E D D D D ^ F F F (E) a b c Σημείωση: Για όλες σχεδόν τις ασκήσεις αυτής της σειράς ασκήσεων υπάρχουν περισσότερες από μία ορθές απαντήσεις. Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2012 Σελίδα 8