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

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

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

Transcript

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

2 Επιλογή Γρήγορη Επιλογή Αλγόριθμοι Επιλογής

3 Αλγόριθμοι Επιλογής Ας Ξεκινήσουμε με ένα «Απλό» Ερώτημα! Γνωρίζουμε αλγορίθμους επιλογής? Έχουμε διδαχθεί, έως τώρα, κάποιον αλγόριθμο επιλογής? ΝΑΙ!!! Αλγόριθμο υπολογισμού του Min ή Max στοιχείου ενός συνόλου n-1 συγκρίσεις!!! Αλγόριθμο υπολογισμού του 2-ου Min ή 2-ου Max στοιχείου ενός συνόλου 2n-3 συγκρίσεις!!!??????

4 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Μπορούμε με να βρούμε το 2ο Min (ή 2ο Max) με λιγότερες από 2n-3 συγκρίσεις (2 φορές εφαρμογή του findmin)?? < 2n-3 Για να απαντήσουμε ΝΑΙ θα πρέπει : Να μελετήσουμε το πρόβλημα και να βρούμε ιδιότητες που ισχύουν!!! Να επινοήσουμε μια καλή αλγοριθμική τεχνική ή ακόμα συνδυασμό τεχνικών!!! Και φυσικά να έχουμε την «καλή» Ιδέα!!!!!!!!!

5 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Kατά τον υπολογισμό του 1ου Min (ή 1ου Max), τι μπορούμε να παρατηρήσουμε ότι ισχύει? L(1), L(2), L(3), L(4), L(5) Συγκρίσεις Νικητής Αρχικά: Min (ή Μax) = L(1) L(1), L(2) L(1) L(1), L(3) L(1) L(1), L(4) L(4) L(4), L(5) L(4) Τo 2o Min (ή 2o Max) = L(5) ή L(1) Min (ή Μax) = L(4) L(5) και L(1) είναι τα στοιχεία που «έχασαν» από τον νικητή!!!

6 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Kατά τον υπολογισμό του 1ου Min (ή 1ου Max), τι μπορούμε να παρατηρήσουμε ότι ισχύει? L(1), L(2), L(3), L(4), L(5) Συγκρίσεις Νικητής Αρχικά: Min (ή Μax) = L(1) L(1), L(2) L(1) L(1), L(3) L(1) L(1), L(4) L(1) L(1), L(5) L(1) Τo 2o Min (ή 2o Max) =? Min (ή Μax) = L(1) Εάν Min (ή Μax) = L(1)?

7 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Kατά τον υπολογισμό του 1ου Min (ή 1ου Max), τι μπορούμε να παρατηρήσουμε ότι ισχύει? L(1), L(2), L(3), L(4), L(5) Συγκρίσεις Νικητής Αρχικά: Min (ή Μax) = L(1) L(1), L(2) L(1) L(1), L(3) L(1) L(1), L(4) L(1) L(1), L(5) L(1) Min (ή Μax) = L(1) Συνολικά Τo 2o Min (ή 2o Max) = L(2) ή L(3) ή L(4) ή L(5) 2n-3 συγκρίσεις!!! Δεν κερδίζω κάτι!!!

8 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Kατά τον υπολογισμό του 1ου Min (ή 1ου Max), τι μπορούμε να παρατηρήσουμε ότι ισχύει? L(1), L(2), L(3), L(4), L(5) Συγκρίσεις Νικητής Αρχικά: Min (ή Μax) = L(1) L(1), L(2) L(1) L(1), L(3) L(1) Δεν κερδίσω συγκρίσεις L(1), L(4) L(1) κερδίζω όμως την καλή Ιδέα!!! L(1), L(5) L(1) Min (ή Μax) = L(1) Συνολικά Τo 2o Min (ή 2o Max) = L(2) ή L(3) ή L(4) ή L(5) 2n-3 συγκρίσεις!!! Δεν κερδίζω κάτι!!!

9 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Επινόηση Τεχνικής Τουρνουά L(1) L(2) L(3) L(4) L(5) L(6) L(7) L(8) L(2) L(2) L(4) L(4) L(6) L(6) L(7) L(2) L(4) L(4) L(4) L(6) L(6) L(7) L(2) L(2) L(4) L(6) L(6)Min (ήl(6) L(7) Μax) = L(6)

10 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Επινόηση Τεχνικής Τουρνουά L(1) L(2) L(3) L(4) L(5) L(6) L(7) L(8) L(2) L(2) L(4) L(4) L(6) L(6) L(7) L(2) L(4) L(4) L(4) L(6) L(6) L(7) Ένα από τα στοιχεία που «έχασαν» L(2) L(4) από τον νικητή!!! L(2) L(6) Τo 2o Min (ή 2o Max) =? L(6) Min (ή Μax)L(6) = L(6) L(7)

11 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Επινόηση Τεχνικής Τουρνουά L(1) L(2) L(3) L(4) L(5) L(6) L(7) L(8) L(2) L(2) L(4) L(4) L(6) L(6) L(7) L(2) L(4) L(4) L(4) L(6) L(6) L(7) Ένα από τα στοιχεία που «έχασαν» L(2) L(4) από τον νικητή!!! L(2) L(6) Τo 2o Min (ή 2o Max) = L(4) ή L(7) ή L(5) L(6)= L(6) L(6) Min (ή Μax) L(7)

