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

Σχετικά έγγραφα
1o Φροντιστήριο ΗΥ240

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

Ασυμπτωτικός Συμβολισμός

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

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

Ασυμπτωτικός Συμβολισμός

Ασκήσεις (2) Άσκηση 1

Δομές Δεδομένων (Data Structures)

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Ασυμπτωτικός Συμβολισμός

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

Υπολογιστική Πολυπλοκότητα

Δυναμικός Προγραμματισμός

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Ασυμπτωτικός Συμβολισμός

ρυθιμός αύξησης συναρτήσεων

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διωνυµικοί Συντελεστές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Δυναµικός Προγραµµατισµός 1

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Δομές Δεδομένων και Αλγόριθμοι

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

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

Δυναμικός Προγραμματισμός

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

Δυναμικός Προγραμματισμός

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

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

Δομές Δεδομένων & Αλγόριθμοι

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΗΥ240: οµές εδοµένων. ιδάσκουσα: Παναγιώτα Φατούρου ΗΥ240 - Παναγιώτα Φατούρου 2

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

ΗΥ240: οµές εδοµένων

1η Σειρά Γραπτών Ασκήσεων

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Δομές Δεδομένων & Αλγόριθμοι

Τηλ , Fax: , URL:

υναμικός Προγραμματισμός

Δομές Δεδομένων Ενότητα 2

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 1η: Εισαγωγή Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

Διακριτά Μαθηματικά. Γιάννης Εμίρης. Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ. Οκτώβριος

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

Διδάσκων: Παναγιώτης Ανδρέου

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

υναμικός Προγραμματισμός

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

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

Ενότητα 1 Εισαγωγή. ΗΥ240: Δοµές Δεδοµένων. Διδάσκουσα: Παναγιώτα Φατούρου

Επιλογή. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Επιλογή. Επιμέλεια διαφανειών: Δ. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

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

Ουρά Προτεραιότητας: Heap

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Ουρά Προτεραιότητας: Heap

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αλγοριθμικές Τεχνικές

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθµων. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Αλγόριθμοι Ταξινόμησης Μέρος 4

Θεωρητικό Υπόβαθρο. Περιεχόμενα Κεφαλαίου

Δομές Δεδομένων και Αλγόριθμοι

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Heapsort Using Multiple Heaps

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

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

Κεφάλαιο 2 Ανάλυση Αλγορίθμων

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

