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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

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

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

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

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

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

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

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

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

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

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

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

CSC 314: Switching Theory

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

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

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

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

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

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

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

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

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

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CSC 314: Switching Theory. Chapter 3: Turing Machines

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

Θεωρία Γραφημάτων 6η Διάλεξη

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

CSC 314: Switching Theory. Chapter 3: Turing Machines

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

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

Transcript:

Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία με δεδομένο εισόδου στην ταινία της μια λέξη της μορφής w#x να μετασχηματίζει κατάλληλα το περιεχόμενο της ταινίας έτσι ώστε κατά τον τερματισμό της μηχανής να βρίσκεται στην ταινία η λέξη ww#x. Και στις δύο πιο πάνω περιπτώσεις να παρουσιάσετε το αλφάβητο εισόδου και το αλφάβητο ταινίας της μηχανής σας καθώς και το σύστημα μεταβάσεών της, γραφικά, και να εξηγήσετε σύντομα τη λειτουργία της. (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {a, b} 3. Το αλφάβητο ταινίας Γ είναι το Σ {a, b, a, b,,,,, x, x, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης Περιγραφή μηχανής: 1. Στην πρώτη φάση, η μηχανή διαβάζει και σημαδεύει το πρώτο σύμβολο και το υπογραμμίζει: Αν το σύμβολο ήταν το a το μετατρέπει σε. Aν ήταν το b το μετατρέπει σε. 2. Στη συνέχεια προχωρεί δεξιά μέχρι να φτάσει είτε στο τέλος της ταινίας είτε σε κάποιο σημαδεμένο σύμβολο. Στην πρώτη περίπτωση προχωρεί αριστερά. Στην δεύτερη περίπτωση επαναφέρει το σύμβολο στην αρχική του κατάσταση (αφαιρεί το σημάδι) και προχωρεί αριστερά. 3. Αν το σύμβολο αυτό είναι σημαδεμένο, τότε συμπεραίνουμε ότι αυτό είναι το μέσο της λέξης και η λέξη έχει περιττό μήκος, άρα απορρίπτουμε. Διαφορετικά, το σημαδεύουμε και ξεκινούμε μια διάσχιση προς τα αριστερά. 4. Αν αμέσως αριστερά υπάρχει κάποιο σημαδεμένο σύμβολο αυτό σημαίνει ότι το δεύτερο μισό της λέξης ξεκινά από το δεύτερο σημαδεμένο σύμβολο. Επομένως αφαιρούμε το σημάδι από το πρώτο σημαδεμένο σύμβολο και επιστρέφουμε στην αρχή της ταινίας και στο Βήμα 6. 5. Αν το σύμβολο δεν είναι σημαδεμένο, τότε επιστρέφουμε αριστερά μέχρι να βρούμε το σημαδεμένο σύμβολο. Αφαιρούμε από αυτό το σημάδι, σημαδεύουμε το αμέσως επόμενο σύμβολο και προχωρούμε από το Βήμα 2. 6. Τώρα γνωρίζουμε που βρίσκεται το μέσο της ταινίας και ξεκινούμε τον έλεγχο για να αποφασίσουμε αν η λέξη έχει την μορφή ww όμοια με την μηχανή από τη Διαφάνεια 7 20. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2017 Σελίδα 1

