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

Σχετικά έγγραφα
Υπολογιστική Πολυπλοκότητα

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

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

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

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

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

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

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

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

Υπολογιστικό Πρόβληµα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

(Γραμμικές) Αναδρομικές Σχέσεις

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

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

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

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

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

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

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

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

Αλγόριθµοι Προσέγγισης για NP- ύσκολα Προβλήµατα

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

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

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

για NP-Δύσκολα Προβλήματα

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

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Μέγιστη Ροή Ελάχιστη Τομή

Γράφοι: κατευθυνόμενοι και μη

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης

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

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

Μέγιστη Ροή Ελάχιστη Τομή

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

Αλγόριθμοι Εύρεσης Ομοιοτήτων Ακολουθιών

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

Μη Ντετερμινισμός και NP-Πληρότητα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Συντομότερες Διαδρομές

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

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

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

Θεωρήµατα Ιεραρχίας Ειδικά Θέµατα Υπολογισµού και Πολυπλοκότητας, Μάθηµα Βασικής Επιλογής Εαρινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

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

Transcript:

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

Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθμου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση μεγέθους στιγμιότυπου εισόδου. Χρόνος, μνήμη, επεξεργαστές, επικοινωνία, τυχαιότητα. Χειρότερης, μέσης, καλύτερης περίπτωσης. Μέγεθος στιγμιότυπου εισόδου n : #bits για αναπαράσταση δεδομένων εισόδου στη μνήμη. Πλήθος βασικών συνιστωσών που αποτελούν μέτρο μεγέθους και δυσκολίας στιγμιότυπου (π.χ. κορυφές & ακμές γράφου). Υπολογιστική πολυπλοκότητα προβλήματος Π: Πολυπλοκότητα (χειρότερης/μέσης/καλύτερης περίπτωσης) καλύτερου αλγόριθμου που λύνει πρόβλημα Π. Ασυμπτωτικός Συμβολισμός 2

Ανάλυση Αλγορίθμου Απόδειξη ορθότητας Μερικές φορές για ένα καλώς ορισμένο υποσύνολο των στιγμιοτύπων εισόδου. Εκτίμηση υπολογιστικής πολυπλοκότητας. Χειρότερης, μέσης, και καλύτερης περίπτωσης. Επιλογή ανάλογα με απαιτήσεις εφαρμογής, στο μάθημα θα μελετήσουμε κυρίως πολυπλοκότητα χειρότερης περίπτωσης. Ασυμπτωτικός Συμβολισμός 3

Ασυμπτωτική Εκτίμηση Χρόνος εκτέλεσης αλγόριθμου Α: Αύξουσα συνάρτηση του Τ(n) που εκφράζει σε πόσο χρόνο ολοκληρώνεται ο Α όταν εφαρμόζεται σε στιγμ. μεγέθους n. Ενδιαφέρει η τάξη μεγέθους T(n) ισοδύναμα ρυθμός αύξησης T(n) και όχι ακριβής εκτίμηση Τ(n). Ακριβής εκτίμηση πολύ δύσκολη, εξαρτάται από υπολογιστικό περιβάλλον, υλοποίηση,... Τάξη μεγέθους είναι εγγενής ιδιότητα του αλγόριθμου. Δυαδική αναζήτηση έχει λογαριθμικό χρόνο. Γραμμική αναζήτηση έχει γραμμικό χρόνο. Ασυμπτωτική εκτίμηση αγνοεί σταθερές και εστιάζει σε τάξη μεγέθους, ισοδύναμα ρυθμό αύξησης. Ασυμπτωτικός Συμβολισμός 4

Ασυμπτωτικός Συμβολισμός... εκφράζει τα αποτελέσματα ασυμπτωτικής εκτίμησης. Θ( ) δηλώνει την ακριβή εκτίμηση τάξης μεγέθους. Θ(g(n)) σύνολο συναρτήσεων ίδιας τάξης μεγέθους με g(n). 5

Παραδείγματα Θ(1) a := b*c; απλές εντολές Θ(logn) if x<a[n/2] search(a[1,n/2]) δυαδική αναζήτηση Θ(n) for i:=1 to n do <Θ(1)> απλός βρόχος Θ(n logn) mergesort(α[1n/2]) ταξινόμηση mergesort(α[n/2+1,n]) με συγχώνευση merge(α[1,n/2],α[n/2+1,n]) Θ(n 2 ) for i:=1 to n dο διπλός βρόχος for j:=1 to n do <Θ(1)> Θ(2 n ) for all S {0,1} n do <Θ(1)> υποσύνολα Θ(n!) for all σ in S[n] do <Θ(1)> μεταθέσεις 6