Μαθηµατικά για Πληροφορική

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

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

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ 1. α. Να βάλετε σε αύξουσα σειρά μεγέθους τις παρακάτω συναρτήσεις χρονικής πολυπλοκότητας αλγορίθμων: nlogn, n logn, c n, loglogn, log 4 n, n 1/logn, όπου c σταθερά >1. Υποδ: Χρησιμοποιείτε την ιεράρχιση που αναφέρεται στη διαφάνεια 11 του Ασυμπτωτικού Συμβολισμού. Η εφαρμογή της δεδομενης ιεράρχισης είναι άμεση. β. Αποφασίστε αν ισχύουν τα παρακάτω: 10n 2 =o(n 2 ) 10n 2 =ω(n 2 ) 5n 3 logn = ω(n 3 ) Αιτιολογήστε την απόφασή σας. Υποδ: Εδώ χρησιμοποιείτε τους ορισμούς των ασυμπτωτικών συμβολισμών. Προσοχή στις λεπτομέρειες: Οι ορισμοί ισχυουν για μεγάλα n μεγαλύτερα από ένα n_ο (δοκιμές με κάποιες και μικρές τιμές του n δεν είναι η σωστή μέθοδος), προσοχή στις ανισότητες (γνήσιες για κάποιους ορισμούς) όπως επίσης και στη χρήση σταθερών c (κάποιοι ορισμοί αναφέρονται για κάποιες τιμές του c, ενώ άλλοι για οποιοδήποτε c). γ. Βρείτε την ακριβή εκτίμηση τάξης μεγέθους (Θ) του παρακάτω βρόγχου. for (i=1; i<=n; i++) for (j=1; j<=i; j++) for (k=i; k>0; k--) t=j+k. Υποδ: Η τελευταία στη σειρά εντολή έχει σταθερό χρόνο εκτέλεσης κ (άρα είναι θ(1)). Μετρήστε τον αριθμό εκτελέσεών της ξεκινώντας από τον εσωτερικό βρόγχο και πηγαίνοντας προς τον εξωτερικό βρόγχο. Ο αριθμός εκτελέσεων μπορεί να είναι συνάρτηση μιας παραμετρου. π.χ ο εσωτερικός βρόγχος καλεί την εντολή αυτή για k=i, k=i-1, k=i-2,.κ=1 (δηλαδή i φορές). Ο βρόγχος αυτός καλείται από τον προηγούμενο για j=1, j<=i (δηλαδή i φορές επίσης). Μέχρι στιγµής λοιπόν η τελευταία εντολή εκτελείται i 2 φορές (για κάθε εκτέλεση του 2ου βρόγχου εκτελείται i φορές ). Εγώ η παράµετρος είναι η i. Ο πρώτος βρογχος µας λέει ότι το i είναι από 1 έως n. Αναλυτικότερα: i=1 --- η τελευταία εντολή εκταλείται i 2 =1 φορά ι=2 --- η τελευταία εντολή εκταλείται i 2 =4 φορές κοκ Άρα έχουµε ένα άθροισµα για i από 1 έως n του i 2. Γνωρίζετε πως εκφράζεται το άθροισµα αυτό.

2 Έστω πίνακας Α 8 θέσεων με τα ακόλουθα στοιχεία 5,7,2,1,8,3,6,4. α. Δείξτε την εφαρμογή της Heap Sort για την ταξινόμηση των στοιχείων αυτών Υπόδ: Ακολουθείστε τα βήματα του αλγορίθμου στις διαφάνειες 19 και 20 της Heap sort. Προσοχή: Δεν σταματάτε στη δημιουργία του σωρού, αλλά αφού έχουν εξαχθεί όλα τα στοιχεία από το σωρό. Επίσης, μετά την εξαγωγή ενός στοιχείου πρέπει αυτό που παραμένει να είναι σωρός αυτό το διαφαλιζει η combine. β. Με δεδομένο ότι ο αλγόριθμος δημιουργίας σωρού έχει χρονική πολυπλοκότητα Θ(n) (δεν απαιτείται να το δείξετε αυτό), δείξτε ότι η πολυπλοκότητα της Heap Sort είναι Ο(nlogn). Υποδ: Διαφάνεια 19 της Heap sort. Δείξτε με λεπτομέρεια την πολυπλοκότητα των επιμέρους διεργασιών που απαιτούνται (πλην αυτής της δημιουργίας σωρού). 3 α. Δείξτε την εφαρμογή της Quick sort(*) στον πίνακα Α, 8 θέσεων με τα ακόλουθα στοιχεία 5,7,2,1,8,3,6,4. Σε κάθε αναδρομική κλήση δείξτε ΜΟΝΟ τα εξής: - τον πίνακα (Α) - το στοιχείο διαχωρισμού (π) - το σημείο διαχωρισμού (δ) Στην κατασκευή της λύσης δείξτε τους ταξινομημένους πίνακες με τη σειρά που παράγονται. Υποδ: Διαφάνειες 2-5 της Quicksort. Δεν δείχνετε όλα τα βήματα αλλά το αποτέλεσμα μόνο κάθε αναδρομικής κλήσης. Δείτε το παράδειγμα της διαφάνειας 8. β. Δείξτε τη χρονική πολυπλοκότητα της Quick sort στην χειρότερη περίπτωση. Υποδ: Διαφάνειες 10-11 της Quicksort. 4 Εφαρμόστε το Θεώρημα του Κυρίαρχου Όρου στην περίπτωση f(n)=θ(n) (διακρίνατε περιπτώσεις σε ότι αφορά στις σχέσεις των παραμέτρων α και β) Υποδ: Το θεώρημα αναφέρεται στη διαφάνεια 14 της «διαίρει και βασίλευε». Τα υπόλοιπα είναι εφαρμογές του θεωρήματος. Εδώ λεοιπόν σας ζητείται να εφαρμόσετε το θεώρημα σε μια ειδική περίπτωση (υπάρχει στη διαφάνεια 15) όπου f(n)=θ(n). Πρέπει λοιπόν να δείξετε πως προσκύπτουν τα αποτελέσματα της διαφάνειας 15. Η εφαρμογή είναι απλή με βάση το πότε ένας λογάριθμος είναι μεγαλύτερος ή μικρότερος της μονάδας. 5 Δημιουργία σωρού: 1. Παρουσιάστε την εφαρμογή του αλγορίθμου για το εξής στιγμιότυπο εισόδου: [3, 4, 6, 10, 8, 15, 16, 17, 12]

