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

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων:

Αλγόριθμοι και πολυπλοκότητα Ανάλυση αλγορίθμων

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

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

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

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

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

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

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

Τηλ , Fax: , URL:

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 4 Η ΑΡΧΗ ΕΓΚΛΕΙΣΜΟΥ ΑΠΟΚΛΕΙΣΜΟΥ

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

Διάλεξη 2 - Σημειώσεις

περιεχόμενα ρυθιμός αύξησης συναρτήσεων ασυμπτωτική πολυπλοκότητα ασυμπτωτική επίδοση ασυμπτωτικοί συμβολισμοί ασυμπτωτικός συμβολισμος

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

Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία.

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

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

Παραδείγµατα. Τάξη των Συναρτήσεων (1) Παράδειγµα (2) Να δειχθεί ότι 7n 2 = O(n 3 ). Ορέστης Τελέλης

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

x < A y f(x) < B f(y).

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

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

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

Απειροστικός Λογισμός Ι, χειμερινό εξάμηνο Λύσεις πρώτου φυλλαδίου ασκήσεων.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΤ ΟΙΚΟΝ ΕΡΓΑΣΙΑ 1 ΗΜΕΡΟΜΗΝΙΑ ΠΑΡΑΔΟΣΗΣ: 22/02/10

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

ΣΥΝΟΠΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΟ ΜΑΘΗΜΑ ΜΑΘΗΜΑΤΙΚΑ Ι.Ι (τεύχος-1-)

ΑΣΚΗΣΕΙΣ: ΟΡΙΑ ΚΑΙ ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΕΩΝ

Δ/νση Β /θµιας Εκπ/σης Φλώρινας Κέντρο ΠΛΗ.ΝΕ.Τ. Λογάριθµοι ΛΟΓΑΡΙΘΜΟΙ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΛΟΓΑΡΙΘΜΟΥΣ

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

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

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

ΑΝΑΛΥΣΗ 2. Μ. Παπαδημητράκης.

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

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

Απειροστικός Λογισμός Ι, χειμερινό εξάμηνο Λύσεις έκτου φυλλαδίου ασκήσεων.

Απειροστικός Λογισμός Ι, χειμερινό εξάμηνο Λύσεις έβδομου φυλλαδίου ασκήσεων.

Συνδυαστική Βελτιστοποίηση

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

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

«Η Αλγοριθμική Πολυπλοκότητα στο Γενικό Λύκειο»

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

ΑΝΑΛΥΣΗ 2. Μ. Παπαδημητράκης.

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

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

Σχόλια στα όρια. Γενικά

Πολυπλοκότητα Αλγορίθµων

ΚΕΦΑΛΑΙΟ 1ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 3: ΟΡΙΑ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

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

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

Γενικά Μαθηματικά. , :: x, :: x. , :: x, :: x. , :: x, :: x

O Χρόνος Εκτέλεσης. προγραμμάτων ΚΕΦΑΛΑΙΟ 3. Τα θέματα αυτού του κεφαλαίου

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

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

(β ) ((X c Y ) (X c Y c )) c

Προσεγγιστικοί Αλγόριθμοι

Απειροστικός Λογισμός Ι, χειμερινό εξάμηνο Λύσεις ενδέκατου φυλλαδίου ασκήσεων.

