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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { D το D είναι ένα DFA το οποίο αποδέχεται όλες τις λέξεις στο Σ * } (α) Για να διαγνώσουμε το πρόβλημα μπορούμε να φτιάξουμε ένα αυτόματο το οποίο να αποδέχεται όλες τις λέξεις στο Σ * και στη συνέχεια να ελέγξουμε κατά πόσο αυτό το αυτόματο είναι ισοδύναμο με το αυτόματο D. Επομένως: Μ = Για είσοδο D όπου το D είναι ένα DFA: 1. Δημιουργούμε το αυτόματο Ε = ({q}, Σ, δ, q, {q}) όπου δ(q,a)=q για κάθε a Σ. 2. Εκτελούμε τη μηχανή F από τη διαφάνεια 8 12 για να αποφασίσουμε αν τα αυτόματα D και Ε αποδέχονται την ίδια γλώσσα. 3. Αν η μηχανή F αποδεχτεί τότε αποδεχόμαστε, αλλιώς απορρίπτουμε. (β) { Μ η Μ είναι μια ΤΜ η οποία θα εκτελέσει τουλάχιστον 5 κινήσεις σε τουλάχιστον μια λέξη w } H διάγνωση του προβλήματος βασίζεται στην εξής ιδέα: Για να αποφασίσουμε κατά πόσο η μηχανή Μ μπορεί να εκτελέσει τουλάχιστον 5 κινήσεις σε τουλάχιστον μια λέξη τότε θα μπορούσαμε να τρέξουμε την Μ σε όλες τις λέξεις και μόλις βρούμε την πρώτη λέξη για την οποία η μηχανή εκτελεί 5 κινήσεις να τερματίσουμε και να αποδεχτούμε. Το πρόβλημα με αυτή την προσέγγιση είναι ότι το σύνολο των δυνατών λέξεων δυνατόν να είναι μη πεπερασμένο. Από τη στιγμή όμως που μας ενδιαφέρουν μόνο οι 5 πρώτες κινήσεις είναι αρκετό να δοκιμάσουμε τις λέξεις που έχουν 5 το πολύ σύμβολα. Το πλήθος αυτών των λέξεων είναι x 5 όπου x το μέγεθος του αλφάβητου της μηχανής μας. Η ζητούμενη μηχανή έχει ως εξής: G = Για είσοδο M όπου το M είναι μια ΤΜ με αλφάβητο Σ: 1. Δημιουργούμε το σύνολο Α όλων των λέξεων του αλφάβητου Σ που έχουν μήκος το πολύ Για κάθε λέξη w Α 3. Εκτέλεσε την w στην Μ μετρώντας τα βήματα που εκτελούνται. 4. Αν ο αριθμός των βημάτων φτάσει το 5 τότε αποδέξου. 5. Αν η μηχανή τερματίσει και ο αριθμός των βημάτων είναι μικρότερος του 5 τότε επανέλαβε από το Αν εξαντλήσουμε τις λέξεις του συνόλου Α τότε απορρίπτουμε. Άσκηση 2 Να δείξετε ότι οι πιο κάτω γλώσσες δεν είναι διαγνώσιμες. (α) { Μ,k η Μ είναι μια ΤΜ η οποία αποδέχεται όλες τις λέξεις με μήκος <= k } Θέλουμε να δείξουμε ότι η γλώσσα Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2015 Σελίδα 1

