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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λύσεις Σειράς Ασκήσεων 5

Λύσεις Σειράς Ασκήσεων 5

Λύσεις 4ης Σειράς Ασκήσεων

Λύσεις Σειράς Ασκήσεων 5

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

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

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

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

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

L mma thc 'Antlhshc. A. K. Kapìrhc

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

Κεφάλαιο 5 Αξιωματική Σημασιολογία και Απόδειξη Ορθότητας Προγραμμάτων

Λύσεις Σειράς Ασκήσεων 5

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

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

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

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

Λύσεις Σειράς Ασκήσεων 5

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

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

CSC 314: Switching Theory

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

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

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

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

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

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

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

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

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

Σειρά Προβλημάτων 4 Ημερομηνία Παράδοσης: 13/11/13

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Transcript:

Άσκηση 1 Σειρά Προβλημάτων 3 Λύσεις Να δώσετε ασυμφραστικές γραμματικές που να παράγουν τις πιο κάτω γλώσσες: (α) { w {(, )} * οι παρενθέσεις στην w είναι ισοζυγισμένες } (β) { a k b m c 2m a k k > 0, m 0 } (γ) { uavb u, v {a,b} *, u = v } Λύση (α) Μια (μονότροπη) γραμματική για τη γλώσσα έχει ως εξής: S (S)S {S}S ε (β) Η πιο κάτω γραμματική χρησιμοποιεί δύο μεταβλητές, η μια έχει σαν στόχο την εισαγωγή ισάριθμων a στην αρχή και στο τέλος των λέξεων και η δεύτερη δημιουργεί τις ομάδες των b και c: S asa ata Τ btcc ε (γ) Η πιο κάτω γραμματική ξεκινά τοποθετώντας το τελικό b στις λέξεις και στη συνέχεια προσθέτει ένα σύμβολο στην αρχή και ένα σύμβολο στο τέλος της λέξης (γίνονται όλοι οι δυνατοί συνδυασμοί) ενώ ενδιάμεσα τοποθετείται ένα a: S Tb Τ ata atb bta btb a Άσκηση 2 Να κτίσετε αυτόματα στοίβας για τις πιο κάτω γλώσσες: (α) { uavb u, v {a,b} *, u = v } Λύση (α) Ακολουθεί το ζητούμενο αυτόματο: 0 ε, ε $ 1 a, ε Χ b, ε Χ a, ε ε 3 b, $ ε 2 a, X ε b, X ε Ξεκινώντας, το αυτόματο τοποθετεί το $ στη στοίβα έτσι ώστε να αναγνωρίζει ότι η στοίβα είναι κενή. Στη συνέχεια, διαβάζει 0 ή περισσότερα a και b και για κάθε ένα από αυτά Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 1

τοποθετεί στη στοίβα το σύμβολο Χ. Συνεχίζει διαβάζοντας το σύμβολο a και προχωρεί στην κατάσταση 2. Από την κατάσταση αυτή διαβάζει ένα προς ένα τα σύμβολα που ακολουθούν αφαιρώντας κάθε φορά ένα σύμβολο από τη στοίβα. Αν η στοίβα αδειάσει και το αυτόματο διαβάσει το σύμβολο b, τότε το αυτόματο προχωρεί στην κατάσταση αποδοχής. (β) { x {0,1}* σε κάθε πρόθεμα της λέξης x τα 0 είναι τουλάχιστον όσα και τα 1 } Ακολουθεί το ζητούμενο αυτόματο: 1 0, ε Χ 1, Χ ε Στο πιο πάνω αυτόματο γράφουμε στη στοίβα ένα Χ για κάθε 0 που διαβάζουμε και αφαιρούμε ένα Χ για κάθε 1 που διαβάζουμε. Ως αποτέλεσμα αυτού, ανά πάσα στιγμή, στη στοίβα υπάρχουν τόσα Χ όσα περισσότερα είναι και τα 0 από τα 1 στο πρόθεμα της λέξης που έχουμε διαβάσει μέχρι τη συγκεκριμένη στιγμή. Εάν από την (μοναδική) κατάσταση 1 του αυτομάτου, κατορθώσουμε να διαβάσουμε ολόκληρη τη λέξη μας, τότε η λέξη έχει την κατάλληλη μορφή και μπορούμε να την αποδεχτούμε. Αντιθέτως, αν το αυτόματο διαβάσει 1 και η στοίβα είναι κενή τότε θα βρεθεί σε αδιέξοδο και θα απορρίψει τη λέξη. (γ) { a i b j c k i,j,k 0 και i = j ή i = k ή j = k } Ακολουθεί το ζητούμενο αυτόματο: a, ε Χ b, Χ ε c, ε ε ε, ε ε ε, $ ε 2 3 4 a, ε ε b, ε Χ c, Χ ε 1 ε, ε $ ε, ε ε ε, ε ε 5 6 7 ε, $ ε 8 a, ε Χ 9 ε, ε ε b, ε ε c, Χ ε ε, ε ε ε, $ ε 10 11 12 Το αυτόματο αυτό ξεκινά με μια αντιαιτιοκρατική επιλογή ανάμεσα σε τρεις περιπτώσεις. Οι τρεις περιπτώσεις αντιστοιχούν (1) στην περίπτωση όπου τα a είναι ίσα σε πλήθος με τα b (μονοπάτι 2 4), (2) στην περίπτωση που τα b είναι ίσα σε πλήθος με τα c (μονοπάτι 5 8) και (3) στην περίπτωση όπου τα a είναι ίσα σε πλήθος με τα c (μονοπάτι 9 12). Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 2