12 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Επινόηση Τεχνικής Τουρνουά L(1) L(2) L(3) L(4) L(5) L(6) L(7) L(8) L(2) L(2) L(4) L(4) L(6) L(6) L(7) L(2) L(4) L(4) L(4) L(6) L(6) L(7) Συνολικά απαιτούνται n + log n - 2 Πλήθος = log n L(2) L(2) L(4) Τo 2o Min (ή 2o Max) = L(4) ή L(7) ή L(5) L(6) L(6) Min (ή Μax)L(6) = L(6) L(7) συγκρίσεις!!!

13 Αλγόριθμοι Επιλογής Πρώτο «Εύλογο» Ερώτημα!! Επινόηση Τεχνικής Τουρνουά Στην ερώτηση: Μπορούμε με να βρούμε το 2ο Min (ή 2ο Max) με λιγότερες από 2n-3 συγκρίσεις (2 φορές εφαρμογή του findmin)? Η απάντηση είναι ΝΑΙ!!! n + log n - 2 < 2n-3 Μπορούμε με λιγότερες συγκρίσεις? Θεώρημα: Κάθε αλγόριθμος (που εργάζεται με συγκρίσεις) για την εύρεση του 2ου Min (ή 2ου Max) από n στοιχεία απαιτεί τουλάχιστον n + log n - 2 συγκρίσεις στην χειρότερη περίπτωση!!!!!!!!!

14 Αλγόριθμοι Επιλογής Επόμενο «Εύλογο» Ερώτημα!!! Μπορούμε να υπολογίσουμε το 3ο Min ενός συνόλου? το 4ο, το 5ο Min στοιχείο,, τη διάμεσο (median) ενός συνόλου? Γενικά, το k-στο Min στοιχείο ενός συνόλου? Αποτελεσματικά!!!? ΝΑΙ!!!...?????

15 Διατακτικές Στατιστικές Διατακτική Στατιστική Έστω S ένα σύνολο n στοιχείων (για ευκολία θεωρούμε ότι είναι ακέραιοι). Η k-οστή διατακτική στατιστική του S είναι το x S που είναι μεγαλύτερο από ακριβώς k-1 στοιχεία του S. η 2-η διατακτική στατιστική είναι το 3, η 5-η το στοιχείο 8, ενώ η 7-η το στοιχείο

16 Διατακτικές Στατιστικές Διατακτική Στατιστική Έστω S ένα σύνολο n στοιχείων (για ευκολία θεωρούμε ότι είναι ακέραιοι). Η k-οστή διατακτική στατιστική του S είναι το x S που είναι μεγαλύτερο από ακριβώς k-1 στοιχεία του S. η 1-η διατακτική στατιστική (i = 1) είναι τo Min η n-οστή διατακτική (i = n) είναι το μέγιστο Max

17 Διάμεσος Διάμεσος Η διάμεσος ενός συνόλου S με n στοιχεία, σε περιγραφικό επίπεδο, είναι το «μέσο στοιχείο» του συνόλου 50% μικρότερα 50% μεγαλύτερα το στοιχείο x του S τέτοιο ώστε: το 50% των στοιχείων του συνόλου S να είναι μικρότερα από αυτό!!!

18 Διάμεσος Διάμεσος Η διάμεσος ενός συνόλου S με n στοιχεία, σε περιγραφικό επίπεδο, είναι το «μέσο στοιχείο» του συνόλου το στοιχείο x του S τέτοιο ώστε: το 50% των στοιχείων του συνόλου S να είναι μικρότερα από αυτό. 1, 3, 5, 7 < 8 < 9, 10, 12, 16

19 Διάμεσος Διάμεσος Η διάμεσος ενός συνόλου S με n στοιχεία, σε περιγραφικό επίπεδο, είναι το «μέσο στοιχείο» του συνόλου Πληθικότητα του S : n = περιττός Υπάρχουν μόνο ένας διάμεσος: η υπ αριθμόν 7, 1, 3, 5 διατακτική στατιστική. < 8 < 12, 16, 10, 9

20 Διάμεσος Διάμεσος Η διάμεσος ενός συνόλου S με n στοιχεία, σε περιγραφικό επίπεδο, είναι το «μέσο στοιχείο» του συνόλου Πληθικότητα του S : n = άρτιος Υπάρχουν δύο διάμεσοι: η υπ αριθμόν διατακτική στατιστική, και η υπ αριθμόν διατακτική στατιστική. 7, 1, 3, 5 < 8 < 9 < 12, 16, 10, 11

21 Διάμεσος Διάμεσος Η διάμεσος ενός συνόλου S με n στοιχεία, σε περιγραφικό επίπεδο, είναι το «μέσο στοιχείο» του συνόλου Για οποιοδήποτε n, οι διάμεσοι είναι: διατακτική στατιστική (κάτω διάμεσος) διατακτική στατιστική (άνω διάμεσος). Με τον όρο «διάμεσος» θα αναφερόμαστε στον κάτω διάμεσο:

22 Διάμεσος Διάμεσος & Μέση Τιμή Η διάμεσος (median) ενός συνόλου S έχει σκοπός να «συνοψίσει» ένα σύνολο αριθμών με μία μόνο τυπική τιμή. Η μέση τιμή (mean) ή μέσος όρος (average) πολύ συχνά χρησιμοποιείται για τον ίδιο σκοπό!!! Διάμεσος vs Μέση Τιμή Η τιμή της διαμέσου είναι πιο αντιπροσωπευτική για τα δεδομένα απ αυτή της μέσης τιμής!!!

