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

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

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

Transcript

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

2 Περιεχόµενα 1. Εισαγωγή 1.1 Ανάλυση Αλγορίθµων 1.2 Ασυµπτωτική Πολυπλοκότητα 2. Αναδροµή 2.1 Divide and Conquer 2.2 Ασυµπτωτική προσέγγιση µερικών αθροισµάτων 2.3 έντρα απόφασης 2.4 The Master Theorem 2.5 Αναδροµικές γραµµικές εξισώσεις. 3. Σωροί 3.1 έντρα 3.2 Η δοµή σωρού 4. Κατακερµατισµός (Hashing) 4.1 Πίνακες άµεσης ιευθυνσιοδότησης 4.2 Πίνακες κατακερµατισµού 4.3 Συναρτήσεις κατακερµατισµού 4.4 Ανοιχτή ιευθυνσιοδότηση Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

3 Περιεχόµενα 5. Γράφοι 5.1 Ορισµοί 5.2 Ειδικές Κατηγορίες Γράφων 5.3 Πράξεις επί γράφων 5.4 Αποθήκευση γράφων 6. Αλγόριθµοι γράφων 6.1 Εξερεύνηση γράφων 6.2 Συνεκτικότητα 6.3 Τοπολογική ταξινόµηση 6.4 Πράξεις σε ασύνδετα σύνολα 6.5 Ελάχιστα µονοπάτια 6.6 έντρα επικάλυψης 7. Απληστοι Αλγόριθµοι 8. υναµικός Προγραµµατισµός 8.1 Βασικά στοιχεία του δυναµικού προγραµµατισµού 8.2 Εφαρµογές Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

4 Περιεχόµενα 9. Εξαντλητική Αναζήτηση 10. NP-πληρότητα 10.1 Οι κλάσεις πολυπλοκότητας P και NP 10.2 Προβλήµατα απόφασης και NP-πληρότητα. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

5 Εισαγωγή Η έννοια του αλγορίθµου είναι ϑεµελιώδης στον χώρο της επιστήµης των υπολογιστών. Wirth: οµές εδοµένων + Αλγόριθµοι = Προγράµµατα Προβλήµατα Η αποκωδικοποίηση του ανθρωπίνου DNA Στο διαδίκτυο, του οποίου το ολοένα και αυξανόµενο µέγεθος δηµιουργεί προβλήµατα στον εντοπισµό της χρήσιµης πληροφορίας. Στο ηλεκτρονικό εµπόριο και γενικότερα στην επικοινωνία µέσω διαδικτύου. Στον εµπορικό κόσµο, η επιλογή στρατηγικών αποτελεί ένα περίπλοκο πρόβληµα. α. δροµολόγησης σε µια αεροπορική εταιρεία, ϐ. του σχεδιασµού οδικών αξόνων, Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

6 Εισαγωγή Τι είναι όµως ένας αλγόριθµος; Πως ξεχωρίζουµε έναν καλό από έναν κακό αλγόριθµο; Πότε µπορούµε να κρίνουµε ότι ένας αλγόριθµος είναι ικανοποιητικός; Πως κατασκευάζονται αποδοτικοί αλγόριθµοι; Πως µπορούµε να εφαρµόζουµε έξυπνες αλγοριθµικές ιδέες στα προβλήµατα που αντιµετωπίζουµε; Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

7 Ανάλυση Αλγορίθµων Ενας αλγόριθµος είναι µια υπολογιστική διαδικασία που παίρνει µία ή περισσότερες τιµές σαν είσοδο και παράγει µία ή περισσότερες τιµές σαν έξοδο. Ετσι ένας αλγόριθµος είναι µία ακολουθία υπολογιστικών ϐηµάτων που µετασχηµατίζει την είσοδο σε έξοδο. 1 Να είναι πεπερασµένος. 2 Να είναι επακριβώς ορισµένος. 3 Να είναι ορθός. Μία διαδικασία που έχει όλα τα χαρακτηριστικά που αναπτύξαµε αλλά δεν είναι σίγουρο αν είναι πεπερασµένη, ονοµάζεται υπολογιστική µέθοδος. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

8 Ανάλυση Αλγορίθµων Επιπρόσθετα δεν σηµαίνει ότι κάθε αλγόριθµος µπορεί να προγραµµατιστεί, δηλαδή µια καλά ορισµένη αλγοριθµική διαδικασία δεν είναι απαραίτητο ότι είναι προγραµµατίσιµη. Χάριν απλότητας ϑα εννοήσουµε ταυτόσηµες τις έννοιες αλγόριθµος και πρόγραµµα. Ενα πρόγραµµα ϑα είναι χρήσιµο, αν εκτελείται σε λογικό χρόνο δεσµεύει λογικό χώρο µνήµης Πολυπλοκότητα χρόνου Πολυπλοκότητα χώρου Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

9 Ανάλυση Αλγορίθµων Η πολυπλοκότητα ενός αλγορίθµου εκφράζεται σαν συνάρτηση της διάστασης του υπό µελέτη προβλήµατος. Η διάσταση του προβλήµατος είναι το πλήθος των ατοµικών δεδοµένων για επεξεργασία. παράδειγµα το πλήθος των στοιχείων µιας ακολουθίας το πλήθος των στοιχείων ενός πίνακα το πλήθος των bits ενός αριθµού Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