Άσκηση 3 Να αποφασίσετε κατά πόσο η κλάση των ασυμφραστικών γλωσσών είναι κλειστή ως προς τις πράξεις (i) της ένωσης και (ii) της τομής, αιτιολογώντας τις απαντήσεις σας. Λύση (i) Θα δείξουμε ότι αν οι Λ 1 και Λ 2 είναι ασυμφραστικές γλώσσες τότε η γλώσσα Λ 1 Λ 2 είναι επίσης ασυμφραστική. Για να το πετύχουμε θα κατασκευάσουμε γραμματική που αποδέχεται τη Λ 1 Λ 2 συνδυάζοντας τις γραμματικές των αρχικών γλωσσών. (Εναλλακτικά θα μπορούσαμε να δουλέψουμε με αυτόματα στοίβας.) Έστω G 1 = (V 1, Σ 1, R 1, S 1 ) και G 2 = (V 2, Σ 2, R 2, S 2 ) οι ασυμφραστικές γραμματικές που παράγουν τις Λ 1 και Λ 2 αντίστοιχα. Η ζητούμενη γραμματική είναι η εξής: 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 Το ζητούμενο έπεται. (ii) Αντίθετα με την ένωση, η κλάση των ασυμφραστικών γλωσσών δεν είναι κλειστή ως προς την τομή. Για να το δείξουμε αυτό θα χρησιμοποιήσουμε αντιπαράδειγμα. Συγκεκριμένα, ας θεωρήσουμε τις γλώσσες Α = { a n b n c m n,m 0 } και Β = { a m b n c n n,m 0 } Τότε, έχουμε Α Β = Α = { a n b n c n n 0 }. H γλώσσα αυτή όμως δεν είναι ασυμφραστική (δες διαφάνεια 6 14). Ως εκ τούτου, η κλάση των ασυμφραστικών γλωσσών δεν είναι κλειστή ως προς την τομή. Άσκηση 4 Να δείξετε ότι οι πιο κάτω γλώσσες δεν είναι ασυμφραστικές αιτιολογώντας με ακρίβεια τις απαντήσεις σας. (α) Λ 1 = {a m b 2m c m m 0} Υποθέτουμε για να φτάσουμε σε αντίφαση ότι η Λ 1 είναι ασυμφραστική. Τότε, σύμφωνα με το Λήμμα της Άντλησης, υπάρχει p, το μήκος άντλησης της γλώσσας, τέτοιο ώστε κάθε Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 3

