ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Λύσεις 4ης Σειράς Ασκήσεων

CSC 314: Switching Theory

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

Chapter 7, 8 : Time, Space Complexity

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

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

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

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

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

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

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

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

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

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

Φροντιστήριο 10 Λύσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

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

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

Φροντιστήριο 9 Λύσεις

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

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

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

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α.

Ασκήσεις από παλιές εξετάσεις

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

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

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Αλγόριθμοι για αυτόματα

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Υπολογισμού και Πολυπλοκότητα

Φροντιστήριο 11 Λύσεις

Chapter 7, 8 : Time, Space Complexity

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5

Μη Ντετερμινισμός και NP-Πληρότητα

Ασκήσεις Επανάληψης. Επανάληψη Εαρινό Εξάμηνο 2019 Σελίδα 1

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Θεωρία Υπολογισμού. Ασκήσεις. Δρ. Τζάλλας Αλέξανδρος, Καθηγητής Εφαρμογών. Τμ. Μηχανικών Πληροφορικής Τ.Ε.

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 12: Μηχανές Turing

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

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

f(t) = (1 t)a + tb. f(n) =

Θεωρία Υπολογισμού και Πολυπλοκότητα

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Μη Ντετερμινισμός και NP-Πληρότητα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

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

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Φροντιστήριο 8 Λύσεις

Μη Ντετερμινισμός και NP-Πληρότητα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 15: Διαγνωσιμότητα (Επιλυσιμότητα) ΙΙ

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

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

Φροντιστήριο 7 Λύσεις

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Φροντιστήριο 8 Λύσεις

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6

Θεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 16: Αναγωγές

Εισαγωγή στην Ανάλυση Αλγορίθμων

Διάλεξη 04: Παραδείγματα Ανάλυσης

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ψ φ2 = k χ φ2 = 4k χ φ1 = χ φ1 + χ φ2 + 3 = 4(k 1 + k 2 + 1) + 1 ψ φ1 = ψ φ1 + χ φ2 = k k = (k 1 + k 2 + 1) + 1

Εισαγωγή στην Επιστήμη των Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Αλγόριθµοι και Πολυπλοκότητα

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

Transcript:

Θεμελιώσεις Επιστήμης Η/Υ ΠΛΗ30 Τελική Εξέταση 10 Ιουνίου 015 Ονοματεπώνυμο Φοιτητή Αριθμός Μητρώου Φοιτητή Τμήμα Υπογραφή Φοιτητή Υπογραφή Επιτηρητή Διάρκεια: 10 Ερώτημα Μονάδες Βαθμολογία 1 7+6+7 8+7+5 3 1+8 4 (7+7)+6 5 (+6)+6+(3+3) 6 (+++)+(3+9) Σύνολο 10 Σε κάθε θέμα χρειάζεται αιτιολόγηση της απάντησής σας. Γράψτε όλες σας τις απαντήσεις στις κόλλες του ΕΑΠ που διανέμονται. Για πρόχειρο μπορείτε να χρησιμοποιήσετε τις τελευταίες σελίδες. Τα θέματα επιστρέφονται μαζί με τις κόλλες. Για να πετύχετε στην εξέταση πρέπει να συγκεντρώσετε τουλάχιστον 50 μονάδες. Καλή επιτυχία! [1]

[]

ΕΡΩΤΗΜΑ 1 (Α) Να συγκριθούν οι συναρτήσεις και να σημειωθεί στην αντίστοιχη στήλη του πίνακα αν είναι f(n)=o(g(n)) ή f(n)=ω(g(n)) ή f(n)=θ(g(n)). f ( n ) g ( n ) o log n n n log( n!log n ) n n 1/ n n 4 logn n log n log n n n! n! n (Β) Χρησιμοποιήστε το Θεώρημα Κυριαρχίας για να επιλύσετε τις παρακάτω αναδρομικές εξισώσεις όπου είναι δυνατόν. n 1. Tn ( ) 3T n n n. Tn ( ) 3T 3 n 3. Tn ( ) T cosn (Γ) Για την επίλυση ενός προβλήματος προτάθηκαν δυο αλγόριθμοι Α και Β. Δοθέντος στιγμιότυπου του προβλήματος με είσοδο μεγέθους n, ο Α λύνει δυο υπο-προβλήματα μεγέθους n-1 και συνδυάζει τις λύσεις σε σταθερό χρόνο. Ο Β λύνει τέσσερα υποπροβλήματα μεγέθους n/ το καθένα και συνδυάζει τις λύσεις σε χρόνο log n. Ποιος είναι ο ταχύτερος; Υπόδειξη: Θεώρημα Κυριαρχίας: Έστω η αναδρομική εξίσωση 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 [3]

log a b b () αν 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 ΑΠΑΝΤΗΣΗ (Α) (1) log log n n n n n n n n και επομένως f=θ(g) () log( n!log n) logn! loglogn ( nlog n) loglogn (nlogn) και η σύγκριση είναι με n (3) 1 ( 1 1/ n ) n n n ( n ) n επειδή 1 1 (4) log n log n (log n) n n! n n! n! (5) n n n (4 ) n 4 (log n ) συμπεραίνουμε ότι f(n) = ω(g(n)) f ( n ) g ( n ) o log n n n n log( n!log n ) n 1/ n n 4 logn n log n log n n n! n! n (Β) 1. n Tn ( ) 3T n, 3η περίπτωση, T( n) ( n ) [4]

log 3 Πράγματι, είναι 1log 3 και για log 3 έχουμε f( n) n ( n ). Επιπλέον n 3 af ( n ) 3 n cf ( n) cn 4 n n. Tn ( ) 3T 3 για c=3/4., η περίπτωση, T( n) ( nlog n) Έχουμε πράγματι log a b log3 3 1 οπότε n 1 f ( n) ( n ). n 3. Tn ( ) T cosn, δεν εφαρμόζεται το Θ. Κυριαρχίας, διότι η cosn δεν είναι ασυμπτωτικά θετική συνάρτηση. (Γ) Οι αντίστοιχες αναδρομικές εξισώσεις είναι A( n) A( n1) c n B( n) 4B logn Για τον αλγόριθμο Α, εφαρμόζοντας την τεχνική της αναδίπλωσης προκύπτει ότι An ( ) An ( 1) c ( A( n) c) c A( n) cc... k1 k An ( k) c j0 Για k=n-1 και Α(1)=c έχουμε j n1 j An ( ) c. Με επαγωγή στο n εύκολα προκύπτει ότι για n 1 ισχύει j0 n Επομένως An ( ) ( ). n1 j n 1. j 0 Για τον αλγόριθμο Β εφαρμόζοντας το Θεώρημα Κυριαρχίας, 1η περίπτωση, προκύπτει Bn ( ) n. Πράγματι, log 4 και συνεπώς για Επομένως ταχύτερος είναι ο Β. 1 έχουμε 1 f( n) log n O( n ). ΕΡΩΤΗΜΑ [5]

Έστω ότι δίνεται ένα γράφημα πλέγματος διαστάσεων n m (γραμμές στήλες), κάθε κόμβος του οποίου χαρακτηρίζεται από τις συντεταγμένες του στο επίπεδο. Υποθέτουμε ότι ο πάνω-αριστερά κόμβος έχει συντεταγμένες (0,0) και ο κάτω-δεξιά κόμβος έχει συντεταγμένες (n 1, m 1). Υποθέστε ότι ένα ρομπότ βρίσκεται αρχικά στον πάνωαριστερά κόμβο και ότι κινείται μόνο δεξιά (ανατολικά) ή κάτω (νότια). Για έναν δεδομένο κόμβο (i,j), ζητείται η εύρεση του πλήθους των διαδρομών που μπορεί να διατρέξει το ρομπότ από τον κόμβο (0,0) στον κόμβο (i,j). Θεωρήστε για παράδειγμα το παρακάτω πλέγμα διαστάσεων 3 4, με τις συντεταγμένες κάθε κόμβου. Το πλήθος των διαδρομών 0,0 0,1 0, 0,3 1,0 1,1 1, 1,3,0,1,,3 που μπορεί να ακολουθήσει το ρομπότ για να φτάσει στον κόμβο (1,) από τον κόμβο (0,0) είναι 3. Συγκεκριμένα, είναι οι διαδρομές P 1 = (0,0) (0,1) (0,), (1,), P = (0,0) (0,1) (1,1), (1,), και P 3 = (0,0) (1,0) (1,1), (1,). (Α) Σχεδιάστε έναν αλγόριθμο δυναμικού προγραμματισμού ο οποίος, δεδομένου ενός στιγμιοτύπου του παραπάνω προβλήματος, βρίσκει το πλήθος των διαδρομών που μπορεί να διατρέξει το ρομπότ από τον κόμβο (0,0) στον κόμβο (n 1, m 1). Η περιγραφή του αλγορίθμου μπορεί να είναι σε άτυπη μορφή, αλλά πρέπει να περιλαμβάνει οπωσδήποτε την/τις αναδρομική/-κες σχέση/-εις που διέπουν τον αλγόριθμο και συμπληρώνουν τον πίνακα δυναμικού προγραμματισμού. Δώστε τον χρόνο εκτέλεσης του αλγορίθμου σας, ο οποίος πρέπει να είναι πολυωνυμικός ως προς τις διαστάσεις του πλέγματος n,m. (Β) Εκτελέστε τον αλγόριθμό σας στο παραπάνω παράδειγμα δίνοντας τις τιμές του πίνακα δυναμικού προγραμματισμού. (Γ) Υποθέστε ότι κάποιοι κόμβοι του πλέγματος είναι κατειλημμένοι από κάποια αντικείμενα και το ρομπότ δεν μπορεί να τους επισκεφθεί. Στο παραπάνω παράδειγμα, αν ο κόμβος (1,1) δεν είναι επισκέψιμος, τότε ο αριθμός των διαδρομών που μπορεί να ακολουθήσει το ρομπότ για να φτάσει στον κόμβο (1,) από τον κόμβο (0,0) είναι 1 (και όχι 3). Περιγράψτε πώς μπορεί να τροποποιηθεί ο αλγόριθμος που δώσατε στο (Α) για να απαντά σε τέτοια στιγμιότυπα εισόδου και δώστε τον χρόνο εκτέλεσης, ο οποίος πρέπει να είναι πολυωνυμικός ως προς τις διαστάσεις του πλέγματος n,m. ΑΠΑΝΤΗΣΗ [6]

