Τεχνολογίες Υλοποίησης Αλγορίθµων

Σχετικά έγγραφα
Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

Διοικητική Λογιστική

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

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

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

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

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Μηχανολογικό Σχέδιο Ι

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

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

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

Ψηφιακή Επεξεργασία Εικόνων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

Ιστορία της μετάφρασης

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

Διοικητική Λογιστική

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

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

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

Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου

Τεχνολογίες Υλοποίησης Αλγορίθµων

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

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

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

Τηλεματική και Νέες Υπηρεσίες

Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

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

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

Κβαντική Επεξεργασία Πληροφορίας

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

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

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

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Μάρκετινγκ Αγροτικών Προϊόντων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

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

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

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

Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Οδική ασφάλεια. Ενότητα 1: Εισαγωγή Διάλεξη 1.1: Εισαγωγή στην οδική ασφάλεια. Ευτυχία Ναθαναήλ Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

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

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

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

Τεχνικό Σχέδιο - CAD

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

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

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 6

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

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

Τεχνικό Σχέδιο - CAD

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

Κβαντική Επεξεργασία Πληροφορίας

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

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 4: Πηγές Δεδομένων- Δευτερογενή Στοιχεία. Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Μηχανολογικό Σχέδιο Ι

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

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

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 3

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

Εφηρμοσμένη Θερμοδυναμική

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Προηγμένος έλεγχος ηλεκτρικών μηχανών

Transcript:

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

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

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

Περιεχόµενα Τεχνολογίες Υλοποίησης Αλγορίθµων (Algorithm Engineering) - τι είναι; Υπόβαθρο Στόχοι µαθήµατος Πρακτικά Ϲητήµατα Υλη Βιβλιογραφία 4 / 24

Τεχνολογίες Υλοποίησης Αλγορίθµων (Algorithm Engineering) Συστηµατικό πλαίσιο αντιµετώπισης της διαδικασίας µετατροπής (ϑεωρητικώς) αποδοτικών αλγορίθµων και δοµών δεδοµένων σε χρήσιµο λογισµικό 5 / 24

Υπόβαθρο Αλγόριθµοι και αποδοτικότητά τους Μοντέλα και ανάλυση πολυπλοκότητας Ασυµπτωτικός συµβολισµός Συνδυαστικές δοµές και αλγόριθµοι πίνακες (arrays) λίστες, στοίβες, ουρές, ουρές προτεραιότητας,... γραφήµατα 6 / 24

Υπόβαθρο - Γραφήµατα Εικόνα 1 Εικόνα 2 Εικόνα 3 Εικόνα 4 7 / 24

Στόχοι Μαθήµατος Τεχνικές και ιδιότητες για σχεδιασµό, αποτελεσµατική υλοποίηση, ϱύθµιση (fine tuning), αποσφαλµάτωση, και εκτενή πειραµατική αξιολόγηση αλγορίθµων Ορθότητα υλοποιήσεων - Προγράµµατα πιστοποίησης (Certifying programs) Πλατφόρµες/Βιβλιοθήκες Λογισµικού Μεθοδολογικά Ϲητήµατα στην πειραµατική έρευνα αλγορίθµων και δοµών δεδοµένων διαδικασία µετατροπής απαιτήσεων χρήστη σε αποδοτικές αλγοριθµικές λύσεις και υλοποιήσεις 8 / 24

Πρακτικά Ζητήµατα Επικουρικό Εργο Ανδρέας Παρασκευόπουλος & Γιώργος Μιχαλόπουλος Μεταπτυχιακοί Φοιτητές Τµήµα Μηχ/κων Υπολογιστών & Πληροφορικής Πανεπιστήµιο Πατρών email: {paraskevop,michalog}@ceid.upatras.gr 9 / 24

