Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Πιο κάτω υπάρχει ένα σχεδιάγραμμα που τοποθετεί τις κλάσεις των κανονικών, ασυμφραστικών, διαγνώσιμων και αναγνωρίσιμων γλωσσών μέσα στο σύνολο όλων των γλωσσών. Ακολουθούν 12 αριθμημένες γλώσσες. Να γράψετε τον αριθμό κάθε γλώσσας στην κλάση που ανήκει. Σαν παράδειγμα έχουν ήδη τοποθετηθεί στο διάγραμμα οι αριθμοί των δύο πρώτων γλωσσών: η γλώσσα με αριθμό 1 είναι κανονική ενώ η γλώσσα με αριθμό 2 είναι αναγνωρίσιμη (αλλά δεν είναι ούτε διαγνώσιμη, ούτε ασυμφραστική, ούτε κανονική). Αναγνωρίσιμες Γλ. Όλες οι Γλώσσες 7 6 2 Διαγνώσιμες Γλ. Ασυμφραστικές Γλ. 10 9 Κανονικές Γλ. 12 2 1 3 8 11 5 4 1. Σ * 2. Α ΤΜ (Το πρόβλημα της Αποδοχής σε Μηχανές Turing) 3. { a i b j c k i,j,k 0 και i = j ή i = k ή j = k } 4. { D το D είναι ένα DFA το οποίο αποδέχεται όλες τις λέξεις στο Σ * } 5. { w {a,b} * η w περιέχει διπλάσιο αριθμό a από b } 6. k ΚΛΙΚΑ (To πρόβλημα εύρεσης k κλίκας σε ένα γράφο) 7. { Μ,k η Μ είναι μια ΤΜ η οποία αποδέχεται τουλάχιστον μια λέξη μήκους k } 8. { a i b j a j b i i, j > 0 } Λύσεις Σειράς Προβλημάτων 5 Χειμερινό Εξάμηνο 2018 Σελίδα 1
9. { Μ,w η Μ είναι μια ΤΜ η οποία εγκλωβίζεται στη λέξη w } 10. { ww R a w w {a,b} * } 11. { G 1, G 2 οι G 1 και G 2 είναι δύο CFG που παράγουν μια κοινή λέξη μήκους 100 } 12. { a k baba n k = n mod 2} Άσκηση 2 [30 μονάδες] Να δείξετε ότι οι πιο κάτω γλώσσες δεν είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία αποδέχεται όλες τις λέξεις επί του αλφάβητού της μήκους 2 και απορρίπτει όλες τις λέξεις μήκους 3 } (β) { Μ,w η Μ είναι μια ΤΜ και η w μια λέξη έτσι ώστε Μ, κατά τη διάρκεια του υπολογισμού της στο w, να μην επιχειρεί ποτέ να κινήσει την κεφαλή της αριστερά στην ταινία ενώ αυτή βρίσκεται στο αριστερότερο άκρο της ταινίας } Λύση: (α) Θέλουμε να δείξουμε ότι η γλώσσα 2 3 = { Μ η Μ είναι μια ΤΜ η οποία αποδέχεται όλες τις λέξεις επί του αλφάβητού της μήκους 2 και απορρίπτει όλες τις λέξεις μήκους 3 } είναι μη διαγνώσιμη. Για να το δείξουμε θα αναγάγουμε μια γνωστή μη διαγνώσιμη γλώσσα, την Α ΤΜ, στην υπό μελέτη γλώσσα ΘΥ3. Συγκεκριμένα, ας υποθέσουμε ότι η γλώσσα 2 3 είναι διαγνώσιμη και η ΤΜ R είναι σε θέση να τη διαγνώσει. Με βάση τον διαγνώστη R θα κατασκευάσουμε ένα διαγνώστη S για το πρόβλημα Α ΤΜ. Αυτό μας οδηγεί σε αντίφαση και επομένως η 2 3 είναι μια μη διαγνώσιμη γλώσσα. O διαγνώστης S έχει ως εξής: S = Με είσοδο Μ,w 1. Φτιάξε τη ΤΜ M η οποία με είσοδο x: (α) Αν η x έχει μήκος 3, η Μ απορρίπτει (β) Αν η x έχει μήκος 2, η Μ τρέχει το Μ με είσοδο w. Αν η Μ αποδεχτεί το w τότε και η M αποδέχεται διαφορετικά απορρίπτει. (γ) Διαφορετικά, η Μ αποδέχεται. 2. Τρέξε την R με είσοδο M. 3. Αν η R αποδεχτεί ΑΠΟΔΕΞΟΥ. 4. Αν η R απορρίψει ΑΠΟΡΡΙΨΕ. Εξετάζοντας την πιο πάνω μηχανή παρατηρούμε ότι η μηχανή Μ απορρίπτει όλες τις λέξεις μήκους 3 και αποδέχεται όλες τις λέξεις μήκους 2 αν και μόνο αν η η μηχανή Μ αποδέχεται τη λέξη w. Επομένως η R θα αποδεχθεί την Μ αν και μόνο αν η Μ αποδέχεται τη w. Συνεπώς η S αποδέχεται την είσοδο Μ,w αν και μόνο αν η Μ αποδέχεται τη w, που είναι και το ζητούμενο. Αυτό ολοκληρώνει την απόδειξη. Λύσεις Σειράς Προβλημάτων 5 Χειμερινό Εξάμηνο 2018 Σελίδα 2
(β) Έστω LEFT το πρόβλημα που αναφέρεται στην άσκηση. Για να δείξουμε ότι είναι μη επιλύσιμο (η γλώσσα είναι μη διαγνώσιμη) θα αναγάγουμε σε αυτό τη γνωστό μη διαγνώσιμη γλώσσα Α TM. Έστω Μ LEFT η ΤΜ που διαγιγνώσκει τη γλώσσα LEFT. Αξιοποιώντας τη μηχανή αυτή, θα κατασκευάσουμε ένα διαγνώστη για τη γλώσσα Α TM. S := Με είσοδο Μ,w 1. Φτιάξε μια παραλλαγή της Μ, έστω Μ, όπου i. Στην ταινία της Μ κάθε χαρακτήρας μεταφέρεται μια θέση δεξιά ii. Στο αριστερό άκρο γράφεται ο χαρακτήρας # iii. Κάθε μετάβαση στην κατάσταση αποδοχής της Μ, στην Μ να οδηγεί σε μια καινούρια κατάσταση q a από όπου η κεφαλή της ταινίας μετακινείται αριστερά μέχρι το # και η μηχανή εισέρχεται στην κατάσταση q left. iv. Αν η κεφαλή διαβάζει # αλλά δεν βρισκόμαστε στη κατάσταση q left τότε μετακινούμαστε μια θέση δεξιά. v. Αν η κεφαλή διαβάζει # και η μηχανή βρίσκεται στην κατάσταση q lef, τότε μετακινήσου μια θέση αριστερά. 2. Τρέξε την Μ LEFT με δεδομένο εισόδου την Μ 3. Αν η Μ LEFT αποδεχτεί τότε αποδέξου. 4. Αν η Μ LEFT απορρίψει τότε απόρριψε. Προφανώς όταν η μηχανή Μ κινεί προς τα αριστερά την κεφαλής της ενώ βρίσκεται στην αριστερότερη θέση της ταινίας σημαίνει ότι η Μ έχει φτάσει στην κατάσταση αποδοχής. Σε διαφορετική περίπτωση η κεφαλή της ταινίας θα κινείται πάντα προς τα δεξιά όταν βρίσκεται στο #, το αριστερό άκρο. Επομένως, κατασκευάσαμε διαγνώστη για τη γλώσσα Α ΤΜ γεγονός που μας οδηγεί σε αντίφαση στην υπόθεσή μας ότι η γλώσσα LEFT TM είναι διαγνώσιμη. Άσκηση 3 [20 μονάδες] Να αποδείξετε ότι η κλάση ΝΡ είναι κλειστή ως προς τις πράξεις της τομής και της σώρευσης. Ισχύει το ίδιο για την κλάση Ρ; Αποδείξτε την απάντησή σας. Λύση Κλειστότητα Κλάσης ΝΡ: Θα πρέπει να δείξουμε ότι: (α) Τομή: Αν οι Λ 1 και Λ 2 είναι γλώσσες της ΝΡ, τότε και η Λ 1 Λ 2 ανήκει στην ΝΡ. (β) Σώρευση: Αν η Λ είναι γλώσσα της Ρ, τότε και η Λ* ανήκει στην Ρ. (α) Έστω Λ 1 και Λ 2 γλώσσες της Ρ. Από τον ορισμό της κλάσης Ρ, υπάρχουν μη ντετερμινιστικές ΤΜ, έστω Ν 1 και Ν 2 οι οποίες διαγιγνώσκουν τις Λ 1 και Λ 2, αντίστοιχα, σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Για να δείξουμε ότι και η Λ 1 Λ 2 ανήκει στην ΝΡ θα πρέπει να δείξουμε ότι υπάρχει μη ντετερμινιστική ΤΜ η οποία διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Η ζητούμενη μηχανή είναι η εξής: Ν := Για είσοδο w 1. Τρέξε την Ν 1 στην w. Αν η Ν 1 αποδεχτεί, τότε προχώρα στο βήμα 2, διαφορετικά απόρριψε. Λύσεις Σειράς Προβλημάτων 5 Χειμερινό Εξάμηνο 2018 Σελίδα 3
2. Τρέξε την Ν 2 στην w. Αν η Ν 2 αποδεχτεί, τότε αποδέξου. 3. Διαφορετικά, απόρριψε. Ορθότητα: Η Ν αποδέχεται αν και μόνο αν η w είναι αποδεκτή από την Ν 1 και την Ν 2. Επομένως, από τον ορισμό των Ν 1 και Ν 2, η Ν αποδέχεται αν και μόνο αν η w Λ 1 Λ 2. Χρόνος εκτέλεσης: Αφού οι Ν 1 και Ν 2 έχουν μη ντετερμινιστικό πολυωνυμικό χρόνο εκτέλεσης, τόσο το Βήμα 1 όσο και το Βήμα 2 εκτελούνται σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Συνεπώς, η Ν διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε μη ντετερμινιστικό πολυωνυμικό χρόνο. (β) Έστω Λ γλώσσα της ΝΡ. Από τον ορισμό της κλάσης ΝΡ, υπάρχει ΤΜ, έστω Ν η οποία διαγιγνώσκει τη Λ σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Για να δείξουμε ότι και Λ * ανήκει στην Ρ θα πρέπει να δείξουμε ότι υπάρχει ΤΜ η οποία διαγιγνώσκει τη γλώσσα Λ * σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Η ζητούμενη μηχανή είναι η εξής: Ν := Για είσοδο w 1. Αν w=ε τότε αποδέξου. 2. Διαφορετικά, για κάθε δυνατό σπάσιμο της w σε i μέρη w = x 1 x 2 x i, όπου 1 i n, n = w και x i Σ*: a. Τρέξε την N στα x 1, x 2,, x i. Αν η N αποδεχτεί σε κάθε υπολέξη, τότε αποδέξου. b. Διαφορετικά, απόρριψε. Ορθότητα: Η Ν αποδέχεται την w αν και μόνο αν η w μπορεί να σπάσει σε ένα σύνολο από υπολέξεις που είναι αποδεκτές από την Ν. Επομένως, η Ν αποδέχεται αν και μόνο αν η w Λ *. Χρόνος εκτέλεσης: Αφού η Ν έχει μη ντετερμινιστικό πολυωνυμικό χρόνο εκτέλεσης η Ν έχει επίσης πολυωνυμικό χρόνο εκτέλεσης και το ζητούμενο έπεται. Κλειστότητα Κλάσης Ρ: Θα πρέπει να δείξουμε ότι: (α) Τομή: Αν οι Λ 1 και Λ 2 είναι γλώσσες της Ρ, τότε και η Λ 1 Λ 2 ανήκει στην Ρ. (β) Σώρευση: Αν η Λ είναι γλώσσα της Ρ, τότε και η Λ* ανήκει στην Ρ. (α) Έστω Λ 1 και Λ 2 γλώσσες της Ρ. Από τον ορισμό της κλάσης Ρ, υπάρχουν ΤΜ, έστω Μ 1 και Μ 2 οι οποίες διαγιγνώσκουν τις Λ 1 και Λ 2, αντίστοιχα, σε πολυωνυμικό χρόνο. Για να δείξουμε ότι και η Λ 1 Λ 2 ανήκει στην Ρ θα πρέπει να δείξουμε ότι υπάρχει ΤΜ η οποία διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε πολυωνυμικό χρόνο. Η ζητούμενη μηχανή είναι η εξής: Μ := Για είσοδο w 1. Τρέξε την Μ 1 στην w. Αν η Μ 1 αποδεχτεί, τότε προχώρα στο βήμα 2, διαφορετικά απόρριψε. 2. Τρέξε την Μ 2 στην w. Αν η Μ 2 αποδεχτεί, τότε αποδέξου. 3. Διαφορετικά, απόρριψε. Ορθότητα: Η Μ αποδέχεται αν και μόνο αν η w είναι αποδεκτή από την Μ 1 και την Μ 2. Επομένως, από τον ορισμό των Μ 1 και Μ 2, η Μ αποδέχεται αν και μόνο αν η w Λ 1 Λ 2. Λύσεις Σειράς Προβλημάτων 5 Χειμερινό Εξάμηνο 2018 Σελίδα 4
Χρόνος εκτέλεσης: Αφού οι Μ 1 και Μ 2 έχουν πολυωνυμικό χρόνο εκτέλεσης, τόσο το Βήμα 1 όσο και το Βήμα 2 εκτελούνται σε πολυωνυμικό χρόνο. Συνεπώς, η Μ διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε πολυωνυμικό χρόνο. (β) Έστω Λ γλώσσα της Ρ. Από τον ορισμό της κλάσης Ρ, υπάρχει ΤΜ, έστω Μ η οποία διαγιγνώσκει τη Λ σε ντετερμινιστικό πολυωνυμικό χρόνο. Για να δείξουμε ότι και η Λ * ανήκει στην Ρ θα πρέπει να δείξουμε ότι υπάρχει ΤΜ η οποία διαγιγνώσκει τη γλώσσα Λ * σε ντετερμινιστικό πολυωνυμικό χρόνο. Παρατηρούμε ότι αν απλά εφαρμόσουμε την ιδέα όπως υλοποιήθηκε για την περίπτωση της κλάση ΝΡ τότε ο αλγόριθμός μας δεν θα έχει πολυωνυμικό χρόνο εκτέλεσης: το σύνολο των δυνατών σπασιμάτων δεν είναι πολυωνυμικό έτσι η σειριακή εκτέλεση και αναζήτηση ανάμεσα σε όλα τα δυνατά σπασίματα θα οδηγήσει σε υπερ πολυωνυμικό αλγόριθμο. Εντούτοις υπάρχει πολυωνυμικός αλγόριθμος για το πρόβλημα ο οποίος βασίζεται σε δυναμικό προγραμματισμό ως εξής: Χρησιμοποιούμε ένα δισδιάστατο πίνακα Α[n,n] όπου n = w, w= x 1x 2 x n η λέξη εισόδου, όπου στη θέση Α[i,j] θα αποθηκεύουμε την τιμή True αν η λέξη x ix i+1 x j Λ *, Η ζητούμενη μηχανή είναι η εξής: M := Για είσοδο w 1. Αν w = ε τότε αποδέξου, διαφορετικά 2. Για i = 1 μέχρι n a. Για k = 1 μέχρι n (i 1) b. j = i+k 1 c. Τρέξε την Μ στη λέξη x ix i+1 x j d. Αν η Μ αποδεχθεί, θέσε Α[i,j] =True e. Διαφορετικά, i. Για m = i μέχρι j 1 ii. Αν Α[i,k] = True και Α[k+1,j]= True τότε θέσε Α[i,j] =True iii. Διαφορετικά Α[i,j] = False 3. Aν Α[1,n] = True τότε αποδέξου, διαφορετικά απόρριψε. Ορθότητα: Η Μ αποδέχεται τη w αν και μόνο αν η w μπορεί να σπάσει σε ένα σύνολο από υπολέξεις που είναι αποδεκτές από την Μ. Επομένως, η Μ αποδέχεται αν και μόνο αν w Λ *. Χρόνος εκτέλεσης: Το βήμα 2, εκτελεί n 2 επαναλήψεις. Αφού η Μ έχει ντετερμινιστικό πολυωνυμικό χρόνο εκτέλεσης, κάθε επανάληψη του βήματος απαιτεί πολυωνυμικό χρόνο εκτέλεσης. Επομένως η Μ έχει επίσης πολυωνυμικό χρόνο εκτέλεσης και το ζητούμενο έπεται. Άσκηση 4 [30 μονάδες] Ένας γράφος G = (V,E) με 2k κορυφές ονομάζεται k χαρταετός αν το σύνολο των κορυφών του μπορεί να χωριστεί σε δύο σύνολα κόμβων V 1 και V 2 όπου: Τα σύνολα V 1 και V 2 περιέχουν k κόμβους το κάθε ένα. Κάθε ζευγάρι κορυφών του V 1 συνδέονται μεταξύ τους μέσω ακμής. Οι κόμβοι του V 2 είναι ενωμένοι γραμμικά σε ένα μονοπάτι που καταλήγει σε μια από τις κορυφές του V 1. Πιο κάτω ακολουθούν παραδείγματα k χαρταετών. Λύσεις Σειράς Προβλημάτων 5 Χειμερινό Εξάμηνο 2018 Σελίδα 5
(i) 3-χαρταετός (ii) 4 χαρταετός (iii) 5-χαρταετός Με βάση την έννοια αυτή ορίζουμε τη γλώσσα k ΧΑΡΤΑΕΤΟΣ ως εξής: k ΧΑΡΤΑΕΤΟΣ = { G,k o G = (V,E) είναι ένα γράφος ο οποίος περιέχει ένα k χαρταετό}. (α) Να δείξετε ότι η γλώσσα k XΑΡΤΑΕΤΟΣ ανήκει στην κλάση ΝΡ. (β) Να δείξετε ότι η γλώσσα k ΧΑΡΤΑΕΤΟΣ είναι ΝΡ πλήρης μέσω αναγωγής από το γνωστό ΝΡ πλήρες πρόβλημα της Κλίκας. Λύση (α) Ακολουθεί αλγόριθμος Ν που αποτελεί μη ντετερμινιστικό διαγνώστη πολυωνυμικού χρόνου για το πρόβλημα. Ν := Για είσοδο G, k όπου G ένα μη κατευθυνόμενο γράφημα και k ένας ακέραιος: 1. Επιλέγουμε μη ντετερμινιστικά δύο σύνολα k κόμβων του G, έστω C 1 και C 2, ξένα μεταξύ τους 2. Αν κάθε ζεύγος κορυφών του C 1 συνδέεται μέσω ακμής, τότε προχώρησε στο βήμα 3, διαφορετικά απόρριψε. 3. Αν οι κορυφές του C 2 συνδέονται μεταξύ τους γραμμικά και επίσης με κάποια κορυφή του C 1, τότε αποδέξου, διαφορετικά απόρριψε. Ο χρόνος εκτέλεσης του Ν είναι πολυωνυμικός ως προς το μέγεθος του γράφου, επομένως ο Ν αποτελεί μη ντετερμινιστικό διαγνώστη πολυωνυμικού χρόνου για το πρόβλημα. Συμπεραίνουμε ότι το πρόβλημα ανήκει στην κλάση ΝΡ. (β) Για να δείξουμε ότι το πρόβλημα είναι ΝΡ πλήρες αρκεί να δείξουμε ότι ένα γνωστό ΝΡ πλήρες πρόβλημα μπορεί να αναχθεί σε αυτό. Η αναγωγή θα γίνει από το πρόβλημα ΚΛΙΚΑ. Συγκεκριμένα, θα δείξουμε ότι αν υπάρχει πολυωνυμική λύση για το πρόβλημα k ΧΑΡΤΑΕΤΟΣ τότε υπάρχει πολυωνυμική λύση και για το πρόβλημα ΚΛΙΚΑ. Έστω ένας γράφος G = (V,E) και παράμετρος k. Θέλουμε να αποφασίσουμε κατά πόσο υπάρχει k κλίκα στον γράφο. Κατασκευάζουμε τον γράφο G ως την επέκταση του γράφου G όπου εισάγουμε μια ακολουθία από k καινούριες κορυφές τις οποίες συνδέουμε μεταξύ τους γραμμικά και επιπρόσθετα επιλέγουμε ένα από τα δύο άκρα της γραμμικής ακολουθίας το οποίο ενώνουμε και με κάθε κορυφή του αρχικού γράφου. Δηλαδή, G = (V,E ) όπου V = V {u 1,, u k} για κορυφές u 1,, u k V Ε = E {(u 1,u 2),, (u k 1,u k)} {(v, u 1) v V} Ας υποθέσουμε ότι υπάρχει πολυωνυμική λύση για το πρόβλημα k ΧΑΡΤΑΕΤΟΣ. Τρέχουμε τον σχετικό αλγόριθμο στον γράφο G. Αν ο αλγόριθμος αποδεχτεί τότε απαντούμε ότι ο αρχικός μας γράφος περιέχει k κλίκα, διαφορετικά, αν απορρίψει, τότε απαντούμε ότι ο γράφος δεν περιέχει k κλίκα. Λύσεις Σειράς Προβλημάτων 5 Χειμερινό Εξάμηνο 2018 Σελίδα 6
Ορθότητα: Παρατηρούμε τα εξής: Ο γράφος G περιέχει k χαρταετό αν και μόνο αν υπάρχουν σύνολα V 1 και V 2 με k κόμβους το κάθε ένα στο V, όπου κάθε ζευγάρι κορυφών του V 1 συνδέονται μεταξύ τους μέσω ακμής και οι κόμβοι του V 2 είναι ενωμένοι γραμμικά σε ένα μονοπάτι που καταλήγει σε μια από τις κορυφές του V 1 αν και μόνο αv υπάρχει σύνολο V 1 με k κόμβους στο V, όπου κάθε ζευγάρι κορυφών του V 1 συνδέονται μεταξύ τους μέσω ακμής αν και μόνο αv ο γράφος G περιέχει k κλίκα. Συμπέρασμα: Αν το πρόβλημα k ΧΑΡΤΑΕΤΟΣ επιλύεται σε πολυωνυμικό χρόνο τότε και το πρόβλημα ΚΛΙΚΑ επιλύεται σε πολυωνυμικό χρόνο. Επομένως, αφού το πρόβλημα της ΚΛΙΚΑΣ είναι ΝΡ πλήρες και το πρόβλημα k ΧΑΡΤΑΕΤΟΣ είναι ΝΡ πλήρες. Λύσεις Σειράς Προβλημάτων 5 Χειμερινό Εξάμηνο 2018 Σελίδα 7