(Α) Έστω P[i,j] το πλήθος όλων των διαδρομών που μπορεί να διατρέξει το ρομπότ από τον κόμβο (0,0) στον κόμβο (i,j). Θεωρούμε ότι P[0,0] = 1, αφού το ρομπότ ξεκινάει από εκεί, και ότι P[i,j] = 0 αν είτε i < 0, είτε j < 0. Εφόσον το ρομπότ κινείται μόνο δεξιά (ανατολικά) ή κάτω (νότια), μπορεί να φτάσει στον κόμβο (i,j) μόνο μέσω της ακμής ((i 1,j), (i,j)) (εφόσον υπάρχει), ή μέσω της ακμής ((i, j 1), (i,j)) (εφόσον υπάρχει). Έχουμε επομένως την ακόλουθη αναδρομική σχέση: P[i,j] = P[i 1, j] + P[i, j 1], i 0 και j 0, με i + j > 0. Μπορούμε να υπολογίσουμε τις τιμές του πινάκα δυναμικού προγραμματισμού P σε αυξανόμενη σειρά ως προς τα i = 0...n και j = 0...m με βάση την παραπάνω αναδρομή, θέτοντας ως αρχικές τιμές P[0,0] = 1, και P[i,j] = 0 όταν είτε i = 1, είτε j = 1. Ο υπολογισμός της τιμής P[i,j] απαιτεί πρόσθεση δύο στοιχείων του πίνακα P τα οποία έχουν ήδη υπολογιστεί σε προηγούμενη επανάληψη. Άρα, ο συνολικός χρόνος του αλγορίθμου είναι ανάλογος των στοιχείων του P, δηλαδή O(nm). (Β) Η εκτέλεση του αλγορίθμου στο παράδειγμα έχει ως εξής. P[0,0] = 1. P[0,1] = P[ 1,1] + P[0,0] = 0 + 1 = 1. P[0,] = P[ 1,] + P[0,1] = 0 + 1 = 1. P[0,3] = P[ 1,3] + P[0,] = 0 + 1 = 1. P[1,0] = P[0,0] + P[1, 1] = 1 + 0 = 1. P[1,1] = P[0,1] + P[1,0] = 1 + 1 =. P[1,] = P[0,] + P[1,1] = 1 + = 3. P[1,3] = P[0,3] + P[1,] = 1 + 3 = 4. P[,0] = P[1,0] + P[, 1] = 1 + 0 = 1. P[,1] = P[1,1] + P[,0] = + 1 = 3. P[,] = P[1,] + P[,1] = 3 + 3 = 6. P[,3] = P[1,3] + P[,] = 4 + 6 = 10. (Γ) Η αρχικοποίηση παραμένει η ίδια, με τη διαφορά ότι για κάθε κατειλημμένο κόμβο (x,y), θέτουμε P(x,y) = 0. Έστω B το σύνολο των κατειλημμένων κόμβων. Τότε, η αναδρομή τροποποιείται ως εξής: P[i,j] = P[i 1, j] + P[i, j 1], i 0 και j 0, με (i,j) Β. Ο χρόνος εκτέλεσης παραμένει ανάλογος των στοιχείων του P, δηλαδή O(nm). ΕΡΩΤΗΜΑ 3 [7]

(Α) Θεωρούμε την παρακάτω γλώσσα L πάνω στο αλφάβητο Σ = {a, b}: L = {w {a, b}* κάθε a στην w βρίσκεται μετά από ένα b} Για παράδειγμα, οι συμβολοσειρές bbaba, bbbabbba ανήκουν στην L. Να κατασκευάσετε (με διάγραμμα) ένα ντετερμινιστικό πεπερασμένο αυτόματο που να δέχεται την L και μία κανονική έκφραση που να παράγει την L. (Β) Χρησιμοποιήστε το Λήμμα άντλησης για να δείξετε ότι η γλώσσα: L = {α p p πρώτος αριθμός} δεν είναι κανονική. Υπόδειξη: Λήμμα άντλησης: Έστω L κανονική γλώσσα. Υπάρχει φυσικός n > 1 τέτοιος ώστε κάθε συμβολοσειρά w L με w n να μπορεί να γραφεί ως w = xyz, έτσι ώστε: 1. xy i z L, για κάθε i 0. y e 3. xy n Ο αριθμός n ονομάζεται μήκος άντλησης. ΑΠΑΝΤΗΣΗ (Α) Ουσιαστικά, η γλώσσα L αποτελείται από τις συμβολοσειρές που όποτε εμφανίζεται ένα α τότε ακριβώς πριν από αυτό θα πρέπει οπωσδήποτε να έχει ένα τουλάχιστον b. Ένα ντετερμινιστικό πεπερασμένο αυτόματο που δέχεται την L είναι το (Κ, Σ, δ, s, F), όπου: Σύνολο καταστάσεων Κ = {q 0,q 1,q,q 3 } Αρχική κατάσταση s = q 0 Σύνολο τελικών καταστάσεων F = {q 0,q 1,q } Αλφάβητο Σ = { α, b} Η συνάρτηση μετάβασης καθώς και το αυτόματο φαίνεται στο παρακάτω σχήμα. Μία κανονική έκφραση που παράγει την L είναι η (b*(ba)*)*. Μιά εναλλακτική κανονική έκφραση είναι η (b+ba) *. [8]

(Β) Αν η γλώσσα L ήταν κανονική τότε θα υπήρχε ένας φυσικός αριθμός n, τέτοιος ώστε κάθε συμβολοσειρά α p της L με p n να μπορεί να γραφεί ως α p = xyz (y e και xy n) έτσι ώστε οι συμβολοσειρές xy i z να ανήκουν στην L για κάθε i 0. Έστω ότι α p = xyz, όπου x = α q, y = a r, z = a s και p = q + r + s με r 0. H συμβολοσειρά xy q+s+r+1 z = a q a r ( q+s+r+1 )a s = a (r+1)(q+s+r) θα πρέπει να ανήκει στην L, πράγμα που δεν ισχύει καθώς (r+l)(q+s+r) δεν είναι πρώτος αριθμός. Πράγματι ισχύει (r+1) (επειδή r= y 1) και (q+s+r) επειδή q+s+r=p που είναι πρώτος αριθμός. Άρα ο αριθμός (r+1)(q+s+r) είναι σύνθετος. Δείξαμε ότι καμιά συμβολοσειρά α p της L με p > n δεν μπορεί να γραφτεί ως w = xyz έτσι ώστε y e, xy n και xy i z L για κάθε i 0. Άρα η L δεν είναι κανονική. ΕΡΩΤΗΜΑ 4 (Α) Δώστε μια γραμματική ανεξάρτητη συμφραζομένων, για τη γλώσσα L όλων των συμβολοσειρών x {0,1} * που έχουν ίσο αριθμό από 0 και 1. Δικαιολογείστε την απάντησή σας χωρίς αυστηρή απόδειξη. (Β) Σχεδιάστε ένα μή ντετερμινιστικό αυτόματο στοίβας που αναγνωρίζει τη γλώσσα L. Η κατασκευή του αυτομάτου μπορεί να γίνει με πίνακα ή με διάγραμμα. (Γ) Χρησιμοποιήστε το Λήμμα άντλησης για να δείξετε ότι η γλώσσα L 1 = {www w {a, b} } δεν είναι γλώσσα ανεξάρτητη συμφραζομένων. Υπόδειξη: (i) Λήμμα Άντλησης γιά γλώσσες ανεξάρτητες συμφράζομένων: Έστω μιά γλώσσα χωρίς συμφραζόμενα (ανεξάρτητη συμφραζομένων). Τότε, για την, υπάρχει έτσι ώστε κάθε συμβολσειρά, με, να μπορεί να γραφεί στη μορφή, όπου για τις υπο-συμβολοσειρές ισχύουν τα εξής: ΑΠΑΝΤΗΣΗ (Α) Η γλώσσα L παράγεται από τη γραμματική G=({S, A, B}, {0, 1}, S, R) με τους κανόνες R: S 0B 1A ε, A 0S 1AA 0, B 1S 0BB 1 [9]

