ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ ΑΛΓΟΡΙΘΜΟΙ Δ Ι ΑΛΕΞΗ / 02/2016 ΔΙΔΑΣΚΩΝ ΚΩΣΤΑΣ ΚΟΛΟΜΒΑΤΣΟΣ

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

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ ΑΛΓΟΡΙΘΜΟΙ Δ Ι ΑΛΕΞΗ / 02/2016 ΔΙΔΑΣΚΩΝ ΚΩΣΤΑΣ ΚΟΛΟΜΒΑΤΣΟΣ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ ΑΛΓΟΡΙΘΜΟΙ Δ Ι ΑΛΕΞΗ / 02/2016 ΔΙΔΑΣΚΩΝ ΚΩΣΤΑΣ ΚΟΛΟΜΒΑΤΣΟΣ

2 ΔΙΑΔΙΚΑΣΤΙΚΑ

3 Διαδικαστικά του Μαθήματος (1/2) Διδασκαλία Τρίτη 14:00 17:00 Εργαστήριο / Ασκήσεις Παρασκευή 16:00 18:00 Ώρες Γραφείου Τρίτη 13:00 14:00 Παρασκευή 20:00 21:00 μέσω eclass Ιστοσελίδα Μαθήματος Στην ιστοσελίδα θα βρείτε Σημειώσεις Τις διαλέξεις του μαθήματος Χρήσιμο Υλικό

4 Διαδικαστικά του Μαθήματος (2/2) Τρόπος Εξέτασης Τελική Εξέταση Βάρος: 70% του τελικού βαθμού της θεωρίας Δύο (2) Εργασίες Η κάθε μια έχει βάρος 15% στον τελικό βαθμό της θεωρίας Αυστηρές ημερομηνίες παράδοσης Υπολογισμός του Τελικού Βαθμού του Μαθήματος Θα πρέπει να έχετε τουλάχιστον 5 σε εργαστήριο και θεωρία 60% Χ Βαθμός Θεωρίας + 40% Χ Βαθμός Εργαστηρίου

5 Στόχοι του Μαθήματος Ανάπτυξη αναλυτικής σκέψης, συνθετικής και κριτικής ικανότητας Ανάπτυξη και καλλιέργεια της δημιουργικότητας στο σχεδιασμό λύσεων και στην αναζήτηση εναλλακτικών λύσεων Εισαγωγή στις θεμελιώδεις αλγοριθμικές έννοιες και τεχνικές Παρουσίαση σημαντικών αλγορίθμων και ανάλυσή τους

6 Περιεχόμενο Μαθήματος Εισαγωγή στους Αλγορίθμους Αλγοριθμική Επίλυση Προβλημάτων, Σημαντικά Προβλήματα Ανάλυση Αλγορίθμων Πλαίσιο Ανάλυσης Αλγορίθμων, Συμβολισμοί και Πολυπλοκότητα, Εμπειρική Ανάλυση Αλγορίθμων Μαθηματική Ανάλυση μη Αναδρομικών Αλγορίθμων, Μαθηματική Ανάλυση Αναδρομικών Αλγορίθμων Μεθοδολογίες Δυναμικός Προγραμματισμός, Άπληστες Μέθοδοι Brute Force and Exhaustive Search Decrease and Conquer, Divide and Conquer, Transform and Conquer Travelling Salesman Problem, Knapsack Problem, Assignment Problem Αλγόριθμοι Ταξινόμησης Selection Sort, Bubble Sort, Insertion Sort, Median Sort, Quicksort, Heap Sort, Counting Sort, Bucket Sort Αλγόριθμοι Αναζήτησης Σειριακή Αναζήτηση, Δυαδική Αναζήτηση, Hash-based Αναζήτηση Αλγόριθμοι Γράφων Shortest Paths, Minimum Spanning Tree, Maximum Flow Αλγόριθμοι Δένδρων Depth-first Search, Breadth-first Search, A* Search Χωρο-Χρονική Ανάλυση Ταξινόμηση με Καταμέτρηση, Ταίριασμα Συμβολοσειρών, Hashing, Β- Δένδρα Επαναληπτική Βελτιστοποίηση Γραμμικός Προγραμματισμός, Μέθοδος Simplex, Πρόβλημα Μέγιστης Ροής Περιορισμοί Αλγορίθμων Ρ, ΝΡ και ΝΡ-Complete Προβλήματα, Προσεγγιστικοί Αλγόριθμοι

