Θεμελιώσεις Επιστήμης Η/Υ ΠΛΗ30 Τελική Εξέταση 26 Ιουνίου 2013 Ονοματεπώνυμο Φοιτητή Αριθμός Μητρώου Φοιτητή Τμήμα Υπογραφή Φοιτητή Υπογραφή Επιτηρητή Διάρκεια: 180 Ερώτημα Μονάδες Βαθμολογία 1 10+10 2 15+2+3 3 (6+6+3)+(3+2) 4 7+13 5 10+10 6 6+8+6 Σύνολο 120 Σε κάθε θέμα χρειάζεται αιτιολόγηση της απάντησής σας. Γράψτε όλες σας τις απαντήσεις στις κόλλες του ΕΑΠ που διανέμονται. Για πρόχειρο μπορείτε να χρησιμοποιήσετε τις τελευταίες σελίδες. Τα θέματα επιστρέφονται μαζί με τις κόλλες. Για να πετύχετε στην εξέταση πρέπει να συγκεντρώσετε τουλάχιστον 50 μονάδες. Καλή επιτυχία! [1]
ΕΡΩΤΗΜΑ 1 (Α) Να ταξινομηθούν οι παρακάτω συναρτήσεις σε αύξουσα σειρά τάξης μεγέθους, καθώς το n τείνει στο άπειρο: α) f 1 (n) = n log 2 n + log 10 n β) f 2 (n) = n 3 log n + logn n γ) f 3 (n) = n log 0,5 n + log 2 3 n δ) f 4 (n) = n 1,5 + log 0,5 2 n ε) f 5 (n) = (1,003) n + log100 n (Β) Να επιλυθούν οι παρακάτω αναδρομικές εξισώσεις: α) T 1 (n) = 7 T 1 (n/2) + n 2 β) T 2 (n) = 7 T 2 (n/2) + n 3 γ) T 3 (n) = 16 T 3 (n/2) + 1.8 (n 1/3 /logn) 3 log 3 (n!) δ) T 4 (n) = 5 T 4 (n/2) + n 3 Υπόδειξη: (i) logn συμβολίζει το λογάριθμο του n με βάση το 2. (ii) log k n=(logn) k (iii) Δεν απαιτείται να χρησιμοποιήσετε όρια και τύπο του L Hospital στην αιτιολόγηση της απάντησης του υποερωτήματος (Α). (iv) Θεώρημα Κυριαρχίας: Έστω η αναδρομική εξίσωση T(n) = at(n/b) + f(n), όπου a 1, b>1 είναι σταθερές, και f(n) είναι μια ασυμπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις: log a b b (1) αν f ( n) O( n ), για κάποια σταθερά ε>0, τότε T(n) = ( n ) log a b b (2) αν f ( n) ( n ), τότε T(n) = ( n log n) log a logb a 0 (3) αν f ( n) ( n ), για κάποια σταθερά ε>0, και αν υπάρχει σταθερά n, τέτοια n ώστε, για κάθε n n 0, af cf(n) για κάποια σταθερά c<1, τότε T(n) = ( f ( n)). b log a [2]
ΑΠΑΝΤΗΣΗ (Α) Εχουμε: f 1 (n) = n log 2 n + log 10 n = Θ(n log 2 (n)) f 2 (n) = n 3 log n + logn n = Θ(n 3 log n) f 3 (n) = n log 0,5 n + log 2 3 n = Θ(log 2 (3 n )) = Θ(n 2 ) f 4 (n) = n 1,5 + log 0.5 2 n = Θ(n 1,5 ) f 5 (n) = (1,003) n + log100 n = Θ(1,003 n ) Άρα η αύξουσα σειρά τάξης μεγέθους είναι: f 1, f 2, f 4, f 3, f 5. (Β) α) και β) Σύμφωνα με το Θεώρημα της Κυριαρχίας, a=7, b=2, log b a = 2.81. Ετσι έχουμε: n 2 = O(n 2.81-ε ) οπότε T 1 (n) =Θ(n 2.81 ) n 3 = Ω(n 2.81+ε ), 7(n/2) 3 = (7/8)n 3 < cn 3, για 7/8<c<1, οπότε T 2 (n) = Θ(n 3 ). γ) Σύμφωνα με το Θεώρημα της Κυριαρχίας, a =16, b =2, log b a = 4. Ετσι έχουμε: 1.8(n 1/3 /logn) 3 log 3 (n!) = Θ((n 1/3 /logn) 3 log 3 (n n )) = Θ((n 1/3 /logn) 3 log 3 (n n )) = Θ(n 4 ), οπότε T 3 (n) = Θ(n 4 logn) δ) Σύμφωνα με το Θεώρημα της Κυριαρχίας, a=5, b=2, log b a = 2.32. Ετσι έχουμε: n 2 = O(n 2.32-ε ) και T 1 (n) =Θ(n 2.32 ), n 3 = Ω(n 2.32+ε ), 5(n/2) 3 = (5/8)n 3 < cn 3, για 5/8<c<1, οπότε T 4 (n) = Θ(n 3 ). ΕΡΩΤΗΜΑ 2 Ένα μη κατευθυνόμενο γράφημα G = (V, E) n κορυφών καλείται βεβαρυμμένη διαδρομή, αν V = {v 1,, v n }, E = {(v i, v i+1 ) : 1 i < n}, και κάθε κορυφή v i συσχετίζεται με μια βαρύτητα w i. [3]
Ένα υποσύνολο κορυφών I V ονομάζεται ανεξάρτητο αν οποιεσδήποτε δύο κορυφές του I δεν συνδέονται με ακμή, και ονομάζεται μέγιστο ανεξάρτητο υποσύνολο αν έχει τη μέγιστη συνολική βαρύτητα μεταξύ όλων των υποσυνόλων του V. Θεωρήστε, για παράδειγμα, την παρακάτω βεβαρυμμένη διαδρομή 7 κορυφών (οι αριθμοί εντός των κορυφών συμβολίζουν βαρύτητες) 2 10 5 4 8 9 6 v 1 v 2 v 3 v 4 v 5 v 6 v 7 όπου τα υποσύνολα Ι 1 = {v 1, v 3, v 5, v 7 }, Ι 2 = {v 2, v 4, v 6 }, Ι 3 = {v 2, v 5, v 7 } είναι ανεξάρτητα με βαρύτητες 21, 23, και 24 αντίστοιχα. Το Ι 3 είναι το μέγιστο ανεξάρτητο υποσύνολο για την παραπάνω βεβαρυμμένη διαδρομή 7 κορυφών. (Α) Σχεδιάστε έναν αλγόριθμο δυναμικού προγραμματισμού ο οποίος, δεδομένης μιας βεβαρυμμένης διαδρομής n κορυφών, βρίσκει τη βαρύτητα του μέγιστου ανεξάρτητου υποσυνόλου (κόστος βέλτιστης λύσης). Η περιγραφή του αλγορίθμου μπορεί να είναι σε άτυπη μορφή, αλλά πρέπει να περιλαμβάνει οπωσδήποτε την/τις αναδρομική/-κες σχέση/- εις που διέπουν τον αλγόριθμο και συμπληρώνουν τον πίνακα δυναμικού προγραμματισμού. Δώστε τον χρόνο εκτέλεσης του αλγορίθμου σας, ο οποίος πρέπει να είναι πολυωνυμικός ως προς το n και ανεξάρτητος των τιμών των βαρυτήτων των κορυφών. (Β) Εκτελέστε τον αλγόριθμό σας στο παραπάνω παράδειγμα δίνοντας τις τιμές του πίνακα δυναμικού προγραμματισμού σε κάθε βήμα. (Γ) Με βάση τον αλγόριθμο που σχεδιάσατε, προτείνετε (σε άτυπη μορφή) μια μέθοδο υπολογισμού του μέγιστου ανεξάρτητου υποσυνόλου και εκτελέστε την στο παραπάνω παράδειγμα. Υπόδειξη: ακολουθήστε οπισθόδρομα τον πίνακα δυναμικού προγραμματισμού δηλ. από την τελευταία προς την αρχική του θέση επιλέγοντας κάθε φορά να συνεχίσετε προς τα πίσω σε εκείνη τη θέση (που περιλαμβάνεται στο δεξιό μέλος [4]
της αναδρομικής σχέσης), η οποία καθόρισε το αποτέλεσμα της τρέχουσας θέσης του πίνακα και σημειώνοντας παράλληλα την κορυφή που ανήκει στη βέλτιστη λύση. ΑΠΑΝΤΗΣΗ (Α) Έστω A i το μέγιστο ανεξάρτητο σύνολο στη διαδρομή v 1 v i και έστω ότι B[i] συμβολίζει τη βαρύτητα του A i. Ορίζουμε B[0] = 0. Προφανώς, B[1] = w 1. Για i > 1, ισχύει ότι είτε η v i ανήκει στο A i, είτε δεν ανήκει. Στην πρώτη περίπτωση (v i A i ), γνωρίζουμε ότι η v i-1 δεν μπορεί να ανήκει στο A i (αφού είναι ανεξάρτητο υποσύνολο) και άρα B[i] = w i + B[i 2]. Στη δεύτερη περίπτωση (v i A i ), έχουμε ότι B[i] = B[i 1]. Επομένως, προκύπτει η αναδρομική σχέση B[i] = max{b[i 1], w i + B[i 2]} Μπορούμε να υπολογίσουμε τις τιμές του πινάκα δυναμικού προγραμματισμού Β σε αυξανόμενη σειρά ως προς το i = 1...n. Η βαρύτητα του μέγιστου ανεξάρτητου υποσυνόλου είναι η τιμή του B[n]. Σε κάθε επανάληψη εκτελούμε ένα σταθερό αριθμό πράξεων. Έχουμε συνολικά n επαναλήψεις, και άρα ο συνολικός χρόνος εκτέλεσης είναι Ο(n). (Β) Η εκτέλεση του αλγορίθμου στο παράδειγμα έχει ως εξής. Β[0] = 0. Β[1] = 2. B[2] = max{b[1], w 2 + B[0]}= max{2, 10+0} = 10. B[3] = max{b[2], w 3 + B[1]}= max{10, 5+2} = 10. B[4] = max{b[3], w 4 + B[2]}= max{10, 4+10} = 14. B[5] = max{b[4], w 5 + B[3]}= max{14, 8+10} = 18. B[6] = max{b[5], w 6 + B[4]}= max{18, 9+14} = 23. B[7] = max{b[6], w 7 + B[5]}= max{23, 6+18} = 24. Άρα, το μέγιστο ανεξάρτητο υποσύνολο έχει βαρύτητα 24. (Γ) Έχοντας τον πίνακα δυναμικού προγραμματισμού Β, μπορούμε να βρούμε τα στοιχεία του μέγιστου ανεξάρτητου υποσυνόλου με οπισθόδρομη ιχνηλάτηση των υπολογισμών από το B[n], ακολουθώντας κάθε φορά το αποτέλεσμα του τελεστή max (δείτε Δραστηριότητα 4.5 στον Τόμο Α). Δηλ., αρχίζοντας από τη θέση B[n] και αναλύοντας την αναδρομική σχέση, προσδιορίζουμε αν το μέγιστο προέρχεται από τη θέση B[n 1], ή από την B[n 2] και την βαρύτητα w n. Ανάλογα με το αποτέλεσμα, συνεχίζουμε οπισθόδρομα είτε στη θέση B[n 1], είτε στην B[n 2]. Με ανάλογο τρόπο, συνεχίζουμε προς τα πίσω μέχρι τη θέση B[0]. Οπισθόδρομη ιχνηλάτηση στους υπολογισμούς του παραπάνω παραδείγματος μας δίνει ότι το μέγιστο ανεξάρτητο υποσύνολο αποτελείται από τις βαρύτητες: w 7 (κορυφή v 7 ) και τη βέλτιστη λύση B[5] (αποτέλεσμα τελεστή max στο B[7]), w 5 (κορυφή v 5 ) και τη βέλτιστη λύση B[3] (αποτέλεσμα τελεστή max στο B[5]), βέλτιστη λύση B[2] (αποτέλεσμα τελεστή max στο B[3]), [5]
w 2 (κορυφή v 2 ) και τη βέλτιστη λύση B[0] (αποτέλεσμα τελεστή max στο B[2]). Δηλαδή, το μέγιστο ανεξάρτητο υποσύνολο είναι το {v 2, v 5, v 7 }. ΕΡΩΤΗΜΑ 3 (Α) Δίνεται το μη-ντετερμινιστικό πεπερασμένο αυτόματο Μ του σχήματος, με μια ε- κίνηση (Α.1) Απαλείψτε την ε-κίνηση (Α.2) Μετατρέψτε το Μ σε ισοδύναμο ντετερμινιστικό αυτόματο (Α.3) Δώστε κανονική έκφραση για τη γλώσσα του αυτομάτου ΠΑΡΑΤΗΡΗΣΗ: Στα Α.1-Α.3 αρκεί να δώσετε την τελική σας απάντηση (Β) Αποδείξτε τα παρακάτω: (Β.1) Το πρόβλημα του κατά πόσον η γλώσσα ενός πεπερασμένου αυτομάτου είναι κενή είναι αποφασίσιμο. ΥΠΟΔΕΙΞΗ: Θεωρείστε γνωστό ότι αν ένα πεπερασμένο αυτόματο Μ δέχεται κάποια συμβολοσειρά w, τότε δέχεται και κάποια συμβολοσειρά w με μήκος το πολύ ίσο με τον αριθμό καταστάσεων του αυτομάτου. (Β.2) Ποια είναι η πολυπλοκότητα του προβλήματος απόφασης στο Β.1; [6]
ΑΠΑΝΤΗΣΗ (Α) (Α.1) Το ισοδύναμο αυτόματο χωρίς ε-κινήσεις: (Α.2) Το ισοδύναμο ντετερμινιστικό: (Α.3) Η Κανονική Έκφραση είναι: 00* 110* (00*1 1(0 10*1))(0 1)* (Μία εναλλακτική κανονική έκφραση είναι: (0+1(0+1))(0+1)*. Προκύπτει αν παρατηρήσουμε ότι οι καταστάσεις q2 και q3 είναι ισοδύναμες) (Β) (Β.1) Παίρνοντας υπόψη την υπόδειξη, ο εξής αλγόριθμος λύνει το πρόβλημα. Δεδομένου του Μ=<Q,Σ,δ,F>, με Σ = k και Q =n, παράγουμε όλες τις συμβολοσειρές στο Σ μήκους το πολύ n για κάθε μια από αυτές τις συμβολοσειρές ελέγχουμε αν το Μ την αποδέχεται Αν το Μ δεχτεί μια από αυτές τις συμβολοσειρές η γλώσσα του δεν είναι κενή. Αλλιώς, είναι κενή. [7]
(Β.2) Η πολυπλοκότητα του αλγόριθμου καθορίζεται από το μέγεθος του συνόλου των συμβολοσειρών για τις οποίες πρέπει να γίνει ο έλεγχος. Υπάρχουν όμως 1 συμβολοσειρά μήκους 0 (η κενή) ακριβώς k συμβολοσειρές μήκους 1 (όσα και τα γράμματα του αλφαβήτου, k= Σ ) ακριβώς k 2 συμβολοσειρές μεγέθους 2 Γενικά, υπάρχουν k r συμβολοσειρές στο αλφάβητο Σ με μήκος ίσο με r. n 1 n k 1 k k k Συνεπώς, έχουμε k 1 2 1 n Q ( k ) ελεγχθούν. Εν πάσει περιπτώσει έχουμε ελεγχθούν (όπου ο κάθε έλεγχος παίρνει γραμμικό χρόνο). λέξεις με μήκος το πολύ n που πρέπει να πλήθος λέξεων που πρέπει να ΠΑΡΑΤΗΡΗΣΗ: Εναλλακτική λύση για το Β.2 (η οποία δεν απαιτεί το Β.1) είναι να κάνουμε αναζήτηση κατά πλάτος στο γράφημα που προκύπτει από το διάγραμμα του αυτόματου με απαλοιφή των ετικετών, ξεκινώντας από την αρχική κατάσταση και να επιστρέψουμε θετική απάντηση αν και μόνο αν υπάρχει κάποια τελική κατάσταση την οποία επισκεπτόμαστε (πολυπλοκότητα Ο( Q Σ )). ΕΡΩΤΗΜΑ 4 (Α) Δώστε γραμματική ανεξάρτητη συμφραζομένων (χωρίς απόδειξη για την ορθότητά της), η οποία να παράγει τη γλώσσα: L = {w {0,1} * w = xuxvx, όπου x {0,1}, u,v {0,1} * και u =2 v }. (Β) Δίδεται η γλώσσα: L = { xcy : x,y {a, b}*, x +2 y }. Να σχεδιάσετε ντετερμινιστικό αυτόματο στοίβας που την αναγνωρίζει. ΑΠΑΝΤΗΣΗ (Α) Η παρακάτω γραμματική παράγει τη γλώσσα L: S 0A0 1B1, Α CCAC 0 B CCBC 1 C 0 1 (Γ) Το ντετερμινιστικό αυτόματο στοίβας που αναγνωρίζει τη γλώσσα L είναι: [8]
Αριθμός Κατάσταση Σύμβολο Σύμβολο Κίνηση Επεξήγηση Κίνησης Εισόδου Σωρού 1 q 0 X Z 0 (q 1, az 0 ) X = a ή b 2 q 0 c Z 0 (q 2, Z 0 ) 3 q 1 X a (q 1, aa) X = a ή b 4 q 1 c a (q 2, a) 5 q 2 X a (q 2, ε) X = a ή b 6 q 2 X Z 0 (q 3, Z 0 ) X = a ή b 7 q 3 X Z 0 (q 4, Z 0 ) X= a ή b 8 q 4 X Z 0 (q 4, Z 0 ) X= a ή b Οι υπόλοιποι συνδυασμοί Τίποτα Το αυτόματο έχει αρχική κατάσταση την q 0 και τελική κατάσταση την q 4.Το αυτόματο διαβάζει έναν προς έναν τους χαρακτήρες της εισόδου και βάζει ένα a στο σωρό μέχρι να διαβάζει c. Τότε μεταβαίνει στον επόμενο χαρακτήρα και για κάθε χαρακτήρα που διαβάζει, διαγράφει ένα a από το σωρό. Αποδέχεται την είσοδο αν τη στιγμή που θα αδειάσει ο σωρός το πλήθος των συμβόλων της εισόδου είναι 2. ΕΡΩΤΗΜΑ 5 (A) Να αποδείξετε ότι η γλώσσα SIZE TM ={ M 1,M 2 M 1 και M 2 είναι ΤΜ έτσι ώστε το πλήθος των λέξεων που ανήκουν στην L(M 1 ) να είναι μεγαλύτερο από αυτό της L(M 2 ).} δεν είναι αποφασίσιμη. Μπορείτε να κάνετε αναγωγή από το πρόβλημα Τερματισμού: L H ={ M,w η M είναι μία ΤΜ και η Μ τερματίζει σε είσοδο w.} ή από οποιαδήποτε άλλη μη-αποφασίσιμη γλώσσα γνωρίζετε. (B) Να κατασκευάσετε ντετερμινιστική μηχανή Turing M μίας ταινίας όπου επιτρέπεται σε μία κίνηση η εγγραφή συμβόλου ακολουθούμενη από ενδεχόμενη μετακίνηση του δρομέα (μπορεί και να παραμένει στάσιμη) με αλφάβητο εισόδου Σ = {0,1}. H TM Μ θα μετακινεί την συμβολοσειρά εισόδου κατά 2 κελιά προς τα δεξιά (αν η λέξη εισόδου είναι [9]
η κενή λέξη τότε η Μ δεν κάνει τίποτα και τερματίζει) και έπειτα τερματίζει. Ο αρχικός σχηματισμός της Μ θα είναι της μορφής w 1 w n #, όπου w i Σ και το τελικός σχηματισμός θα είναι της μορφής ##w 1 w n #. Στην περίπτωση που η είσοδος είναι η κενή λέξη τότε ο αρχικός και τελικός σχηματισμός θα είναι ο #. Για παράδειγμα, με αρχικό σχηματισμό τον 00110# η Μ τερματίζει στο σχηματισμό ##00110#. Δώστε το διάγραμμα καταστάσεων της Μ. ΑΠΑΝΤΗΣΗ (A) Θα κάνουμε αναγωγή από το πρόβλημα L H στο πρόβλημα SIZE TM. Στην αναγωγή κατασκευάζουμε δύο νέες ΤΜ, όπου η πρώτη Μ κάνει τα εξής: H M σε είσοδο x κάνει τα εξής: 1. Εκτελεί την M σε είσοδο w. 2. Αν τερματίσει τότε ΑΠΟΔΟΧΗ. Η M λοιπόν αποδέχεται το Σ * αν η Μ τερματίζει σε είσοδο w αλλιώς δεν αποδέχεται τίποτα. Πιο συγκεκριμένα, σε περίπτωση που η Μ σε είσοδο w εγκλωβιστεί τότε εγκλωβίζεται και η Μ για οποιαδήποτε είσοδο. Η δεύτερη μηχανή Μ κάνει τα εξής: H M σε είσοδο x κάνει τα εξής: 1. Αν x=w τότε ΑΠΟΔΟΧΗ. 2. Αλλιώς ΑΠΟΡΡΙΨΗ. Η γλώσσα της Μ αποτελείται από μία λέξη, την w. Η αναγωγή επιστρέφει την λέξη M,M. Θα αποδείξουμε ότι M,w L H αν και μόνο αν M,M SIZE TM. Πράγματι, έστω ότι M,w L H. Τότε η γλώσσα της Μ θα είναι το Σ *. Επομένως η Μ είναι μία άπειρη γλώσσα και ως εκ τούτου είναι μεγαλύτερη σε μέγεθος από τη γλώσσα της Μ που περιέχει μία λέξη. Άρα M,M SIZE TM. Έστω ότι M,w L H. Τότε η γλώσσα της Μ είναι η κενή γλώσσα. Επομένως, το μέγεθός της είναι μικρότερο από το μέγεθος της γλώσσας της Μ αφού αυτή περιέχει μία λέξη. Επομένως, M,M SIZE TM. Αυτό σημαίνει ότι η γλώσσα SIZE TM δεν είναι αποφασίσιμη. (B) Το διάγραμμα καταστάσεων της Μ είναι το εξής: [10]
h # q 1 #,R # 1,R # 0,R # 0,R q 1# 1 0,R # 1,R q 01 q 11 1 1,R # #,R 0 #,R 1 #,R 1 #,R 1 1,R q 0 1 0,R 0 1,R q 1 0 #,R 0 0,R 0 #,R q 00 0 1,R q 10 # #,R 0 0,R # 0,R q 0# # 1,R ΕΡΩΤΗΜΑ 6 Το πρόβλημα ASAT ορίζεται ως εξής: Δίνεται λογική έκφραση σε Συζευκτική Κανονική Μορφή, ορισμένη σε n μεταβλητές, με m προτάσεις. Υπάρχει ανάθεση τιμών που να ικανοποιεί τουλάχιστον m-1 προτάσεις της ; (Α) Αποδείξτε ότι το πρόβλημα ASAT ανήκει στην κλάση ΝΡ, σχεδιάζοντας πολυωνυμικό επαληθευτή για το πρόβλημα. (Β) Αποδείξτε ότι το πρόβλημα ASAT είναι ΝΡ-δύσκολο. Για την αναγωγή χρησιμοποιήστε το γνωστό ΝΡ-πλήρες πρόβλημα SAT: Ξεκινώντας από ένα στιγμιότυπο του SAT, κατασκευάστε το στιγμιότυπο ( z) ( z), όπου z είναι μια νέα μεταβλητή που δεν εμφανίζεται στην. Αιτιολογήστε πλήρως την ορθότητα της αναγωγής. [11]
(Γ) Θεωρήστε την ειδική περίπτωση A2SAT, όπου η κάθε πρόταση της λογικής έκφρασης έχει μήκος το πολύ 2. Υπάρχει αλγόριθμος πολυωνυμικού χρόνου για το πρόβλημα Α2SAT, ναι ή όχι και γιατί; Σημείωση: Το πρόβλημα SAT ορίζεται ως εξής: Δίνεται λογική έκφραση σε Συζευκτική Κανονική Μορφή, ορισμένη σε n μεταβλητές, με m προτάσεις. Υπάρχει ανάθεση τιμών που να ικανοποιεί όλες τις προτάσεις της ; Το πρόβλημα 2SAT αποτελεί περιορισμό του SAT, όπου το μήκος κάθε πρότασης της Φ είναι το πολύ ίσο με 2, και είναι γνωστό ότι ανήκει στην κλάση P. ΑΠΑΝΤΗΣΗ (Α) Ο επαληθευτής, με είσοδο (i) μια λογική έκφραση σε Συζευκτική Κανονική Μορφή, ορισμένη σε n μεταβλητές, με m προτάσεις, και (ii) μια ανάθεση τιμών t στις n μεταβλητές της (το υποψήφιο πιστοποιητικό), 1. Αρχικοποιεί έναν μετρητή δίνοντας του τιμή ίση με 0. 2. Για κάθε πρόταση της, αποδίδει τιμές στις μεταβλητές της, σύμφωνα με την t. Αν η πρόταση είναι αληθής, αυξάνει τον μετρητή κατά 1. 3. Αν η τιμή του μετρητή είναι τουλάχιστον m-1, αποδέχεται. Διαφορετικά, απορρίπτει. Ο επαληθευτής απαιτεί O(nm) βήματα. Άρα το πρόβλημα ASAT ανήκει στην κλάση ΝΡ. (B) Για να αποδείξουμε ότι το πρόβλημα ASAT είναι ΝΡ-δύσκολο, θα ανάγουμε το SAT σε αυτό. Ξεκινώντας από ένα στιγμιότυπο του SAT, δηλαδή μια λογική έκφραση σε Συζευκτική Κανονική Μορφή, ορισμένη σε n μεταβλητές, με m προτάσεις, κατασκευάζουμε στιγμιότυπο του ASAT, δηλαδή μια λογική έκφραση σε Συζευκτική Κανονική Μορφή, ορισμένη σε n μεταβλητές, με m προτάσεις, ως εξής: Θέτουμε ( z) ( z), όπου z είναι μια νέα μεταβλητή που δεν εμφανίζεται στην. Η ορίζεται σε n = n+1 μεταβλητές, και αποτελείται από m =m+2 προτάσεις, και η κατασκευή της γίνεται χρόνο γραμμικό στο μέγεθος της. Θα αποδείξουμε ότι υπάρχει ανάθεση τιμών που ικανοποιεί όλες τις προτάσεις της αν και μόνο αν υπάρχει ανάθεση τιμών που ικανοποιεί τουλάχιστον m -1=m+1 προτάσεις της. Έστω t ανάθεση τιμών που ικανοποιεί και τις m προτάσεις της. Τότε η ανάθεση τιμών t = t1 (που αποδίδει τιμή ίση με αυτήν της t στις n μεταβλητές της Φ και τιμή 1 στη z), ικανοποιεί τις m προτάσεις της και την πρόταση ( z ), άρα ικανοποιεί ακριβώς m+1 προτάσεις της. Αντίστροφα, έστω ότι υπάρχει ανάθεση τιμών t που ικανοποιεί τουλάχιστον m+1 προτάσεις της. Αφού οι προτάσεις ( z ) και ( z ) δεν μπορούν να [12]
ικανοποιηθούν ταυτόχρονα, η t θα ικανοποιεί μία από τις δύο, καθώς και τις m προτάσεις της. Άρα το πρόβλημα ASAT είναι ΝΡ-δύσκολο. (Γ) Γνωρίζουμε ότι το πρόβλημα 2SAT επιλύεται πολυωνυμικά. Ο αλγόριθμος που ακολουθεί βασίζεται στον αλγόριθμο πολυωνυμικού χρόνου για το πρόβλημα 2SAT. Με είσοδο λογική έκφραση σε Συζευκτική Κανονική Μορφή, ορισμένη σε n μεταβλητές, με m προτάσεις, όπου κάθε πρόταση έχει μήκος το πολύ 2, 1. Για κάθε πρόταση C της, καλεί τον αλγόριθμο επίλυσης του 2SAT με είσοδο την έκφραση που προκύπτει αν από την εξαιρέσουμε την πρόταση C (έτσι η έχει m-1 προτάσεις). Αν η είναι ικανοποιήσιμη, τότε αποδέχεται. 2. Ο αλγόριθμος απορρίπτει. Στην χειρότερη περίπτωση, ο παραπάνω αλγόριθμος θα επιλύσει m φορές ένα στιγμιότυπο του 2SAT. Άρα ο χρόνος εκτέλεσης του είναι πολυωνυμικός. [13]
Θεμελιώσεις Επιστήμης Η/Υ ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ 21 Ιουλίου 2013 Ονοματεπώνυμο Φοιτητή Αριθμός Μητρώου Φοιτητή Τμήμα Υπογραφή Φοιτητή Υπογραφή Επιτηρητή Διάρκεια: 180 Ερώτημα Μονάδες Βαθμολογία 1 10+10 2 15+2+3 3 6+6+(4+4) 4 10+10 5 10+(3+7) 6 6+6+8 Σύνολο 120 Σε κάθε θέμα χρειάζεται αιτιολόγηση της απάντησής σας. Γράψτε όλες σας τις απαντήσεις στις κόλλες του ΕΑΠ που διανέμονται. Για πρόχειρο μπορείτε να χρησιμοποιήσετε τις τελευταίες σελίδες. Τα θέματα επιστρέφονται μαζί με τις κόλλες. Για να πετύχετε στην εξέταση πρέπει να συγκεντρώσετε τουλάχιστον 50 μονάδες. Καλή επιτυχία! [14]
ΕΡΩΤΗΜΑ 1 (A) Να ταξινομηθούν οι παρακάτω συναρτήσεις σε αύξουσα σειρά τάξης μεγέθους, καθώς το n τείνει στο άπειρο: f 1 (n) = n 2 log n + log 2013 n 3 f 2 (n) = 2 n + n 2 f 3 (n) = n log n + n 2 logn f 4 (n) = n 0.5 + log 0.5 2 n f 5 (n) = n 2 log2 + 2log 2 n (Β) Εχουμε να επιλέξουμε ανάμεσα στους ακόλουθους τρεις αλγορίθμους Α, Β και Γ: Ο αλγόριθμος A λύνει προβλήματα μεγέθους n με το να επιλύει αναδρομικά οκτώ υποπροβλήματα του μισού μεγέθους καθένα, και συνδυάζοντας τις λύσεις τους σε γραμμικό χρόνο ως προς n. Ο αλγόριθμος B λύνει προβλήματα μεγέθους n με το να επιλύει αναδρομικά ένα υποπρόβλημα μεγέθους n 1 και, στην συνέχεια, συνάγει την τελική λύση σε γραμμικό χρόνο. Ο αλγόριθμος Γ λύνει προβλήματα μεγέθους n με το να επιλύει αναδρομικά εννιά υποπροβλήματα μεγέθους n/3 και συνδυάζοντας τις λύσεις τους σε Ο(n 2 ) χρόνο. Ποιοι είναι οι ασυμπτωτικοί χρόνοι εκτέλεσης για καθένα από τους τρεις αλγορίθμους και ποιον από αυτούς θα διαλέγατε με βάση την ασυμπτωτική του πολυπλοκότητα; Υπόδειξη: (i) logn συμβολίζει το λογάριθμο του n με βάση το 2. (ii) log k n=(logn) k (iii) Δεν απαιτείται να χρησιμοποιήσετε όρια και τύπο του L Hospital στην αιτιολόγηση της απάντησης του υποερωτήματος (Α). (iv) Θεώρημα Κυριαρχίας: Έστω η αναδρομική εξίσωση T(n) = at(n/b) + f(n), όπου a 1, b>1 είναι σταθερές, και f(n) είναι μια ασυμπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις: log a b b (1) αν f ( n) O( n ), για κάποια σταθερά ε>0, τότε T(n) = ( n ) log a b b (2) αν f ( n) ( n ), τότε T(n) = ( n log n) log a logb a 0 (3) αν f ( n) ( n ), για κάποια σταθερά ε>0, και αν υπάρχει σταθερά n, τέτοια n ώστε, για κάθε n n 0, af cf(n) για κάποια σταθερά c<1, τότε T(n) = ( f ( n)). b [15] log a
ΑΠΑΝΤΗΣΗ (A) Εχουμε f 1 (n) = n 2 log n + log 2013 (n 3 ) = Θ(n 2 logn) f 2 (n) = 2 n + n 2 = Θ(2 n ) f 3 (n) = n log n + n 2 log n = Θ (n log n ) f 4 (n) = n 0.5 + log 0.5 2 n = Θ (n 0.5 ) f 5 (n) = n 2 log2 + 2 log 2 n = Θ (n 2 ) Άρα η αύξουσα σειρά τάξης μεγέθους είναι: f 4, f 5, f 1, f 3, f 2. (Β) A:T(n) = 8T( n 2 ) + n Σύμφωνα με το Θεώρημα της Κυριαρχίας, a=8, b=2, log b a = 3 Ετσι έχουμε n = O(n 3-ε ), οπότε από την 1 η περίπτωση του Θ. Κυριαρχίας, T(n) =Θ(n 3 ). B : T ( n) T ( n 1) n T ( n 2) n 1 n =... = Θ(n 2 ). Εδώ δεν εφαρμόζουμε το Θ. Κυριαρχίας αλλά απλά κάνουμε διαδοχικές αντικαταστάσεις. Γ: Τ(n) = 9Τ(n/3)+ n 2 Σύμφωνα με το Θεώρημα της Κυριαρχίας, a=9, b=3, log b a = 2 Από την 2 η περίπτωση του Θ. Κυριαρχίας, n 2 = Θ(n log b a ) Οπότε T(n) = Θ(n 2 logn). Αρα διαλέγουμε τον αλγόριθμο Β. ΕΡΩΤΗΜΑ 2 Υποθέστε ότι προσλαμβάνεστε ως διαχειριστής έργων (project manager) σε μια εταιρεία. Για κάθε έργο που σας αναθέτει, η διοίκηση της εταιρείας θέλει να γνωρίζει τον αριθμό εργάσιμων ημερών που απαιτούνται για την ολοκλήρωση του ανατιθέμενου έργου. Για να ικανοποιήσετε την απαίτηση αυτή, αναλύετε κάθε έργο σε υποέργα διάρκειας μίας εργάσιμης ημέρας και καθορίζετε τις αλληλοεξαρτήσεις τους (δηλ. ποιο υποέργο πρέπει να περιμένει τα αποτελέσματα άλλων υποέργων προκειμένου να εκτελεστεί). Υποέργα εξαρτώμενα από ήδη ολοκληρωμένα υποέργα μπορούν να εκτελεστούν παράλληλα κατά την διάρκεια μιας μέρας. Κατόπιν, μοντελοποιείτε την εκτέλεση των υποέργων ως ένα κατευθυνόμενο γράφημα G = (V, E) στο οποίο κάθε κορυφή v αντιστοιχεί σε ένα υποέργο, και υπάρχει κατευθυνόμενη ακμή (u,v) στο G αν το υποέργο v χρειάζεται τα αποτελέσματα [16]
του υποέργου u προκειμένου να εκτελεστεί. Η φύση των έργων είναι τέτοια, έτσι ώστε η προκύπτουσα μοντελοποίηση έχει τις εξής ιδιότητες: (1) Το προκύπτον γράφημα G είναι ακυκλικό, αφού δεν μπορεί να υπάρχει κυκλική αλληλεξάρτηση μεταξύ των υποέργων. Αυτό σημαίνει ότι οι κορυφές μπορούν να διαταχθούν τοπολογικά, δηλ. να αριθμηθούν με τέτοιο τρόπο v 1,, v n (υποθέτοντας ότι έχετε n υποέργα) έτσι ώστε για κάθε ακμή (v i, v j ) E να ισχύει πάντοτε ότι i < j. (2) Κάθε κορυφή εκτός από την v n έχει τουλάχιστον μία εξερχόμενη ακμή και κάθε κορυφή εκτός από την v 1 έχει τουλάχιστον μία εισερχόμενη ακμή, δηλαδή, για κάθε κορυφή v i, με i = 1, 2,..., n 1, υπάρχει τουλάχιστον μία ακμή της μορφής (v i, v j ) και για κάθε κορυφή v j, με j = 2, 3,..., n, υπάρχει τουλάχιστον μία ακμή της μορφής (v k, v j ). Για να βρείτε τώρα τον αριθμό εργάσιμων ημερών που απαιτούνται για την ολοκλήρωση του ανατιθέμενου έργου αρκεί να υπολογίσετε το μήκος της μεγαλύτερης διαδρομής μεταξύ του πρώτου υποέργου (v 1 ) και του τελευταίου υποέργου (v n ), και να προσθέσετε 1. Με άλλα λόγια, καλείστε να επιλύσετε το ακόλουθο πρόβλημα: δεδομένου ενός κατευθυνόμενου ακυκλικού γραφήματος με κόστη ακμών ίσα με 1, και στο οποίο οι κορυφές έχουν διαταχθεί τοπολογικά, κάθε κορυφή εκτός της v n έχει βαθμό εξόδου τουλάχιστον 1 και κάθε κορυφή εκτός της v 1 έχει βαθμό εισόδου τουλάχιστον 1, βρείτε το μήκος της μεγαλύτερης διαδρομής από την κορυφή v 1 στην κορυφή v n. Θεωρήστε, για παράδειγμα, το παρακάτω κατευθυνόμενο ακυκλικό γράφημα v 1 v 2 v 3 v 4 v 5 v 6 v 7 όπου η μεγαλύτερη διαδρομή έχει μήκος 5 και αποτελείται από τις ακμές (v 1, v 2 ), (v 2, v 3 ), (v 3, v 4 ), (v 4, v 6 ) και (v 6, v 7 ). Συνεπώς απαιτούνται 6 εργάσιμες μέρες, παρατηρώντας ότι η v 5 μπορεί να γίνει παράλληλα με τη v 3. (A) Σχεδιάστε έναν αλγόριθμο δυναμικού προγραμματισμού ο οποίος, δεδομένου ενός κατευθυνόμενου ακυκλικού γραφήματος με κόστη ακμών ίσα με 1 όπως παραπάνω, βρίσκει το μήκος της μεγαλύτερης διαδρομής από την κορυφή v 1 στην κορυφή v n (κόστος βέλτιστης λύσης). Η περιγραφή του αλγορίθμου μπορεί να είναι σε άτυπη μορφή, αλλά [17]
πρέπει να περιλαμβάνει οπωσδήποτε την/τις αναδρομική/-κες σχέση/-εις που διέπουν τον αλγόριθμο και συμπληρώνουν τον πίνακα δυναμικού προγραμματισμού. Δώστε τον χρόνο εκτέλεσης του αλγορίθμου σας, ο οποίος πρέπει να είναι πολυωνυμικός ως προς το n. (Β) Εκτελέστε τον αλγόριθμό σας στο παραπάνω παράδειγμα δίνοντας τις τιμές του πίνακα δυναμικού προγραμματισμού σε κάθε βήμα. (Γ) Με βάση τον αλγόριθμο που σχεδιάσατε, προτείνετε (σε άτυπη μορφή) μια μέθοδο υπολογισμού της μεγαλύτερης διαδρομής από την κορυφή v 1 στην κορυφή v n και εκτελέστε την στο παραπάνω παράδειγμα. Υπόδειξη: ακολουθήστε οπισθόδρομα τον πίνακα δυναμικού προγραμματισμού δηλ. από την τελευταία προς την αρχική του θέση επιλέγοντας κάθε φορά να συνεχίσετε προς τα πίσω σε εκείνη τη θέση (που περιλαμβάνεται στο δεξιό μέλος της αναδρομικής σχέσης), η οποία καθόρισε το αποτέλεσμα της τρέχουσας θέσης του πίνακα και σημειώνοντας παράλληλα την κορυφή που ανήκει στη βέλτιστη λύση. ΑΠΑΝΤΗΣΗ (A) Έστω D[j] ότι συμβολίζει το μήκος της μεγαλύτερης διαδρομής από την κορυφή v 1 στην κορυφή v j. Επειδή μπορεί να μην υπάρχει διαδρομή από την v 1 στην κορυφή v j, όπως και μπορεί να μην υπάρχει ακμή μεταξύ δύο οποιωνδήποτε κορυφών v i και v j, θα χρησιμοποιήσουμε την τιμή για να συμβολίσουμε την ανυπαρξία ακμής ή διαδρομής. Αρχικά λοιπόν θέτουμε w(v i, v j ) = 1, αν (v i, v j ) E, και w(v i, v j ) =, αν (v i, v j ) E. Προφανώς, D[1] = 0, αφού η διαδρομή από την v 1 στην v 1 αποτελείται από μηδέν ακμές. Παρατηρήστε ότι για όλες τις εισερχόμενες ακμές (v i, v j ) E της v j, ισχύει ότι i < j και ότι αν έχουμε υπολογίσει τα D[i], τότε η παρακάτω αναδρομική σχέση υπολογίζει σωστά το D[j] D[j] = max{d[i] + w(v i, v j ) : 1 i < j } αφού όλες οι διαδρομές από την v 1 στην κορυφή v j έχουν ως τελική ακμή την (v i, v j ), i < j. Μπορούμε να υπολογίσουμε τις τιμές του πινάκα δυναμικού προγραμματισμού D σε αυξανόμενη σειρά ως προς το i = 1...n. Το μήκος της μεγαλύτερης διαδρομής από την κορυφή v 1 στην κορυφή v n είναι η τιμή του D[n] και μπορούμε να βρούμε τις ακμές που την αποτελούν με οπισθόδρομη ιχνηλάτηση των υπολογισμών από το D[n], ακολουθώντας κάθε φορά το αποτέλεσμα του τελεστή max. Σε κάθε επανάληψη πρέπει να βρούμε το μέγιστο το πολύ n τιμών. Έχουμε συνολικά n επαναλήψεις, και άρα ο συνολικός χρόνος εκτέλεσης είναι Ο(n 2 ). (Β) Η εκτέλεση του αλγορίθμου στο παράδειγμα έχει ως εξής. D[1] = 0. D[2] = max{d[1] + w(v 1, v 2 )}= max{0+1} = 1. D[3] = max{d[1] + w(v 1, v 3 ), D[2] + w(v 2, v 3 )}= max{0 + 1, 1 + 1} = 2. [18]
D[4] = max{d[1] + w(v 1, v 4 ), D[2] + w(v 2, v 4 ), D[3] + w(v 3, v 4 )}= max{0 + ( ), 1+ ( ), 2 + 1} = 3. D[5] = max{d[1] + w(v 1, v 5 ), D[2] + w(v 2, v 5 ), D[3] + w(v 3, v 5 ), D[4] + w(v 4, v 5 )}= max{0 + ( ), 1+1, 2 + ( ), 3 + ( )} = 2. D[6] = max{d[1] + w(v 1, v 6 ), D[2] + w(v 2, v 6 ), D[3] + w(v 3, v 6 ), D[4] + w(v 4, v 6 ), D[5] + w(v 5, v 6 )}= max{0 + ( ), 1+1, 2 + ( ), 3 + 1, 2 + 1} = 4. D[7] = max{d[1] + w(v 1, v 7 ), D[2] + w(v 2, v 7 ), D[3] + w(v 3, v 7 ), D[4] + w(v 4, v 7 ), D[5] + w(v 5, v 7 ), D[6] + w(v 6, v 7 )}= max{0 + ( ), 1+ ( ), 2 + ( ), 3 + ( ), 2 + ( ), 4 + 1} = 5. Άρα, το μήκος της μεγαλύτερης διαδρομής είναι 5. (Γ) ) Έχοντας τον πίνακα δυναμικού προγραμματισμού D, μπορούμε να βρούμε τα στοιχεία της μεγαλύτερης διαδρομής από την κορυφή v 1 στην κορυφή v n με οπισθόδρομη ιχνηλάτηση των υπολογισμών από το D[n], ακολουθώντας κάθε φορά το αποτέλεσμα του τελεστή max (δείτε Δραστηριότητα 4.5 στον Τόμο Α). Δηλ., αρχίζοντας από τη θέση D[n] και αναλύοντας την αναδρομική σχέση, προσδιορίζουμε για ποια τιμή του i, 1 i < n, μεγιστοποιείται η παράσταση D[i] + w(v i, v n ) και συνεχίζουμε οπισθόδρομα στη συγκεκριμένη θέση D[i]. Με ανάλογο τρόπο, συνεχίζουμε προς τα πίσω μέχρι τη θέση D[0]. Οπισθόδρομη ιχνηλάτηση στους παραπάνω υπολογισμούς μας δίνει ότι η μεγαλύτερη διαδρομή αποτελείται από τις ακμές: (v 6, v 7 ) και τη βέλτιστη λύση D[6] (αποτέλεσμα τελεστή max στο D[7]), (v 4, v 6 ) και τη βέλτιστη λύση D[4] (αποτέλεσμα τελεστή max στο D[6]), (v 3, v 4 ) και τη βέλτιστη λύση D[3] (αποτέλεσμα τελεστή max στο D[4]), (v 2, v 3 ) και τη βέλτιστη λύση D[2] (αποτέλεσμα τελεστή max στο D[3]), (v 1, v 2 ) και τη βέλτιστη λύση D[1] (αποτέλεσμα τελεστή max στο D[2]). Δηλαδή, η μεγαλύτερη διαδρομή (που έχει μήκος 5) αποτελείται από τις ακμές (v 1, v 2 ), (v 2, v 3 ), (v 3, v 4 ), (v 4, v 6 ) και (v 6, v 7 ). [19]
ΕΡΩΤΗΜΑ 3 (A) Να κατασκευάσετε ντετερμινιστικό πεπερασμένο αυτόματο για τη γλώσσα που περιγράφει η κανονική έκφραση (111+00)*1 (B) Έστω το αλφάβητο Σ={0,1} και L η μικρότερη γλώσσα που καθορίζεται από τον παρακάτω (αναδρομικό) ορισμό: 0 L u L 1u 010 L Χρησιμοποιήστε κανονική. το Λήμμα Άντλησης για να δείξετε ότι η γλώσσα αυτή δεν είναι (Γ) Δίνονται τα αυτόματα του παρακάτω σχήματος. Να κατασκευάσετε αυτόματο (Γ.1) για την τομή και (Γ.2) για τη διαφορά των γλωσσών των δύο αυτών αυτομάτων. ΑΠΑΝΤΗΣΗ (Α) Το ντετερμινιστικό αυτόματο για τη γλώσσα (111+00)*1 [20]
(Β) Η γλώσσα είναι η n n L {1 0(010) n 0}, είναι άπειρη και έστω ότι είναι κανονική και p το μήκος άντλησης. Θεωρούμε τη λέξη συνεπώς υπάρχουν συμβολοσειρές x,y,z ώστε w xyz 0 y xy p p p w 1 0(010). Είναι w 4 p 1 p και i i xy z L Λόγω των συνθηκών, το xy αποτελείται μόνο από άσσους. Τότε όμως σε οποιαδήποτε i xy z ( i 1) λέξη αλλάζει το πλήθος των 1 αριστερά του 0, ενώ διατηρείται ίδιο το πλήθος των 010 στα δεξιά του και συνεπώς οι λέξεις αυτές δεν ανήκουν στη γλώσσα. (Γ) Τα αυτόματα της τομής και της διαφοράς δίνονται παρακάτω ΤΟΜΗ (ΚΕΝΗ) ΔΙΑΦΟΡΑ ΕΡΩΤΗΜΑ 4 Έστω η γλώσσα ανεξάρτητη συμφραζομένων L = { x 0 n x 1 3n x : n 0 } {0, 1, x}*. (A) Να δώσετε γραμματική ανεξάρτητη συμφραζομένων που να παράγει την L. (Β) Να σχεδιάσετε ντετερμινιστικό αυτόματο στοίβας που να αναγνωρίζει την L. ΑΠΑΝΤΗΣΗ (A) Μια γραμματική ανεξάρτητη συμφραζομένων για τη γλώσσα L είναι η G=( {S,A}, {0,1,x}, S, { S xax, Α 0A111 x} ). (Β) Ένα ντετερμινιστικό αυτόματο στοίβας που αναγνωρίζει τη γλώσσα L είναι το M=({q 0, q 1, q 2, q 3 }, {0, 1, x}, {0, x, Z 0 }, q 0, Z 0, δ, {q 3 }) όπου η συνάρτηση μετάβασης δ ορίζεται σύμφωνα με τον ακόλουθο πίνακα: [21]
Αριθμός Κίνησης Κατάσταση Σύμβολο Εισόδου Σύμβολο Σωρού Κίνηση Επεξήγηση 1 q 0 x Z 0 (q 1, xz 0 ) Ανάγνωση του πρώτου x και εισαγωγή του στο σωρό 2 q 1 0 Z (q 1, 000Z) Ανάγνωση του 0 και εισαγωγή του 000 στο σωρό. Z = 0 ή x. 3 q 1 x Z (q 2, Z) Ανάγνωση του δεύτερου x 4 q 2 1 0 (q 2, ε) Ανάγνωση του 1 και διαγραφή του 0 από το σωρό 5 q 2 x x (q 2, ε) Ανάγνωση του τρίτου x και διαγραφή του από το σωρό 6 q 2 ε Z 0 (q 3, Z 0 ) Αποδοχή Οι υπόλοιποι συνδυασμοί Τίποτα Το αυτόματο διαβάζει το πρώτο x και το εισάγει στο σωρό. Στη συνέχεια, κάθε φορά που διαβάζει ένα μηδενικό, εισάγει στο σωρό τρία μηδενικά, μέχρι να διαβάσει το μεσαίο x. Στη συνέχεια, για κάθε άσσο που διαβάζει, διαγράφει ένα μηδενικό από το σωρό, μέχρι να διαβάσει x, το οποίο και διαγράφει από το σωρό. Το αυτόματο φτάνει σε κατάσταση αποδοχής όταν ο σωρός είναι κενός. ΕΡΩΤΗΜΑ 5 (A) Να αποδείξετε ότι η γλώσσα Y = { M 1,M 2 M 1 και M 2 είναι ΤΜ έτσι ώστε οι L(M 1 ) και L(M 2 ) να έχουν τουλάχιστον 154 κοινές λέξεις} δεν είναι αποφασίσιμη (μπορείτε να κάνετε αναγωγή από τη γλώσσα του Τερματισμού που δίνεται παρακάτω ή από οποιαδήποτε άλλη γλώσσα επιθυμείτε) Α H ={ M,w η M είναι μία ΤΜ που τερματίζει σε είσοδο w} (Β) Για κάθε φυσικό αριθμό i, j ορίζουμε την πράξη ως εξής: Να κατασκευάσετε ντετερμινιστική μηχανή Turing M μίας ταινίας με αλφάβητο εισόδου Σ = {α, β} και αλφάβητο ταινίας Γ={α,β,γ,#}, που να μετατρέπει την είσοδο της μορφής [22]
α n β m, n,m 0, στη λέξη. Η είσοδος είναι πάντα αυτή της μορφής και δεν χρειάζεται να κάνετε σχετικούς ελέγχους. Για την Turing Μηχανή Μ επιτρέπεται η ταυτόχρονη εγγραφή συμβόλου με την κίνηση της κεφαλής. Ο αρχικός σχηματισμός της Μ θα είναι της μορφής #w#, όπου w Σ *. Για παράδειγμα, με αρχικό σχηματισμό τον #αααββ# η Μ τερματίζει στο σχηματισμό #α#, ενώ με αρχικό σχηματισμό #ααββββ# η Μ τερματίζει στο σχηματισμό #. (1) Δώστε μια άτυπη περιγραφή της λειτουργίας της Μ (έναν αλγόριθμο διαχείρισης της ταινίας της). (2) Δώστε το διάγραμμα καταστάσεων της Μ. ΑΠΑΝΤΗΣΗ (A) Στην αναγωγή κατασκευάζουμε μία νέα ΤΜ Μ η οποία κάνει τα εξής: H M σε είσοδο x κάνει τα εξής: 3. Εκτελεί την M σε είσοδο w. 4. Αν τερματίσει ΑΠΟΔΟΧΗ. Η M λοιπόν αποδέχεται το Σ * αν η Μ τερματίσει σε είσοδο w αλλιώς δεν αποδέχεται τίποτα αφού εγκλωβίζεται. Η αναγωγή επιστρέφει την λέξη M,M. Θα αποδείξουμε ότι M,w Α Η αν και μόνο αν M,M Υ. Πράγματι, έστω ότι M,w Α Η. Τότε η γλώσσα της Μ θα είναι το Σ *. Επομένως η Μ θα έχει άπειρες κοινές λέξεις με τον εαυτό της και άρα θα έχει τουλάχιστον 154 κοινές λέξεις και άρα M,M Υ. Έστω ότι M,w Α Η. Τότε η γλώσσα της Μ είναι η κενή γλώσσα. Αυτό σημαίνει ότι το πλήθος των λέξεων που έχει κοινές με τον εαυτό της είναι 0 (αφού είναι η κενή γλώσσα). Άρα δεν θα είναι τουλάχιστον 154 και άρα M,M Υ. Αυτό σημαίνει ότι η γλώσσα Y δεν είναι αποφασίσιμη. (B) (1) Η ιδέα είναι να σβήνουμε ανά δύο τα α και β (χρησιμοποιώντας το σύμβολο γ). Συγκεκριμένα, εντοπίζουμε το πρώτο β και αφού το σβήσουμε, σβήνουμε και το πρώτο από δεξιά α που θα βρούμε αντικαθιστώντας τα με το σύμβολο γ. Επαναλαμβάνοντας αυτή τη διαδικασία, όταν κάποια στιγμή τελειώσουν τα β τότε σβήνουμε όλα τα γ και τερματίζουμε. Αν όμως έχουν τελειώσει όλα τα α τότε σβήνουμε τα πάντα και τερματίζουμε. (2) Το διάγραμμα καταστάσεων της Μ είναι το εξής: [23]
q # R α,γ R α γ,r q 1 β γ,l # L γ #,L q 3 # h γ L q 2 # R α L # q 4 # L q 5 β,γ R β,γ #,L ΕΡΩΤΗΜΑ 6 Δίνονται τα παρακάτω προβλήματα από τη Θεωρία Γραφημάτων: CLIQUE: Δοθέντος μη κατευθυντικού γραφήματος G(V,E) και θετικού ακεραίου k, 2 k V, έχει το G κλίκα μεγέθους τουλάχιστον k; Κλίκα είναι ένα σύνολο κορυφών όπου κάθε ζευγάρι κορυφών ενώνονται με ακμή στο γράφημα (είναι γειτονικές). INDSET: Δοθέντος μη κατευθυντικού γραφήματος G(V,E) και θετικού ακεραίου k, 2 k V, έχει το G ανεξάρτητο σύνολο μεγέθους τουλάχιστον k; Ανεξάρτητο σύνολο είναι ένα σύνολο κορυφών όπου κανένα ζευγάρι κορυφών δεν είναι γειτονικές. SUBISO: Δοθέντων δύο μη κατευθυντικών γραφημάτων G 1 (V 1,E 1 ) και G 2 (V 2,E 2 ), υπάρχει υπογράφημα του G 1 που να είναι ισόμορφο με G 2 ; Δύο γραφήματα είναι ισόμορφα αν υπάρχει μια αμφιμονοσήμαντη αντιστοίχιση των κορυφών του πρώτου στις κορυφές του δεύτερου, έτσι ώστε δύο κορυφές στο δεύτερο γράφημα είναι γειτονικές αν και μόνο αν οι αντίστοιχες κορυφές στο πρώτο γράφημα είναι γειτονικές. [24]
(A) Αποδείξτε ότι το πρόβλημα INDSET ανήκει στην κλάση ΝΡ, σχεδιάζοντας πολυωνυμικό επαληθευτή για το πρόβλημα. (B) Αποδείξτε ότι το πρόβλημα INDSET είναι ΝΡ-δύσκολο. Για την αναγωγή χρησιμοποιήστε το γνωστό ΝΡ-πλήρες πρόβλημα CLIQUE και βασιστείτε στην πρόταση Π: «Ένα γράφημα G έχει ανεξάρτητο σύνολο μεγέθους τουλάχιστον k, αν και μόνο αν το συμπληρωματικό του, G c, έχει κλίκα μεγέθους τουλάχιστον k». (Γ) Αποδείξτε ότι το πρόβλημα SUBISO είναι ΝΡ-δύσκολο. Για την αναγωγή χρησιμοποιήστε το γνωστό ΝΡ-πλήρες πρόβλημα CLIQUE. ΑΠΑΝΤΗΣΗ (A) Ο επαληθευτής, με είσοδο (i) μη κατευθυντικό γράφημα G(V,E) και θετικό ακέραιο k, 2 k V, και (ii) ένα σύνολο κορυφών C του G (υποσύνολο του V), 1. Ελέγχει αν C k. Αν όχι, απορρίπτει. 2. Για κάθε ζευγάρι κορυφών του C, εξετάζει αν αυτές ενώνονται με ακμή στο G. Αν υπάρχει έστω και μία τέτοια ακμή, απορρίπτει. 3. Αποδέχεται. Ο επαληθευτής ελέγχει την ύπαρξη το πολύ Ο( C ) = O(n 2 ) ακμών στο γράφημα, άρα ο χρόνος του είναι πολυωνυμικός. Συνεπώς το πρόβλημα INDSET ανήκει στην κλάση ΝΡ. (Β) Για να αποδείξουμε ότι το πρόβλημα INDSET είναι ΝΡ-δύσκολο, θα ανάγουμε το CLIQUE σε αυτό. Ξεκινώντας από ένα στιγμιότυπο του CLIQUE, δηλαδή από ένα μη κατευθυντικό γράφημα G και έναν θετικό ακέραιο k, κατασκευάζουμε ένα στιγμιότυπο του INDSET, δηλαδή μη κατευθυντικό γράφημα G και θετικό ακέραιο k, ως εξής: θέτουμε G = G c και k = k. Το G μπορεί να κατασκευαστεί σε χρόνο πολυωνυμικό στο μέγεθος του G. Λόγω της πρότασης Π, το G έχει ανεξάρτητο σύνολο μεγέθους τουλάχιστον k αν και μόνο αν το G c έχει κλίκα μεγέθους τουλάχιστον k. Συνεπώς το πρόβλημα INDSET είναι ΝΡ-δύσκολο. (Γ) Για να αποδείξουμε ότι το πρόβλημα SUBISO είναι ΝΡ-δύσκολο, θα ανάγουμε το CLIQUE σε αυτό. Ξεκινώντας από ένα στιγμιότυπο του CLIQUE, δηλαδή από ένα μη κατευθυντικό γράφημα G και έναν θετικό ακέραιο k, κατασκευάζουμε στιγμιότυπο του SUBISO, δηλαδή μη κατευθυντικά γραφήματα G 1 και G 2, ως εξής: θέτουμε G 1 = G και G 2 = C k ;όπου C k είναι το πλήρες γράφημα με k κορυφές. Επειδή k V, η κατασκευή αυτή γίνεται σε χρόνο πολυωνυμικό ως προς το μέγεθος του αρχικού στιγμιοτύπου. [25]
Αν το G έχει κλίκα μεγέθους τουλάχιστον k, τότε και το G 1 = G έχει κλίκα τουλάχιστον k, άρα το G 1 έχει υπογράφημα ισόμορφο με το G 2 = C k. Αντίστροφα, αν το το G 1 έχει υπογράφημα ισόμορφο με το G 2 = C k, τότε υποχρεωτικά το υπογράφημα αυτό θα είναι κλίκα με k κορυφές, άρα το G 1 = G περιέχει κλίκα με k κορυφές. Συνεπώς το πρόβλημα SUBISO είναι ΝΡ-δύσκολο. [26]