ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ...
TRANSCRIPT
![Page 1: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/1.jpg)
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
ΤΜΗΜΑΠΛΗΡΟΦΟΡΙΚΗΣΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
ΤΜΗΜΑΠΛΗΡΟΦΟΡΙΚΗΣ
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝΑΛΓΟΡΙΘΜΟΙ
ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ
ΠΟΛΥΠΛΟΚΟΤΗΤΑ
Β ΖΗΣΙΜΟΠΟΥΛΟΣ
Β. ΖΗΣΙΜΟΠΟΥΛΟΣ
ΑΘΗΝΑΒ. ΖΗΣΙΜΟΠΟΥΛΟΣ
ΑΘΗΝΑ
ΑΘΗΝΑ2012
ΑΘΗΝΑ2004
![Page 2: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/2.jpg)
Ερώτηση
• Η λέξη “αλγόριθμος” προέρχεται από – Τη λέξη άλγος; – Τον Muhamed Ibn Musa Al KhovΤον Muhamed Ibn Musa Al Khov
WarizmiΚανένα από τα 2– Κανένα από τα 2
![Page 3: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/3.jpg)
![Page 4: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/4.jpg)
Βιβλιογραφία
**** [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αλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/5.jpg)
ΕξέτασηΕξέταση
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αλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/6.jpg)
Ροές ΜαθημάτωνΡοές Μαθημάτων
Διακριτά μαθηματικά
Δομές δεδομένωνμ ημ
Αλγόριθμοι &
μ
γ ρ μπολυπλοκότητα
Θεωρία γράφων
Αλγοριθμική επιχειρησιακή έρευνα
Συνδυαστική
έρευνα
βελτιστοποίηση
![Page 7: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/7.jpg)
Τα προβλήματα
NP- complete
Προβλήματα αγνώστουΠροβλήματα αγνώστου κατάστασης
P
NP7019, 5683--39888977
NP
![Page 8: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/8.jpg)
Στόχοι
Αποτίμηση της επίδοσης ενός Αλγορίθμου;******
Σύγκριση 2 αλγορίθμων που επιλύουν το ίδιο πρόβλημα; ***πρόβλημα;
Α ά ξ ό λ ύ λ ίθ έΑνάπτυξη ενός «καλού» αλγορίθμου για ένα πρόβλημα; ***
![Page 9: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/9.jpg)
Η έννοια του αλγορίθμουΗ έννοια του αλγορίθμου
Γενικά, ένας αλγόριθμος επεξεργάζεται λ ίπληροφορίες + …
***
![Page 10: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/10.jpg)
Κάθε αλγόριθμος είναι προγραμματίσιμος?
πρόγραμμα → αλγόριθμος
αλγόριθμος → πρόγραμμα?
αλγόριθμος → πρόγραμμα
Για τη συνέχεια : αλγόριθμος↓↑↓↑
πρόγραμμαρ γρ μμ
![Page 11: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/11.jpg)
Ψευδογλώσσα
• Πίνακας με ονόματα σε αλφαβητική σειρά (ό• Πίνακας με ονόματα σε αλφαβητική σειρά (όπως ο τηλεφωνικός κατάλογος)
• Αλγόριθμος ( ζ ύ ί : x)• Αλγόριθμος (αναζητούμενο στοιχείο: x)repeat
ΣύΣύγκριση του αναζητούμενου στοιχείου με το μεσαίο στοιχείο
Α ί όΑν είναι μικρότερο τότε συνεχίζουμε την
αναζήτηση στο πρώτο ήμισυ
διαφορετικά συνεχίζουμε στο δεύτερο
until (x=μεσαίο στοιχείο ή πίνακας κενός)until (x μεσαίο στοιχείο ή πίνακας κενός)
![Page 12: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/12.jpg)
Απόδοση αλγορίθμου
•Ένα πρόγραμμα χρήσιμο
η γ ρ μ
•Ένα πρόγραμμα χρήσιμο
σε «λογικό» χρόνο→ σε «λογικό» χρόνο→ «λογικό» χώρο μνήμης
Απόδοση αλγορίθμου
Πολυπλοκότητα αλγορίθμου χρόνος εκτέλεσηςαπαιτούμενη μνήμημ η μ ήμη
![Page 13: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/13.jpg)
Τα προβλήματαρ β ήμ
Πρόβλημα 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αλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/14.jpg)
Η έννοια του στιγμιοτύπουγμ
Πρόβλημα 1: n και οι συγκεκριμένοι ακέραιοιΠρόβλημα 1: n και οι συγκεκριμένοι ακέραιοι
Πρόβλημα 2: n, c(i), w(i), b
![Page 15: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/15.jpg)
Η διάσταση του προβλήματοςμ ς
Πρόβλημα 1: n, το πλήθος αριθμών
Πρόβλημα 2: n, το πλήθος αντικειμένων
Πρόβλημα 3: K x K ***Πρόβλημα 3: K x K ***
![Page 16: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/16.jpg)
Η έννοια της πολυπλοκότητας:
Αποτίμηση της αποδοτικότητας του αλγορίθμου σε ΧΡΟΝΟ και ΜΝΗΜΗ
• Μονάδα μέτρησης (ουσιώδης μ ρη ης ( ηςπράξη: σταθερός χρόνος).
• Συνάρτηση της διάστασης των• Συνάρτηση της διάστασης των δεδομένων.
![Page 17: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/17.jpg)
Τρεις τύποι πολυπλοκότηταςΤρεις τύποι πολυπλοκότητας
Πρόβλημα:Δεδομένα: Ένας πίνακας S στοιχείων
α1 α2 α και ένα στοιχείο xα1, α2,.., αn και ένα στοιχείο x.
Ζητούμενο: το στοιχείο x είναι μέσα στο S και αν NAI, σε ποία θέση;αν NAI, σε ποία θέση;
![Page 18: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/18.jpg)
Αναζήτηση (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αλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/19.jpg)
Τρεις τύποι πολυπλοκότηταςΤρεις τύποι πολυπλοκότητας
Πολυπλοκότητα στη βέλτιστη των περιπτώσεων
Πολυπλοκότητα στη χείριστη των περιπτώσεωνΠολυπλοκότητα στη χείριστη των περιπτώσεων
Πολυπλοκότητα κατά μέσο όρο
![Page 20: ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙcgi.di.uoa.gr/~vassilis/ac/12L01-analysingAlgorithms.pdfαλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/20.jpg)
Το σύνολο δεδομένων διάστασης 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αλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/21.jpg)
Παράδειγμαρ γμ
Αριθμητικό γινόμενο δύο διανυσμάτων
:
Αριθμητικό γινόμενο δύο διανυσμάτων
Α=(α ) και 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αλγόριθμος→πρόγραμμα? Γιατησυνέχεια:](https://reader034.vdocuments.mx/reader034/viewer/2022050608/5faf306b11647c1e2f4a2926/html5/thumbnails/22.jpg)
Αριθμητικό Γινόμενο (A, B:vectors)ρ μη μ ( , )
sp:=0;for k=1 to n dofor k 1 to n do
sp:=sp+(ακ• bκ);Αριθμητικό Γινομενο:=sp