Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ Δ.Π.Θ. – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Μηχανικών Παραγωγής & Διοίκησης ΕΞΑΜΗΝΟ Δ’ Φεβρουάριος.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ Δ.Π.Θ. – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Μηχανικών Παραγωγής & Διοίκησης ΕΞΑΜΗΝΟ Δ’ Φεβρουάριος."— Μεταγράφημα παρουσίασης:

1 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ Δ.Π.Θ. – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Μηχανικών Παραγωγής & Διοίκησης ΕΞΑΜΗΝΟ Δ’ Φεβρουάριος - Ιούνιος 2013

2 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 2 Από τον οδηγό σπουδών του Τμήματος … χωρίς να παραγνωρίζονται οι πρόοδοι που έχουν συντελεστεί σε επιμέρους τομείς, η πλέον ολοκληρωτική αλλαγή οφείλεται στη διείσδυση των ΗΥ σε όλο το φάσμα της παραγωγικής διαδικασίας. Η εφαρμογή νέων τεχνολογιών στη σχεδίαση προϊόντων, η χρήση προχωρημένων βιομηχανικών αυτοματισμών, η υιοθέτηση μοντέρνων μεθόδων ποιοτικού ελέγχου, η διαχείριση της ροής των τεχνικών και οικονομικών πληροφοριών στην παραγωγή, στηρίζονται άμεσα στη χρήση ΗΥ και απαιτούν αυξημένη τεχνογνωσία και κατάλληλα εκπαιδευμένο προσωπικό…..

3 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 3 Όσο ένας κλάδος της επιστήμης προσφέρει αφθονία προβλημάτων, είναι ζωντανός. Η απουσία προβλημάτων προμηνύει την εξαφάνιση ή την παύση της ανεξάρτητης ανάπτυξης. David Hilbert Η εκπαίδευση είναι αυτό που επιβιώνει όταν πια ξεχάσουμε αυτά που έχουμε διδαχθεί. Κάθε πρόβλημα που έλυσα έγινε ένας κανόνας ο οποίος χρησίμευσε στη συνέχεια για να λύσω άλλα προβλήματα. R.Descartes

4 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 4 Η τέχνη του μηχανικού χαρακτηρίζεται από το γεγονός ότι οι μηχανικοί δεν ικανοποιούνται με την επίτευξη μιας οποιασδήποτε λύσης. Οι μηχανικοί αναζητούν την καλύτερη λύση με τη χρήση καθορισμένων όρων, υπό γνωστούς περιορισμούς, και κάνοντας τους συμβιβασμούς που επιβάλλονται από το γεγονός ότι δουλεύουν στον πραγματικό κόσμο.

5 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 5 It is required of a professional in any field to know the limits of our present capabilities in that field. This is also the case in the IT profession. If we know what can and cannot be accomplished with computing machinery, we will not be as likely to waste scare resources of time, money and manpower on quixotic ventures. Among the most important constraints on our abilities are those imposed by problems related to tractability, commensurability and computability.

6 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 6 In computer science, a programming task is considered to be tractable if it can be accomplished in a reasonable period of time or with a reasonable supply of physical resources (usually space). Otherwise it is intractable. The study of tractability has a theoretical and a practical aspect, yielding theoretical and practical definitions of terms. The field of computer science known as Analysis of Algorithms has developed the Big-O notation for categorizing the time and space requirements of various programming tasks/problems.

7 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 7 “I believe that in about fifty years' time it will be possible, to programme computers, with a storage capacity of about 10 9, to make them play the imitation game so well that an average interrogator will not have more than 70 per cent chance of making the right identification after five minutes of questioning. The original question, "Can machines think?" I believe to be too meaningless to deserve discussion. Nevertheless I believe that at the end of the century the use of words and general educated opinion will have altered so much that one will be able to speak of machines thinking without expecting to be contradicted.” Alan M.Turing, 1950

8 Τι μας Ενδιαφέρει σε ένα Πρόγραμμα Είναι σωστό; Είναι εύκολο να κατανοήσουμε τον κώδικα; Είναι τεκμηριωμένο; Είναι εύκολο να γίνουν αλλαγές; Πόση μνήμη και πόσο χρόνο απαιτεί; Πόσο γενικός είναι ο κώδικας; –Λύνει προβλήματα για μεγάλο εύρος εισόδων χωρίς τροποποιήσεις; Πόσο μεταφέρσιμος είναι ο κώδικας; –Μπορεί να μεταγλωττιστεί σε άλλους υπολογιστές χωρίς αλλαγές; ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 8

9 9 Διακριτά Μαθηματικά (Discrete Mathematics) Ορισμός : –Ο κλάδος των μαθηματικών που είναι αφιερωμένος στη μελέτη διακριτών αντικειμένων καθώς και στις διακριτές δομές που χρησιμοποιούνται για την αναπαράστασή τους. Τα μαθηματικά που μελετούν φαινόμενα που δεν είναι συνεχή, αλλά συμβαίνουν σε μικρές, διακριτές περιοχές. Μερικές περιοχές περιλαμβάνουν τη θεωρία γραφημάτων (δίκτυα), τις τεχνικές απαρίθμησης, τη χρωματική θεωρία, τη θεωρία παιγνίων κλπ. Είναι τα μαθηματικά των υπολογιστών και διαχειρίζονται διακριτές περιοχές των πληροφοριών.

10 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 10 Διακριτά Μαθηματικά Ύπαρξη λύσεων Πλήθος λύσεων Αλγόριθμοι για τη δημιουργία λύσεων Βελτιστοποίηση

11 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 11 “Contemporary uses of mathematics demand that students learn to deal with uncertainty, to make informed decisions based on evidence and expectations, to exercise critical judgment about conclusions drawn from data, and to apply mathematical models to real-world phenomena. The technological world in which we live also depends upon information and communication of information and upon applications of systems with separate (discrete) entities. Topics of discrete mathematics such as counting and permutation problems, matrix operations, vertex-edge networks, and relationships among finite sets have significant real-world applications that students will encounter in diverse fields of work and study.”

12 Topics in Discrete Mathematics Logic and Proofs (intelligence, Artificial database, circuit, algorithms) Number Theory (Cryptography, coding theory, data structures) Counting (Probability, algorithms, data structures) Graph Theory (Networks, circuit design, data structures) ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 12

13 Problems solved using Discrete Math How many secure passwords? How can I encrypt a message? Shortest paths between two cities using public transportation? How many steps required to sort 10,000 numbers? Is this algorithm correct? How to design a circuit that multiply two integers? ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 13

14 Importance of Discrete Mathematics Information is stored and manipulated by computers in a discrete fashion Applications in many different areas Discrete mathematics is a gateway to more advanced courses Develops mathematical reasoning skills Emphasizes the new role of mathematics ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 14

15 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 15 Γενική επισκόπηση της Λογικής Η λογική είναι η βάση όλων των μαθηματικών συλλογισμών. Είναι θεμελιώδης στην επιστήμη των υπολογιστών. Η λογική χρησιμοποιείται για να εκφράσει την ακριβή σημασία μιας μαθηματικής πρότασης ή ενός προγράμματος σε υπολογιστή Αποτελεί ωστόσο τη βάση της φιλοσοφίας και της νομικής επιστήμης

16 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 16 ΠΡΟΒΛΗΜΑΤΑ –Δεδομένα και αποτελέσματα μέσω επίλυσης ΑΛΓΟΡΙΘΜΟΙ –Βήματα για την επίλυση προβλημάτων ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ –Οργάνωση δεδομένων –Χρήση συναρτήσεων (functions) Προγράμματα = Αλγόριθμοι + Δομές Δεδομένων

17 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 17 Επιλέγοντας τον κατάλληλο αλγόριθμο Όταν ένα πρόγραμμα, που κωδικοποιεί έναν αλγόριθμο, πρόκειται να χρησιμοποιηθεί μόνον μία φορά και με μικρό πλήθος δεδομένων προφανώς επιλέγεται ο αλγόριθμος που κωδικοποιείται ευκολότερα. Αν όμως το πρόγραμμα θα χρησιμοποιηθεί πολλές φορές και στη διάρκεια χρήσης του απαιτεί συντήρηση και υποστήριξη τότε άλλοι παράγοντες έχουν σημασία όπως η μεταφερσιμότητα, η ευκολία στην κατανόηση, η επεκτασιμότητα, η ευκολία χρήσης, η δυνατότητα επαναχρησιμοποίησης και η αποτελεσματικότητα (efficiency).

18 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 18 Η αποτελεσματικότητα ενός αλγορίθμου εξαρτάται από το βαθμό χρήσης των πόρων, όπως : –ο χρόνος που απαιτείται για την εκτέλεσή του –το ποσό μνήμης που χρησιμοποιεί –το φόρτο που προκαλεί σε τυχόν δίκτυα υπολογιστών –τη χωρητικότητα των εξωτερικών δίσκων που χρησιμοποιεί Ο σημαντικότερος παράγοντας είναι ο χρόνος Ένας μη αποτελεσματικός αλγόριθμος δεν μπορεί να καταστεί αποτελεσματικός αν βελτιωθεί, έστω και θεαματικά, η ταχύτητα του υπολογιστή που εκτελεί το αντίστοιχο πρόγραμμα.

19 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 19 Υπάρχουν δύο τρόποι σύγκρισης των χρόνων εκτέλεσης προγραμμάτων που υλοποιούν διαφορετικούς αλγορίθμους επίλυσης ενός προβλήματος : –Benchmarking. Μέτρηση των χρόνων εκτέλεσης των προγραμμάτων με χρησιμοποίηση προκαθορισμένων δεδομένων συγκεκριμένου μεγέθους. Προβλήματα : περιορισμένα και πιθανόν μη αντιπροσωπευτικά σύνολα δεδομένων, χρόνοι που εξαρτώνται από το hardware, τη γλώσσα προγραμματισμού, δυσκολία στη μέτρηση των χρόνων κλπ. –Ανάλυση. Συλλογισμοί που θα διαμορφώσουν μαθηματικούς τύπους που θα προβλέπουν τους χρόνους εκτέλεσης.

