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

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

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

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

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

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

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

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

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

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

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

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

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

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

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

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

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1

για NP-Δύσκολα Προβλήματα

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

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

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

περιεχόμενα υπολογιστικό πρόβλημα αλγόριθμοι παράδειγμα ταξινόμησης ταξινόμηση αλγόριθμοι τεχνολογία αλγορίθμων Παύλος Εφραιμίδης

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

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

JDSL Java Data Structures Library

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Αλγόριθµοι Προσέγγισης για NP- ύσκολα Προβλήµατα

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

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

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

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

ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΠΟΙΚΙΑΣ ΜΥΡΜΗΓΚΙΩΝ ANT COLONY OPTIMIZATION METHODS

Ορισμένες Κατηγορίες Αλγορίθμων

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Οργάνωση Γεωγραφικών. πληροφοριών

Branch and Bound. Branch and Bound

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

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

Σήμερα. Εργαστήρια Τεχνικών Προγραμματισμού. Διαδικαστικά 19/3/2015. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

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

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

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

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΕΠΛ 003.3: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Για οικονομολόγους

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 12 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μοντελοποίηση προβληµάτων

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

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

Παναγιώτης Καρακώστας (mai1321) ΠΜΣ Εφαρμοσμένης Πληροφορικής Συστήματα Υπολογιστών Πανεπιστήμιο Μακεδονίας

Εφαρμογές Υπολογιστικής Νοημοσύνης στις Ασύρματες Επικοινωνίες

Κλάσεις Πολυπλοκότητας

Μαθηµατική. Μοντελοποίηση

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

Μηχανική Μάθηση Μερωνυµιών για Αναγνώριση Γεγονότων

I student. Μεθοδολογική προσέγγιση και απαιτήσεις για την ανάπτυξη των αλγορίθμων δρομολόγησης Χρυσοχόου Ευαγγελία Επιστημονικός Συνεργάτης ΙΜΕΤ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ

Ολοκληρωµένα συστήµατα διαχείρισης κρίσεων δασικών πυρκαγιών: το σύστηµα firementor

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Ακαδημαϊκό έτος Α εξάμηνο (χειμερινό)

Αλγόριθµοι Γραφηµάτων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

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

Chapter 6. Problem Solving and Algorithm Design. Στόχοι Ενότητας. Επίλυση προβληµάτων. Εισαγωγή. Nell Dale John Lewis

Αξιολόγηση Ευριστικών Αλγορίθµων

Διαχείριση Εφοδιαστικής Αλυσίδας

On line αλγόριθμοι δρομολόγησης για στοχαστικά δίκτυα σε πραγματικό χρόνο

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

ΠαράδειγµαΠρογραµµατισµού

Προσεγγιστικοί Αλγόριθμοι

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ

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

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

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Transcript:

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

