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

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

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

Transcript

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

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

4 Περιεχόμενα Πολυπλοκότητα αλγορίθμων: χρονική πολυπλοκότητας χειρότερης περίπτωσης, μελέτη παραδειγμάτων: αναζήτηση, ταξινόμηση, αλγόριθμος Dijkstra. Ασυμπτωτική ανάλυση: ασυμπτωτική συμπεριφορά αριθμητικών συναρτήσεων, ο συμβολισμός Ο, οι συμβολισμοί Θ και Ω. 4

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

6 Αλγόριθμος Ένας αλγόριθμος είναι μια βήμα-προς-βήμα περιγραφή του τρόπου εκτέλεσης μιας συγκεκριμένης διεργασίας. Ο αλγόριθμος γραμμικής αναζήτησης είναι μια βηματική περιγραφή της διεργασίας αναζήτησης ενός συγκεκριμένου αριθμού σε μια λίστα αριθμών. Ο αλγόριθμος του Prim είναι μια βηματική περιγραφή της διεργασίας υπολογισμού ενός ελάχιστου επικαλύπτοντος δέντρου σε ένα βεβαρημένο γράφημα. Στην ενότητα αυτή του μαθήματος θα μελετήσουμε την ανάλυση πολυπλοκότητας αλγορίθμων. 6

7 Ανάλυση Αλγορίθμων Πως μπορούμε να εκτιμήσουμε έναν αλγόριθμο που προτάθηκε για τη λύση ενός συγκεκριμένου προβλήματος; Είναι ορθός; Εκτελεί τη διεργασία που πρέπει για όλα τα στιγμιότυπα του προβλήματος; π.χ. Ο αλγόριθμος του Prim υπολογίζει ένα ελάχιστο επικαλύπτων δέντρο για οποιονδήποτε εμβαρημένο γράφημα; Πόσο καλά αποτελέσματα παράγει; παράδειγμα; Αποδοτικότητα; Ποιο είναι το κόστος εκτέλεσης του; Χρόνος εκτέλεσης; ποια είναι η χρονική του πολυπλοκότητα; Χώρος που χρησιμοποιείται; ποια είναι η χωρική του πολυπλοκότητα; 7

8 Πολυπλοκότητα Αλγορίθμων Η αλγοριθμική πολυπλοκότητα ενός υπολογισμού είναι γενικά ένα μέτρο του πόσο δύσκολο είναι να πραγματοποιηθεί ο υπολογισμός. Δηλαδή, μετράει το κόστος του υπολογισμού Το πλήθος των πόρων που απαιτούνται για τον υπολογισμό. Οι πιο κοινές μετρικές πολυπλοκότητας είναι: Χρονική πολυπλοκότητα: # λειτουργιών ή βημάτων που απαιτούνται, Χωρική πολυπλοκότητα: # θέσεων μνήμης (π.χ. bits) που απαιτούνται. 8

9 Χρονική Πολυπλοκότητα Αλγορίθμων (1/2) Ας υποθέσουμε ότι θέλουμε να βρούμε το μέγιστο σε μια ακολουθία n αριθμών. Πόσο χρόνο πρέπει να ξοδέψουμε; Ας υποθέσουμε ότι απαιτείται 1 μονάδα χρόνου για να γίνει μια σύγκριση μεταξύ δύο αριθμών. Δεν έχουμε ιδέα για το πόσο χρόνο θα χρειαστεί το πρόγραμμα για να τρέξει, αλλά γνωρίζουμε ότι αυτό εξαρτάται γραμμικά από το n. Σε αυτή την περίπτωση χρειαζόμαστε περίπου n μονάδες χρόνου Λέμε ότι ο αλγόριθμος έχει χρόνο εκτέλεσης τάξης n 9

10 Χρονική Πολυπλοκότητα Αλγορίθμων (2/2) Έχω ένα νούμερο μεταξύ 0 και 63. Κάνετε μια ερώτηση κι εγώ απαντάω με ναι ή όχι. Πόσο χρόνο θα χρειαστείτε για να βρείτε τον αριθμό στη χειρότερη περίπτωση; Ας υποθέσουμε ότι απαιτείται 1 μονάδα χρόνου για να τεθεί και να απαντηθεί μια ερώτηση. Δεν έχουμε ιδέα για το πόσο χρόνο θα χρειαστεί το πρόγραμμα για να τρέξει, αλλά γνωρίζουμε ότι αυτό εξαρτάται λογαριθμικά από το n. Τότε χρειαζόμαστε περίπου log n μονάδες χρόνου Λέμε ότι ο αλγόριθμος έχει χρόνο εκτέλεσης τάξης log n 10

11 Παράδειγμα αλγόριθμου (1/5) Πρόβλημα: Δοθείσης μιας ακολουθίας {a i }=a 1,,a n, a i N, βρες το μεγαλύτερο της στοιχείο. Αλγόριθμος MAX1: Θέσε την τιμή μιας προσωρινής μεταβλητής v (που θα αποθηκεύει το μεγαλύτερο στοιχείο που έχουμε δει μέχρι τώρα) στην τιμή a 1. Για i=2,3,,n επανέλαβε τα εξής: Πάρε το επόμενο στοιχείο a i στην ακολουθία. Αν a i >v, τότε ανάθεσε στην v τον αριθμό a i. Αλλιώς μην κάνεις τίποτα. Επέστρεψε την τιμή της μεταβλητής v. 11

12 Παράδειγμα αλγόριθμου (2/5) Απόδειξη Ορθότητας: Με επαγωγή στον αριθμό των βημάτων (επαναλήψεων) του αλγόριθμου. Βάση: Για i=2, η μεταβλητή v έχει την μεγαλύτερη τιμή ανάμεσα στους a 1 και a 2. Υπόθεση: Για i=k, η μεταβλητή v έχει την μεγαλύτερη τιμή ανάμεσα στους a 1,, a k. Επαγωγικό Βήμα: Η εκτέλεση του βήματος k+1 συγκρίνει τον αριθμό a k+1 με τον μέγιστο ανάμεσα στους αριθμούς a 1,, a k και αναθέτει τον μεγαλύτερο από τους δύο στη μεταβλητή v. Άρα μετά την εκτέλεση του βήματος, η μεταβλητή v θα έχει αποθηκευμένο τον μέγιστο ανάμεσα στους αριθμούς a 1,.., a k+1. 12

13 Παράδειγμα αλγόριθμου (3/5) Χρονική Πολυπλοκότητα: Καθένας από τους αριθμούς a 1,, a n συγκρίνεται με τη μεταβλητή v μια φορά. Αν c είναι ο χρόνος που απαιτείται για να συγκριθούν δυο αριθμοί, τότε ο συνολικός χρόνος που απαιτείται για τις συγκρίσεις είναι c(n-1). αν λάβουμε υπ όψην μας και τον χρόνο που απαιτείται για την αντιγραφή ενός αριθμού στη μεταβλητή v τότε η ανάλυση γίνεται πολύ πιο περίπλοκη αφού πρέπει να κάνουμε υποθέσεις για την κατανομή των αριθμών στην ακολουθία. Απλά υποθέτουμε ότι ο χρόνος αυτός συμπεριλαμβάνεται στην ποσότητα c. To c εξαρτάται από τον συγκεκριμένο Η/Υ που χρησιμοποιούμε. Για αυτό λέμε ότι η χρονική πολυπλοκότητα του αλγόριθμου είναι ανάλογη προς το n-1. 13