20 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 20 Αλγόριθμοι + Δομές Δεδομένων Στόχοι των δομών δεδομένων και της σχεδίασης αλγορίθμων Στόχοι της υλοποίησης ορθότητα αποτελεσματικότητα ανθεκτικότητα προσαρμοστικότητα επαναχρησιμοποίησ η

21 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 21 Αλγόριθμοι & Δομές Δεδομένων Ένας καλός αλγόριθμος χρησιμοποιεί τις κατάλληλες «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» έτσι ώστε να διαχειριστεί αποτελεσματικά τα δεδομένα εισόδου του προβλήματος. Τι είναι ΔΟΜΗ ΔΕΔΟΜΕΝΩΝ; –ένας συστηματικός τρόπος οργάνωσης και διαχείρισης δεδομένων. Περιλαμβάνει την οργάνωση των δεδομένων και συναρτήσεις διαχείρισης των δεδομένων –Ένας τύπος δεδομένων είναι ένα σύνολο τιμών και μια συλλογή λειτουργιών επί των τιμών αυτών.

22 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 22 Δομές Δεδομένων (Data Structures) Με τον όρο ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ εννοούμε διάφορες διμελείς σχέσεις που ορίζονται πάνω σε σύνολα δεδομένων είτε αυτά είναι αρχικά είτε παράγονται κατά την εκτέλεση του αλγορίθμου. Η σημασία των δομών δεδομένων έγκειται στο γεγονός ότι η αποτελεσματικότητα με την οποία εκτελούνται οι διάφορες πράξεις σε σύνολα δεδομένων εξαρτάται ουσιωδώς από τον τρόπο με τον οποίο τα στοιχεία των συνόλων αυτών είναι οργανωμένα στη μνήμη του ΗΥ. Η επιλογή της κατάλληλης δομής δεδομένων και του κατάλληλου αλγόριθμου δημιουργούν τις συνθήκες ώστε ένα πρόγραμμα να εκτελείται σε μερικά δευτερόλεπτα αντί σε μερικές ημέρες.

23 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 23 Η επιλογή της κατάλληλης δομής γίνεται ως εξής: –Αναλύουμε το πρόβλημα για να διαπιστώσουμε τους περιορισμούς των πόρων που πρέπει να ικανοποιεί μια λύση. –Αποφασίζουμε τις βασικές λειτουργίες που πρέπει να υποστηρίζονται. Προσδιορίζουμε ποσοτικά τους περιορισμούς πόρων για κάθε λειτουργία. –Επιλέγουμε τη δομή δεδομένων που αρμόζει καλύτερα στις προηγούμενες απαιτήσεις.

24 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 24 Η ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν καλύτερα τα δεδομένα του προβλήματος  περισσότερο αποτελεσματικά προγράμματα Περισσότερο ισχυροί ΗΥ  πιο σύνθετες εφαρμογές Περισσότερο σύνθετες εφαρμογές  περισσότεροι υπολογισμοί

25 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 25 Ερωτήσεις που πρέπει να απαντηθούν Τα δεδομένα θα εισαχθούν όλα στην αρχή ή η εισαγωγή τους θα διασκορπιστεί και σε άλλες ενδιάμεσες λειτουργίες; Τα δεδομένα μπορούν να διαγραφούν; Η προσπέλαση των δεδομένων θα γίνει με καλώς ορισμένο τρόπο ή θα επιτρέπεται η τυχαία πρόσβαση σε αυτά;

26 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 26 Φιλοσοφία των δομών δεδομένων Κάθε δομή δεδομένων έχει κόστος και οφέλη. Μια δομή δεδομένων απαιτεί : –Χώρο για κάθε στοιχείο που θα αποθηκευτεί –Χρόνο για να πραγματοποιηθεί κάθε βασική λειτουργία –Προγραμματιστική προσπάθεια Κάθε πρόβλημα έχει περιορισμούς για το διαθέσιμο χώρο και χρόνο Μόνο ύστερα από προσεκτική ανάλυση των χαρακτηριστικών του προβλήματος μπορούμε να επιλέξουμε την καταλληλότερη δομή δεδομένων για κάθε διεργασία Παράδειγμα : τραπεζικές εργασίες –Άνοιγμα λογαριασμού : μερικά λεπτά –Κινήσεις : μερικά δευτερόλεπτα –Κλείσιμο λογαριασμού : overnight

27 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 27 Αποτίμηση αλγορίθμων Οι αλγόριθμοι και τα προγράμματα μπορούν να αποτιμηθούν ως προς την : –Απλότητα –καθαρότητα –Δυνατότητα κλιμάκωσης –ανθεκτικότητα –Δυνατότητα επαναχρησιμοποίησης Πολλά από τα ανωτέρω κριτήρια είναι υποκειμενικά. Ένα σπουδαίο είναι η αποτελεσματικότητα ή αποδοτικότητα (efficiency): –Ποσό χρόνου που απαιτεί η εκτέλεση του αλγορίθμου –Ποσό κεντρικής μνήμης που απαιτείται –Ποσό του εύρους ζώνης του δικτύου που απαιτείται –Ποσό εξωτερικής μνήμης που απαιτείται

28 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 28 Πως μετράται η απόδοση των αλγορίθμων Ποια χαρακτηριστικά απαιτείται να χρησιμοποιηθούν για να εκτιμηθούν οι αλγόριθμοι; –Το μήκος του προγράμματος (πλήθος γραμμών κώδικα) –Ευκολία στον προγραμματισμό (σφάλματα, συντήρηση) –Μνήμη που απαιτείται –Χρόνος εκτέλεσης (Running time) Ο χρόνος εκτέλεσης είναι το κυρίαρχο πρότυπο (dominant standard) –Μπορεί να ποσοτικοποιηθεί και είναι εύκολο να συγκριθεί –Είναι συχνά το κρίσιμο σημείο

29 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 29 Αποτελεσματικότητα αλγορίθμων (algorithms efficiency) Κεντρικό σημείο της σχεδίασης προγραμμάτων Η/Υ είναι δύο συχνά αντικρουόμενοι στόχοι : –Η σχεδίαση ενός αλγορίθμου που θα είναι εύκολος στην κατανόηση, την κωδικοποίηση και την εκσφαλμάτωση (debugging) (αφορά την Τεχνολογία Λογισμικού) –Η σχεδίαση ενός αλγορίθμου που θα κάνει αποτελεσματική χρήση των πόρων του Η/Υ (αφορά τις Δομές Δεδομένων και την Ανάλυση Αλγορίθμων)

30 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 30 Παραδείγματα Έστω ο έλεγχος αν ένα στοιχείο είναι μέλος ενός συνόλου δεδομένων με n στοιχεία. Ο χρόνος που απαιτείται είναι : –Ανάλογος του n σε γραμμικές λίστες –Ανάλογος του log 2 n σε ισοζυγισμένα δυαδικά δένδρα αναζήτησης –Αν ο χρόνος που απαιτείται σε γραμμικές λίστες είναι 1 ώρα, για το ίδιο πλήθος δεδομένων σε ΔΔΑ είναι 25,8μsec!!. –Σε πλήθος n=10 6 απαιτούνται 10 6 ή log 2 10 6 = log 2 2 20 =20 συγκρίσεις

31 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 31 Υπολογισμός της ορίζουσας ενός πίνακα n X n –Με την μέθοδο της ανάπτυξης σε ελάσσονες ορίζουσες απαιτούνται πράξεις της τάξης n! –Με τον αλγόριθμο απαλοιφής Gauss-Jordan απαιτούνται πράξεις της τάξης n 3 Tαξινόμηση ενός πίνακα n στοιχείων –Πλήθος συγκρίσεων n 2 –Πλήθος συγκρίσεων nlog 2 n –Για n=10 6 και για χρόνο μιας σύγκρισης 10 -6 sec τότε οι χρόνοι αντίστοιχα είναι 11,5 ημέρες και 20 sec

32 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 32 Αλγόριθμοι Αλγόριθμος είναι ένα διατεταγμένο και πεπερασμένο σύνολο καθορισμένων αριθμητικών ή λογικών πράξεων ή εντολών, που όταν εφαρμόζονται σε ένα σύνολο δεδομένων εισόδου ενός συγκεκριμένου και καλώς προσδιορισμένου προβλήματος παράγουν μια λύση σε πεπερασμένο χρόνο. Κάθε λύση προσδιορίζεται από ένα σύνολο αποτελεσμάτων που λέγονται δεδομένα εξόδου.

33 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 33 Παραδείγματα διάσημων αλγορίθμων Newton's root finding Fast Fourier Transform Compression (Huffman, Lempel-Ziv, GIF, MPEG) DES, RSA encryption Simplex algorithm for linear programming Shortest Path Algorithms (Dijkstra, Bellman-Ford) Error correcting codes (CDs, DVDs) TCP congestion control, IP routing Pattern matching (Genomics) Delaunay Triangulation (FEM, Simulation)

34 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 34 Ο ρόλος των αλγορίθμων στον σύγχρονο κόσμο Enormous amount of data –e-commerce (Amazon, Ebay) –Network traffic (telecom billing, monitoring) –Database transactions (Sales, inventory) –Scientific measurements (astrophysics, geology) –Sensor networks –Bioinformatics (genome, protein bank)