λέξη της γλώσσας με μήκος μεγαλύτερο από 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 Λ 1. Το ίδιο επιχείρημα μπορεί να εφαρμοστεί δείχνοντας ότι αν η vxy περιέχει μόνο b ή μόνο c, τότε η λέξη δεν θα επιδέχεται άντλησης. Αν η vxy εκτείνεται στα δύο συνεχόμενα τμήματα και, τότε τα v και y θα αποτελούνται τόσο από a όσο και από b. Επομένως, αν αφαιρέσουμε τα τμήματα v και y, η λέξη που θα προκύψει, w = uv 0 xy 0 z, δεν θα ανήκει στη γλώσσα μας αφού τα δύο πρώτα τμήματα θα περιέχουν λιγότερα σύμβολα ενώ το τρίτο τμήμα θα εξακολουθεί να περιέχει p c. Το ίδιο επιχείρημα μπορεί να εφαρμοστεί δείχνοντας ότι αν η vxy εκτείνεται στα συνεχόμενα τμήματα και τότε, και πάλι, η λέξη δεν θα επιδέχεται άντλησης. Αυτό μας οδηγεί σε αντίφαση και επομένως η υπόθεσή μας ότι η γλώσσα Λ 1 είναι ασυμφραστική ήταν εσφαλμένη. Συμπέρασμα: Η Λ 1 είναι μη ασυμφραστική. (β) Λ 2 = { ww R a w w {a,b} * } Υποθέτουμε για να φτάσουμε σε αντίφαση ότι η Λ 2 είναι ασυμφραστική. Τότε, σύμφωνα με το Λήμμα της Άντλησης, υπάρχει p, το μήκος άντλησης της γλώσσας, τέτοιο ώστε κάθε λέξη της γλώσσας με μήκος μεγαλύτερο από p να ικανοποιεί την ιδιότητα που περιγράφεται στο λήμμα. Ας επιλέξουμε τη λέξη w = b p a p a p b p a 2p και ας ονομάσουμε τα τμήματα της λέξης ως Α, Β,Γ,Δ,Ε, όπου w = ΑΒΓΔΕ, και Α = b p, Β = a p, Γ = a p, Δ = b p και Ε = a 2p. Τότε, σύμφωνα με το λήμμα, w = uvxyz έτσι ώστε η υπολέξη vxy περιέχει το πολύ p σύμβολα ( vxy p), τουλάχιστον μία από τις v και y να είναι μη κενή ( vy > 0) και οποιαδήποτε ταυτόχρονη επανάληψη των υπολέξεων v και y να διατηρεί την προκύπτουσα λέξη εντός της γλώσσας (uv i xy i z Λ 2, i 0). Διακρίνουμε τις πιο κάτω περιπτώσεις. Αν η vxy εκτείνεται μόνο στο τμήμα Α, τότε τα v και y θα αποτελούνται μόνο από b. Επομένως, αν αντλήσουμε τα τμήματα v και y, η λέξη που θα προκύψει δεν θα ανήκει στη γλώσσα μας: uv 2 xy 2 z = b p+μ+λ a p a p b p a 2p Λ 2, για μ = v, λ = y. Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 4

