Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { G 1, G 2 οι G 1 και G 2 είναι δύο CFG που παράγουν μια κοινή λέξη μήκους 144 } (β) { D,k το D είναι ένα DFA το οποίο αποδέχεται τουλάχιστον μια λέξη σε k βήματα } (α) H διάγνωση του προβλήματος βασίζεται στην εξής ιδέα: Μια γραμματική σε κανονική μορφή Chomsky, είναι σε θέση να παραγάγει οποιαδήποτε λέξη μήκους 144 σε 2 144 1 = 287 βήματα. Επομένως για να αποφασίσουμε κατά πόσο οι δύο CFG παράγουν μια κοινή λέξη μήκους 144 μπορούμε να τις μετατρέψουμε σε κανονική μορφή Chomsky και να συντάξουμε όλες τις παραγωγές 287 βημάτων. Αν μια λέξη παραχθεί και από τις δύο γραμματικές τότε αποδεχόμαστε, διαφορετικά απορρίπτουμε: Μ = Για είσοδο G 1, G 2 όπου οι G 1 και G 2 είναι δύο CFG: 1. Μετατρέπουμε τις G 1, G 2 σε ισοδύναμες γραμματικές C 1 και C 2 σε κανονική μορφή Chomsky. 2. Συντάσσουμε όλες τις παραγωγές 247 βημάτων της γραμματικής C 1. 3. Συντάσσουμε όλες τις παραγωγές 247 βημάτων της γραμματικής C 2. 4. Αν υπάρχει ζεύγος παραγωγών από τα δύο προηγούμενα βήματα που παράγουν την ίδια λέξη τότε αποδεχόμαστε, αλλιώς απορρίπτουμε. (β) { D,k το D είναι ένα DFA το οποίο αποδέχεται τουλάχιστον μια λέξη σε k βήματα } : Το αυτόματο αποδέχεται τουλάχιστον μια λέξη σε k βήματα αν και μόνο αν περιέχει τουλάχιστον ένα μονοπάτι με k βήματα από την αρχική κατάσταση σε κάποια τελική κατάσταση. Επομένως για να διαγνώσουμε το πρόβλημα είναι αρκετό να διασχίσουμε το αυτόματο και να ελέγξουμε κατά πόσο υπάρχει κάποιο μονοπάτι μήκους k από την αρχική κατάσταση που καταλήγει σε κάποια τελική κατάσταση. S = Για είσοδο D,k όπου D ένα DFA και k ένας ακέραιος: 1. Ξεκίνα από την εναρκτήρια κατάσταση του D. 2. Χρησιμοποίησε μια από τις γνωστές διαδικασίες διάσχισης γράφων (π.χ. BFS) για να εντοπίσεις όλες τις καταστάσεις που βρίσκονται σε απόσταση k από την αρχική κατάσταση. 3. Αν μια από τις καταστάσεις αυτές είναι τελική κατάσταση τότε αποδέξου, διαφορετικά, απόρριψε. Άσκηση 2 Να δείξετε ότι οι πιο κάτω γλώσσες δεν είναι διαγνώσιμες. (α) { Μ,k η Μ είναι μια ΤΜ η οποία αποδέχεται τουλάχιστον μια λέξη μήκους k} (β) { Μ,w η Μ είναι μια ΤΜ η οποία κατά την εκτέλεση της λέξης w, κάποια στιγμή θα γράψει στην ταινία της το στοιχείο 0} Είναι οι πιο πάνω γλώσσες αναγνωρίσιμες; Αιτιολογήστε τις απαντήσεις σας. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2014 Σελίδα 1
(α) Θέλουμε να δείξουμε ότι η γλώσσα ΜήκουςΚ = { Μ,k η Μ είναι μια ΤΜ η οποία αποδέχεται τουλάχιστον μια λέξη μήκους k} είναι μη διαγνώσιμη. Για να το δείξουμε θα αναγάγουμε μια γνωστή μη διαγνώσιμη γλώσσα, την Α ΤΜ, στην υπό μελέτη γλώσσα ΜήκουςΚ. Συγκεκριμένα, ας υποθέσουμε ότι η γλώσσα ΜήκουςΚ είναι διαγνώσιμη και η ΤΜ R είναι σε θέση να τη διαγνώσει. Με βάση τον διαγνώστη R θα κατασκευάσουμε ένα διαγνώστη S για το πρόβλημα Α ΤΜ. Αυτό μας οδηγεί σε αντίφαση και επομένως η ΜήκουςΚ είναι μια μη διαγνώσιμη γλώσσα. O διαγνώστης S έχει ως εξής: S = Με είσοδο Μ,w 1. Φτιάξε τη ΤΜ M η οποία με είσοδο x: (α) Αν η x έχει μήκος k τότε τρέχει την Μ με είσοδο w. (β) Διαφορετικά, τρέχει την Μ με είσοδο x. 2. Τρέξε την R με είσοδο M. 3. Αν η R αποδεχτεί ΑΠΟΔΕΞΟΥ. 4. Αν η R απορρίψει ΑΠΟΡΡΙΨΕ. Εξετάζοντας την πιο πάνω μηχανή παρατηρούμε ότι η μηχανή Μ αποδέχεται μια λέξη μήκους k αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Ως εκ τούτου, με είσοδο τη μηχανή Μ, o διαγνώστης R θα αποδεχτεί αν και μόνο αν η μηχανή Μ αποδέχεται μια λέξη μήκους k ή, ισοδύναμα, αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Αυτό ολοκληρώνει την απόδειξη. (β) Έστω W0 το πρόβλημα που αναφέρεται στην άσκηση. Για να δείξουμε ότι είναι μη διαγνώσιμο θα αναγάγουμε σε αυτό το γνωστό μη διαγνώσιμο πρόβλημα Α TM. Έστω Μ W0 η ΤΜ που διαγιγνώσκει το πρόβλημα W0. Αξιοποιώντας τη μηχανή αυτή, θα κατασκευάσουμε ένα διαγνώστη για το πρόβλημα Α TM. S := Με είσοδο Μ,w 1. Φτιάξε μια παραλλαγή της Μ, έστω Μ, όπου αντικαθιστούμε κάθε εμφάνιση του 0 με 0. Επίσης, δημιουργούμε μια καινούρια κατάσταση αποδοχής η οποία είναι προσβάσιμη από την παλιά κατάσταση αποδοχής μέσω μιας μετάβαση η οποία εγγράφει στην ταινία την τιμή 0. 2. Φτιάξε τη ΤΜ M η οποία με είσοδο x: Τρέχει την Μ με είσοδο τη λέξη w που προκύπτει αν αντικαταστήσουμε κάθε εμφάνιση του 0 στην λέξη w με 0. 3. Τρέξε την Μ W0 με δεδομένο εισόδου την Μ. 4. Αν η Μ W0 αποδεχτεί τότε αποδέξου. 5. Αν η Μ W0 απορρίψει τότε απόρριψε. Προφανώς η μηχανή Μ εγγράφει την τιμή 0 στην ταινία της σε οποιαδήποτε λέξη x αν και μόνο αν η μηχανή Μ εγγράφει την τιμή 0 στην ταινία της στη λέξη w, και αυτό το τελευταίο θα συμβεί, αν και μόνο αν η μηχανή Μ αποδέχεται την λέξη w. Επομένως, κατασκευάσαμε διαγνώστη για τη γλώσσα Α ΤΜ γεγονός που μας οδηγεί σε αντίφαση στην υπόθεσή μας ότι η γλώσσα W0 είναι διαγνώσιμη. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2014 Σελίδα 2
Αναγνωρισιμότητα: (α) Τρέχουμε «παράλληλα» (όπως Διαφάνεια 8 54) στη μηχανή Μ όλες τις λέξεις μήκους k. Έτσι, αν η Μ αποδέχεται έστω και μια λέξη μήκους k μετά από κάποιο αριθμό βημάτων θα το εντοπίσουμε και θα τερματίσουμε με αποδοχή του ζεύγος (Μ,w). (β) Μ Α, μηχανή που αναγνωρίζει τη γλώσσα είναι η εξής:. Τρέξε την Μ στο w. Αν η μηχανή Μ γράψει 0 στην ταινία της τότε αποδέξου, διαφορετικά απόρριψε. Προφανώς, αν το ζεύγος (Μ,w) ανήκει στη γλώσσα, δηλαδή, η Μ γράφει το σύμβολο 0 στην ταινία κατά την εκτέλεση της λέξης w, τότε η Μ Α θα το εντοπίσει και θα αποδεχτεί. Αν όμως η Μ δεν γράφει το 0 στην ταινία της κατά την εκτέλεση της w, τότε η Μ Α θα απορρίψει σε περίπτωση που η Μ τερματίσει ή θα εγκλωβιστεί αν η Μ εγκλωβίζεται. Άσκηση 3 Να δείξετε ότι αν Ρ = ΝΡ τότε οποιαδήποτε γλώσσα της Ρ εκτός από τις και Σ * είναι ΝΡπλήρης. Έστω Α μια γλώσσα της Ρ εκτός από τις και Σ *. Για να δείξουμε ότι είναι NP πλήρης, πρέπει να δείξουμε ότι (α) Α ΝΡ, και (β) Κάθε γλώσσα Β ΝΡ ανάγεται στην Α σε πολυωνυμικό χρόνο. Παρατηρούμε ότι το (α) ισχύει τετριμμένα αφού Α Ρ και Ρ = ΝΡ. Για το (β) ας υποθέσουμε ότι Β ΝΡ. Για να αναχθεί η Β στην Α πρέπει να δείξουμε ότι μπορούμε σε πολυωνυμικό χρόνο να αποφασίσουμε κατά πόσο x B μέσω αναγωγής στο ερώτημα y A για κάποιο y. Επιλέγουμε y A και z A (τέτοια στοιχεία υπάρχουν γιατί Α και Α Σ * ). Έστω στοιχείο x. Αφού Β Ρ υπάρχει πολυωνυμικός αλγόριθμος για να αποφασίσουμε αν x B. Αν αυτό είναι αληθές τότε επιλέγουμε το y και ανάγουμε το πρόβλημα του x B στο πρόβλημα y A. Στην αντίθετη περίπτωση επιλέγουμε το z και ανάγουμε το πρόβλημα του x Β στο πρόβλημα z Α. Άσκηση 4 Θεωρείστε το πιο κάτω πρόβλημα το οποίο εμφανίζεται στην κινητή τηλεφωνία: Ένα σύστημα από σταθμούς είναι υπεύθυνο για τη μετάδοση πακέτων που σχετίζονται με τις κλήσεις των χρηστών του συστήματος. Για να υλοποιηθεί αυτό, σε κάθε σταθμό ανατίθεται ένα εύρος ζώνης/συχνότητα (frequency band) με τον περιορισμό ότι κάποιοι σταθμοί πρέπει να έχουν διαφορετικό εύρος ζώνης έτσι ώστε να αποφευχθεί το φαινόμενο της παρεμβολής ανάμεσα στις διαφορετικές μεταδόσεις. Το πρόβλημα το οποίο καλείστε να λύσετε είναι το εξής: Με δεδομένο εισόδου (i) το πλήθος των διαθέσιμων συχνοτήτων, έστω k, (ii) ένα σύνολο από σταθμούς, Σ, και (iii) ένα σύνολο Ι Σ Σ, να αποφασίσετε κατά πόσο είναι δυνατό να αναθέσουμε μια από τις k διαθέσιμες συχνότητες σε κάθε σταθμό με τέτοιο τρόπο ώστε για κάθε ζεύγος σταθμών (s,s ) I οι σταθμοί s και s να έχουν διαφορετικές συχνότητες. (α) Να αποδείξετε ότι για k = 2 το πρόβλημα ανήκει στο Ρ. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2014 Σελίδα 3
(β) Να δείξετε ότι για k > 2 το πρόβλημα ανήκει στην κλάση ΝΡ. (γ) Να δείξετε ότι για k > 2 το πρόβλημα είναι ΝΡ πλήρες. (α) Από τον ορισμό της κλάσης Ρ αυτό ισχύει αν και μόνο αν υπάρχει αλγόριθμος πολυωνυμικού χρόνο εκτέλεσης που επιλύνει το πρόβλημα. Ένας τέτοιος αλγόριθμος μπορεί πράγματι να κτιστεί χρησιμοποιώντας ως βάση τον αλγόριθμο διάσχισης γράφων BFS: 1. Επιλέγουμε τυχαία ένα σταθμό s Σ και του αναθέτουμε μια από τις 2 συχνότητες. 2. Για κάθε σταθμό s, όπου (s,s ) I, αναθέτουμε στον s τη δεύτερη από τις δύο συχνότητες. 3. Επαναλαμβάνουμε το βήμα 2 για κάθε σταθμό s στον οποίο έχουμε αναθέσει συχνότητα. 4. Αν στην προσπάθειά μας να αναθέσουμε σε κάποιο σταθμό μια από τις δύο συχνότητες αντιληφθούμε ότι ο σταθμός έχει ήδη την άλλη συχνότητα τότε απορρίπτουμε. Αν καταφέρουμε να αναθέσουμε σε κάθε σταθμό κάποια συχνότητα χωρίς να αντιμετωπίσουμε αυτό το πρόβλημα, τότε αποδεχόμαστε. (β) Μια γλώσσα Λ ανήκει στην ΝΡ αν ισχύει μια από τις πιο κάτω προτάσεις: (i) Η Λ επιδέχεται επαληθευτή πολυωνυμικού χρόνου. (ii) Υπάρχει ΤΜ μη ντετερμινιστικού πολυωνυμικού χρόνου που διαγιγνώσκει τη Λ. Πιο κάτω αποδεικνύονται και οι δύο προτάσεις. Απόδειξη 1: Ακολουθεί αλγόριθμος V που αποτελεί επαληθευτή πολυωνυμικού χρόνου για το πρόβλημα. V := Για είσοδο k, Σ, Ι όπου o Σ ένα σύνολο σταθμών, k το πλήθος των διαθέσιμων συχνοτήτων και σύνολο Ι Σ Σ και επιπρόσθετα Χ, μια ανάθεση συχνοτήτων στους σταθμούς: 1. Αν κάθε ζεύγος (s,s ) I οι σταθμοί s και s έχουν διαφορετική συχνότητα στο Χ, τότε αποδεχόμαστε. 2. Διαφορετικά, απορρίπτουμε. Ο χρόνος εκτέλεσης του επαληθευτή V είναι της τάξης Ο(n 2 ) όπου n το πλήθος των σταθμών, επομένως ο V αποτελεί επαληθευτή πολυωνυμικού χρόνου για το πρόβλημα. Απόδειξη 2: Ακολουθεί μη ντετερμινιστική ΤΜ Ν που διαγιγνώσκει στη γλώσσα σε πολυωνυμικό χρόνο. Ν := Για είσοδο k, Σ, Ι όπου o Σ ένα σύνολο σταθμών, k το πλήθος των διαθέσιμων συχνοτήτων και σύνολο Ι Σ Σ : Επέλεξε μη ντετερμινιστικά μια ανάθεση συχνοτήτων στους σταθμούς Χ 1. Αν κάθε ζεύγος (s,s ) I οι σταθμοί s και s έχουν διαφορετική συχνότητα στο Χ, τότε αποδεχόμαστε. 2. Διαφορετικά, απορρίπτουμε. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2014 Σελίδα 4
Ο χρόνος εκτέλεσης της ΤΜ Ν είναι της τάξης Ο(n 2 ) όπου n το πλήθος των σταθμών, επομένως η Ν αποτελεί μια μη ντετερμινιστική ΤΜ πολυωνυμικού χρόνου για το πρόβλημα. (γ) Για να δείξουμε ότι το πρόβλημα είναι ΝΡ πλήρες αρκεί να δείξουμε ότι ένα γνωστό ΝΡπλήρες πρόβλημα μπορεί να αναχθεί σε αυτό. Η αναγωγή θα γίνει από το πρόβλημα k ΧΡΩΜΑΤΙΣΙΜΟΣ. Συγκεκριμένα, θα δείξουμε ότι αν υπάρχει πολυωνυμική λύση για το πρόβλημα της άσκησης τότε υπάρχει πολυωνυμική λύση και για το πρόβλημα k ΧΡΩΜΑΤΙΣΙΜΟΣ. Έστω ένας γράφος G και ακέραιος k. Θέλουμε να αποφασίσουμε κατά πόσο ο γράφος είναι k χρωματίσιμος. Ας υποθέσουμε ότι υπάρχει πολυωνυμική λύση για το πρόβλημα της άσκησης. Θέτουμε ως Σ ως το σύνολο κορυφών του γράφου. Θέτουμε ως k το πλήθος των διαθέσιμων συχνοτήτων και ως Ι το σύνολο των ακμών του γράφου. Τρέχουμε τον αλγόριθμο για ανάθεση συχνοτήτων στους σταθμούς του συνόλου Σ. Αν ο αλγόριθμος εντοπίσει νόμιμη ανάθεση τότε απαντούμε ότι ο αρχικός μας γράφος είναι k χρωματίσιμος διαφορετικά, αν απορρίψει, τότε απαντούμε ότι ο γράφος δεν είναι k χρωματίσιμος. Ορθότητα: Παρατηρούμε τα πιο κάτω. Ο γράφος G περιέχει είναι k χρωματίσιμος αν και μόνο αν υπάρχει ανάθεση χρωμάτων στους κόμβους του όπου για κάθε ακμή (v,u) οι κορυφές u και v έχουν διαφορετικά χρώματα αν και μόνο αν υπάρχει ανάθεση συχνοτήτων στους σταθμούς Σ όπου για κάθε (v,u) Ι οι σταθμοί u και v έχουν διαφορετικές συχνότητες. Συμπέρασμα: Αν το πρόβλημα της άσκησης επιλύεται σε πολυωνυμικό χρόνο τότε και το πρόβλημα k ΧΡΩΜΑΤΙΣΙΜΟΣ επιλύεται σε πολυωνυμικό χρόνο. Επομένως το πρόβλημα της άσκησης είναι ΝΡ πλήρες. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2014 Σελίδα 5