Πρακτικά Ζητήµατα Ιστοσελίδα Μαθήµατος ΠΠΣ: www.ceid.upatras.gr/webpages/faculty/zaro/teaching/alg-eng/ ΠΜΣ: www.ceid.upatras.gr/webpages/faculty/zaro/teaching/adv-alg-eng/ Βιβλιογραφία Υλικό παραδόσεων και ϕροντιστηρίων Λίστα ηλεκτρονικού ταχυδροµείου Αλλο χρήσιµο υλικό 10 / 24

Πρακτικά Ζητήµατα Πλάνο Μαθήµατος ιαλέξεις ευτέρα, ώρα 15:00-17:00, Β3 Τετάρτη, ώρα 13:00-15:00, Β3 Εργαστήριο: 2-3 προγραµµατιστικές ασκήσεις Παρουσίαση Εξειδικευµένου Θέµατος / Ερευνητικής Εργασίας Μεταπτυχιακοί: υποχρεωτική Προπτυχιακοί: προαιρετική Τελική Εξέταση: τελική εργασία (υλοποίηση και γραπτή αναφορά) Τελικός Βαθµός Τ.Β. Προπτυχ. = (0.3 Βαθ. Ασκ.) + (0.7 Βαθ. Τελ. Εξετ.) Τ.Β. Μεταπτυχ. = (0.3 Βαθ. Ασκ.)+(0.2 Βαθ. Παρ.)+(0.5 Βαθ. Τελ. Εξετ.) 11 / 24

Πρακτικά Ζητήµατα Προγραµµατιστικές Ασκήσεις Υποχρεωτικές και ϑα µετράνε 30% στον τελικό ϐαθµό Λεπτοµέρειες ϑα ανακοινωθούν αργότερα στην ιστοσελίδα του µαθήµατος Συνεργασία δεν συνιστάται. Μπορεί να γίνει αποδεκτή αν δηλωθεί ΚΑΙ αριθµός ϕοιτητών 2 C++ compiler (diogenis): g++/gcc (GCC) 4.4.7. 12 / 24

Υλη Υλοποίηση & Πειραµατική Ερευνα Αλγορίθµων: Κίνητρα και Στόχοι Μεθοδολογία πειραµατικής έρευνας αλγορίθµων Ανάγκη και Χρησιµότητα Βιβλιοθηκών Λογισµικού Αλγορίθµων & οµών εδοµένων οκιµή προγραµµάτων (program testing) Ελεγχος Ορθότητας προγραµµάτων (correctness checking) Πειραµατικη αξιολόγηση αλγορίθµων & δοµών δεδοµένων Περιβάλλοντα υλοποίησης: C++, STL, LEDA, BOOST 13 / 24

Υλη Περίπτωση Μελέτης LEDA - Library for Efficient Data types & Algorithms Τύποι δεδοµένων και προδιαγραφές τους Βασικοί σχεδιαστικοί κανόνες και λεπτοµέρειες υλοποίησης τύπων δεδοµένων Ελεγχος ορθότητας προγράµµατος Προηγµένες δοµές δεδοµένων Γραφήµατα και αλγόριθµοι γραφηµάτων (συντοµότερες διαδροµές, ϱοές, κλπ.) Graphwin 14 / 24

Βιβλιογραφία Τεχνολογίες Υλοποίησης Αλγορίθµων K. Mehlhorn and S. Naeher, LEDA: A platform for combinatorial and geometric computing, Cambridge University Press, 1999. M. Mueller-Hannemann and S. Schirra, Algorithm Engineering, LNCS Vol. 5971, Springer, 2010. C.C. McGeoch, A Guide to Experimental Algorithmics, Cambridge University Press, 2012. Αλγόριθµοι και οµές εδοµένων R. Ahuja, T. Magnanti, and J. Orlin, Network Flows, Prentice-Hall, 1993. T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Εισαγωγή στους Αλγορίθµους, ελληνική έκδοση, Πανεπιστηµιακές Εκδόσεις Κρήτης, 2012. J. Kleinberg and E. Tardos, Σχεδιασµός Αλγορίθµων, ελληνική έκδοση, Εκδόσεις Κλειδάριθµος, 2008. R.E. Tarjan, Data Structures and Network Algorithms, SIAM, 1983. 15 / 24