Αν η vxy εκτείνεται μόνο στο τμήμα Β, τότε τα v και y θα αποτελούνται μόνο από a. Επομένως, αν αφαιρέσουμε τα τμήματα v και y, η λέξη που θα προκύψει δεν θα ανήκει στη γλώσσα μας: uv 0 x 0 z = b p a p μ λ a p b p a 2p Λ 2, για μ = v, λ = y. Παρατηρείστε ότι ακόμα και αν το τμήμα b p a p μ λ a p b p έχει τη μορφή ww R, το το πλήθος των τελικών a δεν θα είναι το ζητούμενο. Όμοια επιχειρήματα μπορούν να εφαρμοστούν για να δείξουμε ότι, αν η vxy εκτείνεται σε ένα από τα τμήματα Γ, Δ και Ε, τότε και πάλι η λέξη δεν επιδέχεται άντλησης. Αν η vxy εκτείνεται στα δύο συνεχόμενα τμήματα Α και Β, τότε τα v και y δυνατόν να αποτελούνται από a και από b. Αν αφαιρέσουμε τα τμήματα v και y, η λέξη που θα προκύψει δεν θα ανήκει στη γλώσσα μας αφού το πλήθος των b στο τμήμα Α θα είναι μικρότερο από το πλήθος στο τμήμα Δ. Αν η vxy εκτείνεται στα δύο συνεχόμενα τμήματα Β και Γ, τότε τα v και y δυνατόν να αποτελούνται από a. Επομένως, αν αφαιρέσουμε τα τμήματα v και y, η λέξη που θα προκύψει δεν θα ανήκει στη γλώσσα μας αφού το πλήθος των a στο τμήμα Ε θα είναι μεγαλύτερο από το διπλάσιο του μήκους των τμημάτων Β και Γ. Όμοια επιχειρήματα μπορούν να εφαρμοστούν για να δείξουμε ότι αν η vxy εκτείνεται σε κάποια άλλα δύο συνεχόμενα τμήματα (Γ και Δ, Δ και Ε), τότε, και πάλι, η λέξη δεν θα επιδέχεται άντλησης. Αυτό μας οδηγεί σε αντίφαση και επομένως η υπόθεσή μας ότι η γλώσσα Λ 2 είναι ασυμφραστική ήταν εσφαλμένη. Συμπέρασμα: Η Λ 2 είναι μη ασυμφραστική. (γ) Λ 3 = { babaabaaab ba n 1 b n n 0 } Υποθέτουμε για να φτάσουμε σε αντίφαση ότι η Λ 3 είναι ασυμφραστική. Τότε, σύμφωνα με το Λήμμα της Άντλησης, υπάρχει p, το μήκος άντλησης της γλώσσας, τέτοιο ώστε κάθε λέξη της γλώσσας με μήκος μεγαλύτερο από p να ικανοποιεί την ιδιότητα που περιγράφεται στο λήμμα. Ας επιλέξουμε τη λέξη w = babaabaaab ba p 1 b p. Τότε, σύμφωνα με το λήμμα, w = uvxyz έτσι ώστε η υπολέξη vxy περιέχει το πολύ p σύμβολα ( vxy p), τουλάχιστον μία από τις v και y να είναι μη κενή ( vy > 0) και οποιαδήποτε ταυτόχρονη επανάληψη των υπολέξεων v και y να διατηρεί την προκύπτουσα λέξη εντός της γλώσσας (uv i xy i z Λ 3, i 0). Διακρίνουμε τις πιο κάτω περιπτώσεις. Αν η vxy εκτείνεται οπουδήποτε μέσα στο τμήμα baba 2 ba 3 ba 4 b ba p 1, τότε αφαίρεση των τμημάτων v και y θα έχει ως αποτέλεσμα η λέξη που θα προκύψει να μην ανήκει στη γλώσσα Λ 3 : η δομή της λέξης θα αλλάξει με τέτοιο τρόπο ώστε είτε να μην ικανοποιείται η ροή 1 b, 1 a, 1 b, 2 a, 1 b, 3 a,, είτε, το πλήθος των a στο τελευταίο τμήμα από a δεν θα είναι κατά 1 μικρότερο από το πλήθος των b. Αν η vxy εκτείνεται οπουδήποτε μέσα στο τμήμα a p 1 b p, τότε αφαίρεση των τμημάτων v και y θα έχει ως αποτέλεσμα η λέξη που θα προκύψει να μην ανήκει στη γλώσσα Λ 3 : όπως και στην προηγούμενη περίπτωση, αν τα v και y θα περιέχουν κάποια a τότε στη δομή της προκύπτουσας λέξη θα παραβιαστεί η ροή 1 b, 1 a, 1 b, 2 a, 1 b, 3 a,, ενώ, Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 5

αν τα v και y περιέχουν κάποια b τότε το πλήθος των b θα είναι μικρότερο από το αναμενόμενο. Αυτό μας οδηγεί σε αντίφαση και επομένως η υπόθεσή μας ότι η γλώσσα Λ 3 είναι ασυμφραστική ήταν εσφαλμένη. Συμπέρασμα: Η Λ 3 είναι μη ασυμφραστική. Άσκηση 5 Θεωρείστε τη γραμματική G = (V, S, Ρ, ΕΝΤΟΛΗ), όπου V = {ΕΝΤΟΛΗ, ΑΝΑΘΕΣΗ, ΕΝΤΟΛΗ ΙF, ENTOΛH IF ELSE, ΣΥΝΘΗΚΗ}, S = {if, then, else, true, false, a:=0, a:=1} και R οι πιο κάτω κανόνες. ΕΝΤΟΛΗ ΑΝΑΘΕΣΗ ΕΝΤΟΛΗ ΙF ENTOΛH IF ELSE ΕΝΤΟΛΗ ΙF ENTOLH IF ELSE ΣΥΝΘΗΚΗ true false ΑΝΑΘΕΣΗ a:=0 a:=1 if ΣΥΝΘΗΚΗ then ΕΝΤΟΛΗ if ΣΥΝΘΗΚΗ then ΕΝΤΟΛΗ else ΕΝΤΟΛΗ (α) Να δείξετε ότι η γραμματική G είναι πολύτροπη. (β) Να εντοπίσετε πρόγραμμα Ρ που να παράγεται από τη γραμματική G μέσω δύο διαφορετικών συντακτικών δέντρων, Τ 1 και Τ 2 τέτοια ώστε, αν το Ρ ερμηνευθεί με βάση το Τ 1 τότε η μεταβλητή a θα πάρει την τιμή 0, και αν το Ρ ερμηνευθεί σύμφωνα με το δέντρο Τ 2 τότε η μεταβλητή a θα πάρει την τιμή 1. (γ) Να προτείνετε μια καινούρια γραμματική που να παράγει την ίδια γλώσσα με τη G αλλά να είναι μονότροπη. Εξηγήστε σύντομα την απάντησή σας. Λύση (α) Θεωρείστε τη λέξη if true then if false then a:=0 else a:=1. Η λέξη αυτή παράγεται πολύτροπα από τη δοθείσα γραμματική. Αυτό επιβεβαιώνεται από την ύπαρξη των δύο πιο κάτω συντακτικών δέντρων για δύο διαφορετικές παραγωγές τις λέξης. Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 6