7 Βιβλιογραφία Cormen, T., Leiserson, C., Rivest, R., Stein, C., Introduction to Algorithms, 3 rd Edition, The MIT Press, 2009 Το βιβλίο έχει εκδοθεί στα Ελληνικά από το ΙΤΕ- Πανεπιστημιακές Εκδόσεις Κρήτης (2012) Μποζάνης, Π., Αλγόριθμοι, Εκδόσεις Τζιόλα, 2006 Levitin, A., Introduction to the Design and Analysis of Algorithms, 3 rd Edition, Pearson Education Inc. publishing, 2012

8 ΕΙΣΑΓΩΓΗ

9 Αλγόριθμοι Τι είναι αλγόριθμοι; Σε τι μας χρησιμεύει η μελέτη τους; Ποιος είναι ο ρόλος τους σε σχέση με άλλες τεχνολογίες που χρησιμοποιούνται στους υπολογιστές;

10 Ορισμός Αλγορίθμου (1/2) Knuth Ένας αλγόριθμος είναι μια πεπερασμένη, συγκεκριμένη, αποτελεσματική διαδικασία, με μια είσοδο και κάποια έξοδο Schneider, M. and J. Gersting (1995), An Invitation to Computer Science, West Publishing Company, New York, NY, p. 9. Ένας αλγόριθμος είναι μια καλά ορισμένη ακολουθία σαφών και υπολογιστικά αποδοτικών λειτουργιών / βημάτων οι οποίες όταν εκτελεστούν παράγουν ένα αποτέλεσμα και τερματίζουν σε πεπερασμένο χρονικό διάστημα Ο όρος αλγόριθμος αναφέρεται σε οποιαδήποτε καλά ορισμένη υπολογιστική διαδικασία που δέχεται κάποια τιμή ή κάποιο σύνολο τιμών ως είσοδο και δίνει κάποια τιμή ή κάποιο σύνολο τιμών ως έξοδο. Ένας αλγόριθμος είναι μια ακολουθία υπολογιστικών βημάτων που μετασχηματίζει την είσοδο στην έξοδο.

11 Ορισμός Αλγορίθμου (2/2)

12 Παράδειγμα Αλγορίθμου (1/2) Ταξινόμηση μιας ακολουθίας αριθμών Είσοδος: η ακολουθία των αριθμών (α 1, α 2, α 3,, α Ν ) Έξοδος: μια αναδιάταξη των αριθμών της εισόδου (α 1, α 2, α 3,, α Ν ) τέτοια ώστε (α 1 <= α 2 <= α 3 <= <= α Ν ) για αύξουσα σειρά ή (α 1 >= α 2 >= α 3 >= >= α Ν ) για φθίνουσα σειρά Για την ακολουθία (12, 3, 24, 35, 6, 32) θα πάρουμε (3, 6, 12, 24, 32, 35)

13 Παράδειγμα Αλγορίθμου (2/2) Αλγόριθμος του Ευκλείδη Εύρεση μέγιστου κοινού διαιρέτη Είσοδος: δύο θετικοί ακέραιοι αριθμοί Έξοδος: ο μεγαλύτερος ακέραιος που διαιρεί ακριβώς τους δύο αριθμούς που παίρνουμε σαν είσοδο Βασίζεται στην εφαρμογή πολλαπλών φορών της ισότητας Μέχρι να έχουμε m mod n = 0 Παράδειγμα

14 Ορθοί Αλγόριθμοι Στιγμιότυπο του προβλήματος δηλώνει την είσοδο η οποία απαιτείται για να υπολογιστεί μια λύση του προβλήματος (εννοείται ότι η είσοδος αυτή θα ικανοποιεί όλους τους περιορισμούς που επιβάλλει η διατύπωση του προβλήματος) Ένας αλγόριθμος θεωρείται σωστός / ορθός να για κάθε στιγμιότυπο εισόδου, ο αλγόριθμος τερματίζει δίνοντας σωστή έξοδο Ένας μη ορθός αλγόριθμος μπορεί να μην τερματίζει καν σε ορισμένα στιγμιότυπα εισόδου, ή μπορεί να τερματίζει δίνοντας αποτέλεσμα διαφορετικό από το ζητούμενο