Βιβλιογραφία Υλοποίηση Αλγορίθµων & οµών εδοµένων J. Siek, A. Lumsdaine, L. Lee, The Boost Graph Library: User Guide and Reference Manual, Addison Wesley, 2002. A. Alexandrescu, Modern C++ design: Programming and Design Patterns Applied, Addison-Wesley, 2001. N. Jossutis, The C++standard library: a tutorial and a reference, Addison Wesley Longman, 1999. D. Abrahams and A. Gurtovoy, C++ Template Metaprogramming : Concepts, Tools, and Techniques from Boost and Beyond, Addison-Wesley, 2004. T. Budd, Data structures in C++ using the standard template library, Addison-Wesley, 1998. M.A. Weiss, Data structures and problem solving with C++, 2nd Edition, Addison-Wesley, 2000. 16 / 24

Βιβλιογραφία Γλώσσα C++ A. Koenig and B. Moo, Accelerated C++, Addison-Wesley, 2000. S.B. Lippman and J. Lajoie, C++ Primer, 3rd Edition, Addison-Wesley, 1998. H.M. Deitel and P.J. Deitel, C++: How to Program, 2nd Edition, Prentice-Hall, 1998. S. Meyers, Effective C++, 2nd Edition, Addison-Wesley, 1997. I. Pohl, Object-Oriented Programming using C++, 2nd Edition, Addison-Wesley, 1997. B. Stroustrup, The C++ Programming Language, 3rd Edition, Addison-Wesley, 1997. 17 / 24

Βιβλιογραφία - Αντικειµενοστρεφής Προγραµµατισµός T. Budd, An Introduction to Object-Oriented Programming, 2nd Edition, Addison-Wesley, 1997. E. Gamma, R. Helms, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995. G. Booch, Object Oriented Design with Applications, 2nd Edition, Benjamin Cummings, 1994. B. Meyer, Object Oriented Software Construction, Prentice-Hall, 1988. J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorenson, Object Oriented Modelling and Design, Prentice Hall, 1991. 18 / 24

Τέλος Ενότητας 19 / 24

Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν έργο αποτελεί την έκδοση 1.0. 20 / 24

Σηµείωµα Ιστορικού Εκδόσεων Εργου Copyright Πανεπιστήµιο Πατρών, Χρήστος Ζαρολιάγκης, 2014. «Τεχνολογίες Υλοποίησης Αλγορίθµων». Εκδοση: 1.0. Πάτρα 2014. ιαθέσιµο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1084 21 / 24

Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν υλικό διατίθεται µε τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εµπορική Χρήση, Οχι Παράγωγα Εργα 4.0 [1] ή µεταγενέστερη, ιεθνής Εκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ϕωτογραφίες, διαγράµµατα κ.λ.π., τα οποία εµπεριέχονται σε αυτό. [1] http://creativecommons.org/licenses/by-nc-nd/4.0 Ως Μη Εµπορική ορίζεται η χρήση: που δεν περιλαµβάνει άµεσο ή έµµεσο οικονοµικό όφελος από την χρήση του έργου, για το διανοµέα του έργου και αδειοδόχο που δεν περιλαµβάνει οικονοµική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανοµέα του έργου και αδειοδόχο έµµεσο οικονοµικό όφελος (π.χ. διαφηµίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος µπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιµοποιεί το έργο για εµπορική χρήση, εφόσον αυτό του Ϲητηθεί. 22 / 24

Πηγές εικόνων - Χρήση Εργων Τρίτων Εικόνα 1: http://commons.wikimedia.org/wiki/file:international_e_road_network.png Εικόνα 2: http://freedesignfile.com/upload/2012/09/internet-concept-4.jpg Εικόνα 3: http://commons.wikimedia.org/wiki/file:social_network.png Εικόνα 4: http://en.wikipedia.org/wiki/pagerank#mediaviewer/file:pagerank-hi-res.png 23 / 24

ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει : το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους 24 / 24