ΕΝΤΟΛΗ ΕΝΤΟΛΗ ΕΝΤΟΛΗ-IF ΕΝΤΟΛΗ-IF-ELSE if ΣΥΝΘΗΚΗ then ΕΝΤΟΛΗ if ΣΥΝΘ then E else E true ΕΝΤΟΛΗ-IF-ELSE true ΕΝΤΟΛΗ-IF ΑΝΑΘΕΣΗ if ΣΥΝΘ then E else E if ΣΥΝΘΗΚΗ then a:=1 ΕΝΤΟΛΗ false ΑΝΑΘΕΣΗ ΑΝΑΘΕΣΗ false ANAΘΕΣΗ a:=0 a:=1 a:=0 (β) Παρατηρώντας το πρόγραμμα από το μέρος (α) και υποθέτοντας ότι η αρχική τιμή του a είναι 0, βλέπουμε ότι, αν ερμηνεύσουμε το πρόγραμμα σύμφωνα με το πρώτο δένδρο, έχουμε: if true then {if false then a:=0 else a:=1} και η μεταβλητή a θα πάρει την τιμή 1. Αντίθετα, αν ερμηνεύσουμε το πρόγραμμα σύμφωνα με το δεύτερο δένδρο, έχουμε if true then {if false then a:=0} else a:=1 και η μεταβλητή a θα διατηρήσει την αρχική της τιμή, δηλαδή, a=0. (γ) Για να αφαιρέσουμε την πολυτροπία από τη γραμματική, μεταβάλλουμε τους κανόνες που αφορούν το if ως εξής: ΕΝΤΟΛΗ ΑΝΑΘΕΣΗ ΕΝΤΟΛΗ ΙF ENTOΛH IF ELSE ΕΝΤΟΛΗ ΙF if ΣΥΝΘΗΚΗ then ΕΝΤΟΛΗ ENTOLH IF ELSE if ΣΥΝΘΗΚΗ then ΕΝΤΟΛΗ else ΕΝΤΟΛΗ ΕΝΤΟΛΗ ΑΝΑΘΕΣΗ if ΣΥΝΘΗΚΗ then ΕΝΤΟΛΗ else ΕΝΤΟΛΗ ΣΥΝΘΗΚΗ true false ΑΝΑΘΕΣΗ a:=0 a:=1 Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 7

Άσκηση 6 Να δείξετε ότι το Λήμμα της Άντλησης για ασυμφραστικές γλώσσες δεν μας βοηθά για να δείξουμε ότι η γλώσσα Λ = { a i b j c k d m i=0 ή j = k = m } δεν είναι ασυμφραστική. Ας υποθέσουμε ότι η γλώσσα Λ είναι ασυμφραστική και ότι p είναι το μήκος άντλησης αυτής. Ας θεωρήσουμε οποιαδήποτε λέξη της Λ w με μήκος w > p. Θέλουμε να δείξουμε ότι η λέξη w επιδέχεται άντλησης. Διακρίνουμε δύο περιπτώσεις: Αν w = b j c k d m για κάποιες τιμές των j, k, m, τότε οποιαδήποτε τμήματα και αν επιλέξουμε ως v και y και τα αντλήσουμε, τότε η λέξη θα συνεχίσει να ανήκει στη γλώσσα αφού ικανοποιεί τον περιορισμό ότι το πλήθος των a είναι 0. Αν w = a i b j c j d j, i 0, τότε και πάλι υπάρχει σπάσιμο την λέξης που ικανοποιεί το Λήμμα της Άντλησης, καθώς μπορούμε να επιλέξουμε το vxy εντός του a i, το οποίο έχουμε υποθέσει ότι δεν είναι κενό. Προφανώς, επανάληψη ή διαγραφή κάποιων a διατηρεί τη λέξη εντός της γλώσσα και το ζητούμενο έπεται. Εντούτοις, η γλώσσα αυτή δεν είναι ασυμφραστική (δείξτε το!). Λύσεις Σειράς Προβλημάτων 3 Εαρινό Εξάμηνο 2014 Σελίδα 8