15 Διάσταση Προβλήματος Παραδείγματα Πλήθος αριθμών n Πλήθος αντικειμένων, n Επηρεάζει την επίδοση ενός αλγορίθμου

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

17 Συγγραφή Αλγορίθμων Πολλαπλές επιλογές Χρήση φυσικής γλώσσας (Ελληνικά Αγγλικά - ) Μειονέκτημα: χρήση πολλών λέξεων Χρήση γλωσσών προγραμματισμού Μειονέκτημα: απαιτείται η γνώση της γλώσσας προγραμματισμού στην οποία έχει γραφτεί ο αλγόριθμος Ψευδοκώδικας Διαγράμματα ροής δεδομένων

18 Βασικές Έννοιες Επίλυσης Προβλημάτων Βήματα επίλυσης: Πλήρης κατανόηση του προβλήματος Επιλογή μεθόδου επίλυσης Σχεδιασμός αλγορίθμου Απόδειξη ορθότητας / εγκυρότητας Ανάλυση του Αλγορίθμου Κωδικοποίηση

19 Υπολογιστικές Μηχανές - Υλικό Μετά την κατανόηση του προβλήματος θα πρέπει να διαπιστώσουμε τις δυνατότητες του Υλικού Οι περισσότεροι αλγόριθμοι έχουν σχεδιαστεί για μηχανές αρχιτεκτονικής von Neumann Βασική θέση στις αρχιτεκτονικές αυτές έχει η λεγόμενη Random Access Machine (RAM) Βασική υπόθεση: οι εντολές εκτελούνται ακολουθιακά Οι αντίστοιχοι αλγόριθμοι ονομάζονται ακολουθιακοί Οι σύγχρονες εξελίξεις στο Υλικό βοηθούν τη δημιουργία παράλληλων αλγορίθμων (οι λειτουργίες εκτελούνται παράλληλα)

20 Επιλογή Μεθόδου Επίλυσης Επακριβής επίλυση του προβλήματος Ακριβής αλγόριθμοι (exact algorithm) Προσεγγιστική επίλυση Προσεγγιστικοί αλγόριθμοι (approximation algorithms) Υπάρχει πλήθος προβλημάτων που δεν λύνονται επακριβώς (π.χ. τετραγωνικές ρίζες, μη γραμμικά συστήματα, ολοκληρώματα) Οι διαθέσιμοι αλγόριθμοι για την επίλυση προβλημάτων μπορεί να είναι πολύ αργοί λόγω υψηλής πολυπλοκότητας

21 Τεχνικές Σχεδίασης Αλγορίθμων Κρίσιμο ερώτημα: Πως σχεδιάζουμε ένα αλγόριθμο για ένα δοσμένο πρόβλημα; Τεχνική σχεδίασης αλγορίθμων μια γενική προσέγγιση για την αλγοριθμική επίλυση προβλημάτων που είναι εφαρμόσιμη σε μια ποικιλία προβλημάτων σε διάφορες περιοχές της Επιστήμης των Υπολογιστών Ένα σύνολο τεχνικών θα γίνουν αντιληπτές στα πλαίσια του μαθήματος Κάποιες τεχνικές μπορεί να είναι ανεφάρμοστες Συνδυασμός τεχνικών

22 Αλγόριθμοι και Δομές Δεδομένων Δίνουμε έμφαση στην επιλογή των απαραίτητων δομών δεδομένων Παράδειγμα: ο αλγόριθμος του Ερατοσθένη για την εξαγωγή των πρώτων αριθμών που δεν ξεπερνούν ένα δοσμένο n > 1 (sieve of Eratosthenes) διαρκεί περισσότερο αν υιοθετηθούν συνδεδεμένες λίστες αντί για απλούς πίνακες Μεγαλύτερη σημασία λόγω των αντικειμενοστραφών γλωσσών προγραμματισμού