23 Διάμεσος Διάμεσος & Μέση Τιμή Η τιμή της διαμέσου είναι πιο αντιπροσωπευτική για τα δεδομένα απ αυτή της μέσης τιμής!!! Διάμεσος vs Μέση Τιμή I. Η διάμεσος είναι πάντοτε μια τιμή από τις τιμές των δεδομένων, σε αντίθεση με την μέση τιμή!

24 Διάμεσος Διάμεσος & Μέση Τιμή Η τιμή της διαμέσου είναι πιο αντιπροσωπευτική για τα δεδομένα απ αυτή της μέσης τιμής!!! Διάμεσος vs Μέση Τιμή II. Η διάμεσος είναι λιγότερο «ευαίσθητη» σε τιμές που απέχουν πολύ από τις υπόλοιπες τιμές των δεδομένων!! : S1 = 1 S2 = 1 Μέση τιμή : S1 = 1 S2 = Διάμεσος

25 Διάμεσος Διάμεσος & Μέση Τιμή Η τιμή της διαμέσου είναι πιο αντιπροσωπευτική για τα δεδομένα απ αυτή της μέσης τιμής!!! Διάμεσος vs Μέση Τιμή Τι μπορούμε να υπολογίσουμε γρηγορότερα? τη Μέση τιμή ή τη Διάμεσο ;?????

26 Επιλογή Το Πρόβλημα της Επιλογής Δοθέντος ενός συνόλου S με n (διαφορετικά) στοιχεία και ενός ακεραίου k, 1 k n, βρες το k-στο μικρότερο στοιχείο x S (το στοιχείο το οποίο είναι μεγαλύτερο από ακριβώς k-1στοιχεία του S). Προφανής Αλγόριθμος! Ταξινόμηση του συνόλου S σε χρόνο O(nlogn) και εύρεση του στοιχείου x σε σταθερό χρόνο!!!

27 Επιλογή Το Πρόβλημα της Επιλογής Δοθέντος ενός συνόλου S με n (διαφορετικά) στοιχεία και ενός ακεραίου k, 1 k n, βρες το k-στο μικρότερο στοιχείο x S (το στοιχείο το οποίο είναι μεγαλύτερο από ακριβώς k-1στοιχεία του S). Ερώτημα! Υπάρχει καλύτερος αλγόριθμος?... Μπορούμε να βρούμε το k-στο μικρότερο στοιχείο σε χρόνο O(n)?

28 Αλγόριθμοι Select και Quick-select Αλγόριθμος Επιλογής

29 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) τιμές μικρότερες του x S1 τιμές μεγαλύτερες του x x pivot S2

30 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! Input: ένα σύνολο S με n στοιχεία Output: το k-τάξης στοιχείο του συνόλου S Καμία ενέργεια!!! ιαίρεσε 1 (divide) Κατέκτησε 2 (conquer) Συνδύασε 3 (combine)

31 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) Επιλογή ενός στοιχείου x του S (pivot) και διαχωρισμός του S σε S1 και S2 με βάση το pivot x S1 x Επιλέγουμε το Pivot τυχαία από το σύνολο S!!! S2 pivot = S[first], sp = first for i = first+1 to last if S[i] < pivot then sp++, swap(s[sp],s[i]) end swap(s[first],s[sp]

32 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) S1 x o Κατάκτηση (conquer) Έστω ότι αναζητώ την διάμεσο του S, δηλ. k και έστω ότι η διάμεσος δεν είναι το στοιχείο x Εύλογη ερώτηση!!! S2

33 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) S1 x S2 o Κατάκτηση (conquer) Σε ποιο σύνολο από τα S1 και S2 βρίσκεται η διάμεσος? Εύλογη ερώτηση!!!

34 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) S1 o Κατάκτηση (conquer) x S2 Βρίσκεται σε αυτό που έχει τα ΠΕΡΙΣΣΟΤΕΡΑ ΣΤΟΙΧΕΙΑ Όχι κατ ανάγκη στο σύνολο που έχει τα μεγαλύτερα στοιχεία βλέπετε γιατί? Εύλογη ερώτηση!!!

35 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) S1 x S2 o Κατάκτηση (conquer) Ας δούμε τη γενική περίπτωση!!! Αναζητώ το k-μικρότερο στοιχείο του συνόλου S! 1 k n, όπου n η πληθικότητα του S

36 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) S1 x S2 o Κατάκτηση (conquer) Είναι προφανές ότι το k-τάξης στοιχείο του συνόλου S που αναζητώ, δηλ. το k-μικρότερο στοιχείο του S : Σε ποιο από τα δύο? είτε είναι το στοιχείο x είτε βρίσκεται σε ένα από τα S1 και S2

37 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) S1 x S2 o Κατάκτηση (conquer) a) S1 = k-1 b) S1 > k-1 c) S1 < k-1 Για την εύρεση του k-τάξης στοιχείου του συνόλου S εξετάζουμε 3 περιπτώσεις!!!

38 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) x S1 S2 o Κατάκτηση (conquer) a) εάν S1 = k-1 τότε το x είναι το k-στο μικρότερο στοιχείο του S k=5 Στοιχείο 8 {3, 5, 1, 7} 8 {12, 10, 9, 16}

39 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) x S1 S2 o Κατάκτηση (conquer) b) εάν S1 > k-1 τότε το k-στο μικρότερο στοιχείο του S βρίσκεται στο S1 και είναι το k-στο μικρότερο στοιχείο του S1 k=3 Στοιχείο 5 {3, 5, 1, 7} 8 {12, 10, 9, 16}