14 Παράδειγμα αλγόριθμου (4/5) Πρόβλημα: Δοθείσης μιας ακολουθίας {a i }=a 1,,a n, a i N, βρες το μεγαλύτερο της στοιχείο. Αλγόριθμος MAX2: Για i=1,2,,n-1 επανέλαβε τα εξής: Σύγκρινε τα στοιχεία a i και a i+1 της ακολουθίας. Αν a i > a i+1, τότε άλλαξε θέση στους δύο αριθμούς. Αλλιώς μην κάνεις τίποτα. Επέστρεψε την τιμή του στοιχείου a n. 14

15 Παράδειγμα αλγόριθμου (5/5) Απόδειξη Ορθότητας: Με επαγωγή. Χρονική Πολυπλοκότητα: Ο αλγόριθμος ΜΑΧ2 εκτελεί n-1 συγκρίσεις αριθμών. Άρα η χρονική του πολυπλοκότητα είναι ανάλογη προς το n-1. Τι διαφορά έχει με τον ΜΑΧ1; Μεταβάλει τα δεδομένα στη μνήμη αλλάζοντας θέση στους αριθμούς, ενώ ο ΜΑΧ1 απλά γράφει το αποτέλεσμα σε μια άλλη θέση μνήμης. Γενικά ένα πρόβλημα είναι πιθανό να λύνεται με πλήθος διαφορετικών αλγορίθμων, που μπορεί να έχουν ίδιες ή διαφορετικές πολυπλοκότητες. 15

16 Η πολυπλοκότητα εξαρτάται από το input Οι περισσότεροι αλγόριθμοι έχουν διαφορετικούς χρόνους εκτέλεσης για inputs διαφορετικού μεγέθους. Π.χ. Η αναζήτηση σε μια μεγάλη λίστα συνήθως παίρνει περισσότερο χρόνο από την αναζήτηση σε μια μικρή λίστα. Για αυτό τον λόγο, η χρονική πολυπλοκότητα συνήθως εκφράζεται ως συνάρτηση του μεγέθους του input. Αυτή η συνάρτηση συνήθως δίνει την πολυπλοκότητα για την χειρότερη περίπτωση input κάθε συγκεκριμένου μεγέθους. Πιο σπάνια χρησιμοποιούνται και συναρτήσεις που εκφράζουν τις πολυπλοκότητες καλύτερης και μέσης περίπτωσης. 16

17 Μέγεθος input Με ποια παράμετρο μπορούμε να αναπαραστήσουμε το μέγεθος του input ενός αλγορίθμου; Παραδείγματα: Διάταξη λίστας ακέραιων αριθμών: Το μέγεθος της λίστας. Εύρεση του αν ένα γράφημα έχει κύκλους: Το πλήθος των κόμβων και ακμών του γραφήματος. Ανάθεση μαθημάτων σε διδάσκοντες: Το πλήθος των μαθημάτων και των διδασκόντων. 17

18 Καλύτερη/ Χειρότερη / Μέση Περίπτωση (1/3) Για ένα συγκεκριμένο μέγεθος input n, διερευνούμε τους χρόνους εκτέλεσης για διαφορετικά στιγμιότυπα του input: 18

19 Running time Καλύτερη/ Χειρότερη / Μέση Περίπτωση (2/3) Για inputs όλων των μεγεθών: worst-case average-case best-case Input instance size 19

20 Καλύτερη/ Χειρότερη / Μέση Περίπτωση (3/3) Η Χειρότερη Περίπτωση (Worst case) χρησιμοποιείται συνήθως γιατί: Είναι ένα πάνω όριο και σε συγκεκριμένες εφαρμογές (e.g., έλεγχος εναέριας κυκλοφορίας, εγχειρήσεις) το να ξέρουμε τη χρονική πολυπλοκότητα χειρότερης περίπτωσης έχει πολύ μεγάλη σημασία. Για μερικούς αλγόριθμους η χειρότερη περίπτωση συμβαίνει σχετικά συχνά. Η μέση περίπτωση είναι συχνά όσο κακή είναι και η χειρότερη. Η εύρεση της μέσης περίπτωσης είναι συχνά πολύ δύσκολη. 20

21 Παράδειγμα: Διάταξη Αριθμών (1/12) INPUT Μια σειρά αριθμών OUTPUT Η σειρά των αριθμών διατεταγμένη a 1, a 2, a 3,.,a n Sort b 1,b 2,b 3,.,b n Ορθότητα Για οποιοδήποτε input ο αλγόριθμος σταματάει με το output: b 1 < b 2 < b 3 <. < b n b 1, b 2, b 3,., b n είναι μια αναδιάταξη των a 1, a 2, a 3,.,a n Χρόνος εκτέλεσης Εξαρτάται από πλήθος αριθμών (n) πόσο (μερικώς) διατεταγμένοι είναι τον αλγόριθμο 21

22 Παράδειγμα: Διάταξη Αριθμών (2/12) Λέγοντας ότι διατάσουμε n αριθμούς x 1 x n, εννοούμε ότι τους μεταθέτουμε έτσι ώστε τελικά να είναι διατεταγμένοι σε αύξουσα (ή φθίνουσα) διάταξη. Αλγόριθμος Bubble Sort Κάνε τα εξής για i=n,n-1,n-2,,4,3,2: Βρες και βάλε στη θέση x i τον μεγαλύτερο από τους i αριθμούς x 1 x i. Τελικά οι αριθμοί x 1 x n είναι σε αύξουσα διάταξη. for i=n to 2 do for j = 1 to i-1 do if x j > x j+1 then swap (x j,x j+1 ) ΜΑΧ2 22

23 Παράδειγμα: Διάταξη Αριθμών (3/12) αρχική ακολουθία πέρασμα

24 Παράδειγμα: Διάταξη Αριθμών (4/12) πέρασμα Επανέλαβε τη διαδικασία μέχρι η λίστα να έχει ταξινομηθεί 24

25 Παράδειγμα: Διάταξη Αριθμών (5/12) Για να εξακριβώσουμε ότι ο Bubble Sort είναι ορθός, παρατηρούμε ότι: για i=n η εκτέλεση του βήματος 1 τοποθετεί τον μεγαλύτερο από τους n αριθμούς στη θέση n. για i=n-1 η εκτέλεση του βήματος 1 τοποθετεί τον δεύτερο μεγαλύτερο από τους n αριθμούς στη θέση n-1. τελικά για i=2 η εκτέλεση του βήματος 1 τοποθετεί τον (n-1)- μεγαλύτερο (δηλ. τον δεύτερο μικρότερο) από τους n αριθμούς στη θέση n-1. άρα ο αριθμός που απομένει στη θέση 1 είναι ο μικρότερος από τους n αριθμούς. Οπότε ο αλγόριθμος πραγματικά διατάσσει τους αριθμούς σε αύξουσα διάταξη. 25

26 Παράδειγμα: Διάταξη Αριθμών (6/12) Χρονική Πολυπλοκότητα: Κατά την πρώτη εκτέλεση του βήματος 1 (δηλ. όταν i=n) εκτελούνται n-1 συγκρίσεις, κατά τη δεύτερη εκτελούνται n-2 συγκρίσεις, κ.ο.κ. Κατά την n-1 εκτέλεση του βήματος 1 εκτελείται μια σύγκριση. Άρα ο συνολικός αριθμός συγκρίσεων που εκτελούνται είναι: (n-1) + (n-2) = n(n-1)/2 Επομένως η χρονική πολυπλοκότητα του αλγόριθμου είναι ανάλογη προς το n(n-1)/2. 26