23 Sieve of Eratosthenes (1/3) Αρχικοποιεί μια λίστα από υποψήφιους πρώτους αριθμούς με συνεχόμενους αριθμούς από 2 μέχρι n Στο πρώτο iteration εξαλείφει όλα τα πολλαπλάσια του 2, 4, 6, Προχωρά στο επόμενο στοιχείο 3 και εξαλείφει τα πολλαπλάσιά του Δεν χρειάζεται εξέταση του 4 Το επόμενο στοιχείο είναι το 5 Συνεχίζει μέχρι να μην υπάρχει αριθμός που να μπορεί να εξαλειφθεί

24 Sieve of Eratosthenes (2/3)

25 Sieve of Eratosthenes (3/3)

26 Απόδειξη Ορθότητας Όταν οριστεί ένας αλγόριθμος θα πρέπει να αποδείξουμε την ορθότητα του (correctness) Ο αλγόριθμος επιστρέφει αποτέλεσμα για κάθε είσοδο σε πεπερασμένο χρονικό διάστημα Μπορεί να είναι πολύπλοκη διαδικασία Τυπική προσέγγιση: μαθηματική επαγωγή Οι επαναλήψεις ενός αλγορίθμου προσφέρουν μια φυσική αλληλουχία βημάτων για την υιοθέτηση της επαγωγής Στους προσεγγιστικούς αλγορίθμους αποδεικνύουμε ότι το σφάλμα είναι κάτω από ένα συγκεκριμένο όριο

27 Ανάλυση Αλγορίθμων Αποδοτικότητα (efficiency) Μπορεί να οριστεί με μαθηματικό τρόπο Time efficiency Πόσο γρήγορα τρέχει ένας αλγόριθμος Space efficiency Πόση επιπλέον μνήμη χρειάζεται Απλότητα (simplicity) Είναι υποκειμενική (απλοί αλγόριθμοι μπορούν να γίνουν αντιληπτοί πιο εύκολα) Γενικότητα (Generality) Γενικότητα του προβλήματος που επιλύει ο αλγόριθμος Το σύνολο των δεδομένων που δέχεται

28 Κωδικοποίηση Μεγάλη προσοχή στο πέρασμα από τον αλγόριθμο στο πρόγραμμα Κίνδυνος λανθασμένης κωδικοποίησης Κίνδυνος μη αποδοτικής κωδικοποίησης Επαλήθευση (verification) Εγκυρότητα (validity) Πολλαπλά και εξαντλητικά τεστ Τεχνικές testing και debugging

29 Σημαντικά Προβλήματα Ταξινόμηση Αναζήτηση Επεξεργασία Αλφαριθμητικών Προβλήματα Γράφων Συνδυαστικά Προβλήματα Γεωμετρικά Προβλήματα Αριθμητικά Προβλήματα

30 Αλγόριθμοι Ταξινόμησης Αναδιάταξη αντικειμένων μιας δοσμένης λίστας Τα αντικείμενα πρέπει να επιδέχονται μιας διάταξης Για εγγραφές πρέπει να επιλέξουμε ένα πεδίο ως προς το οποίο θα γίνεται η ταξινόμηση: κλειδί (key) Stability Ο αλγόριθμος διατηρεί τη σχετική σειρά οποιονδήποτε δύο ίσων αντικειμένων στην είσοδο του In place Ο αλγόριθμος δεν απαιτεί επιπλέον μνήμη

31 Αλγόριθμοι Αναζήτησης Εύρεση μιας τιμής (search key) σε ένα σύνολο αντικειμένων Σειριακή, Δυαδική αναζήτηση, αλγόριθμοι αναπαράστασης των δεδομένων σε διαφορετική μορφή εύκολα αναζητήσιμη Δεν υπάρχει το stability πρόβλημα Σε δυναμικά περιβάλλοντα με συνεχείς αλλαγές των δεδομένων οι αλγόριθμοι αναζήτησης πρέπει να συνδυάζονται με ενέργειες προσθαφαίρεσης δεδομένων Προσεκτική επιλογή δομών δεδομένων

32 Επεξεργασία Αλφαριθμητικών Ένα αλφαριθμητικό (string) είναι μια ακολουθία από χαρακτήρες ενός αλφαβήτου Ακολουθίες χαρακτήρων, δυαδικών ψηφίων, ακολουθίες γονιδίων, κ.λπ. String matching Παράδειγμα: Αναζήτηση μιας λέξης μέσα σε ένα κείμενο