40 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) x S1 S2 o Κατάκτηση (conquer) c) εάν S1 < k-1 τότε το k-στο μικρότερο στοιχείο του S βρίσκεται στο S2 και είναι το (k- S1-1)-στο μικρότερο στοιχείο του S2 k=7 Στοιχείο 10 {3, 5, 1, 7} 8 {12, 10, 9, 16}

41 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Ιδέα Αλγόριθμου!!! o Διαίρεση (divide) S1 x S2 o Κατάκτηση (conquer) o Συνδυασμός (combine) Το βήμα αυτό της τεχνικής Δ-και-Β στον αλγόριθμο Select() δεν κάνει καμία ενέργεια!!!

42 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Αλγόριθμος Input: ένα σύνολο S με n στοιχεία Output: το k-οστής τάξης στοιχείο του S 1. Διαίρεση (divide) 1 S1 i x 2. Κατάκτηση (conquer) εάν S1 = k-1 return x εάν S1 > k-1 τότε Select(S1, k) εάν S1 < k-1 τότε Select(S2, k- S1-1) n S2

43 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Παράδειγμα Το 7-ής τάξης στοιχείο Λύση!!!... Η έξοδος του αλγόριθμου είναι το στοιχείο ής τάξης στοιχείο

44 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Παράδειγμα Το 7-ής τάξης στοιχείο: k = 7 Επιλογή pivot: x = S S2 εάν S1 = k-1 = 6 return x εάν S1 > k-1 = 6 τότε Select(S1, k) εάν S1 = 3 < k-1 = 6 τότε Select(S2, k- S1-1 = = 3)

45 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Παράδειγμα Το 3-ής τάξης στοιχείο : k = 3 Επιλογή pivot: x = S S2 εάν S1 = k-1 = 2 return x εάν S1 = 3 > k-1 = 2 τότε Select(S1, k = 3) εάν S1 < k-1 = 2 τότε Select(S2, k- S1-1)

46 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Το 3-ής τάξης στοιχείο : k = 3 Επιλογή pivot: x = 7 6 S1 7 8 S2 εάν S1 = k-1 = 2 return x εάν S1 > k-1 = 2 τότε Select(S1, k) εάν S1 = 1 < k-1 = 2 τότε Select(S2, k- S1-1 = = 1) Παράδειγμα

47 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Παράδειγμα 8 Το 1-ής τάξης στοιχείο : k = 1 Επιλογή pivot: x = 8 Το 7-ής τάξης στοιχείο το 8!!! 8 S1 S2 εάν S1 = 0 = k-1 return x = 8 εάν S1 > k-1 = 0 τότε Select(S1, k) εάν S1 < k-1 = 0 τότε Select(S2, k- S1-1)

48 Αλγόριθμος Επιλογής Αλγόριθμος Select(S, k) Παράδειγμα Το σύνολο εισόδου S Πράγματι!!! Το 7-ής τάξης στοιχείο το 8!!! Select(S, 7) = ής τάξης στοιχείο

49 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Θα χρησιμοποιήσουμε τη τεχνική απόδειξης που ονομάζεται «αμεταβλητότητα επανάληψης» ή «αναλλοίωτη συνθήκη επανάληψης» (loop invariant)!!! Αρχή επανάληψης 2η 1η επανάληψη επανάληψη Τερματισμός επανάληψης αμεταβλητότητα true true true true Η αναλλοίωτη συνθήκη επανάληψης είναι μια συνθήκη οι οποία: o είναι true στην αρχή της επανάληψης, o παραμένει true σε κάθε εκτέλεση της επανάληψης, και o συνεχίζει να είναι true και μετά τον τερματισμό της επανάληψης.

50 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Θα χρησιμοποιήσουμε τη τεχνική απόδειξης που ονομάζεται «αμεταβλητότητα επανάληψης» ή «αναλλοίωτη συνθήκη επανάληψης» (loop invariant)!!! Αρχή επανάληψης 2η 1η επανάληψη επανάληψη Τερματισμός επανάληψης αμεταβλητότητα true true true true Η αποδεικτική τεχνική της αναλλοίωτης συνθήκης είναι ανάλογη με αυτή της μαθηματικής επαγωγής: Και οι δύο χρησιμοποιούν τη βασική περίπτωση (base case) μαζί με ένα επαγωγικό βήμα (inductive step) για να δείξουν ότι μια πρόταση είναι true για όλες τις περιπτώσεις!!!

51 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Απόδειξη μιας Αναλλοίωτης Συνθήκης Επανάληψης (Proving a Loop Invariant)!!! Βασική περίπτωση: Δείξε ότι η αναλλοίωτη συνθήκη είναι true πριν την πρώτη επανάληψη του βρόχου (ή κλήση της αναδρομικής συνάρτησης). Επαγωγική υπόθεση: Έστω ότι η αναλλοίωτη συνθήκη είναι true αμέσως πριν από μια τυχαία, έστω την i-th, επανάληψη του βρόχου (ή από μια τυχαία κλήση της αναδρομής). Επαγωγικό βήμα : Δείξε ότι η αναλλοίωτη συνθήκη είναι true αμέσως μετά το τέλος της i-th της επανάληψης του βρόχου (ή της i-th αναδρομικής κλήσης). Και κάτι ακόμα Δείξε ότι ο βρόχος (ή η αναδρομική συνάρτηση) τερματίζει!!! true αρχή true αρχή i-th επανάληψης true τέλος i-th επανάληψης

