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

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: 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στηνπ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι 5.1 Η έννοια του αλγορίθµου 5.2 Αναπαράσταση αλγορίθµων 5.3 Επινόηση αλγορίθµων 5.4 Δοµές επανάληψης 5.5 Αναδροµικές δοµές 1 Αλγόριθµος: Ορισµός Ένας αλγόριθµος είναι ένα διατεταγµένο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνοσεμφε 2η ενότητα: Αλγοριθμικές τεχνικές, αριθμητικοί υπολογισμοί Διδάσκοντες Θεωρία: Στάθης Ζάχος, Άρης Παγουρτζής Εργαστήριο: Δώρα Σούλιου Βοηθός διδασκαλίας:

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

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

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

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

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

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

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

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

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

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232

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

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

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

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

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035). Ανάλυση Αλγορίθµων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Ανάλυση αλγορίθµων Ο, Θ, Ω Ανάλυση µη αναδροµικών αλγόριθµων Ανάλυση αναδροµικών αλγόριθµων Εµπειρική Ανάλυση Visualization Απόδοση Αλγορίθµων Απόδοση

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

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και Παύλος Εφραιµίδης 1 Το πρόβληµα της ταξινόµησης 2 3 ίνεται πολυ-σύνολο Σ µε στοιχεία από κάποιο σύµπαν U (πχ. U = το σύνολο των ακεραίων αριθµών). του Σ είναι η επιβολή µιας διάταξης στα στοιχεία του συνόλου

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

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

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

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

Μοντελοποίηση προβληµάτων

Μοντελοποίηση προβληµάτων Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Θεωρία γράφων

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής

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

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

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

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

ιακριτά Μαθηµατικά Ασκήσεις Φροντιστηρίου

ιακριτά Μαθηµατικά Ασκήσεις Φροντιστηρίου ιακριτά Μαθηµατικά Ασκήσεις Φροντιστηρίου Εαρινό Εξάµηνο 2009 Κάτια Παπακωνσταντινοπούλου 1. Εστω A ένα µη κενό σύνολο. Να δείξετε ότι η αλγεβρική δοµή (P(A), ) είναι αβελιανή οµάδα. 2. Εστω ένα ξενοδοχείο

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή 3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

1 Ορισµός ακολουθίας πραγµατικών αριθµών

1 Ορισµός ακολουθίας πραγµατικών αριθµών ΜΑΣ 02. Απειροστικός Λογισµός Ι Ορισµός ακολουθίας πραγµατικών αριθµών Ορισµός.. Ονοµάζουµε ακολουθία πραγµατικών αριθµών κάθε απεικόνιση του συνόλου N των ϕυσικών αριθµών, στο σύνολο R των πραγµατικών

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

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

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

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

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

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

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

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ Greedy Algorithms 1 Greedy algorithms H βασική ιδέα: Άρχισε από ένα υπο-πρόβλημα μικρού μεγέθους Επαναληπτικά,

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

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

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

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

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28) ίκτυα Ταξινόµησης (CLR κεφάλαιο 28) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: ίκτυα σύγκρισης, δίκτυα ταξινόµησης Αρχή - ιτονική ταξινόµηση ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2- Μοντέλο στο οποίο

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

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

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr Αλγόριθµοι

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 1: Ανάλυση Αλγορίθμων Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 1: Ανάλυση Αλγορίθμων Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

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

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

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

Τεχνικές Σχεδιασμού Αλγορίθμων

Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Διαίρει και Βασίλευε Δυναμικός Προγραμματισμός Απληστία Π. Μποζάνης ΤHMMY - Αλγόριθμοι 2014-2015 1 Διαίρει και Βασίλευε Βασικά Βήματα Διαίρει: Κατάτμηση του αρχικού προβλήματος

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ ) Ενδεικτικές Λύσεις ΕΡΓΑΣΙΑ η Ηµεροµηνία Αποστολής στον Φοιτητή: Ιανουαρίου 6 Ηµεροµηνία Παράδοσης της Εργασίας από

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

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

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1 ιαίρει και Βασίλευε Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Η Μέθοδος Σχεδιασµού Αλγορίθµων ιαίρει και Βασίλευε Επίλυση Αναδροµικών Εξισώσεων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα - ιαίρει και Βασίλευε

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

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

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

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2014 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2014 1 / 42 Αριθμητικές Μέθοδοι

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Βαγγέλης ούρος douros@aueb.gr 1 11/6/2012 Αλγόριθμοι, Εαρινό Εξάμηνο 2012, Φροντιστήριο #14 Γενικά Σχόλια (1) 2 Για το τελικό διαγώνισμα θα χρειαστείτε: Φοιτητική

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ

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

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

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

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

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

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier Ταχύς Μετασχηµατισµός Fourier CLR, κεφάλαιο 3 Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier Ταχύς Μετασχηµατισµός Fourier

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

ιδάσκοντες :Τµήµα Α ( Αρτιοι) : Καθηγητής Ν. Μισυρλής,Τµήµα Β (Περιττοί) : Αριθµητική Επίκ.

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

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

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

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

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

Θεωρια Αριθµων Προβληµατα

Θεωρια Αριθµων Προβληµατα Θεωρια Αριθµων Προβληµατα Μιχάλης Κολουντζάκης Τµήµα Μαθηµατικών και Εφαρµοσµένων Μαθηµατικών Πανεπιστήµιο Κρήτης Βούτες 700 3 Ηράκλειο 6 Απριλίου 205 Πολλές από τις παρακάτω ασκήσεις είναι από το ϐιβλίο

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

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

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

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

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

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

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

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

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1 Ταξινόμηση Παύλος Εφραιμίδης Δομές Δεδομένων Ταξινόμηση 1 Το πρόβλημα της ταξινόμησης Δομές Δεδομένων Ταξινόμηση 2 Ταξινόμηση Δίνεται πολυ-σύνολο Σ με στοιχεία από κάποιο σύμπαν U (πχ. U = το σύνολο των

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

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων

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

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

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

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