Συγκεκριμένα, παρουσιάστε τα δέντρα που δημιουργούνται και μόνο τις αλλαγές σε αυτά κατά την εκτέλεση του αλγορίθμου. Υποδ: Εδώ σας ζητείται μόνο η δημιουργία σωρού, όπως αυτή αναφέρεται στη διαφάνεια 16. Πρέπει να δείξετε την ιεραρχική (bottom- up) εφαρμογή, όπως φαίνεται και στο παράδειγμα. 6. Εξηγείστε με σύντομο τρόπο γιατί κάθε ντετερμινιστικός συγκριτικός αλγόριθμος ταξινόμησης χρειάζεται Ω(n log n) συγκρίσεις μεταξύ στοιχείων. Υποδ: Διαφάνειες 22-24 της Heap sort. 7. Ένα ρομπότ πρέπει να προγραμματίσει την εκτέλεση μη-επικαλυπτόμενων εργασιών από ένα σύνολο ενεργειών εντός ενός χρονικού διαστήματος Β χρονικών στιγμών. Οστόχος είναι να εκτελέσει τις εργασίες που του αποδίδουν το μεγαλύτερο δυνατό όφελος. Κάθε ενέργεια χαρακτηρίζεται από το ζεύγος (δ,ο) όπου δ η διάρκειά της σε χρονικές στιγμές και ο το όφελος που προκύπτει από την εκτέλεσή της. Π.χ. μεταξύ δύο ενεργειών με οφέλη 8 και 2, και εφόσον το ρομπότ δεν έχει άλλη επιλογή, θα επιλέξει αυτή με όφελος 8, ενώ την άλλη μπορεί τελικά να μην την εκτελέσει. Με ποιόν αλγόριθμο θα επιλύατε το παραπάνω πρόβλημα; Παρουσιάστε την εφαρμογή του αλγορίθμου για τις εξής ενέργειες (δ,ο): (1, 1), (2, 5), (2, 5), (3, 9), (4, 8), και για χρονικό διάστημα Β=4 στιγμών. Υποδ: Πρόκειται για εφαρμογή του αλγορίθμου επίλυσης του διακριτού προβλήματος του σακιδίου. Πρέπει να εφαρμόσετε την αναδρομική συνάρτηση της διαφάνειας 9 της ενότητας του δυναμικού προγραμματισμού. Στη διαφάνεια 10 υπάρχει συγεκριμένο παράδειγμα εφαρμογής. 8 Έστω ότι σας προτείνουν 2 αλγορίθμους για κάθε πρόβλημα από μια σειρά προβλημάτων και εσείς πρέπει να επιλέξετε βάσει της ασυμπτωτικής συμπεριφοράς τους. Από κάθε ζεύγος που σας προτείνουν ποιόν αλγόριθμο επιλέγετε, και γιατί; 1. (α) Ο(log(log(n))), (β) Ο(log(n)) 2. (α) Ο(log 2 (n)), (β) Ο(log(n)) 3. (α) Ο(2 n ), (β) Ο(3 n ) 4. (α) Ο(n) (β) Ω(nlog(n)) 5. (α) Θ(2 n ) (β) Ο(2 n ) 6. (α) Θ(n 0.6 ), (β) Θ(n logn ) Οι απαντήσεις πρέπει να είναι ως εξής: αριθμος- ζεύγους(α β). π.χ. 7(α) και σύντομη αιτιολόγηση της απάντησής σας σε κάθε περιπτωση. Υποδ: Χρησιμοποιείτε την ιεράρχιση που αναφέρεται στη διαφάνεια 11 του Ασυμπτωτικού Συμβολισμού. 9. Έστω f(n) και g(n) ασυμπτωτικά μη- αρνητικές συναρτήσεις. Χρησιμοποιώντας τον ορισμό του Θ συμβολισμού δείξτε ότι max(f(n),g(n))=θ(f(n)+g(n)).