52 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Για τον αλγόριθμο Select(S, k) θεωρούμε την παρακάτω αναλλοίωτη συνθήκη επανάληψης: Σε μια αναδρομική κλήση Select(S, k ) το τρέχον σύνολο επανάληψης S μεγέθους n αποτελείται από όλα τα στοιχεία του αρχικού S που έχουν τιμές μεταξύ min(s ) και max(s ) και η τρέχουσα τάξη επιλογής k έχει την ιδιότητα: το k -μικρότερο στοιχείο του S είναι το k-μικρότερο στοιχείο του S. Για να δείξουμε ότι η παραπάνω πρόταση αποτελεί αναλλοίωτη συνθήκη επανάληψης, αρκεί να δείξουμε ότι: 1. Είναι true στην αρχή της επανάληψης. 2. Παραμένει true σε κάθε εκτέλεσή της. 3. Συνεχίζει να είναι true και μετά τον τερματισμό της επανάληψης.

53 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Απόδειξη αναλλοίωτης συνθήκης επανάληψης! 1. Είναι true στην αρχή της επανάληψης. Αρχικά, το τρέχον σύνολο επανάληψης είναι το S μεγέθους n και η τρέχουσα τάξη επιλογής στοιχείου είναι k. Επομένως η πρόταση είναι προφανώς true. Σε μια αναδρομική κλήση Select(S, k) το τρέχον σύνολο επανάληψης S μεγέθους n αποτελείται από όλα τα στοιχεία του αρχικού S που έχουν τιμές μεταξύ min(s) και max(s) και η τρέχουσα τάξη επιλογής k έχει την ιδιότητα: το k-μικρότερο στοιχείο του S είναι το k-μικρότερο στοιχείο του S. true αρχή

54 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Απόδειξη αναλλοίωτης συνθήκης επανάληψης! 2. Παραμένει true σε κάθε εκτέλεσή της. Έστω ότι η πρόταση είναι true στην αρχή μιας κλήσης Select(S, k ) δηλ. το τρέχον σύνολο επανάληψης S μεγέθους n αποτελείται από όλα τα στοιχεία του αρχικού S που έχουν τιμές μεταξύ min(s ) και max(s ) και το k -μικρότερο στοιχείο του S είναι το k-μικρότερο στοιχείο του S Τότε για τα σύνολα της διαμέρισης του S που προκύπτουν στο Βήμα 1, έστω S1 και S2 μεγέθους i -1 και n - i, ισχύει: το S1 αποτελείται από όλα τα στοιχεία του αρχικού S με τιμές μεταξύ min(s1 ) και max(s1 ), και το ίδιο ισχύει και για το άλλο σύνολο της διαμέρισης S2 true αρχή true Select(S, k )

55 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Απόδειξη αναλλοίωτης συνθήκης επανάληψης! 2. Παραμένει true σε κάθε εκτέλεσή της. Εάν Select(S, k ) είναι η επόμενη κλήση από την Select(S, k ), όπου S είναι είτε S1 είτε S2, τότε είναι εύκολο να δειχθεί εξετάζοντας περιπτώσεις ότι το k -μικρότερο στοιχείο του S ισούται με το k -μικρότερο στοιχείο του S, το οποίο από υπόθεση ισούται με το k-μικρότερο στοιχείο του S. true αρχή true Select(S, k ) true Select(S, k )

56 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Απόδειξη αναλλοίωτης συνθήκης επανάληψης! 3. Συνεχίζει να είναι true και μετά τον τερματισμό της. Επειδή δεν υπάρχει κάποια ειδική συνθήκη για το βήμα του τερματισμού (είναι ακριβώς το βήμα που τυχαίνει να διακόπτεται από την τιμή που επιστρέφεται), η απόδειξη της διατήρησης της αναλλοίωτης συνθήκης σε κάθε επανάληψη αποδεικνύει τη διατήρηση της συνθήκης και μετά τον τερματισμό!!! true αρχή true Select(S, k ) true Select(S, k ) true τερματισμός

57 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Select(S, k) Απόδειξη αναλλοίωτης συνθήκης επανάληψης! Έχοντας δείξει την αναλλοίωτη συνθήκη επανάληψης (loop invariant), είναι εύκολο να δει κανείς ότι ο αλγόριθμος Select(S, k) είναι σωστός. Έστω Select(S, k ) είναι η τελευταία κλήση του αλγόριθμου. Τότε το Βήμα 2 επιστρέφει το k -μικρότερο στοιχείο του S, το οποίο από την αναλλοίωτη συνθήκη επανάληψης, είναι ίσο με το k-μικρότερο στοιχείο του αρχικού S. Άρα, εάν ο αλγόριθμος τερματίσει, τότε θα τερματίσει με τη σωστή έξοδο. Μένει να δείξουμε ότι ο αλγόριθμος πάντα τερματίζει! Πράγματι ισχύει, διότι το μέγεθος του τρέχοντος συνόλου σε κάθε αναδρομική κλήση του αλγόριθμου μειώνεται κατά τουλάχιστον 1 στοιχείο και επίσης η κλήση Select(S, k ) τερματίζει πάντα όταν το S = 1.

58 Αλγόριθμος Επιλογής Πολυπλοκότητα Select(S, k) Χειρίστη Περίπτωση

59 Αλγόριθμος Επιλογής Πολυπλοκότητα Select(S, k) Ιδανική Περίπτωση