Ενότητα 2 Τεχνολογίες Υλοποίησης Αλγορίθµων (Algorithm Engineering) Τι είναι Κίνητρα και Στόχοι Βιβλιοθήκες Λογισµικού Αλγορίθµων και οµών εδοµένων Ανάγκη και Χρησιµότητα Εργαλεία Τεχνολογιών Υλοποίησης Αλγορίθµων 2 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων (Algorithm Engineering) Modelling with realistic computer models Algorithm Design Experimentation Applications Analysis Implementation Libraries Συστηµατικό πλαίσιο αντιµετώπισης της διαδικασίας µετατροπής (ϑεωρητικώς) αποδοτικών αλγορίθµων και δοµών δεδοµένων σε χρήσιµο λογισµικό 3 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Ασυµπτωτική ανάλυση ( Asymptopia ) 4 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Ασυµπτωτική ανάλυση ( Asymptopia ) Μπορεί να αφορά µόνο εξαιρετικά µεγάλα µεγέθη προβληµάτων, εκτός κάθε λογικά πρακτικής εφαρµογής 4 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Ασυµπτωτική ανάλυση ( Asymptopia ) Μπορεί να αφορά µόνο εξαιρετικά µεγάλα µεγέθη προβληµάτων, εκτός κάθε λογικά πρακτικής εφαρµογής Μπορεί να κρύβει τεράστιες σταθερές 4 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Παράδειγµα 1 Ελάχιστο Γεννητικό ένδρο: Fredman & Tarjan (FT) vs Prim 5 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Παράδειγµα 1 Ελάχιστο Γεννητικό ένδρο: Fredman & Tarjan (FT) vs Prim Αλγόριθµος FT, χρονικής πολυπλοκότητας O(mβ(m, n)), ασυµπτωτικά αποδοτικότερος αλγορίθµου Prim, χρονικής πολυπλοκότητας O(m log n) 5 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Παράδειγµα 1 Ελάχιστο Γεννητικό ένδρο: Fredman & Tarjan (FT) vs Prim Αλγόριθµος FT, χρονικής πολυπλοκότητας O(mβ(m, n)), ασυµπτωτικά αποδοτικότερος αλγορίθµου Prim, χρονικής πολυπλοκότητας O(m log n) Πειραµατική µελέτη [Moret & Shapiro, 1995] έδειξει ότι ο αλγόριθµος FT είναι καλύτερος στην πράξη από τον αλγόριθµο Prim µόνο για τεράστια και πυκνά γραφήµατα µε n 10 6 5 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Παράδειγµα 2 Ελεγχος ελάσσονος γραφήµατος είναι ένα δεδοµένο γράφηµα G ελάσσον (minor) ενός άλλου γραφήµατος H; G H διαγραφή διακεκοµένων ακµών και συρρίκνωση γκρίζας ακµής 6 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (1) Παράδειγµα 2 Ελεγχος ελάσσονος γραφήµατος είναι ένα δεδοµένο γράφηµα G ελάσσον (minor) ενός άλλου γραφήµατος H; G H διαγραφή διακεκοµένων ακµών και συρρίκνωση γκρίζας ακµής Αλγόριθµος Robertson & Seymour, χρονικής πολυπλοκότητας O(n 3 ): η «κρυµµένη» σταθερά είναι 10 150 6 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (2) Απόδοση Χειρότερης Περίπτωσης vs Απόδοση στην Πράξη 7 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (2) Απόδοση Χειρότερης Περίπτωσης vs Απόδοση στην Πράξη Πολλοί αλγόριθµοι έχουν πολύ καλύτερη συµπεριφορά από αυτήν που εκφράζει η ΠΧΠ τους Φράγµατα ΠΧΠ: µπορεί να υποεκτιµούν την χρήση των αλγορίθµων στην πράξη 7 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (2) Απόδοση Χειρότερης Περίπτωσης vs Απόδοση στην Πράξη Πολλοί αλγόριθµοι έχουν πολύ καλύτερη συµπεριφορά από αυτήν που εκφράζει η ΠΧΠ τους Φράγµατα ΠΧΠ: µπορεί να υποεκτιµούν την χρήση των αλγορίθµων στην πράξη Παράδειγµα Η µέθοδος Simplex για επίλυση προβληµάτων γραµµικού προγραµµατισµού ΠΧΠ εκθετική πολυωνυµική στην πράξη 7 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (3) Πρακτικά Προβλήµατα vs NP-δυσκολία 8 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (3) Πρακτικά Προβλήµατα vs NP-δυσκολία Πολλές πρακτικές εφαρµογές απαιτούν την επίλυση NP-δύσκολων προβληµάτων 8 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (3) Πρακτικά Προβλήµατα vs NP-δυσκολία Πολλές πρακτικές εφαρµογές απαιτούν την επίλυση NP-δύσκολων προβληµάτων Η ασυµπτωτική ανάλυση δεν προσφέρει ικανοποιητικές απαντήσεις για την επίλυση ενός NP-δύσκολου προβλήµατος στην πράξη 8 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (3) Πρακτικά Προβλήµατα vs NP-δυσκολία Πολλές πρακτικές εφαρµογές απαιτούν την επίλυση NP-δύσκολων προβληµάτων Η ασυµπτωτική ανάλυση δεν προσφέρει ικανοποιητικές απαντήσεις για την επίλυση ενός NP-δύσκολου προβλήµατος στην πράξη Παράδειγµα Πρόβληµα περιοδεύοντος πωλητή (Travelling Salesman Problem) Πρόβληµα δροµολόγησης στόλου οχηµάτων (Vehicle Routing Problem) 8 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Ελλειψη χρονικών φραγµάτων ή ποιότητας λύσης 9 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Ελλειψη χρονικών φραγµάτων ή ποιότητας λύσης αλγόριθµοι χωρίς 9 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Ελλειψη χρονικών φραγµάτων ή ποιότητας λύσης αλγόριθµοι χωρίς αποδεδειγµένα (αυστηρά) ασυµπτωτικά χρονικά ϕράγµατα (π.χ. άγνωστης πολυπλοκότητας) 9 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Ελλειψη χρονικών φραγµάτων ή ποιότητας λύσης αλγόριθµοι χωρίς αποδεδειγµένα (αυστηρά) ασυµπτωτικά χρονικά ϕράγµατα (π.χ. άγνωστης πολυπλοκότητας) αποδεδειγµένες (ϑεωρητικές) εγγυήσεις για την ποιότητα των λύσεων που υπολογίζουν 9 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Ελλειψη χρονικών φραγµάτων ή ποιότητας λύσης αλγόριθµοι χωρίς αποδεδειγµένα (αυστηρά) ασυµπτωτικά χρονικά ϕράγµατα (π.χ. άγνωστης πολυπλοκότητας) αποδεδειγµένες (ϑεωρητικές) εγγυήσεις για την ποιότητα των λύσεων που υπολογίζουν Ευρετικοί ή εµπειρικοί αλγόριθµοι 9 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Παράδειγµα 1 Ελαχιστοποίηση τοµών ακµών στον σχεδιασµό διµερών γραφηµάτων 10 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Παράδειγµα 1 Ελαχιστοποίηση τοµών ακµών στον σχεδιασµό διµερών γραφηµάτων Πειραµατική µελέτη [Demetrescu & Finocchi, 2000] έδειξε ότι ένας αλγόριθµος χωρίς ϑεωρητικά αποδεδειγµένο σταθερό λόγο προσέγγισης υπολογίζει λύσεις µε λιγότερες τοµές από αλγορίθµους µε (αποδεδειγµένα) µικρό και σταθερό λόγο προσέγγισης 10 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Παράδειγµα 2 Πλήρως δυναµική προσβασιµότητα (fully dynamic reachability) σε κατευθυνόµενα γραφήµατα 11 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (4) Παράδειγµα 2 Πλήρως δυναµική προσβασιµότητα (fully dynamic reachability) σε κατευθυνόµενα γραφήµατα Πειραµατική µελέτη [Krommudas & Zaroliagis, 2005] έδειξε ότι αλγόριθµοι µε µη ϑεωρητικά αποδεδειγµένες χρονικές πολυπλοκότητες υπερτερούν αλγορίθµων µε τις (ϑεωρητικά) καλύτερες χρονικές πολυπλοκότητες 11 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (5) Νέοι αλγόριθµοι βασίζονται σε προηγούµενους 12 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (5) Νέοι αλγόριθµοι βασίζονται σε προηγούµενους Υλοποίηση και πρακτική αξιολόγηση: δύσκολο έργο 12 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (5) Νέοι αλγόριθµοι βασίζονται σε προηγούµενους Υλοποίηση και πρακτική αξιολόγηση: δύσκολο έργο Πρέπει πρώτα να υλοποιηθούν διάφορα στρώµατα προηγούµενων (πιθανών πολύπλοκων) αλγορίθµων και δοµών δεδοµένων 12 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (6) Εµπλουτισµός κώδικα υλοποίησης αλγορίθµων µε ευρετικές µεθόδους 13 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (6) Εµπλουτισµός κώδικα υλοποίησης αλγορίθµων µε ευρετικές µεθόδους Μπορεί να επιταχύνει σηµαντικά την υλοποίηση στην πράξη, παρόλο που µπορεί να µη ϐελτιώνει την ασυµπτωτική συµπεριφορά του αλγορίθµου 13 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (6) Εµπλουτισµός κώδικα υλοποίησης αλγορίθµων µε ευρετικές µεθόδους Μπορεί να επιταχύνει σηµαντικά την υλοποίηση στην πράξη, παρόλο που µπορεί να µη ϐελτιώνει την ασυµπτωτική συµπεριφορά του αλγορίθµου Παραδείγµατα Αλγόριθµοι Εύρεσης Συντοµότερων ιαδροµών Αλγόριθµοι Εύρεσης Μέγιστης Ροής 13 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (7) Εκτέλεση πειραµάτων 14 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (7) Εκτέλεση πειραµάτων Ενα προσεκτικά διαµορφωµένο σύνολο δεδοµένων δοκιµής συχνά ϐοηθάει στην διασφάλιση της ορθότητας µιας υλοποίησης 14 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (7) Εκτέλεση πειραµάτων Ενα προσεκτικά διαµορφωµένο σύνολο δεδοµένων δοκιµής συχνά ϐοηθάει στην διασφάλιση της ορθότητας µιας υλοποίησης Συλλογή στιγµιοτύπων στα οποία κάποιος κώδικας έχει εσφαλµένη συµπεριφορά είναι χρήσιµα για έλεγχο µελλοντικών υλοποιήσεων 14 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: σταθερές 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: σταθερές περιορισµοί πραγµατικού περιβάλλοντος 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: σταθερές περιορισµοί πραγµατικού περιβάλλοντος τοπικότητα αναφορών (locality of references) 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: σταθερές περιορισµοί πραγµατικού περιβάλλοντος τοπικότητα αναφορών (locality of references) επηρεασµός λανθάνουσας µνήµης (cache effects) 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: σταθερές περιορισµοί πραγµατικού περιβάλλοντος τοπικότητα αναφορών (locality of references) επηρεασµός λανθάνουσας µνήµης (cache effects) πολυπλοκότητα επικοινωνίας 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: σταθερές περιορισµοί πραγµατικού περιβάλλοντος τοπικότητα αναφορών (locality of references) επηρεασµός λανθάνουσας µνήµης (cache effects) πολυπλοκότητα επικοινωνίας... 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Κίνητρα (8) Μέτρηση σηµαντικών δεικτών απόδοσης Παραδείγµατα σηµαντικών δεικτών απόδοσης: σταθερές περιορισµοί πραγµατικού περιβάλλοντος τοπικότητα αναφορών (locality of references) επηρεασµός λανθάνουσας µνήµης (cache effects) πολυπλοκότητα επικοινωνίας... µπορεί να είναι πολύ δύσκολο να προβλεφθούν ϑεωρητικά, αλλά µπορούν να µετρηθούν πειραµατικά (και µε ακρίβεια) 15 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (1) 16 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (1) Παροχή ϐιβλιοθηκών υψηλής ποιότητας που παρέχουν αποδοτικές και αξιόπιστες υλοποιήσεις αλγορίθµων και δοµών δεδοµένων 16 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (2) 17 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (2) Ανάπτυξη συστηµάτων λογισµικού για την υποστήριξη της διαδικασίας υλοποίησης, αποσφαλµάτωσης, και πειραµατικής αξιολόγησης αλγορίθµων Περιβάλλοντα λογισµικού Προγράµµατα αποσφαλµάτωσης υψηλού-επιπέδου Εργαλεία οπτικοποίησης Περιβάλλοντα προσοµοίωσης και δοκιµών 17 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (3) 18 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (3) Προσδιορισµός δεδοµένων δοκιµής για την (όσο το δυνατόν) καλύτερη αξιολόγηση των υλοποιηµένων αλγορίθµων Τυχαία δεδοµένα Συνθετικά δεδοµένα Πραγµατικά δεδοµένα 18 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (4) 19 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (4) Εκτέλεση συγκριτικών πειραµατικών µελετών για τον προσδιορισµό της καλύτερης υλοποίησης µιας δεδοµένης εφαρµογής 19 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (4) Εκτέλεση συγκριτικών πειραµατικών µελετών για τον προσδιορισµό της καλύτερης υλοποίησης µιας δεδοµένης εφαρµογής Εντοπισµός αλγορίθµων-διαχωριστών: αλγορίθµων που εµφανίζουν σαφώς διαφορετική συµπεριφορά σε διαφορετικούς τύπους και µεγέθη εισόδων 19 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (4) Εκτέλεση συγκριτικών πειραµατικών µελετών για τον προσδιορισµό της καλύτερης υλοποίησης µιας δεδοµένης εφαρµογής Εντοπισµός αλγορίθµων-διαχωριστών: αλγορίθµων που εµφανίζουν σαφώς διαφορετική συµπεριφορά σε διαφορετικούς τύπους και µεγέθη εισόδων Προσδιορισµός µεθοδολογιών για αποδοτική υλοποίηση και χρήσιµη πειραµατική αξιολόγηση αλγορίθµων 19 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (5) 20 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (5) Ελεγχος ορθότητας προγραµµάτων 20 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Στόχοι (5) Ελεγχος ορθότητας προγραµµάτων Ανάπτυξη προγραµµάτων πιστοποίησης ( certifying programms): πιστοποιούν την ορθότητα της υλοποίησης 20 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Αλλοι Στόχοι 21 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Αλλοι Στόχοι Εµπειρική αξιολόγηση ευρετικών µεθόδων για υπολογιστικά (π.χ. NP-δύσκολα) προβλήµατα 21 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Αλλοι Στόχοι Εµπειρική αξιολόγηση ευρετικών µεθόδων για υπολογιστικά (π.χ. NP-δύσκολα) προβλήµατα Χαρακτηρισµός ασυµπτωτικής συµπεριφοράς πολύπλοκων αλγορίθµων 21 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Αλλοι Στόχοι Εµπειρική αξιολόγηση ευρετικών µεθόδων για υπολογιστικά (π.χ. NP-δύσκολα) προβλήµατα Χαρακτηρισµός ασυµπτωτικής συµπεριφοράς πολύπλοκων αλγορίθµων Προσδιορισµός επιτάχυνσης παράλληλων αλγορίθµων 21 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Αλλοι Στόχοι Εµπειρική αξιολόγηση ευρετικών µεθόδων για υπολογιστικά (π.χ. NP-δύσκολα) προβλήµατα Χαρακτηρισµός ασυµπτωτικής συµπεριφοράς πολύπλοκων αλγορίθµων Προσδιορισµός επιτάχυνσης παράλληλων αλγορίθµων Μελέτη ιεραρχιών µνήµης και επίδραση επικοινωνίας σε πραγµατικά περιβάλλοντα 21 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Αλλοι Στόχοι Εµπειρική αξιολόγηση ευρετικών µεθόδων για υπολογιστικά (π.χ. NP-δύσκολα) προβλήµατα Χαρακτηρισµός ασυµπτωτικής συµπεριφοράς πολύπλοκων αλγορίθµων Προσδιορισµός επιτάχυνσης παράλληλων αλγορίθµων Μελέτη ιεραρχιών µνήµης και επίδραση επικοινωνίας σε πραγµατικά περιβάλλοντα Πρόβλεψη απόδοσης αλγορίθµων 21 / 26

