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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CSC 314: Switching Theory

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CSC 314: Switching Theory. Chapter 3: Turing Machines

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

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

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

Transcript:

Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w#z w, z {a,b}* και η z είναι υπολέξη της w}. Συγκεκριμένα, να παρουσιάσετε το αλφάβητο εισόδου και το αλφάβητο ταινίας της μηχανής σας καθώς και το σύστημα μεταβάσεών της. Εξηγήστε σύντομα τη λειτουργία της μηχανής σας. (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {a, b, # } 3. Το αλφάβητο ταινίας Γ είναι το Σ {a,b,#,x,x,y,a,b,x,y, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης a,x Δ a,b A a,b Δ a, b Δ # Δ 2 3 # A 4 5 a a, A b b,a a a, A b b,a a, b A a, b A q 0 a X, A b Y, A 1 # Δ a, b Δ 9 q acc # #, A 6 7 X x, Δ Υ x, Δ x Δ a x, Δ b x, Δ 8 Ότι λείπει 10 # Δ 11 b, Α 12 # A 13 a, b A a,b Δ a, b Δ a,b A q rej Υ,b Δ Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 1

Περιγραφή μηχανής: 1. Στην πρώτη φάση, η μηχανή διαβάζει και σημαδεύει το πρώτο σύμβολo: αν το σύμβολο ήταν το a το μετατρέπει σε Χ, αν ήταν το b το μετατρέπει σε Υ. 2. Στη συνέχεια διαβάζει το πρώτο σύμβολο το οποίο δεν έχει επεξεργαστεί. (Πρόθεση είναι να ελεγχθεί αν η λέξη που βρίσκεται δεξιά από το # μπορεί να διαβαστεί από τη συγκεκριμένη θέση στο αριστερά σκέλος της ταινίας). Εφόσον είναι ένα από τα a, b, X, Y, το υπογραμμίζει και προχωρεί ανάλογα στο πάνω ή στο κάτω μονοπάτι της ταινίας. Αν το σύμβολο αυτό ήταν το #, τότε προχωρεί δεξιά και αποδέχεται αν και μόνο αν στη συνέχεια υπάρχουν μόνο σημαδεμένα σύμβολα και μετά κενό. 3. Στο πάνω μονοπάτι, προσπερνά τα σύμβολα που ακολουθούν, στη συνέχεια τα # και μετά όλα τα σημαδεμένα (υπογραμμισμένα) σύμβολα. (To κάτω μονοπάτι λειτουργεί συμμετρικά για b). 4. Αν το πρώτο μη υπογραμμισμένο σύμβολο είναι το a, αυτό σημαίνει ότι μέχρι στιγμής τα δύο σκέλη της ταινίας είναι τα ίδια. Επομένως, υπογραμμίζει το a επανέρχεται στο αριστερό σκέλος της λέξης για να επεξεργαστεί το επόμενο μη υπογραμμισμένο σύμβολο συνεχίζοντας από το Βήμα 2. 5. Διαφορετικά, η λέξη στα δεξιά του # δεν είναι όμοια με τη λέξη που ξεκινά από το πρώτο υπογραμμισμένο στοιχείο και η μηχανή επαναφέρει όλα τα στοιχεία της ταινίας μέχρι το πρώτο υπογραμμισμένο στοιχείο το οποίο μετατρέπει σε x. 6. Η κεφαλή προχωρεί στη θέση μετά από το τελευταίο x και συνεχίζει σύμφωνα με το βήμα 2. (β) Να περιγράψετε την εκτέλεση της μηχανής σας από το μέρος (α) με δεδομένο εισόδου τη λέξη abb#bb χρησιμοποιώντας σαφείς αναφορές στις φάσεις από τις οποίες θα διέλθει η μηχανή καθώς θα επεξεργάζεται τη λέξη. Πιο κάτω παρουσιάζεται η σχετική εκτέλεση: q 0 abb #bb 1Xbb #bb X2bb #bb Xb2b #bb Xbb2 #bb Xbb#3bb Xbb6#bb Xb7b#bb X7bb#bb 7Xbb#bb x1bb#bb xb 10 b #bb xbb 10 #bb xbb# 11 bb xbb 12# bb xb 13 b#bb x 13 bb#bb xb 1 b #bb xbb 10 #bb xbb # 11 bb xbb # b 11b xbb # 12 bb xbb 12# bb xb 13 b# bb xbb 1# bb xbb # 9 bb xbb # b 9 b xbb # bb 9 xbb # b q acc b (γ) Να παρουσιάσετε τη λεπτομερή περιγραφή μιας πολυταινιακής μηχανής Turing που να διαγιγνώσκει τη γλώσσα L και να συγκρίνετε τη μηχανή αυτή με εκείνη που κατασκευάσατε στο μέρος (α) ως προς την πολυπλοκότητά τους. Η πιο κάτω διταινιακή μηχανή Turing λειτουργεί παρόμοια με τη μηχανή από το σκέλος (α). Έχοντας όμως στη διάθεσή της δύο ταινίες, μπορεί να συγκρίνει τα δύο τμήματα της λέξης ταυτόχρονα αποφεύγοντας την επαναλαμβανόμενη μετακίνηση μέσα στην ταινία. 2_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν x = #, τότε αποδέξου. 2. Σημάδεψε το πρώτο στοιχείο της πρώτης ταινίας στην οποία βρίσκεται η είσοδος του προβλήματος. 3. Διάτρεξε τη λέξη επιβεβαιώνοντας ότι έχει τη σωστή δομή και αντιγράφοντας τη λέξη που έπεται του # στη δεύτερη ταινία, σημαδεύοντας κατάλληλα και την αρχή της δεύτερης ταινίας. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 2

4. Μετακινήσου στην αρχή των δύο ταινιών. 5. Σημάδεψε το στοιχείο της πρώτης ταινίας έτσι ώστε να γνωρίζεις το σημείο από το οποίο γίνεται η σύγκριση των δύο λέξεων. 6. Σύγκρινε τα στοιχεία που δείχνουν οι δύο κεφαλές. Αν είναι όμοια συνέχισε με τα επόμενα στοιχεία μέχρις ότου είτε να εξαντληθούν τα στοιχεία της δεύτερης ταινίας είτε τα στοιχεία να διαφέρουν. 7. Αν τα στοιχεία της δεύτερης ταινίας έχουν εξαντληθεί, τότε αποδέξου. 8. Διαφορετικά, αν τα στοιχεία στις κεφαλές των δύο ταινιών είναι ανόμοια, τότε προχώρα προς τα αριστερά μέχρις ότου είτε να βρεις την αρχή της πρώτης ταινίας είτε να βρεις ένα στοιχείο στην πρώτη ταινία που έχει διαγραφεί (μετατραπεί σε x). 9. Αν έχεις φτάσεις στην αρχή της πρώτης ταινίας, τότε μετάτρεψε το στοιχείο σε x προχώρα μια θέση δεξιά. Αν έχεις φτάσει στο στοιχείο x, προχώρα μια θέση δεξιά, μετάτρεψε το στοιχείο σε x και προχώρα μια θέση δεξιά. 10. Αν η κεφαλή της πρώτης ταινίας δείχνει το #, τότε απόρριψε διαφορετικά συνέχισε από το Βήμα 6. Η μηχανή εκτελεί μια διάσχιση της ταινίας στο βήμα 6, μια διάσχιση της ταινίας προς τα πίσω στο βήμα 8 και επαναλαμβάνει τα βήματα 6 8 το πολύ όσες φορές όσα και τα στοιχεία στο πρώτο μισό της ταινίας. Επομένως ο συνολικός χρόνος εκτέλεσης της ΤΜ είναι Ο(n 2 ). Η μηχανή από το μέρος (α) είναι όμοια με τη διαφορά ότι η σύγκριση των δύο λέξεων στο Βήμα 4 της μηχανής από το μέρος (α) απαιτεί χρόνο Ο(n 2 ). Επομένως ο συνολικός χρόνος εκτέλεσης της ΤΜ είναι Ο(n 3 ). Άσκηση 2 Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing η οποία, με δεδομένο εισόδου μια λέξη w {0,1,2} * να μετασχηματίζει το περιεχόμενο της ταινίας έτσι ώστε τα στοιχεία να ταξινομηθούν σε αύξουσα σειρά. Για παράδειγμα, η λέξη 021001120 θα πρέπει να μετασχηματιστεί στην 000011122. H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {0,1,2} 3. Το αλφάβητο ταινίας Γ είναι το Σ {0,1,2, 0,1,2,x,x, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 3

0,1,2 Α q 0 0 0, A 1 1, A 2 2, A 2 x, Δ 2 x, Δ 0,1,2 Δ Α 2 Α x 1, Δ x 1, Δ 0,1,0,1 Δ A 0 Δ x 2, Δ x 2, Δ 0,1 Δ 1 Α 0,1,2 Α x 0, Δ x 0, Δ 0,1 Α Δ q acc 0,1,2 A 1 x, Δ 1 x, Δ 2, Α 1, Α 0,1,2 Α x 0, Δ x 0, Δ 2,2, Α x 1, Δ x 1, Δ Η πιο πάνω μηχανή Turing λειτουργεί ως εξής. 1. Ξεκινώντας η μηχανή σημαδεύει το πρώτο σύμβολο της ταινίας. 2. Στη συνέχεια, προσπαθεί να εντοπίσει το πρώτο 2 στην ταινία, αν υπάρχει. 3. Σε αυτή την περίπτωση σημαδεύει τη θέση με x και μετακινείται για να βρει το τελευταίο στοιχείο της ταινίας που είναι άνισο με 2. Στη θέση αυτή γράφει το 2 και επιστρέφει αριστερά για να εντοπίσει τη θέση του x όπου γράφει το στοιχείο που είχε αρχικά η θέση όπου γράφτηκε το 2. 4. Σε περίπτωση που δεν εντοπίζει κανένα 2 τότε μετακινείται στο κάτω μονοπάτι της μηχανής όπου θα ασχοληθεί με τη σωστή τοποθέτηση των στοιχείων 0 και 1. 5. Σε περίπτωση που επιστρέφοντας αντιληφθεί ότι δεν υπάρχουν 0 ή 1 ανάμεσα στο x και στο τέλος της ταινίας τότε ξαναγράφει το 2 στη θέση του x και προχωρεί επίσης στο Βήμα 6. 6. Η κεφαλή επιστρέφει στην αρχή της ταινίας από όπου ψάχνει να βρει το πρώτο 1. Στη θέση αυτή γράφει x και μετακινείται δεξιά για να βρει το τελευταίο στοιχείο της ταινίας που είναι ίσο με 0. Αντιστρέφει το στοιχείο της θέσης αυτής με το στοιχείο που βρισκόταν στη θέση όπου τώρα υπάρχει το x 7. Το Βήμα 6 επαναλαμβάνεται εφόσον υπάρχουν 1 στην ταινία ή μετά από το τελευταίο 1 εντοπιστεί κάποιο 0. Διαφορετικά, η μηχανή οδηγείται στην κατάσταση αποδοχής. Άσκηση 3 Δώστε αφ υψηλού περιγραφές μηχανών Turing που να διαγιγνώσκουν τις ακόλουθες γλώσσες. Σε περίπτωση που θα χρησιμοποιήσετε μηχανές από τις διαλέξεις να τις περιγράψετε. (α) { D το D είναι ένα DFA του οποίου η γλώσσα είναι μη πεπερασμένη } Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 4

Παρατηρούμε ότι η γλώσσα ενός αυτομάτου είναι μη πεπερασμένη αν και μόνο αν το αυτόματο περιέχει κύκλο. Επομένως: S = Για είσοδο D όπου D ένα DFA: Χρησιμοποίησε μια από τις γνωστές διαδικασίες διάσχισης γράφων για να αποφασίσεις κατά πόσο το D περιέχει κύκλο. Αν ναι, τότε αποδέξου. Διαφορετικά, απόρριψε. (β) L = { R η R είναι μια κανονική έκφραση που παράγει τουλάχιστον μια λέξη στο {0,1} * η οποία περιέχει το σύμβολο 0 ακριβώς 3 φορές } Παρατηρούμε ότι για να παράγει η κανονική έκφραση τουλάχιστον μια λέξη στο {0,1} * η οποία περιέχει το σύμβολο 0 ακριβώς 3 φορές, τότε πρέπει η τομή της γλώσσας που παράγεται από την έκφραση με τη γλώσσα που παράγεται από την κανονική έκφραση 1 * 01 * 01 * 01 * να είναι μη κενή. Επομένως: S = Για είσοδο R όπου R μια κανονική έκφραση: 1. Μετατρέπουμε την κανονική έκφραση R στο ισοδύναμο NFA Ν χρησιμοποιώντας τη διαδικασία της Διαφάνειας 3 8. Στη συνέχεια μετατρέπουμε το ΝFA N στο ισοδύναμο DFA D χρησιμοποιώντας τη διαδικασία των Διαφανειών 2 37 και 2 38. 2. Μετατρέπουμε την κανονική έκφραση 1 * 01 * 01 * 01 * στο ισοδύναμο NFA Ν χρησιμοποιώντας τη διαδικασία της Διαφάνειας 3 8. Στη συνέχεια μετατρέπουμε το ΝFA N στο ισοδύναμο DFA D χρησιμοποιώντας τη διαδικασία των Διαφανειών 2 37 και 2 38. 3. Κατασκευάζουμε το αυτόματο D το οποίο αναγνωρίζει τη γλώσσα L(D) L(D ). 4. Ελέγχουμε αν L(D ) = χρησιμοποιώντας τον διαγνώστη Τ (Διαφάνεια 8 10). 5. Αν ο Τ αποδεχθεί τότε αποδεχόμαστε, διαφορετικά απορρίπτουμε. (γ) { D, Ρ το D είναι ένα DFA και το Ρ ένα ΡDA τέτοια ώστε L(D) L(Ρ) } S = Για είσοδο D,Ρ, όπου το D είναι ένα DFA και το Ρ ένα PDA: 1. Δημιουργούμε ένα PDA, έστω A το οποίο αποδέχεται τη γλώσσα L(P) L(D). Συγκεκριμένα, αν Ρ = Q 1, Σ, Γ, δ 1, q 1, F 1 και D = Q 2, Σ, δ 2, q 2, F 2 κατασκευάζουμε το A = Q, Σ, Γ, δ, q 0, F ως εξής: i. Καταστάσεις του A, είναι οι καταστάσεις (x,y) όπου x Q 1 και y Q 2 ii. q0 = (q1, q2) iii. Τελικές καταστάσεις του A, είναι οι καταστάσεις (x,y) όπου η x είναι τελική κατάσταση του P και η y τελική κατάσταση του D. iv. Στο αυτόματο A η μετάβαση ((x,y ),b ) δ((x,y),a,b) είναι εφικτή εφόσον η μετάβαση (x,b ) δ1(x,a,b) είναι εφικτή στο P και η μετάβαση y = δ2(y,a) είναι εφικτή στο αυτόματο D. 2. Μετατρέπουμε το A σε μια ισοδύναμη ασυμφραστική γραμματική, έστω H. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 5

3. Εφαρμόζουμε την ΤΜ R, διαφάνεια 8 18 (ΚΕΝΟΤΗΤΑCFG), με δεδομένη τη γραμματική Η. Αν η R αποδεχτεί απορρίπτουμε, διαφορετικά αποδεχόμαστε. Άσκηση 4 Ένα αυτόματο με δύο στοίβες είναι παρόμοιο με ένα αυτόματο στοίβας, με τη διαφορά ότι διαθέτει δύο στοίβες και σε κάθε βήμα του μπορεί να διαβάσει το στοιχείο κορυφής οποιασδήποτε από τις δυο στοίβες και να γράψει στοιχείο στην κορυφή οποιασδήποτε από τις δύο στοίβες. Να δείξετε το μοντέλο «αυτόματα με δύο στοίβες» είναι ισοδύναμο με τις μηχανές Turing. Τα αυτόματα με δύο στοίβες είναι μη ντετερμινιστικά. Για τον λόγο αυτό επιλέγουμε να προσομοιώσουμε δείξουμε την ισοδυναμία μέσω μη ντετερμινιστικών μηχανών Turing. Αφού το μοντέλο των μη ντετερμινιστικών μηχανών Turing είναι ισοδύναμο με το αυθεντικό μοντέλο, το ζητούμενο έπεται. Οι μηχανές Turing μπορούν να προσομοιώσουν τα αυτόματα με δύο στοίβες. Έστω ένα αυτόματο με δύο στοίβες. Θα κατασκευάσουμε μια ισοδύναμη μηχανή Turing ως εξής: o Τοποθετούμε στην ταινία (1) την είσοδο του αυτομάτου (2) το σύμβολο # (ή κάποιο σύμβολο το οποίο δεν ανήκει στο αλφάβητο της γλώσσα), (3) το περιεχόμενο της πρώτης στοίβας (αρχικά κενό), (4) το σύμβολο #, και (5) το περιεχόμενο της δεύτερης στοίβας (αρχικά κενό). Τα στοιχεία αυτά γράφονται στη ταινία με αυτή τη σειρά. Το πρώτο στοιχείο της ταινίας σημαδεύεται κατάλληλα έτσι ώστε να μπορούμε να αναγνωρίσουμε την αρχή της ταινίας. Επίσης σημαδεύουμε τα στοιχεία κορυφής των δύο στοιβών. o Εντολή x, a,b c,d. H εντολή αυτή εκφράζει ότι αν διαβαστεί στην είσοδο το σύμβολο x, το στοιχείο a βρίσκεται στην κορυφή της πρώτης στοίβας και το στοιχείο b βρίσκεται στην κορυφή της δεύτερης στοίβας, τότε τα στοιχεία αυτά αντικαθιστούνται με τα σύμβολα c και d. Αυτό μπορεί να τύχει προσομοίωσης ως εξής: Διαβάζουμε το πρώτο στοιχείο της λέξης (το οποίο δεν έχουμε χειριστεί μέχρι τώρα) και το σβήνουμε. Εφόσον είναι το x τότε μεταφερόμαστε στο στοιχείο κορυφής της πρώτης ταινίας. Αν είναι το a τότε μεταφερόμαστε στο στοιχείο κορυφής της δεύτερης ταινίας. Αν είναι το b το αντικαθιστούμε με d και επιστρέφουμε στο στοιχείο κορυφής της δεύτερης ταινίας το οποίο αντικαθιστούμε με c. Σε περίπτωση που η πράξη αυτή οδηγεί στην ανάγκη αύξησης του μεγέθους της στοίβας (κάτι που θα συμβεί στην περίπτωση που το a = ε) τότε θα μεταφέρουμε όλα τα στοιχεία που έπονται στη στοίβα, συμπεριλαμβανομένου του διαχωριστικού #, μια θέση προς τα δεξιά. Τα αυτόματα με δύο στοίβες μπορούν να προσομοιώσουν τις μηχανές Turing. o Ξεκινώντας υποθέτουμε ότι η πρώτη στοίβα είναι κενή και η δεύτερη στοίβα αρχικοποιείται με το περιεχόμενο της ταινίας σε αντίστροφη σειρά, δηλαδή, με το στοιχείο κορυφής να βρίσκεται στην κορυφή της στοίβας. Γενικά, η πρώτη στοίβα θα περιέχει τα περιεχόμενα της ταινίας αριστερά από την κεφαλή και η Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 6

δεύτερη ταινία τα στοιχεία από την κεφαλή και μετά (με το στοιχείο της κεφαλής να βρίσκεται στην κορυφή της στοίβας). o Η μετάβαση a b, A μεταφράζεται στο αυτόματο δύο στοιβών ως την ακολουθία μεταβάσεων: ε, ε,a ε,b, ε, x,ε ε,x, για όλα τα x στοιχεία του αλφάβητου της γλώσσας. Το αποτέλεσμα της μετάβασης ε, ε,a ε,b, είναι να αντικαταστήσει το a από b στη δεύτερη στοίβα. Η δεύτερη μετάβαση έχει σαν στόχο να υλοποιήσει τη μετακίνηση της κεφαλής προς τα αριστερά, διαγράφοντας το όποιο στοιχείο x από την πρώτη στοίβα και μεταφέροντάς το στη δεύτερη στοίβα o Παρόμοια, η μετάβαση a b, Δ μεταφράζεται στο αυτόματο δύο στοιβών ως τη μετάβαση: ε, ε,a b,ε. Άσκηση 5 Για δύο γλώσσες Α και Β έστω η γλώσσα Α Β = { xy x A, y B, και x = y } Να αποδείξετε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη. Ισχύει το ίδιο για την κλάση των αναγνωρίσιμων γλωσσών; Αιτιολογήστε την απάντησή σας. Για να δείξουμε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη πρέπει να δείξουμε ότι αν Α και Β είναι δύο διαγνώσιμες γλώσσες, τότε υπάρχει μέθοδος διάγνωσης της γλώσσας Α Β. Ας υποθέσουμε ότι Α, Β διαγνώσιμες γλώσσες και Μ 1, Μ 2 δύο ΤΜ που τις διαγιγνώσκουν, αντίστοιχα. Έστω λέξη w=x 1 x 2 x n. Θα διαγνώσουμε κατά πόσο w Α Β ως εξής: 1. Αν η w έχει περιττό μήκος, τότε απορρίπτουμε. 2. Διαφορετικά σπάζουμε τη w σε δύο μισά έτσι ώστε w = xy και x = y. 3. Τρέχουμε τη x στη μηχανή Μ 1. Αν η Μ 1 αποδεχθεί τότε προχωρούμε στο Βήμα 4, διαφορετικά απορρίπτουμε. 4. Τρέχουμε τη y στη μηχανή Μ 2. Αν η Μ 2 αποδεχθεί τότε αποδεχόμαστε, διαφορετικά απορρίπτουμε. Ορθότητα/Τερματισμός: Σύμφωνα με τον ορισμό της πράξης Α Β, μια λέξη w ανήκει στο Α Β αν μπορεί να σπάσει σε δύο μισά, έτσι ώστε το πρώτο μισό να ανήκει στη γλώσσα Α και το δεύτερο μισό στη γλώσσα Β. Η πιο πάνω μηχανή μοιράζει τη λέξη στη μέση και τρέχει το πρώτο μισό, x, στη μηχανή Μ 1, και το δεύτερο μισό, y, στη Μ 2. Η μηχανή αποδέχεται αν και μόνο αν αποδεχθούν αμφότερες οι Μ 1, Μ 2 που θα το πράξουν αν και μόνο αν x A και y B. Αφού οι Μ 1 και Μ 2 αποτελούν διαγνώστες και η μηχανή που ορίσαμε αποτελεί διαγνώστη. Αναφορικά με το δεύτερο ερώτημα, μπορούμε να δείξουμε την κλειστότητα της πράξης και στα πλαίσια των αναγνωρίσιμων γλωσσών χρησιμοποιώντας την ίδια μηχανή όπως πιο πάνω. Έτσι, αν w A Β μετά από κάποιο αριθμό βημάτων θα το εντοπίσουμε και θα Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 7

τερματίσουμε με αποδοχή της w, ενώ αν w A Β υπάρχει η δυνατότητα απόρριψης ή εγκλωβισμού στα βήματα 3 και 4. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2016 Σελίδα 8