Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ είναι μη διαγνώσιμο. Επομένως καμιά μηχανή Turing δεν το διαγιγνώσκει. Το γεγονός αυτό μας οδηγεί στον πιο κάτω αλγόριθμο για διάγνωση της δοθείσας γλώσσας: Μ = Για είσοδο Μ όπου το Μ είναι μια ΤΜ: 1. Απορρίπτουμε. (β) { G,k η G είναι μια ασυμφραστική γραμματική η οποία δεν παράγει καμιά λέξη μήκους < k} Η γλώσσα διαγιγνώσκεται από την πιο κάτω ΤΜ η οποία μεταφράζει τη γραμματική εισόδου σε μια ισοδύναμη γραμματική σε μορφή Chomsky και στη συνέχεια συντάσσει όλες τις δυνατές παραγωγές 2k 1 βημάτων. Μ = Για είσοδο G, k, όπου G μια CFG και k ένας ακέραιος: 1. Μετατρέπουμε τη G σε μια ισοδύναμη γραμματική σε κανονική μορφή Chomsky. 2. Συντάσσουμε όλες τις παραγωγές μέχρι 2k 1 βημάτων. 3. Aν κάποια από τις παραγωγές παράγει μια λέξη, απορρίπτουμε, αλλιώς αποδεχόμαστε. Τερματισμός και Ορθότητα: Όλες οι δυνατές παραγωγής 2k 1 βημάτων είναι πεπερασμένες σε πλήθος. Επομένως η Μ τερματίζει. Επιπλέον, από τη στιγμή που οποιαδήποτε λέξη με μήκος k μπορεί να παραχθεί σε μια γραμματική Chomsky μέσα σε 2k 1 το πολύ βήματα, αν πράγματι η G είναι σε θέση να παραγάγει οποιαδήποτε λέξη όπου n k, ο αλγόριθμος θα την εντοπίσει και θα απαντήσει θετικά. Άσκηση 2 Να δείξετε ότι οι πιο κάτω γλώσσες δεν είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ με αλφάβητο εισόδου το {0,1} η οποία αποδέχεται ακριβώς δύο λέξεις } Θέλουμε να δείξουμε ότι η γλώσσα ΔΥΟ = { Μ,k η Μ είναι μια ΤΜ με αλφάβητο εισόδου το {0,1} η οποία αποδέχεται ακριβώς δύο λέξεις } είναι μη διαγνώσιμη. Για να το δείξουμε θα αναγάγουμε μια γνωστή μη διαγνώσιμη γλώσσα, την Α ΤΜ, στην υπό μελέτη γλώσσα ΔΥΟ. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2016 Σελίδα 1
Συγκεκριμένα, ας υποθέσουμε ότι η γλώσσα ΔΥΟ είναι διαγνώσιμη και η ΤΜ R είναι σε θέση να τη διαγνώσει. Με βάση τον διαγνώστη R θα κατασκευάσουμε ένα διαγνώστη S για το πρόβλημα Α ΤΜ. Αυτό μας οδηγεί σε αντίφαση και επομένως η ΔΥΟ είναι μια μη διαγνώσιμη γλώσσα. O διαγνώστης S έχει ως εξής: S = Με είσοδο Μ,w 1. Φτιάξε τη ΤΜ M η οποία με είσοδο x: (α) Αν x = 0 τότε τρέχει την Μ με είσοδο w. (β) Αν x = 1 τότε τρέχει την Μ με είσοδο w. (γ) Διαφορετικά, απορρίπτει. 2. Τρέξε την R με είσοδο M. 3. Αν η R αποδεχτεί ΑΠΟΔΕΞΟΥ. 4. Αν η R απορρίψει ΑΠΟΡΡΙΨΕ. Εξετάζοντας την πιο πάνω μηχανή παρατηρούμε ότι η μηχανή Μ αποδέχεται ακριβώς δύο λέξεις (τη λέξη 0 και τη λέξη 1) αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Ως εκ τούτου, με είσοδο τη μηχανή Μ, o διαγνώστης R θα αποδεχτεί αν και μόνο αν η μηχανή Μ αποδέχεται δύο λέξεις ή, ισοδύναμα, αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Αυτό ολοκληρώνει την απόδειξη. (β) { Μ η Μ είναι μια ΤΜ η οποία δεν θα γράψει ποτέ το σύμβολο 0 στην ταινία δύο συνεχόμενες φορές} Θέλουμε να δείξουμε ότι η γλώσσα ΔΥΟ 0 = { Μ η Μ είναι μια ΤΜ η οποία δεν θα γράψει ποτέ το σύμβολο 0 στην ταινία δύο συνεχόμενες φορές} είναι μη διαγνώσιμη. Για να το δείξουμε θα αναγάγουμε σε αυτή μια γνωστή μη διαγνώσιμη γλώσσα, την Α TM. Συγκεκριμένα, ας υποθέσουμε ότι η γλώσσα ΔΥΟ 0 είναι διαγνώσιμη και η ΤΜ R είναι σε θέση να τη διαγνώσει. Με βάση τον διαγνώστη R θα κατασκευάσουμε ένα διαγνώστη S για το πρόβλημα Α ΤΜ. Αυτό μας οδηγεί σε αντίφαση και επομένως η ΔΥΟ 0 είναι μια μη διαγνώσιμη γλώσσα. S := Με είσοδο Μ,w 1. Φτιάξε μια παραλλαγή της Μ, έστω Μ ως εξής: i. Μετάτρεψε τη Μ σε μια ΤΜ η οποία αντί του 0 να χειρίζεται κάποιο άλλο σύμβολο, π.χ. το Χ. Δηλαδή, σε κάθε μετάβαση της μηχανής που αναφέρεται στο σύμβολο 0, αντικατάστησε το 0 από Χ. ii. Επιπρόσθετα πρόσθεσε στη μηχανή που έφτιαξες στο Βήμα 1 δύο διαδοχικές μεταβάσεις που να ξεκινούν από την κατάσταση αποδοχής οι οποίες να γράφουν 2 φορές το σύμβολο 0 στην ταινία. Καινούρια κατάσταση αποδοχής του αυτόματου που προκύπτει να είναι η κατάσταση στην οποία οδηγούν οι δύο αυτές μεταβάσεις. Κατά συνέπεια το καινούριο αυτόματο τρέχει λέξεις με τον ίδιο τρόπο όπως και η Μ αλλά στη συνέχεια γράφει το σύμβολο 0 δύο συνεχόμενες φορές στην ταινία. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2016 Σελίδα 2
2. Τρέξε την S με δεδομένο εισόδου την Μ και την w. 3. Αν η S αποδεχτεί τότε αποδέξου. 4. Αν η S απορρίψει τότε απόρριψε. Προφανώς, κάθε φορά που η μηχανή Μ γράφει δύο φορές τον χαρακτήρα 0 στην ταινία της, η μηχανή Μ έχει φτάσει στην κατάσταση αποδοχής. Επομένως, αν η μηχανή S αποδεχτεί την είσοδο Μ,w αυτό συνεπάγεται ότι η μηχανή Μ γράφει δύο φορές το 0 στην ταινία της το οποίο θα συμβεί αν και μόνο αν η Μ αποδέχεται το w. Συνεπώς η S αποτελεί διαγνώστη για τη γλώσσα Α ΤΜ γεγονός που μας οδηγεί σε αντίφαση στην υπόθεσή ότι η γλώσσα ΔΥΟ 0 είναι διαγνώσιμη. Αυτό ολοκληρώνει την απόδειξη. (γ) { Μ η Μ είναι μια ΤΜ η οποία αποδέχεται τη γλώσσα {ww w {a,b} * } } Θέλουμε να δείξουμε ότι η γλώσσα Double = { Μ η Μ είναι μια ΤΜ η οποία αποδέχεται τη γλώσσα {ww w {a,b} * } } είναι μη διαγνώσιμη. Για να το δείξουμε θα αναγάγουμε μια γνωστή μη διαγνώσιμη γλώσσα, την Α ΤΜ, στην υπό μελέτη γλώσσα Double. Συγκεκριμένα, ας υποθέσουμε ότι η γλώσσα Double είναι διαγνώσιμη και η ΤΜ R είναι σε θέση να τη διαγνώσει. Με βάση τον διαγνώστη R θα κατασκευάσουμε ένα διαγνώστη S για το πρόβλημα Α ΤΜ. Αυτό μας οδηγεί σε αντίφαση και επομένως η Double είναι μια μη διαγνώσιμη γλώσσα. O διαγνώστης S έχει ως εξής: S = Με είσοδο Μ,w 1. Φτιάξε τη ΤΜ M η οποία με είσοδο x: (α) Αν η x = x 1 x 2, x 1 = x 2 τότε τρέχει την Μ με είσοδο w. (β) Διαφορετικά, απορρίπτει. 2. Τρέξε την R με είσοδο M. 3. Αν η R αποδεχτεί ΑΠΟΔΕΞΟΥ. 4. Αν η R απορρίψει ΑΠΟΡΡΙΨΕ. Εξετάζοντας την πιο πάνω μηχανή παρατηρούμε ότι η μηχανή Μ αποδέχεται όλες τις λέξεις x που μπορούν να σπάσουν ως x = x 1 x 2, x 1 = x 2, αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Ως εκ τούτου, με είσοδο τη μηχανή Μ, o διαγνώστης R θα αποδεχτεί αν και μόνο αν η μηχανή Μ αποδέχεται τη γλώσσα Double ή, ισοδύναμα, αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Αυτό ολοκληρώνει την απόδειξη. Άσκηση 3 Θεωρήστε την πιο κάτω γλώσσα: ΑΝΕΞΑΡΤΗΤΟ_ΣΥΝΟΛΟ = { G,k o G = (V,E) είναι ένα γράφος ο οποίος διαθέτει ένα σύνολο κόμβων S V μεγέθους k τέτοιο ώστε για κάθε u, v S, (u,v) E } Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2016 Σελίδα 3
Για παράδειγμα, G,3, όπου G o πιο κάτω γράφος, ανήκει στο ΑΝΕΞΑΡΤΗΤΟ_ΣΥΝΟΛΟ αφού διαθέτει το σύνολο με τρεις κόμβους {2,3,5} όπου οι κόμβοι 2, 3 και 5 δεν συνδέονται μεταξύ τους μέσω ακμών. 2 1 3 5 4 (α) Να δείξετε ότι το πρόβλημα αυτό ανήκει στην κλάση ΝΡ. Ακολουθεί αλγόριθμος V που αποτελεί επαληθευτή πολυωνυμικού χρόνου για το πρόβλημα. V := Για είσοδο G, k όπου G ένα μη κατευθυνόμενο γράφημα και k ένας ακέραιος: 1. Επιλέγουμε μη ντετερμινιστικά ένα σύνολο k κόμβων του G, έστω C 2. Ελέγχουμε αν κάποιο ζεύγος κορυφών του C συνδέεται μέσω ακμή στον γράφο G. 3. Αν υπάρχει κάποιο ζεύγος κορυφών που συνδέεται μέσω ακμής απορρίπτουμε, διαφορετικά, αποδεχόμαστε. Ο χρόνος εκτέλεσης του επαληθευτή V είναι πολυωνυμικός ως προς το πλήθος των μεταβλητών της πρότασης, επομένως ο V αποτελεί επαληθευτή πολυωνυμικού χρόνου για το πρόβλημα. (β) Να δείξετε ότι το πρόβλημα είναι ΝΡ πλήρες. Για να δείξουμε ότι το πρόβλημα είναι ΝΡ πλήρες αρκεί να δείξουμε ότι ένα γνωστό ΝΡπλήρες πρόβλημα μπορεί να αναχθεί σε αυτό. Η αναγωγή θα γίνει από το πρόβλημα ΚΛΙΚΑ. Συγκεκριμένα, θα δείξουμε ότι αν υπάρχει πολυωνυμική λύση για το πρόβλημα ΑΝΕΞΑΡΤΗΤΟ_ΣΥΝΟΛΟ τότε υπάρχει πολυωνυμική λύση και για το πρόβλημα ΚΛΙΚΑ. Έστω ένας γράφος G = (V,E) και παράμετρος k. Θέλουμε να αποφασίσουμε κατά πόσο υπάρχει k κλίκα στον γράφο. Κατασκευάζουμε τον γράφο G ως τον γράφο με κορυφές τις κορυφές του G και ακμή ανάμεσα σε δύο κορυφές αν και μόνο οι δύο κορυφές δεν συνδέονται στον γράφο G. Δηλαδή, G = (V,E ) όπου Ε = {(u,v) (u,v) E} Ας υποθέσουμε ότι υπάρχει πολυωνυμική λύση για το πρόβλημα ANEΞΑΡΤΗΤΟ_ΣΥΝΟΛΟ. Τρέχουμε τον σχετικό αλγόριθμο στον γράφο G. Αν ο αλγόριθμος αποδεχτεί τότε απαντούμε ότι ο αρχικός μας γράφος περιέχει k κλίκα, διαφορετικά, αν απορρίψει, τότε απαντούμε ότι ο γράφος δεν περιέχει k κλίκα. Ορθότητα: Παρατηρούμε τα εξής: Ο γράφος G περιέχει ανεξάρτητo σύνολο μεγέθους k Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2016 Σελίδα 4
αν και μόνο αν υπάρχει σύνολο S={v 1, v 2,, v k } τέτοιο ώστε για κάθε v i, v j S, (v i,v j ) E αν και μόνο αv υπάρχει σύνολο S={v 1, v 2,, v k } τέτοιο ώστε για κάθε v i, v j S, (v i,v j ) E (από τον ορισμό του Ε) αν και μόνο αv ο γράφος G περιέχει k κλίκα. Συμπέρασμα: Αν το πρόβλημα ΑΝΕΞΑΡΤΗΤΟ_ΣΥΝΟΛΟ επιλύεται σε πολυωνυμικό χρόνο τότε και το πρόβλημα ΚΛΙΚΑ επιλύεται σε πολυωνυμικό χρόνο. Επομένως το πρόβλημα ΑΝΕΞΑΡΤΗΤΟ_ΣΥΝΟΛΟ είναι ΝΡ πλήρες. Άσκηση 4 Να αποδείξετε ότι οι κλάσεις Ρ και ΝΡ είναι κλειστές ως προς την πράξη της τομής. Κλειστότητα Κλάσης Ρ Έστω Λ 1 και Λ 2 γλώσσες της Ρ. Από τον ορισμό της κλάσης Ρ, υπάρχουν ΤΜ, έστω Μ 1 και Μ 2 οι οποίες διαγιγνώσκουν τις Λ 1 και Λ 2, αντίστοιχα, σε πολυωνυμικό χρόνο. Για να δείξουμε ότι και η Λ 1 Λ 2 ανήκει στην Ρ θα πρέπει να δείξουμε ότι υπάρχει ΤΜ η οποία διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε πολυωνυμικό χρόνο. Η ζητούμενη μηχανή είναι η εξής: Μ := Για είσοδο w 1. Τρέξε την Μ 1 στην w. Αν η Μ 1 απορρίψει, τότε απορρίπτουμε. 2. Διαφορετικά, τρέξε την Μ 2 στην w. Αν η Μ 2 αποδεχτεί, τότε αποδεχόμαστε 3. Διαφορετικά, απορρίπτουμε. Ορθότητα: Η Μ αποδέχεται αν και μόνο αν η w είναι αποδεκτή από την Μ 1 και την Μ 2. Επομένως, από τον ορισμό των Μ 1 και Μ 2, η Μ αποδέχεται αν και μόνο αν η w Λ 1 Λ 2. Χρόνος εκτέλεσης: Αφού οι Μ 1 και Μ 2 έχουν πολυωνυμικό χρόνο εκτέλεσης, τόσο το Βήμα 1 όσο και το Βήμα 2 εκτελούνται σε πολυωνυμικό χρόνο. Συνεπώς, η Μ διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε πολυωνυμικό χρόνο. Κλειστότητα Κλάσης ΝΡ Έστω Λ 1 και Λ 2 γλώσσες της ΝΡ. Από τον ορισμό της κλάσης ΝΡ, υπάρχουν μη ντετερμινιστικές ΤΜ, έστω Ν 1 και Ν 2 οι οποίες διαγιγνώσκουν τις Λ 1 και Λ 2, αντίστοιχα, σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Για να δείξουμε ότι και η Λ 1 Λ 2 ανήκει στην ΝΡ θα πρέπει να δείξουμε ότι υπάρχει μη ντετερμινιστική ΤΜ η οποία διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Η ζητούμενη μηχανή είναι η εξής: Ν := Για είσοδο w 1. Τρέξε την Ν 1 στην w. Αν η Ν 1 απορρίψει, τότε απορρίπτουμε. 2. Διαφορετικά, τρέξε την Ν 2 στην w. Αν η Ν 2 αποδεχτεί, τότε αποδεχόμαστε 3. Διαφορετικά, απορρίπτουμε. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2016 Σελίδα 5
Ορθότητα: Η Ν αποδέχεται αν και μόνο αν η w είναι αποδεκτή από την Ν 1 και την Ν 2. Επομένως, από τον ορισμό των Ν 1 και Ν 2, η Ν αποδέχεται αν και μόνο αν η w Λ 1 Λ 2. Χρόνος εκτέλεσης: Αφού οι Ν 1 και Ν 2 έχουν μη ντετερμινιστικό πολυωνυμικό χρόνο εκτέλεσης, τόσο το Βήμα 1 όσο και το Βήμα 2 εκτελούνται σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Συνεπώς, η Ν διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε μη ντετερμινιστικό πολυωνυμικό χρόνο. Άσκηση 5 Να αποδείξετε ότι για οποιαδήποτε γλώσσα Λ, η Λ είναι διαγνώσιμη αν και μόνο αν είναι αναγνωρίσιμη και συμπληρωματικά αναγνωρίσιμη. : Πρέπει να δείξουμε ότι για οποιαδήποτε γλώσσα Λ ισχύουν οι δύο πιο κάτω προτάσεις: 1. Αν η γλώσσα Λ είναι αναγνωρίσιμη και συμπληρωματικά αναγνωρίσιμη τότε η Λ είναι διαγνώσιμη, και 2. Αν η Λ είναι διαγνώσιμη τότε είναι αναγνωρίσιμη και συμπληρωματικά αναγνωρίσιμη. Μπορείτε να βρείτε την απόδειξη των δύο προτάσεων στη σελίδα 211 του βιβλίου του μαθήματος: M. Sipser, Εισαγωγή στην θεωρία υπολογισμού, Πανεπιστημιακές Εκδόσεις Κρήτης, 2007. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2016 Σελίδα 6