10 Το πρόβληµα της Αναζήτησης ίνεται µια ακολουθία n στοιχείων S = (a 1, a 2,...,a n ) και ένα στοιχείο x. Είναι το x µέλος του S και αν ναι σε ποια ϑέση; Σειριακή Αναζήτηση(S, x) 1. i = 1 2. while i n+1 and a i x do 3. i = i end while 5. if i > n 6. return 1 7. else 8. return i 9. end if Σχήµα: Αλγόριθµος αναζήτησης ενός στοιχείου x σε µονοδιάστατο πίνακα S. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

11 Το πρόβληµα της Αναζήτησης Αν το x είναι το πρώτο στοιχείο της ακολουθίας, τότε ϑα κάνει 3 συγκρίσεις και µία καταχώρηση Αν το x είναι το δεύτερο στοιχείο της ακολουθίας, τότε ϑα κάνει 5 συγκρίσεις και 3 καταχωρήσεις Αν είναι το i-οστό στοιχείο ϑα κάνει 2i + 1 συγκρίσεις και i + 1 καταχωρήσεις. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

12 Το πρόβληµα της Αναζήτησης Αν D n το σύνολο των διαφορετικών εισόδων στο πρόβληµα και d D n µια είσοδό του Πολυπλοκότητα στην ϐέλτιστη περίπτωση: C βπ (n) = min{κόστος(d), d D n } Πολυπλοκότητα στην χείριστη περίπτωση: C χπ (n) = max{κόστος(d), d D n } Πολυπλοκότητα κατά µέσο όρο: C µo (n) = d D n p(d) κόστος(d) Για κάθε δυνατή είσοδο d D n που δίνεται µε πιθανότητα p(d) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

13 Το πρόβληµα της Αναζήτησης Παράδειγµα ίνεται η ταξινοµηµένη ακολουθία 1,..., n και σαν στοιχείο προς εξερεύνηση µας δίνεται ισοπίθανα ένα από τα{1, 2,..., 2n}. C µo (n) = 1 2n n n (2n+1)+ n 2n (2n+3) n = 1 2n i=1 (2i + 1)+ 2n+3 2 = 3n+5 2 Τότε όσον αφορά τις συγκρίσεις είναι στοιχειώδης πράξη, ο αλγόριθµος έχει 3 στην ϐέλτιστη 2n+3 στην χείριστη και περίπου 1.5n κατά µέσο όρο. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

14 Εσωτερικό γινόµενο δύο διανυσµάτων Εστω a = (a i ), b = (b i ) διανύσµατα τουr n. Ζητείται το εσωτερικό γινόµενο αυτών. 1. sp = 0 2. for i = 1 to n do 3. sp = sp+a i b i 4. end for 5. return sp Εσωτερικό Γινόµενο(a, b) Σχήµα: Υπολογισµός του εσωτερικού γινοµένου δύο ίσης διάστασης διανυσµάτων a και b. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

15 Εσωτερικό γινόµενο δύο διανυσµάτων Ανεξάρτητα από τους αριθµούς των ακολουθιών διανυσµάτων C βπ (n) = C χπ (n) = C µo (n) = n εν απαιτείται η καταµέτρηση όλων των διαφορετικών τύπων πράξεων Αρκεί η υπολογιστικά ϐαρύτερη πράξη Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

16 Ασυµπτωτική Πολυπλοκότητα Εστω ένα πρόβληµα µε διάσταση n (π.χ. η αναζήτηση σε µια ακολουθία) και έστω και δύο αλγόριθµοι που το λύνουν, ο A µε πολυπλοκότητα 100n και ο B µε πολυπλοκότητα n 2. Θεωρώντας σαν καλύτερο αυτόν που κάνει λιγότερες πράξεις για την ίδια είσοδο µπορούµε να διακρίνουµε τρεις περιπτώσεις ανάλογα µε το n = 100 Οι Α,Β έχουν ίδια πολυπλοκότητα n : < 100 Ο Β είναι αποδοτικότερος από τον Α > 100 Ο Α είναι αποδοτικότερός από τον Β Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

17 Ασυµπτωτική Πολυπλοκότητα Παρατηρήσεις Παρατηρούµε ότι µετά από ένα κατώφλι, όσο το n γίνεται µεγαλύτερο τόσο ο αλγόριθµος A γίνεται καλύτερος του B. ο ϱυθµός µε τον οποίο γίνεται ο A καλύτερος του B αυξάνει γραµµικά σε σχέση µε το n Για n = 1000 ο αλγόριθµος A εκτελείται σε 100n 10 6 = 0.1 δευτερόλεπτα και ο B σε n = 1 δευτερόλεπτο, δηλαδή είναι 10 ϕορές πιο αργός. Για n = ο Β είναι 100 ϕορές πιο αργός, κ.ο.κ. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