Από τους κανόνες S 0B και S 1A, παράγονται συμβολοσειρές που έχουν τον ίδιο αριθμό από 0 και 1. Από το A παράγονται συμβολοσειρές που έχουν το πλήθος των 1 τους να είναι κατά ένα λιγότερο από το πλήθος των 0 τους και από το Β παράγονται συμβολοσειρές που έχουν το πλήθος των 0 τους να είναι κατά ένα λιγότερο από το πλήθος των 1 τους. (Β) Παρατηρούμε ότι τα 0 και 1 είναι δυνατόν να εμφανίζονται με οποιαδήποτε σειρά σε μία συμβολοσειρά της γλώσσας L. Θα πρέπει κάθε φορά που διαβάζουμε 0 από τη συμβολοσειρά εισόδου να το βάζουμε στη στοίβα, ούτως ώστε κάθε φορά που διαβάζουμε κάποιο 1 από τη συμβολοσειρά εισόδου να αφαιρούμε ένα 0 από τη στοίβα. Αντίστοιχη διαδικασία, όμως, πρέπει να ακολουθούμε αν διαβάσουμε πρώτα κάποιο 1, οπότε το βάζουμε στη στοίβα και αφαιρούμε ένα 1 από τη στοίβα όταν διαβάσουμε 0 στη συμβολοσειρά εισόδου. Τα παραπάνω μας οδηγούν στο συμπέρασμα ότι από την αρχική κατάσταση πρέπει να μπορούμε να οδηγηθούμε σε δύο διαφορετικές καταστάσεις αναλόγως αν διαβάσουμε πρώτα 0 ή 1 από τη συμβολοσειρά εισόδου. Βέβαια υπάρχει περίπτωση η συμβολοσειρά να αρχίζει με 0 και σε κάποιο σημείο (πριν το τέλος της) ο αριθμός των 1 να γίνει μεγαλύτερος από τον αριθμό των 0 (ή το αντίστροφο), παρόλο που τελικά ο αριθμός των 0 στη συμβολοσειρά είναι ίδιος με τον αριθμό των 1. ηλαδή, το ποιος αριθμός είναι μεγαλύτερος (των 0 ή των 1) μπορεί να εναλλάσσεται σε μία συμβολοσειρά w L καθώς διαβάζουμε την w δηλαδή καθώς διαβάζουμε τα προθέματά της. Γενικά, λοιπόν, παρατηρούμε ότι πρέπει το αυτόματο στοίβας που θα κατασκευάσουμε να μπορεί να μεταβαίνει από την κατάσταση όπου τα 0 είναι περισσότερα από τα 1 και αντίστροφα, όσες φορές χρειαστεί. Τέλος, το αυτόματο στοίβας M πρέπει να αναγνωρίζει την κενή συμβολοσειρά ε. Για αυτόν το λόγο, πρέπει η αρχική κατάσταση q0 να είναι και τελική. Η παραπάνω περιγραφή μας οδηγεί στο αυτόματο στοίβας M = (Q, Σ, Γ, q 0, Z 0, δ, F), με σύνολο καταστάσεων Q={q 0,q 1,q,q 3,q 4,q 5 }, τελικές καταστάσεις F = {q 0, q 3 }, αρχική κατάσταση q0, αλφάβητο Σ = {0, 1}, αλφάβητο στοίβας Γ = {$, 0, 1}. Το αυτόματο στοίβας M που περιγράψαμε παραπάνω φαίνεται στο επόμενο σχήμα. [10]

Στην περίπτωση που το αυτόματο όταν διαβάσει το x στην είσοδο, ανεξάρτητα από το σύμβολο Ζ που υπάρχει στη στοίβα γράφει το y διατηρώντας το Z, έχουμε την μετάβαση x, Z yz για κάθε Ζ, την οποία συμβολίζουμε πιο απλά με x, e y. Στο σχήμα μπορούμε να δούμε τις παρατηρήσεις που κάναμε στην αρχή. Από την αρχική κατάσταση που η στοίβα περιέχει το $, μπορούμε να επιλέξουμε αν θα πάμε στην κατάσταση q 1 ή q αναλόγως αν η συμβολοσειρά που παίρνουμε στην είσοδο αρχίζει με 0 ή 1. Επίσης, από την κατάσταση q 1 (τα 0 περισσότερα από τα 1) μπορούμε να μεταβούμε στην q (τα 1 περισσότερα από το 0) και αντίστροφα. Επιπλέον, οι καταστάσεις q 4 και q 5 είναι βοηθητικές, ούτως ώστε να μην σβηστεί το $ που έχουμε βάλει στην αρχή της στοίβας, όταν μεταβαίνουμε από την κατάσταση q 1 στην κατάσταση q και αντίστροφα. Εναλλακτικά μπορεί το αυτόματο να πάει από την q 1 στην q με μία κίνηση 1,$->1$ και από την q στην q 1 με μία κίνηση 0,$->0$. Τέλος, αν στη στοίβα δεν υπάρχει τίποτα (παρά μόνο το $) και έχουμε διαβάσει ολόκληρη τη συμβολοσειρά εισόδου μπορούμε να οδηγηθούμε στην τελική κατάσταση q 3. Το αυτόματο σε μορφή πίνακα είναι το ακόλουθο: κατάσταση ε ί σ ο δ ο ς σ τ ο ί β α κατάσταση σ τ ο ί β α q 0 0 e q 1 0 [11]

q 0 1 e q 1 q 1 0 e q 1 0 q 1 1 0 q 1 e q 1 1 $ q 4 $ q 1 e $ q 3 e q 1 e q 1 q 0 1 q e q 0 $ q5 $ q e $ q3 e q5 e e q1 0 q4 e e q 1 (Γ) Έστω ότι η γλώσσα L 1 είναι χωρίς συμφραζόμενα. Επομένως, υπάρχει μία γραμματική χωρίς συμφραζόμενα G = (V,Σ,R,S), η οποία παράγει την L. Έστω p ο αριθμός άντλησης και έστω η συμβολοσειρά a p ba p ba p b της L, όπου a p ba p ba p b > p. Τότε, σύμφωνα με το θεώρημα άντλησης η a p ba p ba p b μπορεί να γραφεί ως uvxyz, όπου vxy < p, vy e, και κάθε συμβολοσειρά uv n xy n z, n 0, ανήκει στην L. ιακρίνουμε τις περιπτώσεις : 1. Αν το vxy αποτελείται μόνο από a τότε η συμβολοσειρά uv 0 xy 0 z = uxz περιέχει τουλάχιστον ένα a λιγότερο από την αρχική συμβολοσειρά a p ba p ba p b, αφού vy e. Συνεπώς uxz = a q b a r b a s b όπου qr ή rs. Αν uxz L 1 τότε θα πρέπει uxz = www και το w να τελειώνει σε b. Συνεπώς θα πρέπει w= a q b και w= a r b και w= a s b (άτοπο, καθώς qr ή rs). Άρα, η uxz L 1.. Αν το vxy περιέχει κάποιο από τα b (παρατηρούμε ότι δεν μπορεί να περιέχει παραπάνω από ένα b λόγω του περιορισμού vxy < p), θεωρούμε και πάλι τη συμβολοσειρά uv 0 xy 0 z = uxz και διακρίνουμε δύο περιπτώσεις : Αν b v ή b y τότε η uxz περιέχει μόνο δύο b, ενώ όλες οι συμβολοσειρές της L 1 περιέχουν ακριβώς τρία b. Συνεπώς δεν μπορεί να είναι της μορφής www επειδή το πλήθος των b δεν είναι πολλαπλάσιο του 3. Αν b x τότε η uxz περιέχει τουλάχιστον ένα a λιγότερο από την αρχική συμβολοσειρά a p ba p ba p b, επειδή vy e. Επομένως, και στις δύο περιπτώσεις, η uxz L 1. Άρα, καταλήγουμε ότι η L 1 δεν είναι γλώσσα χωρίς συμφραζόμενα. [1]