60 Αλγόριθμος Επιλογής Πολυπλοκότητα Select(S, k) Μέση Περίπτωση Ονομάζουμε "καλή επιλογή" Pivot εάν ανήκει μεταξύ των στοιχείων που βρίσκονται από το 25% έως το 75% των στοιχείων του S. Τότε τα δύο τμήματα S1 και S2 θα έχουν μέγεθος το πολύ 3/4 του αρχικού n.

61 Αλγόριθμος Επιλογής Πολυπλοκότητα Select(S, k) Μέση Περίπτωση Tο εύρος [1/4n, 3/4n] καλύπτει τα ½ στοιχεία. H πιθανότητα το Pivot [1/4n, 3/4n] = ½.

62 Αλγόριθμος Επιλογής Πολυπλοκότητα Select(S, k) Μέση Περίπτωση Επομένως, κατά μέσο όρο, μετά από 2 τυχαίες επιλογές Pivot θα έρθει καλή επιλογή!!! H «καλή επιλογή» θα μειώσει το μέγεθος του προβλήματος το πολύ σε 3/4 του αρχικού.

63 Αλγόριθμος Επιλογής Πολυπλοκότητα Select(S, k) Μέση Περίπτωση Άρα, ο μέσος χρόνος του απλού αλγόριθμου περιγράφεται από την αναδρομική σχέση:

64 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Α C D m* B

65 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Ιδέα Αλγόριθμου!!! Input: ένα σύνολο S με n στοιχεία Output: το k-οστής τάξης στοιχείο του S 1. Διαίρεση (divide) S1 m* x S2 Select() vs Quick-Select() Κατάλληλη επιλογή του pivot m* που οδηγεί σε γραμμικό αλγόριθμο!!! Διαφορετική επιλογή των στοιχείων διάσπασης x και m*

66 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Ιδέα Αλγόριθμου!!! Θέλουμε με μια κατάλληλη επιλογή του Pivot σε κάθε επανάληψη να επιτυγχάνουμε: Τότε θα δείξουμε ότι στη χειρίστη περίπτωση ο αλγόριθμος απαιτεί χρόνο:

67 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Input: ένα σύνολο S με n στοιχεία Output: το k-οστής τάξης στοιχείο του S 1. Διαίρεση (divide) S1 m* x 2. Κατάκτηση (conquer) εάν S1 = k-1 return m* εάν S1 > k-1 τότε Select(S1, k) εάν S1 < k-1 τότε Select(S2, k- S1-1) S2

68 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 1. Χωρίζουμε την ακολουθία S μήκους n σε n/5 υποακολουθίες μήκους 5 η κάθε μία (εκτός πιθανώς από την τελευταία). n S=( ) 1η 5-αδα 2η 5-αδα (n/5)η 5-αδα

69 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 2. Βρίσκουμε το μέσο κάθε μιας από τις n/5 υποακολουθίες μήκους 5 (εκτός πιθανώς από την τελευταία). 1η 5-αδα κ η 5-αδα (n/5)η 5-αδα

70 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 2. Βρίσκουμε το μέσο κάθε μιας από τις n/5 υποακολουθίες μήκους 5 (εκτός πιθανώς από την τελευταία). min max διάμεσοι

71 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 2. Βρίσκουμε το μέσο κάθε μιας από τις n/5 υποακολουθίες μήκους 5 (εκτός πιθανώς από την τελευταία). min διάμεσοι max

72 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 3. Χρησιμοποιώντας την Quick-Select αναδρομικά, βρίσκουμε τη διάμεσο m* των διαμέσων των n/5 υποακολουθιών.1 min διάμεσοι max

73 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 3. Χρησιμοποιώντας την Quick-Select αναδρομικά, βρίσκουμε τη διάμεσο m* των διαμέσων των n/5 υποακολουθιών.1 min m1 m2 m* mn/5 διάμεσοι max {m1, m2, } m* {, m(n/5)-1, mn/5}

74 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 3. Χρησιμοποιώντας την Quick-Select αναδρομικά, βρίσκουμε τη διάμεσο m* των διαμέσων των n/5 υποακολουθιών.1 m*

75 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 4. Διαμερίζουμε την ακολουθία S με pivot τη διάμεσο m*. Α C Α m* B D m* B C? m*? D

76 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 4. Διαμερίζουμε την ακολουθία S με pivot τη διάμεσο m*. S1 A Α S2 B C Συγκρίνουμε τα στοιχεία των χωρίων C και D με το m* Α m* B {x x C D & x < m*} S2 B {x x C D & x > m*} S1 A D m* B C? m*? D

77 Γραμμικός Αλγόριθμος Επιλογής Αλγόριθμος Quick-Select(S, k) Αλγόριθμος Βήμα 5. Έλεγχος και αναδρομική επίλυση: εάν S1 = k-1 return m* εάν S1 > k-1 τότε Quick-Select(S1, k) εάν S1 < k-1 τότε Quick-Select(S2, k- S1-1)

78 Γραμμικός Αλγόριθμος Επιλογής Ορθότητα Αλγόριθμου Quick-Select(S, k) Προκύπτει άμεσα από την λειτουργία του αλγόριθμου και από την ορθότητα του αλγορίθμου Select(S, k)!!! Θυμίζουμε!!! Η μόνη διαφορά των αλγορίθμων Select(S, k) και Quick-Select(S, k) είναι η διαφορετική επιλογή των στοιχείων διάσπασης (pivots) x και m*, αντίστοιχα. S1 S2 pivot : x ή m*