Υποδ. Η άσκηση σας ζητάει ουσιαστικά να διατυπώσετε τον ορισμό του Θ. Αυτό το κάνετε για την Θ(f(n)) και την Θ(g(n)). Πρέπει επίσης να θεωρείσετε μια συνάρτηση που ανήκει στο Θ(f(n)) και μια στο Θ(g(n)) θυμηθείτε αυτά είναι σύνολα συναρτήσεων!. Προσθέτε κατά μέλη στις ανισσότητες. Προσοχή στις λεπτομέρειες καθώς εφαρμόζετε τον ορισμό: Μην κάνετε απλουστεύσεις θεωρώντας ότι έχετε παντού τις ίδιες σταθερές. 10. (α) Διατυπώστε τον αλγόριθμο επίλυσης του διακριτού προβλήματος του σακιδίου και (β) εφαρμόστε τον σε ένα σύνολο 5 αντικειμένων { (3, 5), (2, 7), (4, 4), (6, 8), (5, 4) }(οι δυάδες αφορούν (μέγεθος, αξία) κάθε αντικειμένου), και για ένα σακίδιο μεγέθους 5. Υποδ: Όπως και στο 7. 11. Στο παρακάτω στιγμιότυπο εισόδου εφαρμόστε και δείξτε αναλυτικά(*) την εφαρμογή της ντετερμινιστικής quicksort με επιλογή του στοιχείου που βρίσκεται στη θέση n/2 ως στοιχείο διαχωρισμού. 1,3,5,6,8,10 Υποδ: Διαφάνειες 2-5 της Quicksort. Δεν δείχνετε όλα τα βήματα αλλά το αποτέλεσμα μόνο κάθε αναδρομικής κλήσης. Δείτε το παράδειγμα της διαφάνειας 8. 12. Εξηγείστε με σύντομο τρόπο (μισή σελίδα) γιατί ο χρόνος εκτέλεσης της mergesort είναι Ο(nlοg(n)) Υποδ: Εδώ πρέπει να κατασκευάσετε και να εξηγείσετε το δένρο αναδρομής με βάση το οποίο ισχύει το ζητούμενο, σύμγωνα και με τη διαφάνεια 13 της ενότητας Διαίρει και Βασίλευε. 13. (α) Διατυπώστε τον αλγόριθμο επίλυσης του διακριτού προβλήματος του σακιδίου και (β) εφαρμόστε τον σε ένα σύνολο 5 αντικειμένων { (3, 5), (2, 7), (4, 4), (6, 8), (5, 4) }(**), και για ένα σακίδιο μεγέθους 5 (κατασκευάστε μόνο τον πίνακα αυτό αρκεί). ========================================= (*) Σε κάθε αναδρομική κλήση δείξτε ΜΟΝΟ τα εξής: - τον πίνακα (Α) - το στοιχείο διαχωρισμού (π) - το σημείο διαχωρισμού (δ) Στην κατασκευή της λύσης δείξτε τους ταξινομημένους πίνακες με τη σειρά που παράγονται. (**) Οι δυάδες αφορούν (μέγεθος, αξία) κάθε αντικειμένου. =========================================