35 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 35 A real-world Problem Communication in the Internet Message (email, ftp) broken down into IP packets. Sender/receiver identified by IP address. The packets are routed through the Internet by special computers called Routers. Each packet is stamped with its destination address, but not the route. Because the Internet topology and network load is constantly changing, routers must discover routes dynamically. What should the Routing Table look like?

36 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 36 IP Prefixes and Routing Each router is really a switch: it receives packets at several input ports, and appropriately sends them out to output ports. Thus, for each packet, the router needs to transfer the packet to that output port that gets it closer to its destination. Should each router keep a table: IP address x Output Port? How big is this table? When a link or router fails, how much information would need to be modified? A router typically forwards several million packets/sec!

37 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 37 Data Structures The IP packet forwarding is a Data Structure problem! Efficiency, scalability is very important. Similarly, how does Google find the documents matching your query so fast? Uses sophisticated algorithms to create index structures, which are just data structures. Algorithms and data structures are ubiquitous. With the data glut created by the new technologies, the need to organize, search, and update MASSIVE amounts of information FAST is more severe than ever before.

38 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 38 Αλγόριθμοι επεξεργασίας δεδομένων Ποιοι είναι οι Κ καλύτεροι πωλητές? Υπάρχει συσχέτιση μεταξύ του χρόνου παραμονής σε ένα web site και των αγορών που πραγματοποιούνται; Ποιες ροές δεδομένων σε δρομολογητές δικτύων υπερβαίνουν το 1% της συνολικής κυκλοφορίας; Μπορεί μια πηγή S να στείλει ένα πακέτο δεδομένων σε s seconds? Έλεγχος ομοιότητας σε βάσεις δεδομένων του DNA

39 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 39 Ιδιότητες αλγορίθμων Καθοριστικότητα (οι πράξεις που χρησιμοποιεί ένας αλγόριθμος πρέπει να είναι καλώς καθορισμένες) Περατότητα ( το πρόβλημα επιλύεται σε πεπερασμένο πλήθος πράξεων ή εντολών). Μια διαδικασία που δεν πληροί την ιδιότητα της περατότητας λέγεται υπολογιστική μέθοδος. Αποτελεσματικότητα (όλες οι πράξεις πρέπει να είναι ικανοποιητικά απλές ώστε να εκτελούνται από μια μηχανή ή από έναν άνθρωπο με μολύβι και χαρτί).

40 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 40 Δομές δεδομένων Γραμμικές (κάθε στοιχείο έχει το πολύ ένα επόμενο και ένα προηγούμενο) Μη γραμμικές –κάθε ένα στοιχείο έχει το πολύ ένα προηγούμενο και ένα ή περισσότερα επόμενα. Η δομή ονομάζεται δενδρική δομή ή ιεραρχική. –κάθε ένα στοιχείο έχει το ένα ή περισσότερα προηγούμενο και ένα ή περισσότερα επόμενα. Η δομή ονομάζεται γράφημα

41 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 41 Προβλήματα και στιγμιότυπα Ένα πρόβλημα εκφράζεται συνήθως με μια εντολή ή ένα ερώτημα που πρέπει να απαντηθεί. Με την εξειδίκευση του προβλήματος ορίζονται τα αποδεκτά δεδομένα εισόδου που εκφράζονται συνήθως με τις παραμέτρους του. Ορίζονται επίσης επακριβώς τα αναμενόμενα αποτελέσματα εξόδου, ως συνάρτηση επί των δεδομένων εισόδου. Ένα πρόβλημα επιλύεται όταν έχει αναπτυχθεί ο κατάλληλος αλγόριθμος που μετασχηματίζει όλα τα αποδεκτά δεδομένα εισόδου σε ορθά αποτελέσματα εξόδου.

42 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 42 Στιγμιότυπο Ένα στιγμιότυπο ενός προβλήματος είναι μια ανάθεση τιμών στις παραμέτρους του. Πεδίο ορισμού ενός προβλήματος είναι το σύνολο των στιγμιοτύπων του. Ένας αλγόριθμος λέγεται ορθός αν και μόνον αν επιλύει κάθε στιγμιότυπο ενός προβλήματος.

43 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 43 Κατηγορίες προβλημάτων Με κριτήριο το είδος των ερωτημάτων που ζητούνται να απαντηθούν : –Αναζήτησης –Δόμησης –Κατασκευής –Βελτιστοποίησης –Απόφασης ή απόκρισης (ναι – όχι)

44 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 44 Με κριτήριο την επιλυσιμότητα (δυνατότητα αλγοριθμικής επίλυσης): –Υπολογιστικώς επιλύσιμα ή αλγοριθμικά –Υπολογιστικώς μη επιλύσιμα ή μη αλγοριθμικά Θετική λύση : αποδεικνύεται ότι μπορεί να υπάρξει ένας αλγόριθμος επίλυσης. Το πρόβλημα λέγεται υπολογιστικά επιλύσιμο ή αλγοριθμικό Αρνητική λύση : κανένας αλγόριθμος δεν υπάρχει αλλά έχει αποδειχθεί και μαθηματικά ότι τέτοιοι αλγόριθμοι είναι αδύνατο να υπάρξουν. Το πρόβλημα λέγεται υπολογιστικά μη επιλύσιμο ή μη αλγοριθμικό.

45 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 45 Μη επιλύσιμα προβλήματα Ιστορικά μέχρι και τον 19ο αιώνα τα μαθηματικά ασχολούνταν άμεσα ή έμμεσα με το να βρίσκουν θετικές λύσεις στα προβλήματα απόφασης, δηλ. να παράγουν αλγόριθμους για την επίλυσή τους. Αρνητικές λύσεις παρουσιάστηκαν μόλις τον 20ο αιώνα. Το δέκατο πρόβλημα του Hilbert : –υπάρχει ένας αλγόριθμος που να αποφασίζει για κάθε πολυωνυμική εξίσωση P(x 1,x 2,…,x n )=0 με ακέραιους συντελεστές αν αυτή έχει ακέραιες λύσεις; (μη επιλύσιμο)

46 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 46 Το πρόβλημα του σταματήματος (μη επιλύσιμο) : –Δίνεται ένα πρόγραμμα ΗΥ, έστω Ρ, και ένα σύνολο δεδομένων εισόδου Ι και ζητείται να αποφασιστεί αν η εκτέλεση του Ρ θα τερματιστεί με τα δεδομένα εισόδου Ι Αν το Ι δεν αποτελεί ένα αποδεκτό σύνολο δεδομένων για το Ρ τότε το Ρ σταματά μόλις αρχίσει Αν το Ι αποτελεί ένα αποδεκτό σύνολο δεδομένων και το Ρ έχει λάθος σχεδιασμό, τότε το πρόγραμμα εισέρχεται σε μια άπειρη ανακύκλωση και δεν τερματίζει ποτέ. –Επιθυμητή η ύπαρξη ενός προγράμματος Q (διαδικασία απόφασης) για να ελέγχει κάθε πρόβλημα Ρ, Ι.

47 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 47 Συνέπειες της μη επιλυσιμότητας του προβλήματος του σταματήματος : –Καμία περαιτέρω προσπάθεια αναζήτησης λύσης –Μια μεγάλη κατηγορία άλλων προβλημάτων μπορούν να αποδειχθούν υπολογιστικά ισοδύναμα με το πρόβλημα του σταματήματος, άρα δεν επιλύονται. –Οι διαπιστώσεις αυτές (προβλήματα που δεν έχουν αλγοριθμική λύση) έγιναν πριν κατασκευαστούν οι πρώτοι υπολογιστές. Ο Alan Turing (1912-1954) το 1931 απέδειξε ότι μια τέτοια αλγοριθμική διαδικασία είναι αδύνατη.

48 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 48 Υπολογισιμότητα - Πολυπλοκότητα Η θεωρία της υπολογισιμότητας (computability) ασχολείται με τον χαρακτηρισμό των υπολογιστικών προβλημάτων σε αλγοριθμικά και μη αλγοριθμικά Η θεωρία της πολυπλοκότητας (complexity) ασχολείται με τον προσδιορισμό του βαθμού δυσκολίας επίλυσης ενός προβλήματος. –Ειδικότερα ασχολείται με τον προσδιορισμό συναρτήσεων χώρου μνήμης και χρόνου κάθε αλγορίθμου σε σχέση με το μέγεθος των δεδομένων εισόδου. –Η γνώση των συναρτήσεων αυτών μας επιτρέπει να προσδιορίσουμε το μέγιστο μέγεθος των προβλημάτων των οποίων η επίλυση είναι εφικτή με τα υπολογιστικά μέσα που διαθέτουμε. Αλγοριθμική σκέψη έναντι μαθηματικής σκέψης (σε μαθηματικές φόρμες εισέρχεται η έννοια του χρόνου)

49 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 49 Η αλγοριθμική γλώσσα Δομικές εντολές –Ανάθεσης (εκχώρησης) –Αντιμετάθεσης –Δημιουργίας block εντολών –Σειριακές δομές –Δομές επιλογής (απλή – πολλαπλή – εμφωλιασμένη) –Δομές επανάληψης –Ισοδυναμία δομών επανάληψης –Συναρτήσεις – κλήση συνάρτησης

50 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 50 Στοιχεία υπολογιστικής πολυπλοκότητας Η απόδειξη ύπαρξης ενός αλγορίθμου εξασφαλίζει ότι το πρόβλημα είναι υπολογιστικά επιλύσιμο. Σε δεύτερο στάδιο ενδιαφέρει περισσότερο η εκτίμηση των υπολογιστικών απαιτήσεων των προβλημάτων σε χρόνο και χώρο μνήμης ως συνάρτηση του μεγέθους τους. Παράδειγμα : ο αριθμός 2 n