33 Αλγόριθμοι Γράφων Ένας γράφος (graph) είναι ένα σύνολο κόμβων (vertices) από τους οποίους κάποιοι είναι συνδεδεμένοι μεταξύ τους μέσω ακμών (edges) Κατευθυνόμενοι Μη κατευθυνόμενοι Μοντελοποιούν πλήθος προβλημάτων Βασικοί αλγόριθμοι Διάσχιση γράφων Συντομότερο μονοπάτι Τοπολογική ταξινόμηση Κάποια προβλήματα είναι υπολογιστικά πολύπλοκα Travelling salesman problem (shortest tour through n cities that visits every city exactly once) Graph coloring problem (assign the smallest number of colors to the vertices of a graph so that no two adjacent vertices are the same color)

34 Συνδυαστικά Γεωμετρικά Προβλήματα Συνδυαστικά προβλήματα Αναζητούν ένα συνδυαστικό αντικείμενο (π.χ., αναδιάταξη, συνδυασμό) το οποίο ικανοποιεί ένα σύνολο περιορισμών Πολύ δύσκολα προβλήματα Επηρεάζονται από το μέγεθος του προβλήματος Απαιτούν υψηλό χρόνο εκτέλεσης Γεωμετρικά προβλήματα Σχετίζονται με σχήματα (γραμμές, σημεία, πολύγωνα) The closest-pair problem is self-explanatory: given n points in the plane, find the closest pair among them The convex-hull problem asks to find the smallest convex polygon that would include all the points of a given set

35 Αριθμητικά Προβλήματα Επίλυση εξισώσεων, υπολογισμός ολοκληρωμάτων, επίλυση συστημάτων εξισώσεων, κ.λπ. Πολλά προβλήματα αυτής της κατηγορίας μπορούν να επιλυθούν μόνο προσεγγιστικά Απαιτούν χειρισμό πραγματικών αριθμών οι οποίοι τυχαίνουν προσεγγιστικής επεξεργασίας από τους υπολογιστές

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

37 Μέγεθος Εισόδου Λογική παρατήρηση: η συντριπτική πλειοψηφία αλγορίθμων τρέχει περισσότερο για μεγαλύτερο μέγεθος εισόδου Μελετούμε την απόδοση των αλγορίθμων ως συνάρτηση μιας παραμέτρου n που υποδηλώνει το μέγεθος εισόδου Παραδείγματα Μέγεθος λίστας στοιχείων για: Ταξινόμηση Αναζήτηση Εύρεση μικρότερου μεγαλύτερου

38 Μετρικές Μεγέθους Εισόδου Χρήση μιας τυπικής χρονικής μονάδας (π.χ., second, millisecond) Εξάρτηση από το υλικό Εξάρτηση από την ποιότητα του αλγορίθμου / προγράμματος Καλύτερη λύση: Μέτρηση του πλήθους των εκτελέσεων των λειτουργιών των αλγορίθμων Αναγνώριση των βασικών λειτουργιών (basic operations) λειτουργίες που συνεισφέρουν περισσότερο στο χρόνο εκτέλεσης Μέθοδος: αναγνώριση της πιο time consuming λειτουργίας στο πιο εσωτερικό βρόχο (loop) Παράδειγμα Ταξινόμηση - Βασική λειτουργία: Σύγκριση

39 Παράδειγμα Έστω c op είναι ο χρόνος εκτέλεσης μιας βασικής λειτουργίας Έστω C(n) είναι το πλήθος των βασικών λειτουργιών που θα εκτελέσει ο αλγόριθμος Η εκτίμηση του χρόνου εκτέλεσης είναι T(n) ~ c op C(n) Προσοχή: θα πρέπει να λάβουμε υπόψιν μας όλες τις λειτουργίες ενός αλγορίθμου Υπόθεση: Αν διπλασιάσουμε το μέγεθος n της εισόδου πόσο περισσότερο θα αυξηθεί ο χρόνος εκτέλεσης?