Τεχνολογίες Υλοποίησης Αλγορίθµων Αλλοι Στόχοι Εµπειρική αξιολόγηση ευρετικών µεθόδων για υπολογιστικά (π.χ. NP-δύσκολα) προβλήµατα Χαρακτηρισµός ασυµπτωτικής συµπεριφοράς πολύπλοκων αλγορίθµων Προσδιορισµός επιτάχυνσης παράλληλων αλγορίθµων Μελέτη ιεραρχιών µνήµης και επίδραση επικοινωνίας σε πραγµατικά περιβάλλοντα Πρόβλεψη απόδοσης αλγορίθµων Εύρεση περιορισµών ή σηµείων συµφόρησης σε πραγµατικές εφαρµογές 21 / 26

Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων Ανάγκη & Χρησιµότητα 22 / 26

Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων Ανάγκη & Χρησιµότητα Βασική προϋπόθεση επίτευξης των στόχων των Τεχνολογιών Υλοποίησης Αλγορίθµων 22 / 26

Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων Ανάγκη & Χρησιµότητα Βασική προϋπόθεση επίτευξης των στόχων των Τεχνολογιών Υλοποίησης Αλγορίθµων Ευκολότερος (και καλύτερος) σχεδιασµός και ανάπτυξη λογισµικού αλγορίθµων (π.χ. έτοιµοι ενσωµατωµένοι τύποι δεδοµένων για πολύπλοκες συνδυαστικές δοµές) 22 / 26

Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων Ανάγκη & Χρησιµότητα Βασική προϋπόθεση επίτευξης των στόχων των Τεχνολογιών Υλοποίησης Αλγορίθµων Ευκολότερος (και καλύτερος) σχεδιασµός και ανάπτυξη λογισµικού αλγορίθµων (π.χ. έτοιµοι ενσωµατωµένοι τύποι δεδοµένων για πολύπλοκες συνδυαστικές δοµές) Επαναχρησιµοποίηση κώδικα πολύ ευκολότερη υλοποίηση πολύπλοκων αλγορίθµων 22 / 26

Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων Ανάγκη & Χρησιµότητα Βασική προϋπόθεση επίτευξης των στόχων των Τεχνολογιών Υλοποίησης Αλγορίθµων Ευκολότερος (και καλύτερος) σχεδιασµός και ανάπτυξη λογισµικού αλγορίθµων (π.χ. έτοιµοι ενσωµατωµένοι τύποι δεδοµένων για πολύπλοκες συνδυαστικές δοµές) Επαναχρησιµοποίηση κώδικα πολύ ευκολότερη υλοποίηση πολύπλοκων αλγορίθµων Χρήση αποδοτικών, αξιόπιστων και καλά δοκιµασµένων αλγορίθµων, οι οποίοι (αρκετά συχνά) είναι οι καλύτεροι που υπάρχουν 22 / 26