51 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 51 Η γνώση των απαιτήσεων σε υπολογιστικό χρόνο και χώρο μνήμης ενός αλγορίθμου έχει τεράστια πρακτική σημασία : (θεωρία υπολογιστικής πολυπλοκότητας ή ανάλυση αλγορίθμων – COMPUTATIONAL COMPLEXITY ή ALGORITHMS ANALYSIS). Πολυπλοκότητα χώρου και χρόνου

52 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 52 Η έννοια της πολυπλοκότητας ενός αλγορίθμου δεν σχετίζεται με το πόσο πολύπλοκος ή περίπλοκος είναι ο αλγόριθμος αυτός. Το πιο ευρέως αποδεκτό μέτρο προσδιορισμού της αποτελεσματικότητας ενός αλγορίθμου είναι η πολυπλοκότητα χρόνου.

53 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 53 Πειραματικός και θεωρητικός προσδιορισμός της πολυπλοκότητας Μειονεκτήματα του πειραματικού προσδιορισμού: –κόστος και σπατάλη χρόνου –Η πειραματική ανάλυση περιορίζεται στην επίλυση σχετικά μικρού μεγέθους στιγμιοτύπων του προβλήματος Θεωρητικός προσδιορισμός –Βασίζεται αποκλειστικά στη λογική δομή –Οι υπολογιστικές απαιτήσεις προσδιορίζονται με μια μαθηματική σχέση που είναι συνάρτηση του μεγέθους κάθε στιγμιότυπου του προβλήματος –Η θεωρία πολυπλοκότητας είναι απαλλαγμένη από τα τεχνικά χαρακτηριστικά του ΗΥ και τις ικανότητες του προγραμματιστή. –Υπάρχει γνώση των απαιτήσεων χωρίς εκτέλεση του αντίστοιχου προγράμματος

54 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 54 Μέτρηση του μεγέθους ενός στιγμιότυπου Το μέγεθος ενός στιγμιότυπου μετράται με τον αριθμό των δυαδικών ψηφίων (bits) που απαιτούνται για την κωδικοποίησή του. n=b i 2 i +b i-1 2 i-1 +…+b 1 2 1 +b 0 2 0 n>=2 i  log 2 n>=i (αν n=1000, i=10) (η άποψη αυτή μπορεί να επηρεάζει σε ορισμένες περιπτώσεις την πολυπλοκότητα του αλγορίθμου) Για διευκόλυνση της ανάλυσης ως μέγεθος στιγμιότυπου θα χρησιμοποιείται ένας ακέραιος αριθμός που μετρά το πλήθος των φυσικών μονάδων του στιγμιότυπου.

55 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 55 Παραδείγματα Ταξινόμηση των στοιχείων μιας λίστας  πλήθος στοιχείων Προβλήματα πινάκων  διαστάσεις των πινάκων Επίλυση ενός συστήματος γραμμικών εξισώσεων  αριθμός εξισώσεων ή των αγνώστων ή και τα δύο

56 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 56 Μέτρηση της υπολογιστικής προσπάθειας Ο προσδιορισμός της θεωρητικής πολυπλοκότητας ενός αλγορίθμου γίνεται ανεξάρτητα από : –Το είδος του Η/Υ –Τον τύπο του μεταγλωττιστή –Τη γλώσσα προγραμματισμού –Την ποιότητα και τα χαρακτηριστικά του προγράμματος

57 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 57 Παραδοχές Απόδοση : Πως συμπεριφέρεται ο αλγόριθμος καθώς το μέγεθος του προβλήματος γίνεται διαρκώς μεγαλύτερο? Χρόνος εκτέλεσης Προδιαγραφές μνήμης Χρήση του παρακάτω μοντέλου μνήμης: Όλες οι θέσεις μνήμης έχουν τον ίδιο χρόνο προσπέλασης Δεν υπάρχουν ταυτόχρονες λειτουργίες Όλες οι εντολές απαιτούν μια μονάδα χρόνου –Εκτός από τις κλήσεις συναρτήσεων

58 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 58 Η έννοια της στοιχειώδους πράξης Η μονάδα μέτρησης (αναφέρεται συνήθως ως στοιχειώδης πράξη) των υπολογιστικών απαιτήσεων ενός αλγορίθμου θα πρέπει να ικανοποιεί την αρχή του αναλλοίωτου: –Διαφορετικές υλοποιήσεις του αλγορίθμου δεν θα πρέπει να διαφέρουν σε πολυπλοκότητα περισσότερο από μια πολλαπλασιαστική σταθερά που θα είναι ανεξάρτητη από το μέγεθος του στιγμιότυπου. Στοιχειώδης πράξη είναι αυτή της οποίας ο χρόνος εκτέλεσης φράσσεται από πάνω με μια σταθερά. Η σταθερά αυτή είναι ανεξάρτητη από το μέγεθος του προβλήματος και εξαρτάται μόνον από τις ιδιαιτερότητες υλοποίησης του αλγορίθμου.

59 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 59 Οι στοιχειώδεις πράξεις διαφέρουν σε κάθε αλγόριθμο. Κάθε στοιχειώδης πράξη υποθέτουμε ότι εκτελείται σε μια μονάδα χρόνου Ο χρόνος εκτέλεσης του αλγορίθμου είναι ο αριθμός των στοιχειωδών πράξεων που απαιτούνται και όχι ο ακριβής χρόνος που απαιτείται για την εκτέλεσή τους. Παραδείγματα : αριθμητικές πράξεις, συγκρίσεις, εντολές διακλάδωσης,διάβασμα περιεχομένου θέσης μνήμης κλπ

60 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 60 Παραδείγματα

61 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 61 Παραδείγματα (συνέχεια) (1) εκτελείται μια πράξη, σταθερός χρόνος (2) λογαριθμική συμπεριφορά, η ανακύκλωση εκτελείται φορές (3) η πράξη εκτελείται n φορές (4) εκτελούνται n X n = n 2 πράξεις (5) εκτελούνται n(n+1)/2 πράξεις

62 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 62 Το πλήθος των πράξεων που εκτελούνται σε κάθε αλγόριθμο εξαρτάται άμεσα από τον αριθμό των επαναλήψεων. Η εκτίμηση του μεγέθους των υπολογιστικών απαιτήσεων ενός αλγορίθμου μπορεί να γίνει με ακρίβεια αν μετρηθεί το πλήθος των ανακυκλώσεων που εκτελούνται.

63 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 63 Μέτρηση της αποτελεσματικότητας του αλγορίθμου Τρεις αλγόριθμοι για τον υπολογισμό του αθροίσματος 1 + 2 + … n για έναν ακέραιο n > 0

64 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 64 Το πλήθος των λειτουργιών που απαιτούνται για τους 3 προηγούμενους αλγορίθμους

65 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 65 Το πλήθος των λειτουργιών που απαιτούνται από τους 3 αλγορίθμους σαν συνάρτηση του n

66 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 66 Αποτελεσματικότητα χρόνου Πως μπορούμε να βελτιώσουμε την αποτελεσματικότητα χρόνου ενός προγράμματος; Ο κανόνας 90/10 –90% του χρόνου εκτέλεσης ενός προγράμματος ξοδεύεται για την εκτέλεση του 10% του κώδικα του προγράμματος Τι πρέπει να γίνει για να εντοπιστεί αυτό το κρίσιμο τμήμα του 10%? – εργαλεία μέτρησης της τεχνολογίας λογισμικού – γενικοί μετρητές για να εντοπιστούν εντολές επανάληψης και κλήσεις συναρτήσεων

67 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 67 Βελτιώσεις της αποτελεσματικότητας χρόνου μετακίνηση τμημάτων κώδικα εκτός των ανακυκλώσεων (τα τμήματα αυτά δεν ανήκουν στην πραγματικότητα εκεί) διαγραφή λειτουργιών I/O που δεν είναι απαραίτητες και σπαταλούν χρόνο αποτελεσματική κωδικοποίηση αντικατάσταση ενός μη αποτελεσματικού αλγορίθμου ( η καλύτερη λύση!) ΕΠΙΛΟΓΗ του πλέον κατάλληλου αλγορίθμου ΠΡΙΝ την ανάπτυξη του προγράμματος

68 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 68 Ανάλυση πολυπλοκότητας Γιατί αργεί τόσο πολύ;

69 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 69 Ανάλυση πολυπλοκότητας Ανάλογα με το είδος των δεδομένων εισόδου η συμπεριφορά του αλγορίθμου μεταβάλλεται : –Πολυπλοκότητα της χειρότερης περίπτωσης (worst-case complexity) –Πολυπλοκότητα της καλύτερης περίπτωσης (best-case complexity) –Πολυπλοκότητα της μέσης περίπτωσης (average-case complexity). Είναι η πιο αντιπροσωπευτική και η δυσκολότερη να υπολογιστεί.

70 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 70

71 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 71 Πολυπλοκότητα της χειρότερης περίπτωσης (Worst-case complexity) Η συνάρτηση πολυπλοκότητας εκφράζει τον μέγιστο αριθμό στοιχειωδών πράξεων που απαιτούνται για την επίλυση μιας κατηγορίας δεδομένων μεγέθους n. Η συνάρτηση πολυπλοκότητας χειρότερης περίπτωσης είναι αυτή που χρησιμοποιείται περισσότερο. Κάποιος όρος της συνάρτησης, καθώς το n μεγαλώνει, μπορεί να υπερισχύσει πάνω στους υπόλοιπους. Ο όρος που υπερισχύει ονομάζεται ασυμπτωτική συμπεριφορά του αλγορίθμου.

72 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 72

73 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 73 Η κατανόηση της πλήρους συμπεριφοράς του αλγορίθμου, δηλαδή η ακριβής γνώση της συνάρτησης που εκφράζει το πλήθος των πόρων που χρησιμοποιούνται σε σχέση με το μέγεθος n, είναι πολύ δύσκολη. Έτσι αρκεί μόνον η γνώση της ασυμπτωτικής συμπεριφοράς του αλγορίθμου που είναι γνωστή ως ασυμπτωτική πολυπλοκότητα χρόνου (asymptotic time complexity).

