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

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

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

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

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

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

CSC 314: Switching Theory

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 ) d i = 2e 28, i=1. a b c

Μη γράφετε στο πίσω μέρος της σελίδας

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

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

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

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

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

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

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

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

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

Chapter 7, 8 : Time, Space Complexity

Chapter 7, 8 : Time, Space Complexity

Σχεδίαση & Ανάλυση Αλγορίθμων

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

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

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

Άσκησηη 1. (α) Το αυτόματο. (γ) Να δείξετε όλα aabbb. Λύση. λέξεις. αυτόματο. (β) Τυπικά. μεταβάσεων δ. ορίζεται. (γ) Θα δείξουμε τα.

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

Κανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

Chapter 7, 8 : Completeness

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

b. Για κάθε θετικό ακέραιο m και για κάθε A. , υπάρχουν άπειρα το πλήθος πολυώνυμα ( x) [ x] m και ( A) 0.

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

Ασκήσεις3 Διαγωνισιμότητα Βασικά σημεία Διαγωνίσιμοι πίνακες: o Ορισμός και παραδείγματα.

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

Για την κατανόηση της ύλης αυτής θα συμβουλευθείτε επίσης το: βοηθητικό υλικό που υπάρχει στη

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

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

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 2η <Αλγόριθµοι, Θεωρία Γραφηµάτων>

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

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

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

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

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

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

ILP-Feasibility conp

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 1 η Ημερομηνία Αποστολής στον Φοιτητή: 17 Οκτωβρίου 2011

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

ΕΠΙΛΥΣΗ ΕΞΙΣΩΣΕΩΝ ΚΑΙ ΑΝΙΣΩΣΕΩΝ ΣΥΝΑΡΤΗΣΙΑΚΩΝ ΜΟΡΦΩΝ MIAΣ ΜΕΤΑΒΛΗΤΗΣ

x 2 + y 2 = z 2 x = 3, y = 4, z = 5 x 2 + y 2 = z 2 (2.1)

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

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

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

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

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

1. Υπολογίστε, όπου αυτές υπάρχουν, τις παραγώγους των συναρτήσεων:

Θεωρία Γραφημάτων 6η Διάλεξη

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

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

Ασκήσεις3 Διαγωνίσιμες Γραμμικές Απεικονίσεις

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

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

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

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

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

Μη γράφετε στο πίσω μέρος της σελίδας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

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

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

Transcript:

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

ΕΡΩΤΗΜΑ 1 (Α) Δίνονται οι παρακάτω συναρτήσεις. Χωρίστε τη λίστα των συναρτήσεων σε κλάσεις τέτοιες ώστε οι f(n) και g(n) να ανήκουν στην ίδια κλάση αν και μόνο αν f(n) = Θ(g(n)). Μετασχηματίστε επαρκώς τους τύπους ορισμού των συναρτήσεων ώστε ο ισχυρισμός σας να είναι προφανής. Στη συνέχεια κατατάξτε τις κλάσεις κατά αύξουσα σειρά πολυπλοκότητας. 8 log (Β) Επιλύστε τις παρακάτω αναδρομικές εξισώσεις με τη χρήση του «Θεωρήματος Κυριαρχίας (Master Theorem)». = T = 9T (Γ) Να δικαιολογήσετε γιατί για την επίλυση της αναδρομικής συνάρτησης = 2T δεν μπορούμε να κάνουμε χρήση του Θεωρήματος Κυριαρχίας. Υπόδειξη: (i) logn συμβολίζει το λογάριθμο του n με βάση το 2. (ii) συμβολίζει τους συνδυασμούς των n ανά m. (iii) Θεώρημα Κυριαρχίας: Έστω η αναδρομική εξίσωση T(n) = at(n/) + f(n), όπου a 1, >1 είναι σταθερές, και f(n) είναι μια ασυμπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις: log a (1) αν f ( n) O( n ), για κάποια σταθερά ε>0, τότε T(n) = ( n ) log a (2) αν f ( n) ( n ), τότε T(n) = ( n log n) log a log a 0 (3) αν f ( n) ( n ), για κάποια σταθερά ε>0, και αν υπάρχει σταθερά n, τέτοια n ώστε, για κάθε n n 0, af cf(n) για κάποια σταθερά c<1, τότε T(n) = ( f ( n)). log a [2]