Εργαλεία Τεχνολογιών Υλοποίησης Αλγορίθµων (1) Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων 23 / 26

Εργαλεία Τεχνολογιών Υλοποίησης Αλγορίθµων (1) Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων LEDA (Library for Efficient Data types and Algorithms) http://www.algorithmic-solutions.com/ 23 / 26

Εργαλεία Τεχνολογιών Υλοποίησης Αλγορίθµων (1) Βιβλιοθήκες/Περιβάλλοντα Λογισµικού Αλγορίθµων LEDA (Library for Efficient Data types and Algorithms) http://www.algorithmic-solutions.com/ Boost C++ Library http://www.boost.org/ 23 / 26

Εργαλεία Τεχνολογιών Υλοποίησης Αλγορίθµων (2) Συλλογές-Αποθετήρια Αλγορίθµων Stony Brook Algorithm Repository http://www3.cs.stonybrook.edu/ algorith/ CATS (Combinatorial Algorithms Test Sets) - παρωχηµένο εδοµένα οκιµών Stanford GraphBase http://www3.cs.stonybrook.edu/ algorith/implement/ graphbase/implement.shtml Netlib http://www.netlib.org/ Αλλα Συστήµατα Λογισµικού Συστήµατα οπτικοποίησης αλγορίθµων (algorithm animation): Tango, Leonardo, Catai, Polka, ZStep95, Eliot, Pavane,... ιάφορα εκπαιδευτικά περιβάλλοντα αλγορίθµων 24 / 26

Σύνοψη Τεχνολογίες Υλοποίησης Αλγορίθµων: µια νέα µέθοδος ανάπτυξης αλγορίθµων Βιβλιοθήκες/περιβάλλοντα λογισµικού: κλειδί για τις τεχνολογίες υλοποίησης αλγορίθµων 25 / 26

Ερωτήσεις ; 26 / 26