27 Παράδειγμα: Διάταξη Αριθμών (7/12) Αλγόριθμος Insertion Sort A i n j Στρατηγική Ξεκίνα με άδεια χέρια Βάλε έναν αριθμό στην κατάλληλη θέση του χεριού όπου κάνεις τη διάταξη Συνέχισε ώσπου όλοι οι αριθμοί έχουν διαταχθεί for i=2 to n key=x i insert x i into the sorted sequence x 1 x i-1 j=i-1 while j>0 and x j >key do x j+1 =x j j-- x j+1 =key 27

28 Παράδειγμα: Διάταξη Αριθμών (8/12) αρχική ακολουθία πέρασμα πέρασμα πέρασμα πέρασμα πέρασμα πέρασμα 6 28

29 Παράδειγμα: Διάταξη Αριθμών (9/12) Απόδειξη ορθότητας για τον αλγόριθμο Insertion Sort; παρόμοια με τον bubble sort. Χρονική Πολυπλοκότητα: Κατά την πρώτη εκτέλεση του βήματος 1 (δηλ. όταν i=2) εκτελείται 1 σύγκριση, κατά τη δεύτερη εκτελούνται 2 συγκρίσεις, κ.ο.κ. Κατά την n-1 εκτέλεση του βήματος 1 εκτελούνται n-1 συγκρίσεις. Άρα ο συνολικός αριθμός συγκρίσεων που εκτελούνται είναι: (n-2) + (n-1) = n(n-1)/2 Επομένως η χρονική πολυπλοκότητα του αλγόριθμου είναι ανάλογη προς το n(n-1)/2. 29

30 Παράδειγμα: Διάταξη Αριθμών (10/12) Αλγόριθμος Selection Sort Στρατηγική Ψάξε όλη τη λίστα και επέλεξε το μικρότερο στοιχείο. Αντάλλαξε το με το πρώτο στοιχείο της λίστας Συνέχισε με τον ίδιο τρόπο μέχρι να γίνουν n-1 τέτοια περάσματα στη λίστα for i=1 to n-1 do mikr=x i for j = i to n do if (x j <x mikr ) mikr=j swap(x i,x mikr ) 30

31 Παράδειγμα: Διάταξη Αριθμών (11/12) αρχική ακολουθία πέρασμα πέρασμα πέρασμα πέρασμα πέρασμα πέρασμα 6 31

32 Παράδειγμα: Διάταξη Αριθμών (12/12) Απόδειξη ορθότητας για τον αλγόριθμο Selection Sort; παρόμοια με τον bubble και τον insertion sort. Χρονική Πολυπλοκότητα: Κατά την πρώτη εκτέλεση του βήματος 1 (δηλ. όταν i=1) εκτελούνται n-1 συγκρίσεις, κατά τη δεύτερη εκτελούνται n-2 συγκρίσεις, κ.ο.κ. Κατά την n-1 εκτέλεση του βήματος 1 εκτελείται μια σύγκριση. Άρα ο συνολικός αριθμός συγκρίσεων που εκτελούνται είναι: (n-1) + (n-2) = n(n-1)/2 Επομένως η χρονική πολυπλοκότητα του αλγόριθμου είναι ανάλογη προς το n(n-1)/2. 32

33 Παράδειγμα: Αλγόριθμος του Dijkstra (1/4) Θέλουμε να βρούμε το ελάχιστο μονοπάτι από μια κορυφή s προς όλες τις άλλες σε ένα εμβαρημένο γράφημα G με V κορυφές. w: συνάρτηση βάρους ακμής d: μικρότερη απόσταση (δείκτης) κάθε κορυφής S: σύνολο κορυφών για τις οποίες έχουμε βρει το ελάχιστο μονοπάτι 33

34 Παράδειγμα: Αλγόριθμος του Dijkstra (2/4) Χρονική Πολυπλοκότητα: Ο Αλγόριθμος ξεκινάει με S={}, διευρύνει το σύνολο S κατά μια κορυφή σε κάθε επανάληψη, και τερματίζει όταν όλες οι κορυφές είναι στο S. Αν n είναι ο αριθμός των κορυφών, θα εκτελεστούν n επαναλήψεις. Σε κάθε επανάληψη επιλέγεται η κορυφή u με τον μικρότερο δείκτη ως προς το S και υπολογίζονται ξανά οι δείκτες για όλες τις γειτονικές κορυφές της u. Κατά την πρώτη επανάληψη, επιλέγουμε την κορυφή s και υπολογίζουμε τους δείκτες n-1 κορυφών στη χειρότερη περίπτωση. Κατά τη δεύτερη επανάληψη επιλέγουμε μια από n-1 κορυφές και υπολογίζουμε ξανά τους δείκτες n-2 κορυφών. Κατά την n-2 επανάληψη επιλέγουμε την προτελευταία κορυφή και υπολογίζουμε τους δείκτες της τελευταίας κορυφής. 34

35 Παράδειγμα: Αλγόριθμος του Dijkstra (3/4) Χρονική Πολυπλοκότητα: Ποια είναι η χρονική πολυπλοκότητα επιλογής μιας από n κορυφές; Ανάλογη του n-1 μια και το πρόβλημα είναι ουσιαστικά το πρόβλημα εύρεσης του μικρότερου ανάμεσα σε n αριθμούς. Ποια είναι η χρονική πολυπλοκότητα υπολογισμού n δεικτών; Πόσος χρόνος απαιτείται για τον υπολογισμό ενός δείκτη; Σταθερός χρόνος. Άρα για n δείκτες η πολυπλοκότητα είναι ανάλογη του n. Συνεπώς η πολυπλοκότητα της πρώτης επανάληψης είναι: (n-1) + (n-1) η πολυπλοκότητα της δεύτερης επανάληψης είναι: (n-2) + (n-2) η πολυπλοκότητα της n-2 επανάληψης είναι:

36 Παράδειγμα: Αλγόριθμος του Dijkstra (4/4) Χρονική Πολυπλοκότητα: Άρα για όλες τις επαναλήψεις η πολυπλοκότητα είναι: 2 ((n-1) + (n-2) ) = 2 (n(n-1)/2) = n(n-1) Άρα η πολυπλοκότητα είναι ανάλογη του n 2. Γιατί; Διότι ο παράγοντας 1 στο n-1 είναι αμελητέος. Φανταστείτε n= Τότε το n(n-1) και n 2 έχουν ελάχιστη διαφορά. 36

37 Πολυπλοκότητα Προβλημάτων (1/2) Πως μπορούμε να προσδιορίσουμε την πολυπλοκότητα ενός προβλήματος; δοθέντος ενός προβλήματος ποια είναι η μικρότερη δυνατή πολυπλοκότητα ενός αλγόριθμου επίλυσης του; μπορούμε να εκτελέσουμε αναζήτηση του μεγαλύτερου με πολυπλοκότητα μικρότερη από n-1; Αν γνωρίζουμε τη χρονική πολυπλοκότητα ενός προβλήματος τότε ξέρουμε ότι υπάρχει ένας αλγόριθμος με αυτή την πολυπλοκότητα που λύνει το πρόβλημα και δεν υπάρχει αλγόριθμος με καλύτερη πολυπλοκότητα. ο προσδιορισμός της χρονικής πολυπλοκότητας ενός προβλήματος είναι γενικά μια δύσκολη διεργασία. 37

