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

ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

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

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

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

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

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

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

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

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

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

ΑΘΗΝΑΒ. ΖΗΣΙΜΟΠΟΥΛΟΣ

ΑΘΗΝΑ

ΑΘΗΝΑ2012

ΑΘΗΝΑ2004

Page 2: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

Ερώτηση

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

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

Page 3: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:
Page 4: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

**** [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/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/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

ΕξέτασηΕξέταση

1 Π Π ό δ 30%1. Π: Πρόοδος 30%50%

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

3. Γ: Γραπτή εξέταση: 50%Tελικός βαθμός: 0.30Π+0.20Ε+0.50Γ

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

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

Page 6: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

Αλγόριθμοι &

μ

γ ρ μπολυπλοκότητα

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

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

Συνδυαστική

έρευνα

βελτιστοποίηση

Page 7: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

NP- complete

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

P

NP7019, 5683--39888977

NP

Page 8: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

Στόχοι

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

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

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

Page 9: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

***

Page 10: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

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

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

πρόγραμμαρ γρ μμ

Page 11: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

Ψευδογλώσσα

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

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

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

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

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

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

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

Page 12: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

•Ένα πρόγραμμα χρήσιμο

η γ ρ μ

•Ένα πρόγραμμα χρήσιμο

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

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

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

Page 13: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

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

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

Page 14: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

Page 15: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

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

Page 16: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

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

Page 17: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

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

Page 18: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

i:=1;while i≠ n+1 and ai≠x do i:=i+1;while i≠ n 1 and ai≠x do i: i 1;

if i>n then Αναζήτηση απέτυχεelse στοιχείο x στη θέση i

Page 19: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

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

Page 20: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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

3) 3) CCμόρομόρο((n)=n)=∑∑ p(d) * p(d) * κόστος(κόστος(d)d)dєDndєDn

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

Page 21: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

Παράδειγμαρ γμ

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

:

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

Α=(α ) και B=(b ) του Rn A• B=∑α •bnn

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

Page 22: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:

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

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

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