79 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Θα δείξουμε ότι ο αλγόριθμος είναι γραμμικός στο μέγεθος της εισόδου, δηλαδή, T(n) = O(n) για κάθε είσοδο μήκους n > 1. Α C D m* B

80 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Αρχικά προσδιορίζουμε ένα κάτω φράγμα για το πλήθος των στοιχείων που είναι μεγαλύτερα από το m*. m*

81 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Τουλάχιστον οι μισές 5-αδες (από τις n/5 συνολικά) συνεισφέρουν 3 στοιχεία που είναι μεγαλύτερα του m*. m* Εντός από την 5-αδα που έχει λιγότερα στοιχεία όταν το n δεν διαιρείται ακριβώς δια του 5 και από την 5-αδα που περιέχει το m*.

82 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Επομένως το πλήθος των στοιχείων που είναι μεγαλύτερα από το στοιχείο m* είναι m* Αντίστοιχα, το πλήθος των στοιχείων που είναι μικρότερα του m* είναι τουλάχιστον

83 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Άρα, στην αναδρομική κλήση στο Βήμα 5, ο αλγόριθμος θα δεχθεί ως είσοδο το πολύ στοιχεία στη χειρότερη περίπτωση. m*

84 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Τώρα μπορούμε να διατυπώσουμε μια αναδρομική σχέση για το χρόνο εκτέλεσης του αλγόριθμου στη χειρίστη περίπτωση. Τα Βήματα 1, 2 και 4 απαιτούν χρόνο Το Βήμα 3 απαιτεί χρόνο Το Βήμα 5 απαιτεί χρόνο

85 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Δεχόμαστε (θα αποσαφηνιστεί σύντομα) ότι για οποιαδήποτε είσοδο με στοιχεία <140 απαιτείται χρόνος Με την παραδοχή αυτή παίρνουμε:

86 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Επομένως, ισχύει: Θα δείξουμε ότι ο χρόνος εκτέλεσης για κάποια μεγάλη σταθερά είναι γραμμικός, δηλαδή, και για όλα τα

87 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Αρχικά υποθέτουμε ότι για κάποια επαρκώς μεγάλη σταθερά c και για όλα τα n < 140 (η παραδοχή αυτή ισχύει εφόσον η σταθερά c είναι αρκετά μεγάλη). Αντικαθιστώντας, έχουμε Όπου α μια σταθερά τέτοια ώστε η συνάρτηση που αντιπροσωπεύει ο όρος αn να φράσσεται άνω από την ποσότητα O(n) για όλα τα n > 0.

88 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Επομένως, Ισχύει: εάν

89 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Η ανισότητα είναι ισοδύναμη με την ανισότητα όταν

90 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Από την ανισότητα: δεδομένου ότι υποθέσαμε πως και επομένως εάν επιλέξουμε η ανισότητα (2) ικανοποιείται., έχουμε ότι:

91 Γραμμικός Αλγόριθμος Επιλογής Πολυπλοκότητα Αλγόριθμου Quick-Select(S, k) Ανάλυση Αλγόριθμου Δεν υπάρχει τίποτε το ιδιαίτερο όσον αφορά τη σταθερά 140. Μπορούμε να την αντικαταστήσουμε με οποιοδήποτε ακέραιο > 70 και να επιλέξουμε τη σταθερά c ανάλογα. Δείξαμε ότι για τον Quick-Select(S, k) ισχύει: Άρα, ο αλγόριθμος είναι γραμμικός στο μέγεθος της εισόδου, δηλ. για κάθε είσοδο μήκους n > 1.

92 Ευχαριστώ για τη Συμμετοχή σας!!! Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

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

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

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

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

Δυναμικός προγραμματισμός για δέντρα

Δυναμικός προγραμματισμός για δέντρα ΘΕ5 Ιδιότητες Δέντρων και Αναδρομή για Δέντρα Δυναμικός προγραμματισμός για δέντρα Έστω ότι, για k=1,..., m, το γράφημα Γ k = (V k, E k ) είναι δέντρο. Έστω w V 1... V m, z k V k, για k=1,..., m. Συμβολίζουμε

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

Επαγωγή και αναδρομή για συνεκτικά γραφήματα ΘΕ4 Αναδρομή και Επαγωγή για Γραφήματα Επαγωγή και αναδρομή για συνεκτικά γραφήματα Επαγωγή για συνεκτικά γραφήματα (με αφαίρεση κορυφής) Η αρχή της επαγωγής, με αφαίρεση κορυφής, για δεδομένη προτασιακή

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

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

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

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

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

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι Σεπτέμβριος 008 Κατ οίκον Εργασία Σκελετοί Λύσεων Άσκηση Παρατηρούμε ότι ο χρόνος εκτέλεσης μέσης περίπτωσης της κάθε εντολής if ξεχωριστά: if (c mod 0) for (k ; k

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

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

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

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

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα ΘΕ4 Αναδρομή και Επαγωγή για Γραφήματα Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα Επαγωγή για άκυκλα συνεκτικά γραφήματα (με αφαίρεση κορυφής) Η αρχή της επαγωγής, με αφαίρεση κορυφής, για δεδομένη

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

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

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

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

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

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

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

a n = 3 n a n+1 = 3 a n, a 0 = 1

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

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

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

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

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

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1 Merge Sort (Ταξινόμηση με συγχώνευση) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 6/14/2007 3:04 AM Merge Sort 1 Κύρια σημεία για μελέτη Το παράδειγμα του «διαίρει και βασίλευε» ( 4.1.1) Merge-sort

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):

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

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

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

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

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

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

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

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

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1 Ο αλγόριθμος Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 6/14/2007 3:42 AM Quick-Sort 1 Κύρια σημεία για μελέτη Quick-sort ( 4.3) Αλγόριθμος Partition step Δέντρο Quick-sort Παράδειγμα εκτέλεσης

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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) Διαίρει-και-βασίλευε

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 8 Quick Sort 1 / 11 Ο αλγόριθμος QuickSort 1 Προτάθηκε από τον CAR (Tony) Hoare το 1961 2 Ο αλγόριθμος

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Αριθμοθεωρητικοί Αλγόριθμοι