38 Πολυπλοκότητα Προβλημάτων (2/2) Συχνά μπορούμε μόνο να προσδιορίσουμε άνω και κάτω φράγμα στην πολυπλοκότητα ενός προβλήματος. Άνω φράγμα: ο καλύτερος δυνατός αλγόριθμος επίλυσης του προβλήματος έχει πολυπλοκότητα μικρότερη ή ίση με το φράγμα. Ο προσδιορισμός ενός άνω φράγματος είναι εύκολος. Αρκεί να βρούμε έναν αλγόριθμο που λύνει το πρόβλημα. Κάτω φράγμα: ο καλύτερος δυνατός αλγόριθμος επίλυσης του προβλήματος έχει πολυπλοκότητα μεγαλύτερη ή ίση με το φράγμα. Ο προσδιορισμός ενός κάτω φράγματος είναι πιο δύσκολος. Πρέπει να αποδείξουμε ότι δεν υπάρχει καλύτερος αλγόριθμος. Αν ένα άνω φράγμα συμπέσει με ένα κάτω φράγμα τότε έχουμε προσδιορίσει την πολυπλοκότητα του προβλήματος. 38

39 Πολυπλοκότητα Προβλημάτων Παράδειγμα Για το πρόβλημα εύρεσης του μεγαλύτερου μεταξύ n αριθμών έχουμε ένα άνω φράγμα: n-1 βήματα σύγκρισης. Πως θα δείξουμε ότι το n-1 είναι και κάτω φράγμα; Απόδειξη: Υποθέστε ότι βρίσκουμε έναν αλγόριθμο που λύνει το πρόβλημα με λιγότερα από n-1 βήματα. Ας κατασκευάσουμε ένα γράφημα με n κορυφές που αντιστοιχούν στους n αριθμούς. Αν ο αλγόριθμος συγκρίνει δύο αριθμούς που αντιστοιχούν στις κορυφές v και u τότε υπάρχει ακμή μεταξύ των v και u. Μια και ο αλγόριθμος κάνει λιγότερα από n-1 βήματα, υπάρχουν λιγότερες από n-1 ακμές. Άρα το γράφημα δεν είναι συνεκτικό. Οπότε οι αριθμοί χωρίζονται σε (τουλάχιστον) δύο διαζευγμένα υποσύνολα. Ο μεγαλύτερος αριθμός μέσα σε κάθε υποσύνολο μπορεί να προσδιοριστεί, αλλά δε μπορεί να προσδιοριστεί ο μεγαλύτερος ανάμεσα σε ξεχωριστά υποσύνολα. Οπότε ο αλγόριθμος δεν είναι σωστός και ως αποτέλεσμα δε μπορεί να υπάρξει αλγόριθμος που λύνει το πρόβλημα με λιγότερα από n-1 βήματα. 39

40 Τεστ Ποια είναι η χρονική πολυπλοκότητα των παρακάτω κομματιών ψευδοκώδικα σε σχέση με το input; F1(n) i 0 F2(n) while n > 1 do n n-1 F3(n) while n > 1 do n n/2 F4(n) while n > 1 do for i = 1 to n do j i n n-1 40

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

42 Αριθμητικές Συναρτήσεις Μια συνάρτηση είναι μια διμελής σχέση που σε κάθε στοιχείο του πεδίου ορισμού αντιστοιχίζει ένα στοιχείο του πεδίου τιμών. Μια (διακριτή) αριθμητική συνάρτηση έχει πεδίο ορισμού το σύνολο των φυσικών αριθμών και πεδίο τιμών το σύνολο των πραγματικών αριθμών. a r = 7r r 0 2r 0 r 11 b r = 3 r 1 r > 11 οι αριθμητικές συναρτήσεις εμφανίζονται πολύ συχνά στον ψηφιακό υπολογισμό. 42

43 Ασυμπτωτική Συμπεριφορά Αριθμητικών Συναρτήσεων (1/3) Για τις αριθμητικές συναρτήσεις, συχνά χρειάζεται να γνωρίζουμε ένα μέτρο του πόσο γρήγορα αυξάνεται η συνάρτηση. Αν η f(x) αυξάνεται γρηγορότερα της g(x), τότε η f(x) πάντα κάποια στιγμή γίνεται μεγαλύτερη της g(x) οριακά (δηλαδή για αρκετά μεγάλες τιμές του x). Αυτό είναι πολύ χρήσιμο στους επιστήμονες υπολογιστών και στους μηχανικούς για να δείχνουμε ότι ένας αλγόριθμος ή μια κατασκευή κλιμακώνεται (scales) καλύτερα ή χειρότερα από μια άλλη. δηλ. έχει καλύτερη (πιο αποδοτική) συμπεριφορά καθώς το μέγεθος του προβλήματος που επιλύει αυξάνεται. 43

44 Ασυμπτωτική Συμπεριφορά Αριθμητικών Συναρτήσεων (2/3) Με τον όρο ασυμπτωτική συμπεριφορά μιας αριθμητικής συνάρτησης f(n) εννοούμε το πως μεταβάλλεται η τιμή της συνάρτησης για μεγάλο n. Αν έχουμε έναν αλγόριθμο για ταξινόμηση ονομάτων και ο χρόνος που απαιτεί για n αριθμούς δίνεται από τη συνάρτηση f(n) τότε είναι πολύ σημαντικό το πως αυξάνεται το f(n) όταν χρησιμοποιούμε τον αλγόριθμο για να ταξινομήσουμε δεκάδες χιλιάδες ονομάτων. ενώ δεν είναι ιδιαίτερα σημαντικό αν χρησιμοποιούμε τον αλγόριθμο μόνο για ταξινόμηση μερικών εκατοντάδων ονομάτων το πολύ. 44

45 Ασυμπτωτική Συμπεριφορά Αριθμητικών Συναρτήσεων (3/3) Για παράδειγμα υποθέστε ότι σχεδιάζετε ένα web site για την επεξεργασία δεδομένων χρηστών (π.χ., αρχεία εσόδωνεξόδων). Υποθέστε ότι το πρόγραμμα A για ανάκτηση από βάση δεδομένων χρειάζεται f A (n)=30n+8 microseconds για την επεξεργασία n εγγραφών, ενώ το πρόγραμμα B χρειάζεται f B (n)=n 2 +1 microseconds για την επεξεργασία των n εγγραφών. Ποιο πρόγραμμα θα διαλέγατε αν ξέρατε ότι πρέπει να υποστηρίξετε εκατομμύρια χρηστών; 45

46 Τιμή Συνάρτησης Τάξη Μεγέθους Αύξησης Συναρτήσεων (1/8) Στη γραφική αναπαράσταση των συναρτήσεων, καθώς προχωράμε προς τα δεξιά, η συνάρτηση που αυξάνεται γρηγορότερα πάντα κάποια στιγμή γίνεται η μεγαλύτερη... f B (n)=n 2 +1 f A (n)=30n+8 Αυξανόμενο n 46

47 Τάξη Μεγέθους Αύξησης Συναρτήσεων (2/8) Περιγράψτε αυτή τη συνάρτηση: f(x) Σταθερή συνάρτηση Παραμένει σταθερή καθώς αυξάνεται το x Π.χ. f(x) = 5 x 47

48 Τάξη Μεγέθους Αύξησης Συναρτήσεων (3/8) Περιγράψτε αυτές τις συναρτήσεις: f(x) Γραμμικές συναρτήσεις Κάθε μοναδιαία αύξηση στο x έχει ως αποτέλεσμα παρόμοια αύξηση στο f(x). x Π.χ. f(x)=5x 48

49 Τάξη Μεγέθους Αύξησης Συναρτήσεων (4/8) Περιγράψτε αυτή τη συνάρτηση: Λογαριθμική συνάρτηση Αυξάνεται πολύ αργά Π.χ. f(x)=5logx 49