40 Ρυθμός Αύξησης Ρυθμός αύξησης (rate of growth, order of growth) υποδηλώνει το ρυθμό αύξησης του χρόνου εκτέλεσης Στον ακόλουθο πίνακα απεικονίζονται παραδείγματα ρυθμού αύξησης

41 Περιπτώσεις Ανάλυσης Χειρότερη περίπτωση (worst case efficiency) Η αποδοτικότητα για την είσοδο της χειρότερης περίπτωσης που είναι μια είσοδος μεγέθους n για την οποία ο αλγόριθμος απαιτεί τον περισσότερο χρόνο εκτέλεσης για όλες τις πιθανές εισόδους μεγέθους n Μας δίνει ένα άνω όριο εκτέλεσης Αναγνώριση της εισόδου που απαιτεί τον περισσότερο χρόνο εκτέλεσης Μέση περίπτωση (average case efficiency) Υιοθετούμε υποθέσεις για το μέγεθος εισόδου n Πιαθανοθεωρητική ανάλυση Καλύτερη περίπτωση (best case efficiency) Η αποδοτικότητα για την είσοδο της καλύτερης περίπτωσης που είναι μια είσοδος μεγέθους n για την οποία ο αλγόριθμος απαιτεί τον λιγότερο χρόνο εκτέλεσης για όλες τις πιθανές εισόδους μεγέθους n

42 Σειριακή Αναζήτηση (1/4) Αναζητά το κλειδί Κ σε μια λίστα n στοιχείων Ελέγχει σειριακά την ύπαρξη του στοιχείου σε κάθε θέση της λίστας Επιστρέφει τη θέση στην οποία έχει βρεθεί το κλειδί αλλιώς επιστρέφει το -1 Ο χρόνος εκτέλεσης μπορεί να είναι διαφορετικός ακόμα και για το ίδιο n

43 Σειριακή Αναζήτηση (2/4) Χειρότερη περίπτωση: C worst (n) = n Καλύτερη περίπτωση: C best (n) = 1

44 Σειριακή Αναζήτηση (3/4) Μέση περίπτωση: Έστω p η πιθανότητα μιας επιτυχούς αναζήτησης (0 <= p <= 1) Η πιθανότητα επιτυχούς αναζήτησης στη θέση i είναι ίδια για όλα τα i ίση με p/n και το πλήθος των αναζητήσεων είναι i Σε περίπτωση ανεπιτυχούς αναζήτησης οι συγκρίσεις θα είναι n με πιθανότητα 1 p Άρα

45 Σειριακή Αναζήτηση (4/4) Αν p = 1: Συγκρίσεις: n(n+1)/2 Αν p = 0: Συγκρίσεις: n

46 Ασυμπτωτικός Συμβολισμός (1/2) Συμβολισμός ασυμπτωτικού χρόνου εκτέλεσης Χρήση: σύγκριση ρυθμού αύξησης Τρεις συμβολισμοί: Big oh (O) Big omega (Ω) Big theta (Θ)

47 Ασυμπτωτικός Συμβολισμός (2/2) Ο(g(n)) είναι το σύνολο όλων των συναρτήσεων με μικρότερο ή ίσο ρυθμό αύξησης του g(n) Παραδείγματα n ϵ O(n 2 ) 100n + 5 ϵ O(n 2 ) ½ n(n-1) ϵ O(n 2 )

48 O-notation Μια συνάρτηση T(n) λέγεται ότι είναι O(g(n)) T(n) ϵ O(g(n)) αν η Τ(n) έχει άνω φράγμα την g(n) επί ένα σταθερό αριθμό c. T(n) <= c g(n) για κάθε n >= n 0 Παραδείγματα:

49 Ω-notation Μια συνάρτηση T(n) λέγεται ότι είναι Ω(g(n)) T(n) ϵ Ω(g(n)) αν η Τ(n) έχει κάτω φράγμα την g(n) επί ένα σταθερό αριθμό c. T(n) >= c g(n) για κάθε n >= n 0 Παραδείγματα:

50 Θ-notation (1/2) Μια συνάρτηση T(n) λέγεται ότι είναι Θ(g(n)) T(n) ϵ Θ(g(n)) αν η Τ(n) έχει κάτω κι άνω φράγμα πολλαπλάσια της g(n) για σταθερές c 1 και c 2. c 2 g(n) <= T(n) <= c 1 g(n) για κάθε n >= n 0