74 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 74 Ασυμπτωτική πολυπλοκότητα Είναι αυτή που εκφράζει αν ο αλγόριθμος είναι εφικτός (feasible) ή μη εφικτός (infeasible) ή δυσχείριστος (intractable). Χρησιμοποιείται ως κριτήριο αποτελεσματικότητας χρόνου στην αξιολόγηση κάθε αλγορίθμου. Η γνώση της συνάρτησης αυτής, έστω T A (n) μας επιτρέπει να υπολογίσουμε το μεγαλύτερο μέγεθος ενός προβλήματος που μπορεί να επιλύσει ο συγκεκριμένος αλγόριθμος σε μια συγκεκριμένη χρονική περίοδο.

75 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 75 Οι αλγόριθμοι με ασυμπτωτική συμπεριφορά 2 n ή γενικά c n όπου c=σταθερά λέγονται εκθετικοί (exponential). Είναι ανέφικτοι για όλα τα δεδομένα εκτός από εκείνα που έχουν πολύ μικρό μέγεθος. Οι αλγόριθμοι με ασυμπτωτική συμπεριφορά n, n 2,n c λέγονται πολυωνυμικοί (polynomial) αλγόριθμοι. Πολλοί πολυωνυμικοί αλγόριθμοι είναι εφικτοί για πρακτικά μήκη δεδομένων εισόδου αλλά δυστυχώς αρκετοί άλλοι δεν είναι.

76 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 76 Παράδειγμα-1 – μονάδα μέτρησης 1 sec αλγόριθμοςT A (n)Μέγιστο μέγεθος προβλήματος (n) 1 ώρα2 ώρες Α1100n3672 Α215n 2 1521 Α32n 3 1215 Α4n!67 Α52n2n 1112

77 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 77 Παράδειγμα-2 χρόνος εκτέλεσης σε sec nlog 2 nnn2n2 2n2n 100.0000030.000010.00010.01 1000.0000070.00010.0110 14 αιώνες 10000.000010.0011 Αστρονομικός 100000.0000130.011.7 min Αστρονομικός 1000000.0000170.12.8 hours Αστρονομικός

78 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 78 10 2025 0 200 400 600 800 n Run time f(n)=10n f(n)=n 2

79 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 79 Complexity1020501001 00010 000100 000 O(1) < 1 s O(log(n)) < 1 s O(n) < 1 s O(n*log(n)) < 1 s O(n 2 ) < 1 s 2 s2 s3-4 min O(n 3 ) < 1 s 20 s5 hours231 days O(2 n ) < 1 s 260 dayshangs O(n!) < 1 shangs O(n n ) 3-4 minhangs

80 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 80 Εκθετικές συναρτήσεις Οι εκθετικές συναρτήσεις αυξάνονται ταχύτατα, πχ. Η συνάρτηση 2 n θα διπλασιάζεται κάθε φορά που το n αυξάνεται κατά 1 31.7 years10 15 50 10 18 10 12 10 9 10 6 10 3 2n2n 0.001 s10 1 s20 16.7 mins30 11.6 days40 31710 years60 1ms x 2 n n

81 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 81 Βαθμός πολυπλοκότητας ( O rder of complexity) Ο βαθμός πολυπλοκότητας ενός αλγορίθμου Α, που έχει ασυμπτωτική συνάρτηση χρόνου T A (n) ορίζεται ως O(T A (n)). Λέγεται και συμβολισμός του μεγάλου όμικρον (big-Oh notation). Όταν η πολυπλοκότητα εκφράζεται με big-O το αποτέλεσμα ονομάζεται τάξη ή βαθμός (order) του αλγορίθμου. Ο συμβολισμός του big-O αναφέρεται στον ρυθμό αύξησης όταν το n  ∞

82 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 82 Big- O notation Ο συμβολισμός του Big- O αποτυπώνει τον ρυθμό αύξησης. Είναι η τάξη ενός μαθηματικού τύπου που περιγράφει με τον καλύτερο τρόπο την εκτέλεση ενός αλγορίθμου και βρίσκεται αναζητώντας το πλήθος των στοιχειωδών πράξεών του. Ο συμβολισμός του Big-O είναι μια συνάρτηση με παράμετρο συνήθως N, όπου N είναι συνήθως το πλήθος των πράξεων που εκτελεί ο αλγόριθμος : –π.χ. αν ένας αλγόριθμος που εξαρτάται από μια τιμή n έχει πλήθος πράξεων an 2 + bn + c (a, b, c είναι σταθερές) τότε έχει απόδοση O(N 2 ) επειδή για μεγάλες τιμές n ο όρος n 2 κυριαρχεί. Μόνον ο κυρίαρχος όρος περιλαμβάνεται στον συμβολισμό του Big-O.

83 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 83 Παραδείγματα n O(n) O(n) + 2 O(n 2 ) O(n 2 ) + n 2 2 4 4 6 4 4 6 16 20 8 8 10 64 72 16 16 18 256 272 32 32 34 1024 1056 64 64 66 4096 5050 128 128 130 16384 16512 256 256 258 65536 65792 512 512 514 262144 262656 1024 1024 1026 1048576 1049600

84 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 Παραδείγματα 4n 3 + 20n + 30 = O(n 3 ) n + 10000 = O(n) 4n 4 + 20n + 30 = O(n 4 ) 2 n + n 3 = O(2 n ) 200 = O(1)

85 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 85 Βαθμός του αλγορίθμου Είναι η σχέση που υποδηλώνει τον ρυθμό αύξησης του υπολογιστικού χρόνου σε συνάρτηση με τις παραμέτρους που καθορίζουν το μέγεθος του προβλήματος και για τη δυσμενέστερη μορφή δεδομένων που αντιστοιχούν στον συγκεκριμένο αλγόριθμο (worst-case analysis) Η τάξη του αλγορίθμου είναι γενικά περισσότερο σημαντική από την ταχύτητα του επεξεργαστή.

86 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 86 Ο συμβολισμός του μεγάλου Ο (big Oh) παρέχει έναν ασφαλή τρόπο αποτίμησης της αποτελεσματικότητας ενός αλγορίθμου που δεν εξαρτάται από τον υπολογισμό του χρόνου εκτέλεσης ή τη μέτρηση των εκτελούμενων εντολών.

87 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 87 Ασυμπτωτική Ανάλυση Αλγορίθμου Η ασυμπτωτική ανάλυση ενός αλγορίθμου καθορίζει τον χρόνο εκτέλεσης χρησιμοποιώντας τον συμβολισμό του μεγάλου Ο (big-Oh) Για να υλοποιηθεί η ασυμπτωτική ανάλυση : –Βρίσκουμε το πλήθος των βασικών λειτουργιών που εκτελούνται στην χειρότερη περίπτωση ως συνάρτηση του μεγέθους των δεδομένων εισόδου –Εκφράζουμε αυτή τη συνάρτηση με τον συμβολισμό του μεγάλου Ο (big-Oh) Παράδειγμα: –Έστω ότι ένας αλγόριθμος arrayMax εκτελεί κατά μέγιστο 7n  1 βασικές λειτουργίες –Ο αλγόριθμος arrayMax “εκτελείται σε O(n) χρόνο” Οι σταθεροί συντελεστές και οι όροι μικρότερης τάξης τελικά παραλείπονται, έτσι μπορούμε να τις αγνοήσουμε όταν γίνεται απαρίθμηση των βασικών λειτουργιών.

88 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 88 Ένας αλγόριθμος είναι O(1) όταν ο χρόνος εκτέλεσής του είναι ανεξάρτητος του πλήθους των δεδομένων εισόδου. Ο αλγόριθμος εκτελείται σε σταθερό χρόνο. Ένας αλγόριθμος είναι O(n) όταν ο χρόνος εκτέλεσής του είναι ανάλογος του μεγέθους των δεδομένων εισόδου. Οι αλγόριθμοι με χρόνο εκτέλεσης O(n 2 ) είναι αποτελεσματικοί μόνον για μικρές τιμές του n. Οι αλγόριθμοι με χρόνο εκτέλεσης O(n 3 ) είναι γενικά αναποτελεσματικοί.

89 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 89 Εκθετικοί (Exponential) Αλγόριθμοι

90 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 90 Αλγόριθμοι λογαριθμικού χρόνου Ο λογάριθμος του n, με βάση το 2, χρησιμοποιείται συχνά στην ανάλυση των αλγορίθμων. log 2 (2) = 1 log 2 (75) = 6.2288 Συγκρινόμενη με τις συναρτήσεις n και n 2, η συνάρτηση log 2 n αυξάνεται πολύ αργά

91 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 91 Ταχύτερος Η/Υ ή αλγόριθμος ; Τι θα συμβεί αν αγοράσουμε έναν Η/Υ 10 φορές ταχύτερο; Ενδιαφέρει ο ρυθμός αύξησης T(n)T(n)nn’n’Changen’/n 10n1,00010,000n’ = 10n10 20n5005,000n’ = 10n10 5n log n2501,842  10 n < n’ < 10n 7.37 2n22n2 70223 n’ =  10n 3.16 2n2n 1316n’ = n + 3-----

92 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 92 Ιδιότητες c · O (T A (n))  O (T A (n)) O (O (T A (n)) )  O (T A (n)) O (T A (n)) · O (T B (n))  Ο (T A (n) · T B (n)) O (T A (n)) + O (T B (n))  Ο (T A (n) + T B (n)) Οι παραπάνω σχέσεις βοηθούν στον προσδιορισμό του βαθμού πολυπλοκότητας ενός αλγορίθμου που είναι σύνθεση άλλων αλγορίθμων γνωστού βαθμού πολυπλοκότητας.