Απειροστικός Λογισμός Ι, χειμερινό εξάμηνο Λύσεις τέταρτου φυλλαδίου ασκήσεων. ( n(n+1) e 1 (

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

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

τα βιβλία των επιτυχιών

Ορισμός : Η συνάρτηση X : Ω είναι μετρήσιμη εάν 1. της τυχαίας μεταβλητής X : Ω, είναι το πεδίο τιμών της X. Δηλαδή είναι το υποσύνολο του { }

O1 ΓΕΩΜΕΤΡΙΚΗ ΕΡΜΗΝΕΙΑ ΤΟΥ ΟΡΙΟΥ lim f x

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Εξέταση στο μάθημα Ανάλυση Ι & Εφαρμογές 26 Φεβρουαρίου 2015

. Σήματα και Συστήματα

Διαφορικές Εξισώσεις.

Ορισμός : Η συνάρτηση X : Ω είναι μετρήσιμη εάν 1. της τυχαίας μεταβλητής X : Ω, είναι το πεδίο τιμών της X. Δηλαδή είναι το υποσύνολο του { }

ProapaitoÔmenec gn seic.

GENIKA MAJHMATIKA. TEI SERRWN SQOLH DIOIKHSHS KAI OIKONOMIAS Tm ma Logistik c

Transcript:

Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 6) 1 / 20

Ρυθμοί αύξησης Γραμμικός ρυθμός αύξησης: n, 2n, Πολυωνυμικός ρυθμός αύξησης: n 2, n 3 Εκθετικός ρυθμός αύξησης: 2 n, e n, 10 n Ρυθμός αύξησης παραγοντικού: n!, n n για μέγεθος εισόδου n = 1000 n 10 3 n 2 10 6 n 3 10 9 2 n 10 300 e n 10 434 10 n 10 1000 n! 10 2566 n n 10 3000 2 / 20

Λογάριθμος - Λογαριθμική κλίμακα log b a Λογάριθμος: Πόσες φορές πρέπει να πολλαπλασιάσουμε έναν αριθμό b (την βάση) για να φτάσουμε σε έναν αριθμό a πχ log 2 16 = 4 διότι 2 2 2 2 = 16 Λογαριθμική κλίμακα Η λογαριθμική κλίμακα χρησιμοποιείται όταν χρειάζεται να απεικονιστούν ταυτόχρονα μικρές και μεγάλες τιμές σε ένα γράφημα Σε μια λογαριθμική κλίμακα με βάση το 10 αύξηση μιας μονάδας στην κλίμακα αντιστοιχεί σε δεκαπλασιασμό της αντίστοιχης ποσότητας ενώ μείωση μιας μονάδας στην κλίμακα αντιστοιχεί σε υποδεκαπλασιασμό της αντίστοιχης ποσότητας F(x) = (x 10 )(10 20 ) log(f(x)) = 10log(x)+20 3 / 20

xkcd Log Scale 4 / 20

Γραμμική συνάρτηση - Πολυωνυμική (τετραγωνική) συνάρτηση 5 / 20

Τετραγωνική συνάρτηση - Κυβική συνάρτηση - Εκθετική συνάρτηση 6 / 20

Κυβική συνάρτηση - Εκθετικές συναρτήσεις 7 / 20

Εκθετική συνάρτηση - Συναρτήσεις παραγοντικού 8 / 20

Ασυμπτωτικός συμβολισμός Προτάθηκε από τον D Knuth το 1976 Ο ασυμπτωτικός συμβολισμός είναι ένας χρήσιμος τρόπος εκτίμησης της χρονικής ή χωρικής πολυπλοκότητας ενός αλγορίθμου για μεγάλα στιγμιότυπα προβλημάτων Τοποθετεί ένα άνω όριο κόστους στην εκτέλεση του αλγορίθμου 9 / 20

Ο συμβολισμός O H f(n) = O(g(n)) αν υπάρχουν θετικές σταθερές c, n 0 τέτοιες ώστε f(n) cg(n) για κάθε n n 0 f(n) = O(g(n)) αν όπου c είναι μια σταθερά lim n inf f(n) g(n) = c 10 / 20

Πρακτική θεώρηση του συμβολισμού O Μια συνάρτηση f(n) είναι O(g(n)) αν για επαρκώς μεγάλα n η f(n) είναι άνω φραγμένη από ένα πολλαπλάσιο του g(n) 11 / 20

Παράδειγμα 1 Δείξτε ότι η συνάρτηση f(n) = 2n + 10 είναι O(n) Αν η f(n) = 2n + 10 είναι O(n) θα πρέπει να υπάρχουν θετικές θετικές σταθερές c, n 0 έτσι ώστε να ισχύει 2n + 10 cn n n 0 12 / 20

Παράδειγμα 1 Δείξτε ότι η συνάρτηση f(n) = 2n + 10 είναι O(n) Αν η f(n) = 2n + 10 είναι O(n) θα πρέπει να υπάρχουν θετικές θετικές σταθερές c, n 0 έτσι ώστε να ισχύει 2n + 10 cn n n 0 (c 2)n 10 n 10 c 2 Μπορούμε να επιλέξουμε c = 3 και n 0 = 10 έτσι ώστε να ικανοποιείται η παραπάνω ανισότητα 12 / 20

Παράδειγμα 2 Δείξτε ότι η συνάρτηση f(n) = n 2 δεν είναι O(n) Αν η f(n) = n 2 ήταν O(n) τότε θα έπρεπε να ισχύει ότι n 2 cn για κάποιες θετικές σταθερές c και n 0 και n n 0 13 / 20

Παράδειγμα 2 Δείξτε ότι η συνάρτηση f(n) = n 2 δεν είναι O(n) Αν η f(n) = n 2 ήταν O(n) τότε θα έπρεπε να ισχύει ότι n 2 cn για κάποιες θετικές σταθερές c και n 0 και n n 0 Όμως αν ισχύει n 2 cn n c αυτό σημαίνει ότι υπάρχει σταθερά c μεγαλύτερη ή ίση από οποιαδήποτε τιμή από το σύνολο των ακεραίων τιμών (άτοπο άρα δεν ισχύει η αρχική υπόθεση ότι η n 2 ήταν O(n)) 13 / 20

Παράδειγμα 3 Δείξτε ότι η συνάρτηση f(n) = 2 n+5 είναι O(2 n ) Αν η f(n) = 2 n+5 είναι O(2 n ) θα πρέπει να ισχύει ότι 2 n+5 c2 n n n 0 για κάποιες θετικές σταθερές c και n 0 14 / 20

Παράδειγμα 3 Δείξτε ότι η συνάρτηση f(n) = 2 n+5 είναι O(2 n ) Αν η f(n) = 2 n+5 είναι O(2 n ) θα πρέπει να ισχύει ότι 2 n+5 c2 n n n 0 για κάποιες θετικές σταθερές c και n 0 Ισχύει ότι 2 n+5 = 2 n 2 5 = 2 n 32 Άρα αν επιλεγεί ως c η τιμή 32 και ως n 0 η τιμή 1 τότε ισχύει ότι 2 n+5 <= 32 2 n n 1 14 / 20

Παράδειγμα 4 Δείξτε ότι η συνάρτηση f(n) = a k n k + a k 1 n k 1 + + a 1 n + a 0 είναι O(n k ) f(n) = a k n k + a k 1 n k 1 + + a 1 n + a 0 a k n k + a k 1 n k 1 + + a 1 n + a 0 a k n k + a k 1 n k + + a 1 n k + a 0 n k Άρα για c = a k + a k 1 + + a 1 + a 0 και n 0 = 1 ισχύει ότι f(n) = a k n k + a k 1 n k 1 + + a 1 n + a 0 cn k n 1 15 / 20

Παράδειγμα 5 Δείξτε ότι η συνάρτηση f(n) = 2 5n δεν είναι O(2 n ) Αν η f(n) = 2 5n ήταν O(2 n ) τότε θα έπρεπε να ισχύει ότι 2 5n c2 n n n 0 για κάποιες θετικές σταθερές c και n 0 16 / 20

Παράδειγμα 5 Δείξτε ότι η συνάρτηση f(n) = 2 5n δεν είναι O(2 n ) Αν η f(n) = 2 5n ήταν O(2 n ) τότε θα έπρεπε να ισχύει ότι 2 5n c2 n n n 0 για κάποιες θετικές σταθερές c και n 0 Όμως αν ισχύει 2 5n c2 n 25n 2 n c2n 2 2 4n c αυτό σημαίνει n ότι υπάρχει σταθερά c μεγαλύτερη ή ίση από μια αυθαίρετα μεγάλη τιμή η οποία μπορεί να σχηματιστεί επιλέγοντας κατάλληλο n (άτοπο άρα δεν ισχύει η αρχική υπόθεση ότι η f(n) = 2 5n είναι O(2 n )) 16 / 20

Ο συμβολισμός Ω H f(n) = Ω(g(n)) αν υπάρχουν θετικές σταθερές c, n 0 τέτοιες ώστε f(n) cg(n) για κάθε n n 0 δηλαδή για επαρκώς μεγάλα n ισχύει ότι το f(n) είναι κάτω φραγμένο από ένα πολλαπλάσιο του g(n) 17 / 20

Ο συμβολισμός Θ H f(n) = Θ(g(n)) αν υπάρχουν θετικές σταθερές c 1, c 2, n 0 τέτοιες ώστε c 1 g(n) f(n) c 2 g(n) για κάθε n n 0 δηλαδή για επαρκώς μεγάλα n ισχύει ότι το f(n) είναι φραγμένο από πάνω και από κάτω από πολλαπλάσια του g(n) 18 / 20

Οι συμβολισμοί ο, ω, θ Οι συμβολισμοί ο, ω, θ διαφέρουν από τους αντίστοιχους Ο, Ω, Θ στο ότι είναι αυστηρότεροι καθώς επιβάλλουν για κάθε σταθερά c > 0 να υπάρχει σταθερά n 0 έτσι ώστε να ισχύει η κατά περίπτωση ανισότητα Για παράδειγμα στην περίπτωση του συμβολισμού ο θα πρέπει να ισχύει ότι f(n) cg(n) για κάθε θετική σταθερά c και για κάθε n n 0 19 / 20

Αναφορές http://csanueduau/~alistairrendell/teaching/ apac_comp3600/module1/growth_of_functionsxhtml http://enwikipediaorg/wiki/logarithmic_scale http://xkcdcom/1162/ 20 / 20