18 Ασυµπτωτική Πολυπλοκότητα Συµπέρασµα Αρα όσο αυξάνει το n τόσο η διαφορά της αποδοτικότητας γίνεται µεγάλη. Μας ενδιαφέρει τι γίνεται για µεγάλες διαστάσεις δεδοµένων µετά από ένα κατώφλι η τάξη της συνάρτησης πολυπλοκότητας είναι αυτή που καθορίζει την αποδοτικότητα του αλγορίθµου f(n) = O(g(n)) αν υπάρχουν c > 0, n 0 0 έτσι ώστε f(n) cg(n) για κάθε n n 0 f(n) = Ω(g(n)) αν υπάρχουν c > 0, n 0 0 έτσι ώστε f(n) cg(n) για κάθε n n 0 f(n) = Θ(g(n)) αν υπάρχουν c 1, c 2 > 0, n 0 0 έτσι ώστε 0 c 1 g(n) f(n) c 2 g(n) για κάθε n n 0. Εναλλακτικά, αν f(n) = O(g(n)) και f(n) = Ω(g(n)), τότε f(n) = Θ(g(n)) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

19 Σχήµα: Γραφική Απεικόνιση των συµβολισµών O, Ω, Θ Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53 Ασυµπτωτική Πολυπλοκότητα T T cg(n) f(n) f(n) cg(n) n 0 n n 0 n f(n) = O(g(n)) f(n) = Ω(g(n)) T c 2 g(n) f(n) c 1 g(n) n 0 n f(n) = Θ(g(n))

