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

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

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

Transcript

1 Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

2 Αναδροµή ιαίρει και Βασίλευε (Divide and Conquer) Η αναδροµή είναι µια ισχυρή αλγοριθµική µέθοδος καθώς και µια τεχνική προγραµµατισµού (αναδροµικές συναρτήσεις, αναδροµικός ορισµός τύπου). Ενας αναδροµικός αλγόριθµος καλεί τον εαυτό του επιλύοντας υποπροβλήµατα του αρχικού προβλήµατος. Υποπρόβληµα: ένα πρόβληµα της ίδιας ϕύσης µε το αρχικό, αλλά µικρότερου µεγέθους. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

3 Αναδροµή ιαίρει και Βασίλευε (Divide and Conquer) διαίρει και βασίλευε (Divide and Conquer) το αρχικό πρόβληµα διασπάται σε υποπροβλήµατα τα οποία επιλύονται και συνδυάζονται οι λύσεις τους για να δηµιουργηθεί η λύση του αρχικού προβλήµατος. ιαίρεση: ιαίρεση του προβλήµατος σε µικρότερα προβλήµατα (υποπροβλήµατα). Επίλυση: Επίλυση των µικρότερων προβληµάτων αναδροµικά. Συνδυασµός: Συνδυασµός των λύσεων για την εύρεση της αρχικής λύσης. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

4 Αναδροµή Merge-Sort ιαίρεση: ιαίρεση του πίνακα n στοιχείων σε δύο υποπίνακες n 2 στοιχείων ο καθένας. Επίλυση: Αναδροµική ταξινόµηση των δύο υποπινάκων µε χρήση της Merge-Sort. Συνδυασµός: Συγχώνευση των δύο ταξινοµηµένων υποπινάκων. Το ϐήµα Επίλυση σταµατά όταν οι υποπίνακες οι οποίοι προκύπτουν µετά τη διάσπαση έχουν µόνο ένα στοιχείο. Η συγχώνευση δύο ταξινοµηµένων υποπινάκων γίνεται µε τον αλγόριθµο Merge Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