ΕΡΩΤΗΜΑ 5 (Α) Να κατασκευάσετε ντετερμινιστική μηχανή Turing M που αποφασίζει την γλώσσα L={w {0,1}* w έχει τρία 0 περισσότερα από 1 (δηλαδή, αν 0 το πλήθος των 0, και 1 το πλήθος των 1, τότε 0 = 1 +3)} Το αλφάβητο της M είναι {0, 1, #, $, Y, N}. Η Μ με είσοδο w θα ξεκινά τη λειτουργία της από το σχηματισμό #w#. (1) Δώστε άτυπη περιγραφή της παραπάνω μηχανής Turing (τον αλγόριθμο διαχείρισης της ταινίας) και στη συνέχεια, () Δώστε το διάγραμμα ροής της Μ. (Β) Αποδείξτε ότι, αν μια γλώσσα L 1 είναι αναδρομική (αποφασίσιμη) και μια γλώσσα L είναι αναδρομικά απαριθμήσιμη (αποδεκτή), τότε η γλώσσα L1 L είναι αναδρομικά απαριθμήσιμη. (Γ) Χαρακτηρίστε ως αληθείς ή ψευδείς τις παρακάτω δηλώσεις και εξηγήστε συνοπτικά το χαρακτηρισμό που δώσατε. (1) Κάθε υπογλώσσα μιας Turing αποφασίσιμης γλώσσας είναι Turing αποφασίσιμη. () Η ένωση και η συνένωση δυο Turing αποδεκτών γλωσσών είναι, αντίστοιχα, Turing αποδεκτές γλώσσες. ΑΠΑΝΤΗΣΗ (Α) (1) Η Μηχανή διαβάζει την είσοδο w από αριστερά προς τα δεξιά, βρίσκει τρία 0 και τα αντικαθιστά με $. Αν δεν βρεθούν τρία 0, γράφει Ν και τερματίζει. Διαφορετικά, επανέρχεται στην αρχική της θέση και σαρώνει εκ νέου την είσοδο από αριστερά προς τα δεξιά: Αν διαβάσει 0 (αντίστοιχα 1) το αντικαθιστά με $, και στη συνέχεια αναζητά το σύμβολο 1 (αντίστοιχα 0). Αν το σύμβολο δεν βρεθεί γράφει Ν και τερματίζει. Διαφορετικά, αντικαθιστά το σύμβολο με $, επανέρχεται στην αρχική της θέση και επαναλαμβάνει. Αν ολοκληρώσει το διάβασμα της εισόδου γράφει Υ και τερματίζει. () [13]

1 R # N 0 1 $ R # N 0 1 $ R # N 0 $ $ L R # # Y 0,$ $ R 0 # 1 # $ R 1,$ N 1 0 $ L $ L # # (Β) Αφού η γλώσσα L 1 είναι αναδρομική, υπάρχει μηχανή Turing M 1 που την αποφασίζει. Επίσης, αφού η γλώσσα L είναι αναδρομικά απαριθμήσιμη, υπάρχει μηχανή Turing M η οποία την αποδέχεται. Θα κατασκευάσουμε μηχανή Turing M η οποία θα αποδέχεται τη γλώσσα L1 L. Η μηχανή Turing M με είσοδο x, 1. Αρχικά προσομοιώνει τη λειτουργία της Μ 1 με είσοδο x.. Αν η Μ 1 αποδεχθεί την x, τότε η Μ απορρίπτει. 3. Διαφορετικά, προσομοιώνει τη λειτουργία της Μ με είσοδο x. 4. Αν η Μ αποδεχθεί την x, τότε η Μ αποδέχεται. (Γ) (1) ΨΕΥΔΕΣ. Η Σ * είναι Turing αποφασίσιμη, αλλά προφανώς υπάρχουν υπογλώσσες της που δεν είναι αποφασίσιμες. () ΑΛΗΘΕΣ. Αν L,K είναι Turing αποδεκτές γλώσσες και M L, M K είναι, αντίστοιχα, μηχανές Turing που τις αποδέχονται,, τότε μπορούμε να κατασκευάσουμε μια μηχανή Turing Τ η οποία θα αποδέχεται τη συνένωση LK: Η Τ με είσοδο w διαχωρίζει μη ντετερμινιστικά την w σε ένα αρχικό τμήμα x και ένα τελικό τμήμα y, ώστε w=xy, και κατόπιν συμπεριφέρεται όπως η ακολουθιακή σύνδεση M L M K. (Ισοδύναμα, μπορούμε να θεωρήσουμε τη ντετερμινιστική μηχανή Τ η οποία με είσοδο w εκτελεί ένα loop για κάθε δυνατό διαχωρισμό της w σε μια συνένωση xy=w και σε κάθε περίπτωση συνεχίζει να συμπεριφέρεται όπως η ακολουθιακή σύνδεση M L M K ). Σημειώνουμε ότι, στην ακολουθιακή σύνδεση M L M K, η είσοδος της μηχανής M L θα είναι η λέξη x, και η είσοδος της μηχανής M K θα είναι η λέξη y. Για την ένωση μπορούμε να κατασκευάσουμε μια μηχανή Μ δύο ταινιών, δύο κεφαλών (μία στην κάθε ταινία) η οποία λειτουργεί ως εξής: Με είσοδο w γραμμένη και στις δύο ταινίες η Μ εναλλάσσει βήματα υπολογισμού, μια στην πρώτη ταινία και μια στη [14]

δεύτερη ταινία. Σε κάθε ταινία εκτελείται ο υπολογισμός μιας από τις μηχανές M L, M K. Η μηχανή τερματίζει αν οποιοσδήποτε από τους παράλληλους αυτούς υπολογισμούς τερματίσει. ΕΡΩΤΗΜΑ 6 (Α) Για κάθε μια από τις παρακάτω προτάσεις σημειώστε αν είναι: (1) Σωστή (αποδεδειγμένα) () Λάθος (αποδεδειγμένα) (3) Σωστή αν P=NP (4) Σωστή αν P NP. (A 1 ) Αν ένα πρόβλημα είναι NP-πλήρες, τότε δεν έχει πολυωνυμικό αλγόριθμο. (A ) Υπάρχει αναγωγή ενός NP- πλήρους προβλήματος σε ένα πρόβλημα που ανήκει στο P. (A 3 ) Εστω μια κανονική γλώσσα L και ένα πεπερασμένο αυτοματο Π. Το πρόβλημα: Ισχύει L=L(Π); ανήκει στην κλάση P. (L(Π) είναι η γλώσσα που αναγνωρίζει το αυτόματο Π). (A 4 ) Το πρόβλημα αποδοχής συμβολοσειράς w από ντετερμινιστικό αυτόματο Α δεν ανήκει στην κλάση Ρ (Β) Ορίζουμε ένα πρόβλημα απόφασης Π ως εξής: Δίδονται: Λογική έκφραση Φ = C 1 C C t σε Κανονική Συζευκτική Μορφή, ορισμένη σε k μεταβλητές, x 1, x,, x k, με t προτάσεις, C 1, C,, C t, και Δύο διαφορετικές αναθέσεις τιμών t 1, t {0,1} k στις k μεταβλητές, x 1, x,, x k που ικανοποιούν την Φ. Ζητείται: Υπάρχει τρίτη ανάθεση τιμών t 3 {0,1} k στις k μεταβλητές, x 1, x,, x k, με t 3 t 1 και t 3 t, που να ικανοποιεί την Φ; (1) Αποδείξτε ότι το πρόβλημα Π ανήκει στην κλάση ΝΡ. () Αποδείξτε ότι το πρόβλημα Π είναι ΝΡ-δύσκολο, κάνοντας πολυωνυμική αναγωγή από το γνωστό ΝΡ-πλήρες πρόβλημα της Ικανοποιησιμότητας (SAT). Υπόδειξη: [15]

(i) Το πρόβλημα της Ικανοποιησιμότητας (SAT) ορίζεται ως εξής: Δίνεται λογική έκφραση Ψ = C 1 C C m, σε Κανονική Συζευκτική Μορφή, ορισμένη σε n μεταβλητές x 1, x,, x n, με m προτάσεις, C 1, C,, C m. Είναι η Ψ ικανοποιήσιμη; (ii) Η κατασκευή της πολυωνυμικής αναγωγής από το SAT στο Π θα γίνει ως εξής: Για κάθε στιγμιότυπο Ψ = C 1 C C m του SAT, ορισμένο σε n μεταβλητές x 1, x,, x n, κατασκευάζουμε (χρησιμοποιώντας δύο βοηθητικές μεταβλητές y και z) μια λογική έκφραση Φ για το πρόβλημα Π, της μορφής: Φ = (y z C 1 ) (y z C ) (y z C m ) (y x 1 ) (y x ) (y x n ) (z x 1 ) (z x ) (z x n ) (y z) Στη συνέχεια, θα ορίσετε δύο διαφορετικές αναθέσεις τιμών t 1, t στις μεταβλητές, x 1, x,, x n, y, z που ικανοποιούν την Φ, και θα αποδείξετε ότι: η Ψ είναι ικανοποιήσιμη αν και μόνο αν υπάρχει τρίτη ανάθεση τιμών t 3 (με t 3 t 1 και t 3 t) στις n+ μεταβλητές της Φ που να την ικανοποιεί. Σημειώνουμε ότι, δύο αναθέσεις τιμών καλούνται διαφορετικές, αν διαφέρουν στην τιμή τουλάχιστον μιας μεταβλητής. ΑΠΑΝΤΗΣΗ (Α) (A 1 ) Σωστή αν P NP. (A ) Σωστή αν Ρ=ΝΡ (A 3 ) Σωστή. Εστω Α το αυτόματο που αναγνωρίζει την κανονική γλώσσα L. Κατασκευάζουμε την διαφορά των αυτομάτων Α-Π και Π-Α και έστω L(Α-Π) και L(Π-Α) οι αντίστοιχες γλώσσες τους. Θα ισχύει: L = L(Π) αν και μόνον αν L(Α-Π) = L(Π-Α) = (A 4 ) Λάθος, διότι αρκεί να τρέξουμε το αυτόματο A με είσοδο την w, για χρόνο το πολύ w (Β) (1) Δοθέντος ενός οποιουδήποτε στιγμιότυπου του προβλήματος Π, δηλαδή μιας λογικής έκφρασης Φ σε Κανονική Συζευκτική Μορφή, ορισμένη σε n μεταβλητές, με m προτάσεις, [16]

και δύο διαφορετικές αναθέσεις τιμών t 1, t {0,1} n που ικανοποιούν την Φ, μπορούμε να μαντέψουμε μια τρίτη διαφορετική ανάθεση τιμών t 3 {0,1} n και να επαληθεύσουμε ότι: t 3 t 1 και t 3 t, και ότι η t 3 ικανοποιεί την Φ. Η επαλήθευση απαιτεί χρόνο πολυωνυμικό στο μήκος της Φ. Άρα το πρόβλημα Π ανήκει στην κλάση ΝΡ. () Έστω ένα οποιοδήποτε στιγμιότυπο του προβλήματος SAT, δηλαδή λογική έκφραση Ψ = C 1 C C m, ορισμένη σε n μεταβλητές, x 1, x,, x n. Θα κατασκευάσουμε στιγμιότυπο του προβλήματος Π, δηλαδή λογική έκφραση Φ σε Κανονική Συζευκτική Μορφή, και δύο διαφορετικές αναθέσεις τιμών t 1, t στις μεταβλητές, της Φ που να την ικανοποιούν, ώστε να ισχύει ότι: η Ψ είναι ικανοποιήσιμη αν και μόνο αν υπάρχει τρίτη ανάθεση τιμών t 3 (με t 3 t 1 και t 3 t ) στις μεταβλητές της Φ που να την ικανοποιεί. Η κατασκευή θα γίνει ως εξής: Ορίζουμε δύο νέες μεταβλητές y και z, και κατασκευάζουμε προτάσεις (y z C i ), (y x j ), και (z x j ) για κάθε πρόταση C i και για κάθε μεταβλητή x j της Ψ. Η Φ αποτελείται από την σύζευξη όλων αυτών των προτάσεων καθώς και της πρότασης (y z), δηλαδή Φ = (y z C 1 ) (y z C ) (y z C m ) (y x 1 ) (y x ) (y x n ) (z x 1 ) (z x ) (z x n ) (y z) Δηλαδή η Φ ορίζεται στις n+ μεταβλητές x 1, x,, x n, y, z και αποτελείται από συνολικά m+n+1 προτάσεις. Επίσης ορίζουμε τις δύο διαφορετικές αναθέσεις τιμών t 1 = x 1 x, x n yz =1 n 01 t = x 1 x, x n yz =1 n 10 Μπορούμε εύκολα να δούμε πως οι t 1, t ικανοποιούν την Φ, και ότι η αναγωγή μας είναι πολυωνυμική. Για την ορθότητα της αναγωγής: Έστω ότι η Ψ είναι ικανοποιήσιμη και έστω t μια ανάθεση τιμών στις μεταβλητές x 1, x,, x n που την ικανοποιεί. Τότε η ανάθεση τιμών t 3 = x 1 x x n yz = t00 είναι διαφορετική από τις t 1 και t, και ικανοποιεί την Φ. Αντίστροφα, έστω μια ανάθεση τιμών t 3 που είναι διαφορετική από τις t 1 και t, και ικανοποιεί την Φ. Τότε υποχρεωτικά η t 3 θα περιλαμβάνει τις τιμές yz = 00 (διότι διαφορετικά, αν yz = 11 δεν θα ικανοποιείται η (y z), και αν yz = 01 (αντίστοιχα, yz [17]

= 10) τότε θα υπάρχει τουλάχιστον ένα x j = 0, άρα δεν θα ικανοποιείται η πρόταση (z x j ) (αντίστοιχα, η πρόταση (y x j )). Επειδή η t 3 ικανοποιεί την Φ, άρα θα ικανοποιεί και όλες τις προτάσεις (y z C j ) με yz = 00, άρα θα ικανοποιεί κάθε πρόταση C ι, οπότε η Ψ θα είναι ικανοποιήσιμη. [18]

Θεμελιώσεις Επιστήμης Η/Υ ΠΛΗ30 Επαναληπτική Εξέταση 15 Ιουλίου 015 Ονοματεπώνυμο Φοιτητή Αριθμός Μητρώου Φοιτητή Τμήμα Υπογραφή Φοιτητή Υπογραφή Επιτηρητή Διάρκεια: 10 Ερώτημα Μονάδες Βαθμολογία 1 7+6+7 8+7+5 3 (8+4)+8 4 6+8+6 5 10+10 6 10+10 Σύνολο 10 Σε κάθε θέμα χρειάζεται αιτιολόγηση της απάντησής σας. Γράψτε όλες σας τις απαντήσεις στις κόλλες του ΕΑΠ που διανέμονται. Για πρόχειρο μπορείτε να χρησιμοποιήσετε τις τελευταίες σελίδες. Τα θέματα επιστρέφονται μαζί με τις κόλλες. Για να πετύχετε στην εξέταση πρέπει να συγκεντρώσετε τουλάχιστον 50 μονάδες. Καλή επιτυχία! [1]

ΕΡΩΤΗΜΑ 1 (Α) Να κατατάξετε σε αύξουσα τάξη τις συναρτήσεις, καθώς το n τείνει στο άπειρο: n Υπόδειξη: lim n 1 n (B) Δίνεται ο παρακάτω αλγόριθμος: n n 7 log, 7, log, n n,, n n n n n Algorithm f( n) begin y 0; for (i 0; i n;i ) return end i y ; Ποια συνάρτηση υπολογίζεται; Αποδείξτε τον ισχυρισμό σας με επαγωγή. y (Γ) Για την επίλυση ενός προβλήματος προτάθηκαν τρεις αλγόριθμοι Α, Β και Γ. Δοθέντος στιγμιότυπου του προβλήματος με είσοδο μεγέθους n, ο Α λύνει τέσσερα υπο-προβλήματα μεγέθους n/3 το καθένα και συνδυάζει τις λύσεις σε χρόνο n. Ο Β λύνει τρία υποπροβλήματα μεγέθους n/4 το καθένα και συνδυάζει τις λύσεις σε χρόνο n. Ο Γ λύνει τέσσερα υπο-προβλήματα μεγέθους n/ το καθένα και συνδυάζει τις λύσεις σε χρόνο n. Υποδείξτε αν κάποιος είναι καλύτερος από τον άλλο ώστε να τον προτιμήσουμε. Θεώρημα Κυριαρχίας: Έστω η αναδρομική εξίσωση 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 () αν 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 []

ΑΠΑΝΤΗΣΗ (Α) log n log n (log n) 7 7 1 n n Χρησιμοποιώντας την υπόδειξη έχουμε limn 0 και επομένως n 7 n o(log n) log n Επίσης, καθώς το n τείνει στο άπειρο ισχύει: 7 log n ( για n 19) και n n, από τα οποία προκύπτει: 7 n log n n κανόνα l Hopital θα έχουμε επίσης: Επομένως η κατάταξη είναι:, δηλαδή: n 7 limn 0 (εναλλακτικά με χρήση του log n n n 7 limn 0). log n n n n n n n n 7 n n n log 7 log (Β) Η συνάρτηση που υπολογίζεται είναι η k 1 ; f n n1 ( ) 1. Για n=1 η τιμή του y στο σώμα του for-loop ανανεώνεται δυο φορές, για τις τιμές i=0 και 11 i=1 και προκύπτει η τιμή f(1) y1 3 1. k 1 Υποθέτουμε ότι για n=k η τιμή που προκύπτει είναι f (k) 1. Για n=k+1, o αλγόριθμος μπορεί να ξαναγραφεί ως εξής: Algorithm f (k1) begin y 0; for (i 0; i k;i ) i y ; y return y end Για την έξοδο από το for-loop ισχύει η επαγωγική υπόθεση και επομένως το y έχει την τιμή k+1 k1 k1 k1 k -1. Ακολουθεί μια ανανέωση τιμής y 1 1 1. Συνεπώς υπολογίζεται η συνάρτηση f n n1 ( ) 1. [3]

(Γ) Οι αναδρομικές εξισώσεις είναι n n n ( n) 4 n (n) 3 n ( n) 4 n 3 4 Για τον Α, έχουμε 1log3 4 και θέτοντας log3 4 1 έχουμε log3 4 f ( n) n O( n ). Από την 1η περίπτωση του Θεωρήματος Κυριαρχίας προκύπτει log 3 ( n) (n 4 ). 1 Για τον Β, έχουμε log4 3 1 και θέτοντας 1 log 4 3 προκύπτει 1 log4 3 ( ) ( ) f n n n O n. Από την 1η περίπτωση του Θεωρήματος Κυριαρχίας log4 3 προκύπτει ( n) ( n ). Ισχύει: log 43 log34, άρα: Β(n)=ο(Α(n)). Για τον Γ έχουμε log a b log 4 ώστε logb f ( n) n ( n a ) και επομένως από τη η περίπτωση του Θ. Κυριαρχίας: ( n) ( n log n). Αρα: Α(n)=ο(Γ(n)), και πρέπει να επιλέξουμε τον αλγόριθμο Β. ΕΡΩΤΗΜΑ Η χώρα της Αβάσταχτης Χαλαρότητας (ΑΧ) έχει ένα ενδιαφέρον νομισματικό σύστημα που βασίζεται στο Γρόσι (ΓΡ). Για τη διευκόλυνση των πολιτών, το Υπουργείο Οικονομικών της ΑΧ αποφάσισε ότι όλες οι χρηματικές αξίες προϊόντων, αμοιβών και υπηρεσιών είναι πολλαπλάσια των 5 ΓΡ και για το λόγο αυτό εξέδωσε (εκτός από χαρτονομίσματα) μόνο τέσσερα νομίσματα των 5, 10, 0, και 50 ΓΡ. Οι ταμίες (υπηρεσιών, καταστημάτων, τραπεζών, κλπ) στην ΑΧ θέλουν να έχουν πάντοτε έναν μικρό αριθμό νομισμάτων και για το λόγο αυτό ενδιαφέρονται να ανταλλάσσουν (ή να δίνουν ρέστα από) μια αξία N με τον ελάχιστο δυνατό αριθμό νομισμάτων. Για παράδειγμα, αν N = 75, τότε ανάμεσα στις συλλογές νομισμάτων {0,0,0,10,5} και {50,0,5} των οποίων το άθροισμα δίνει 75, προτιμούν τη δεύτερη η οποία χρησιμοποιεί μόνο 3 νομίσματα. (Α) Σχεδιάστε έναν αλγόριθμο δυναμικού προγραμματισμού ο οποίος, δεδομένης μιας χρηματικής αξίας N, βρίσκει τον ελάχιστο αριθμό νομισμάτων ΓΡ που την ανταλλάσσει. Η περιγραφή του αλγορίθμου μπορεί να είναι σε άτυπη μορφή, αλλά πρέπει να περιλαμβάνει οπωσδήποτε την/τις αναδρομική/-κες σχέση/-εις που διέπουν τον αλγόριθμο και συμπληρώνουν τον πίνακα δυναμικού προγραμματισμού. Δώστε τον χρόνο εκτέλεσης του αλγορίθμου σας, ο οποίος πρέπει να είναι πολυωνυμικός ως προς την αξία Ν και το πλήθος M των νομισμάτων (εδώ M = 4). [4]

(Β) Εκτελέστε τον αλγόριθμό σας στο παραπάνω παράδειγμα με N = 75 δίνοντας τις τιμές του πίνακα δυναμικού προγραμματισμού. (Γ) Περιγράψτε πώς γενικεύεται ο αλγόριθμός σας για έναν οποιοδήποτε αριθμό νομισμάτων M. Ποιά είναι η πολυπλοκότητα του γενικευμένου αλγορίθμου σας ως προς την αξία Ν και το πλήθος M των νομισμάτων; ΑΠΑΝΤΗΣΗ (Α) Έστω Χ[i] ο ελάχιστος αριθμός νομισμάτων που ανταλλάσσουν χρηματική αξία i. Αν ξεκινήσουμε να σχηματίζουμε τη χρηματική αξία i επιλέγοντας κάποιο από τα τέσσερα διαθέσιμα νομίσματα, τότε απομένει ένα ποσό που θα πρέπει να σχηματιστεί επίσης με βέλτιστο τρόπο. Προφανώς από τις τέσσερεις επιλογές που έχουμε για το πρώτο νόμισμα, θα διαλέξουμε αυτή που δίνει τελικά την καλύτερη λύση. Αυτή η παρατήρηση μας οδηγεί στην ακόλουθη αναδρομική σχέση: Χ[i] = min{ X[i 50], X[i 0], X[i 10], X[i 5] } + 1 όπου αν i < c, για c {5, 10, 0, 50}, τότε X[i c] = +. Μπορούμε να υπολογίσουμε τις τιμές του πινάκα δυναμικού προγραμματισμού X σε αυξανόμενη σειρά ως προς τα i =5, 10,..., N (παρατηρήστε ότι οι τιμές του i για τις οποίες έχει νόημα να υπολογίσουμε το X[i] είναι τα πολλαπλάσια του 5, αφού με βάση την εκφώνηση οι υπόλοιπες δεν μπορούν να σχηματιστούν με τα διαθέσιμα νομίσματα). Ο υπολογισμός των τιμών γίνεται με βάση την παραπάνω αναδρομή, θέτοντας ως αρχικές τιμές X[0] = 0, Χ[5] = Χ[10] = Χ[0] = Χ[50] = 1. Ο υπολογισμός της τιμής X[i] απαιτεί μία πρόσθεση και την εύρεση του ελαχίστου μεταξύ M = 4 στοιχείων του πίνακα Χ. Άρα, ο συνολικός χρόνος του αλγορίθμου για τον υπολογισμό και των N στοιχείων του Χ είναι O(ΝΜ) = Ο(Ν). (Β) Για την εκτέλεση του αλγορίθμου στο παράδειγμα, αρκεί να βρούμε τις τιμές Χ[i] για τις οποίες το i είναι πολλαπλάσιο του 5, μέχρι την τιμή i = 75. Χ[5] = Χ[10] =1 Χ[15] = min{+, +, X[5], X[10] } + 1 = min{+, +, 1, 1} + 1 = Χ[0] = 1 Χ[5] = min{+, X[5], X[15], X[0]} + 1 = min{+, 1,, 1} + 1 = Χ[30] = min{+, X[10], X[0], X[5]} + 1 = min{+, 1, 1, } + 1 = Χ[35] = min{+, X[15], X[5], X[30]} + 1 = min{+,,, } + 1 = 3 Χ[40] = min{+, X[0], X[30], X[35]} + 1 = min{+, 1,, 3} + 1 = Χ[45] = min{+, X[5], X[35], X[40]} + 1 = min{+,, 3, } + 1 = 3 Χ[50] = 1 [5]

X[55] = min{x[5], X[35], X[45], X[50]} + 1 = min{1, 3, 3, 1} + 1 = Χ[60] = min{x[10], X[40], X[50], X[55]} + 1 = min{1,, 1, } + 1 = Χ[65] = min{x[15], X[45], X[55], X[60]} + 1 = min{, 3,, } + 1 = 3 Χ[70] = min{x[0], X[50], X[60], X[65]} + 1 = min{1, 1,, 3} + 1 = X[75] = min{x[5], X[55], X[65], X[70]} + 1 = min{,, 3, } + 1 = 3 (Γ) Έστω c 1, c,..., c M, τα M νομίσματα. Τότε, η αναδρομική σχέση γίνεται Χ[i] = min{ X[i c 1 ], X[i c ],..., X[i c M ] } + 1 όπου αν i < c, για c {c 1, c,..., c M }, τότε X[i c] = +. Η αρχικοποίηση είναι X[0] = 0, Χ[c 1 ] = Χ[c ] =... = Χ[c M ] = 1. Ο συνολικός χρόνος του αλγορίθμου για τον υπολογισμό και των N στοιχείων του Χ είναι O(ΝΜ), αφού για κάθε στοιχείο του X πρέπει να βρούμε το ελάχιστο μεταξύ M στοιχείων. ΕΡΩΤΗΜΑ 3 (A) Θεωρούμε την παρακάτω γλώσσα L πάνω στο αλφάβητο Σ = {a, b}: L = {w {a, b}* w περιέχει τη συμβολοσειρά abab} Nα κατασκευάσετε με διάγραμμα ένα (ντετερμινιστικό ή μη-ντετερμινιστικό) πεπερασμένο αυτόματο που να δέχεται την L, και μία κανονική έκφραση που να παράγει την L. (B) Χρησιμοποιήστε το Λήμμα άντλησης για να δείξετε ότι η γλώσσα: L = { ww R w {0,1}*} δεν είναι κανονική. Λήμμα άντλησης: Έστω L μια άπειρη κανονική γλώσσα. Υπάρχει φυσικός n > 1 τέτοιος ώστε κάθε συμβολοσειρά w L με w n να μπορεί να γραφεί ως w = xyz, έτσι ώστε: 1. xy i z L, για κάθε i 0. y e 3. xy n Ο αριθμός n ονομάζεται μήκος άντλησης. ΑΠΑΝΤΗΣΗ (A) Ένα μη ντετερμινιστικό πεπερασμένο αυτόματο που δέχεται την L είναι το αυτόματο (Κ, Σ, Δ, s, F) όπου : [6]

Σύνολο καταστάσεων Κ = {q 0,q 1,q,q 3,q 4 } Αρχική κατάσταση s = q 0 Σύνολο τελικών καταστάσεων F = {q 4 } Αλφάβητο Σ = {a,b} Η συνάρτηση μετάβασης καθώς και το αυτόματο φαίνεται στο παρακάτω σχήμα. a, b a b a b a, b q 0 q 1 q q 3 q 4 Μία κανονική έκφραση που παράγει την L είναι η (a + b)*abab(a + b)*. (Β) Αν η γλώσσα L = {ww R w {0,1}*} ήταν κανονική τότε θα υπήρχε ένας φυσικός αριθμός n τέτοιος ώστε κάθε συμβολοσειρά ww R της L, με ww R n, να μπορεί να γραφτεί ως ww R = xyz (y e και xy n) έτσι ώστε οι συμβολοσειρές xy i z να ανήκουν στην L για κάθε i 0. Θα δείξουμε πως υπάρχουν συμβολοσειρές της μορφής ww R με μήκος n που δεν ικανοποιούν τα παραπάνω. Ας θεωρήσουμε την συμβολοοειρά s = 0 n 110 n, η οποία προφανώς ανήκει στη γλώσσα L και έχει μήκος (n + 1) > n. Άρα η s μπορεί να γραφτεί ως s = xyz με y e και xy n, άρα το y αποτελείται μόνο από 0. Η συμβολοσειρά xy 0 z=xz δεν είναι της μορφής ww R, καθώς τα αρχικά 0 είναι κατά τουλάχιστον ένα λιγότερα από τα τελικά 0 αφού y e. Άρα, η xz L και ερχόμαστε σε αντίφαση με την αρχική μας υπόθεση ότι η γλώσσα L είναι κανονική. ΕΡΩΤΗΜΑ 4 (Α) Δώστε και δικαιολογείστε τη γλώσσα L χωρίς συμφραζόμενα, η οποία παράγεται από την γραμματική G = (V, Σ, S, ), όπου: V = {S}, Σ= {a,b}, = {S asb, S aasb, S ε} (Β) Δώστε (με πίνακα ή με διάγραμμα) ένα μη ντετερμινιστικό αυτόματο στοίβας για τη γλώσσα L={a n b n n 0}. (Γ) Θεωρήστε τη γλώσσα L που αποτελείται από όλες τις συμβολοσειρές με ίσο αριθμό 0 και 1, αλλά δεν περιέχουν τις υποσυμβολοσειρές 0100 ή 1011. Να δείξετε ότι η L είναι ανεξάρτητη συμφραζομένων. Υπόδειξη: (i) Θεωρήστε γνωστό ότι η γλώσσα L1 = {w {0, 1} η w έχει ίσο αριθμό 0 και 1} είναι ανεξάρτητη συμφραζομένων. [7]

(ii) Επίσης, οι κανονικές γλώσσες είναι κλειστές ως προς ένωση, τομή και συμπλήρωμα, ενώ οι γλώσσες ανεξάρτητες συμφραζομένων είναι κλειστές ως προς ένωση και ως προς τομή με κανονική γλώσσα. ΑΠΑΝΤΗΣΗ Α) Στη γλώσσα που παράγεται από τους κανόνες της γραμματικής χωρίς συμφραζόμενα G, παρατηρούμε ότι (1) οι εμφανίσεις των a προηγούνται των εμφανίσεων των b και () για κάθε εμφάνιση του b υπάρχουν μία ή δύο εμφανίσεις του a. Επίσης, οι κανόνες παράγουν την κενή συμβολοσειρά ε. Επομένως, κάθε συμβολοσειρά που παράγεται από τους κανόνες της G περιέχεται στη γλώσσα L = {a m b n 0 n m n} όπου έχουμε m = 0 αν και μόνο αν n = 0 και η γλώσσα, εκτός από την κενή συμβολοσειρά ε, περιέχει συμβολοσειρές στις οποίες τα a είναι τουλάχιστον όσα είναι τα b, αλλά το πολύ διπλάσια από τα b. Β) Αρχικά, βάζουμε στη στοίβα το σύμβολο για να μπορούμε να εντοπίσουμε το τέλος της στοίβας. Το αυτόματο για κάθε a που διαβάζει πρέπει να βάζει στη στοίβα δύο a, εφόσον ο αριθμός των b θέλουμε να είναι διπλάσιος από τον αριθμό των a. Οπότε, μόλις συναντήσει το πρώτο b θα αρχίσει να βγάζει από τη στοίβα τα a. Τέλος, αν ο αριθμός των b είναι ο επιθυμητός το αυτόματο πρέπει να διαβάζει το σύμβολο από τη στοίβα και να καταλήγει σε μία τελική κατάσταση. Το αυτόματο στοίβας M = (Q, Σ, Γ, q0, Ζ 0 δ, F ) που αναγνωρίζει τη γλώσσα εξής: Σύνολο καταστάσεων Q={q0,q1,q,q3,q4} Αλφάβητο Σ = {a, b} Αλφάβητο στοίβας Γ = {$, a} Αρχική κατάσταση q0 Αρχικό σύμβολο στοίβας Ζ 0 =$ Τελικές καταστάσεις F = {q0, q4} είναι το Συνάρτηση μετάβασης δ, όπου δ(q0, e, e) = (q1, ), δ(q1, a, e) = (q, a), δ(q,e,e) = (q1,a), δ(q1,b,a) = (q3,e), δ(q3,b,a) = (q3,e), δ(q3,e, ) = (q4,e) Το μη ντετερμινιστικό αυτόματο στοίβας επόμενο σχήμα. που περιγράψαμε παραπάνω φαίνεται στο Στην περίπτωση που το αυτόματο όταν διαβάσει το x στην είσοδο, ανεξάρτητα από το σύμβολο Ζ που υπάρχει στη στοίβα γράφει το y διατηρώντας το Z, έχουμε την μετάβαση x,z yz για κάθε Ζ, την οποία συμβολίζουμε πιο απλά με x, e y. [8]