20 Ασυµπτωτική Πολυπλοκότητα Τα O(g(n)), Ω(g(n)), Θ(g(n)) είναι σύνολα συναρτήσεων. Στην πραγµατικότητα δηλαδή, έχουµε ότι f(n) O(g(n)), f(n) Ω(g(n)) ή f(n) Θ(g(n)) αλλά έχει επικρατήσει ο συµβολισµός της ισότητας. Η ισότητα είναι καθαρά συµβολισµός. Ασυµπτωτική συµπεριφορά της συνάρτησης πολυπλοκότητας f(n) = 3n 2 100n+6: 3n 2 100n+6 = O(n 2 ) αφού 3n 2 100n+6 3n 2 για n > 0. 3n 2 100n+6 = O(n 3 ) αφού 3n 2 100n+6 n 3 για n > 0. 3n 2 100n+6 O(n) αφού c : 3n 2 100n+6 cn για n n 0. 3n 2 100n+6 = Ω(n 2 ) αφού 3n 2 100n n 2 για n n 2 100n+6 = Ω(n) αφού 3n 2 100n+6 ( )n για n n 2 100n+6 Ω(n 3 ) αφού c : 3n 2 100n+6 cn 3 για n n 0. 3n 2 100n+6 = Θ(n 2 ) αφού 3n 2 100n+6 = Ω(n 2 ) και 3n 2 100n+6 = O(n 2 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

21 Ασυµπτωτική Πολυπλοκότητα Ασυµπτωτικά σύµβολα που ορίζουν ότι τα ϕράγµατα είναι αυστηρά: f(n) = o(g(n)) αν για κάθε c > 0, υπάρχει n 0 έτσι ώστε f(n) < cg(n) για κάθε n n 0 f(n) = ω(g(n)) αν για κάθε c > 0, υπάρχει n 0 έτσι ώστε f(n) > cg(n) για κάθε n n 0 Για παράδειγµα n 2 + n 1 = O(n 2 ) = o(n 3 ) o(n 2 ). Οταν f(n) = o(g(n)) έχουµε ότι η f(n) είναι αµελητέα σε σχέση µε την g(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

22 Κλάσεις Πολυπλοκότητας Εστω ένα πρόβληµαπκαι τέσσερις αλγόριθµοι A, B, C, D που το λύνουν µε αντίστοιχες συναρτήσεις πολυπλοκότητας T A (n) = O(n), T B (n) = O(n 2 ), T C (n) = O(n 3 ) και T D (n) = 2 n. T(n) T D (n) T C (n) T B (n) T A (n) n Σχήµα: Αύξηση πολυπλοκότητας µε την αύξηση του µεγέθους του προβλήµατος για 4 διαφορετικούς αλγορίθµους Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

23 Κλάσεις Πολυπλοκότητας T A (n) < T B (n) < T C (n) < T D (n) Αλγόριθµος 0.1 δευτ/τα 10 λεπτά 1 ηµέρα T A (n) = O(n) T B (n) = O(n 2 ) T C (n) = O(n 3 ) T D (n) = O(2 n ) Πίνακασ: ιάσταση προβληµάτων που εκτελούνται από τους 4 αλγόριθµους σε σταθερό χρόνο από µια µηχανή 10 MIPS Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

24 Κλάσεις Πολυπλοκότητας Παράδειγµα: NP δύσκολο πρόβληµα Μία επιχείρηση έχει επιλέξει n τοποθεσίες για να χτίσει n εργοστάσια. Σε ποια τοποθεσία πρέπει να χτιστεί κάθε εργοστάσιο, ώστε να ελαχιστοποιείται το κόστος της µεταφοράς των υλικών; διάσταση 80 µία µηχανή που εξετάζει 10 7 συνδυασµούς το δευτερόλεπτο περίπου χρόνια Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

25 Κλάσεις Πολυπλοκότητας Παράδειγµα ίνεται ένα σύνολο υπαλλήλων και ένα σύνολο εργασιών οι οποίες πρέπει να ανατεθούν στους υπαλλήλους. Κάθε εργασία i στοιχίζει c ij όταν ανατίθεται στον υπάλληλο j. Να ϐρεθεί η ανάθεση που ελαχιστοποιεί το συνολικό κόστος ανάθεσης. µε 20 υπαλλήλους και 20 εργασίες ϑα χρειαστεί χιλιετίες για να ολοκληρωθεί Ο Hungarian αλγόριθµος ϑα χρειαστεί περίπου µόνο 1.95 δευτ/τα σε µία µηχανή που εξετάζει 10 6 συνδυασµούς Συµπέρασµα Η ανάπτυξη αποδοτικών αλγορίθµων είναι µία αναγκαιότητα παρά την ϱαγδαία ανάπτυξη της ταχύτητας των υπολογιστών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

26 Κλάσεις Πολυπλοκότητας Πολυπλοκότητα Σηµερινή ιάσταση Μελλοντική ιάσταση O(n) n 1000 n O(n 2 ) n 32 n O(n 3 ) n 10 n O(n 4 ) n 6 n O(2 n ) n n+10 O(3 n ) n n+8 O(n!) n n+7 Πίνακασ: Αύξηση της διάστασης του προβλήµατος που επιλύεται σε σταθερό χρόνο από έναν αλγόριθµο δεδοµένης πολυπλοκότητας σε µια µηχανή 1000 ϕορές ταχύτερη. Συµπέρασµα Αρα ο ισχυρισµός ότι η ανάγκη ανάπτυξης αποδοτικών αλγορίθµων ϑα εκλείψει µπροστά στις αυξητικές αποδόσεις των αυριανών υπολογιστών, αποτελεί µία πλήρως εσφαλµένη ϑέση. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

27 Κατάταξη κλάσεων πολυπλοκότητας Κατηγοριοποίηση των συναρτήσεων πολυπλοκότητας σε κλάσεις 1 Σταθερή πολυπλοκότητα log(n) Λογαριθµική πολυπλοκότητα log k (n) Πολυλογαριθµική πολυπλοκότητα όταν k µία σταθερά n Γραµµική πολυπλοκότητα (πχ, f(n) = an + b, µε a, b σταθερές) nlogn n 2 Τετραγωνική πολυπλοκότητα n 3 Κυβική πολυπλοκότητα n k Πολυωνυµικη πολυπλοκότητα, µε k µία σταθερά, δηλ. f(x) = a k n k +...+a 0 a n Εκθετική πολυπλοκότητα 1 < a < 2 2 n Εκθετική πολυπλοκότητα a n Εκθετική πολυπλοκότητα a > 2 n! Παραγοντική πολυπλοκότητα n n Υπερεκθετική πολυπλοκότητα Πίνακασ: Χαρακτηριστικές κλάσεις πολυπλοκότητας Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

28 Η έννοια του ϐέλτιστου αλγορίθµου Αν για ένα πρόβληµα, οποιοσδήποτε αλγόριθµος που το επιλύει έχει ασυµπτωτική πολυπλοκότηταω(f(n)) και έχουµε ήδη έναν αλγόριθµο µε ασυµπτωτική πολυπλοκότητα O(f(n)) τότε ο αλγόριθµος αυτός είναι ϐέλτιστος (ασυµπτωτικά). Παράδειγµα Ενα παράδειγµα προβλήµατος στο οποίο έχει ϐρεθεί ο ϐέλτιστος, ως προς την πολυπλοκότητα, αλγόριθµος είναι το πρόβληµα της ταξινόµησης µε συγκρίσεις. Αποδεικνύεται εύκολα, ότι ένας αλγόριθµος που ϐασίζεται σε συγκρίσεις πρέπει να κάνει το λιγότερο n log n συγκρίσεις. ταξινόµησης µε σωρό(heapsort) γρήγορης ταξινόµησης (quicksort) O(n log n) κατά µέσο όρο ϐέλτιστοι ως προς την πολυπλοκότητα κατά µέσο όρο Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

29 Η έννοια του ϐέλτιστου αλγορίθµου Αλγόριθµος ταξινόµησης µε σωρό O(n log n) στην χείριστη περίπτωση ϐέλτιστος ασυµπτωτικά και στην χείριστη περίπτωση Αλγόριθµος γρήγορης ταξινόµησης O(n 2 ) στην χείριστη περίπτωση δεν είναι ϐέλτιστος αλγόριθµος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

30 Η έννοια του ϐέλτιστου αλγορίθµου Παράδειγµα 2: Μη ϐέλτιστου αλγορίθµου ίνονται δύο πίνακες A n n και B n n και µας Ϲητείται να υπολογίσουµε το γινόµενο τους C n n : n c ij = a ik b kj, 1 i, j n k=1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

31 Η έννοια του ϐέλτιστου αλγορίθµου Πολλαπλασιασµός Πινάκων(A, B) 1. for i = 1 to n do 2. for j = 1 to n do 3. c ij = 0 4. for k = 1 to n do 5. c ij = c ij + a ik b kj 6. end for 7. end for 8. end for 9. return C Σχήµα: Πολλαπλασιασµός δύο τετραγωνικών πινάκων διάστασης n. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

32 Η έννοια του ϐέλτιστου αλγορίθµου έχει πολυπλοκότητα O(n 3 ) το 1969 ο Strassen O(n 2.81 ) Coopersmith και Winograd του 1986 µε O(n ). οι 3 παραπάνω αλγορίθµοι δεν είναι ϐέλτιστοι. Ενας ϐέλτιστος αλγόριθµος που λύνει το πρόβληµα αυτό πρέπει να έχει πολυπλοκότηταω(n 2 ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

33 Ιδιότητες ασυµπτωτικών συµβολισµών Μεταβατικότητα Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n) = Θ(h(n)), Αν f(n) = O(g(n)) και g(n) = O(h(n)) τότε f(n) = O(h(n)), Αν f(n) = Ω(g(n)) και g(n) = Ω(h(n)) τότε f(n) = Ω(h(n)), Αν f(n) = o(g(n)) και g(n) = o(h(n)) τότε f(n) = o(h(n)), Αν f(n) = ω(g(n)) και g(n) = ω(h(n)) τότε f(n) = ω(h(n)) Ανακλαστικότητα f(n) = Θ(f(n)), f(n) = O(f(n)), f(n) = Ω(f(n)) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

34 Ιδιότητες ασυµπτωτικών συµβολισµών Συµµετρία f(n) = Θ(g(n)) αν και µόνο αν g(n) = Θ(f(n)) Ανάστροφη Συµµετρία f(n) = O(g(n)) αν και µόνο αν g(n) = Ω(f(n)) f(n) = o(g(n)) αν και µόνο αν g(n) = ω(f(n)) Πράξεις co(f(n)) = O(f(n)) µε c > 0 O(g(n))+ O(g(n)) = O(g(n)) O(g 1 (n))+o(g 2 (n)) = O(max{g 1 (n), g 2 (n)}) O(g 1 (n)) O(g 2 (n)) = O(g 1 (n) g 2 (n)) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

35 Ιδιότητες ασυµπτωτικών συµβολισµών Ορισµοί 1 Αν τότε f(n) = Θ(g(n)) 2 Αν τότε f(n) = o(g(n)) 3 Αν τότε f(n) = ω(g(n)) f(n) lim n + g(n) = a 0 f(n) lim n + g(n) = 0 f(n) lim n + g(n) = Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

36 Ιδιότητες ασυµπτωτικών συµβολισµών Παράδειγµα Να δειχθεί ότι η συνάρτηση πολυπλοκότητας είναιθ(n). Εχουµε: f(n) = (n2 + logn)(n 1) n+n 2 lim n + (n 2 +logn)(n 1) n+n 2 n n 3 n 2 + n log n log n = lim = n + n 3 + n 2 1 Αρα f(n) = Θ(n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

37 Ασκήσεις Ασκηση 1. Εστω(T 1 (n) = O(f(n))) και(t 2 (n) = O(g(n))) οι πολυπλοκότητες δύο τµηµάτων(p 1 ) και (P 2 ) ενός προγράµµατος (Π). Αν το(p 2 ) εκτελείται αµέσως µετά το(p 1 ) ποια είναι η πολυπλοκότητα του προγράµµατος(p); Λύση: T(n) = T 1 (n)+t 2 (n) = O(f(n))+O(g(n)) = max{o(f(n)), O(g(n))} Εφαρµογή: Αν T 1 (n) = O(n 2 ), T 2 (n) = O(n 3 ), T 3 (n) = O(n log n) τότε T(n) = T 1 (n)+t 2 (n)+t 3 (n) = max{o(n 2 ), O(n 3 ), O(n log n)} = O(n 3 ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

38 Ασκήσεις Ασκηση 2. Να δοθεί ο καλύτερος O συµβολισµός για τις ακόλουθες συναρτήσεις: 1 2 log n 4n+3n log n n n 1 2 log n 4n+3n log n = O(n log n) n = 2( n) = 2 n i=1 i = n(n+1) = O(n2 ) 3 ( n = 2 2n = 2 2n 2 = O(2 n )) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

39 Ασκήσεις Ασκηση 3. Εστω a > 1 και f(n) = O(log a (n)). είξτε ότι f(n) = O(log n). Αφού f(n) = O(log a (n)) µε ϐάση τον ορισµό, υπάρχει c που για κάθε n n 0 : f(n) c log a (n). Οµως επειδη log a (n) = log n c έχουµε f(n) log a log a log n ή f(n) c log n µε c = c log a για κάθε n n 0. Αρα f(n) = O(log n). Ασκηση 4. είξτε ότι log(n!) = O(n log n). Επειδή n! = n(n 1)... 2 < n...n = n n και επειδή η λογαριθµική συνάρτηση είναι γνησίως αύξουσα, έχουµε log(n!) < n log n, άρα log(n!) = O(n log n). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

40 Ασκήσεις Ασκηση 5. Ποια είναι η πολυπλοκότητα του παρακάτω τµήµατος προγράµµατος: 1. for i = 1 to n do 2. for j = 1 to i+1 do 2 3. x = x end for 5. end for T(n) = n i + 1 i=1 2 = 1 ( n i + 2 i=1 n i=1 ) 1 = 1 ( n(n+1) ) + n = O(n 2 ) 2 2 Ασκηση 6. Να δειχθεί ότι η 3 n O(2 n ) Εχουµε lim n + 2 n 3 n = 0 Αρα 3 n = ω(2 n ) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

41 Ασκήσεις Ασκηση 7. Να υπολογιστεί η πολυπλοκότητα του αλγόριθµου του Ευκλείδη (σχήµα 6) για τον υπολογισµό του Μέγιστου Κοινού ιαιρέτη (Μ.Κ..) δύο ϑετικών ακέραιων αριθµών. 1. repeat 2. r = m mod n 3. if r 0 then 4. m = n 5. n = r 6. end if 7. until r = 0 8. return n Μκδ -Ευκλείδης (m, n Z) Σχήµα: Αλγόριθµος του Ευκλείδη για την εύρεση του Μ.Κ.. δύο ακεραίων m και n. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

42 Ασκήσεις Ασκηση 7. Ας ϑεωρήσουµε ότι m n, m = qn+r, q 1, r 0. ΜΚ (m, n)=μκ (n, r), m = q 0 n+r 0, 0 r 0 < n, q 0 = q, r 0 = r n = q 1 r 0 + r 1, 0 r 1 < r 0 r 0 = q 2 r 1 + r 2, 0 r 2 < r 1 r 1 = q 3 r 2 + r 3, 0 r 3 < r Εστω k ο αριθµός των ϐηµάτων και µία ακολουθία από αριθµούς m, n, r 0, r 1,... r k µε r k = 0 και r k 1 =ΜΚ (m, n). Η πολυπλοκότητα του αλγορίθµου είναι O(k). Αποδεικνύται ότι r i < 1 2 r i 2, οπότε έχουµε ότι r k < 1 2 < 1 2 r k 2 < 1 4 r k 4 <... < 1 2 k r 0 < 1 2 k n Αρα n > 2 k 1, δηλαδή k log n, οπότε η πολυπλοκότητα του αλγορίθµου είναι O(logn). Παρατηρούµε ότι η πολυπλοκότητα του αλγορίθµου δεν εξαρτάται από τον µεγαλύτερο αριθµό m. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

43 Ασκήσεις Ασκηση 8. είξτε ότι για πραγµατικούς αριθµούς a, b, b > 0 έχουµε(n+a) b = Θ(n b ). Από τον τύπο που δίνει το διώνυµο του Newton παίρνουµε: ( ) ( ) b b (n+a) b = n b + n b 1 a n b k a k +...+a b = Θ(n b ) 1 k Ασκηση 9. είξτε ότι 2 n+1 = O(2 n ). Εχουµε 2 n+1 = 2 2 n = O(2 n ) Είναι 2 2n = O(2 n ) Επειδή 2 2n = (2 2 ) n = 4 n, το 2 2n δεν είναι O(2 n ). Ισοδύναµα:lim n + 2 2n 2 n = + και όχι µηδέν. Αν f(n) = O(n) τότε 2 f(n) δεν είναι O(2 n ). Εστω f(n) = 2n. Τότε f(n) = O(n), αλλά 2 2n O(2 n ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

44 Ταξινόµηση Φυσαλίδας (Bubble Sort) Ο αλγόριθµος αυτός, σε κάθε επανάληψη ανυψώνει στο τέλος του πίνακα το ελαφρύτερο (µικρότερο) στοιχείο. Bubble Sort (A) 1. for i = n to 1 do 2. for j = 1 to i 1 do 3. if a j < a j+1 then 4. swap(a j, a j+1 ) 5. end if 6. end for 7. end for Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

45 Ταξινόµηση Φυσαλίδας (Bubble Sort) Παρατηρούµε ότι ανεξάρτητα από την µορφή της ακολουθίας εισόδου, ο αλγόριθµος ϑα κάνει τις ίδιες συγκρίσεις και καταχωρήσεις. 1 i 1 n C βπ (n) = C χπ (n) = C µo (n) = O(1) = O(1) (i 1) i=n j=1 i=1 n(n+ 1) = O(1)[ n] = O(n 2 ) 2 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

46 Ταξινόµηση µε εισαγωγή (Insertion Sort) Στο ϐήµα i, η υπακολουθία a 1,..., a i 1 είναι ταξινοµηµένη και η a i+1,...,a n αταξινόµητη. Εισάγει το στοιχείο i στην σωστή ϑέση της πρώτης υπακολουθίας και συνεχίζει επαναληπτικά για τα υπόλοιπα στοιχεία. Insertion Sort (A) 1. for i = 2 to n do 2. val = a i 3. j = i 1 4. while j 1 and a j < val do 5. a j+1 = a j 6. j = j 1 7. end while 8. a j+1 = val 9. end for Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

47 Ταξινόµηση µε εισαγωγή (Insertion Sort) Στη ϐέλτιστη περίπτωση (ήδη ταξινοµηµένη ϕθίνουσα ακολουθία) C βπ (n) = O(n). Στη χείριστη περίπτωση C χπ (n) = n 1 i=2 j=i 1 O(1) = O(1) n i=2 (i 1) = O(n2 ) Αποδεικνύεται C µo = O(n 2 ). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

48 Ταξινόµηση µε Επιλογή (Selection Sort) Βρίσκει στο ϐήµα i το στοιχείο που είναι το µεγαλύτερο στην υπακολουθία a i,..., a n. Θέτει στην ϑέση i το µέγιστο αυτό στοιχείο και συνεχίζει επαναληπτικά. Selection Sort(A) 1. for i = 1 to n 1do 2. max = i 3. for j = i + 1 to n do 4. if a j > a max then 5. max = j 6. end if 7. end for 8. swap(a max, a i ) 9. end for Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

49 Ταξινόµηση µε Επιλογή (Selection Sort) Η πολυπλοκότητα όπως και στην Ταξινόµηση Φυσαλίδας δεν εξαρτάται από την ακολουθία που έχουµε σαν είσοδο. C βπ (n) = C χπ (n) = C µo (n) = n 1 i=1 j=i+1 n n 1 O(1) = O(1) (n i) = i=1 = O(1) [ n(n 1) n(n 1) 2 ] = O(n 2 ) Ο καλύτερος είναι ο αλγόριθµος της Εισαγωγής γιατί στη ϐέλτιστη περίπτωση είναι O(n) σε αντίθεση µε τους άλλους δύο που είναι πάντα O(n 2 ). Οι τρεις αλγόριθµοι παρουσιάζουν τετραγωνική πολυπλοκότητα κατά µέσο όρο. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

50 Ορθότητα-Αναλλοίωτη Συνθήκη (Correctness-Loop invariant) Επαγωγή Απλή µορφή Εστω πρότασηπ η οποία εξαρτάται από ένα ϕυσικό n n 0. 1 Η π αληθής για n = n 0 2 Αν ηπ αληθής για n = k τότε αληθής για n = k + 1 Επαγωγή Ισχυρη µορφή Εστω πρότασηπ η οποία εξαρτάται από ένα ϕυσικό n n 0. 1 Η π αληθής για n = n 0 2 Αν ηπ αληθής για n k τότε αληθής για n = k + 1 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

51 Ορθότητα-Αναλλοίωτη Συνθήκη (Correctness-Loop invariant) Αποδειξη ορθότητας ϐρόχου Β Εστω ϐρόχος B µε µια πρόταση (αναλλοίωτη συνθήκη) π. 1 Αρχικός έλεγχος: Η π ισχύει πριν την πρώτη επανάληψη του B. 2 Ελεγχος διατήρησης: Αν ηπ ισχύει πριν την i-οστή επανάληψη εξακολουθεί να ισχύει και µετά την i-οστή επανάληψη. 3 Επιβεβαίωση αποτελέσµατος: Η π ισχύει και µετά το τέλος του B. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

52 Ορθότητα Ταξινόµησης µε Επιλογή (Correctnes-Selection Sort) Παράδειγµα Να αποδειχθεί η ορθότητα του ακόλουθου αλγόριθµου για την εύρεση του µέγιστου στοιχείου ενός πίνακα A[1..n]. µέγιστο = A[1] για i 2 έως n αν µέγιστο < A[i] τότε µέγιστο= A[i] Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53

53 µέγιστο = maxa[1..n] Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 25 Φεβρουαρίου / 53 Ορθότητα Ταξινόµησης µε Επιλογή (Correctnes-Selection Sort) Παράδειγµα π: στην αρχή της i-ιοστής επανάληψης η µέγιστο περιέχει το µέγιστο στοιχείο των πρώτων i 1 στοιχείων του πίνακα. 1 Αρχικός έλεγχος: Η π είναι αληθής πριν την πρώτη επανάληψη όπου i = 2, διότι µέγιστο = A[1] (τετριµµένη). 2 ιατήρηση: Εστω ότι η π είναι αληθής µετά την i 1 επανάληψη (πριν την i), έστω δηλαδή ότι µέγιστο = maxa[1..i 1]. Θα παραµένει αληθής και µετά το πέρας της i επανάληψης, διότι η τιµή της µέγιστο, λόγω της αν.. τότε ϑα είναι µέγιστο = max{µέγιστο, A[i]}. 3 Επιβεβαίωση: Η π ϑα είναι αληθής και µετά το τέλος των επαναλήψεων διότι ϑέτοντας i = n+1στηνπ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν

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

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

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

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

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

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

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

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

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

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

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

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθµου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση µεγέθους στιγµιότυπου εισόδου. Χρόνος, µνήµη, επεξεργαστές, επικοινωνία,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τηλ , Fax: , URL:

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

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

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

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

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

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

Δομές Δεδομένων Ενότητα 2 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας

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

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

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

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 1 Συναρτήσεις και ο υπολογισµός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραµµατισµού 4 Μια µη υπολογίσιµη συνάρτηση 5 Πολυπλοκότητα προβληµάτων 1 Συναρτήσεις Μία συνάρτηση

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

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

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

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

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

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

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

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

Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Παράδειγµα (1/2) O( g(n) ) είναι σύνολο συναρτήσεων: Ανω Φράγµα στην Τάξη των Συναρτήσεων Ορισµός. Εστω συναρτήσεις: f : N R και g : N R Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων Ορέστης Τελέλης η (τάξη της) f(n) είναι O( g(n) ) αν υπάρχουν σταθερές C και n

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

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι

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

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

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

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

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

Διακριτά Μαθηματικά. Γιάννης Εμίρης. Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ. Οκτώβριος ΔιακριτάΜαθηματικά Γιάννης Εμίρης http://eclass.uoa.gr/ Τμήμα Πληροφορικής & Τηλεπικοινωνιών ΕΚΠΑ Οκτώβριος 2016 Διακριτά Μαθηματικά Αλγόριθμοι Ρυθμόςαύξησηςσυναρτήσεων[Rosen 3.2] Διακριτά Μαθηματικά Ορισμοί

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ240: οµές εδοµένων ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

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

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

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

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

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

ΗΥ240: οµές εδοµένων. ιδάσκουσα: Παναγιώτα Φατούρου ΗΥ240 - Παναγιώτα Φατούρου 2 ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

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

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

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

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

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

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

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

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

Ασκήσεις (2) Άσκηση 1 Άσκηση 1 Ασκήσεις () Εισαγωγή στην Ανάλυση Αλγορίθμων Υποθέστε ότι συγκρίνουμε την υλοποίηση της ταξινόμησης με εισαγωγή και της ταξινόμησης με συγχώνευση στον ίδιο υπολογιστή. Για εισόδους μεγέθους n,

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

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

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

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

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

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

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

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

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

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

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

ρυθιμός αύξησης συναρτήσεων ρυθμός αύξησης συναρτήσεων Παύλος Εφραιμίδης 1 περιεχόμενα Ασυμπτωτικός συμβολισμός Καθιερωμένοι συμβολισμοί και συνήθεις συναρτήσεις 2 ασυμπτωτική πολυπλοκότητα Πολυπλοκότητα χειρότερης περίπτωσης Συγχωνευτική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Heapsort Using Multiple Heaps

Heapsort Using Multiple Heaps sort sort Using Multiple s. Λεβεντέας Χ. Ζαρολιάγκης Τµήµα Μηχανικών Η/Υ & Πληροφορικής 29 Αυγούστου 2008 sort 1 Ορισµός ify Build- 2 sort Πως δουλεύει Ιδιότητες 3 4 Προβλήµατα Προτάσεις Ανάλυση Κόστους

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

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

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

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

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΠΑΡΑΔΕΙΓΜΑΤΑ ΑΛΓΟΡΙΘΜΩΝ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 2016 - Ι. ΜΗΛΗΣ - 03 - EXAMPLES ALG & COMPL 1 Example: GCD συνάρτηση

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

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

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

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

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

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

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

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

Κεφάλαιο 2 Ανάλυση Αλγορίθμων Κεφάλαιο Ανάλυση Αλγορίθμων Περιεχόμενα.1 Εισαγωγή... 0. Εμπειρική και Θεωρητική Ανάλυση Αλγορίθμων.....1 Εμπειρική Πολυπλοκότητα..... Θεωρητική Πολυπλοκότητα... 3.3 Ανάλυση Χειρότερης και Αναμενόμενης

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Bellman Ford Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman

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

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

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

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

5.1. Προσδοκώμενα αποτελέσματα

5.1. Προσδοκώμενα αποτελέσματα 5.1. Προσδοκώμενα αποτελέσματα Όταν θα έχεις ολοκληρώσει τη μελέτη αυτού του κεφαλαίου θα έχεις κατανοήσει τις τεχνικές ανάλυσης των αλγορίθμων, θα μπορείς να μετράς την επίδοση των αλγορίθμων με βάση

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

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το

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

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

Παραδείγµατα. Τάξη των Συναρτήσεων (1) Παράδειγµα (2) Να δειχθεί ότι 7n 2 = O(n 3 ). Ορέστης Τελέλης Τάξη των Συναρτήσεων (1) Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς 1. Να δειχθεί ότι 7n 2 = O(n 3 ) 2. Να δειχθεί ότι η n 2 δεν είναι O(n). 3. Αληθεύει ότι n 3 =

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

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

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

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

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

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 2 ο Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Αλγόριθµοι Ορισµός Παράδειγµα Ασυµπτωτική

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

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

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

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } } Πανεπιστήµιο Ιωαννίνων, Τµήµα Πληροφορικής 2 Νοεµβρίου 2005 Η/Υ 432: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκού Έτους 2005-2006 Παναγιώτα Φατούρου Ηµεροµηνία Παράδοσης 1 ο Σετ Ασκήσεων Θεωρητικό Μέρος:

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

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

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

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

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

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

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

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

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

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

Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων. Εφαρµογές. Παράδειγµα 1.

Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων. Εφαρµογές. Παράδειγµα 1. Αρχή Εγκλεισµού-Αποκλεισµού (3 σύνολα) Αρχή Εκλεισµού-Αποκλεισµού Η Τάξη των Συναρτήσεων Ορέστης Τελέλης telelis@unipi.g Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς A B C = A + B + C A B B C A C +

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

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

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

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

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

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 2 Βασικά στοιχεία ανάλυσης αλγορίθμων Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 2.1 Υπολογιστική Επιλυσιμότητα "For me, great algorithms are the poetry of computation.

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

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

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

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