Διάλεξη -5: -Πολυπλοκότητα Αλγορίθμων / Επανάληψη Χρήσιμων Μαθηματικών Ορισμών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Αλγόριθμοι, Κριτήρια Αξιολόγησης Αλγόριθμων, Γιατί αναλύουμε τους Αλγόριθμους - Εμπειρική Θεωρητική Ανάλυση Αλγορίθμων, Αρχή Σταθερότητας - Εργαλεία εκτίμησης πολυπλοκότητας: οι τάξεις Ο), Ω), Θ ) - Γραφική Απεικόνιση Ο), Ω), Θ ) - Παραδείγματα Ανάλυσης Πολυπλοκότητας - Χρήσιμοι μαθηματικοί ορισμοί - Μαθηματική Επαγωγή Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Αλγόριθμοι Αλγόριθμος:είναι μια πεπερασμένη ακολουθία εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, οι οποίες αν ακολουθηθούν επιτυγχάνεται κάποιο επιθυμητό αποτέλεσμα. Προγράμματα:Υλοποίηση αλγορίθμου σε μια γλώσσα προγραμματισμού Ένα σωστό πρόγραμμα δεν είναι αρκετό Τι είναι σημαντικό σε ένα Αλγόριθμο; Ορθότητα:όταν τα δεδομένα εισόδου ικανοποιούν τις αναγκαίες συνθήκες, τότε το πρόγραμμα τερματίζει με το αναμενόμενο αποτέλεσμα. Χρόνος Εκτέλεσης: Ο χρόνος που χρειάζεται το πρόγραμμα για να δημιουργήσει το αναμενόμενο αποτέλεσμα. Απαίτηση στην Μνήμη, Δίκτυο, Μαγνητικό Δίσκο ανάλογα με την εφαρμογή): Τους υπολογιστικούς πόρους τους οποίους χρειάζεται η εφαρμογή, πέρα από τον επεξεργαστή, για να δημιουργηθεί το αναμενόμενο αποτέλεσμα. ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ανάλυση Αλγορίθμων Θέλουμε να μπορούμε να υπολογίζουμε τον χρόνο εκτέλεσης ενός αλγορίθμου / και να τον βελτιώνουμε, προτούτον τρέξουμε σε κάποια μηχανή. Η σημερινή διάλεξη θα απαντήσει τις ερωτήσεις: Τι είναι η θεωρητική ανάλυση ενός αλγόριθμου; Ποια είναι τα κριτήρια ανάλυσης αλγορίθμων; Πως παριστάνουμε και υπολογίζουμε την απόδοση ενός αλγορίθμου με μαθηματικά εργαλεία; ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3
Ανάλυση Αλγορίθμων Γιατί? Γιατί πρέπει να αναλύσουμε την πολυπλοκότητα ενός αλγορίθμου; Όταν ένα πρόγραμμα πρόκειται να επεξεργαστεί ένα μεγάλο όγκο δεδομένων, πρέπει να βεβαιωθούμε ότι θα τερματίσει σε αποδεκτά χρονικά πλαίσια. Αν ένας αλγόριθμος εύρεσης του πιο φθηνού εισιτηρίου σε ένα ηλεκτρονικό σύστημα αεροπορικών κρατήσεων θέλει μήνες για να εκτελεστεί, τότε το σύστημα δεν είναι χρήσιμο. Η θεωρητική ανάλυση, επιτρέπει σε ένα προγραμματιστή να υπολογίσει με την χρήση μαθηματικών εργαλείων τον αναμενόμενο χρόνο προτού κωδικοποιήσει το πρόγραμμα. Εάν ο αναμενόμενος χρόνος είναι πολύ μεγάλος, τότε θα σχεδιάσει κάποιο βελτιωμένο αλγόριθμο. ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Εμπειρική Θεωρητική Ανάλυση Αλγορίθμων Ένας αλγόριθμος μπορεί να μελετηθεί: Εμπειρικά,μετρώντας το χρόνο και χώρο εκτέλεσής του σε συγκεκριμένο υπολογιστή. Μπορούμε να υλοποιήσουμε τον αλγόριθμο και να μετρήσουμε τον χρόνο με την βιβλιοθήκη <tme.h> Θεωρητικά,μπορούμε να υπολογίσουμε το χρόνο και το χώρο που απαιτεί ο αλγόριθμος σαν συνάρτηση του μεγέθουςτων εξεταζομένων στιγμιότυπων. π.χ. Πρόβλημα: ταξινόμηση λίστας. Στιγμιότυπο: λίστα με στοιχεία. Μέγεθος: Τυπικά, μέγεθος ενός στιγμιότυπουαντιστοιχεί στο μέγεθος της μνήμης που απαιτείται για αποθήκευση του στιγμιότυπου στον υπολογιστή. Θεωρητική Ανάλυση Vs. Εμπειρική Ανάλυση Η θεωρητική ανάλυση:. δεν εξαρτάται από τουλικό του Η/Υ μνήμη, cache, κλπ). δεν εξαρτάται από τη γλώσσα προγραμματισμού ή το μεταφραστή 3. δεν εξαρτάται από τις ικανότητες του προγραμματιστή.. δεν απαιτεί την υλοποίηση του αλγόριθμου προτού την δοκιμή! 5. είναι ΓΕΝΙΚΗ ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 5
Θεωρητική Ανάλυση Αλγορίθμων Κάνουμε χρήση μιας υψηλού επιπέδου περιγραφής του αλγόριθμου και όχι της υλοποίησης του δηλαδή χρήση Ψευδοκώδικα. Θα χαρακτηρίσουμε τον χρόνο εκτέλεσης του αλγόριθμου σαν συνάρτηση του μεγέθους των δεδομένων, N Η ανάλυση μας θα λάβει υπόψη όλες τις δυνατές εισόδους. π.χ. βρείτε τον αριθμό 5σε ένα πίνακα ακέραιων. - Στην καλύτερη περίπτωση: το βρίσκουμε στην πρώτη θέση - Στην χειρότερη περίπτωση: δεν τον βρίσκουμε καθόλου Επομένως, ένα αλγόριθμος μπορεί να εκτελείται γρηγορότερασε συγκεκριμένα σύνολα δεδομένων από ότι σε κάποια άλλα. Η εύρεση της μέσης περίπτωσηςείναι συνήθως δύσκολη, για αυτό οι αλγόριθμοι μετριούνται με βάση την χειρότερη περίπτωση. Σε συγκεκριμένα πεδία ar traffc cotrol, συστήματα πραγματικού χρόνου, κτλ), η γνώση της χειρότερης περίπτωσης είναι πολύ σημαντική ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 6
Παράδειγμα Ανάλυσης Υποθέστε ότι θέλετε να βρείτε το μεγαλύτερο στοιχείο σε μια λίστα θετικών ακεραίων. t largest t X[], t ){ } t curret, ; whle < ){ } f X[] > curret){ } curret X[]; // σημείωσε τον μεγαλύτερο ; retur curret; Μέγεθος δεδομένων εισόδου: Στόχος: υπολογισμός του αριθμού βασικών πράξεων Χειρότερη Περίπτωση: εξέταση όλων των στοιχείων t) Βέλτιστη Περίπτωση: εξέταση όλων των στοιχείων t) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 7
Παράδειγμα Ανάλυσης Αν ήταν ταξινομημένη η λίστα σε αύξουσα σειρά) τότε το μεγαλύτερο στοιχείο μπορεί να βρεθεί σε σταθερό χρόνο δηλαδή πάντα το τελευταίο στοιχείο). t largest t X[], t ){ f <) retur -; // error; retur X[-]; } Μέγεθος δεδομένων εισόδου: Χειρότερη Περίπτωση: εξέταση τελευταίου στοιχείου t) Βέλτιστη Περίπτωση: εξέταση τελευταίου στοιχείου t) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 8
Μονάδα Σύγκρισης της Αποδοτικότητας Η αρχή της σταθερότητας Δύο διαφορετικές υλοποιήσεις του ίδιου αλγορίθμου σε διαφορετικές μηχανές ήσε διαφορετικές γλώσσες ή από διαφορετικούς προγραμματιστές) δεν διαφέρουνστο χρόνο εκτέλεσής τους περισσότεροαπό κάποιο σταθερό πολλαπλάσιο.δηλ. αν E είναι o χρόνος εκτέλεσης της μίας υλοποίησης και E της άλλης, τότεισχύει E c E για κάποια σταθερά c. Για παράδειγμα έχουμε ένα πρόγραμμα το οποίο ταξινομεί ένα πίνακα μεγέθους Ν, στον υπολογιστή PC του σπιτιού μας σε χρόνο Ε και σε ένα ΙΒΜ ΒlueGeeσε χρόνο Ε. Παρατηρούμε ότι ισχύει:ε,, * Ε Η σταθερά c,, δενεξαρτάται από το Ν αλλά από το περιβάλλον εκτέλεσης μεταγλωττιστής, υλικό, λειτουργικό σύστημα, κτλ). Επομένως εάν αυξηθεί το Ν, τότε και πάλι θα εκτελείται,, πιο αργά στο PC μας ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 9
Σύγκριση Πολυπλοκότητας Αλγορίθμων Για την αξιολόγηση των διαφόρων αλγορίθμων χρησιμοποιούνται διάφορα μεγέθη. : μέγεθος του προβλήματος T): Ο χρόνος εκτέλεσης T) Σύγκριση Πολυπλοκοτήτων t) Περιγραφή ένα) Σταθερός costat) 3 c, log Γραµµικός lear) Πολυωνυµικός polyomal) Τετραγωνικός δευτεροβάθµιος quadratc), π.χ., Shortest Path Djstra Κυβικός -τριτοβάθµιος cubc), π.χ., All- Par-Shortest Path Floyd-Warshall Εκθετικός expoetal) Λογαριθµικός logarthmc) Olg ) O) O ) O 3 ) O ) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ρυθμός Αύξησης μιας Συνάρτησης Ο ρυθμός αύξησης μιας συνάρτησης είναι σημαντικός όταν ο αριθμός των δεδομένων εισόδου N, είναι σημαντικά μεγάλος. Για 6 και 6 Για.6* 3 και, Εάν ένας αλγόριθμος εκτελείται σε και μια άλλη έκδοση πράξεις τότε για μικρές τιμές θα έχουν παρόμοιο χρόνο εκτέλεσης. Για μεγάλες τιμές αυτό βέβαια δεν ισχύει! ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ρυθμός Αύξησης μιας Συνάρτησηςσυν.) O) 3 5 5 Log.6 secod.7 secod.8 secod.9 secod. secod.5 secod.8 secod.6 secod. Secod.8 secod.3 secod.6 secod.3 secod.6 secod.6 secod. secod.5 secod.5 secod.6 secod.6 secods 6. secods 3.6 secod.8 secod.6 secod.75 secod 6. secods.5 mutes.66 ΩΡΕΣ.6 secod.96 secod.86 secod 37.5 secod. mutes.3 ΗΜΕΡΕΣ.3 ΜΗΝΕΣ 5.6 secod 9. secods.3 mutes 3.5 mutes 6.66 ΩΡΕΣ 6. ΧΡΟΝΙΑ ΑΙΩΝΕΣ.5 secod 5. secods.5 ΩΡΕΣ ΑΙΩΝΕΣ ΑΙΩΝΕΣ ΧΙΛ/ ΕΣ ΑΙΩΝΕΣ ΧΙΛ/ ΕΣ ΑΙΩΝΕΣ 3.3 secod.8 ΩΡΕΣ 3. ΧΡΟΝΙΑ ΧΙΛ/ ΕΣ ΑΙΩΝΕΣ ΧΙΛ/ ΕΣ ΑΙΩΝΕΣ ΗΛΙΚΙΑ ΓΗΣ ΗΛΙΚΙΑ ΓΑΛΑΞΙΑ!.36 mutes.5 ΩΡΕΣ ΑΙΩΝΕΣ ΧΙΛ/ ΕΣ ΑΙΩΝΕΣ ΗΛΙΚΙΑ ΗΛΙΟΥ ΗΛΙΚΙΑ ΓΑΛΑΞΙΑ Μέγεθος Προβ/τος Προβλήµατα Μικρού Μεγέθους Προβλήµατα Μεσαίου Μεγέθους Προβλήµατα Μεγάλου Μεγέθους ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ρυθμός Αύξησης μιας Συνάρτησηςσυν.) Σημειώστε ότι η τιμή μιας συνάρτηση, καθορίζεται κυρίως από τον μεγαλύτερο όρο για μεγάλες τιμές του. Π.χ. Ένας αλγόριθμος μας θέλει f) χρόνο για να ολοκληρώσει: f) * 3 * 8 Για f),,,8 Χρησιμοποιώντας μόνο τον πιο μεγάλο όρο * 3,,, θα μπορούσαμε να υπολογίσουμε τον χρόνο εκτέλεσης του προγράμματος με 99.99% ακρίβεια! Επομένως τα * 8 είναι αχρείαστα στην ανάλυση μας ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3
Μοντέλο Υπολογισμού της ανάλυσης μας Υπολογιστής που εκτελεί οδηγίες διαδοχικά όχι παράλληλες μηχανές). Βασική πράξηθεωρούμε ότι είναι οποιαδήποτε πράξητης οποίας ο χρόνος εκτέλεσης είναι φραγμένος από κάποια σταθερά δηλ. c, για κάποια σταθερά c).π.χ., μαθηματικές πράξεις πρόσθεση, αφαίρεση ), σύγκριση, καταχώρηση μεταβλητής, επιστροφή αποτελέσματος. Συνεπώς ο χρόνος εκτέλεσηςμιας βασικής πράξης μπορεί να προσδιοριστεί ανεξάρτητααπό το στιγμιότυπο πχ 3 ή 3 θέλουν τον ίδιο ακριβώς χρόνο εκτέλεσης). Επειδή ορίζουμε το χρόνο εκτέλεσης ενός αλγορίθμου με την έννοια του σταθερού πολλαπλασίου c, για την ανάλυση θα χρειαστούμε μόνο τον αριθμό των βασικών πράξεωνπου εκτελούνται από ένα αλγόριθμο και όχι τον ακριβή χρόνοπου απαιτούν η κάθε μια. Άρα για τον υπολογισμό του χρόνου εκτέλεσης ενός αλγόριθμου απλά μετρούμε τον αριθμό των βασικών πράξεων που εκτελεί. ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ασυμπτωτική Προσέγγιση: Bg-O Μας επιτρέπει να υπολογίσουμε τον ρυθμό αύξησης μιας συνάρτησης χωρίς να ανησυχούμε για: a) σταθερά πολλαπλάσια c) ή b) για μικρότερους όρους, οι οποίοι έτσι και αλλιώς δεν επηρεάζουν τον χρόνο εκτέλεσης ενός προγράμματος. Επομένως δεν έχουμε να ανησυχούμε για το υλικό, μεταγλωττιστή, κτλ. με τα οποία θα εκτελεστεί ο αλγόριθμος μας. Η προσέγγιση Bg-O, μας επιτρέπει να ορίσουμε μια σχετική σειρά στις συναρτήσεις συγκρίνοντας τους επικρατέστερους όρους. π.χ. ένας αλγόριθμος θέλει f) 7 πράξεις ενώ ένας άλλος θέλει g) 3 πράξεις τότε ξέρουμε ότι o πρώτος εκτελείται πιο γρήγορα για μεγάλες τιμές του ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 5
Εργαλεία Εκτίμησης Πολυπλοκότητας Ορισμός: Θεωρούμε συνάρτηση Τ). Ορίζουμε f)μπορεί να είναι οποιαδήποτε συνάρτηση>,, lg. Τ) Ο f) ), αν υπάρχουν σταθερές c>και ώστε Τ) c f),για κάθε.. Τ) Ω f) ), αν υπάρχουν σταθερές c> και ώστε Τ) c f),για κάθε. 3. Τ) Θ f) ), αν Τ) Οf)) καιτ) Ωf)). Αν Τ) Οf)), τότε λέμε πως η συνάρτηση Τ είναι τηςτάξεως f). Αν Τ) Ωf)), τότε λέμε πως η Τ είναι της τάξεως ωμέγα της f). Αν Τ) Θf)), τότε λέμε πως η Τ είναι της τάξεως θήτα της f). λέγεται και ακριβής τάξη) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 6
Γραφική Απεικόνιση Βg-O H συνάρτηση fx) είναι Ogx)) ηλαδή υπάρχουν σταθερές c> και ώστε: f) c g),για κάθε. H συνάρτηση x x είναι Οx ) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 7
Γραφική Απεικόνιση Βg-Ω και Bg-Θ H συνάρτηση f) ε Ωg)) Δηλαδήυπάρχουν σταθερές c>και ώστε: f) c g),για κάθε. H συνάρτηση f) ε Θg)) Δηλαδήυπάρχουν σταθερές c >,c >και ώστε: c.g) f) c.g), για κάθε. ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 8
Παραδείγματα Βg-O Παράδειγμα 7-3 είναι Ο) Τεκμηρίωση Πρέπει να δείξουμε ότι υπάρχει c>, o έτσι ώστε: 7-3 c*, Για c7, o η παραπάνω ανισότητα ικανοποιείται, επομένως 7-3 είναι Ο) π.χ., 7*-3 7* 7) 7*-3 7* ) 7*3-3 7*3 8 ) κοκ ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 9
Παραδείγματα Βg-O Παράδειγμα 3 log5 είναι Ο 3 ) Τεκμηρίωση Πρέπει να δείξουμε ότι υπάρχει c>, o έτσι ώστε 3 log5 c* 3 3 log5 3 3 5 3 3 3 5 3 35 3 >) Για c35, o η παραπάνω ανισότητα ικανοποιείται, επομένως 3 log5 είναι Ο 3 ) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ιδιότητες Bg-O Στις περισσότερες περιπτώσεις μας ενδιαφέρει μόνο το άνω φράγμα χείριστη περίπτωση εκτέλεσης ενός αλγορίθμου), δηλαδή το O. Η συνάρτηση O έχει τις ακόλουθες ιδιότητες:. OXY) OX) OY) max OX),OY)). OX*Y) OX)*OY) OX *Y) 3. Oc *X) OX) c σταθερά > ) Ισχύει η ακόλουθη σειρά < log < < log < < 3 < <! < < είναι ασυµπτωτικά µικρότερο Παράδειγμα Έστω ότι ένας αλγόριθμος έχει την ακόλουθη συνάρτηση αύξησης f) 6 log 3 7 Τότε απλοποιούμε την συνάρτηση αύξησης ως εξής 6 logδιαγράφουμε τις μικρότερες τιμές του Κανόνας ) logδιαγράφουμε τις σταθερές Κανόνας 3) δηλαδήf) ε Ο log) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Παραδείγματα Ιδιοτήτων Bg-O Παραδείγματα: 5 3 Ο) * 7 ) Ο 7 ) 3 Ο) 7 )*m Ο 7 m ) 5 O ) 5lg Οlg) Προφανώς, κατά την ανάλυση αλγορίθμων στόχος μας είναι αυτά τα όρια να είναι όσο το δυνατό πιο ακριβή. Εάν 7- είναι Ο), τότε προφανώς 7- είναι Ο ), Ο 3 ), Ο ),. Ωστόσο, οι χαρακτηρισμοί bg-o πρέπει να είναι όσο το δυνατό πιο μικρής τάξης. δηλαδή το Ο)είναι το πιο στενό άνω όριο). ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ασυμπτωτική Ανάλυση Ασυμπτωτικά Μικρότερο Asymptotcally Smaller) < σημαίνει: είναι ασυμπτωτικά μικρότερο. Έστω ότι q) και p), δυομη-αρνητικές συναρτήσεις. Το q)<p), εάν ισχύει: q ) lm > p ) To p) ασυμπτωτικά επικρατεί domates) το q). Παράδειγμα: Αποδείξτε ότι ισχύει7< 3 6 7 lm > 3 6 7 6 3 3 3 ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3
Παράδειγμα Ανάλυσης Υποθέστε ότι θέλετε να βρείτετην θέση κάποιο στοιχείου K σε µια λίσταχ[] µήκους ). t dex t X[],t,t ){ t ; whle < ) { 3 f X[]) // tem foud retur ; 5 ; } 6 retur error; } Μέγεθος δεδομένων εισόδου: Χειρότερη Περίπτωση: εξέταση όλων των στοιχείων π.χ. ψάχνουμε το 5) t) > O) Βέλτιστη Περίπτωση: το στοιχείο βρίσκετε στην θέση π.χ. ψάχνουμε το 3) t) > Ω) Άρα εκτός από το μέγεθος εισόδουκαι το ίδιο το στιγμιότυπο εισόδουπαίζει κάποιο σημαντικό ρόλο στην ανάλυση κάποιου αλγορίθμου η συνάρτησης) Χ 7? > θέση 3 7 9 5 ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.
Ανάλυση Χειρίστης Περίπτωσης Στις περισσότερες περιπτώσεις, μας ενδιαφέρει η ανάλυση χείριστης περίπτωσης, επειδή μας δίδει ένα άνω φράγμα στον χρόνο εκτέλεσης ενός αλγόριθμου. Αν D είναι το σύνολο όλων των εισόδωνστιγμιότυπων*)μεγέθους, και ti) ο αριθμός βασικών πράξεων που εκτελούνται από τον αλγόριθμο για κάθε I D τότε ορίζουμε την : Πολυπλοκότητα Χειρίστης Περίπτωσης: W) max {ti) I D } Δηλαδή, ο ορισμός δίνει ένα άνω φράγμα upper boud)της πολυπλοκότητας του αλγορίθμου. * D { {3,,7,,9,5}, {,3,7,,9,5},., 6!7 διατάξεις) } ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 5
Ανάλυση Μέσης Περίπτωσης Υποθέτουμε πως μπορούμε να αντιστοιχίσουμε μια πιθανότητα pi) σε κάθε είσοδο I D. Ορίζουμε την πολυπλοκότητα Μέσης Περίπτωσης ως A ) p I) t I) Παράδειγμα:Ψάχνουμε το 3 σε μια λίστα 6 αριθμών) To3 μπορεί να βρίσκεται σε μια από τις πιο κάτω θέσεις: Ι {3,x,x,x,x,x} Ι {x,3,x,x,x,x} Ι 3 {x,x,3,x,x,x} Ι {x,x,x,3,x,x} Ι 5 {x,x,x,x,3,x} Ι 6 {x,x,x,x,x,3} Υποθέτουμε ότι και οι 6 καταστάσεις έχουν πιθανότητα εμφάνισης pi)/ Πολυπλοκότητα Μέσης Περίπτωσης D ti): αριθ. βασικών πράξεων pi): Πιθανότητα εµφάνισης στιγµιοτύπου / * πράξη) / * πράξεις) / * 3 πράξεις) / * πράξεις) / * 5 πράξεις) / * 6 πράξεις) A ) D. ) ) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 6
Παράδειγμα : Υπολογισμός Χρόνου Εκτέλεσης Υποθέστε ότι ένα πρόβλημα επιλύνεται με τον πιο κάτω κώδικα: t ; for ; <; ) ; // Ανάλυση ; // H βασική πράξη η οποία χρειάζεται Ο) χρόνο Ο αλγόριθμος εκτελεί την βασική πράξη φορές O αλγόριθμος έχει πολυπλοκότητα της τάξης O) Στην βέλτιστη περίπτωση χρειάζεται Ω) > O) & Ω) > Θ) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 7
Επανάληψη Χρήσιμων Μαθηματικών Ορισμών Ορισμός: log x a b ff x b a Χρήσιμοι νόμοι λογάριθμων: log ab log a log b log a b b. log a log a b log a log b log a b log c b) log c a) b log bx x log a log log ) log * log log log logxlog log commo), log e l-atural), log lg-bary) π.χ.,log log log δεν ορίζεται Ορισμός : π.χ., x max{ a a x,t a)} x m{ a a x,t a)} 63 floor) celg) 5.7 6, 5.63 5 ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 8
Ακολουθίες και Αθροίσματα ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 9 * log log log Το οποίο προκύπτει αλλιώς ως: Άθροισμα Γεωμετρικής Προόδου... / / 6 ) ) ) log a a a
Μαθηματική Επαγωγή Στόχος Να αποδειχθεί ότι η μαθηματική) πρόταση Π) ισχύει για κάθε. Μέθοδος. Επαληθεύουμε πως η Π ισχύει για,. Υποθέτουμε πως η Π ισχύει για και 3. Αποδεικνύουμε πως η Π ισχύει για. Παραλλαγές Αντί του, σε ορισμένες περιπτώσεις ενδιαφερόμαστε για a, όπου το a είναι κάποιος ακέραιος. Στο δεύτερο βήμα: Υποθέτουμε πως η Π ισχύει για και αποδεικνύουμε πως η Π ισχύει για. ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3
Λογική πίσω από την Μαθηματική Επαγωγή Έστω ότι κάποιος ισχυρίζεται ότι ο ακόλουθος τύπος ισχύει πάντα Καλούμαστε να αποδείξουμεδηλαδή να δείξουμε ότι για κάθε τιμή του Χ ισχύει) η να το διαψεύσουμεότι δηλ., υπάρχει κάποια τιμή του που κάνει αναληθή τον ισχυρισμό. Δοκιμή για :*)/ το οποίο είναι το ίδιο με το! Δοκιμή για : *3)/ 3το οποίο είναι το ίδιο με το! Δοκιμή για 3: 3*)/ 6το οποίο είναι το ίδιο με το 3! Δοκιμή για : *5)/ το οποίο είναι το ίδιο με το 3!. Ας υποθέσουμε ότι ισχύει και για ) Μπορούμε να δείξουμε ότι ισχύει και για με βάσει την προηγούμενη υπόθεση; Εάν ναι τότε το έχουμε αποδείξει. Εάν όχι τότε δεν το έχουμε διαψεύσει, απλά δεν έχουμε βρεί την απάντηση! ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3
Παράδειγμα Τυπική Απόδειξη Να αποδείξετε ότι. Απόδειξη: Θα αποδείξουμε με τη μέθοδο της μαθηματικής επαγωγής την πρόταση Π) ). Επαληθεύουμε την Π) ως εξής: ) ). Υποθέτουμε ότι ισχύει η Π), δηλαδή ότι ) 3. Και θα αποδείξουμε ότι ισχύει η Π): Επαγωγική υπόθεση ) ) ) ) ) ) ) ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3
Παράδειγμα Τυπική Απόδειξη Να αποδείξετε ότι Απόδειξη: Θα αποδείξουμε με τη μέθοδο της μαθηματικής επαγωγής την πρόταση Π). Επαληθεύουμε την Π) ως εξής:. Υποθέτουμε ότι ισχύει η Π), δηλαδή ότι 3. Και θα αποδείξουμε ότι ισχύει η Π): ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 33 3 ) 3 ) ) 3 <> 3 ) ) ) ) ) ) ) ) )) ) )) ) ) ) ) ) ) 3 3 3 3 3 ) ) ) 3
Παράδειγμα 3 Τυπική Απόδειξη Να αποδείξετε ότι Απόδειξη: 3 <! για >7. Θα αποδείξουμε με τη μέθοδο της μαθηματικής επαγωγής την πρόταση Π) 3 <! για >7. 3 7 87 < 7!. Επαληθεύουμε την Π7) ως εξής:. 5. Υποθέτουμε ότι ισχύει η Π), δηλαδή ότι 3 <!. 3. Και θα αποδείξουμε ότι ισχύει η Π): 3 < )! 3 3. 3 < 3.! [Επαγωγική υπόθεση] < ).! [Για >7 ισχύει πάντα >3)] < )! [Το οποίο είναι το ζητούµενο] ΕΠΛ35 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3