50 Τάξη Μεγέθους Αύξησης Συναρτήσεων (5/8) Περιγράψτε αυτή τη συνάρτηση: Εκθετική συνάρτηση Αυξάνεται πολύ γρήγορα Π.χ. f(x)=5 x 50

51 Τάξη Μεγέθους Αύξησης Συναρτήσεων (6/8) Περιγράψτε αυτή τη συνάρτηση: f(x) Δυωνυμική συνάρτηση Πολυωνυμική Π.χ. f(x)=5x 2 x 51

52 T(n) Τάξη Μεγέθους Αύξησης Συναρτήσεων (7/8) 1,00E+10 1,00E+09 1,00E+08 1,00E+07 1,00E+06 1,00E+05 1,00E+04 n log n sqrt n n log n 100n n^2 n^3 1,00E+03 1,00E+02 1,00E+01 1,00E+00 1,00E n 52

53 T(n) Τάξη Μεγέθους Αύξησης Συναρτήσεων (8/8) 1,00E+155 1,00E+143 1,00E+131 1,00E+119 1,00E+107 1,00E+95 1,00E+83 1,00E+71 1,00E+59 1,00E+47 n log n sqrt n n log n 100n n^2 n^3 2^n 1,00E+35 1,00E+23 1,00E+11 1,00E n 53

54 Ασυμπτωτική συμπεριφορά Αριθμητικών συναρτήσεων (1/5) Για να συγκρίνουμε την ασυμπτωτική συμπεριφορά δύο αριθμητικών συναρτήσεων εισάγουμε την έννοια της ασυμπτωτικής επικράτησης. Έστω δυο αριθμητικές συναρτήσεις a και b. Λέμε ότι η a επικρατεί ασυμπτωτικά της b αν υπάρχουν θετικές σταθερές k και m τέτοιες ώστε: b(x) ma(x) π.χ. έστω a(x) = x + 1 x 0 και b(x) = 1/x + 7 x 0 για x k H a επικρατεί ασυμπτωτικά της b γιατί για k=7 και m=1 b(x) a(x) για x 7 54

55 Ασυμπτωτική συμπεριφορά Αριθμητικών συναρτήσεων (2/5) Έστω a(x) = (1/100)x και b(x) = x x x>10 H a επικρατεί ασυμπτωτικά της b γιατί για k= και m=10. b(x) 10a(x) για x To ότι η a επικρατεί ασυμπτωτικά της b σημαίνει ότι η a μεγαλώνει γρηγορότερα από ότι η b 55

56 Ασυμπτωτική συμπεριφορά Αριθμητικών συναρτήσεων (3/5) Ισχύουν τα εξής: Για οποιαδήποτε αριθμητική συνάρτηση a, η συνάρτηση a επικρατεί ασυμπτωτικά της a. Αν η a επικρατεί ασυμπτωτικά της b, τότε επικρατεί ασυμπτωτικά και της sb, όπου s είναι μια οποιαδήποτε σταθερά. Αν η a επικρατεί ασυμπτωτικά της b και η b επικρατεί ασυμπτωτικά της c, τότε και η a επικρατεί ασυμπτωτικά της c. Αν η a επικρατεί ασυμπτωτικά των b και c, τότε επικρατεί ασυμπτωτικά και της sb+tc, όπου s και t είναι δύο οποιεσδήποτε σταθερές. 56

57 Ασυμπτωτική συμπεριφορά Αριθμητικών συναρτήσεων (4/5) Για κάποια δεδομένη αριθμητική συνάρτηση f, συμβολίζουμε με Ο(f) το σύνολο όλων των αριθμητικών συναρτήσεων των οποίων η f επικρατεί ασυμπτωτικά. Το Ο(f) διαβάζεται τάξη f ή κεφαλαίο όμικρον της f Λέμε ότι f(n)=30n+8 είναι (το πολύ) τάξης n, ή O(n). Είναι, το πολύ, περίπου ανάλογη του n. Η f(n)=n 2 +1 είναι τάξης n 2, ή O(n 2 ). Είναι (το πολύ) περίπου ανάλογη του n 2. 57

58 Ασυμπτωτική Αύξηση Συναρτήσεων (1/2) Σημαντικός Ορισμός: Για τις συναρτήσεις f και g γράφουμε f(x) = O(g(x)) για να αναπαραστήσουμε ότι c,k έτσι ώστε x>k, f(x) c g(x) Λέμε ότι f(x) είναι μεγάλο O του g(x) Για να αποδείξουμε f(x) = O(g(x)): πρέπει να βρούμε c και k έτσι ώστε να ισχύει η ανισότητα 58

59 Ασυμπτωτική Αύξηση Συναρτήσεων (2/2) f(x) = O(g(x)) Αν και μόνο αν c,k έτσι ώστε x>k, f(x) c g(x) f(x) c g(x) g(x) Δίνουμε ένα ασυμπτωτικό πάνω όριο στην f(x) k x 59

60 Σχετικά με τον Ορισμό Προσέξτε ότι η f είναι O(g) αν υπάρχουν οποιεσδήποτε τιμές των c και k που ικανοποιούν τον ορισμό. Αλλά: Οι συγκεκριμένες τιμές των c, k, που ικανοποιούν τον ορισμό δεν είναι μοναδικές: Οποιαδήποτε μεγαλύτερη τιμή του c και/ή του k μας κάνει επίσης. Δεν είναι απαραίτητο να βρείτε τις μικρότερες τιμές των c και k που δουλεύουν. (Αν και σε κάποιες περιπτώσεις μπορεί να είναι οι μικρότερες!) Αλλά, πρέπει να αποδείξετε ότι οι τιμές που επιλέξατε λειτουργούν. 60

61 Ασυμπτωτική συμπεριφορά Αριθμητικών συναρτήσεων (5/5) Ισχύουν τα εξής: Για οποιαδήποτε αριθμητική συνάρτηση a, η συνάρτηση a είναι O( a ). Αν η b είναι Ο(a), τότε για οποιαδήποτε σταθερά s η sb, είναι επίσης Ο(a). Αν η c είναι O(b) και η b είναι O(a) τότε και c είναι O(a). Είναι δυνατόν η a να είναι O(b) και η b να είναι επίσης O(a). Αν οι b και c είναι O(a), τότε για οποιεσδήποτε σταθερές s και t, η sc+tb είναι επίσης O(a). θα δούμε την απόδειξη αργότερα. 61

62 Παραδείγματα Μεγάλου-O (1/7) f(x) = O(g(x)) Αν και μόνο αν c,k έτσι ώστε x>k, f(x) c g(x) 3n = O(15n) μια και n>0, 3n 1 15n υπάρχει k υπάρχει c 62

63 Παραδείγματα Μεγάλου-O (2/7) f(x) = O(g(x)) Αν και μόνο αν c,k έτσι ώστε x>k, f(x) c g(x) 15n = O(3n) μια και n>, 50 15n 3n 85 63

64 Παραδείγματα Μεγάλου-O (3/7) f(x) = O(g(x)) Αν και μόνο αν c,k έτσι ώστε x>k, f(x) c g(x) x 2 = O(x 3 ) μια και x>, 1 x 2 x 3 64

65 Παραδείγματα Μεγάλου-O (4/7) f(x) = O(g(x)) Αν και μόνο αν c,k έτσι ώστε x>k, f(x) c g(x) 1000x 2 = O(x 2 ) μια και x>, x 2 x

