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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CSC 314: Switching Theory

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

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

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

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

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

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

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

CSC 314: Switching Theory. Chapter 3: Turing Machines

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

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

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

Transcript:

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

Περιγραφή μηχανής: 1. Στην πρώτη φάση, η μηχανή διαβάζει και σημαδεύει το πρώτο σύμβολο (αν το σύμβολο ήταν το a το μετατρέπει σε Χ, αν ήταν το b το μετατρέπει σε Υ και αν ήταν το πρώτο στοιχείο στην ταινία το μετατρέπει σε Χ ή Υ ανάλογα) και προχωρεί είτε προς το πάνω είτε προς το κάτω μονοπάτι ανάλογα με το ποιο είναι το σύμβολο αυτό. 2. Στη συνέχεια προχωρεί προς τα δεξιά μέχρι είτε να φτάσει στο τέλος της ταινίας είτε να διαβάσει το πρώτο σημαδεμένο σύμβολο. 3. Αν αριστερά από τη θέση αυτή υπάρχει το ίδιο σύμβολο με αυτό που διαβάστηκε από την κατάσταση q 1 τότε το σημαδεύει (τα a γίνονται a και τα b γίνονται b). 4. Επιστρέφει στην αρχή της ταινίας μέχρι να βρει το πρώτο μη σημαδεμένο σύμβολο και συνεχίζει από το βήμα 1. 5. Αν με αυτό τον τρόπο σημαδευτούν όλα τα a και b, τότε η μηχανή επανέρχεται στην αρχή της ταινίας από όπου συνεχίζει σύμφωνα με το βήμα 6. 6. Στο σημείο αυτό, η μηχανή βρίσκεται στην κατάσταση q 2 και έχει στόχο να επιβεβαιώσει ότι τα σύμβολα του πρώτου μισού της εισόδου (μέχρι κάποιο σύμβολο a ή b) αποτελούν καρκινική λέξη. Για να το πετύχει αυτό διαβάζει το πρώτο σύμβολο και προχωρεί στο τέλος του πρώτου μισού της ταινίας για να επιβεβαιώσει ότι στο σημείο αυτό βρίσκεται το ίδιο σύμβολο. 7. Επαναλαμβάνει το βήμα 6 μέχρι να σημαδευτούν όλα τα σύμβολα του πρώτου μισού της ταινίας. 8. Αν αυτό είναι εφικτό η μηχανή αποδέχεται, διαφορετικά απορρίπτει. (β) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing η οποία, με δεδομένο εισόδου μια λέξη w {a,b} * να μετασχηματίζει το περιεχόμενο της ταινίας αντικαθιστώντας κάθε εμφάνιση του a από τη συμβολοσειρά baab. Για παράδειγμα, η λέξη abbaba θα πρέπει να μετασχηματιστεί στην baabbbbaabbbaab. : (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {a,b} 3. Το αλφάβητο ταινίας Γ είναι το Σ {a,b,x,y,a,b,x,y,, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης Περιγραφή μηχανής: 1. Στην πρώτη φάση, η μηχανή διαβάζει και σημαδεύει το πρώτο σύμβολο (αν το σύμβολο ήταν το a το μετατρέπει σε Χ. 2. Προχωρεί στο τέλος της ταινίας όπoυ γράφει baab αν το σύμβολο που διαβάστηκε ήταν το a διαφορετικά γράφει b. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2015 Σελίδα 2

3. Επιστρέφει στην αρχή της ταινίας μέχρι να βρει το πρώτο μη σημαδεμένο σύμβολο και συνεχίζει από το βήμα 1. 4. Αν με αυτό τον τρόπο σημαδευτούν όλα τα a και b, τότε η μηχανή συνεχίζει σύμφωνα με το βήμα 5. 5. Στο σημείο αυτό, η μηχανή βρίσκεται στην κατάσταση q 2 και έχει στόχο να αντιγράψει στην αρχή της ταινίας τη λέξη που καταγράφηκε στο προηγούμενο βήμα. Για να το πετύχει αυτό διαβάζει το πρώτο σύμβολο μετά από το κενό, το διαγράφει (το μετατρέπει σε x) και επιστρέφει στην αρχή της ταινίας όπου και το αντιγράφει. 6. Επαναλαμβάνει το βήμα 5 μέχρι να αντιγραφτούν όλα τα σύμβολα από το τέλος στην αρχή της ταινίας. 7. Τερματίζοντας η μηχανή οδηγείται στην κατάσταση αποδοχής.,a,b A q 0 aa, Α bb, Α aχ, Δ aχ, Δ Δ Χ, Y, Χ, Y Δ baab,α by, Δ by, Δ b,α Δ,a,b A X,Y a, Δ, X, Y A a bδ Χ, Y Δ X,Y a, Δ ax,α q acc Δ b,α X,Y b, Δ, X, Y A X,Y b, Δ Χ, Y Δ Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2015 Σελίδα 3

Άσκηση 2 Θεωρήστε τη γλώσσα { a i b i c j i, j 0, j 2i } Να παρουσιάσετε λεπτομερείς περιγραφές (i) μιας απλής μηχανή Turing και (ii) μιας πολυταινιακής μηχανής Turing που να διαγιγνώσκουν τη γλώσσα και να συγκρίνετε τις δύο μηχανές ως προς τη χρονική τους πολυπλοκότητα. (i) Η πιο κάτω μηχανή Turing λειτουργεί ως εξής. Στην πρώτη φάση για κάθε a στην αρχή της ταινίας εντοπίζει ένα b στο μέσο της ταινίας και 2 c στο τέλος της ταινίας και τα διαγράφει. Αν εξαντληθούν τα a ταυτόχρονα με τα b και τα c νωρίτερα ή ταυτόχρονα με τα a τότε η μηχανή αποδέχεται. Διαφορετικά απορρίπτει. 1_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν x = ε, τότε αποδέξου. 2. Διάτρεξε την ταινία για να επιβεβαιώσεις ότι τα σύμβολα βρίσκονται σε σωστή σειρά. Αν ναι, προχώρα στο βήμα 3 διαφορετικά απόρριψε. 3. Σημάδεψε και διάγραψε την πρώτη θέση. Εφόσον το σύμβολο της θέσης αυτής είναι το a a. Εντόπισε το πρώτο b και διάγραψέ το. Αν δεν υπάρχουν b, απόρριψε. b. Προχώρα μέχρις να βρεις c και διάγραψε 2 από αυτά αν υπάρχουν. 4. Επέστρεψε στην αρχή της ταινίας και βρες το επόμενο a. Διάγραψέ το και συνέχισε όπως και στο βήμα 3. 5. Όταν τα a εξαντληθούν, προχώρα δεξιά. Αν βρεις κάποιο b ή κάποιο c τότε απόρριψε, διαφορετικά αποδέξου Η ΤΜ 1_Tape θα κάνει Ο(n) επαναλήψεις του βήματος 4 όπου n το πλήθος των a στην ταινία. Σε κάθε επανάληψη θα χρειαστεί να διασχίσει τη λέξη. Αφού κάθε διάσχιση απαιτεί Ο(n) βήματα, τα βήματα 3 και 4 απαιτούν χρόνο Ο(n 2 ). Συνεπώς η χρονική πολυπλοκότητας της 1_Tape ανήκει στην τάξη Ο(n 2 ). (ii) Η πιο κάτω τριταινιακή μηχανή Turing λειτουργεί παρόμοια με την 1_Tape. Έχοντας όμως στη διάθεσή της τρεις ταινίες, μπορεί να συγκρίνει τα τρία τμήματα της λέξης ταυτόχρονα αποφεύγοντας την επαναλαμβανόμενη μετακίνηση μέσα στην ταινία. 2_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν x = ε, τότε αποδέξου. 2. Διάτρεξε τη λέξη επιβεβαιώνοντας ότι έχει τη σωστή δομή και αντιγράφοντας τα b στη δεύτερη ταινία και τα c στην τρίτη ταινία. 3. Μετακινήσου στην αρχή των τριών ταινιών. 4. Για κάθε a που διαβάζεις στην πρώτη ταινία διάγραψε ένα b από τη δεύτερη ταινία και 2 c, αν υπάρχουν, από την τρίτη ταινία. 5. Αν εξαντληθούν τα b απόρριψε. 6. Αν εξαντληθούν τα a και εξακολουθούν να υπάρχουν b στη δεύτερη ταινία ή c στην τρίτη ταινία, απόρριψε. 7. Αν δεν ισχύει κανένα από τα πιο πάνω τότε αποδέξου. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2015 Σελίδα 4

Η μηχανή εκτελεί μια διάσχιση της ταινίας στο βήμα 2, μια διάσχιση της ταινίας προς τα πίσω στο βήμα 3 και μια διάσχιση της ταινίας στο βήμα 4. Επομένως ο συνολικός χρόνος εκτέλεσης της ΤΜ είναι Ο(n). Άσκηση 3 Δώστε αφ υψηλού περιγραφές μηχανών Turing που να διαγιγνώσκουν τις ακόλουθες γλώσσες. Σε περίπτωση που θα χρησιμοποιήσετε μηχανές από τις διαλέξεις να τις περιγράψετε. (α) { D 1, D 2 τα D 1 και D 2 είναι δύο DFA τέτοια ώστε L(D 1 ) L(D 2 ) } (β) { G,k,n η G είναι μια ασυμφραστική γραμματική η οποία αποδέχεται ακριβώς k λέξεις μήκους n} (γ) { Ν,k το Ν είναι ένα ΝFA το οποίο αποδέχεται μόνο λέξεις μήκους < k } (α) Η πιο κάτω ΤΜ διαγιγνώσκει τη γλώσσα { D 1, D 2 τα D 1 και D 2 είναι δύο DFA τέτοια ώστε L(D 1 ) L(D 2 ) } 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. Ελέγχουμε αν L(D) = χρησιμοποιώντας τον διαγνώστη Τ (Διαφάνεια 8 10). 4. Αν ο Τ αποδεχθεί τότε αποδεχόμαστε, διαφορετικά απορρίπτουμε. (β) Η πιο κάτω ΤΜ διαγιγνώσκει τη γλώσσα { G,k,n η G είναι μια ασυμφραστική γραμματική η οποία αποδέχεται ακριβώς k λέξεις μήκους n} S = Για είσοδο G,k,n όπου η G είναι μια ασυμφραστική γραμματική και k, n, δύο ακέραιοι 1. Μετατρέπουμε τη G σε μια ισοδύναμη γραμματική σε κανονική μορφή Chomsky. 2. Συντάσσουμε όλες τις παραγωγές 2n 1 βημάτων 3. Aν το πλήθος των λέξεων που προκύπτουν είναι k, αποδεχόμαστε, αλλιώς απορρίπτουμε. (γ) Η πιο κάτω ΤΜ διαγιγνώσκει τη γλώσσα { Ν,k το Ν είναι ένα ΝFA το οποίο αποδέχεται μόνο λέξεις μήκους < k } Το αυτόματο αποδέχεται μόνο λέξεις μήκους < k αν και μόνο αν το μήκος του μακρύτερου μονοπατιού από την αρχική κατάσταση στην τελική κατάσταση είναι μικρότερο του k. Επομένως για να διαγνώσουμε το πρόβλημα είναι αρκετό να υπολογίσουμε το μήκος ενός τέτοιου μονοπατιού. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2015 Σελίδα 5

S = Για είσοδο Ν,k όπου Ν ένα ΝFA και k ένας ακέραιος: 1. Μετάτρεψε το Ν στο ισοδύναμο ντετερμινιστικό αυτόματο D. 2. Χρησιμοποίηση μια διαδικασία διάσχισης γράφων για να εντοπίσεις το τμήμα του αυτομάτου που είναι προσβάσιμο από την αρχική κατάσταση και από το οποίο είναι προσβάσιμες οι τελικές καταστάσεις, έστω D. 3. Χρησιμοποίησε μια από τις γνωστές διαδικασίες διάσχισης γράφων για να αποφασίσεις κατά πόσο το D περιέχει κύκλο. Αν ναι, τότε απόρριψε. Διαφορετικά, προχώρησε στο Βήμα 3. 4. Χρησιμοποίησε τη διαδικασία κατά πλάτους διερεύνησης γράφων ξεκινώντας από την αρχική κατάσταση και στην πορεία μέτρα την ελάχιστη απόσταση ανάμεσα στην αρχική κατάσταση και κάθε κορυφή του αυτομάτου. 5. Αν η μέγιστη απόσταση είναι προς τις τελικές καταστάσεις είναι μικρότερη από το k τότε αποδέξου, διαφορετικά απόρριψε. Άσκηση 4 Ένα αυτόματο ουράς είναι παρόμοιο με ένα αυτόματο στοίβας, με τη διαφορά ότι στη θέση της στοίβας έχει μια ουρά. Με τον όρο ουρά εννοούμε μια ταινία που επιτρέπει την εγγραφή συμβόλων μόνο στο αριστερό της άκρο και την ανάγνωση μόνο στο δεξιό. Συγκεκριμένα, κάθε εγγραφή (ή εισαγωγή) προσθέτει ένα σύμβολο στο αριστερό άκρο της ουράς και κάθε ανάγνωση (ή εξαγωγή) διαβάζει και αφαιρεί ένα σύμβολο από το δεξιό άκρο. Θεωρήστε ότι αρχικά η είσοδος τοποθετείται στην ταινία εισόδου και ακολουθείται από ένα σύμβολο διαστήματος, έτσι ώστε η μηχανή να μπορεί να αναγνωρίσει το τέλος της. Το αυτόματο ουράς αναγνωρίζει τη λέξη εισόδου εάν, σε οποιαδήποτε στιγμή του υπολογισμού, μεταβεί σε κάποια ειδική κατάσταση αποδοχής. Δείξτε ότι μια γλώσσα μπορεί να αναγνωριστεί από ένα αιτιοκρατικό αυτόματο ουράς εάν και μόνο εάν είναι αναγνωρίσιμη. Είναι εύκολο να δούμε ότι κάθε αυτόματο ουράς μπορεί να τύχει προσομοίωσης από μια μηχανή Turing με δύο ταινίες. Για να το δείξουμε χρειάζεται να εξηγήσουμε ότι μια ΤΜ μπορεί να προσομοιώσει τις εντολές Push και Pop ενός αυτομάτου ουράς: Υποθέτουμε ότι οι δύο ταινίες χρησιμοποιούνται ως εξής: Η πρώτη ταινία περιέχει την είσοδο του αυτομάτου ουράς και η δεύτερη ταινία περιέχει τα περιεχόμενα της ουράς. Η δεύτερη ταινία αρχικοποιείται με $ όπου θεωρούμε ότι το σύμβολο $ δηλώνει το άκρο εξαγωγής της ουράς. Εντολή Pop: Μετακινούμαστε στην ταινία για να βρούμε το σύμβολο $. Το σβήνουμε και προχωρούμε μια θέση δεξιά όπου γράφουμε το σύμβολο $. Εντολή Push: Μετακινούμαστε στην ταινία για να βρούμε την πρώτη κενή θέση. Στη θέση αυτή γράφουμε το σύμβολο που θέλουμε να εισάγουμε στην ουρά. Για την αντίθετη κατεύθυνση θα δείξουμε ότι η λειτουργία μιας ΤΜ μπορεί να τύχει προσομοίωσης από ένα αυτόματο ουράς. Κατ αρχή θα πρέπει να επινοήσουμε μια μέθοδο μέσω της οποίας να τοποθετούνται τα περιεχόμενα της ταινίας στην ουρά. Για να το πετύχουμε μπορούμε απλά να τοποθετήσουμε τα στοιχεία της ταινίας στην ουρά ξεκινώντας με το στοιχείο που δείχνει η Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2015 Σελίδα 6

κεφαλή της ταινίας ενώ τα στοιχεία που προηγούνται αυτού του σημείου στην ταινία τα τοποθετούμε στην ουρά μετά από το σύμβολο $ το οποίο δείχνει την αρχή της ταινίας. Για παράδειγμα, αν η ταινία περιέχει τα στοιχεία abcde και η κεφαλή δείχνει το d, τότε στην ουρά θα έχουμε de$abc όπου d είναι το σημείο εξαγωγής και c το σημείο εισαγωγής της ουράς. Στη συνέχεια πρέπει να ορίσουμε τον τρόπο με τον οποίο κάθε δυνατή μετάβαση της ΤΜ μπορεί να προσομοιωθεί από το αυτόματο ουράς. Ξεχωρίζουμε τις πιο κάτω περιπτώσεις: Η ΤΜ επιθυμεί να εκτελέσει την ενέργεια d x, Δ. Στο πιο πάνω παράδειγμα επιθυμούμε να υλοποιήσουμε το πιο κάτω όπου η κεφαλή γράφεται μέσα σε {}. ΤΜ: abc{d}e abcx{e} AO: de$abc e$abcx Είναι εύκολο να δούμε ότι το ζητούμενο μπορεί να υλοποιηθεί με δύο πράξεις: Εφόσον στην κορυφή της ουράς είναι γραμμένο το d, εκτέλεσε Pop και στη συνέχεια Push(x). Η ΤΜ επιθυμεί να εκτελέσει την ενέργεια d x, Α. Για παράδειγμα επιθυμούμε να υλοποιήσουμε το πιο κάτω ΤΜ: abc{d}e ab{c}xe AO: de$abc cxe$ab Για να πετύχουμε τη ζητούμενη μετακίνηση θα πρέπει να αντικαταστήσουμε προφανώς το d με το στοιχείο x, αλλά, επιπρόσθετα να κάνουμε μια κυκλική μετακίνηση των στοιχείων της ουράς έτσι ώστε το στοιχείο που αρχική βρίσκεται στο τέλος της ουράς να έρθει στην αρχή. Για να το πετύχουμε εκτελούμε τα πιο κάτω βήματα: 1. Γράψε # στο τέλος της ουράς. Τρέχον παράδειγμα: de$abc de$abc# 2. Κάνε Pop τον κόμβο κορυφής της ουράς (εφόσον αυτός περιέχει το d) και στην συνέχεια κάνε Push το x στο τέλος της ουράς. Τρέχον παράδειγμα: de$abc# e$abc# e$abc#x 3. Διάβασε 1 στοιχείο από την ουρά. Αν το επόμενο είναι το # τότε κάνε το και αυτό Pop και γράψε πρώτα το # και μετά το πρώτο στοιχείο που διάβασες και πήγαινε στο Βήμα 4. Αν το επόμενο δεν είναι το # γράψε το στοιχείο που διάβασες στο τέλος της ουράς και επανέλαβε το βήμα. Τρέχον παράδειγμα: e$abc#x $abc#xe abc#xe$ bc#xe$a c#xe$ab xe$ab#c Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2015 Σελίδα 7

4. Αυτή τη στιγμή το στοιχείο το οποίο επιθυμούμε να μετακινήσουμε στην αρχή της ουράς (η κεφαλή της ταινίας) βρίσκεται στο τέλος της ουράς. Για να το φέρουμε στην κορυφή διαβάζουμε ένα προς ένα τα στοιχεία και εφόσον δεν είναι το # τα επαναγράφουμε στο τέλος της ταινίας. Μόλις βρούμε το σύμβολο # το αφαιρούμε από την ουρά τερματίζουμε. Τρέχον παράδειγμα: xe$ab#c e$ab#cx $ab#cxe ab#cxe$ b#cxe$a #cxe$ab cxe$ab Αυτό ολοκληρώνει τη ζητούμενη μετακίνηση. Άσκηση 5 Έστω L μια γλώσσα επί κάποιου αλφάβητου Σ. Ορίζουμε ως Suffix(L) τη γλώσσα που περιέχει όλες τις λέξεις που αποτελούν επιθήματα λέξεων της L: Suffix(L) = {wx w L, x Σ * } Να αποδείξετε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη Suffix. Ισχύει το ίδιο για την κλάση των αναγνωρίσιμων γλωσσών; Αιτιολογήστε την απάντησή σας. Για να δείξουμε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη Suffix πρέπει να δείξουμε ότι αν η Α είναι μια διαγνώσιμη γλώσσα, τότε υπάρχει μέθοδος διάγνωσης της γλώσσας Suffix(A). Ας υποθέσουμε ότι η Α είναι μια διαγνώσιμη γλώσσα και Μ μια ΤΜ που τη διαγιγνώσκει. Έστω λέξη w=x 1 x 2 x n. Θέλουμε να αποφασίσουμε κατά πόσο w Suffix(A). Τότε θεωρούμε όλες τις λέξεις w = x 1 x 2 x i, i n. Τρέχουμε μια μια αυτές τις λέξεις στη μηχανή Μ. Αν η Μ αποδεχτεί τη λέξη τότε αποδεχόμαστε, διαφορετικά προχωρούμε στην επόμενη λέξη. Αν η Μ δεν αποδεχτεί καμιά από τις λέξεις τότε απορρίπτουμε. Όσον αφορά στο δεύτερο ερώτημα, μπορούμε να δείξουμε την κλειστότητα της πράξης Suffix και στα πλαίσια των αναγνωρίσιμων γλωσσών χρησιμοποιώντας την ίδια μέθοδο με την περίπτωση των διαγνώσιμων γλωσσών με τη διαφορά ότι, για Α αναγνωρίσιμη γλώσσα, τρέχουμε «παράλληλα» (όπως Διαφάνεια 8 54) όλες τις δυνατές λέξεις w έτσι ώστε η μηχανή μας να μην εγκλωβιστεί σε περίπτωση που η εκτέλεση μιας λέξης οδηγεί σε εγκλωβισμό. Έτσι, αν υπάρχει w A μετά από κάποιο αριθμό βημάτων θα το εντοπίσουμε και θα τερματίσουμε με αποδοχή της w, ενώ αν δεν υπάρχει τέτοια λέξη w υπάρχει η δυνατότητα απόρριψης ή εγκλωβισμού. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2015 Σελίδα 8