Υποδ: Όπως και στο 7. 14. Να δείξετε ότι αν f,g είναι δύο συναρτήσεις που δέχονται μη αρνητικές τιμές, τέτοιες ώστε f=o(g), τότε ισχύει ότι g=ω(f). Υποδ. Η άσκηση σας ζητάει ουσιαστικά να διατυπώσετε τον ορισμό του Ο και του Ω. Αν εφαρμόσετε σωστά τους ορισμούς, τότε με μια απλή πράξη δείχνετε το ζητούμενο. 15. Να ταξινομήσετε τις παρακάτω συναρτήσεις σε αύξουσα σειρά τάξης μεγέθους g1,g2,g3... έτσι ώστε g1 = Ο(g2), g2 = Ο(g3) κοκ log((3n)!), log(n 3 ), (logn) logn, n 1/2, (logn) d, όπου d θετική σταθερά. Να αιτιολογήσετε τις απαντήσεις σας. Υποδ. Αφού απλοποιήσετε τις παραστάσεις κάνοντας απλές πράξεις κύρια με βάση και τις ιδιότητες λογαρίθμων, μπορείτε να χρησιμοποιείτε την ιεράρχιση που αναφέρεται στη διαφάνεια 11 του Ασυμπτωτικού Συμβολισμού. 16. 1. Εξηγείστε με σύντομο τρόπο γιατί ο χρόνος εκτέλεσης της mergesort είναι Ο(nlοgn) Υποδ. Όπως και στη 14. 2. Να υπολογίσετε την τάξη μεγέθους Θ() των συναρτήσεων Τ που αφορούν στις παρακάτω αναδρομικές σχέσεις. Θεωρείστε για όλες ότι Τ(1)=Θ(1). a. T(n) = 2T(n/2) + n 2 b. T(n) = 5T(n/7) + n log n c. T(n) = 5T(n/7) + log n Υποδ: Εδώ εφαρμόζετε το θεώρημα του κυρίαρχου όρου που αναφέρεται στη διαφάνεια 14 της «διαίρει και βασίλευε». Προσοχή: μπορείτε αν εφαρμόσετε τις ειδικές περιπτώσεις του θεωρήματος (διαφ. 15) ΜΟΝΟ αν ισχύουν οι συνθήκες εφαρμογής τους. Στην περίπτωση που το θεώρημα δεν μπορεί να εφαρμοστεί πρέπει (α) να το αιτιολογήσετε και (β) να εφαρμόσετε την αναδρομική συνάρτηση επαναληπτικά, φτιάχνονατς το δέντρο αναδρομής και κάνοντας πράξεις. 17. Eφαρμόστε τον αλγόριθμο επίλυσης του διακριτού προβλήματος του σακιδίου σε ένα σύνολο 5 αντικειμένων { (3, 2), (2, 3), (4, 2), (6, 5), (5, 4) }*, και για ένα σακίδιο μεγέθους 5 (κατασκευάστε τον πίνακα και δείξτε τον υπολογισμό 3 τουλάχιστον κελλιών του με τιμή διαφορετική του 0) Οι δυάδες αφορούν (μέγεθος, αξία) κάθε αντικειμένου. Υποδ: Όπως και στο 7.