93 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 93 “Big-O” Examples

94 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 94 Υπολογισμός της πολυπλοκότητας χρόνου σε απλούς αλγορίθμους Ο βαθμός πολυπλοκότητας υπολογίζεται εφαρμόζοντας 5 απλούς κανόνες.

95 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 95 ΚΑΝΟΝΑΣ #1: Οι απλές εντολές προγράμματος θεωρείται ότι απαιτούν ένα σταθερό ποσό χρόνου που είναι O(1) ΔΕΝ εξαρτώνται από το n.

96 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 96 ΚΑΝΟΝΑΣ #2: Οι διαφορές στο χρόνο εκτέλεσης των απλών εντολών αγνοούνται

97 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 97 ΚΑΝΟΝΑΣ #3: Στις εντολές ελέγχου (conditional statements), χρησιμοποιείται πάντοτε η χειρότερη περίπτωση (worst case).

98 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 98 Ο χρόνος μιας ακολουθίας βημάτων έχει την τάξη του χρόνου του χρονικά μεγαλύτερου βήματος (ο κανόνας του αθροίσματος) ΚΑΝΟΝΑΣ #4:

99 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 99 Αν δύο σειριακά βήματα έχουν χρόνους O(n) και O(n 2 ), τότε ο χρόνος της ακολουθίας είναι O(n 2 ). Αν η τιμή του n είναι μεγάλη τότε ο χρόνος που σχετίζεται με αυτήν δεν είναι σημαντικός όταν συγκρίνεται με τον χρόνο για την τιμή n 2 (π.χ. αν n=1000 τότε το 1000 δεν είναι σημαντικό όταν συγκρίνεται με το 1000000) ΚΑΝΟΝΑΣ #4 (παράδειγμα)

100 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 100 Αν δύο διαδικασίες εμπλέκονται με τρόπο ώστε η δεύτερη διαδικασία να επαναλαμβάνεται m φορές για κάθε μία από τις n επαναλήψεις της πρώτης διαδικασίας τότε η πολυπλοκότητα O είναι ίση με το γινόμενο m X n (ο κανόνας του γινομένου) ΚΑΝΟΝΑΣ #5:

101 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 101 Για την εμφάνιση των στοιχείων ενός τετραγωνικού πίνακα δύο διαστάσεων, μεγέθους n X n, απαιτούνται δύο εμφωλιασμένες ανακυκλώσεις κάθε μια από τις οποίες θα εκτελείται n φορές Η πολυπλοκότητα O είναι n 2 ΚΑΝΟΝΑΣ #5 (παράδειγμα)

102 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 102 Παραδείγματα Nested Loops Sequential statements Conditional statements More nested loops

103 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 103 Nested Loops Running time of a loop equals running time of code within the loop times the number of iterations Nested loops: analyze inside out O(1) O(n)

104 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 104 Nested Loops Running time of a loop equals running time of code within the loop times the number of iterations Nested loops: analyze inside out O(1*n) = O(n)

105 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 105 Nested Loops Running time of a loop equals running time of code within the loop times the number of iterations Nested loops: analyze inside out O(n)

106 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 106 Nested Loops Running time of a loop equals running time of code within the loop times the number of iterations Nested loops: analyze inside out O(n*n) = O(n 2 )

107 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 107 Nested Loops Running time of a loop equals running time of code within the loop times the number of iterations Nested loops: analyze inside out Note: Running time grows with nesting rather than the length of the code O(n) O(n 2 )

108 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 108 Sequential Statements For a sequence S1; S2; : : : Sk of statements, running time is maximum of running times of individual statements O(n) O(n 2 ) Running time is:max(O(n), O(n 2 )) = O(n 2 )

109 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 109 Conditional Statements The running time of if ( cond ) S1 else S2  is running time of cond plus the max of running times of S1 and S2 O(n) O(1)

110 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 110 Conditional Statements The running time of if ( cond ) S1 else S2  is running time of cond plus the max of running times of S1 and S2 = O(max(n, 1)) = O(n) O(n 2 )

111 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 111 More Nested Loops ?

112 Λύση ενός προβλήματος με 2 διαφορετικούς αλγορίθμους procedure who_knows(a 1, a 2, …, a n : integers) m = 0 for i = 1 to n-1 for j = i + 1 to n if |a i – a j | > m then m = |a i – a j | {m is the maximum difference between any two numbers in the input sequence} Comparisons: n-1 + n-2 + n-3 + … + 1 = (n – 1)n/2 = 0.5n 2 – 0.5n Time complexity is O(n 2 ). ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 112

113 procedure max_diff(a 1, a 2, …, a n : integers) min = a1 max = a1 for i = 2 to n if a i < min then min = a i else if a i > max then max = a i m = max - min Comparisons: 2n - 2 Time complexity is O(n) ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 113

114 Παράδειγμα Two algorithms, A and B,have time complexities f and g respectively, where f(n) = 3 n 2 - 3n + 1 and g(n)=n 2. Determine which algorithm is faster. Solution First, find the value of n such that f(n)=g(n).Thus n 2 = 3 n 2 - 3n + 1 2 n 2 - 3n + 1 = 0 (2n - 1)(n - 1) = 0 n = 1/2 or n = 1 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 114

115 Take the larger value of n, that is for n > 1, suppose n = 2, then f(2) = 3(2) 2 - 3(2) + 1 = 7 and g(2) = 2 2 = 4 Thus g(n) 1. Hence g(n) is faster, so algorithm B is faster ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 115

116 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 116 ΑΣΚΗΣΗ-1 Algorithm prefixAverages1(X, n) Input array X of n integers Output array A of prefix averages of X A  new array of n integers for i  0 to n  1 do s  X[0] for j  1 to i do s  s + X[j] A[i]  s / (i + 1) return A Να βρεθεί η πολυπλοκότητα του αλγορίθμου

117 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 117 Λύση Algorithm prefixAverages1(X, n) Input array X of n integers Output array A of prefix averages of X #operations A  new array of n integers n for i  0 to n  1 do n s  X[0] n for j  1 to i do 1 + 2 + …+ (n  1) s  s + X[j] 1 + 2 + …+ (n  1) A[i]  s / (i + 1) n return A 1 Ο αλγόριθμος prefixAverages1 εκτελείται σε O(n 2 ) χρόνο

118 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 118 ΑΣΚΗΣΗ-2 Algorithm prefixAverages2(X, n) Input array X of n integers Output array A of prefix averages of X #operations A  new array of n integers s  0 for i  0 to n  1 do s  s + X[i] A[i]  s / (i + 1) return A Να βρεθεί η πολυπλοκότητα του αλγορίθμου

119 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 119 Λύση Algorithm prefixAverages2(X, n) Input array X of n integers Output array A of prefix averages of X #operations A  new array of n integersn s  0 1 for i  0 to n  1 don s  s + X[i]n A[i]  s / (i + 1) n return A 1 Ο αλγόριθμος prefixAverages2 εκτελείται σε O(n) χρόνο

120 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 120 Ταξινόμηση με επιλογή

121 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 121 Ο βαθμός πολυπλοκότητας χρησιμοποιείται ως κριτήριο για την αξιολόγηση των αλγορίθμων. Ως προς την απόδοση κατατάσσονται σε : –αποτελεσματικούς (efficient) Η συνάρτηση ασυμπτωτικής πολυπλοκότητας είναι πολυωνυμικής μορφής –μη αποτελεσματικούς (inefficient) Η συνάρτηση ασυμπτωτικής πολυπλοκότητας είναι εκθετικής μορφής

122 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 122 Σε προβλήματα που επιλύονται με αλγορίθμους πολυωνυμικού χρόνου καλύτερος αλγόριθμος θεωρείται αυτός με συνάρτηση ασυμπτωτικής πολυπλοκότητας το πολυώνυμο με τον μικρότερο βαθμό. Ένας αλγόριθμος εκθετικού χρόνου ΔΕΝ ΘΕΩΡΕΙΤΑΙ ΠΟΤΕ καλύτερος από έναν άλλο πολυωνυμικού χρόνου. Ο βαθμός πολυπλοκότητας δεν εκφράζει μια συγκεκριμένη ποσότητα αλλά την τάξη μεγέθους της ασυμπτωτικής συνάρτησης.

123 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 123 Άνω και κάτω φράγμα Η πολυπλοκότητα του καλύτερου αλγορίθμου που γνωρίζουμε ως τώρα για ένα πρόβλημα είναι το άνω φράγμα (upper bound) της πολυπλοκότητας. Το ελάχιστο πλήθος πόρων που απαιτείται για την επίλυση είναι το κάτω φράγμα (lower bound) της πολυπλοκότητας.

124 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 124 Κατηγορίες αλγορίθμων Logarithmic :O(logn) Linear : O(n) Quadratic : O(n 2 ) Polynomial : O(n k ), k ≥ 1 Exponential : O(a n ), n > 1

125 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 125 Παραδείγματα O(1) ή O(c) : σταθερός ρυθμός αύξησης O(lοgn) : λογαριθμική αύξηση π.χ. δυαδική αναζήτηση O(n) : γραμμική αύξηση π.χ. σειριακή αναζήτηση, οποιαδήποτε ανακύκλωση σε στοιχεία μονοδιάστατου πίνακα (άθροισμα, εκτύπωση κλπ) O(nlοgn) : αλγόριθμοι ταξινόμησης που χρησιμοποιούν συγκρίσεις μεταξύ στοιχείων π.χ. merge sort, Quicksort

126 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 126 O(n k ) : πολυωνυμική αύξηση. Ο χρόνος εκτέλεσης αυξάνεται πολύ γρήγορα, π.χ. – Bubble sort (O(n 2 )) – Selection (exchange) sort (O(n 2 )) – Insertion sort (O(n 2 ))