Ασυμπτωτικός Συμβολισμός Ο O( ) δηλώνει άνω φράγμα στην τάξη μεγέθους. Ο(g(n)) σύνολο συναρτήσεων με τάξη μεγέθους που δεν υπερβαίνει τάξη μεγέθους g(n). Χρησιμοποιείται συχνά αντί του Θ (αν ενδιαφέρει μόνο άνω φράγμα 7

Ασυμπτωτικός Συμβολισμός ο ο( ) δηλώνει άνω φράγμα στην τάξη μεγέθους που δεν είναι ακριβές (υπερεκτίμηση). ο(g(n)) σύνολο συναρτήσεων με τάξη μεγέθους που υπολείπεται σημαντικά τάξης μεγέθους g(n). 8

Ασυμπτωτικός Συμβολισμός Ω Ω( ) δηλώνει κάτω φράγμα στην τάξη μεγέθους. Ω(g(n)) σύνολο συναρτήσεων με τάξη μεγέθους που δεν υπολείπεται τάξης μεγέθους g(n). 9

Ασυμπτωτικός Συμβολισμός ω ω( ) δηλώνει κάτω φράγμα στην τάξη μεγέθους που δεν είναι ακριβές (υποεκτίμηση). ω(g(n)) σύνολο συναρτήσεων με τάξη μεγέθους που υπερβαίνει σημαντικά τάξης μεγέθους g(n). 10

Ασυμπτωτικός Συμβολισμός f(n) = Θ(g(n)) ~ ασυμπτωτικά f(n) = g(n) f(n) = O(g(n)) ~ ασυμπτωτικά f(n) g(n) f(n) = o(g(n)) ~ ασυμπτωτικά f(n) << g(n) f(n) = Ω(g(n)) ~ ασυμπτωτικά f(n) g(n) f(n) = ω(g(n)) ~ ασυμπτωτικά f(n) >> g(n) Κάποιες απλές σχέσεις: O(g(n)) = o(g(n)) Θ(g(n)) * Ω(g(n)) = ω(g(n)) Θ(g(n)) * Θ(g(n)) = O(g(n)) Ω(g(n)) ο(g(n)) ω(g(n)) = * για «φυσιολογικές» συναρτήσεις πολ/τας Ω(g(n)) ο(g(n)) Θ(g(n)) ω(g(n)) Ο(g(n))

Ασυμπτωτικός Συμβολισμός Πολυώνυμο βαθμού d: Κάποια αθροίσματα: Επίσης: Ιεράρχηση: Ασυμπτωτικός Συμβολισμός 12

Κάποιες Ασκήσεις Ποιες από τις παρακάτω προτάσεις είναι αληθείς; 10 f(n) + 10 100 = O(f(n)) f(n) + g(n) = Θ(min{f(n), g(n)}) f(n) + g(n) = Ω(min{f(n), g(n)}) f(n) + g(n) = Ο(max{f(n), g(n)}) Ασυμπτωτικός Συμβολισμός 13

Κάποιες Ασκήσεις Να συμπληρωθεί ο πίνακας: Ασυμπτωτικός Συμβολισμός 14

Κάποιες Ασκήσεις Να βάλετε συναρτήσεις σε αύξουσα σειρά τάξης μεγέθους: Απάντηση: Ασυμπτωτικός Συμβολισμός 15

Κάποιες Ασκήσεις Σχεδιάσετε διάγραμμα Venn για τις κλάσεις συναρτήσεων: Ασυμπτωτικός Συμβολισμός 16

Πρακτικά Αποδοτικοί Αλγόριθμοι... έχουν πολυωνυμική (χρονική) πολυπλοκότητα. Π.χ. log n, n, n log n, n 2, n 3,... Χρόνοι n d, όπου d μεγάλο, σπάνιοι και βελτιώνονται. Εκθετική πολυπλοκότητα απαγορευτική για μεγάλα στιγμιότυπα! Π.χ. Αύξηση μεγεθών που λύνουμε σε συγκεκριμένο χρόνο όταν 10πλασιάζεται η ταχύτητα υπολογιστή:

Αποδοτική Επίλυση: Κλάση P Αλγόριθμος πολυωνυμικού χρόνου λύνει κάθε στιγμιότυπο σε χρόνο O(n d ), d σταθερά. Κλάση P : προβλήματα απόφασης που επιλύονται από αλγόριθμους πολυωνυμικού χρόνου. Reachability, shortest paths, MST, max flow, min cut, mincost flow, perfect matching, linear programming, Αξίωμα Cook-Karp : κλάση ευεπίλυτων προβλημάτων ταυτίζεται με κλάση P. Ασυμπτωτικός Συμβολισμός 18

Αποδοτική Επίλυση: Κλάση P Κλάση P : προβλήματα που λύνονται σε πολυωνυμικό χρόνο. Shortest paths, MST, max flow, min cut, min-cost flow, maximum matching, linear programming, Θέση Cook-Karp : P ταυτίζεται με ευεπίλυτα προβλήματα. Υπέρ θέσης Cook-Karp: Συνήθως πολυώνυμα μικρού βαθμού (π.χ. n, n 2, n 3 ). Αν μπορείς να το γράψεις μπορείς και να το υπολογίσεις! Δεκαπλασιασμός υπολογιστικής ισχύος: σημαντική αύξηση στο μέγεθος στιγμιότυπων που επιλύουμε. Κριτική στη θέση Cook-Karp: Ακραίες περιπτώσεις: θεωρείται πρακτικό το n 100 αλλά όχι το 2 n/1000! Γραμμικός Προγραμματισμός: Simplex vs. Ellipsoid. Ασυμπτωτικός Συμβολισμός 19

Συνοψίζοντας Ασυμπτωτικός συμβολισμός: εύχρηστο εργαλείο για περιγραφή πολυπλοκότητας αλγορίθμων και προβλημάτων Αγνοεί σταθερές => ανεξαρτησία από υπολογιστικό σύστημα Εκφράζει τάξη μεγέθους και τάξη ρυθμού αύξησης πολυπλοκότητας ως προς μέγεθος εισόδου Ιεράρχηση: Αποδοτική επίλυση: Ο(poly(n)) Ασυμπτωτικός Συμβολισμός 20