18. Εκτιμήστε την ασυμπτωτική συμπεριφορά του παραπάνω αλγορίθμου (στην χειρότερη περίπτωση). Αιτιολογήστε με λεπτομέρεια. Υποδ. Παρόμοια με την 1γ παραπάνω. 19. Με βάση τους ορισμούς των ασυμπτωτικών συμβολισμών αποδείξτε το παρακάτω θεώρημα: Για οποιεσδήποτε συναρτήσεις f(n) και g(n) έχουμε ότι f(n)=θ(g(n)) αν και μόνο αν f(n)=ο(g(n)) και f(n)=ω(g(n)). Χρησιμοποιήστε το παραπάνω θεώρημα για να δείξετε ότι Υποδ. Πρόκειται για απλή εφαρμογή των ορισμών των ασυμπτωτικών συμβολισμών. Στην εφαρμογή θα πρέπει να δείξετε ότι an 2 +bn+c=ω(n 2 ) και ότι an 2 +bn+c=ο(n 2 ) 20. Για την αναδρομική συνάρτηση Τ(n)=3Τ(n/4)+cn 2 A. Δείξτε πως εξελίσσεται το δέντρο αναδρομής και υπολογίστε (α) το ύψος του δέντρου (β) το κόστος σε κάθε επίπεδο του δέντρου Β. Υπολογίστε την ασυμπτωτική συμπεριφορά που προκύπτει από την παραπάνω συνάρτηση. Υποδ. Για να μπορέσετε να επιλύσετε ασκήσεις αυτού του τύπου πρέπει να μελετήσετε την απόδειξη του θεωρήματος κυρίαρχου όρου στο βιβλίο σας (Εισαγωγή στους αλγορίθμους Cormen et al). Στη διάθεσή σας για απορίες. 21. Με βάση το θεώρημα κυρίαρχου όρου δείξτε ότι: Υποδ. Εδώ πρόκειται για μια ειδική περίπτωση του θεωρήματος. Η λύση ακολουθεί την ίδα μέθοδο με αυτή της άσκησης 4 παραπάνω. 22. α. Δείξτε ότι ο(g(n)) ω(g(n)) =