127 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 127 O(2 n ) : εκθετική αύξηση. Ο χρόνος εκτέλεσης αυξάνεται δραματικά καθώς αυξάνεται το πλήθος των στιγμιοτύπων n. Αλγόριθμοι με τέτοια ασυμπτωτική πολυπλοκότητα είναι ουσιαστικά μη αποτελεσματικοί εκτός από πολύ μικρές τιμές του n. O(sqrt(n)) O(n!)

128 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 128 Tractable  Exponential  Factorial  Intractable!

129 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 129 Ρυθμός αύξησης ορισμένων συναρτήσεων O(log n), O(log 2 n), O(n 0.5 ), O(n), O(n log n), O(n 1.5 ), O(n log 2 n), O(n 2 ), O(n 3 ), O(n 4 ) O(n log n ), O(2 n ), O(3 n ), O(4 n ), O(n n ), O(n!) Exponential Functions Polynomial Functions

130 Δύσκολα Προβλήματα Εννοιολογικά δύσκολο: δεν έχουμε αλγόριθμο, επειδή δεν καταλαβαίνουμε καλά το πρόβλημα. Αναλυτικά δύσκολο: έχουμε αλγόριθμο που λύνει το πρόβλημα, αλλά δεν μπορούμε να υπολογίσουμε τις επιδόσεις του. Υπολογιστικά δύσκολο: έχουμε αλγόριθμο, αλλά είναι απελπιστικά αργός. Υπολογιστικά άλυτο: δεν υπάρχει αλγόριθμος που να λύνει το πρόβλημα. ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 130

131 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 131 Προβλήματα πολυωνυμικού χρόνου Ταξινόμηση Γραμμικός προγραμματισμός Ελάχιστο δένδρο ζεύξης (minimum spanning tree) – η εύρεση ενός δένδρου που περιλαμβάνει όλες τις κορυφές του γραφήματος με το ελάχιστο άθροισμα βαρών στις ακμές.

132 132 Μικρότερη Διαδρομή Φτιάξτε οικονομικά γέφυρες που να συνδέουν όλα τα νησιά Υπάρχει γρήγορη λύση

133 133 21/9/2016 Περιπλανόμενος Πωλητής Φτιάξτε το συντομότερο δρομολόγιο πλοίου που περνάει από όλα τα νησιά ΔΕΝ ΥΠΑΡΧΕΙ ΓΡΗΓΟΡΗ ΛΥΣΗ Traveling salesman

134 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 134 Προβλήματα εκθετικού χρόνου 1.Το πρόβλημα του περιοδεύοντος πωλητή (TSP) – μια κλειστή διαδρομή με τη συνολικά μικρότερη απόσταση που περνά από όλα τα σημεία του γραφήματος και καταλήγει στην αφετηρία. Οι αλγόριθμοι που έχουν αναπτυχθεί εξετάζουν εξαντλητικά κάθε λύση, στη χειρότερη περίπτωση με πολυπλοκότητα Ο(n!). 2.Το πρόβλημα του ακέραιου προγραμματισμού 3.Το πρόβλημα του μέγιστου ανεξάρτητου συνόλου – ένα υποσύνολο ανεξάρτητων κορυφών ενός γραφήματος με τον μέγιστο αριθμό στοιχείων, με πολυπλοκότητα Ο(2 n ) 4.Το πρόβλημα του ωρολογίου προγράμματος (scheduling problems)

135 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 135 Η σημασία αποτελεσματικών αλγορίθμων έστω N = 10 6 Ένα PC μπορεί να επεξεργαστεί N εγγραφές σε 1 sec. Αλλά αν κάποιος αλγόριθμος εκτελεί N*N υπολογισμούς, απαιτούνται 1M seconds = 11 ημέρες!!! 100 πόλεις στο Traveling Salesman Problem. –Ένας supercomputer που ελέγχει 100 δισεκατομμύρια tours/sec θα χρειαστεί 10 100 έτη! γρήγοροι αναλυτικοί αλγόριθμοι μπορούν να διασπάσουν κρυπτογραφημένα σχήματα. Σε κάθε εποχή πρέπει να αποφασιστεί ποιο είναι το ασφαλές μήκος (σε ψηφία) των μεθόδων κρυπτογράφησης (> 100 ψηφία)

136 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 136 Είναι οι αλγόριθμοι εκθετικής πολυπλοκότητας οι καλύτεροι δυνατοί αλγόριθμοι για τα προβλήματα αυτά ή θα ήταν δυνατή η ανάπτυξη πολυωνυμικών αλγορίθμων; –Δεν έχουν βρεθεί ακόμη πολυωνυμικοί αλγόριθμοι ούτε έχει αποδειχθεί ότι η ανάπτυξη πολυωνυμικών αλγορίθμων είναι αδύνατη Θεωρία της NP – πληρότητας (NP–completeness)

137 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 137 Πολυπλοκότητα προβλημάτων Ένα πρόβλημα που μπορεί να λυθεί με αλγόριθμο πολυωνυμικού (ή καλύτερου) χρόνου και με πολυπλοκότητα της χειρότερης περίπτωσης καλείται tractable. Τα προβλήματα που δεν είναι tractable είναι intractable. P είναι το σύνολο όλων των προβλημάτων που επιλύονται σε πολυωνυμικό χρόνο (tractable problems). NP είναι το σύνολο όλων των προβλημάτων που δεν επιλύονται με οποιονδήποτε γνωστό αλγόριθμο πολυωνυμικού χρόνου. Ωστόσο η δυνατότητα επίλυσή τους μπορεί να ελεγχθεί σε πολυωνυμικό χρόνο. P  NP

138 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 138 NP-Complete Η κλάση NP-Complete περιλαμβάνει εκείνα τα γνωστά προβλήματα τα οποία είναι πιθανόν δυσεπίλυτα (intractable) ανεξάρτητα από το αν αυτό έχει αποδειχθεί ή όχι. Η κλάση NP-Complete είναι ένα σύνολο προβλημάτων για τα οποία πιστεύεται ότι δεν υπάρχουν αλγόριθμοι πολυωνυμικού χρόνου Έτσι θεωρούνται δύσκολα (hard) προβλήματα Αν ένα πρόβλημα είναι NP-complete, δεν υπάρχει ελπίδα αποτελεσματικής επίλυσής του.

139 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 139 Η θεωρία της NP - πληρότητας Παρέχει έναν ενιαίο τρόπο αντιμετώπισης προβλημάτων που έχουν τον ίδιο βαθμό υπολογιστικής δυσκολίας με το πρόβλημα του περιοδεύοντος πωλητή ή του μέγιστου ανεξάρτητου συνόλου. Θεμελιώνει μια διαδικασία που αποδεικνύει ότι ένα πρόβλημα είναι το ίδιο υπολογιστικά δύσκολο με τα παραπάνω αλλά και με χιλιάδες άλλα που ονομάζονται NP-complete προβλήματα. Η κλάση των NP-complete προβλημάτων περιλαμβάνει χιλιάδες προβλήματα από κάθε επιστημονική περιοχή.

140 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 140 Τα NP-complete προβλήματα έχουν την εξής ιδιότητα: –Κάθε NP-complete πρόβλημα μπορεί να μετασχηματιστεί σε ένα οποιοδήποτε άλλο NP-complete με έναν αλγόριθμο πολυωνυμικού χρόνου. Άρα αν αναπτυχθεί αλγόριθμος πολυωνυμικού χρόνου για τη επίλυση οποιουδήποτε NP-complete προβλήματος θα υπάρχει δυνατότητα ανάπτυξης πολυωνυμικού αλγορίθμου για χιλιάδες άλλα προβήματα NP-complete.

141 Παράδειγμα NP-Complete είναι το πρόβλημα της ικανοποιησιμότητας (satisfiability): μια παράσταση με δυαδικές μεταβλητές πότε γίνεται αληθής; Για να βρεθεί η απάντηση (Ναι/Όχι) πρέπει να εξετάσουμε όλους τους συνδυασμούς τιμών των μεταβλητών. Η καλύτερη γνωστή λύση για όλα τα NP-complete προβλήματα είναι η λύση της εξαντλητικής απαρίθμησης. ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 141

142 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 142 Τα αντίστοιχα προβλήματα βελτιστοποίησης των προβλημάτων NP-complete ανήκουν στην κατηγορία των NP-hard. Garey M.R, & Johnson D.S, “Computers and Intractability : A Guide to the Theory of NP- Completeness”, W.H.Freeman and Co., 1979

143 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 143 Exponential time problems NP problems NP-Complete problems P problems

144 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 144 Τύποι λύσεων για προβλήματα NP-complete Αλγόριθμοι εκθετικού χρόνου Αλγόριθμοι ειδικών περιπτώσεων Προσεγγιστικοί αλγόριθμοι Ευρετικοί (Heuristic) αλγόριθμοι

145 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 145 Αντιμετώπιση προβλημάτων Για κάθε πρόβλημα προσπαθούμε να βρούμε αλγόριθμο πολυωνυμικού χρόνου. Αν δεν βρούμε χρησιμοποιούμε την NP θεωρία για να ελέγξουμε αν το πρόβλημα ανήκει στα NP-complete. Αν ανήκει στα NP-complete προσπαθούμε να βρούμε μια προσεγγιστική λύση. Αν δεν ανήκει ούτε στα NP-complete τότε κατατάσσεται στα αναποφάσιστα προβλήματα.