51 Θ-notation (2/2) Παραδείγματα:

52 ο-notation Μια συνάρτηση T(n) λέγεται ότι είναι ο(g(n)) T(n) ϵ ο(g(n)) αν η Τ(n) έχει άνω φράγμα την g(n) επί ένα σταθερό αριθμό c. T(n) < c g(n) για κάθε n >= n 0 Διαφορά με τον big oh notation Στο O(g(n)) η ανίσωση ισχύει για κάποιες σταθερές ενώ στο ο(g(n)) η ανίσωση ισχύει για όλες τις σταθερές Παράδειγμα 2n = o(n 2 ) αλλά 2n 2 o(n 2 )

53 ω-notation Μια συνάρτηση T(n) λέγεται ότι είναι ο(g(n)) T(n) ϵ ο(g(n)) αν η Τ(n) έχει κάτω φράγμα την g(n) επί ένα σταθερό αριθμό c. T(n) > c g(n) για κάθε n >= n 0 Διαφορά με τον big omega notation Στο Ω(g(n)) η ανίσωση ισχύει για κάποιες σταθερές ενώ στο ω(g(n)) η ανίσωση ισχύει για όλες τις σταθερές Παράδειγμα n 2 /2 = ω(n) αλλά 2n 2 ω(n 2 )

54 Θεωρήματα Για οποιεσδήποτε δύο συναρτήσεις f(n) και g(n), έχουμε f(n) = Θ(n) όταν και μόνο όταν f(n) = O(g(n)) και f(n) = Ω(g(n)) Η απόδειξη εξάγεται εύκολα από τους ορισμούς Χρήσιμο θεώρημα για ανάλυση αλγορίθμων με συνεχόμενα τμήματα ** Προσπαθήστε να αποδείξετε το δεύτερο θεώρημα

55 Χαρακτηριστικές Πολυπλοκότητες

56 Ασυμπτωτική Συμπεριφορά

57 Συναρτήσεις Σύγκρισης (1/3) Μεταβατικότητα (transitivity)

58 Συναρτήσεις Σύγκρισης (2/3) Ανακλαστικότητα (reflexivity)

59 Συναρτήσεις Σύγκρισης (3/3) Συμμετρία (symmetry) Ανάστροφη συμμετρία (transpose symmetry)

60 Πράξεις

61 Ασκήσεις Για τις ακόλουθες συναρτήσεις να βρείτε τον επικρατών όρο (dominant term) καθώς και τον big oh notation συμβολισμό.

62 Λύσεις

63 Ασκήσεις Υπολογίστε την πολυπλοκότητα του επόμενου αλγορίθμου List<Integer> getbiggerslist( int[] intarray ) { List<Integer> biggers = new LinkedList<Integer>(); int sum = 0; for ( int item : intarray ) { if ( item > sum ) biggers.add( item ); sum += item; } return biggers; }

64 Λύσεις Ο(n) διότι εξαρτάται μόνο από την επαναληπτική διαδικασία

65 Ασκήσεις Υπολογίστε την πολυπλοκότητα των ακόλουθων αλγορίθμων

66 Λύσεις (a) Ο(sqrt(n)) (b) Ο(sqrt(n)) (c) O(n 4 ) (d) O(n 5 )

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΜΥ 325: Επαναληπτικές Μέθοδοι. Διδάσκων: Χρίστος Παναγιώτου