Αριθμοθεωρητικοί Αλγόριθμοι Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Όρια Αλγόριθμων Ταξινόμησης Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Όρια Αλγόριθμων Ταξινόμησης Μέχρι στιγμής εξετάσθηκαν μέθοδοι ταξινόμησης µε πολυπλοκότητα της τάξης Θ ) ή Θlog ). Τι εκφράζει

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση

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

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

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

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

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

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

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

Ταξινόμηση με συγχώνευση Merge Sort

Ταξινόμηση με συγχώνευση Merge Sort Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

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

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

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

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό 1 Εισαγωγή Σκεφτείτε έναν αριθμό από το 1 έως το 1000 και απαντήστε στην ερώτηση: Ο αριθμός που σκεφτήκατε είναι μεγαλύτερος

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

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX ΚΕΦΑΛΑΙΟ 3 ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX 3.1 Εισαγωγή Ο αλγόριθμος Simplex θεωρείται πλέον ως ένας κλασικός αλγόριθμος για την επίλυση γραμμικών προβλημάτων. Η πρακτική αποτελεσματικότητά του έχει

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανεπίλυτα Προβλήματα από τη Θεωρία Γλωσσών (5.1) To Πρόβλημα της Περάτωσης Το Πρόβλημα της Κενότητα

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2016-2017 Τομέας Συστημάτων Παραγωγής Εξάμηνο Β Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης ΜΑΘΗΜΑ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού

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

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

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

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

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

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

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης Βασικές αρχές μεθόδων ελαχιστοποίησης Μέθοδοι μονοδιάστατης ελαχιστοποίησης Οι μέθοδοι ελαχιστοποίησης είναι επαναληπτικές. Ξεκινώντας από μια αρχική προσέγγιση του ελαχίστου (την συμβολίζουμε ) παράγουν

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

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

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

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

ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0

ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0 ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0 Η Θεωρία Πιθανοτήτων είναι ένας σχετικά νέος κλάδος των Μαθηματικών, ο οποίος παρουσιάζει πολλά ιδιαίτερα χαρακτηριστικά στοιχεία. Επειδή η ιδιαιτερότητα

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

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

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

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

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

Τυχαιοκρατικοί Αλγόριθμοι

Τυχαιοκρατικοί Αλγόριθμοι Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται

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

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο.

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο. Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο. Πού χρειάζεται; Πολλές μαθηματικές συναρτήσεις ορίζονται αναδρομικά. Δεν είναι

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

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

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

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

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

Χαρακτηριστικά αναδροµής

Χαρακτηριστικά αναδροµής Χαρακτηριστικά αναδροµής base case : συνθήκη τερµατισµού της αναδροµής Όταν το πρόβληµα είναι αρκετά µικρό ή απλό ώστε η λύση να είναι άµεση αναδροµικό βήµα : κλήση της ίδιας συνάρτησης για µικρότερη ή

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

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

Αλγόριθμοι για αυτόματα Κεφάλαιο 8 Αλγόριθμοι για αυτόματα Κύρια βιβλιογραφική αναφορά για αυτό το Κεφάλαιο είναι η Hopcroft, Motwani, and Ullman 2007. 8.1 Πότε ένα DFA αναγνωρίζει κενή ή άπειρη γλώσσα Δοθέντος ενός DFA M καλούμαστε

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

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

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

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

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

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

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

EukleÐdeiec emfuteôseic: ˆnw frˆgmata

EukleÐdeiec emfuteôseic: ˆnw frˆgmata EukleÐdeiec emfuteôseic: ˆnw frˆgmata Εστω f : X Y μια εμφύτευση του μετρικού χώρου (X, ρ) στο χώρο με νόρμα (Y, ). Η παραμόρφωση της f ορίζεται ως εξής: f(x) f(y) ρ(x, y) dist(f) = sup sup x y ρ(x, y)

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

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

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

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

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

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

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

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

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

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

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

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

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

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου»

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου» (8 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου» Το πρόβλημα του διαμέσου στοιχείου: ένα θεμελιακό πρόβλημα Συναντήσαμε ήδη αρκετές φορές το πρόβλημα του να «κόψουμε» ένα σύνολο στοιχείων

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

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

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

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα

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

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

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

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

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

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

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης Βασικές αρχές μεθόδων ελαχιστοποίησης Μέθοδοι μονοδιάστατης ελαχιστοποίησης Οι μέθοδοι ελαχιστοποίησης είναι επαναληπτικές. Ξεκινώντας από μια αρχική προσέγγιση του ελαχίστου (την συμβολίζουμε ) παράγουν

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

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

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

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

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

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

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