146 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 146 Αντιμετώπιση δύσκολων υπολογιστικά προβλημάτων Τα δύσκολα προβλήματα (NP-hard) επιλύονται με αλγορίθμους εκθετικού χρόνου. Η πιθανότητα να βρεθεί αλγόριθμος πολυωνυμικού χρόνου απομακρύνεται καθημερινά. Η απόδειξη ότι ένα πρόβλημα είναι NP-complete έχει σημαντική πρακτική αξία. Προσπαθούμε να βρίσκουμε κατά περίπτωση κάποια εφικτή λύση, μειώνοντας τις απαιτήσεις μας.

147 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 147 Δυνατότητες Ανάπτυξη ενός πιθανοτικού αλγορίθμου πολυωνυμικού χρόνου (βρίσκει μια ορθή λύση εκτός από ένα μικρό ποσοστό του συνόλου των περιπτώσεων) Εύρεση μιας προσεγγιστικής λύσης με αλγόριθμο πολυωνυμικού χρόνου – Ευρετικοί αλγόριθμοι (heuristics) Χρησιμοποίηση παράλληλων αλγορίθμων

148 Θεμελιώδη για την αλγοριθμική επίλυση προβλημάτων Κατανόηση συγκεκριμένων τεχνικών για τη σχεδίαση λύσεων –Διαίρει και βασίλευε ( divide & conquer ) –Ωμή βία ( brute force ) –Οπισθοχώρηση ( backtracking ) Κατάλληλη επιλογή της Δομής Δεδομένων για να διευκολυνθεί η λύση του προβλήματος Ασφαλής εκτίμηση της πολυπλοκότητας του προτεινόμενου αλγορίθμου ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 148

149 149 Οκτώ Βασίλισσες στη Σκακιέρα Τοποθετείστε 8 βασίλισσες έτσι ώστε καμιά να μην απειλεί κάποια άλλη. Recursive Backtracking Algorithm 92 λύσεις !

150 Με πόσα το λιγότερο χρώματα μπορώ να χρωματίσω ένα χάρτη; ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 150

151 Αποτελεσματική αποστολή δεδομένων ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 151

152 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 152 Ευρετικοί αλγόριθμοι Είναι γρήγοροι αλγόριθμοι που δίνουν μια «καλή» λύση. Ένας ευρετικός αλγόριθμος είναι καλύτερος από έναν άλλο ευρετικό αν στις περισσότερες περιπτώσεις (διαφορετικά δεδομένα για το ίδιο μέγεθος προβλήματος) δίνει λύση που πλησιάζει περισσότερο στη βέλτιστη (την οποία φυσικά δεν γνωρίζουμε!!!) Σε μερικούς ευρετικούς αλγορίθμους η μέγιστη δυνατή απόκλιση της αποκτηθείσας λύσης από τη βέλτιστη μπορεί να εκφραστεί με μια συνάρτηση των μεταβλητών που προσδιορίζουν το πρόβλημα. Δεν υπάρχουν γενικοί κανόνες για την ανάπτυξη ευρετικών αλγορίθμων

153 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 153 Minimum Chromatic Number Ο χρωματικός αριθμός ενός γραφήματος G(V,E) είναι ο ελάχιστος αριθμός χρωμάτων που απαιτούνται για τον χρωματισμό του γραφήματος έτσι ώστε κάθε ζεύγος κορυφών που συνδέονται με μια ακμή να χρωματίζεται διαφορετικά. Το πρόβλημα της εύρεσης του χρωματικού αριθμού είναι NP-complete για γενικού τύπου γραφήματα

154 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 154 If you tell me that this graph is 3-colourable, it is very difficult for me to check whether you are right.

155 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 155 But if you tell me that this graph is 3-colorable and give me a solution, it is very easy for me to verify whether you are right. Loosely speaking, problems that are difficult to compute, but easy to verify are known as Non-deterministic Polynomial.

156 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 156 Chromatic Number

157 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 157 Chromatic Number Observation: Each color class is an independent set

158 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 158 Maximum Independent Set (MIS) Ένα ανεξάρτητο σύνολο (independent set) ενός γραφήματος G(V,E) είναι ένα σύνολο κορυφών V’  V τέτοιο ώστε κανένα ζεύγος κορυφών του V’ δεν θα συνδέεται με ακμή To MIS πρόβλημα είναι η εύρεση ενός αριθμού, του αριθμού ανεξαρτησίας ενός γραφήματος δηλ. το μέγεθος του μέγιστου ανεξάρτητου συνόλου στο γράφημα. Το πρόβλημα είναι NP-complete για γενικού τύπου γραφήματα.

159 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 159 Παράδειγμα - 1 Δίνεται το γράφημα G=(V,E,W). Να βρεθεί ένα ελάχιστο μείζον ανεξάρτητο υποσύνολό του. Ένα ελάχιστο μείζον ανεξάρτητο υποσύνολο ενός γραφήματος G με βάρη είναι ένα υποσύνολο S του V που είναι μείζον ανεξάρτητο και το άθροισμα των βαρών που αντιστοιχούν στις κορυφές του S να είναι ελάχιστο.

160 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 160 4 (5) 1 (3) 5 (7) 2 (4) 3 (8) 6 (2)

161 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 161 Ανάθεση εργασιών σε μηχανές Έστω M 1,M 2,…M m m όμοιες μηχανές και Ε 1, Ε 2,…,Ε n (n>>m) διαφορετικές εργασίες που μπορούν να εκτελεσθούν και να ολοκληρωθούν σε οποιαδήποτε μηχανή. Η εργασία Ε i χρειάζεται χρόνο t i για να ολοκληρωθεί. Κάθε εργασία πρέπει να ολοκληρωθεί για να ξεκινήσει μια επόμενη. Οι m μηχανές μπορούν να λειτουργήσουν ταυτόχρονα. Ζητείται να εντοπισθεί η διατεταγμένη ακολουθία εργασιών ώστε ο συνολικός χρόνος ολοκλήρωσης όλων των εργασιών να είναι ελάχιστος. Αριθμητικό παράδειγμα m=2, n=5, t1=4, t2=1, t3=4, t4=2, t5=5

162 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 162 Παράλληλοι αλγόριθμοι Ένας παράλληλος αλγόριθμος συνίσταται από ένα σύνολο διαδικασιών που εφαρμόζονται ταυτόχρονα με σκοπό τη γρηγορότερη ολοκλήρωσή τους. Για να επιλυθεί ένα πρόβλημα με παράλληλο αλγόριθμο πρέπει να διαμεριστεί σε ανεξάρτητες διαδικασίες και κάθε διαδικασία να εφαρμόζεται σε διαφορετικό επεξεργαστή. Η σύνθεση των αποτελεσμάτων που θα προκύψουν σε κάθε επεξεργαστή δίνει τη λύση του αρχικού προβλήματος. Αυτό επιβάλλει την ύπαρξη συστήματος με πολλαπλούς επεξεργαστές, συγκεκριμένη αρχιτεκτονική του δικτύου διασύνδεσής τους, ύπαρξη κοινής μνήμης κλπ

163 Παραδείγματα προβλημάτων για παράλληλη επεξεργασία Sparse Matrix Multiplication –Sparse matrices, are matrices in which most elements are zero. To save space and running time it is critical to only store the nonzero elements. –A standard representation of sparse matrices in sequential languages is to use an array with one element per row each of which contains a linked-list of the nonzero values in that row along with their column number. –A similar representation can be used in parallel. ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 163

164 Fast Fourier Transformations (FFT) Finding the k-th smallest element of a set Find all the prime numbers less than n ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 164

165 ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 165 Παρατηρήσεις Όλοι οι σειριακοί αλγόριθμοι δεν προσαρμόζονται σε αντίστοιχο παράλληλο. Ο βαθμός πολυπλοκότητας χρόνου για την επίλυση ενός προβλήματος με παράλληλη επεξεργασία μπορεί να βελτιωθεί κατά ένα παράγοντα m, όπου m το πλήθος των επεξεργαστών. Τι προκύπτει για τους αλγόριθμους εκθετικού χρόνου με την παράλληλη επεξεργασία;

166 Classes P & NP ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 166 Resource : The Design & Analysis of Algorithms, Anany Levitin, PEARSON / Addison Wesley

167 Classifying Problem Complexity ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 167 Is the problem tractable, i.e., is there a polynomial-time (O(p(n)) algorithm that solves it? Possible answers: yes (give example polynomial time algorithms) no –because it’s been proved that no algorithm exists at all (e.g., Turing’s halting problem) –because it’s been be proved that any algorithm for it would require exponential time unknown. Try to classify their (relative) complexity using reduction

168 Problem Types: Optimization and Decision ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 168 Optimization problem: find a solution that maximizes or minimizes some objective function Decision problem: answer yes/no to a question Many problems have decision and optimization versions. E.g.: traveling salesman problem –optimization: find Hamiltonian cycle of minimum length –decision: find Hamiltonian cycle of length  L Decision problems are more convenient for formal investigation of their complexity.

169 Class P ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 169 P : the class of decision problems that are solvable in O(p(n)) time, where p(n) is a polynomial of problem’s input size n Examples: searching element uniqueness graph connectivity graph acyclicity primality testing

170 Class NP ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 170 NP (nondeterministic polynomial): class of decision problems whose proposed solutions can be verified in polynomial time = solvable by a nondeterministic polynomial algorithm A nondeterministic polynomial algorithm is an abstract two-stage procedure that: generates a solution of the problem (on some input) by guessing checks whether this solution is correct in polynomial time By definition, it solves the problem if it’s capable of generating and verifying a solution on one of its tries Why this definition? led to development of the rich theory called “computational complexity” Big (million dollar) question: P = NP ?


Κατέβασμα ppt "ΔΠΘ-ΤΜΗΜΑ ΜΠΔ:ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ - 01 1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΡΧΕΙΩΝ Δ.Π.Θ. – ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Μηχανικών Παραγωγής & Διοίκησης ΕΞΑΜΗΝΟ Δ’ Φεβρουάριος."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google