q 0 a, A b, A a,b Δ Α, A, A a,b A Ότι λείπει, A q rej, A, A x x, x x, Δ a,b Δ a,b Δ x x, Δ x x, A a x, A a x, A b x, A b x, A x x, Δ x x, A a,b A a,b A x Δ x Δ q acc (β) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {a,b,#} 3. Το αλφάβητο ταινίας Γ είναι το Σ { a,b,a,b,#, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2017 Σελίδα 2

a, b, # Δ A a,b A a a, Α b a, Α a, Α # a, Δ a #, Α b #, Α a, b Α a b, Α b b, Α b, Α Ότι λείπει a a, Δ q 0 b b, Δ a, b Α a, b, # Δ A # b, Δ a #, Α b #, Α a,b A a a, Α b a, Α a, Α q rej # a b, Α b b, Α b, Α q acc Η πιο πάνω μηχανή Turing λειτουργεί ως εξής. 1. Ξεκινώντας, η μηχανή σημαδεύει το πρώτο σύμβολο της ταινίας. 2. Στη συνέχεια μετακινείται στο τέλος της ταινίας και ακολούθως μετακινεί κάθε στοιχείο της ταινίας μέχρι και το # μια θέση προς τα δεξιά. Στη θέση του # τοποθετεί το στοιχείο που σημάδεψε στο αρχικό τμήμα της ταινίας. 3. Επιστρέφει στο σημαδεμένο στοιχείο, αφαιρεί από αυτό το σημάδι και προχωρεί στο επόμενο στοιχείο το οποίο σημαδεύει και επαναλαμβάνει από το Βήμα 2. 4. Αυτό συνεχίζεται μέχρι να φτάσουμε στο σύμβολο # οπόταν και τερματίζουμε. Άσκηση 2 Να παρουσιάσετε λεπτομερείς περιγραφές (i) μιας απλής μηχανή Turing και (ii) μιας πολυταινιακής μηχανής Turing οι οποίες να διαγιγνώσκουν τη γλώσσα {a n #a 2n #a 3n n 1}. Να συγκρίνετε τις δύο μηχανές ως προς τη χρονική τους πολυπλοκότητα. (i) Η πιο κάτω μηχανή Turing λειτουργεί ως εξής. Στην πρώτη φάση, για κάθε a στην αρχή της ταινίας εντοπίζει 2 a μετά από το πρώτο # και 3 a μετά από το δεύτερο # και τα διαγράφει. Αν εξαντληθούν τα a και στα τρία σκέλη της λέξης τότε η μηχανή αποδέχεται. Διαφορετικά απορρίπτει. 1_Tape = Με δεδομένο εισόδου μια λέξη x Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2017 Σελίδα 3

1. Διάτρεξε την ταινία για να επιβεβαιώσεις ότι τα σύμβολα βρίσκονται σε σωστή σειρά. Αν ναι, προχώρα στο βήμα 2 διαφορετικά απόρριψε. 2. Αν στην πρώτη θέση βρίσκεται το σύμβολο a διάγραψέ το. 3. Προχώρησε δεξιά μετά από το πρώτο # και βρες το πρώτο a το οποίο δεν έχει διαγραφεί. Διάγραψέ το μαζί με το επόμενο a. Αν δεν υπάρχουν 2 a, απόρριψε. 4. Προχώρησε δεξιά μετά από το δεύτερο # και βρες το πρώτο a το οποίο δεν έχει διαγραφεί. Διάγραψέ το μαζί με τα επόμενα 2 a. Αν δεν υπάρχουν 3 a, απόρριψε. 5. Επέστρεψε στην αρχή της ταινίας και βρες το επόμενο a. Διάγραψέ το και συνέχισε από βήμα 3. 6. Όταν τα a εξαντληθούν, προχώρα δεξιά. Αν βρεις κάποιο a που δεν έχει διαγραφεί τότε απόρριψε, διαφορετικά αποδέξου Η ΤΜ 1_Tape θα κάνει Ο(n) επαναλήψεις των βήματος 3 5 όπου n το πλήθος των a στην ταινία. Σε κάθε επανάληψη θα χρειαστεί να διασχίσει τη λέξη. Αφού κάθε διάσχιση απαιτεί Ο(n) βήματα, η χρονική πολυπλοκότητας της 1_Tape ανήκει στην τάξη Ο(n 2 ). (ii) Η πιο κάτω τριταινιακή μηχανή Turing λειτουργεί παρόμοια με την 1_Tape. Έχοντας όμως στη διάθεσή της τρεις ταινίες, μπορεί να συγκρίνει τα τρία τμήματα της λέξης ταυτόχρονα αποφεύγοντας την επαναλαμβανόμενη μετακίνηση μέσα στην ταινία. 2_Tape = Με δεδομένο εισόδου μια λέξη x 1. Διάτρεξε τη λέξη επιβεβαιώνοντας ότι έχει τη σωστή δομή και αντιγράφοντας το δεύτερο σκέλος από a στη δεύτερη ταινία και το τρίτο σκέλος από a στην τρίτη ταινία. 2. Μετακινήσου στην αρχή των τριών ταινιών. 3. Για κάθε a που διαβάζεις στην πρώτη ταινία διάγραψε 2 a από τη δεύτερη ταινία και 3 a, αν υπάρχουν, από την τρίτη ταινία. 4. Αν εξαντληθούν τα a στη δεύτερη ή στην τρίτη ταινία απόρριψε. 5. Αν εξαντληθούν τα a στην πρώτη ταινία και εξακολουθούν να υπάρχουν a στη δεύτερη ή στην τρίτη ταινία, απόρριψε. 6. Αν δεν ισχύει κανένα από τα πιο πάνω τότε αποδέξου. Η μηχανή εκτελεί μια διάσχιση της ταινίας στο βήμα 1, μια διάσχιση της ταινίας προς τα πίσω στο βήμα 1 και μια διάσχιση της ταινίας στα βήματα 3 6. Επομένως ο συνολικός χρόνος εκτέλεσης της ΤΜ είναι Ο(n). Άσκηση 3 Δώστε αφ υψηλού περιγραφές μηχανών Turing που να διαγιγνώσκουν τις ακόλουθες γλώσσες. Σε περίπτωση που θα χρησιμοποιήσετε μηχανές από τις διαλέξεις να τις περιγράψετε. (α) { D 1, D 2 τα D 1 και D 2 είναι δύο DFA τέτοια ώστε υπάρχει τουλάχιστον μια λέξη που είναι αποδεκτή από ακριβώς ένα από τα αυτόματα } S = Για είσοδο D 1, D 2 όπου τα D 1 και D 2 είναι δύο DFA: 1. Κατασκευάζουμε το αυτόματο D 2 το οποίο αναγνωρίζει το συμπλήρωμα της γλώσσας L(D 2 ). 2. Κατασκευάζουμε το αυτόματο D το οποίο αναγνωρίζει τη γλώσσα L(D 1 ) L(D 2 ). 3. Κατασκευάζουμε το αυτόματο D 1 το οποίο αναγνωρίζει το συμπλήρωμα της γλώσσας L(D 1 ). Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2017 Σελίδα 4

4. Κατασκευάζουμε το αυτόματο D το οποίο αναγνωρίζει τη γλώσσα L(D 1 ) L(D 2 ). 5. Κατασκευάζουμε το αυτόματο D το οποίο αναγνωρίζει τη γλώσσα D D. 6. Ελέγχουμε αν L(D ) = χρησιμοποιώντας τον διαγνώστη Τ (Διαφάνεια 8 10). 7. Αν ο Τ αποδεχθεί τότε απορρίπτουμε, διαφορετικά αποδεχόμαστε. (β) {R R είναι μια κανονική έκφραση τέτοια ώστε η γλώσσα L(R) δεν περιέχει προθήματα} Μια γλώσσα Λ περιέχει προθήματα αν υπάρχουν λέξεις x, y Λ τέτοιες ώστε για κάποιο w xw=y και x y. Παρατηρούμε ότι μια γλώσσα περιέχει προθήματα αν στο αυτόματο που την αναγνωρίζει υπάρχει μονοπάτι ανάμεσα σε δύο καταστάσεις αποδοχής. Επομένως: S = Για είσοδο D όπου D ένα DFA: Χρησιμοποίησε μια από τις γνωστές διαδικασίες διάσχισης γράφων για να αποφασίσεις κατά πόσο το D περιέχει κύκλο που διαπερνά μια κατάσταση αποδοχής ή αν περιέχει μονοπάτι ανάμεσα σε δύο διαφορετικές καταστάσεις αποδοχής. Αν ναι, τότε αποδέξου. Διαφορετικά, απόρριψε. (γ) { G το G είναι ένα PDA που δεν παράγει καμία λέξη της μορφής 0 k 1 m, k+m<100 } Παρατηρούμε ότι η γλώσσα 0 k 1 m όπου k+m<100, είναι πεπερασμένη και επομένως υπάρχει DFA που την αναγνωρίζει. Επομένως: S = Για είσοδο G, όπου το G ένα PDA: 1. Δημιουργούμε ένα NFA που αναγνωρίζει τη γλώσσα 0 k 1 m όπου k+m<100, έστω Α. 2. Μετατρέπουμε το Α σε ένα ισοδύναμο DFA, έστω Β, χρησιμοποιώντας τον γνωστό αλγόριθμο μετατροπής NFA σε DFA. 3. Δημιουργούμε ένα PDA, έστω Ρ το οποίο αποδέχεται τη γλώσσα L(G) L(B). Συγκεκριμένα, αν G = Q 1, Σ, Γ, δ 1, q 1, F 1 και B = Q 2, Σ, δ 2, q 2, F 2 κατασκευάζουμε το P = Q, Σ, Γ, δ, q 0, F ως εξής: i. Καταστάσεις του P, είναι οι καταστάσεις (x,y) όπου x Q 1 και y Q 2 ii. q0 = (q1, q2) iii. Τελικές καταστάσεις του P, είναι οι καταστάσεις (x,y) όπου η x είναι Άσκηση 4 iv. τελική κατάσταση του G και η y τελική κατάσταση του B. Στο αυτόματο P η μετάβαση ((x,y ),b ) δ((x,y),a,b) είναι εφικτή εφόσον η μετάβαση (x,b ) δ 1 (x,a,b) είναι εφικτή στο P και η μετάβαση y = δ 2 (y,a) είναι εφικτή στο αυτόματο D. 4. Μετατρέπουμε το P σε μια ισοδύναμη ασυμφραστική γραμματική, έστω H. 5. Εφαρμόζουμε την ΤΜ R, διαφάνεια 8 18 (ΚΕΝΟΤΗΤΑCFG), με δεδομένη τη γραμματική Η. Αν η R αποδεχτεί αποδεχόμαστε, διαφορετικά απορρίπτουμε. Μια Δ Turing μηχανή είναι μια μηχανή της οποίας η κεφαλή μπορεί σε κάθε μετάβαση είτε να παραμένει στάσιμη είτε να μετακινείται προς τα δεξιά, αλλά αδυνατεί να Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2017 Σελίδα 5

μετακινηθεί προς τα αριστερά. Τυπικά, μια Δ TM, είναι μια επτάδα Μ = (Q, Σ, Γ, δ, q 0, q acc, q rej ) η οποία ορίζεται με παρόμοιο τρόπο με μια συνήθη ΤΜ με τη διαφορά ότι η συνάρτηση μεταβάσεων δ ορίζεται ως δ:q Γ Γ Σ {Σ,Δ}, όπου το δ(q, x) = (q, y, Κ) ερμηνεύεται ως: αν η μηχανή βρίσκεται στην κατάσταση q και η κεφαλή διαβάζει το σύμβολο x, τότε η μηχανή θα μεταβεί στην κατάσταση q θα γράψει y στη θέση της κεφαλής και η κεφαλή θα κινηθεί στην κατεύθυνση K όπου Κ {Σ,Δ}. Να δείξετε ότι αυτή η παραλλαγή των ΤΜ αποδέχεται τις κανονικές γλώσσες. Είναι εύκολο να δούμε ότι η προσομοίωση ενός DFA από μια Μηχανή Turing μπορεί να γίνει αντικαθιστώντας κάθε ακμή δ(s,a)=t του DFA από μια ακμή δ(s,a)=(t,a,δ). Επιπρόσθετα από κάθε τελική κατάσταση, s, προσθέτουμε τη μετάβαση δ(s, )=(q acc,,δ) και από κάθε μη τελική κατάσταση τη μετάβαση δ(s, ) = (q rej,,δ). Είναι εύκολο να δούμε ότι με τις αλλαγές αυτές προκύπτει μια Δ Turing μηχανή. Για την αντίθετη κατεύθυνση, ας υποθέσουμε ότι έχουμε μια Δ Turing μηχανή, Μ = (Q, Σ, Γ, δ, q 0, q acc, q rej ). Μπορούμε να κατασκευάσουμε ένα ισοδύναμο NFA N = (Q, Σ, δ, q 0, F) ως εξής: Q = Q Γ {next}. Επομένως ως καταστάσεις του NFA θα έχουμε ζεύγη της μορφής (s, x) όπου το s δηλώνει την κατάσταση της Μ στην οποία βρισκόμαστε και x=next, σημαίνει ότι μόλις εισήλθαμε στη συγκεκριμένη κατάσταση έχοντας κάνει κίνηση προς τα δεξιά (ή μόλις έχουμε ξεκινήσει την εκτέλεση) ενώ x Γ, δηλώνει έχουμε εισέλθει στην κατάσταση έχοντας εκτελέσει μετάβαση η οποία άφησε την κεφαλή στάσιμη στην ταινία έχοντας γράψει στο συγκεκριμένο σημείο το σύμβολο x. q 0 = (q 0, next) F = {(q acc, a) a Γ {next} } H συνάρτηση μεταβάσεων δ ως εξής: ( q',next ), if ( q,x ) ( q',b, ),a,x next ( q',b ), if ( q,x ) ( q',b, ),a,x next ' (( q,x ),a ) ( q',next ), if ( q,a ) ( q',b, ),x next ( q',b ), if ( q,a ) ( q',b, ),x next Είναι εύκολο να δούμε ότι το πιο πάνω NFA αποδέχεται μια λέξη αν και μόνο αν την αποδέχεται η μηχανή Μ. Άσκηση 5 Θεωρήστε το αλφάβητο Σ και δύο γλώσσες L 1 και L 2 επί του αλφάβητου Σ. Τέλεια ανάμειξη δύο λέξεων u = a 1 a n και v = b 1 b n ονομάζεται η λέξη w = a 1 b 1 a 2 b 2 a n b n Ορίζουμε ως TA(L 1, L 2 ) την πιο κάτω γλώσσα επί του αλφάβητου Σ: TA(L 1, L 2 ) = { w w = a 1 b 1 a 2 b 2 a n b n όπου u = a 1 a n L 1 και v = b 1 b n L 2 } Με λόγια, η γλώσσα TA(L 1, L 2 ) περιέχει όλες τις λέξεις που αποτελούν τέλειες αναμείξεις μιας λέξης από τη γλώσσα L 1 και μιας λέξης από τη γλώσσα L 2. (α) Να αποδείξετε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη ΤΑ. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2017 Σελίδα 6

(β) Ισχύει το ίδιο για την κλάση των αναγνωρίσιμων γλωσσών; Αιτιολογήστε την απάντησή σας. Για να δείξουμε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη TA πρέπει να δείξουμε ότι αν L 1 και L 2 είναι δύο διαγνώσιμες γλώσσες, τότε υπάρχει μέθοδος διάγνωσης της γλώσσας TA(L 1,L 2 ). Ας υποθέσουμε ότι L 1, L 2 διαγνώσιμες γλώσσες και Μ 1, Μ 2 δύο ΤΜ που τις διαγιγνώσκουν, αντίστοιχα. Έστω λέξη w=x 1 x 2 x n. Θα διαγνώσουμε κατά πόσο w TA(L 1,L 2 ) ως εξής: 1. Αν η w έχει περιττό μήκος, τότε απορρίπτουμε. 2. Διαφορετικά δημιουργούμε τις λέξεις w 1 = x 1 x 3 x 2n 1 και w 2 = x 2 x 4 x 2n. 3. Τρέχουμε τη w 1 στη μηχανή Μ 1. Αν η Μ 1 αποδεχθεί τότε προχωρούμε στο Βήμα 4, διαφορετικά απορρίπτουμε. 4. Τρέχουμε τη w 2 στη μηχανή Μ 2. Αν η Μ 2 αποδεχθεί τότε αποδεχόμαστε, διαφορετικά απορρίπτουμε. Ορθότητα/Τερματισμός: Σύμφωνα με τον ορισμό της πράξης TA(L 1,L 2 ), μια λέξη w ανήκει στο TA(L 1,L 2 ) αν αποτελεί την τέλεια ανάμειξη ανάμεσα σε δύο λέξεις από τις γλώσσες L 1 και L 2, έτσι ώστε τα στοιχεία στις περιττές θέσεις της w να δίνουν μια λέξη που να ανήκει στη γλώσσα L 1 και τα στοιχεία στις άρτιες θέσεις της w να δίνουν μια λέξη που να ανήκει στη γλώσσα L 2. Η πιο πάνω μηχανή μοιράζει τη λέξη στα δύο τμήματα που περιέχουν τα σύμβολα στις περιττές και στις άρτιες θέσεις και τρέχει τη πρώτη λέξη, w 1, στη μηχανή Μ 1, και τη δεύτερη λέξη, w 2, στη Μ 2. Η μηχανή αποδέχεται αν και μόνο αν αποδεχθούν αμφότερες οι Μ 1, Μ 2 που θα το πράξουν αν και μόνο αν w 1 L 1 και w 2 L 2. Αφού οι Μ 1 και Μ 2 αποτελούν διαγνώστες και η μηχανή που ορίσαμε αποτελεί διαγνώστη. (β) Αναφορικά με το δεύτερο ερώτημα, μπορούμε να δείξουμε την κλειστότητα της πράξης ΤΑ και στα πλαίσια των αναγνωρίσιμων γλωσσών χρησιμοποιώντας την ίδια μηχανή όπως πιο πάνω. Έτσι, αν ΤΑ(L 1, L 2 ) μετά από κάποιο αριθμό βημάτων θα το εντοπίσουμε και θα τερματίσουμε με αποδοχή της w, ενώ αν w TA(L 1,L 2 ) υπάρχει η δυνατότητα απόρριψης ή εγκλωβισμού στα βήματα 3 και 4. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2017 Σελίδα 7