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

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

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

Transcript

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

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 Ανοιχτή ιευθυνσιοδότηση Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 2 / 57

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 Εφαρµογές Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 3 / 57

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

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

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

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

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

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

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. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 10 / 57

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

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) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 12 / 57

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 κατά µέσο όρο. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 13 / 57

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. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 14 / 57

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

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

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

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)) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 18 / 57

19 Σχήµα: Γραφική Απεικόνιση των συµβολισµών O, Ω, Θ Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 19 / 57 Ασυµπτωτική Πολυπλοκότητα 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 ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 20 / 57

21 Ασυµπτωτική Πολυπλοκότητα Ασυµπτωτικά σύµβολα που ορίζουν ότι τα ϕράγµατα είναι αυστηρά: 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 Για παράδειγµα n 2 + n 1 = O(n 2 ) = o(n 3 ) o(n 2 ). Οταν f(n) = o(g(n)) έχουµε ότι η f(n) είναι αµελητέα σε σχέση µε την g(n). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 21 / 57

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 διαφορετικούς αλγορίθµους Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 22 / 57

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 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 23 / 57

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

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

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 ϕορές ταχύτερη. Συµπέρασµα Αρα ο ισχυρισµός ότι η ανάγκη ανάπτυξης αποδοτικών αλγορίθµων ϑα εκλείψει µπροστά στις αυξητικές αποδόσεις των αυριανών υπολογιστών, αποτελεί µία πλήρως εσφαλµένη ϑέση. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 26 / 57

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 Υπερεκθετική πολυπλοκότητα Πίνακας: Χαρακτηριστικές κλάσεις πολυπλοκότητας Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 27 / 57

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

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

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

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. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 31 / 57

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

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)) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 33 / 57

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)) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 34 / 57

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) = Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 35 / 57

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). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 36 / 57

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 ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 37 / 57

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 )) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 38 / 57

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). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 39 / 57

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 ) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 40 / 57

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. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 41 / 57

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. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 42 / 57

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 ). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 43 / 57

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 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 44 / 57

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 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 45 / 57

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 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 46 / 57

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 ). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 47 / 57

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 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 48 / 57

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 ). Οι τρεις αλγόριθµοι παρουσιάζουν τετραγωνική πολυπλοκότητα κατά µέσο όρο. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 49 / 57

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 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 50 / 57

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

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

53 µέγιστο = maxa[1..n] Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 53 / 57 Ορθότητα Ταξινόµησης µε Επιλογή (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στηνπ

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

55 Σηµείωµα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήµιον Αθηνών 2015, Νικόλαος Μισυρλής, Αλγόριθµοι και Πολύπλοκότητα. Ενότητα 1 - Εισαγωγικές Εννοιες Εκδοση:1.01. Αθήνα ιαθέσιµο από τη δικτυακή διεύθυνση: Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 55 / 57

56 Σηµείωµα Αδειοδότησης Το παρόν υλικό διατίθεται µε τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εµπορική Χρήση Παρόµοια ιανοµή 4.0 [1] ή µεταγενέστερη, ιεθνής Εκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ϕωτογραφίες, διαγράµµατα κ.λ.π., τα οποία εµπεριέχονται σε αυτό και τα οποία αναφέρονται µαζί µε τους όρους χρήσης τους στο «Σηµείωµα Χρήσης Εργων Τρίτων». [1] Ως Μη Εµπορική ορίζεται η χρήση: που δεν περιλαµβάνει άµεσο ή έµµεσο οικονοµικό όφελος από την χρήση του έργου, για το διανοµέα του έργου και αδειοδόχο που δεν περιλαµβάνει οικονοµική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προορίζει στο διανοµέα του έργου και αδειοδόχο έµµεσο οικονοµικό όφελος (π.χ. διαφηµίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος µπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιµοποιεί το έργο για εµπορική χρήση, εφόσον αυτό του Ϲητηθεί. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 56 / 57

57 ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει: το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 1 57 / 57

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

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

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

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

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

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

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

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

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

Αριθµητική Ανάλυση. Ενότητα 6 Αριθµητική Παραγώγιση και Ολοκλήρωση. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

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

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

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

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

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

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 1 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 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 εδοµένα Σύνολο από πληροφορίες που πρέπει να αποθηκευτούν σε έναν υπολογιστή Υπολογιστικό Μοντέλο ένας επεξεργαστής και µεγάλος

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αλγόριθµοι γραµµικής άλγεβρας 1 Ο συµβολισµός µεγάλο O Εστω συναρτήσεις f(n), g(n)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναζήτηση και ταξινόµηση 7 Αναζήτηση (search) Πρόβληµα: αναζήτηση της καταχώρησης key στη

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

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

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

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

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

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

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

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

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

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

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

Τµήµα Πληροφορικής και Τηλεπικοινωνιών Αδιάσπαστοι, p-κυκλικοί, συνεπώς διατεταγµένοι πίνακες και γραφήµατα Νικόλαος Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών 2 Σεπτεµβρίου 2015 Νικόλαος Μισυρλής Επιστηµονικοί Υπολογισµοί 1 / 35 Περιεχόµενα

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

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

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

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

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

Εισαγωγή στους Αλγόριθμους Εισαγωγή στους Αλγόριθμους Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών Σκοποί ενότητας Ασυμπτωτική ανάλυση Τίτλος Ενότητας

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αποτελεσµατικότητα αλγορίθµων 127 Αποτελεσµατικότητα αλγορίθµων Ενας σωστός αλγόριθµος

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 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))

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο

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

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

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

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Πληροφορική ΙΙ Ενότητα 1