5 Αναδροµή Merge-Sort Merge(a, b, c) 1. i = 1 2. j = 1 3. for k = 1 to m+n do 4. if a i b j then 5. c k = a i 6. i = i else 8. c k = b j 9. j = j end if 11. end for Σχήµα: Αλγόριθµος Merge για την συγχώνευση των ταξινοµηµένων πινάκων a (µήκους m) και b (µήκους n) στον πίνακα c (µήκους m + n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

6 Αναδροµή Merge-Sort Η πολυπλοκότητα του αλγορίθµουmerge είναι O(m+n). MergeSort(A, l, r) 1. if l < r 2. q (l + r)/2 3. MergeSort(A,l,q) 4. MergeSort(A,q+1,r) 5. Merge /* Τους δύο υποπίνακες */ Σχήµα: Αναδροµικός αλγόριθµος MergeSort για την ταξινόµηση των στοιχείων ενός πίνακα. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

7 Αναδροµή Merge-Sort Merge-Sort(A,1,7) (1,4) (5,7) (1,2) (3,4) (5,6) (7,7) (1,1) (2,2) (3,3) (4,4) (5,5) (6,6) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

8 Αναδροµή Merge-Sort Αναδροµική εξίσωση περιγράφει το συνολικό χρόνο εκτέλεσης του αλγορίθµου σε ένα πρόβληµα µεγέθους n χρησιµοποιώντας το χρόνο εκτέλεσης σε προβλήµατα µικρότερου µεγέθους. { Θ(1) if n = 1, T(n) = Θ(n log n) T(n) = 2T( n )+Θ(n) if n > 1. 2 Γενικά, η υποδιαίρεση του αρχικού προβλήµατος σε a υποπροβλήµατα το καθένα από τα οποία έχει µέγεθος 1/b του αρχικού και το ϐήµα συνδυασµός χρειάζεται χρόνο d(n), τότε { 1 if n = 1, T(n) = at( n )+d(n) if n > 1. b Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

9 Αναδροµή Merge-Sort Μέθοδος της αντικατάστασης ( substitution) T(n) = at(n/b)+d(n) = a[at(n/b 2 )+d(n/b)]+d(n) = a 2 T(n/b 2 )+ad(n/b)+d(n) = a 2 [at(n/b 3 )+d(n/b 2 )]+ad(n/b)+d(n) = a 3 T(n/b 3 )+a 2 d(n/b 2 )+ad(n/b)+d(n) =... i 1 = a i T(n/b i )+ a j d(n/b j ) j=0 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

10 Αναδροµή Merge-Sort Αν n/b k = 1 ή n = b k τότε T(n/b k ) = T(1) = 1 και για i = k: k 1 T(n) = a k + a j d(b k j ) j=0 k = log b n a k = a log b n = n log b a. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

11 Αναδροµή Merge-Sort Στην περίπτωση της Merge-Sort έχουµε a = b = 2 και d(n) = n 1(= Θ(n)). k 1 T(n) = n+ 2 j (2 k j 1) j=0 k 1 = n+ (2 k 2 j ) j=0 = n+2 k k (2k 1) (2 1) = n+n log n n+1 = n log n+1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

12 υαδική Αναζήτηση (Binary Search) Το Πρόβληµα Είσοδος : ο πίνακας A[1..n], του οποίου τα στοιχεία είναι ταξινοµηµένα και ένα στοιχείο x. Εξοδος : Η εύρεση της ϑέσης του x στον A. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

13 Αναδροµή Binary Search ιαίρεση: Βρίσκουµε το µεσαίο στοιχείο του πίνακα και τον χωρίζουµε σε δύο υποπίνακες. Επίλυση: Επαναλαµβάνουµε την παραπάνω διαδικασία στον επιλεγµένο υποπίνακα, µεχρίς ότου ϐρούµε το στοιχείο σαν µεσαίο ή µέχρι να έχουµε κενούς υποπίνακες. Συνδυασµός: εν υπάρχει ϐήµα Συνδυασµός. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

14 Αναδροµή Binary Search BinarySearch(A, l, r, x) 1. if l < r 2. q (l + r)/2 3. if x < A[q] 4. BinarySearch(A,l,q,x) 5. else if x > A[q] 6. BinarySearch(A,q+1,r,x) 7. else 8. return q Σχήµα: Αναδροµικός αλγόριθµος BinarySearch. T(n) = T(n/2)+c = O(logn) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

15 Αντιστροφή (Inversion) Το Πρόβληµα Είσοδος : ο πίνακας L περιέχει τους αριθµούς 1, 2, 3,..., n µε κάποια διάταξη. Εξοδος : πλήθος αντιστροφών = πλήθος των Ϲευγών(i, j) ϑέσεων πίνακα µε i < j και L[i] > L[j] Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

16 Αντιστροφή (Inversion) Σχεδιασµός και Ανάλυση Αλγορίθµου Ποιός είναι ο απλούστερος αλγόριθµος ; Ωµή ϐία (Brute force) µε πολυπλοκότητα O(n 2 ). Μπορούµε να ϐελτιώσουµε τον ανωτέρω αλγόριθµο ; Ναι, µε πολυπλοκότητα O(n log n). Παράξενο, γιατί αν έχουµε n 2 αντιστροφές, τότε αναµένουµε O(n 2 ) Συνεπώς ο αλγόριθµος ϑα πρέπει να υπολογίζει το πλήθος των αντιστροφών χωρίς να εξετάζει µεµονωµένα κάθε αντιστροφή. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

17 ιαίρει και Βασίλευε- Αντιστροφή Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

18 ιαίρει και Βασίλευε- Αντιστροφή Αντιστροφή-Inversion ιαίρει: ιαίρεση του πίνακα n στοιχείων σε δύο υποπίνακες n 2 στοιχείων ο καθένας A, B. Βασίλευε: Αναδροµική κλήση της Αντιστροφής σε κάθε υποπίνακα για τον υπολογισµό του πλήθους των αντιστροφών του. Συνδυασµός: Υπολογισµός του πλήθους των αντιστροφών(a, b) όπου a A και b B. Επιστρέφει το άθροισµα του πλήθους των τριών αντιστροφών. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

19 Αντιστροφή Αλγόριθµος- 1η Εκδοχή Count(L, n) 1. if n = 1 return 0 2. else 3. x=count(a,n/2) 4. y=count(b,n/2) 5. z=countsplitinv(a,b) /* δεν έχει υλοποιηθεί */ 6. return x+y+z Σχήµα: Αναδροµικός αλγόριθµοςcount για την εύρεση του πλήθους των αντιστροφών των στοιχείων ενός πίνακα. Στόχος : Η CountSplitInv(L,n) να έχει γραµµική O(n) πολυπλοκότητα γιατί τότε η Count ϑα έχει πολυπλοκότητα O(n log n) όπως και η Merge-Sort. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

20 Αντιστροφή Αλγόριθµος-Ανάλυση Ταξινόµηση των A, B. Για κάθε στοιχείο του b B, δυαδική αναζήτηση στον A για την εύρεση του πλήθους των στοιχείων του που είναι µεγαλύτερα από το b. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

21 Αντιστροφή Υπολογισµός του πλήθους των αντιστροφών (a, b) Αν οι πίνακες A, B είναι ταξινοµηµένοι, τότε Συγχώνευση (Merge). Σάρωση των A, B από αριστερά προς τα δεξιά. Σύγκριση των a i, b j. Αν a i < b j τότε το a i δεν αντιστρέφεται µε κανένα εναποµένον στοιχείο του B. Αν a i > b j τότε το b j αντιστρέφεται µε όλα τα εναποµένοντα στοιχεία του A. Τοποθέτηση του µικρότερου στοιχείου στον ταξινοµηµένο πίνακα C. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

22 Αντιστροφή Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

23 Αντιστροφή Αλγόριθµος-Ανάλυση Οπως στην Merge-Sort, οι αναδροµικές κλήσεις να ϐρίσκουν το πλήθος των αντιστροφών και να ταξινοµούν. Κατ αυτόν τον τρόπο η Merge εντοπίζει τις αντιστροφές που υπάρχουν στους A και B. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

24 Αντιστροφή Αλγόριθµος ΕΙΣΟ ΟΣ: Ο πίνακας L. ΕΞΟ ΟΣ: Το πλήθος των αντιστροφών στον L και ο ταξινοµηµένος πίνακας L. SortCount(L, n) 1. if n = 1 return 0 2. else 3. (x, A)=SortCount(A,n/2) 4. (y, B)=SortCount(B,n/2) 5. (z, L )=MergeCountSplitInv(A,B) /* όµοια της Merge */ 6. return (x+y+z, L ) Σχήµα: Αναδροµικός αλγόριθµοςsortcount για την εύρεση του πλήθους των αντιστροφών των στοιχείων ενός πίνακα. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

25 Αντιστροφή- Ανάλυση αλγορίθµου Χρόνος χειρότερης περίπτωσης { Θ(1), για n = 1 T(n) = 2T( n )+Θ(n), για n > 1 2 Χρόνος εκτέλεσης SortCount T(n) = O(n log n) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

26 Αναδροµή Οι πύργοι του Hanoi Σχήµα: Οι πύργοι του Hanoi Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

27 Αναδροµή Οι πύργοι του Hanoi - Σχηµατική λειτουργία του αλγορίθµου Σχήµα: Αρχική κατάσταση. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

28 Αναδροµή Οι πύργοι του Hanoi - Σχηµατική λειτουργία του αλγορίθµου Σχήµα: Hanoi(n 1, 1, 2) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

29 Αναδροµή Οι πύργοι του Hanoi - Σχηµατική λειτουργία του αλγορίθµου Σχήµα: Μετακίνηση του µεγάλου δίσκου από το στύλο 1 στον στύλο 3. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

30 Αναδροµή Οι πύργοι του Hanoi - Σχηµατική λειτουργία του αλγορίθµου Σχήµα: Hanoi(n 1, 2, 3) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

31 Αναδροµή Οι πύργοι του Hanoi Hανοι(n, i, j) 1. if n 1 then 2. Ηανοι(n 1, i, 6 (i + j)) /* χρησιµοποιώντας τον στύλο j */ 3. Μεταφορά του µεγάλου δίσκου από τον στύλο i στον στύλο j 4. Ηανοι(n 1, 6 (i + j), j) /* χρησιµοποιώντας τον στύλο i */ 5. end if Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

32 Αναδροµή Οι πύργοι του Hanoi Hανοι(n, 1, 3) 1. if n 1 then 2. Ηανοι(n 1, 1, 2) /* χρησιµοποιώντας τον στύλο 3 */ 3. Μεταφορά του µεγάλου δίσκου από τον στύλο 1 στον στύλο 3 4. Ηανοι(n 1, 2, 3) /* χρησιµοποιώντας τον στύλο 1 */ 5. end if Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

33 Αναδροµή Οι πύργοι του Hanoi T(n) = Μέθοδος των αθροιζοµένων παραγόντων { 0 if n = 0, 2T(n 1)+1 if n 1. T(n) = 2T(n 1)+1 ( 2 0 ) T(n 1) = 2T(n 2)+1 ( 2 1 ) T(n 2) = 2T(n 3)+1 ( 2 2 )... T(2) = 2T(1)+1 ( 2 n 2 ) T(1) = 2T(0)+1 ( 2 n 1 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

34 Αναδροµή Οι πύργοι του Hanoi Αθροίζοντας T(n) = 2 n T(0)+( n 1 ) = 2 n 0+ 2n και τελικά T(n) = 2 n 1, n 0 Γενική µορφή µιας αναδροµικής εξίσωσης a(n)t n = b(n)t n 1 + c(n) µε T 0 σταθερά και a(n), b(n), c(n) συναρτήσεις του n. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

35 Αναδροµή Ασκηση: Να επιλυθεί η αναδροµική εξίσωση T(n) = T(n 1)+2 µε T(1) = 1. Λύση: T(n) = 2+T(n 1) = 2+2+T(n 2)... = T(1) = (n 1) 2+1 2n T(n) = Θ(n) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

36 Πολλαπλασιασµός ακεραίων Εστω δυο ακέραιοι x και y µε n ψηφία Παράδειγµα x = 1234 y = 5678 Ο αλγόριθµος του πολλαπλασιασµού έχει πολυπλοκότητα T(n) = O(n 2 ) Αναδροµικός αλγόριθµος Παρατηρήστε ότι αν χωρίσουµε στο µέσον τους ανωτέρω αριθµούς, τότε x = 1234 = και y = 5678 = Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

37 Πολλαπλασιασµός ακεραίων Αναδροµικός Αλγόριθµος Γενικά x = x 1 10 n/2 + x 0 (1) όπου x 1 είναι τα πρώτα n/2 και ο x 0 είναι τα τέλευταία n/2 ψηφία του x. Οµοια y = y 1 10 n/2 + y 0 (2) Από τις (1), (2) έχουµε xy = (x 1 10 n/2 + x 0 )(y 1 10 n/2 + y 0 ) = x 1 y 1 10 n +(x 1 y 0 + x 0 y 1 )10 n/2 + x 0 y 0 (3) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

38 Πολλαπλασιασµός ακεραίων Αναδροµικός Αλγόριθµος Ο αναδροµικός αλγόριθµος υπολογίζει τα τέσσερα γινόµενα x 1 y 1, x 1 y 0, x 0 y 1, x 0 y 0 στη συνέχεια συνδυάζει τα αποτελέσµατα µε τη χρήση της σχέσης (3). 1η Εκδοχή RecursiveMultiply(x, y) x = x 1 10 n/2 + x 0 y = y 1 10 n/2 + y 0 x 1 y 1 = RecursiveMultiply(x 1, y 1 ) x 1 y 0 = RecursiveMultiply(x 1, y 0 ) x 0 y 1 = RecursiveMultiply(x 0, y 1 ) x 0 y 0 = RecursiveMultiply(x 0, y 0 ) Return x 1 y 1 10 n +(x 1 y 0 + x 0 y 1 ) 10 n/2 + x 0 y 0 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

39 Πολλαπλασιασµός ακεραίων Πολυπλοκότητα Στον ανωτέρω αλγόριθµο έχουν παραλειφθεί οι περιπτώσεις διακοπής της αναδροµής (περιπτώσεις ϐάσης). Η (3) απαιτεί ένα σταθερό πλήθος προσθέσεων αριθµών µε O(n) ψηφία συνεπώς έχει O(n) χρόνο. Η πολυπλοκότητα του RecursiveMultiply δίνεται από την T(n) 4T(n/2)+cn (4) όπου c = σταθερά. Η λύση της (4) είναι T(n) O(n 2 ) δηλαδη πάλι τετραγωνικός χρόνος! Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

40 Πολλαπλασιασµός ακεραίων Η τεχνική του Gauss Παρατηρήστε ότι (x 1 + x 0 )(y 1 + y 0 ) = x 1 y 1 + x 1 y 0 + x 0 y 1 + x 0 y 0 άρα x 1 y 0 + x 0 y 1 = (x 1 + x 0 )(y 1 + y 0 ) x 1 y 1 x 0 y 0 (5) που σηµαίνει ότι αρκούν τρεις αναδροµικές κλήσεις αντί για τέσσερις. Πράγµατι Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

41 Πολλαπλασιασµός ακεραίων Η τεχνική του Gauss - Αλγόριθµος RecursiveMultiply(x, y) x = x 1 10 n/2 + x 0 y = y 1 10 n/2 + y 0 z = RecursiveMultiply(x 1 + x 0, y 1 + y 0 ) x 1 y 1 = RecursiveMultiply(x 1, y 1 ) x 0 y 0 = RecursiveMultiply(x 0, y 0 ) Return x 1 y 1 10 n +(z x 1 y 1 x 0 y 0 ) 10 n/2 + x 0 y 0 Πολυπλοκότητα Συνεπώς όπου c = σταθερά. ή T(n) 3T(n/2)+cn T(n) = O(n log3 ) = O(n 1.59 ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

42 Πλησιέστερο Ϲεύγος σηµείων Το πρόβληµα Είσοδος: Ενα σύνολο P = {p 1, p 2,..., p n } που περιέχει n σηµεία του επιπέδου (R 2 ). Συµβολισµός: Συµβολίζουµε µε d(p i, p j ) την Ευκλείδια απόσταση. Εποµένως, αν p i = (x i, y i ) και p j = (x j, y j ), d(p i, p j ) = (x i x j ) 2 +(y i y j ) 2 Εξοδος: Ενα Ϲεύγος p, q P διακεκριµένων σηµείων που να ελαχιστοποιούν την απόσταση d(p, q) όταν p, q P. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

43 Πλησιέστερο Ϲεύγος σηµείων Αρχικές Παρατηρήσεις Υποθέτουµε (για διευκόλυνση) ότι όλα τα σηµεία έχουν διαφορετικές συντεταγµένες x και διαφορετικές συντεταγµένες y. Το πρόβληµα µπορεί να επιλυθεί µε εξαντλητική αναζήτηση (Brute force) σε χρόνο O(n 2 ). Μπορούµε να το επιλύσουµε σε καλύτερο χρόνο; Η εκδοχή του προβλήµατος στη µία διάσταση (R). 1. Ταξινόµηση των σηµείων σε χρόνο O(nlogn). 2. Εύρεση πλησιέστερου Ϲεύγους διαδοχικών σηµείων σε χρόνο O(n). Στόχος µας να ϐρούµε αλγόριθµο χρόνου O(nlogn) για την εκδοχή του προβλήµατος στο επίπεδο (R 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

44 Πλησιέστερο Ϲεύγος σηµείων Προσέγγιση Υψηλού Επιπέδου ηµιουργία αντιγράφων των σηµείων ταξινοµηµένων ως προς την συνιστώσα x (P x ) και ως προς τη συνιστώσα y (P y ) σε χρόνο O(nlogn). Αυτό δεν είναι αρκετό. Εφαρµογή του ιαίρει και Βασίλευε. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

45 Πλησιέστερο Ϲεύγος σηµείων Προσέγγιση Υψηλού Επιπέδου ηµιουργία αντιγράφων των σηµείων ταξινοµηµένων ως προς την συνιστώσα x (P x ) και ως προς τη συνιστώσα y (P y ) σε χρόνο O(nlogn). Αυτό δεν είναι αρκετό. Εφαρµογή του ιαίρει και Βασίλευε. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

46 Πλησιέστερο Ϲεύγος σηµείων Προσέγγιση Υψηλού Επιπέδου ηµιουργία αντιγράφων των σηµείων ταξινοµηµένων ως προς την συνιστώσα x (P x ) και ως προς τη συνιστώσα y (P y ) σε χρόνο O(nlogn). Αυτό δεν είναι αρκετό. Εφαρµογή του ιαίρει και Βασίλευε. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

47 Πλησιέστερο Ϲεύγος σηµείων ιαίρει και Βασίλευε (Divide and Conquer) ιαίρεση: ιαίρεση του προβλήµατος σε µικρότερα προβλήµατα (υποπροβλήµατα). Επίλυση: Επίλυση των µικρότερων προβληµάτων αναδροµικά. Συνδυασµός: Συνδυασµός των λύσεων για την εύρεση της αρχικής λύσης. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

48 Πλησιέστερο Ϲεύγος σηµείων Σχηµατικά Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

49 Πλησιέστερο Ϲεύγος σηµείων Σχηµατικά δ Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

50 Πλησιέστερο Ϲεύγος σηµείων Σχηµατικά Q Γραµµή L R δ x = n/2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

51 Πλησιέστερο Ϲεύγος σηµείων Σχηµατικά Q Γραµµή L R δ x = n/2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

52 Πλησιέστερο Ϲεύγος σηµείων Σχηµατικά Q Γραµµή L R δ x = n/2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

53 Πλησιέστερο Ϲεύγος σηµείων Σχηµατικά Q Γραµµή L R δ x = n/2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

54 Πλησιέστερο Ϲεύγος σηµείων ClosestPair(P x, P y ) 1η Εκδοχή 1 Ορίζουµε το Q ως το σύνολο των σηµείων που ϐρίσκονται στις πρώτες n/2 ϑέσεις της λίστας P x ( αριστερό µισό ) και 2 το R ως το σύνολο των σηµείων που ϐρίσκονται στις τελευταίες n/2 ϑέσεις της λίστας P x ( δεξιό µισό ). 3 Με µια µόνο διέλευση µέσω των P x και P y δηµιουργούµε τις λίστες Q x, Q y, R x, R y ( O(n) χρόνο). 4 (p 1, q 1 ) = ClosestPair(Q x, Q y ) 5 (p 2, q 2 ) = ClosestPair(R x, R y ) 6 (p 3, q 3 ) = ClosestSplitPair(P x, P y ) 7 Επίστρεψε το καλύτερο από τα(p 1, q 1 ), (p 2, q 2 ), (p 3, q 3 ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

55 Πλησιέστερο Ϲεύγος σηµείων Ερώτηµα Εστωδ = min{d(p 1, q 1 ), d(p 2, q 2 )}. Υπάρχουν σηµεία p Q και q R για τα οποία d(p, q) < δ; Αν δεν υπάρχουν τότε έχουµε ήδη ϐρει το πλησιέστερο Ϲευγάρι σε µία από τις αναδροµικές µας κλήσεις. Αν όµως υπάρχουν, τότε τα πλησιέστερα αυτά σηµεία p και q σχηµατίζουν το πλησιέστερο Ϲεύγος στο P. Στη συνέχεια ϑα ασχοληθούµε µε τη δηµιουργία του αλγορίθµου ClosestSplitPair Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

56 Πλησιέστερο Ϲεύγος σηµείων Πολυπλοκότητα Εστω ότι µπορούµε να υλοποιήσουµε το ClosestSplitPair σε O(n) χρόνο. Ποιός ϑα είναι ο συνολικός χρόνος εκτέλεσης του αλγορίθµου ClosestPair; Επιλέξτε το ελάχιστο άνω ϕράγµα. O(n) O(nlogn) O(n(logn) 2 ) O(n 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

57 Πλησιέστερο Ϲεύγος σηµείων Πολυπλοκότητα Εστω ότι µπορούµε να υλοποιήσουµε το ClosestSplitPair σε O(n) χρόνο. Ποιός ϑα είναι ο συνολικός χρόνος εκτέλεσης του αλγορίθµου Closest Pair; Επιλέξτε το ελάχιστο άνω ϕράγµα. O(n) O(nlogn) O(n(logn) 2 ) O(n 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

58 Πλησιέστερο Ϲεύγος σηµείων Βασική ιδέα Αρκεί να υπολογίσουµε το πλησιέστερο διαχωρισµένο Ϲεύγος στην περίπτωση p Q και q R. ηλαδή, όταν η απόσταση του διαχωρισµένου Ϲεύγους είναι µικρότερη από τα d(p 1, q 1 ) και d(p 2, q 2 ). Τα d(p 1, q 1 ) και d(p 2, q 2 ) είναι τα αποτελέσµατα της πρώτης και της δεύτερης αναδροµικής κλήσης αντίστοιχα. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

59 Πλησιέστερο Ϲεύγος σηµείων ClosestPair(P x, P y ) 2η Εκδοχή 1 Ορίζουµε το Q ως το σύνολο των σηµείων στις πρώτες n/2 ϑέσεις της λίστας P x ( αριστερό µισό ) και 2 το R ως το σύνολο των σηµείων στις τελευταίες n/2 ϑέσεις της λίστας P x ( δεξιό µισό ). 3 Με µια µόνο διέλευση µέσω των P x και P y δηµιουργούµε τις λίστες Q x, Q y, R x, R y ( σε O(n) χρόνο ). 4 (p 1, q 1 ) = ClosestPair(Q x, Q y ) 5 (p 2, q 2 ) = ClosestPair(R x, R y ) 6 Εστωδ = min{d(p 1, q 1 ), d(p 2, q 2 )} 7 (p 3, q 3 ) = ClosestSplitPair(P x, P y,δ) 8 Επίστρεψε το καλύτερο από τα(p 1, q 1 ), (p 2, q 2 ), (p 3, q 3 ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

60 Πλησιέστερο Ϲεύγος σηµείων ClosestSplitPair(P x, P y,δ) Εστω x η µεγαλύτερη συντεταγµένη x στο αριστερό µέρος του P. Εστω S y τα σηµεία του P µε συντεταγµένη x στο διάστηµα[ x δ, x +δ], ταξινοµηµένα ως προς τη συντεταγµένη y (χρόνος O(n)). Τα σηµεία που πρέπει να εξεταστούν από την ClosestSplitPair είναι µόνον αυτά που ϐρίσκονται στην S y Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

61 Πλησιέστερο Ϲεύγος σηµείων ClosestSplitPair(P x, P y,δ) δ δ x δ x x +δ Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

62 Πλησιέστερο Ϲεύγος σηµείων ClosestSplitPair(P x, P y,δ) S y δ δ x δ x x +δ Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

63 Αλγόριθµος ClosestSplitPair(P x, P y,δ) 1. best = δ, bestpair = NULL 2. για i = 1 έως S y 1 O(n) 3. για j = 1 έως min{7, S y 1} O(1) 4. p i-οστό σηµείο του S y (O(n), το S y µπορεί να είναι= P) 5. q (i + j)-οστό σηµείο του S y 6. αν d(p, q) < best τότε 7. bestpair= (p, q), best= d(p, q) 8. Επίστρεψε bestpair Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

64 Πλησιέστερο Ϲεύγος σηµείων Ισχυρισµός ορθότητας Ισχυρισµός: Εστω ότι (p, q)µε p Q, q R : d(p, q) < δ, όπου δ = min{d(p 1, q 1 ), d(p 2, q 2 )}. (6) Τότε: Α. p, q S y. Β. Τα p και q απέχουν µεταξύ τους το πολύ 7 ϑέσεις στο S y. Αν ο ισχυρισµός είναι ορθός τότε ισχύουν τα ακόλουθα δύο πορίσµατα. Πόρισµα 1 Αν το πλησιέστερο Ϲεύγος σηµείων είναι ένα διαχωρισµένο Ϲεύγος τότε ο ClosestSplitPair το ϐρίσκει. Πόρισµα 2 Ο ClosestPair είναι ορθός και τρέχει σε χρόνο O(nlogn). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

65 Πλησιέστερο Ϲεύγος σηµείων Απόδειξη του ισχυρισµού ορθότητας (Α) Εστω p = (x 1, y 1) Q, q = (x 2, y 2) R και d(p, q) < δ. Αφού d(p, q) < δ έχουµε x 1 x 2 < δ και y 1 y 2 < δ. (7) < δ x δ x 1 x x 2 x +δ Αλλά x 1 x x 2. (8) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

66 Πλησιέστερο Ϲεύγος σηµείων Απόδειξη του ισχυρισµού ορθότητας (Α) Ετσι από (7) (8) έχουµε x x 1 x 2 x 1 < δ, (9) Από (9) και (10) έχουµε x 2 x x 2 x 1 < δ (10) x δ < x 1 (11) και x 2 < x +δ (12) οπότε οι (11) και (12) δηλώνουν ότι. p, q S y Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

67 Πλησιέστερο Ϲεύγος σηµείων Απόδειξη του ισχυρισµού ορθότητας (Β) Εστω p = (x 1, y 1 ) και q = (x 2, y 2 ) διαχωρισµένο Ϲεύγος µε d(p, q) < δ. Θα δείξουµε ότι τα p, q απέχουν µεταξύ τους το πολύ 7 ϑέσεις στο S y. Σχεδιάζουµε 8 τετράγωνα πλευράς δ 2 µε κέντρο x και ϐάση min{y 1, y 2 }. Γραµµή L p δ min{y 1, y 2 } δ x δ q Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

68 Πλησιέστερο Ϲεύγος σηµείων Απόδειξη του ισχυρισµού ορθότητας (Β) Λήµµα 1: Ολα τα σηµεία του S y µε συντεταγµένη y µεταξύ των συντεταγµένων y των p και q, συµπεριλαµβανοµένων, ϐρίσκονται σε ένα από αυτά τα τετράγωνα. Απόδειξη: Αρχικά, έχουµε υποθέσει ότι οι συντεταγµένες y των p και q διαφέρουν το πολύ κατάδ. εύτερον, από τον ορισµό του S y, όλα έχουν συντεταγµένες x µεταξύ του x δ και x +δ. Γραµµή L p δ min{y 1, y 2 } δ x δ q Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

69 Πλησιέστερο Ϲεύγος σηµείων Απόδειξη του ισχυρισµού ορθότητας (Β) Λήµµα 2: Το πολύ 1 σηµείο του P ϐρίσκεται σε κάθε τετράγωνο. Απόδειξη: Με εις άτοπον απαγωγή. Εστω δύο σηµείαακαιβ ϐρίσκονται στο ίδιο τετράγωνο. Τότε: (i) Ταα,β ϐρίσκονται και τα δύο στο Q ή και τα δύο στο R. (ii) d(α,β) δ 2 2 < δ Οµως τα (i),(ii) έρχονται σε αντίθεση µε τον ορισµό του δ (η µικρότερη απόσταση µεταξύ Ϲεύγους σηµείων στο Q ή στο R). Ατοπο. Γραµµή L β α δ min{y 1, y 2 } δ δ x Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

70 Πλησιέστερο Ϲεύγος σηµείων Τελική ανακεφαλαίωση της απόδειξης Τα λήµµατα 1 και 2 εγγυώνται ότι στο παρακάτω σχήµα ϑα υπάρχουν το πολύ 8 σηµεία (συµπεριλαµβανοµένων των p και q). Αρα η ϑέση των p και q στο S y διαφέρει το πολύ κατά 7 ϑέσεις. Γραµµή L p δ min{y 1, y 2 } δ x δ q Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

71 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 1. Closest-Pair(P) 2. ηµιούργησε τα P x και P y 3. (p, q) =Closest-Pair-Rec(P x, P y ) Closest-Pair-Rec(P x, P y ) 6. αν P 3 τότε 7. Βρες το πλησιέστερο Ϲεύγος µε µέτρηση όλων των αποστάσεων των Ϲευγαριών ηµιούργησε τα Q x, Q y, R x, R y 10. (p 1, q 1 ) =Closest-Pair-Rec(Q x, Q y ) 11. (p 2, q 2 ) =Closest-Pair-Rec(R x, R y ) δ = min{d(p 1, q 1 ), d(p 2, q 2 )} 14. x = µέγιστη συντεταγµένη x ενός σηµείου του συνόλου Q Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

72 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 1. Closest-Pair(P) 2. ηµιούργησε τα P x και P y (χρόνος O(nlogn)) 3. (p, q) =Closest-Pair-Rec(P x, P y ) Closest-Pair-Rec(P x, P y ) 6. αν P 3 τότε 7. Βρες το πλησιέστερο Ϲεύγος µε µέτρηση όλων των αποστάσεων των Ϲευγαριών ηµιούργησε τα Q x, Q y, R x, R y 10. (p 1, q 1 ) =Closest-Pair-Rec(Q x, Q y ) 11. (p 2, q 2 ) =Closest-Pair-Rec(R x, R y ) δ = min{d(p 1, q 1 ), d(p 2, q 2 )} 14. x = µέγιστη συντεταγµένη x ενός σηµείου του συνόλου Q Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

73 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 1. Closest-Pair(P) 2. ηµιούργησε τα P x και P y (χρόνος O(nlogn)) 3. (p, q) =Closest-Pair-Rec(P x, P y ) Closest-Pair-Rec(P x, P y ) 6. αν P 3 τότε 7. Βρες το πλησιέστερο Ϲεύγος µε µέτρηση όλων των αποστάσεων των Ϲευγαριών (χρόνος O(1)) ηµιούργησε τα Q x, Q y, R x, R y 10. (p 1, q 1 ) =Closest-Pair-Rec(Q x, Q y ) 11. (p 2, q 2 ) =Closest-Pair-Rec(R x, R y ) δ = min{d(p 1, q 1 ), d(p 2, q 2 )} 14. x = µέγιστη συντεταγµένη x ενός σηµείου του συνόλου Q Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

74 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 1. Closest-Pair(P) 2. ηµιούργησε τα P x και P y (χρόνος O(nlogn)) 3. (p, q) =Closest-Pair-Rec(P x, P y ) Closest-Pair-Rec(P x, P y ) 6. αν P 3 τότε 7. Βρες το πλησιέστερο Ϲεύγος µε µέτρηση όλων των αποστάσεων των Ϲευγαριών (χρόνος O(1)) ηµιούργησε τα Q x, Q y, R x, R y (χρόνος O(n)) 10. (p 1, q 1 ) =Closest-Pair-Rec(Q x, Q y ) 11. (p 2, q 2 ) =Closest-Pair-Rec(R x, R y ) δ = min{d(p 1, q 1 ), d(p 2, q 2 )} 14. x = µέγιστη συντεταγµένη x ενός σηµείου του συνόλου Q Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

75 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 1. Closest-Pair(P) 2. ηµιούργησε τα P x και P y (χρόνος O(nlogn)) 3. (p, q) =Closest-Pair-Rec(P x, P y ) Closest-Pair-Rec(P x, P y ) 6. αν P 3 τότε 7. Βρες το πλησιέστερο Ϲεύγος µε µέτρηση όλων των αποστάσεων των Ϲευγαριών (χρόνος O(1)) ηµιούργησε τα Q x, Q y, R x, R y (χρόνος O(n)) 10. (p 1, q 1 ) =Closest-Pair-Rec(Q x, Q y ) 11. (p 2, q 2 ) =Closest-Pair-Rec(R x, R y ) δ = min{d(p 1, q 1 ), d(p 2, q 2 )} 14. x = µέγιστη συντεταγµένη x ενός σηµείου του συνόλου Q (χρ. O(n)) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

76 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 15. L = {(x, y) : x = x} 16. S = σηµεία του P µε απόσταση µέχριδ από τη γραµµή L 17. ηµιούργησε το S y 18. Για κάθε σηµείο q S y, υπολόγισε την απόσταση του q από τα επόµενα 7 σηµεία του S y ClosestSplitPair(P x, P y,δ) 19. Εστω p 3, q 3 το Ϲευγάρι που επιστρέφει η ClosestSplitPair που είναι το ελάχιστο αυτών των αποστάσεων Αν d(p 3, q 3 ) < δ τότε 22. Επίστρεψε(p 3, q 3 ) 23. Αλλιώς αν d(p 1, q 1 ) < d(p 2, q 2 ) τότε 24. Επίστρεψε(p 1, q 1 ) 25. Αλλιώς 26. Επίστρεψε(p 2, q 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

77 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 15. L = {(x, y) : x = x} 16. S = σηµεία του P µε απόσταση µέχριδ από τη γραµµή L 17. ηµιούργησε το S y (χρόνος O(n)) 18. Για κάθε σηµείο s S y, υπολόγισε την απόσταση του s από τα επόµενα 7 σηµεία του S y 19. Εστω p 3, q 3 ένα Ϲευγάρι που επιτυγχάνει το ελάχιστο αυτών των αποστάσεων Αν d(p 3, q 3 ) < δ τότε 22. Επίστρεψε(p 3, q 3 ) 23. Αλλιώς αν d(p 1, q 1 ) < d(p 2, q 2 ) τότε 24. Επίστρεψε(p 1, q 1 ) 25. Αλλιώς 26. Επίστρεψε(p 2, q 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

78 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 15. L = {(x, y) : x = x} 16. S = σηµεία του P µε απόσταση µέχριδ από τη γραµµή L 17. ηµιούργησε το S y (χρόνος O(n)) 18. Για κάθε σηµείο s S y, υπολόγισε την απόσταση του s από τα επόµενα 7 σηµεία του S y ( χρόνος O(n), το S y µπορεί να είναι= P) 19. Εστω p 3, q 3 ένα Ϲευγάρι που επιτυγχάνει το ελάχιστο αυτών των αποστάσεων Αν d(p 3, q 3 ) < δ τότε 22. Επίστρεψε(p 3, q 3 ) 23. Αλλιώς αν d(p 1, q 1 ) < d(p 2, q 2 ) τότε 24. Επίστρεψε(p 1, q 1 ) 25. Αλλιώς 26. Επίστρεψε(p 2, q 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

79 Πλησιέστερο Ϲεύγος σηµείων Αλγόριθµος 15. L = {(x, y) : x = x} 16. S = σηµεία του P µε απόσταση µέχριδ από τη γραµµή L 17. ηµιούργησε το S y (χρόνος O(n)) 18. Για κάθε σηµείο s S y, υπολόγισε την απόσταση του s από τα επόµενα 7 σηµεία του S y ( χρόνος O(n), το S y µπορεί να είναι= P) 19. Εστω p 3, q 3 ένα Ϲευγάρι που επιτυγχάνει το ελάχιστο αυτών των αποστάσεων (χρόνος O(1)) Αν d(p 3, q 3 ) < δ τότε 22. Επίστρεψε(p 3, q 3 ) 23. Αλλιώς αν d(p 1, q 1 ) < d(p 2, q 2 ) τότε 24. Επίστρεψε(p 1, q 1 ) 25. Αλλιώς 26. Επίστρεψε(p 2, q 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

80 Αναδροµή Η ακολουθία Fibonacci F(n) = { 1 if n = 0, n = 1, F(n 1)+F(n 2) if n > 1. Fibonacci (n) 1. f0 = 1 2. f1 = 1 3. for i = 3 to n do 4. temp = f0+f1 5. f0 = f1 6. f1 = temp 7. end for O(n) 8. return f Σχήµα: Επαναληπτικός Αλγόριθµος εύρεσης του n-οστού αριθµού Fibonacci. Η πολυπλοκότητα του επαναληπτικού αλγορίθµου είναι O(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

81 Απόδειξη Ορθότητας Αναδροµικών αλγορίθµων Πρόβληµα Να δοθεί αναδροµικός αλγόριθµος για την εύρεση του n-οστού αριθµού Fibonacci. Στην συνέχεια να αποδειχθεί η ορθότητά του. Λύση F n = F n 1 + F n 2, n 2 F 0 = F 1 = 1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

82 Απόδειξη Ορθότητας Αναδροµικών αλγορίθµων Αλγόριθµος Fib(n) 1 αν n = 0 ή 1 2 τότε 3 Fib 1 4 άλλως 5 Fib Fib(n 1)+ Fib(n 2) 6 επιστροφή Fib Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

83 Απόδειξη Ορθότητας Αναδροµικών αλγορίθµων Ορθότητα Με επαγωγή. Βάση. Για n = 0 έχουµε Fib(0) = 1 = F 0 ισχύει. Επαγωγικό βήµα. Υποθέτουµε ότι Fib(k) = F k για k < n και ϑα δείξουµε ότι Fib(n) = F n. Απόδειξη. Fib(n) = Fib(n 1)+Fib(n 2) = F n 1 + F n 2 = F n. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

84 Αναδροµή Πολυπλοκότητα του Αναδροµικού Αλγορίθµου T(n) = 1+T(n 1)+T(n 2) = 1+1+T(n 2)+T(n 3)+T(n 2) (n 3) T(n) 2T(n 2) 2 2 T(n 4)... 2 n 2 T(n 2 n 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

85 Αναδροµή Η ακολουθία Fibonacci Αρα ϑα έχουµε εάν n άρτιος και εάν n περιττός, οπότε τελικά T(n) 2 n 2 T(0) T(n) 2 n 1 2 T(1) T(n) 2 n 2, δεδοµένου ότι T(0) = T(1) = 1. Ο αναδροµικός αλγόριθµος έχει εκθετική πολυπλοκότητα ενώ ο επαναληπτικός πολυωνυµική Θ(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

86 Υψωση σε δύναµη Το πρόβληµα Για δεδοµένο αριθµό x και ακέραιο n 0 να υπολογιστεί το x n Απλός αλγόριθµος x x x x = x n, T(n) = Θ(n) ιαίρει και ϐασίλευε αλγόριθµος { x n x n/2 x n/2, για n άρτιο = x n 1 2 x n 1 2 x, για n περιττό T(n) = T ( n 2) +Θ(1) = Θ(log n) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

87 Αναδροµή Αριθµοί Fibonacci 0, για n = 0 F n = 1, για n = 1 F n 1 + F n 2, για n 2 Απλός αναδροµικός αλγόριθµος T(0) = 0, T(1) = 1 T(n) = T(n 1)+T(n 2)+1 (13) Επαναληπτικός Αλγόριθµος T(n) = Ω(ϕ n ), ϕ = T(n) = Θ(n) εκθετικός χρόνος! Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

88 Αναδροµή Αναδροµικός τετραγωνισµός ( Fn+1 F n F n F n 1 ) = ( ) n 1 1 T(n) = Θ(log n) λόγω ύψωσης σε δύναµη 1 0 Απόδειξη µε επαγωγή στο n Βάση n = 1 Βήµα ( Fn+1 F n F n F n 1 ( ) F2 F 1 = F 1 F 0 ) ( Fn F = n 1 = F n 1 F n 2 ) n ( ( ) ισχύει 1 0 )( ) 1 1 = 1 0 ( ) n 1 ( ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

89 Αναδροµή Πολλαπλασιασµός πινάκων ίνονται δυο n n πινάκες A = (a i,j ) και B = (b i,j ). Να υπολογιστεί το γινόµενο C = AB όπου Χρόνος εκτέλεσης Από την (14) έχουµε n 1 c i,j = a i,k b k,j (14) k=0 T(n) = Θ(n 3 ). (15) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

90 Αναδροµή Το 1969 ο Strassen πρότεινε έναν αλγόριθµο διαίρει και ϐασίλευε µε T(n) = Θ(n log 2 7 ). (16) ιαµερίζουµε τους πίνακες A και B σε τέσσερις(n/2) (n/2) υποπίνακες ως εξής [ ][ ] [ ] A00 A AB = 01 B00 B 01 A00 B = 00 + A 01 B 10 A 00 B 01 + A 01 B 11 (17) A 10 A 11 B 10 B 11 A 10 B 00 + A 11 B 10 A 10 B 01 + A 11 B 11 Για τον υπολογισµό του AB απαιτούνται, λόγω της (20), οκτώ πολλαπλασιασµοί (n/2) (n/2) πινάκων, δηλαδή ( n ) T(n) = 8T +?? (18) 2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

91 Αναδροµή Το 1969 ο Strassen πρότεινε έναν αλγόριθµο διαίρει και ϐασίλευε µε T(n) = Θ(n log 2 7 ). (19) ιαµερίζουµε τους πίνακες A και B σε τέσσερις(n/2) (n/2) υποπίνακες ως εξής [ ][ ] [ ] A00 A AB = 01 B00 B 01 A00 B = 00 + A 01 B 10 A 00 B 01 + A 01 B 11 (20) A 10 A 11 B 10 B 11 A 10 B 00 + A 11 B 10 A 10 B 01 + A 11 B 11 Για τον υπολογισµό του AB απαιτούνται, λόγω της (20), οκτώ πολλαπλασιασµοί (n/2) (n/2) πινάκων, δηλαδή ( n ) T(n) = 8T +Θ(n 2 ) = Θ(n 3 ). (21) 2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

92 Αναδροµή Ο Strassen πρότεινε τον υπολογισµό του AB µε τους ακόλουθους επτά πολλαπλασιασµούς πινάκων. M 1 = (A 00 + A 11 )(B 00 + B 11 ) M 2 = (A 10 + A 11 )B 00 M 3 = A 00 (B 01 B 11 ) M 4 = A 11 (B 10 B 00 ) (22) M 5 = (A 00 + A 01 )B 11 M 6 = (A 10 A 00 )(B 00 + B 01 ) M 7 = (A 01 A 11 )(B 10 + B 11 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

93 Αναδροµή Τότε [ ] M1 + M AB = 4 M 5 + M 7 M 3 + M 5 M 2 + M 4 M 1 + M 3 M 2 + M 6 Από τις (22) και (23) έχουµε ( n ) T(n) = 7T +Θ(n 2 ), n > 1 (24) 2 T(1) = 1 Επιλύοντας την (24) µε τη µέθοδό της αντικατάστασης έχουµε (23) T(n) = Θ(n log 2 7 ). (25) Επειδή n log 2 7 = 2.81 συνεπάγεται ότι ο αλγόριθµος του Strassen είναι σηµαντικά καλύτερος από τον κλασικό αλγόριθµό πολυπλοκότητας Θ(n 3 ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

94 Αναδροµή Οι τύποι (22) και (23) του Strassen έχουν 18 προσθέσεις (ή αφαιρέσεις). Ο Winograd ανακάλυψε το ακόλουθο σύνολο τύπων που απαιτεί, για τον υπολογισµό 2 2πινάκων, µόνο 15 προσθέσεις (ή αφαιρέσεις) διατηρώντας το ίδιο πλήθος (επτά) πολλαπλασιασµών M 1 = (A 10 + A 11 A 00 )(B 11 B 01 + B 00 ) M 2 = A 00 B 00 M 3 = A 01 B 10 M 4 = (A 00 A 10 )(B 11 B 01 ) (26) M 5 = (A 10 + A 11 )(B 01 B 00 ) M 6 = (A 01 A 10 + A 00 A 11 )B 11 M 7 = A 11 (B 00 + B 11 B 01 B 10 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

95 Αναδροµή Τότε [ AB = M 2 + M 3 M 1 + M 2 + M 5 + M 6 M 1 + M 2 + M 4 M 7 M 1 + M 2 + M 4 + M 5 ] (27) Αν και η (27) απαιτεί 24 προσθέσεις (ή αφαιρέσεις) µπορεί να αποδειχθεί ότι χρειάζεται µόνο 15 προσθέσεις. Συνεπώς έχουµε τρεις λιγότερες προσθέσεις (ή αφαιρέσεις) από τους τύπους του Strassen ενώ το πλήθος των πολλαπλασιασµών παραµένει επτά. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

96 Αναδροµή Η µέθοδος ϐασίζεται στην ακόλουθη ταυτότητα για διανύσµατα τάξης n n/2 n/2 n/2 x T y = (x 2i 1 + y 2i )(x 2i + y 2i 1 ) x 2i 1 x 2i y 2i 1 y 2i. (28) i=1 Οταν εφαρµοστεί (28) στον πολλαπλασιασµό AB µε x µια γραµµή του A και y µια στήλη του B, το δεύτερο και τρίτο άθροισµα είναι κοινό στα άλλα εσωτερικά γινόµενα, τα οποία σχηµατίζονται από την x γραµµή ή y στήλη και κατά συνέπεια υπολογίζονται µια ϕορά και στη συνέχεια επαναχρησιµοποιούνται. i=1 i=1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

97 Αναδροµή Αν n είναι άρτιος και [ ] A00 A A = 01 R n n, A i,j R (n/2) (n/2) A 10 A 11 τότε ο υπολογισµός του A 1 δίνεται από τον ακόλουθο τύπο [ ] A 1 P1 P = 3 P 6 P 2 P 3 P 6 P 6 P 2 P 6 (29) όπου P 1 = A 1 00 P 2 = A 10 P 1 P 3 = P 1 A 01 P 4 = A 10 P 3 P 5 = P 4 A 11 P 6 = P 1 5. Οι πολλαπλασιασµοί πινάκων εκτελούνται µε την µέθοδο του Strassen και οι υπολογισµοί των αντιστρόφων των P 1 και P 6 γίνονται µε την αναδροµική κλήση της ίδιας της παρούσας µεθόδου. (30) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

98 Ασκηση Να επαληθευθεί η ισχύς των (29),(30) µε την χρήση µιας LU παραγοντοποίησης του A και να αποδειχθεί ότι T(n) = Θ(n log 2 7 ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

99 Αναδροµή Ο αλγόριθµος Min-Max Το πρόβληµα της εύρεσης του µέγιστου και του ελάχιστου στοιχείου ενός πίνακα A µε n στοιχεία. MinMax (A) 1. min = a 1 2. max = a 1 3. for i = 2 to n do 4. if a i > max then 5. max = a i 6. else if a i < min then 7. min = a i 8. end if 9. end for Σχήµα: Αλγόριθµος εύρεσης του µέγιστου και του ελάχιστου στοιχείου ενός πίνακα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

100 Αναδροµή Ο αλγόριθµος Min-Max Στη χείριστη περίπτωση, όπου τα στοιχεία του πίνακα ϑα είναι ταξινοµηµένα σε ϕθίνουσα σειρά η ακριβής πολυπλοκότητα χρόνου ϑα είναι 3(n 1), Στην περίπτωση όπου τα στοιχεία του πίνακα είναι ταξινοµηµένα σε αύξουσα σειρά η ακριβής πολυπλοκότητα ϑα είναι 2(n 1), Συνολικά ϑα έχουµεθ(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

101 Αναδροµή Ο αλγόριθµος Min-Max MinMax (A, i, j, min, max) 1. if i j 1 then 2. if a i < a j then 3. max = a j 4. min = a i 5. else 6. max = a i 7. min = a j 8. end if 9. else 10. m = (i + j)/2 11. MinMax(A, i, m, min 1, max 1) 12. MinMax(A, m, j, min 2, max 2) 13. min = fmin(min 1, min 2) 14. max = fmax(max 1, max 2) 15. end if Σχήµα: Αναδροµικός Αλγόριθµος εύρεσης του µέγιστου και του ελάχιστου στοιχείου ενός πίνακα Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

102 Αναδροµή Ο αλγόριθµος Min-Max Ο έλεγχος i j 1 καλύπτει τις δύο περιπτώσεις i = j και i = j 1 Οι συναρτήσεις fmax() και fmin() απαιτούν µία σύγκριση η κάθε µία για την εύρεση του µέγιστου ή του ελάχιστου (αντίστοιχα) µεταξύ δύο στοιχείων. { 2 if n = 2 or n = 1, T(n) = 2T( n )+3 if n > 2. 2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

103 Αναδροµή Ο αλγόριθµος Min-Max T(n) = 2T( n 2 )+3 = 2[2T( n 2 2)+3]+3 = 22 T( n 2 2) = 2 2 [2T( n 2 3)+3] = 23 T( n 2 3) =... = 2 k 1 T( n 2 k 1)+2k Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

104 Αναδροµή Ο αλγόριθµος Min-Max και εποµένως αν n = 2 k έχουµε T(n) = n 2 T(2)+[2k ] 3 = n+3 2 k 1 3 = n+3 n 2 3 = 5 n 2 3 Η ακριβής πολυπλοκότητα του αναδροµικού αλγορίθµου είναι µικρότερη από την αντίστοιχη του επαναληπτικού, σε αντίθεση µε το πρόβληµα των αριθµών Fibonacci Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

105 Αναδροµή QuickSort Αλγόριθµος ταξινόµησης: δηµιουργήθηκε από τον C. A. R. Hoare στη χείριστη περίπτωσηθ(n 2 ) είναι συχνά η καλύτερη πρακτική επιλογή, γιατί είναι αποδοτικός στη µέση περίπτωσηθ(nlogn) έχει επίσης το πλεονέκτηµα να ταξινοµεί στον ίδιο πίνακα Η QuickSort και η MergeSort, ακολουθούν το Divide-and-Conquer. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

106 Αναδροµή QuickSort Divide: ιαµέριση του πίνακα A[p... r] σε δύο, πιθανώς κενούς, υποπίνακες A[p...q 1] και A[q r]. ιαµερίζοντας, ϐρίσκουµε τη ϑέση του A[q] στον πίνακα A[p... r]. Conquer: Ταξινόµηση των δύο υποπινάκων A[p...q 1] και A[q r] µε αναδροµικές κλήσεις της QuickSort. Combine: Αφού οι υποπίνακες ταξινοµούνται στον ίδιο πίνακα δε χρειάζεται παραπάνω εργασία για να συνδυάσουµε τις λύσεις µε τους υποπίνακες. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

107 Αναδροµή Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

108 Αναδροµή Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

109 Αναδροµή Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

110 Αναδροµή Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

111 Αναδροµή Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

112 Αναδροµή QuickSort QuickSort (A, p, r) 1. if p < r then 2. q =Partition(A, p, r) 3. QuickSort (A, p, q 1) 4. QuickSort (A, q + 1, r) 5. end if Σχήµα: ΑλγόριθµοςQuicksort Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

113 Αναδροµή QuickSort Το κλειδί είναι η διαδικασία της διαµέρισης (Partition) Pαρτιτιον(A, p, r) 1. x = A[r] 2. i = p 1 3. for j = p to r 1 do 4. if A[j] x 5. i = i swap(a[i], A[j]) 7. end if 8. end for 9. swap(a[i + 1], A[r]) 10. return i + 1 Σχήµα: ιαδικασία διαµέρισης µε ϐάση το οδηγό στοιχείο. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

114 ιαµέριση του Hoare(A,p,r) x = A[r] i = p 1 j = r + 1 while(true) repeat j = j 1 until A[j] x repeat i = i + 1 until A[i] x if i < j then swap(a[i], A[j]) else return i end while p p x x i j r x j i r x Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

115 Medium of Three Partitioning i j i j i j j i Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

116 QuickSort Ορθότητα QuickSort Αν η διαµέριση ( Partition ) είναι ορθή, τότε Π(n)= Η QuickSort ταξινοµεί σωστά κάθε πίνακα µεγέθους n Απόδειξη µε επαγωγή 1. Βάση Κάθε πίνακας µεγέθους n = 1 είναι ήδη ταξινοµηµένος. Η QuickSort επιστρέφει τον πίνακα αυτό, συνεπώς ταξινοµεί σωστά τον πίνακα αυτό (τετριµένη περίπτωση). 2. Επαγωγικό ϐήµα Εστω ένας πίνακας µεγέθους n 2. Θα δείξουµε ότι αν η Π(k) ισχύει για κάθε k < n, τότε ισχύει και η Π(n). Η διαµέριση είναι ορθή, λόγω της υπόθεσης, και έχει σαν αποτέλεσµα: Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

117 QuickSort Απόδειξη µε επαγωγή Εστω k 1, k 2 τα µεγέθη του 1 ου και 2 ου τµήµατος αντίστοιχα, µε k 1, k 2 < n. Από την επαγωγική υπόθεση έχουµε ότι Π(k 1 ) και Π(k 2 ) ισχύουν, δηλαδή ότι το 1 ο και 2 ο τµήµα έχουν ταξινοµηθεί σωστά. Συνεπώς, µετά τις αναδροµικές κλήσεις ολόκληρος ο πίνακας ϑα έχει ταξινοµηθεί σωστά. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

118 Medium of Three Partitioning (συν.) Υποθέστε ότι όλα τα κλειδιά είναι ίσα µε το οδηγό. Ερώτηση: Ο i ϑα σταµατήσει όταν συναντήσει ένα κλειδί ίσο µε το οδηγό ; O j ϑα σταµατήσει όταν συναντήσει ένα κλειδί ίσο µε το οδηγό ; Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

119 Ανάλυση T(n) = T(q 1)+T(n q)+θ(n), q [1, n] (31) Χείριστη Περίπτωση Αν A[1..n] ταξινοµηµένος Για q = 1 η (31) δίνει: T(n) = T(0)+T(n 1)+Θ(n), n > 1 ή αφού T(0) = 0 T(n) = T(n 1)+Θ(n) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

120 Αναδροµή QuickSort ιαµέριση Χείριστης Περίπτωσης χωρίζει τον πίνακα µεγέθους n σε 2 υποπίνακες µεγέθους n 1 και 0 στοιχείων. Η διαµέριση κοστίζει Θ(n) χρόνο. T(n) = T(n 1) + T(0) + Θ(n) = T(n 1) + Θ(n) = Θ(n 2 ) Εποµένως T(n) = Θ(n 2 ). Συµβαίνει µόνο όταν η είσοδος είναι ένας ήδη ταξινοµηµένος πίνακας. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

121 Αναδροµή QuickSort ιαµέριση Βέλτιστης Περίπτωσης Η διαδικασία Partition δηµιουργεί δύο υποπροβλήµατα, το ένα υποπρόβληµα ϑα είναι µεγέθους n/2, το άλλο µεγέθους n/2 1. T(n) 2T(n/2)+Θ(n) T(n) = O(nlogn). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

122 Ανάλυση(συν.) Μέση Περίπτωση Υπόθεση: Η πιθανότητα να επιλεγεί ως οδηγό στοιχείο οποιοδήποτε συγκεκριµένο στοιχείο είναι 1/n C µπ = d D p(d)κόστος(d) ή T(n) = 1 n n [T(q 1)+T(n q)]+cn q=1 T(n) = 2 n 1 T(q)+cn (1) n q=1 Πολλαπλασιάζοντας την (1) επί n έχουµε: n 1 nt(n) = 2 T(q)+cn 2 (32) q=1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

123 Ανάλυση(συν.) Μέση Περίπτωση (συν.) για n = n 1η(32) δίνει Αφαιρώντας την (32) από την (33) ή (αγνοώντας το c) n 2 (n 1)T(n 1) = 2 T(q)+c(n 1) 2 (33) q=1 nt(n) (n 1)T(n 1) = 2T(n 1)+2cn c ιαιρώντας την (34) δια n(n + 1) έχουµε: nt(n) = (n+1)t(n 1)+2cn (34) T(n) n+1 = T(n 1) + 2c n n+1 (35) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

124 Ανάλυση(συν.) Μέση Περίπτωση (συν.) Για διαφορετικές τιµές του n = n 1, n 2, η (35) δίνει T(n 1) T(n 2) = + 2c n n 1 n T(n 2) T(n 3) = + 2c n 1 n 2 n 1.. T(2) προσθέτοντας κατά µέλη προκύπτει: 3 T(n) n+1 = T(1) 2 = T(1) 2 + 2c 3 n c i, T(1) = 1 i=3 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

125 Αναδροµή ένδρα Απόφασης a 1 > a 2 a 2 > a 3 a 1 > a 3 1, 2, 3 a 1 > a 3 2, 1, 3 a 2 > a 3 1, 3, 2 3, 1, 2 2, 3, 1 3, 2, 1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

126 Αναδροµή ένδρα Απόφασης Κάθε δένδρο απόφασης έχει n! ϕύλλα, όσες οι δυνατές µεταθέσεις των n στοιχείων. Το ύψος h ενός τέτοιου δένδρου είναι h log 2 (n!). Από τον τύπο του Stirling n! = ( n ) ( n (2πn) 1+ 1 ) e 12n + o(1 n ) και εποµένως ( (2πn) ( n ) ( n log 2 (n!) = log )) e 12n + o(1 n ) = n log 2 n n log 2 e+ 1 2 log 2 n+ 1 ( 2 log 2 2π + log ( )) 1 12n + o n τελικά h = Ω(n log n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

127 Αναδροµή ένδρα Απόφασης Ακολουθώντας µια διαδροµή στο δένδρο µπορούµε να έχουµε µια ταξινόµηση των n στοιχείων. Εποµένως η ταξινόµηση n στοιχείων ϐασισµένη σε συγκρίσεις των στοιχείων ανά δύο, απαιτεί Ω(n log n) συγκρίσεις. Συµπεραίνουµε ότι οι αλγόριθµοι ταξινόµησης µε σωρό µε συγχώνευση µε διχοτοµική εισαγωγή αγνοώντας τις καταχωρήσεις είναι ϐέλτιστοι αλγόριθµοι στην χείριστη περίπτωση. Αντίθετα ο αλγόριθµος QuickSort δεν είναι ϐέλτιστος στην χείριστη περίπτωση είναι ϐέλτιστος ως προς την κατά µέσο όρο πολυπλοκότητα. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

128 Αναδροµικές Μέθοδος Πρόβλεψης 1 Πρόβλεψη 2 Επαγωγή Παράδειγµα Πρόβλεψη: T(n) = O(n 3 ) Επαγωγή: T(k) = O(k 3 ) T(k) ck 3 για k < n T(n) = 4T(n/2)+n T(1) = Θ(1) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

129 Αναδροµικές Μέθοδος Πρόβλεψης (συν.) Απόδειξη για k = n T(n) = 4T(n/2)+n T(n) 4[c(n/2) 3 ]+n = 1 2 cn3 + n ( ) 1 = cn 3 2 cn3 n cn 3 αν 1 2 cn3 n 0 ή 1 2 cn2 1 0 ή c 2 n 2 ή c 2 n n 0 = 1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

130 Αναδροµικές Μέθοδος Πρόβλεψης (συν.) Προσοχή Αν T(n) = O(n 2 ) τότε T(k) ck 2 T(n) = 4T(n/2)+n 4[c(n/2) 2 ]+n = cn 2 + n = cn 2 ( n) cn 2 ;;; T(k) c 1 k 2 c 2 k, k < n Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

131 Αναδροµή The Master Theorem Μία συνάρτηση f(n) είναι πολυωνυµικά ϕραγµένη αν f(n) = O(n k ) για κάποια σταθερά k. Κάθε εκθετική συνάρτηση µε ϐάση µεγαλύτερη του 1 αυξάνεται γρηγορότερα από κάθε πολυωνυµική συνάρτηση. Για a και b σταθερές, µε a > 1, ότι: n b lim n a = n 0 nb = o(a n ). Η f(n) είναι πολυλογαριθµικά ϕραγµένη αν f(n) = O(log k n) για κάποια σταθερά k. Κάθε ϑετική πολυωνυµική συνάρτηση αυξάνεται γρηγορότερα από κάθε πολυλογαριθµική συνάρτηση. για k και b ϑετικές σταθερές log k n lim = n n b 0 log k (n) = o(n b ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

132 Αναδροµή Θεώρηµα Κυρίαρχου Ορου The Master Theorem Ας ϑεωρήσουµε την T(n) = at( n b )+f(n) όπου a 1 και b > 1 και f(n) µια ασυµπτωτική ϑετική συνάρτηση µε το n b εννοούµε n b ή n b. Theorem Η T(n) ϕράσσεται ασυµπτωτικά ως εξής: 1 Εάν f(n) = O(n log b a ǫ ) για κάποια σταθεράǫ > 0 τότε T(n) = Θ(n log b a ). 2 Εάν f(n) = Θ(n log b a ) τότε T(n) = Θ(n log b a lg n). 3 Εάν f(n) = Ω(n log b a+ǫ ) για κάποια σταθεράǫ > 0 και εάν af( n b ) cf(n) για κάποια σταθερά c < 1 και όλα τα αρκετά µεγάλα n τότε T(n) = Θ(f(n)). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

133 Αναδροµή The Master Theorem Συγκρίνουµε τη συνάρτηση f(n) µε τη συνάρτηση n log b a. ιαισθητικά, η λύση της αναδροµικής εξίσωσης καθορίζεται από την µεγαλύτερη από τις δύο αυτές συναρτήσεις. Στην πρώτη περίπτωση του ϑεωρήµατος, η συνάρτηση f(n) δεν πρέπει απλά να είναι µικρότερη, πρέπει να είναι πολυωνυµικά µικρότερη από την n log b a. Στην τρίτη περίπτωση η f(n) πρέπει επίσης να είναι πολυωνυµικά µεγαλύτερη από την n log b a πρέπει να ικανοποιεί και την συνθήκη κανονικότητας af( n b ) cf(n) οι τρεις περιπτώσεις δεν καλύπτουν όλες τις πιθανές εκδοχές για τη συνάρτηση f(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

134 Η Απόδειξη για υνάµεις του b Λήµµα 1 Εστω a 1 και b > 1 σταθερές και f(n) µια µη αρνητική συνάρτηση που ορίζεται για δυνάµεις του b. Αν η T(n) ορίζεται για δυνάµεις του b από την αναδροµική σχέση { Θ(1), εάν n = 1, T(n) at(n/b)+f(n), εάν n = b i, όπου i ϑετικός ακέραιος, τότε log b n 1 T(n) = Θ(n log b a )+ a j f(n/b j ) j=0 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

135 Η Απόδειξη για υνάµεις του b Λήµµα1, Απόδειξη Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

136 Η Απόδειξη για υνάµεις του b Λήµµα 2 Εστω a 1 και b > 1 σταθερές και f(n) µια µη αρνητική συνάρτηση που ορίζεται για δυνάµεις του b. Στην περίπτωση αυτή, µια συνάρτηση g(n) που ορίζεται επί των δυνάµεων του b µέσω του αθροίσµατος g(n) = log b n 1 j=0 a j f(n/b j ) ϕράσσεται ασυµπτωτικά για δυνάµεις του b ως εξής: 1 Αν f(n) = O(n log b a ǫ ) για κάποια σταθεράǫ > 0, τότε g(n) = O(n log b a ) 2 Αν f(n) = Θ(n log b a ), τότε g(n) = Θ(n log b a lgn) 3 Αν af(n/b) cf(n) για κάποια σταθερά c < 1 και για όλα τα n b, τότε g(n) = Θ(f(n)) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου / 170

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 2 ιαίρει και Βασίλευε Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 2 1 / 140 ιαίρει και Βασίλευε

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 1 / 20 Επιλογή Το πρόβληµα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)

Διαβάστε περισσότερα

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους.

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 4: Αναδρομικές σχέσεις και ανάλυση αλγορίθμων Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 2 ιαίρει και Βασίλευε Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 2 1 / 24 Επιλογή Το πρόβληµα

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3.0 Σταύρος Δ. Νικολόπουλος 0-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Διαίρει και Βασίλευε Quick-sort και Merge-sort

Διαβάστε περισσότερα

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/courses/algorithms/ auth 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο του προβλήματος

Διαβάστε περισσότερα

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

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

Διαβάστε περισσότερα

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1 Διαίρει-και-Βασίλευε Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική μέθοδος

Διαβάστε περισσότερα

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

1η Σειρά Γραπτών Ασκήσεων 1/20 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 1η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 2 3 4 5 2/20

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου 2015 1 / 53 Περιεχόµενα

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 1 / 45 Εισαγωγή Ο δυναµικός

Διαβάστε περισσότερα

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Πολλαπλασιασμός μεγάλων ακεραίων (1) Για να πολλαπλασιάσουμε δύο ακεραίους με n 1 και n 2 ψηφία με το χέρι, θα εκτελέσουμε n 1 n 2 πράξεις πολλαπλασιασμού Πρόβλημα ρβημ όταν έχουμε πολλά ψηφία: A = 12345678901357986429

Διαβάστε περισσότερα

Τεχνικές Σχεδιασμού Αλγορίθμων

Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Διαίρει και Βασίλευε Δυναμικός Προγραμματισμός Απληστία Π. Μποζάνης ΤHMMY - Αλγόριθμοι 2014-2015 1 Διαίρει και Βασίλευε Βασικά Βήματα Διαίρει: Κατάτμηση του αρχικού προβλήματος

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 9 ο Ταξινόµηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ταξινόµηση Εισαγωγή Selection sort Insertion sort Bubble sort

Διαβάστε περισσότερα

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

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

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή

Διαβάστε περισσότερα

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Κατ οίκον Εργασία 2 Σκελετοί Λύσεων 1. (α) Αλγόριθµος: ηµιούργησε το σύνολο P που αποτελείται από τα άκρα όλων των ευθυγράµµων τµηµάτων. Βρες το κυρτό περίβληµα του P µε τον αλγόριθµο του Graham. Ορθότητα:

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(n), Ω(n), Θ(n) Ανάλυση Πολυπλοκότητας Αλγορίθµων

Διαβάστε περισσότερα

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1 ιαίρει και Βασίλευε Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Η Μέθοδος Σχεδιασµού Αλγορίθµων ιαίρει και Βασίλευε Επίλυση Αναδροµικών Εξισώσεων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα - ιαίρει και Βασίλευε

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

Διαβάστε περισσότερα

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

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις Γενικό πλάνο Μαθηµατικά για Πληροφορική 6ο Μάθηµα 1 Ανάλυση αλγορίθµων Ηλίας Κουτσουπιάς, Γιάννης Εµίρης 2 Συµβολισµοί O, Ω και Θ Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 27/11/2008 3

Διαβάστε περισσότερα

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

Μαθηµατικά για Πληροφορική Μαθηµατικά για Πληροφορική 6ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 27/11/2008 27/11/2008 1 / 55 Γενικό πλάνο 1 Ανάλυση αλγορίθµων 2 Συµβολισµοί

Διαβάστε περισσότερα

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Mergesort Κεφάλαιο 8 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική ταξινόµηση

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 1 Εισαγωγικές έννοιες Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 1 / 57 Περιεχόµενα 1.

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

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

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι Πρόβλημα Ταξινόμησης Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Είσοδος : ακολουθία n αριθμών (α 1, α 2,..., α n

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Η Μέθοδος «Διαίρει & Βασίλευε» Η Μέθοδος

Διαβάστε περισσότερα

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/~gounaris/courses/ad auth gounaris/courses/ad 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 28 Μαΐου 2015 1 / 17 Μέγιστη Κοινή Υπακολουθία

Διαβάστε περισσότερα

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 4 Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Διαίρει και Βασίλευε (Divide-and-Conquer) Διαίρει-και-βασίλευε (γενικά) Χωρίζουµε

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα.0 Σταύρος Δ. Νικολόπουλος 06-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Ταξινόμηση Selection-Sort Bubble-Sort και

Διαβάστε περισσότερα

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: υναµικός Προγραµµατισµός Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε υναµικό Προγραµµατισµό Το πρόβληµα του πολλαπλασιασµού πινάκων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3- υναµικός

Διαβάστε περισσότερα

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Γ. MergeSort Ταξινόμηση με Συγχώνευση Δ. BucketSort Ταξινόμηση με Κάδους Διδάσκων:

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

Διαβάστε περισσότερα

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

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Στοιχείο διαχωρισµού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr Αλγόριθµοι

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: υναµικός Προγραµµατισµός Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε υναµικό Προγραµµατισµό Το πρόβληµα του πολλαπλασιασµού πινάκων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3- υναµικός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός

Διαβάστε περισσότερα

ΗΥ240 - Παναγιώτα Φατούρου 2

ΗΥ240 - Παναγιώτα Φατούρου 2 Ενότητα 8 Ταξινόµηση ΗΥ0 - Παναγιώτα Φατούρου Ταξινόµηση Θεωρούµε έναν πίνακα Α[0..n-] µε n στοιχεία στα οποία έχει ορισθεί µια γραµµική διάταξη, δηλαδή ζεύγος στοιχείων x,y του Α, είτε x < y, ή x > y

Διαβάστε περισσότερα

Ταξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Στατιστικά Διάταξης. Στατιστικά σε Μέσο Γραμμικό Χρόνο Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Στατιστικά Διάταξης Με τον όρο στατιστικά διάταξης (order statistics) εννοούμε την περίπτωση

Διαβάστε περισσότερα

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

Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Quicksort Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 6] Στοιχείο διαχωρισμού (pivot),

Διαβάστε περισσότερα

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2 ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Τµηµα Β Λυσεις Ασκησεων - Φυλλαδιο ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt016/nt016.html Πέµπτη 7 Οκτωβρίου 016 Ασκηση 1. Βρείτε όλους

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 4: Διαίρει και Βασίλευε Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2 ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο ιδασκοντες: Ν. Μαρµαρίδης - Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt014/nt014.html https://sites.google.com/site/maths4edu/home/14

Διαβάστε περισσότερα

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ ΕΝΟΤΗΤΑ 1 ΕΙΣΑΓΩΓΗ 1 εδοµένα Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν σε έναν υπολογιστή Υπολογιστικό Μοντέλο ένας επεξεργαστής και µεγάλος

Διαβάστε περισσότερα

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου Ημερομηνία Υποβολής:

Διαβάστε περισσότερα

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1, Κεφάλαιο 4 Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Διαίρει και Βασίλευε (Divide-and-Conquer) Διαίρει-και-βασίλευε

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 5 υναµικός Προγραµµατισµός Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 5 1 / 49 Εισαγωγή

Διαβάστε περισσότερα

Αλγόριθµοι Divide-and- Conquer

Αλγόριθµοι Divide-and- Conquer Αλγόριθµοι Divide-and- Conquer Περίληψη Αλγόριθµοι Divide-and-Conquer Master Theorem Παραδείγµατα Αναζήτηση Ταξινόµηση Πλησιέστερα σηµεία Convex Hull Αλγόριθµοι Divide-and-Conquer Γενική Μεθοδολογία Το

Διαβάστε περισσότερα

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

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 2.0 Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Πολυπλοκότητα Αναδρομικές Σχέσεις Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων

Διαβάστε περισσότερα

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου

Διαβάστε περισσότερα

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

Quicksort. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Quicksort ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 62] Στοιχείο διαχωρισμού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση

Διαβάστε περισσότερα

Τηλ , Fax: , URL:

Τηλ , Fax: , URL: Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου faturu@cs.uoi.gr Σεπτέµβριος, 2005 Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ. +30 26510 98808, Fax:

Διαβάστε περισσότερα

1o Φροντιστήριο ΗΥ240

1o Φροντιστήριο ΗΥ240 1o Φροντιστήριο ΗΥ240 Άσκηση 1 Αποδείξτε τη μεταβατική και τη συμμετρική ιδιότητα του Θ Μεταβατική Ιδιότητα (ορισμός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)) Για να ισχύει f(n)= Θ(h(n))

Διαβάστε περισσότερα

Αλγόριθμοι ταξινόμησης

Αλγόριθμοι ταξινόμησης Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης BuubleSort, SelectionSort, InsertionSort, Merger Sort, Quick Soft ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης: Α. SelectoSort Ταξινόμηση με Επιλογή Β. IsertoSort Ταξινόμηση με Εισαγωγή Γ. MergeSort

Διαβάστε περισσότερα

a 1 a 2 a n. 3. i = j 1 5. A[i + 1] = A[i] 6. i = i 1

a 1 a 2 a n. 3. i = j 1 5. A[i + 1] = A[i] 6. i = i 1 Εισαγωγη στον Σχεδιασμο και Αναλυση αλγοριθμων Αλγοριθμοι Ταξινομησης Η ταξινόμηση μιας ακολουθίας αριθμών είναι από τα βασικά αποτελέσματα της θεωρίας αλγορίθμων. Μια ευρεία γκάμα τέτοιων αλγορίθμων έχουν

Διαβάστε περισσότερα

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό. Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» Κεφάλαιο : Ακολουθίες πραγµατικών αριθµών Α Οµάδα Εξετάστε αν οι παρακάτω προτάσεις είναι αληθείς ή ψευδείς αιτιολογήστε πλήρως την απάντησή σας α Κάθε

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 9: Στατιστικά Διάταξης- Στατιστικά σε Μέσο Γραμμικό Χρόνο Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1 Πρόβληµα Επιλογής Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1 Πρόβληµα Επιλογής Πίνακας Α[ Αριθµός k, 1 k n. ] µε n στοιχεία (όχι ταξινοµηµένος). Υπολογισµός του k-οστού µικρότερου στοιχείου (στοιχείο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό

Διαβάστε περισσότερα

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 31 Μαΐου 2019 1 / 10 Ελάχιστα τετράγωνα

Διαβάστε περισσότερα

Ευχαριστίες. Β. Ζησιμόπουλος

Ευχαριστίες. Β. Ζησιμόπουλος ÂÆÁÃÇÃ ÁÃ ÈÇ ÁËÌÊÁ ÃÇÈ Æ ÈÁËÌÀÅÁÇ ÂÀÆÏÆ ÌÅÀÅ ÈÄÀÊÇ ÇÊÁÃÀËÃ ÁÌÀÄ ÈÁÃÇÁÆÏÆÁÏÆ ÌÇÅ ËÂ ÏÊÀÌÁÃÀËÈÄÀÊÇ ÇÊÁÃÀË Ð Ö ÑÓ ÈÓÐÙÔÐÓ Ø Ø º Ñ ÔÓÙÐÓ Ò ¾¼¼ Ευχαριστίες Ευχαριστώ θερμά τους συνεργάτες μου στο Τμήμα Πληροφορικής

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης Δοµές Δεδοµένων 10η Διάλεξη Ταξινόµηση E. Μαρκάκης Περίληψη Ταξινόµηση µε αριθµοδείκτη κλειδιού Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, σελ. 55-62 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 5) Δυαδική αναζήτηση

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 2: Ανάλυση Αλγορίθμων. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 2: Ανάλυση Αλγορίθμων. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 2: Ανάλυση Αλγορίθμων Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 1 Αλγόριθμοι και Πολυπλοκότητα Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Εισαγωγή Ας ξεκινήσουμε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Επιλογή. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Επιλογή ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πρόβλημα Επιλογής Πίνακας Α[]με n στοιχεία (όχι ταξινομημένος). Αριθμός k, 1 k n. Υπολογισμός

Διαβάστε περισσότερα