2 ΟλεςΚ = { Μ,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. Αυτό ολοκληρώνει την απόδειξη. (β) { Μ,k η Μ είναι μια ΤΜ η οποία αποδέχεται ακριβώς όσες λέξεις έχουν μήκος k } Θέλουμε να δείξουμε ότι η γλώσσα ΑκρΚ = { Μ,k η Μ είναι μια ΤΜ η οποία αποδέχεται ακριβώς όσες λέξεις έχουν μήκος k} είναι μη διαγνώσιμη. Για να το δείξουμε θα αναγάγουμε μια γνωστή μη διαγνώσιμη γλώσσα, την Α ΤΜ, στην υπό μελέτη γλώσσα ΑκρΚ Συγκεκριμένα, ας υποθέσουμε ότι η γλώσσα ΑκρΚ είναι διαγνώσιμη και η ΤΜ R είναι σε θέση να τη διαγνώσει. Με βάση τον διαγνώστη R θα κατασκευάσουμε ένα διαγνώστη S για το πρόβλημα Α ΤΜ. Αυτό μας οδηγεί σε αντίφαση και επομένως η ΑκρΚ είναι μια μη διαγνώσιμη γλώσσα. O διαγνώστης S έχει ως εξής: S = Με είσοδο Μ,w 1. Φτιάξε τη ΤΜ M η οποία με είσοδο x: (α) Αν η x έχει μήκος >=k τότε τρέχει την Μ με είσοδο w. (β) Διαφορετικά, απορρίπτει. 2. Τρέξε την R με είσοδο M. 3. Αν η R αποδεχτεί ΑΠΟΔΕΞΟΥ. 4. Αν η R απορρίψει ΑΠΟΡΡΙΨΕ. Εξετάζοντας την πιο πάνω μηχανή παρατηρούμε ότι η μηχανή Μ αποδέχεται ακριβώς όsες τις λέξεις έχουν μήκος >= k αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Ως εκ Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2015 Σελίδα 2

3 τούτου, με είσοδο τη μηχανή Μ, o διαγνώστης R θα αποδεχτεί αν και μόνο αν η μηχανή Μ αποδέχεται ακριβώς όλες τις λέξεις μήκους k ή, ισοδύναμα, αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Αυτό ολοκληρώνει την απόδειξη. (γ) { Μ η Μ είναι μια ΤΜ η οποία αποδέχεται μια κανονική γλώσσα } Θέλουμε να δείξουμε ότι η γλώσσα Καν = { Μ η Μ είναι μια ΤΜ η οποία αποδέχεται μια κανονική γλώσσα} είναι μη διαγνώσιμη. Για να το δείξουμε θα αναγάγουμε μια γνωστή μη διαγνώσιμη γλώσσα, την Α ΤΜ, στην υπό μελέτη γλώσσα Καν. Συγκεκριμένα, ας υποθέσουμε ότι η γλώσσα Καν είναι διαγνώσιμη και η ΤΜ R είναι σε θέση να τη διαγνώσει. Με βάση τον διαγνώστη R θα κατασκευάσουμε ένα διαγνώστη S για το πρόβλημα Α ΤΜ. Αυτό μας οδηγεί σε αντίφαση και επομένως η Καν είναι μια μη διαγνώσιμη γλώσσα. O διαγνώστης S έχει ως εξής: S = Με είσοδο Μ,w 1. Φτιάξε τη ΤΜ M η οποία με είσοδο x: (α) Αν η x = 0 k 1 k, k 0, τότε αποδέχεται. (β) Διαφορετικά, τρέχει την Μ με είσοδο w. 2. Τρέξε την R με είσοδο M. 3. Αν η R αποδεχτεί ΑΠΟΔΕΞΟΥ. 4. Αν η R απορρίψει ΑΠΟΡΡΙΨΕ. Εξετάζοντας την πιο πάνω μηχανή παρατηρούμε ότι η μηχανή Μ αποδέχεται όλες τις λέξεις (που αποτελούν κανονική γλώσσα) αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w και αποδέχεται την γλώσσα { 0 k 1 k, k 0 }, η οποία δεν είναι κανονική αλλά ασυμφραστική, αν η μηχανή Μ δεν αποδέχεται τη λέξη w. Ως εκ τούτου, με είσοδο τη μηχανή Μ, o διαγνώστης R θα αποδεχτεί αν και μόνο αν η μηχανή Μ αποδέχεται την κανονική γλώσσα Σ * ή, ισοδύναμα, αν και μόνο αν η μηχανή Μ αποδέχεται τη λέξη w. Αυτό ολοκληρώνει την απόδειξη. Σχολιάστε κατά πόσο οι πιο πάνω γλώσσες είναι αναγνωρίσιμες. Αναγνωρισιμότητα: (α) Τρέχουμε «παράλληλα» (όπως Διαφάνεια 8 54) στη μηχανή Μ όλες τις λέξεις μήκους k. Μόλις έχουμε απόρριψη για μια από αυτές απορρίπτουμε. Εάν όμως η Μ αποδέχεται όλες τις λέξεις μήκους k μετά από κάποιο αριθμό βημάτων θα το εντοπίσουμε και θα τερματίσουμε με αποδοχή του ζεύγος (Μ,k). (β) H γλώσσα αυτή αναμένουμε να μην είναι αναγνωρίσιμη. Για να αποφασίσουμε κατά πόσο ένα ζεύγος (M,k) ανήκει στη γλώσσα θα πρέπει να τρέξουμε την Μ σε όλες τις λέξεις μήκους k. Ακόμα και εάν η μηχανή Μ αποδέχεται όλες αυτές τις λέξεις το γεγονός ότι το Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2015 Σελίδα 3

4 πλήθος τους είναι μη πεπερασμένο δεν μας επιτρέπει να ελέγξουμε και να επιβεβαιώσουμε ότι η ΤΜ Μ αποδέχεται κάθε μια από αυτές. Άσκηση 3 Έστω γλώσσα Λ η οποία είναι αναγνωρίσιμη αλλά όχι συμπληρωματικά αναγνωρίσιμη. Να αποφασίσετε κατά πόσο η πιο κάτω γλώσσα Λ είναι διαγνώσιμη, αναγνωρίσιμη, ή συμπληρωματικά αναγνωρίσιμη. Λ = {w είτε w = x0 για x Λ είτε w = y1 για y Λ} Κατ αρχή παρατηρούμε ότι αφού η Λ είναι αναγνωρίσιμη αλλά όχι συμπληρωματικά αναγνωρίσιμη δεν είναι ούτε και διαγνώσιμη. Θα δείξουμε ότι η γλώσσα Λ δεν είναι ούτε διαγνώσιμη ούτε αναγνωρίσιμη ούτε και συμπληρωματικά αναγνωρίσιμη. Μη Διαγνωσιμότητα: Ας υποθέσουμε, για να φτάσουμε σε αντίφαση, ότι η Λ είναι διαγνώσιμη. Τότε μπορούμε να φτιάξουμε μια μηχανή Turing Μ η οποία διαγιγνώσκει κατά πόσο μια λέξη w ανήκει στην Λ. Τότε μπορούμε να φτιάξουμε μια μηχανή Turing M η οποία να διαγιγνώσκει τη Λ ως εξής: Δοθείσας μιας λέξης w τρέχουμε την Μ στη λέξη w0. Αν η Μ αποδεχθεί σημαίνει ότι w Λ και αποδεχόμαστε, διαφορετικά απορρίπτουμε. Η πιο πάνω γλώσσα διαγιγνώσκει την Λ. Αφού όμως η Λ είναι μη διαγνώσιμη καταλήγουμε στο συμπέρασμα ότι ούτε η Λ είναι διαγνώσιμη. Μη Αναγνωρισιμότητα: Ας υποθέσουμε, για να φτάσουμε σε αντίφαση, ότι η Λ είναι αναγνωρίσιμη. Τότε μπορούμε να φτιάξουμε μια μηχανή Turing Μ η οποία αναγνωρίζει κατά πόσο μια λέξη w ανήκει στην Λ. Τότε μπορούμε να φτιάξουμε μια μηχανή Turing M η οποία να αναγνωρίζει το συμπλήρωμα της Λ,, ως εξής: Δοθείσας μιας λέξης w τρέχουμε την Μ στη λέξη w1. Αν η Μ αποδεχθεί σημαίνει ότι w Λ και αποδεχόμαστε, διαφορετικά απορρίπτουμε. Η πιο πάνω γλώσσα αναγνωρίζει τη. Αφού όμως η Λ είναι μη συμπληρωματικά αναγνωρίσιμη καταλήγουμε στο συμπέρασμα ότι ούτε η Λ είναι αναγνωρίσιμη. Μη Συμπληρωματική Αναγνωρισιμότητα: Ας υποθέσουμε, για να φτάσουμε σε αντίφαση, ότι η Λ είναι συμπληρωματικά αναγνωρίσιμη. Τότε μπορούμε να φτιάξουμε μια μηχανή Turing Μ η οποία αναγνωρίζει κατά πόσο μια λέξη w δεν ανήκει στην Λ. Αν ισχύει όμως αυτό μπορούμε να φτιάξουμε μια μηχανή Turing M η οποία να αναγνωρίζει το συμπλήρωμα της Λ,, ως εξής: Δοθείσας μιας λέξης w τρέχουμε την Μ στη λέξη w0. Αν η Μ αποδεχθεί σημαίνει ότι w Λ και αποδεχόμαστε, διαφορετικά απορρίπτουμε. Η πιο πάνω γλώσσα αναγνωρίζει τη. Αφού όμως η Λ είναι μη συμπληρωματικά αναγνωρίσιμη καταλήγουμε στο συμπέρασμα ότι ούτε η Λ είναι συμπληρωματικά αναγνωρίσιμη. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2015 Σελίδα 4

5 Άσκηση 4 Έστω γλώσσες Λ 1 και Λ 2 τέτοιες ώστε Λ 1 Λ 2. (α) Αν Λ 1 Ρ και Λ 2 Ρ ισχύει απαραίτητα ότι Λ 2 Λ 1 Ρ; Έστω Λ 1 και Λ 2 γλώσσες της Ρ. Από τον ορισμό της κλάσης Ρ, υπάρχουν ΤΜ, έστω Μ 1 και Μ 2 οι οποίες διαγιγνώσκουν τις Λ 1 και Λ 2, αντίστοιχα, σε πολυωνυμικό χρόνο. Για να δείξουμε ότι και η Λ 2 Λ 1 ανήκει στην Ρ θα πρέπει να δείξουμε ότι υπάρχει ΤΜ η οποία διαγιγνώσκει τη γλώσσα Λ 2 Λ 1 σε πολυωνυμικό χρόνο. Η ζητούμενη μηχανή είναι η εξής: Μ := Για είσοδο w 1. Τρέξε την Μ 2 στην w. Αν η Μ 2 απορρίψει, τότε απορρίπτουμε. 2. Διαφορετικά, τρέξε την Μ 1 στην w. Αν η Μ 1 αποδεχτεί, τότε απορρίπτουμε. 3. Διαφορετικά, αποδεχόμαστε. Ορθότητα: Η Μ αποδέχεται αν και μόνο αν η w είναι αποδεκτή από την Μ 2 και όχι από την Μ 1. Επομένως, από τον ορισμό των Μ 1 και Μ 2, η Μ αποδέχεται αν και μόνο αν η w Λ 2 Λ 1. Χρόνος εκτέλεσης: Αφού οι Μ 1 και Μ 2 έχουν πολυωνυμικό χρόνο εκτέλεσης, τόσο το Βήμα 1 όσο και το Βήμα 2 εκτελούνται σε πολυωνυμικό χρόνο. Συνεπώς, η Μ διαγιγνώσκει τη γλώσσα Λ 1 Λ 2 σε πολυωνυμικό χρόνο. (β) Αν Λ 1 ΝΡ και Λ 2 ΝΡ ισχύει απαραίτητα ότι Λ 2 Λ 1 ΝΡ; Έστω Λ 1 και Λ 2 γλώσσες της Ρ. Από τον ορισμό της κλάσης ΝΡ, υπάρχουν ΤΜ, έστω Μ 1 και Μ 2 οι οποίες διαγιγνώσκουν τις Λ 1 και Λ 2, αντίστοιχα, σε μη ντετερμινιστικά πολυωνυμικό χρόνο. Ας υποθέσουμε ότι η γλώσσα Λ 2 Λ 1 ΝΡ. Τότε υπάρχει ΤΜ, έστω Μ, η οποία διαγιγνώσκει τη γλώσσα Λ 2 Λ 1 σε μη ντετερμινιστικά πολυωνυμικό χρόνο. Ως εκ τούτου (θέτοντας ως Λ 2 = Σ * ), η μηχανή Μ μπορεί να διαγιγνώσει το συμπλήρωμα της Λ 1, σε μηντετερμινιστικά πολυωνυμικό χρόνο. Αυτό όμως είναι ένα ερώτημα στο οποίο δεν γνωρίζουμε τη λύση και σχετίζεται με το πρόβλημα Ρ =? ΝΡ. Γνωρίζουμε ότι αν η κλάση ΝΡ δεν είναι κλειστή ως προς το συμπλήρωμα τότε Ρ ΝΡ. Άσκηση 5 Μια πρόταση του Προτασιακού Λογισμού αποτελεί ταυτολογία αν για κάθε απόδοση λογικών τιμών στις μεταβλητές της παίρνει την τιμή True. Για παράδειγμα, η πρόταση p p αποτελεί ταυτολογία. Το πρόβλημα το οποίο καλείστε να λύσετε είναι το εξής: Με δεδομένο εισόδου μια πρόταση φ να αποφασίσετε κατά πόσο η πρόταση φ αποτελεί ταυτολογία. (α) Να δείξετε ότι το πρόβλημα αυτό ανήκει στην κλάση ΝΡ. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2015 Σελίδα 5

6 Ακολουθεί αλγόριθμος V που αποτελεί επαληθευτή πολυωνυμικού χρόνου για το πρόβλημα. V := Για είσοδο φ, σ όπου φ είναι μια πρόταση του Προτασιακού Λογισμού και σ μια απονομή λογικών τιμών στις μεταβλητές του: 1. Υπολογίζουμε την τιμή της πρότασης για την απονομή σ. 2. Αν η τιμή αυτή είναι False αποδεχόμαστε, διαφορετικά απορρίπτουμε. Ο χρόνος εκτέλεσης του επαληθευτή V πολυωνυμικός ως προς το πλήθος των μεταβλητών της πρότασης, επομένως ο V αποτελεί επαληθευτή πολυωνυμικού χρόνου για το πρόβλημα. (β) Να δείξετε ότι το πρόβλημα είναι ΝΡ πλήρες. Για να δείξουμε ότι το πρόβλημα είναι ΝΡ πλήρες αρκεί να δείξουμε ότι ένα γνωστό ΝΡπλήρες πρόβλημα μπορεί να αναχθεί σε αυτό. Η αναγωγή θα γίνει από το πρόβλημα SAT. Συγκεκριμένα, θα δείξουμε ότι αν υπάρχει πολυωνυμική λύση για το πρόβλημα της άσκησης τότε υπάρχει πολυωνυμική λύση και για το πρόβλημα SAT. Έστω μια πρόταση φ η οποία θέλουμε να ελέγξουμε αν είναι ικανοποιήσιμη. Ας υποθέσουμε ότι υπάρχει πολυωνυμική, έστω ΤΜ Μ, για το πρόβλημα της άσκησης. Τρέχουμε την Μ στην πρόταση φ. Αν η Μ απαντήσει θετικά, τότε αποδεχόμαστε, διαφορετικά απορρίπτουμε. Ορθότητα: Παρατηρούμε τα πιο κάτω. η πρόταση φ είναι ταυτολογία αν και μόνο αν η φ παίρνει την τιμή True σε κάθε απονομή λογικών τιμών στις μεταβλητές της αν και μόνο αν η φ παίρνει την τιμή False σε κάθε απονομή λογικών τιμών στις μεταβλητές της αν και μόνο αν η φ δεν είναι ικανοποιήσιμη Επομένως η πρόταση φ είναι ικανοποιήσιμη αν και μόνο αν η πρόταση φ δεν αποτελεί ταυτολογία. Συμπέρασμα: Αν το πρόβλημα της άσκησης επιλύεται σε πολυωνυμικό χρόνο τότε και το πρόβλημα SAT επιλύεται σε πολυωνυμικό χρόνο. Επομένως το πρόβλημα της άσκησης είναι ΝΡ πλήρες. Λύσεις Σειράς Προβλημάτων 5 Εαρινό Εξάμηνο 2015 Σελίδα 6