Τέλος, παρατηρούμε ότι e L, δηλαδή το αυτόματο στοίβας πρέπει να αναγνωρίζει την κενή συμβολοσειρά e. Για αυτόν το λόγο, έχουμε κάνει την αρχική κατάσταση q0 και τελική. Γ) Θεωρούμε τις γλώσσες 1 = {w {0, 1} : η w έχει ίσο αριθμό 0 και 1} που είναι ανεξάρτητη συμφραζομένων και = {0, 1} \ {0, 1} {0100, 1011}{0, 1} που είναι κανονική. Έχουμε = 1 και επομένως η είναι ανεξάρτητη συμφραζομένων από το θεώρημα κλειστότητας τομής γλωσσών ΑΣ και κανονικών γλωσσών. ΕΡΩΤΗΜΑ 5 (Α) Να κατασκευάσετε ντετερμινιστική μηχανή Turing M που αποφασίζει την γλώσσα: L={w {0,1}* στην λέξη w, το πλήθος των 0 είναι πολλαπλάσιο του 3, και το πλήθος των 1 είναι πολλαπλάσιο του. Δηλαδή, 0 = 3k και 1 = m, όπου k,m είναι ακέραιοι αριθμοί 0}. Το αλφάβητο της M είναι {0, 1, #,, Y, N}. Η Μ με είσοδο w θα ξεκινά τη λειτουργία της από το σχηματισμό #w#. (1) Δώστε άτυπη περιγραφή της παραπάνω μηχανής Turing (τον αλγόριθμο διαχείρισης της ταινίας) και στη συνέχεια, () Δώστε το διάγραμμα ροής της Μ. (Β) Δείξτε ότι η παρακάτω γλώσσα L δεν είναι αποφασίσιμη. L={ <M> η μηχανή Turing τερματίζει για κάθε είσοδο} Υπόδειξη: Αναγωγή από το μη-επιλύσιμο πρόβλημα του τερματισμού μιας μηχανής Turing M με είσοδο μια λέξη x. ΑΠΑΝΤΗΣΗ (Α) (1) Η Μηχανή διαβάζει την είσοδο από αριστερά προς τα δεξιά. Αν διαβάσει 0 (αντίστοιχα 1) το αντικαθιστά με και στη συνέχεια αναζητά δύο σύμβολα 0 (αντίστοιχα, ένα σύμβολο 1). Αν βρεθούν τα σύμβολα, τα αντικαθιστά με, επανέρχεται στην αρχική της θέση και επαναλαμβάνει. Διαφορετικά τερματίζει με Ν. [9]

Όταν ολοκληρώσει το διάβασμα της εισόδου, τερματίζει με Υ. () Το διάγραμμα ροής της M είναι: (Β) Έστω ότι η γλώσσα είναι αποφασίσιμη. Δηλαδή υπάρχει αλγόριθμος Α L (μηχανή Turing Α L ) που απαντά με ΝΑΙ ή ΟΧΙ στο ερώτημα: Εστω μια μηχανή Turing M. Ισχύει <M> L ; (δηλαδή, η μηχανή M τερματίζει για κάθε είσοδο;). Θεωρούμε μια μηχανή Turing M και μια είσοδο x. Θα αποδείξουμε ότι ο αλγόριθμος Α L αποφασίζει για το πρόβλημα του τερματισμού της M με είσοδο x, άρα άτοπο. Κατασκευάζουμε μια μηχανή Turing M 1 η οποία με είσοδο y λειτουργεί ως εξής: Αν y = x τότε η M 1 προσομοιώνει την λειτουργία της Μ με είσοδο x, και αν y x, τότε η M 1 τερματίζει. Στην συνέχεια τρέχουμε τον αλγόριθμο Α L προκειμένου να αποφασίσει για το ερώτημα: η μηχανή Turing M 1 τερματίζει για κάθε είσοδο; (δηλαδή, <M 1 > L;). Αν ο αλγόριθμος Α L απαντήσει ΝΑΙ τότε γνωρίζουμε ότι η M 1 τερματίζει σε όλες τις εισόδους (άρα αυτό θα ισχύει και στην προσομοίωση της M με είσοδο x), άρα η M τερματίζει με είσοδο x. Αν ο Α απαντήσει ΟΧΙ τότε γνωρίζουμε ότι η M δεν τερματίζει με είσοδο x (επειδή για κάθε άλλη είσοδο y x η M 1 τερματίζει εκ-κατασκευής). ΕΡΩΤΗΜΑ 6 (Α) Το πρόβλημα SUBGRAPH ISOMORPHISM ορίζεται ως εξής: Δίδονται δύο γραφήματα G = (V, E) και G =(V, E ). Εχει το γράφημα G υπογράφημα G 1 = (V 1, E 1 ), που να είναι ισόμορφο με το G ; [10]

Δείξτε ότι αν το πλήθος κορυφών V = 7, το πρόβλημα SUBGRAPH ISOMORPHISM λύνεται σε πολυωνυμικό χρόνο ως προς το πλήθος V = n. Υπόδειξη: Δύο γραφήματα G 1 = (V 1, E 1 ) και G = (V, E ) καλούνται ισόμορφα αν υπάρχει απεικόνιση f: V 1 V, που να είναι 1-1 και επί, έτσι ώστε: υπάρχει ακμή u-v στο E 1, αν και μόνον αν υπάρχει ακμή f(u)-f(v) στο E. (Β) Δείξτε ότι το παρακάτω πρόβλημα Π είναι NP-πλήρες. Δίδονται: Δύο εκφράσεις Boole Φ και Ψ σε Kανονική Συζευκτική Μορφή. Ζητείται: Υπάρχει τουλάχιστον μια αποτίμηση στην οποία οι Φ και Ψ να έχουν την ίδια τιμή; Δηλαδή, στην αποτίμηση αυτή να είναι ή και οι δύο αληθείς ή και οι δύο ψευδείς; Για την απόδειξη, θα ανάγετε το 3-SAT στο παραπάνω πρόβλημα Π: Για κάθε στιγμιότυπο Φ του 3SAT (δηλαδή έκφραση Boole Φ, σε Kανονική Συζευκτική Μορφή με m προτάσεις και n μεταβλητές x 1, x,..., x n, όπου στην κάθε πρόταση υπάρχουν ακριβώς 3 μεταβλητές), θα κατασκευάσετε μια νέα έκφραση Boole Ψ σε Kανονική Συζευκτική Μορφή, που είναι ταυτολογία (δηλαδή, η Ψ είναι αληθής για κάθε αποτίμηση). Αρά το στιγμιότυπο του προβλήματος Π, θα αποτελείται από τις εκφράσεις Φ και Ψ. Στη συνέχεια θα αποδείξετε ότι η Φ είναι ικανοποιήσιμη αν και μόνον αν υπάρχει τουλάχιστον μια αποτίμηση στην οποία οι Φ και Ψ να είναι αληθείς ΑΠΑΝΤΗΣΗ (Α) Αν V = n, το γράφημα G = (V, E) θα έχει = Θ(n 7 ) διαφορετικά υπογραφήματα G i = (V i, E i ), όπου το κάθε υπογράφημα έχει V i = 7 κορυφές. Για κάθε υπογράφημα G i = (V i, E i ) μπορούμε να ελέγξουμε αν G i = (V i, E i ) είναι ισόμορφο με το G =(V, E ), σε σταθερό χρόνο: Υπάρχουν 7! = 5040 δυνατές απεικονίσεις (όσες και οι μεταθέσεις των κορυφών του V i ) f i : V i V, που είναι 1-1 και επί. Επίσης, για κάθε απεικόνιση f i ελέγχουμε σε σταθερό χρόνο αν υπάρχει ακμή u-v στο E i, αν και μόνον αν υπάρχει ακμή f i (u)-f i (v) στο E (επειδή το πλήθος των ακμών στα σύνολα E i και E θα είναι 7(7-1)/ = 1). [11]

Αρα χρειαζόμαστε συνολικά O(n 7 ) δυνατούς ελέγχους για την επίλυση του προβλήματος SUBGRAPH ISOMORPHISM. (Β) Για κάθε στιγμιότυπο Φ του 3SAT κατασκευάζουμε ένα στιγμιότυπο του προβλήματος Π, που αποτελείται από την έκφραση Φ και μιά νέα έκφραση Boole Ψ σε Kανονική Συζευκτική Μορφή, που έχει τις ίδιες μεταβλητές με την Φ και είναι ταυτολογία (δηλαδή, η Ψ είναι αληθής για κάθε αποτίμηση). Αν x 1, x,..., x n είναι οι μεταβλητές που εμφανίζονται στη Φ, τότε κατασκευάζουμε την ταυτολογία: Ψ (x 1 x 1 x ) (x x x 3 ) (x n x n x 1 ). Αν η Φ είναι (αντιστοίχως, δεν είναι) ικανοποιήσιμη τότε υπάρχει (αντιστοίχως, δεν υπάρχει) τουλάχιστον μια αποτίμηση στην οποία οι Φ και Ψ να είναι αληθείς, επειδή η Ψ είναι ταυτολογία και έχει τις ίδιες μεταβλητές με την Φ. Αντίστροφα, αν υπάρχει (αντιστοίχως, δεν υπάρχει) τουλάχιστον μια αποτίμηση στην οποία οι Φ και Ψ να είναι αληθείς, τότε η Φ είναι (αντιστοίχως, δεν είναι) ικανοποιήσιμη. [1]