ΗΜΥ 325: Επαναληπτικές Μέθοδοι. Διδάσκων: Χρίστος Παναγιώτου ΗΜΥ 325: Επαναληπτικές Μέθοδοι Διδάσκων: Χρίστος Παναγιώτου ΗΜΥ 325: Επαναληπτικές Μέθοδοι. A. Levitin, Introduction to the Design and Analysis of Algorithms, 2 nd Ed. Περίληψη µαθήµατος Επιπρόσθετες Πληροφορίες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη 0. Εισαγωγή Αντικείμενο μαθήματος: Η θεωρητική μελέτη ανάλυσης των αλγορίθμων. Στόχος: επιδόσεις των επαναληπτικών και αναδρομικών αλγορίθμων.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ορισµός. Εστω συναρτήσεις: 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

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 22 Counting sort, bucket sort και radix sort 1 / 16 Ιδιότητες αλγορίθμων ταξινόμησης ευστάθεια (stable

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

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

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

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

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

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

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

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

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

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

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

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

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

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

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

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ

ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ ΑΝΑΚΟΙΝΩΣΗ ΚΑΤΑΤΑΚΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ ΑΚ. ΈΤΟΥΣ 2017-18 Οι υποψήφιοι για κατάταξη μέσω εξετάσεων στο Τμήμα Πληροφορικής και Τηλεπικοινωνιών του Πανεπιστημίου Πελοποννήσου παρακαλούνται να καταθέσουν στη γραμματεία

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

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

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

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

Πρόλογος. Πρόλογος 13. Πώς χρησιμοποείται αυτό το βιβλίο 17

Πρόλογος. Πρόλογος 13. Πώς χρησιμοποείται αυτό το βιβλίο 17 Πρόλογος Πρόλογος 13 Πώς χρησιμοποείται αυτό το βιβλίο 17 1 Η λογική σκέψη 19 1.1 Τυπική λογική 20 1.1.1 Διερευνητικά προβλήματα 21 1.1.2 Σύνδεσμοι και προτάσεις 21 1.1.3 Οι πίνακες αλήθειας 23 1.1.4 Λογικές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) 3 ο Εξάμηνο Σπουδών Εαρινό Εξάμηνο 2010/11 Διδάσκων: Χαρμανδάρης Ευάγγελος, Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης email: vagelis@tem.uoc.gr, Ιστοσελίδα Μαθήματος:

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

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

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

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

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

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

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

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

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

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

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Κ Ο Τ Ι Ν Η Ι Σ Α Β Ε Λ Λ Α Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Π Ε 8 6 Ν Ε Ι Ρ Ο Σ Α Ν Τ Ω ΝΙ Ο Σ Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο

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

Πρόβλημα 37 / σελίδα 207

Πρόβλημα 37 / σελίδα 207 Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση

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

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

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

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

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

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

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

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

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

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Jon Kleinberg και Éva Tardos, Σχεδιασμός αλγορίθμων, Εκδόσεις Κλειδάριθμος,

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

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

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

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

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

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

ιακριτές Μέθοδοι για την Επιστήμη των Υπολογιστών

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

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

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

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

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

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

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

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

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

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

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

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

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2017-2018. Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

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

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

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

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

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

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

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

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

Ταξινόμηση κάδου και ταξινόμηση Ρίζας 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 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

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

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΚΟΥΛΙΝΑΣ ΓΕΩΡΓΙΟΣ Δρ. Μηχανικός Παραγωγής & Διοίκησης ΔΠΘ ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ o ΔΙΑΛΕΞΕΙΣ ΜΑΘΗΜΑΤΟΣ ΔΕΥΤΕΡΑ 16.00-19.00 (Εργ. Υπ. Μαθ. Τμ. ΜΠΔ) oτρόπος

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)

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

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

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

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

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

Δομημένος Προγραμματισμός ΙΙΙ - Java

Δομημένος Προγραμματισμός ΙΙΙ - Java Δομημένος Προγραμματισμός ΙΙΙ - Παύλος Εφραιμίδης 1 Το μάθημα Αντικείμενο-Περιεχόμενα μαθήματος Τρόπος Διδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2 Περιεχόμενα Μαθήματος Εισαγωγή στους Αλγόριθμους

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο Σχεδίαση Αλγορίθμων Άπληστοι Αλγόριθμοι http://delab.csd.auth.gr/~gounaris/courses/ad 1 Άπληστοι αλγόριθμοι Προβλήματα βελτιστοποίησης ηςλύνονται με μια σειρά επιλογών που είναι: εφικτές τοπικά βέλτιστες

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

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

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

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

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 1

Αλγόριθμοι Ταξινόμησης Μέρος 1 Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις

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

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Αλγόριθμοι Ωμή Βία http://delab.csd.auth.gr/courses/algorithms/ auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Ωμή Βία Είναι μία άμεση προσέγγιση που βασίζεται στην εκφώνηση του προβλήματος και

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