Πληροφορική ΙΙ Ενότητα 1 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός

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

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

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

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

Αριθµητική Ανάλυση. Ενότητα 4 Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

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

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

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

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

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

Βέλτιστος Έλεγχος Συστημάτων

Βέλτιστος Έλεγχος Συστημάτων Βέλτιστος Έλεγχος Συστημάτων Ενότητα 8: Το γραμμικό τετραγωνικό πρόβλημα ρύθμισης (LQ) για συστήματα διακριτού χρόνου Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και

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

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

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

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

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

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

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

Τηλ , Fax: , URL:

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

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

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Εργαστήριο 2 Καθηγητές: Αβούρης Νικόλαος, Παλιουράς Βασίλης, Κουκιάς Μιχαήλ, Σγάρμπας Κυριάκος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άσκηση 2 ου εργαστηρίου

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναδροµή 24 Αναδροµή Πληροφορική Ι Μ. ρακόπουλος 24 Αναδροµικές µέθοδοι Μια µέθοδος καλεί τον εαυτό της

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

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

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Βασικές Προγραμματιστικές Δομές ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομή Ελέγχου Ροής (IF) Η εντολή IF χρησιμοποιείται όταν

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

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

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

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

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

Επιστηµονικός Υπολογισµός Ι Ενότητα 5 - Επίλυση Γραµµικών Συστηµάτων. Ευστράτιος Γαλλόπουλος

Επιστηµονικός Υπολογισµός Ι Ενότητα 5 - Επίλυση Γραµµικών Συστηµάτων. Ευστράτιος Γαλλόπουλος Ενότητα 5 - Επίλυση Γραµµικών Συστηµάτων Ευστράτιος Γαλλόπουλος Ασκηση 1 Εστω ένα µητρώο A το οποίο χρησιµοποιούµε και µητρώο συντελεστών κάποιου γραµµικού συστήµατος A x = b 1.Πώς ϑα λύνατε το γραµµικό

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Μαθηματικές εφαρμογές

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Μαθηματικές εφαρμογές ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Μαθηματικές εφαρμογές Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Μαθηµατικές εφαρµογές 34 Μέγιστος Κοινός ιαιρέτης (gcd) - I Εξαντλητικός αλγόριθµος 1 1. Εστω

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

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

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

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

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

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

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

Βέλτιστος Έλεγχος Συστημάτων

Βέλτιστος Έλεγχος Συστημάτων Βέλτιστος Έλεγχος Συστημάτων Ενότητα 10: Δυναμικός προγραμματισμός Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν

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

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

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

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

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

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

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος Ενότητα 1 - Εισαγωγή Ευστράτιος Γαλλόπουλος c Ε. Γαλλόπουλος 201-2015 Ασκηση 1 Τι ονοµάζουµε υπολογιστικούς πυρήνες ; πυρήνων. Να δώσετε 3 παραδείγµατα τέτοιων Απάντηση ιαδικασίες (που µπορεί να είναι

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

Βάσεις Περιβαλλοντικών Δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 2: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης

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

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

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

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

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Αλγόριθμοι ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Ανάπτυξη Λογισμικού Η διαδικασία ανάπτυξης λογισμικού μπορεί να παρομοιαστεί

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

Μικροοικονομική Ανάλυση της Κατανάλωσης και της Παραγωγής

Μικροοικονομική Ανάλυση της Κατανάλωσης και της Παραγωγής Μικροοικονομική Ανάλυση της Κατανάλωσης και της Παραγωγής Διάλεξη 12: Ελαχιστοποίηση κόστους Ανδρέας Παπανδρέου Σχολή Οικονομικών και Πολιτικών Επιστημών Τμήμα Οικονομικών Επιστημών Ελαχιστοποίηση κόστους

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εισαγωγή στην πληροφορική Ενότητα 5: ΑΛΓΟΡΙΘΜΟΙ Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ Ενότητα 8: Μοντέλα χωροθέτησης και ανάθεσης δυναμικότητας - Μέρος ΙΙ Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

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

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

Επεξεργασία Στοχαστικών Σημάτων

Επεξεργασία Στοχαστικών Σημάτων Επεξεργασία Στοχαστικών Σημάτων Βέλτιστα γραμμικά χρονικά αναλλοίωτα συστήματα Σεραφείμ Καραμπογιάς Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Βέλτιστα γραμμικά χρονικά αναλλοίωτα συστήματα

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

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

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

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

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

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

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

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

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

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

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

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

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

Βέλτιστος Έλεγχος Συστημάτων

Βέλτιστος Έλεγχος Συστημάτων Βέλτιστος Έλεγχος Συστημάτων Ενότητα 7: Βέλτιστος έλεγχος συστημάτων διακριτού χρόνου Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 8 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ Ράπτης Ευάγγελος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Κεφάλαιο 10 Βάσεις Groebner ενός ιδεώδους 10.1 Τρίτο μέρος Επαναλαμβάνουμε

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7

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

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

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

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

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

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

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

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

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

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