66 Παραδείγματα Μεγάλου-O (5/7) Δείξτε ότι το 30n+8 είναι O(n). Δείξτε c,k: n>k: 30n+8 cn. Ας θέσουμε c=31, k=8. Υποθέτουμε ότι n>k=8. Τότε cn = 31n = 30n + n > 30n+8, οπότε 30n+8 < cn. Δείξτε ότι το n 2 +1 είναι O(n 2 ). Δείξτε c,k: n>k: n 2 +1 cn 2. Ας θέσουμε c=2, k=1. Υποθέτουμε ότι n>1. Τότε cn 2 = 2n 2 = n 2 +n 2 > n 2 +1, ή n 2 +1< cn 2. 66

67 Παραδείγματα Μεγάλου-O (6/7) f(x) = O(g(x)) Αν και μόνο αν c,k έτσι ώστε x>k, f(x) c g(x) Αποδείξτε ότι x x = O((1/100)x 2 ) x x x 2 όταν x > (1/100)x 2 100x 100x x 2 k = 1, c =

68 Παραδείγματα Μεγάλου-O (7/7) Αποδείξτε ότι 5x = O(x/2) Πρέπει x>, 5x x/2 Δοκιμάστε c = 10 x>, 5x x/2 Δε γίνεται τίποτα με το k Δοκιμάστε c = 11 x>, 5x x + x/2 x>, x/2 k = 200, c = 11 68

69 Τιμή της συνάρτησης Παράδειγμα Μεγάλου-O, γραφικά Παρατηρήστε ότι το 30n+8 δεν είναι μικρότερο του n πουθενά (n>0). Δεν είναι καν μικρότερο του 31n παντού. Αλλά είναι μικρότερο του 31n παντού στα δεξιά του n=8. cn = 31n n>k=8 30n+8 n Αυξανόμενο n 30n+8 O(n) 69

70 Χρήσιμα Στοιχεία σχετικά με το Μεγάλο-O c>0, O(cf)=O(f+c)=O(f c)=o(f) f 1 O(g 1 ) f 2 O(g 2 ) f 1 f 2 O(g 1 g 2 ) f 1 +f 2 O(g 1 +g 2 ) = O(max(g 1,g 2 )) = O(g 1 ) if g 2 O(g 1 ) (Πολύ χρήσιμο!) 70

71 Ασυμπτωτική αύξηση συναρτήσεων (1/3) Αν f1(x) = O(g1(x)) και f2(x)=o(g2(x)), τότε f1(x) + f2(x) = O(max{g1(x),g2(x)}) Απόδειξη: Έστω h(x) = max{g 1 (x),g 2 (x)}) Πρέπει να βρούμε σταθερές c και k έτσι ώστε x>k, f 1 (x) + f 2 (x) c h(x). Ξέρουμε ότι f 1 (x) c 1 g 1 (x) και f 2 (x) c 2 g 2 (x) Έτσι, f 1 (x) + f 2 (x) c 1 g 1 (x) + c 2 g 2 (x) c 1 h(x) + c 2 h(x) = (c 1 +c 2 ) h(x) c = c 1 +c 2, k = max{k 1,k 2 } 71

72 Ασυμπτωτική αύξηση συναρτήσεων (2/3) Ξέρουμε ότι: Αν f1(x) = O(g1(x)) και f2(x)=o(g2(x)), τότε f1(x) + f2(x) = O(max{g1(x),g2(x)}). Συνεπώς: Αν f 1 (x) = O(g(x)) και f 2 (x)=o(g(x)), τότε f 1 (x) + f 2 (x) = O(g(x)). Απλά η περίπτωση όπου g 1 (x) = g 2 (x) = g(x) 72

73 Εκφράσεις με Μεγάλο-O Όταν το O(f) χρησιμοποιείται ως όρος σε μια αριθμητική έκφραση, σημαίνει: κάποια συνάρτηση f τέτοια ώστε f O(f). Π.χ.: x 2 +O(x) σημαίνει x 2 συν κάποια συνάρτηση που είναι O(x). Κάθε τέτοια έκφραση ουσιαστικά αναπαριστά ένα σύνολο από συναρτήσεις: x 2 +O(x) : {g f O(x): g(x)= x 2 +f(x)} 73

74 Ασυμπτωτική αύξηση συναρτήσεων (3/3) Κανόνες υπολογισμού του Ο: Γενικά, μόνο ο μεγαλύτερος όρος μετράει σε ένα άθροισμα. a 0 x n + a 1 x n a n-1 x 1 + a n x 0 = O(x n ) Το n είναι ισχυρότερο του log n. n 5 log n = O(n 6 ) Κοινές συναρτήσεις σε αυξανόμενη τάξη του O(): 1 n (n lg n) n 2 n 3 2 n n! Linear time Exponential time Constant time Quadratic time 74

75 Παραδείγματα Ασυμπτωτικής Αύξησης Συναρτήσεων (1/2) n! n (n 1) n n n n n n n n! O(n n ) 75

76 Ορισμός: (g), ακριβώς τάξης g Αν f O(g) και g O(f), τότε λέμε πως οι g και f είναι της ίδιας τάξης ή η f είναι (ακριβώς) τάξης g και γράφουμε f (g). Άλλος, ισοδύναμος ορισμός: (g) {f:r R c 1 c 2 k>0 x>k: c 1 g(x) f(x) c 2 g(x) } Παντού πέρα από ένα σημείο k, η f(x) βρίσκεται μεταξύ δύο πολλαπλασίων της g(x). 76

77 Running Time Συμβολισμός Θ Ο συμβολισμός (μεγάλο θήτα) δίνει ένα αυστηρό ασυμπτωτικό όριο: f(n) = (g(n)) αν υπάρχουν σταθερές c 1, c 2, και n 0, ε.ω. c 1 g(n) f(n) c 2 g(n) for n n 0. c 2 g (n) f (n) c g (n) 1 n 0 Input Size 77

78 Running Time Συμβολισμός Ω Ο συμβολισμός W (μεγάλο ωμέγα) δίνει ένα ασυμπτωτικό κάτω όριο f(n) = W(g(n)) αν υπάρχουν σταθερές c and n 0, ε.ω. c g(n) f(n) for n n 0. f (n) c g( n) Χρησιμοποιείται για περιγραφή χρόνων καλύτερης περίπτωσης (best-case). n 0 Input Size 78

79 Κανόνες για το Παρόμοιοι με τους κανόνες για το O( ), εκτός από: f,g>0 & σταθερές a,b R, με b>0, af (f), αλλά Όπως με το O. f (fg) εκτός αν g= (1) Σε αντίθεση με το O. f 1-b (f), και Σε αντίθεση με το O. (log b f ) c (f). Σε αντίθεση με το O. Οι συναρτήσεις στις δύο τελευταίες περιπτώσεις είναι αυστηρά χαμηλότερης τάξης από ότι η (f). 79

80 Παράδειγμα Προσδιορίστε αν: Γρήγορη λύση: n? i ( n 2 ) i 1 n i i 1 n( n n ( n) / n ( n) ( n 1) / 2 )

81 Συσχετίσεις Αύξησης Συναρτήσεων W(g) = {f g O(f)} Οι συναρτήσεις που είναι τουλάχιστον τάξης g. o(g) = {f c>0 k x>k : f(x) < cg(x) } Οι συναρτήσεις που είναι αυστηρά χαμηλότερης τάξης από τη g. o(g) O(g) (g). (g) = {f c>0 k x>k : cg(x) < f(x) } Οι συναρτήσεις που είναι αυστηρά υψηλότερης τάξης από τη g. (g) W(g) (g). 81

82 Συσχετίσεις Σχέσεις υποσυνόλων ανάμεσα στα σύνολα τάξεων αύξησης συναρτήσεων. o( f ) O( f ) R R W( f ) f ( f ) ( f ) 82