n (iv) Τύπος Stirling (για τον υπολογισμό του παραγοντικού): n! 2 n e ΑΠΑΝΤΗΣΗ (Α)Κατάταξη σε αύξουσα σειρά τάξης μεγέθους. Συναρτήσεις που βρίσκονται στην ίδια γραμμή ανήκουν στην ίδια κλάση: n Έχουμε: => 2=, αφού =. = Είναι, άρα, =, (Β) 1. = T Έχουμε. Άρα = 1= Θ. Επομένως, σύμφωνα με τη περίπτωση 2 του «Θεωρήματος Κυριαρχίας» έχουμε ότι, = Θ. [3]

2. = 9T. Παρατηρούμε ότι Αφού = όπου ε=1, σύμφωνα με τη περίπτωση 1 του «Θεωρήματος Κυριαρχίας» έχουμε ότι (Γ) = 2T Έχουμε ότι. Άρα Έχουμε όμως ότι για κάθε Δηλαδή δεν υπάρχει ώστε Κυριαρχίας». και επομένως δεν μπορεί να εφαρμοστεί το «Θεώρημα ΕΡΩΤΗΜΑ 2 Έστω ότι δίνεται μια ακολουθία πραγματικών αριθμών a 1, a 2,, a n. To πρόβλημα του προσδιορισμού μιας μέγιστης α ξουσας υποακολουθ ας ζητά την εύρεση μιας υποακολουθίας αριθμών (όχι κατ' ανάγκη συνεχόμενων) μέγιστου μήκους (ή πλήθους) στην οποία οι τιμές σχηματίζουν μια γνησ ως αύξουσα ακολουθία. Για παράδειγμα, έστω ότι η δεδομένη ακολουθία είναι η [ 3, 4, 14, 0, 1, 3, 6, 2, 5, 10]. Τότε η υποακολουθία [4, 6, 10] με μήκος 3 είναι μια γνησίως αύξουσα υποακολουθία, όπως και η [ 3, 0, 3, 5, 10] με μήκος 5. Η τελευταία είναι μια μέγιστη αύξουσα υποακολουθία στο συγκεκριμένο παράδειγμα. Παρατηρήστε ότι δεν είναι η μοναδική μέγιστη αύξουσα υποακολουθία, αφού και οι υποακολουθίες [ 3, 1, 3, 5, 10] και [ 3, 0, 3, 6, 10] είναι μέγιστες αύξουσες υποακολουθίες. (Α) Σχεδιάστε έναν αλγόριθμο δυναμικού προγραμματισμού ο οποίος, δεδομένου ενός στιγμιοτύπου του παραπάνω προβλήματος, βρίσκει το μήκος μιας μέγιστης αύξουσας υποακολουθίας. Η περιγραφή του αλγορίθμου μπορεί να είναι σε άτυπη μορφή, αλλά πρέπει να περιλαμβάνει οπωσδήποτε την/τις αναδρομική/-κες σχέση/-εις που διέπουν τον αλγόριθμο και συμπληρώνουν τον πίνακα δυναμικού προγραμματισμού. Δώστε τον χρόνο εκτέλεσης του αλγορίθμου σας, ο οποίος πρέπει να είναι πολυωνυμικός ως προς το n. Υπ δειξη: για την ακολουθία a 1, a 2,, a j, ορίστε ως L[j] το μήκος της μέγιστης αύξουσας υποακολουθίας της η οποία έχει ως τελευταίο στοιχείο το a j, και προσπαθήστε να εκφράσετε το L[j] συναρτήσει των L[1], L[2],..., L[j 1]. (Β) Εκτελέστε τον αλγόριθμό σας στο παραπάνω παράδειγμα δίνοντας τις τιμές του πίνακα δυναμικού προγραμματισμού σε κάθε βήμα. [4]

(Γ) Με βάση τον αλγόριθμο που σχεδιάσατε, προτείνετε (σε άτυπη μορφή) μια μέθοδο υπολογισμού μιας μέγιστης αύξουσας υποακολουθίας που επιτυγχάνει τη βέλτιστη λύση και εκτελέστε την στο παραπάνω παράδειγμα. Υπ δειξη: ακολουθήστε οπισθόδρομα τον πίνακα δυναμικού προγραμματισμού, ξεκινώντας από μία κατάλληλη θέση, επιλέγοντας με κατάλληλο τρόπο τα στοιχεία της υποακολουθίας, δηλ. συνεχίζοντας προς τα πίσω σε εκείνη τη θέση η οποία καθόρισε το αποτέλεσμα της τρέχουσας θέσης του πίνακα και σημειώνοντας παράλληλα το στοιχείο της ακολουθίας που ανήκει στη βέλτιστη λύση. ΑΠΑΝΤΗΣΗ (Α) Έστω L[j] το μήκος της μέγιστης αύξουσας υποακολουθίας της ακολουθίας a 1, a 2,, a j, η οποία (υποακολουθία) έχει ως τελευταίο το στοιχείο a j. Αν γνωρίζουμε την τιμή των L[j], για j = 1...n, τότε το μήκος M της βέλτιστης υποακολουθίας είναι M = max{l[1], L[2],..., L[n]}. Παρατηρούμε ότι (α) L[1] = 1, αφού το στοιχείο a 1 είναι μια γνησίως αύξουσα υποακολουθία, (β) L(2) = 2, αν a 1 <a 2, και L[2] = 1, αν a 1 a 2. Έστω ότι θέλουμε να υπολογίσουμε την L[j], δεδομένου ότι γνωρίζουμε τις τιμές L[1], L[2],..., L[j 1]. Αν υπάρχει κάποιο στοιχείο a i <a j, 1 i<j, τότε μπορούμε να επεκτείνουμε μία βέλτιστη υποακολουθία με τελευταίο στοιχείο a i προσθέτοντας στο τέλος της το a j. Αν υπάρχουν περισσότερα από ένα στοιχεία a i τέτοια ώστε a i <a j τότε επιλέγουμε αυτό για το οποίο το L[i] έχει τη μέγιστη τιμή. Το μήκος την νέας υποακολουθίας είναι L[i]+1. Αλλιώς, αν για όλα τα στοιχεία a i, 1 i<j, ισχύει ότι a i a j, τότε L[j] = 1. Ο συλλογισμός αυτός, μαζί με τη σύμβαση max = 0, μας οδηγεί στην παρακάτω αναδρομική σχέση L[j] = 1 + max{l[i] : a i <a j, 1 i<j} Μπορούμε να υπολογίσουμε τις τιμές του πινάκα δυναμικού προγραμματισμού L σε αυξανόμενη σειρά ως προς το j = 1...n με βάση την παραπάνω αναδρομή, θέτοντας ως αρχική τιμή L[1] = 1. Ο υπολογισμός της τιμής L[j] απαιτεί σύγκριση των στοιχείων a 1, a 2,, a j-1 με το στοιχείο a j και εύρεση της μέγιστης τιμής L[i] για τα στοιχεία a i <a j. Αυτό απαιτεί χρόνο O(j). Επομένως, για να υπολογιστούν οι τιμές L[j], για j = 1...n, χρειαζόμαστε O(1 + 2 + 3 +... + n) = O(n 2 ) χρόνο. Το μήκος της βέλτιστης υποακολουθίας M = max{l[1], L[2],..., L[n]} υπολογίζεται σε χρόνο O(n). Άρα, ο συνολικός χρόνος του αλγορίθμου είναι O(n 2 ). (Β) Η εκτέλεση του αλγορίθμου στο παράδειγμα έχει ως εξής. L[1] = 1. L[2] = 1 + max{l[i] : a i <a 2, 1 i< 2} = 1 + max{l[1]} = 1 + 1 = 2. [5]

L[3] = 1 + max{l[i] : a i <a 3, 1 i< 3} = 1 + max{l[1], L[2]} = 1 + max{1, 2} = 3. L[4] = 1 + max{l[i] : a i <a 4, 1 i< 4} = 1 + max{l[1]} = 1 + 1 = 2. L[5] = 1 + max{l[i] : a i <a 5, 1 i< 5} = 1 + max{l[1]} = 1 + 1 = 2. L[6] = 1 + max{l[i] : a i <a 6, 1 i< 6} = 1 + max{l[1], L[4], L[5]} = 1 + max{1, 2, 2} = 3. L[7] = 1 + max{l[i] : a i <a 7, 1 i< 7} = 1 + max{l[1], L[2], L[4], L[5], L[6]} = 1 + max{1, 2, 2, 2, 3} = 4. L[8] = 1 + max{l[i] : a i <a 8, 1 i< 8} = 1 + max{l[1], L[4], L[5]} = 1 + max{1, 2, 2} = 3. L[9] = 1 + max{l[i] : a i <a 9, 1 i< 9} = 1 + max{l[1], L[2], L[4], L[5], L[6], L[8]} = 1 + max{1, 2, 2, 2, 3, 3} = 4. L[10] = 1 + max{l[i] : a i <a 10, 1 i< 10} = 1 + max{l[1], L[2], L[4], L[5], L[6], L[7], L[8], L[9]} = 1 + max{1, 2, 2, 2, 3, 4, 3, 4} = 5. (Γ) Έχοντας τον πίνακα δυναμικού προγραμματισμού L, μπορούμε να βρούμε τα στοιχεία μιας υποακολουθίας μέγιστου μήκους με οπισθόδρομη ιχνηλάτηση των υπολογισμών. Καταρχήν, προσδιορίζουμε το L[j] που μεγιστοποιεί την παράσταση max{l[1], L[2],..., L[n]} και αρχικοποιούμε την μέγιστη υποακολουθία με το a j (ως τελευταίο στοιχείο). Κατόπιν, ακολουθούμε κάθε φορά το αποτέλεσμα του τελεστή max (δείτε Δραστηριότητα 4.5 στον Τόμο Α) στην παράσταση που έδωσε την τιμή L[j] = 1 + max{l[i] : a i <a j, 1 i<j}, δηλ., προσδιορίζουμε το L[i] που μεγιστοποιεί την παράσταση max{l[i] : a i <a j, 1 i<j}. Στην περίπτωση που υπάρχουν περισσότερα από ένα L[i] με την ίδια τιμή, επιλέγουμε ένα αυθαίρετα, π.χ. εκείνο που αντιστοιχεί στο a i (< a j ) με τη μεγαλύτερη τιμή και εισάγουμε το a i στην μέγιστη υποακολουθία. Η διαδικασία τερματίζει όταν φτάσουμε στη θέση L[1], ή όταν συναντήσουμε κάποιο k 1 για το οποίο ισχύει {L[k] : a k <a i, 1 k<i}=. Οπισθόδρομη ιχνηλάτηση στους υπολογισμούς του παραπάνω παραδείγματος μας δίνει ότι τα στοιχεία μιας υποακολουθίας μέγιστου μήκους είναι τα εξής. Το L[10] είναι το μέγιστο από τα L[1], L[2],..., L[10], άρα το στοιχείο a 10 = 10 ανήκει στη βέλτιστη λύση. Στην παράσταση του L[10], το max{l[i] : a i <a 10, 1 i< 10} δίνεται από το στοιχείο L[7] ή L[9]. Αφού a 7 >a 9, το στοιχείο a 7 = 6 ανήκει στη βέλτιστη λύση. Στην παράσταση του L[7], το max{l[i] : a i <a 7, 1 i< 7} δίνεται από το στοιχείο L[6], άρα το στοιχείο a 6 = 3 ανήκει στη βέλτιστη λύση. Στην παράσταση του L[6], το max{l[i] : a i <a 6, 1 i< 6} δίνεται από το στοιχείο L[4] ή L[5]. Αφού a 4 >a 5, το στοιχείο a 4 = 0 ανήκει στη βέλτιστη λύση. Στην παράσταση του L[4], το max{l[i] : a i <a 4, 1 i< 4} δίνεται από το στοιχείο L[1], άρα το στοιχείο a 1 = 3 ανήκει στη βέλτιστη λύση. [6]

Συνοψίζοντας, μια υποακολουθία μέγιστου μήκους είναι η {a 1, a 4, a 6, a 7, a 10 } = { 3, 0, 3, 6, 10}. ΕΡΩΤΗΜΑ 3 (Α) Δείξτε ότι η γλώσσα L στο αλφάβητο Σ={a,} που αποτελείται από τις συμβολοσειρές στις οποίες είτε ο αριθμός των a, είτε ο αριθμός των (αλλά μπορεί και των δύο) είναι άρτιος είναι κανονική κατασκευάζοντας ένα πεπερασμένο αυτόματο για τη γλώσσα. (Β) Δείξτε ότι η γλώσσα L στο αλφάβητο Σ={a,} που αποτελείται από τις συμβολοσειρές στις οποίες ο αριθμός εμφανίσεων του a είναι τουλάχιστον διπλάσιος του αριθμού εμφανίσεων του δεν είναι κανονική. Υπόδειξη 1: Για παράδειγμα, η L περιέχει όλες τις συμβολοσειρές της μορφής a 2n+k n, όπως και όλες τις συμβολοσειρές της μορφής a n n a n+m κλπ. Υπόδειξη 2: (Λήμμα Άντλησης) Έστω L μια πειρη κανονική γλώσσα. Τ τε υπ ρχει ένας αριθμ ς p έτσι ώστε κ θε w L, με w p, μπορε να γραφε στη μορφή w=xyz, που για τις συμβολοσειρές x,y,z ισχ ει 0 < y xy p και για κ θε n 0, xy n z L (Γ) Κατασκευάστε ένα ντετερμινιστικό αυτόματο ισοδύναμο με το παρακάτω 1 A 1 B 1 F 0 0,1 (Δ) Δώστε κανονικές εκφράσεις για τις παρακάτω γλώσσες (1) Τη γλώσσα των συμβολοσειρών στο Σ={0,1} στην οποία αμέσως μετά από κάθε 1 ακολουθεί ένα 0. (2) Τη γλώσσα του αυτομάτου στο υποερώτημα Γ. [7]

(3) Τη γλώσσα όλων των συμβολοσειρών στο αλφάβητο Σ={0,1} που περιέχουν το 101 και ο αριθμός των 1 είναι άρτιος. ΑΠΑΝΤΗΣΗ (Α) Η γλώσσα περιγράφεται από την κανονική έκφραση (*+a*a)*+(a*+a*)* και ένα πεπερασμένο αυτόματο για τη γλώσσα είναι το παρακάτω a a ε B C A ε Y a Z a (Β) Η γλώσσα περιέχει όλες τις συμβολοσειρές της μορφής a 2n n, για n μεγαλύτερο του μηδενός, και άρα είναι άπειρη. Έστω ότι είναι και κανονική και p το μήκος άντλησης. Θεωρούμε τη λέξη w = a 2p p, με μήκος 3p p. H w αναλύεται (Λήμμα Άντλησης) σε w=xyz, όπου 0< y xy p. Aν y =t>0 και xy =q, τότε η w έχει τη μορφή w = a q-t a t a 2p-q p. Σύμφωνα με το Λήμμα Άντλησης κάθε λέξη w n = a q-t a nt a 2p-q p πρέπει να ανήκει στη γλώσσα. Για n=0 όμως έχουμε τη συμβολοσειρά w 0 = a q-t a 2p-q p = a 2p-t p η οποία δεν ανήκει στη γλώσσα επειδή t>0, άτοπο. Επομένως η γλώσσα δεν είναι κανονική. (Γ) Το ισοδύναμο ντετερμινιστικό είναι το παρακάτω [8]

1 AF 0 0 0 A 1 AB 1 ABF 0 1 (Δ) (1) (10+0)* (2) (0+1)*11(11+0)* (το (0+1)* διατηρεί το αυτόματο στην κατάσταση Α, το (0+1)*11 το οδηγεί για πρώτη φορά στη μοναδική τελική κατάσταση F και το (11+0) το οδηγεί από τη F στη F.) (3) ((0*+10*1)*101(0*+10*1)*)*+ 0*1(0*+10*1)*1010*1(0*+10*1)* ΕΡΩΤΗΜΑ 4 (Α) Να δείξετε ότι η γλώσσα:{a n n c m : m,n 0}είναι ανεξάρτητη συμφραζομένων, κατασκευάζοντας γραμματική χωρίς συμφραζόμενα που την παράγει και αυτόματο στοίβας που την αναγνωρίζει. (Β) Να δείξετε ότι η γλώσσα L = {α n : n>1 ε ναι πρώτος} (ένας ακέραιος είναι πρώτος αν διαιρείται μόνον με το 1 και με τον εαυτό του) δεν είναι ανεξάρτητη συμφραζομένων. Υπόδειξη: Λήμμα Άντλησης γιά γλώσσες ανεξάρτητες συμφράζομένων: Έστω μι γλώσσα χωρ ς συμφραζ μενα (ανεξ ρτητη συμφραζομένων). Τ τε, για την, υπ ρχει έτσι ώστε κ θε συμβολσειρ, με, να μπορε να γραφε στη μορφή, που για τις υπο-συμβολοσειρές ισχ ουν τα εξής: 1. 2. 3. ΑΠΑΝΤΗΣΗ (Α) Μία γραμματική G = (V,Σ,R,S) που παράγει τη γλώσσα είναι : V = {α,,c,s,a,b} [9]

Σ = {α,,c} R = {S AB, A aa, A e, B cb, B e} Το αυτόματο στοίβας που δέχεται τη γλώσσα είναι το ακόλουθο: Στην περίπτωση που το αυτόματο όταν διαβάσει το x στην είσοδο, ανεξάρτητα από το σύμβολο Ζ που υπάρχει στη στοίβα γράφει το y διατηρώντας το Z, έχουμε την μετάβαση x,z->yz για κάθε Ζ, την οποία συμβολίζουμε πιο απλά με x,e->y. Το αυτόματο σε μορφή πίνακα είναι το ακόλουθο: είσοδος έξοδος κατάσταση είσοδος στοίβα κατάσταση στοίβα q 0 e e q 1 $ q 1 a e q 1 a q 1 e e q 2 e q 2 a q 2 e q 2 e e q 3 e q 3 c e q 3 e q 3 e $ q 4 e Στη γλώσσα ανήκουν οι συμβολοσειρές: a n n c m όταν n 0 και m 0, [10]

a n n όταν n 0 και m=0, c m όταν n = 0 και m 0, e όταν n = m = 0. Το αυτόματο διαβάζει πρώτα τα a, αν υπάρχουν, και τα γράφει στη στοίβα. Στη συνέχεια διαβάζει τα, αν υπάρχουν, και για κάθε που διαβάζει διαγράφει ένα a από τη στοίβα. Τέλος, διαβάζει τα c χωρίς να μεταβάλει τη στοίβα αφού δεν υπάρχει κάποιος περιορισμός για το πλήθος των c. Επίσης, το αυτόματο δέχεται την e και τις συμβολοσειρές a n n και c m που ανήκουν στη γλώσσα. (Β) Έστω ότι η γλώσσα L είναι χωρίς συμφραζόμενα. Άρα υπάρχει μία γραμματική χωρίς συμφραζόμενα G=(V, Σ, R, S), η οποία παράγει την L. Θεωρούμε έναν πρώτο αριθμό p>p 0 ( που p 0 είναι ο αριθμός του λήμματος άντλησης). Τότε σύμφωνα με το λήμμα άντλησης η συμβολοσειρά w=α p μπορεί να γραφεί ως w=uvxyz, όπου όλα τα τμήματα της w είναι συμβολοσειρές από α, και vy e. Έστω vy=a q και uxz=a r, όπου q και r είναι φυσικοί αριθμοί. Ισχύει q>0 και r>0. Η τελευταία ανισότητα προκύπτει επειδή r = uxz = uvxyz - vy = p-q > 0, εφ όσον p>p 0 και q p 0. Σύμφωνα με το λήμμα άντλησης κάθε συμβολοσειρά της μορφής uv n xy n z, με n 0, ανήκει στη γλώσσα L. Όμως, η uv n xy n z γράφεται a r a qn = a r+qn, επομένως για όλα τα n 0 ο αριθμός r+nq πρέπει είναι πρώτος. Αν r=1 τότε, για n=0, r+nq=1 άρα δεν είναι πρώτος. Έστω r>1, τότε για n=r έχουμε r+rq=r(q+1), ο οποίος δεν είναι πρώτος αριθμός. Επομένως, σε καθεμιά από τις παραπάνω περιπτώσεις, η συμβολοσειρά uv n xy n z δεν ανήκει στην L. Άρα, ήρθαμε σε αντίφαση με την αρχική μας υπόθεση ότι η γλώσσα L είναι γλώσσα χωρίς συμφραζόμενα. ΕΡΩΤΗΜΑ 5 (Α) Να κατασκευάσετε ντετερμινιστική μηχανή Turing M, με αλφάβητο {0,1,#}, που δέχεται στην είσοδο μια λέξη w {0,1}*. Στην έξοδο, η Μ σβήνει την λέξη w και αν το μήκος w είναι άρτιο ( w =0,2,4, ) τότε η Μ τυπώνει 0, και αν w περιττό ( w =1,3,5, ) τότε η Μ τυπώνει 1. Στην αρχή της λειτουργίας της η κεφαλή της Μ βρίσκεται στο πρώτο κενό πριν την λέξη w: # w#. (1) Δώστε μια άτυπη περιγραφή της λειτουργίας της Μ (έναν αλγόριθμο διαχείρισης της ταινίας της). (2) Δώστε το διάγραμμα καταστάσεων ή το διάγραμμα ροής ή τον πίνακα μεταβάσεων της Μ. [11]

(B) Από τα παρακάτω προβλήματα, δείξτε ότι το (1) είναι μη επιλύσιμο και ότι το (2) είναι επιλύσιμο: (1) Δ νονται μηχανές Turing Μ 1 και Μ 2 και έστω L(Μ 1 ) και L(Μ 2 ) οι γλώσσες που αποδέχονται. Ισχ ει L(Μ 1 ) = L(Μ 2 ); Υπόδειξη: Αναγωγή από το μη επιλύσιμο πρόβλημα: Έστω M μια οποιαδήποτε Μηχανή Turing. Ισχ ει L(M) = Σ * ; (2) Δ νονται πεπερασμένα αυτ ματα S 1 και S 2 και έστω L(S 1 ) και L(S 2 ) οι αντ στοιχες γλώσσες τους. Ισχ ει L(S 1 ) = L(S 2 ); ΑΠΑΝΤΗΣΗ (Α) Η Μ σαρώνει την λέξη w και διαγράφει τα σύμβολά της, χρησιμοποιώντας εναλλακτικά 2 καταστάσεις q άρτιο και q περιττό (αρχίζει με την κατάσταση q άρτιο ). Ετσι θυμάται αν διέγραψε άρτιο ή περιττό αριθμό συμβόλων. Οταν τελειώσει η λέξη και είναι στην κατάσταση q άρτιο (q περιττό ) τότε τυπώνει 0 (τυπώνει 1). (2) Το διάγραμμα της Μ είναι: (Β) (1) Έστω ένα αλφάβητο Σ, και έστω Σ * το σύνολο όλων των συμβολοσειρών του Σ. Κατασκευάζουμε μια Μηχανή Turing Τ 1 που δέχεται όλες τις συμβολοσειρές του Σ *, και έστω Τ 2 μια οποιαδήποτε Μηχανή Turing για την οποία θέλουμε να αποφασίσουμε αν L(Τ 2 ) = Σ *. Υποθέτουμε ότι το πρόβλημα Β(1) είναι αποφασίσιμο. Τότε θα υπάρχει αλγόριθμος Α (Μηχανή Turing Α) που, για δύο τυχαίες Μηχανές Turing Μ 1 και Μ 2, θα απαντά με ΝΑΙ ή ΟΧΙ στο ερώτημα Ισχ ει L(Μ 1 ) = L(Μ 2 );. Εφαρμόζουμε τον αλγόριθμο Α στις παραπάνω Μηχανές Turing Τ 1 και Τ 2 : [12]

(ι) Αν η απάντηση του Α είναι ΝΑΙ τότε συμπεραίνουμε ότι: η L(Τ 1 ) = L(Τ 2 ), και επειδή L(Τ 1 ) = Σ * άρα L(Τ 2 ) = Σ *. (ιι) Αν η απάντηση του Α είναι ΟΧΙ τότε L(Τ 1 ) L(Τ 2 ), άρα L(Τ 2 ) Σ *. Άρα το πρόβλημα Έστω Τ μια οποιαδήποτε Μηχανή Turing. Ισχ ει L(Τ) = Σ * ; είναι Turing αποφασίσιμο από τον αλγόριθμο Α. Άτοπο. (2) Το πρόβλημα είναι επιλύσιμο γιατί υπάρχει πολυωνυμικός αλγόριθμος που το επιλύει: Κατασκευάζουμε τα αυτόματα της διαφοράς S 1 - S 2 και S 2 S 1, και έστω L(S 1 - S 2 ) και L(S 2 S 1 ) οι αντίστοιχες γλώσσες τους. Ισχύει L(S 1 - S 2 ) = L(S 2 S 1 ) =, τότε και μόνον τότε όταν, L(S 1 ) = L(S 2 ). Είναι γνωστό (Τόμος Γ, σελ. 135) ότι, το να αποφασίσουμε αν η γλώσσα που αναγνωρίζει ένα δεδομένο πεπερασμένο αυτόματο είναι ή όχι κενή, είναι επιλύσιμο πρόβλημα. ΕΡΩΤΗΜΑ 6 (Α) Υποθέτοντας ότι P NP, ισχύει ή όχι ότι: Αν κάθε στιγμιότυπο του προβλήματος απόφασης Π 1 είναι και στιγμιότυπο του προβλήματος απόφασης Π 2, και αν το Π 2 είναι ΝP-δύσκολο (σκληρό) τότε και το Π 1 είναι NP-δύσκολο; Υπόδειξη: Αν η πρ ταση δεν ισχ ει θα το δε ξετε με ένα αντιπαρ δειγμα, και αν ισχ ει θα το δε ξετε με γενική απ δειξη. (Β) Αποδείξτε ότι το παρακάτω πρόβλημα HAMILTON CYCLE για κατευθυντικ γραφήματα είναι NΡ-πλήρες: Δοθέντος εν ς κατευθυντικού γραφήματος G(V,E), υπ ρχει απλ ς κ κλος που διέρχεται απ λες τις κορυφές του G (κ κλος Hamilton) ; Υπόδειξη: Αναγωγή από το NP-πλήρες πρόβλημα HAMILTON CYCLE για μηκατευθυντικ γραφήματα: Δοθέντος εν ς μη-κατευθυντικού γραφήματος G(V,E), υπ ρχει απλ ς κ κλος που διέρχεται απ λες τις κορυφές του G ; Απλός κύκλος σε γράφημα G(V,E): Μια ακολουθ α γειτονικών (συνδεομένων με ακμή) κορυφών του V, στην οπο α κ θε κορυφή εμφαν ζεται ακριβώς μ α φορ, εκτ ς απ την πρώτη και την τελευτα α που ταυτ ζονται. [13]

ΑΠΑΝΤΗΣΗ (A) Η πρόταση του ερωτήματος δεν ισχύει. Ένα αντιπαράδειγμα είναι το πρόβλημα SAT που είναι NP-δύσκολο και το υπό-πρόβλημα 2SAT που ανήκει στο P. Αν υποθέσουμε ότι η πρόταση αληθεύει τότε και το 2SAT θα πρέπει να είναι NP-δύσκολο, το οποίο συνεπάγεται P=NP (άτοπο, λόγω της υπόθεσης που κάναμε). (Β) Δοθέντος ενός κατευθυντικού γραφήματος G(V,E) και ενός πιστοποιητικού (δηλαδή μιας ακολουθίας όλων των κορυφών του V, στην οποία κάθε κορυφή εμφανίζεται ακριβώς μία φορά, εκτός από την πρώτη και την τελευταία που ταυτίζονται), μπορούμε να επαληθεύσουμε ότι η ακολουθία αυτή αποτελεί κύκλο Hamilton του γραφήματος G. Η επαλήθευση γίνεται εξετάζοντας αν για κάθε ζευγάρι διαδοχικών κορυφών του πιστοποιητικού υπάρχει ακμή στο Ε. Όλη η διαδικασία απαιτεί χρόνο γραμμικό στο μέγεθος του γραφήματος (πλήθος κορυφών και ακμών αυτού). Άρα το δοθέν πρόβλημα ανήκει στην κλάση ΝΡ. Για την απόδειξη της ΝΡ-δυσκολίας, θα γίνει αναγωγή από το γνωστό πρόβλημα HAMILTON CYCLE για μη-κατευθυντικ γραφήματα. Θεωρούμε ένα μη κατευθυντικό γράφημα G=(V,E). Θα κατασκευάσουμε στιγμιότυπο του προβλήματος HAMILTON CYCLE για κατευθυντικ γραφήματα, δηλαδή κατευθυντικό γράφημα G =(V,E ), έτσι ώστε να ισχύει η πρόταση: Το G έχει κύκλο Hamilton αν και μόνο αν το G έχει κύκλο Hamilton. Το G θα έχει το ίδιο σύνολο κορυφών με το G (δηλαδή, V=V ), και για κάθε ζευγάρι κορυφών u, v που συνδέεται με ακμή του Ε, δημιουργούμε τις ακμές (u,v) και (v,u) στο Ε. Προφανώς, το G θα έχει κύκλο Hamilton, τότε και μόνο τότε όταν το G έχει κύκλο Hamilton. Είναι φανερό ότι η αναγωγή είναι πολυωνυμικού χρόνου, αφού τα δύο γραφήματα θα έχουν ίδιο σύνολο κορυφών και E = 2 E. Συνεπώς το δοθέν πρόβλημα της εκφώνησης είναι ΝΡ-πλήρες. [14]