Top Banner
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Β. ΖΗΣΙΜΟΠΟΥΛΟΣ ΑΘΗΝΑ 2004 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Β. ΖΗΣΙΜΟΠΟΥΛΟΣ ΑΘΗΝΑ 2011
22

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Dec 26, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

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

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

ΑΛΓΟΡΙΘΜΟΙΚΑΙ

ΠΟΛΥΠΛΟΚΟΤΗΤΑ

Β. ΖΗΣΙΜΟΠΟΥΛΟΣ

ΑΘΗΝΑ2004

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

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

ΑΛΓΟΡΙΘΜΟΙΚΑΙ

ΠΟΛΥΠΛΟΚΟΤΗΤΑ

Β. ΖΗΣΙΜΟΠΟΥΛΟΣ

ΑΘΗΝΑ2011

Page 2: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

• Η λέξη “αλγόριθμος” προέρχεται από– Τη λέξη άλγος; – Τον Muhamed Ibn Musa Al Khov

Warizmi– Κανένα από τα 2

Ερώτηση

Page 3: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&
Page 4: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

**** [1] Th. H. Cormen, CH. E. Leiserson, R. L. Rivest and C. Stein, Introduction to algorithms, MIT-Press, 1991 (1er edition), 2001 (2nd edition), 2009 (3rd edition) + translation in greek (2007). ***http://mitpress.mit.edu/algorithms/

*** [2] S. Dasgupta, C. H. Papadimitriou & U. V. Vazirani, Algorithms, McGraw-Hill, 2008

*** [3] Jon Kleinberg & Eva Tardos, Algorithm Design, Addison – Wesley, 2006

[4] R. Sedgewick, Algorithms in C, Addison – Wesley, 2nd ed., 1998.

[5] S. S. Skiena, The algorithm design manuel, Springer – Verlag, 1998.

Βιβλιογραφία

Page 5: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Εξέταση

1. Π: Πρόοδος 25%40%

2. Ε: 3 Εργασίες 15%

3. Γ: Γραπτή εξέταση: 60%Tελικός βαθμός: 0.25Π+0.15Ε+0.60Γ

Πληροφορίες• www.di.uoa.gr/~vassilis/

Announcements (for student) Αλγόριθμοι και ΠολυπλοκότηταTeaching Algorithms and Complexity

Page 6: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Ροές Μαθημάτων

Διακριτάμαθηματικά

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

Δομέςδεδομένων

Θεωρίαγράφων

Συνδυαστικήβελτιστοποίηση

Αλγοριθμικήεπιχειρησιακήέρευνα

Page 7: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

NP- complete

Προβλήματα αγνώστουκατάστασης

P

NP

Τα προβλήματα

Page 8: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Αποτίμηση της επίδοσης ενός Αλγορίθμου;***

Σύγκριση 2 αλγορίθμων που επιλύουν το ίδιοπρόβλημα; ***

Ανάπτυξη ενός «καλού» αλγορίθμου για έναπρόβλημα; ***

Στόχοι

Page 9: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Γενικά, ένας αλγόριθμος επεξεργάζεταιπληροφορίες + …***

Η έννοια του αλγορίθμου

Page 10: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

πρόγραμμα → αλγόριθμος

αλγόριθμος → πρόγραμμα

Για τη συνέχεια : αλγόριθμος↓↑

πρόγραμμα

?

Κάθε αλγόριθμος είναι προγραμματίσιμος?

Page 11: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Ψευδογλώσσα

• Πίνακας με ονόματα σε αλφαβητική σειρά (όπως οτηλεφωνικός κατάλογος)

• Αλγόριθμος (αναζητούμενο στοιχείο: x)repeat

Σύγκριση του αναζητούμενου στοιχείου με το μεσαίοστοιχείο

Αν είναι μικρότερο τότε συνεχίζουμε την

αναζήτηση στο πρώτο ήμισυ

διαφορετικά συνεχίζουμε στο δεύτερο

until (x=μεσαίο στοιχείο ή πίνακας κενός)

Page 12: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

•Ένα πρόγραμμα χρήσιμο→ σε «λογικό» χρόνο→ «λογικό» χώρο μνήμης

Απόδοση αλγορίθμου

Πολυπλοκότητα αλγορίθμουχρόνος εκτέλεσηςαπαιτούμενη μνήμη

Απόδοση αλγορίθμου

Page 13: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Πρόβλημα 1Δεδομένα: n ακέραιοι, a[1], a[2],…a[n]Ζητούμενο: Να ταξινομήσουμε τους ακεραίους κατά

αύξουσα τάξη.Πρόβλημα 2Δεδομένα: n αντικείμενα, c[i], w[i] και ένα σακκίδιο

χωριτικότητας bΖητούμενο: Επιλογή των χρησιμότερων αντικειμένων

που χωράνε στο b

Τα προβλήματα

Page 14: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Πρόβλημα 1: n και οι συγκεκριμένοι ακέραιοι

Πρόβλημα 2: n, c(i), w(i), b

Η έννοια του στιγμιοτύπου

Page 15: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Πρόβλημα 1: n, το πλήθος αριθμών

Πρόβλημα 2: n, το πλήθος αντικειμένων

Πρόβλημα 3: K x K ***

Η διάσταση του προβλήματος

Page 16: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Αποτίμηση της αποδοτικότητας τουαλγορίθμου σε ΧΡΟΝΟ καιΜΝΗΜΗ

• Μονάδα μέτρησης (ουσιώδηςπράξη: σταθερός χρόνος).

• Συνάρτηση της διάστασης τωνδεδομένων.

Η έννοια της πολυπλοκότητας:

Page 17: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Πρόβλημα:Δεδομένα: Ένας πίνακας S στοιχείων

α1, α2,.., αn και ένα στοιχείο x.

Ζητούμενο: το στοιχείο x είναι μέσα στο S καιαν NAI, σε ποία θέση;

Τρεις τύποι πολυπλοκότητας

Page 18: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

i:=1;while i≠ n+1 and ai≠x do i:=i+1;if i>n then Αναζήτηση απέτυχε

else στοιχείο x στη θέση i

Αναζήτηση (S,x);

Page 19: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Πολυπλοκότητα στη βέλτιστη των περιπτώσεων

Πολυπλοκότητα στη χείριστη των περιπτώσεων

Πολυπλοκότητα κατά μέσο όρο

Τρεις τύποι πολυπλοκότητας

Page 20: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

1) Cβπ (n)=minκόστος(d), dєDnπολυπλoκότητα στη βέλτιστη περίπτωση

2) Cχπ(n)=maxκόστος(d), dєDnπολυπλoκότητα στη χείριστη περίπτωση

3) 3) CCμμόόρορο((n)=n)=∑∑ p(dp(d) * ) * κόστοςκόστος((d)d)ddєєDnDn

Το σύνολο δεδομένων διάστασης n: Dn

όπουόπου p(dp(d) ) ηη πιθανότηταπιθανότητα τοτο δεδομένοδεδομένο dd ναναείναιείναι είσοδοςείσοδος τουτου ΑΑ ((πολυπλoκότητα στη μέσηπερίπτωση))

Page 21: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

Αριθμητικό γινόμενο δύο διανυσμάτων

Α=(αi) και B=(bi) του Rn, A• B=∑ακ•bκnn

k=1k=1

:

Παράδειγμα

Page 22: ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/11L01-analysingAlgorithms.pdf · 2011-02-17 · Αλγόριθμοι&

sp:=0;for k=1 to n do

sp:=sp+(ακ• bκ);Αριθμητικό Γινομενο:=sp

Αριθμητικό Γινόμενο (A, B:vectors)