83 Παράδειγμα 1: Ο αλγόριθμος Max (1/3) procedure max(a 1, a 2,, a n : integers) v := a 1 t 1 for i := 2 to n t 2 if a i > v then v := a i t 3 return v t 4 Φορές εκτέλεσης κάθε γραμμής Ας υπολογίζουμε την πολυπλοκότητα 83

84 Παράδειγμα 1: Ο αλγόριθμος Max (2/3) procedure max(a 1, a 2,, a n : integers) v := a 1 t 1 for i := 2 to n t 2 if a i > v then v := a i t 3 return v t 4 Φορές εκτέλεσης κάθε γραμμής n t( n) t1 ( t2 t3) t i

85 Παράδειγμα 1: Ο αλγόριθμος Max (3/3) t( n) t 1 n i 2 ( t 2 t 3 ) t 4 n (1) (1) (1) (1) ( n 1) (1) i 2 (1) ( n) (1) (1) ( n) ( n) 85

86 Παράδειγμα 2: Γραμμική Αναζήτηση (1/2) INPUT μια ακολουθία αριθμών (database) ένας συγκεκριμένος αριθμός (query) a 1, a 2, a 3,.,a n ; q OUTPUT η θέση του αριθμού στην ακολουθία ή NULL j ; ; 9 NULL 86

87 Παράδειγμα 2: Γραμμική Αναζήτηση (2/2) procedure linear search (x: integer, a 1, a 2,, a n : distinct integers) i := 1 t 1 while (i n x a i ) t 2 i := i + 1 t 3 if i n then location := i t 4 else location := 0 t 5 return location t 6 87