Υποδ. Θυμηθείτε ότι τα ο(g(n)) και ω(g(n)) είναι σύνολα συναρτήσεων που έχουν συγκεκριμένη ασυμπτωτική συμπεριφορά. Θεωρείστε λοιπόν μια συνάρτηση που να ανήκει στην τομή των δύο συνόλων ο(g(n)) και ω(g(n)). Με βάση τους ορισμούς (και μόνο) φτάνετε σε άτοπο. Προσοχή όμως στις λεπτομέρειες των ορισμών. β. Δείξτε τις παρακάτω σχέσεις i. n!=ω(2 n ) ii. n!=ο(n n ) iii. log(n!) = Θ(nlogn) (Υποδ. Για την (iii) δείξτε επαγωγικά ότι για n 4 ισχύει ότι (n/2)log(n/2) (nlogn)/4 ) Υποδ. Μπορείτε να χρησιμοποιείτε την ιεράρχιση που αναφέρεται στη διαφάνεια 11 του Ασυμπτωτικού Συμβολισμού. Στην 3η, πρέπει να απλοποιήσετε την log(n!) κάνοντας απλές πράξεις κύρια με βάση και τις ιδιότητες λογαρίθμων. Στη διαδικασία αυτή θα εφαρμόσετε από ένα σημείο και μετά την υπόδειξη της άσκησης (συμβουλευτείτε τις σημειώσεις σας, έχω κάνει παρόμοια άσκηση στον πίνακα) 23. β1. Δείξτε ότι αν Τ(n)=2T(n/2)+n, Τ(1)=Θ(1), τότε T(n)=nlogn. β2. Βρείτε την ακριβή ασυμπτωτική συμπεριφορά για κάθε μια από τις ακόλουθες περιπτωσεις: - T(n)=4T(n/2)+n - T(n)=4T(n/2)+n 2 - T(n)=4T(n/2)+n 3 - T(n)=4T(n/2)+n 2 logn Υποδ: Εδώ εφαρμόζετε το θεώρημα του κυρίαρχου όρου που αναφέρεται στη διαφάνεια 14 της «διαίρει και βασίλευε». Προσοχή: μπορείτε αν εφαρμόσετε τις ειδικές περιπτώσεις του θεωρήματος (διαφ. 15) ΜΟΝΟ αν ισχύουν οι συνθήκες εφαρμογής τους. Στην περίπτωση που το θεώρημα δεν μπορεί να εφαρμοστεί πρέπει (α) να το αιτιολογήσετε και (β0 να εφαρμόσετε την αναδρομική συνάρτηση επαναληπτικά, φτιάχνονατς το δέντρο αναδρομής και κάνοντας πράξεις. 24. Δείξτε αναλυτικά την εκτίμηση καλύτερης και χειρότερης περίπτωσης για την quicksort. Υποδ. Οπως στις διαφάνειες 10-12 της quicksort. 25. Διατυπώστε ένα αλγόριθμο για την επίλυση του προβλήματος Subset Sum. Εφαρμόστε τον αλγόριθμό σας στο εξής στιγμιότυπο (1,2,3,4,5,6) για Β=10. Υποδ: Όπως και στο 7. 26. α. είξτε ότι αν η f(n) είναι Ο(g(n)) και η d(n) είναι Ο(h(n)), τότε f(n) + d(n)=ο(g(n)+ h(n)) β. Με βάση τους ορισμούς των συμβολισμών ασυμπτωτικής συμπεριφοράς δείξτε τις παρακάτω σχέσεις: Ω(g(n)) = ω(g(n)) Θ(g(n)) Θ(g(n)) = O(g(n)) Ω(g(n))

Υποδ. Τα παραπάνω προκύπτουν με απλές πράξεις και εφαρμογή των ορισμών των ασυμπτωτικών συμβολισμών. Προσοχή στις λεπτομέρειες των ορισμών! 27. Να υπολογίσετε το Θ() για τις λύσεις των παρακάτω αναδρομικών εξισώσεων. Για όλες να θεωρήσετε ότι Τ(1)=Θ(1). Υποδ: Εδώ εφαρμόζετε το θεώρημα του κυρίαρχου όρου που αναφέρεται στη διαφάνεια 14 της «διαίρει και βασίλευε». Προσοχή: μπορείτε αν εφαρμόσετε τις ειδικές περιπτώσεις του θεωρήματος (διαφ. 15) ΜΟΝΟ αν ισχύουν οι συνθήκες εφαρμογής τους. Στην περίπτωση που το θεώρημα δεν μπορεί να εφαρμοστεί πρέπει (α) να το αιτιολογήσετε και (β0 να εφαρμόσετε την αναδρομική συνάρτηση επαναληπτικά, φτιάχνοντας το δέντρο αναδρομής και κάνοντας πράξεις. 28. Δημιουργία σωρού: α. Παρουσιάστε την εφαρμογή του αλγορίθμου για το εξής στιγμιότυπο εισόδου: [3, 4, 6, 10, 8, 15, 16, 17, 12] Συγκεκριμένα, παρουσιάστε τα δέντρα που δημιουργούνται και μόνο τις αλλαγές σε αυτά κατά την εκτέλεση του αλγορίθμου. β. Υπολογίστε την πολυπλοκότητα του αλγορίθμου δημιουργίας σωρού που εφαρμόσατε παραπάνω. Υποδ. Όπως σε παραπάνω ασκήσεις. 29. Quicksort: α. Στο παρακάτω στιγμιότυπο εισόδου εφαρμόστε και δείξτε αναλυτικά την εφαρμογή της ντετερμινιστικής quicksort με επιλογή του στοιχείου που βρίσκεται στη 1η θέση ως στοιχείο διαχωρισμού. 1,3,5,6,8,10 β. Σχολιάστε την αποτελεσματικότητα του αλγορίθμου για την περίπτωση αυτή και γενικεύστε το συμπέρασμά σας. Υποδ. Όπως σε παραπάνω ασκήσεις. Στο (β) θα πρέπει να διαπιστώσετε ότι πρόκειται για τη χειρότερη περίπτωση εφαρμογής του αλγορίθμου.