88 Ανάλυση Γραμμικής Αναζήτησης Πολυπλοκότητα χειρότερης περίπτωσης: Καλύτερη περίπτωση: Μέση περίπτωση, αν το αντικείμενο υπάρχει στη λίστα: 88 ) ( ) ( ) ( n t t t t t t n t n i (1) ) ( t t t t n t ) ( ) ( ) ( / n t t t t t t n t n i

89 Παράδειγμα 3: Δυαδική Αναζήτηση (1/3) INPUT μια ταξινομημένη ακολουθία αριθμών σε αύξουσα σειρά ένας συγκεκριμένος αριθμός a 1, a 2, a 3,.,a n ; q OUTPUT η θέση του αριθμού στην ακολουθία ή NULL j ; ; 9 NULL 89

90 Παράδειγμα 3: Δυαδική Αναζήτηση (2/3) procedure binary search (x: integer, a 1, a 2,, a n : distinct integers, sorted smallest to largest) i := 1 j := n while i<j begin m := (i+j)/2 (1) if x>a m then i := m+1 else j := m end if x = a i then location := i else location := 0 return location Βασική Ερώτηση: Πόσες επαναλήψεις του loop? (1) (1) 90

91 Παράδειγμα 3: Δυαδική Αναζήτηση (3/3) Υποθέστε ότι το n είναι δύναμη του 2, π.χ, k: n=2 k. Στο διάστημα από i=1 ως j=n περιέχονται n αντικείμενα. Σε κάθε επανάληψη: Το μέγεθος j i+1 του διαστήματος κόβεται περίπου στο μισό. Ο βρόγχος σταματάει όταν 1=2 0 (i=j). Οπότε το πλήθος των επαναλήψεων είναι: k = log 2 n = (log 2 n)= (log n) Ακόμα και αν n 2 k (δεν είναι ακριβώς δύναμη του 2), η χρονική πολυπλοκότητα παραμένει (log 2 n) = (log n). 91

92 Χωρική Πολυπλοκότητα Η χωρική πολυπλοκότητα προσδιορίζεται επίσης ως συνάρτηση του μεγέθους των δεδομένων (input). Ορισμός: Η χωρική πολυπλοκότητα χειρότερης περίπτωσης (worst-case space complexity) ενός αλγόριθμου είναι η συνάρτηση S(n), η οποία είναι η μέγιστη, για όλα τα inputs μεγέθους n, των αθροισμάτων χώρου μνήμης από κάθε βασική πράξη (primitive operation). Αν είναι εκθετική υπάρχει σοβαρό πρόβλημα! 92

93 Πολυπλοκότητα προβλημάτων Η πολυπλοκότητα ενός υπολογιστικού προβλήματος είναι (η τάξη αύξησης) της πολυπλοκότητας του αλγόριθμου με την χαμηλότερη τάξη αύξησης πολυπλοκότητας για την επίλυση του προβλήματος. ΠΡΟΣΟΧΗ: Δεν αναφερόμαστε στον καλύτερο γνωστό αλγόριθμο, αλλά στον καλύτερο που μπορεί να υπάρξει! Π.χ. Το πρόβλημα αναζήτησης σε μια διατεταγμένη λίστα έχει το πολύ λογαριθμική χρονική πολυπλοκότητα. (O(log n).) 93

94 Πρακτικώς επιλύσιμα και δυσεπίλυτα προβλήματα Ένα πρόβλημα με το πολύ πολυωνυμική χρονική πολυπλοκότητα θεωρείται πρακτικά επιλύσιμο. Το P είναι το σύνολο όλων των πρακτικά επιλύσιμων προβλημάτων. Ένα πρόβλημα με πολυπλοκότητα μεγαλύτερη της πολυωνυμικής θεωρείται δυσεπίλυτο. Προσέξτε ότι n 1,000,000 είναι τεχνικά επιλύσιμο, αλλά στην πραγματικότητα πολύ δύσκολο. n log log log n είναι τεχνικά δυσεπίλυτο, αλλά εύκολο. Τέτοιες περιπτώσεις είναι σπάνιες πάντως. 94

95 Συναρτήσεις αύξησης κόστους 1E+40 Growth rates 1E+30 1E+20 5n n^3 n^5 1.2^n 2^n n^n Number of microseconds since Big- Bang 1E

96 Exponential Polynomial Μη επιλύσιμα προβλήματα (intractable problems) function/ n n 2 1/10,000 second 1/2,500 second 1/400 second 1/100 second 9/100 second n 5 1/10 second 3.2 seconds 5.2 minutes 2.8 hours 28.1 days 2 n 1/1000 second 1 second 35.7 years 400 trillion centuries a 75 digitnumber of centuries n n 2.8 hours 3.3 trillion years a 70 digitnumber of centuries a 185 digitnumber of centuries a 728 digitnumber of centuries 96

97 Παραδείγματα Χρόνων Εκτέλεσης (1.25 bytes) (125 kb) #ops(n) n=10 n=10 6 log 2 n 3.3 ns 19.9 ns n 10 ns 1 ms n log 2 n 33 ns 19.9 ms n ns 16 m 40 s 2 n s ,004.5 Χιλιετίες n! 3.63 ms Ωχ! Υποθέστε ότι απαιτείται 1 ns (10 9 δευτερόλεπτα) για κάθε βασική διεργασία (#op), το πρόβλημα έχει μέγεθος n bits, και το πλήθος #ops είναι συνάρτηση του n, όπως φαίνεται. 97

98 Μη-επιλύσιμα Προβλήματα Ο Turing ανακάλυψε στις αρχές της δεκαετία του 1930 ότι υπάρχουν προβλήματα που δεν μπορούν να επιλυθούν από οποιονδήποτε αλγόριθμο. Ή ισοδύναμα, υπάρχουν ερωτήσεις ναι/όχι που δε μπορούν να απαντηθούν, και συναρτήσεις που δε μπορούν να υπολογιστούν. Κλασσικό Παράδειγμα: το πρόβλημα τερματισμού (halting problem). Δοθέντος ενός οποιουδήποτε αλγόριθμου και κάποιων δεδομένων εισόδου, θα τερματίσει κάποτε ο αλγόριθμος, ή θα συνεχίσει να τρέχει για πάντα σε ένα ατέρμονο loop; [Πηγή Εικόνας: http: // ] Alan Turing

99 P και NP Το NP είναι το σύνολο των προβλημάτων για τα οποία υπάρχει ένας πρακτικά υπολογίσιμος αλγόριθμος που μπορεί να ελέγξει αν μια προτεινόμενη λύση είναι σωστή. Ξέρουμε ότι P NP, αλλά η πιο διάσημη υπόθεση που δεν έχει αποδειχθεί στην επιστήμη υπολογιστών είναι ότι η σχέση αυτή είναι κανονική. δηλ., ότι P NP κι όχι P=NP. Όποιος το αποδείξει αυτό θα γίνει διάσημος! (ή αποδείξει ότι δεν ισχύει!) 99

100 Και τι έγινε; Οι Η/Υ γίνονται γρηγορότεροι μέρα με τη μέρα: αυτό είναι ασήμαντο (μια σταθερή ποσότητα) σε σύγκριση με τον εκθετικό χρόνο εκτέλεσης. Υπάρχει μια μεγάλη κατηγορία προβλημάτων που ονομάζονται (NP- complete) προβλήματα (περίπου 1000 είναι). Για κανένα δεν υπάρχει πολυωνυμικός αλγόριθμος. Δεν έχει αποδειχθεί όμως ότι δε μπορεί να υπάρξει πολυωνυμικός αλγόριθμος Περισσότερα στο επόμενο 6μηνο

101 Βασικά πράγματα που πρέπει να ξέρετε Ορισμοί αλγοριθμικής πολυπλοκότητας, χρονικής πολυπλοκότητας, χρονικής πολυπλοκότητας χειρότερης περίπτωσης. Τάξεις αύξησης πολυπλοκότητας. Πως να αναλύετε τη χειρότερη περίπτωση τάξης αύξησης της χρονικής πολυπλοκότητας για απλούς αλγόριθμους. 101

102 Τέλος Ενότητας 102

103 Σημείωμα Αναφοράς Copyright, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Στεργίου Κωνσταντίνος. «Διακριτά Μαθηματικά». Έκδοση: 1.0. Κοζάνη Διαθέσιμο από τη δικτυακή διεύθυνση: https: //eclass.uowm.gr/courses/icte257/ 103

104 Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό 104

105 Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 105

106 Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες http: // definitions-of-the-technological-singularity/ 106

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μαθηματική Ανάλυση Ι

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

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

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

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

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

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

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

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

Μαθηματική Ανάλυση Ι

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

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (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

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

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

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

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

Μαθηματική Ανάλυση Ι

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μαθηματική Ανάλυση ΙI

Μαθηματική Ανάλυση ΙI Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση ΙI Ενότητα 3: Συναρτήσεις πολλών μεταβλητών Επίκουρος Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και

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

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

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

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Μαθηματική Ανάλυση Ι

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

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

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

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

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

Μαθηματική Ανάλυση Ι

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

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

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

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

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

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

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

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

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

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

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

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Παιδαγωγικό Τμήμα Νηπιαγωγών Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Ενότητα # 9: Ψηφιακός Ήχος - Audacity Θαρρενός Μπράτιτσης Παιδαγωγικό Τμήμα Νηπιαγωγών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

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

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

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

Μαθηματική Ανάλυση Ι

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

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

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Προγραμματισμός Η/Υ Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση

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

Μαθηματική Ανάλυση Ι

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

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

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

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

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

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Προγραμματισμός Η/Υ 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα Τμήμα Τεχνολόγων Περιβάλλοντος ΤΕΙ Ιονίων Νήσων Το περιεχόμενο του μαθήματος διατίθεται

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskl Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

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

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

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

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

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Αριθμητικά Συστήματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Ένα Αριθμητικό Σύστημα αποτελείται από ένα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

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

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

Διδακτική της Πληροφορικής

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

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

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

ΔΡΔ: Διαγράμματα Ροής Δεδομένων

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

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

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

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

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

Μαθηματική Ανάλυση Ι

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

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

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

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

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

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) ΟΙΚΟΝΟΜΕΤΡΙΑ Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

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

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

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

Εφαρμοσμένη Βελτιστοποίηση

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

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

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

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

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

Συστήματα Αναμονής. Ενότητα 2: Τυχαίες Μεταβλητές. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συστήματα Αναμονής. Ενότητα 2: Τυχαίες Μεταβλητές. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Συστήματα Αναμονής Ενότητα 2: Τυχαίες Μεταβλητές Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Μαθηματικά Διοικητικών & Οικονομικών Επιστημών Ενότητα 1: Συναρτήσεις (Θεωρία) Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων

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

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

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

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

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

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

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

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

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

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

Πληροφορική ΙΙ Θεματική Ενότητα 7

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: MPI_Get_count, non blocking send/recv, εμφάνιση και αποφυγή αδιεξόδων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

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

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

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

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

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

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας Ενότητα 8: Αξιολόγηση και επιλογή αγορών στόχων από ελληνική εταιρία στον κλάδο παραγωγής και εμπορίας έτοιμου γυναικείου Καθ. Αλεξανδρίδης Αναστάσιος Δρ. Αντωνιάδης

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

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 4: Ψηφιακή Λογική, Άλγεβρα Boole, Πίνακες Αλήθειας (Μέρος Α) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Παιδαγωγικό Τμήμα Νηπιαγωγών Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία Ενότητα # 2: Αρχεία Ψηφιακών εικόνων Θαρρενός Μπράτιτσης Παιδαγωγικό Τμήμα Νηπιαγωγών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

Τεχνοοικονομική Μελέτη

Τεχνοοικονομική Μελέτη Τμήμα Μηχανολόγων Μηχανικών Τεχνοοικονομική Μελέτη Ενότητα 7: Σχέση μεταξύ εσόδων και ανάκτηση κεφαλαίου Σκόδρας Γεώργιος, Αν. Καθηγητής gskodras@uowm.gr Τμήμα Μηχανολόγων Μηχανικών Άδειες Χρήσης Το παρόν

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανολόγων Μηχανικών Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης Ενότητα: Εισαγωγή Αν. Καθηγητής Μπακούρος Ιωάννης Τηλ.: 24610 56660, e-mail: ylb@uowm.gr,

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Κοινωνιολογία της Εκπαίδευσης

Κοινωνιολογία της Εκπαίδευσης Παιδαγωγικό Τμήμα Νηπιαγωγών Κοινωνιολογία της Εκπαίδευσης Ενότητα 1: Εισαγωγή στην Κοινωνιολογία της Εκπαίδευσης Επίκ. Καθηγητής: Νίκος Φωτόπουλος e-mail: nfotopoulos@uowm.gr Τηλ. Επικοινωνίας: 23850-55150

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

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 1: Βασικές έννοιες της πληροφορικής Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

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

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

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

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

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός 1/8 Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός Κεφάλαιο Γ.05: Ολοκλήρωση Ρητών Συναρτήσεων Όνομα Καθηγητή: Γεώργιος Ν. Μπροδήμας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1

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

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Μαθηματική Ανάλυση ΙI

Μαθηματική Ανάλυση ΙI Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Μαθηματική Ανάλυση ΙI Ενότητα 7: Ακρότατα, τύπος Taylor Επίκουρος Καθηγητής Θ. Ζυγκιρίδης e-mail: tzygiridis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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