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



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

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομημένος Προγραμματισμός ΙΙΙ - Java

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

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

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

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

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

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ

Κεφάλαιο 4. Άπληστοι Αλγόριθµοι (Greedy Algorithms) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Δομές Δεδομένων. Παύλος Εφραιμίδης

οµηµένος Προγραµµατισµός ΙΙΙ - Java Παύλος Εφραιµίδης οµηµένος Προγρ. ΙΙΙ - 1 Java Το Μάθηµα

οµηµένος Προγραµµατισµός ΙΙΙ - Java

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

Αλγόριθμοι. Μάρθα Σιδέρη. epl333 lect

Σχεδίαση & Ανάλυση Αλγορίθμων

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

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

Κεφάλαιο 1. Εισαγωγή: Κάποια Αντιπροσωπευτικά Προβλήµατα. Έκδοση 1.3, 29/02/2012. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

Το µάθηµα Αντικείµενο-Περιεχόµενα µαθήµατος Τρόπος ιδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2

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

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

Δομές Δεδομένων. Ενότητα 2: Περισσότερα για τους δείκτες. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

Κεφάλαιο 3. Γραφήματα. ver. 21/12/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Θεωρία Γραφημάτων 10η Διάλεξη

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

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

Ακέραιος Γραµµικός Προγραµµατισµός

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Ακέραιος Γραµµικός Προγραµµατισµός

Το πρόβλημα του σταθερού γάμου

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Βασικές Έννοιες Δοµών Δεδοµένων

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

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

d(v) = 3 S. q(g \ S) S

Θεωρία Γραφημάτων 6η Διάλεξη

Θεωρία Γραφημάτων 9η Διάλεξη

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

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

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

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

q(g \ S ) = q(g \ S) S + d = S.

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

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διάλεξη 7: X Y Σχήμα 7.2: Παράδειγμα για το Πόρισμα 7.2, όπου: 1 = {1, 2, 5}, 2 = {1, 2, 3}, 3 = {4}, 4 = {1, 3, 4}. Θ

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

Εισαγωγή στο Σχεδιασμό και την Ανάλυση Αλγορίθμων

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

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

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

Γραμμικός Προγραμματισμός

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Ενότητα 3: Διαχείριση μνήμης. Δρ. Γεώργιος Σίσιας Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Αλγόριθμοι Γράφων. Κεφάλαιο Διάσχιση γράφων Γενικά Αναζήτηση κατά πλάτος (Breadth First Search)

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

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

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

Μαθηματικά Πληροφορικής

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

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

Δομές Δεδομένων (Data Structures)

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθµων. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ Λ03Β ΑΛΓΟΡΙΘΜΟΙ ΔΙΚΤΥΩΝ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΦΛΕΒΑΡΗΣ 2004

Transcript:

Αλγόριθμοι και Πολυπλοκότητα Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Βιβλιογραφία Jon Kleinberg και Éva Tardos, Σχεδιασμός αλγορίθμων, Εκδόσεις Κλειδάριθμος, 2008 Sanjoy Dasgupta, Christos Papadimitriou και Umesh Vazirani, Αλγόριθμοι, Εκδόσεις Κλειδάριθμος, 2008 Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, Third Edition, MIT Press, 2009 Kurt Mehlhorn and Peter Sanders, Algorithms and Data Structures: The basic toolbox, Springer, 2008 Το μάθημα θα βασιστεί στο πρώτο βιβλίο, το οποίο και προτείνω να διαλέξετε. Χαροκόπειο Πανεπιστήμιο 2/14

Αντιπροσωπευτικά Προβλήματα Θα δούμε σύντομα τους ορισμούς μερικών βασικών και αντιπροσωπευτικών αλγοριθμικών προβλήματων. Χρονοπρογραμματισμός Διαστημάτων Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Διμερές Ταίριασμα Ανεξάρτητο Σύνολο Χαροκόπειο Πανεπιστήμιο 3/14

Χρονοπρογραμματισμός Διαστημάτων Έχουμε ένα πόρο (π.χ αίθουσα, υπερυπολογιστή, κ.τ.λ) και αιτήματα χρήσης του πόρου αυτού της μορφής (s, f) -- αίτημα χρήσης του πόρου από την ώρα s μέχρι την ώρα f. Ο πόρος χρησιμοποιείται το πολύ από ένα άτομο τη φορά. Το ζητούμενο είναι να διαλέξουμε ένα υποσύνολο των αιτημάτων, που να μην επικαλύπτονται χρονικά, και να μεγιστοποιηθεί ο αριθμός των αιτημάτων που θα γίνουν αποδεκτά. Χαροκόπειο Πανεπιστήμιο 4/14

Χρονοπρογραμματισμός Διαστημάτων Θα δούμε σύντομα πως το πρόβλημα λύνεται αποδοτικά με ένα αλγόριθμο που ανήκει στην κατηγορία των "άπληστων αλγορίθμων" (greedy algorithms). Χαροκόπειο Πανεπιστήμιο 5/14

Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων Γενίκευση του προηγούμενου προβλήματος όπου κάθε αίτημα i με περιορισμούς (s i, f i ) έχει μια βαρύτητα v i > 0 (weight). Στόχος είναι να βρούμε ένα συμβατό υποσύνολο αιτημάτων με μέγιστη συνολική τιμή. Η πιο γενική αυτή μορφή δεν λύνεται πλέον με "άπληστο" αλγόριθμο. Θα χρησιμοποιήσουμε μια τεχνική, το δυναμικό προγραμματισμό (dynamic programming), που δομεί τη βέλτιστη τιμή πάνω σε όλες τις δυνατές λύσεις με ένα συμπαγή, πινακοποιημένο τρόπο ο οποίος οδηγεί σε έναν πολύ αποδοτικό αλγόριθμο. Χαροκόπειο Πανεπιστήμιο 6/14

Διμερές Ταίριασμα Ένα γράφημα G(V, E) είναι διμερές (bipartite) αν το σύνολο των κόμβων του V μπορεί να διαμεριστεί σε σύνολα A και B με τέτοιο τρόπο ώστε η κάθε ακμή να έχει το ένα άκρο στο A και το άλλο στο B. a 1 b 1 a 2 b 2 a 3 b 3 a 4 b 4 Χαροκόπειο Πανεπιστήμιο 7/14

Διμερές Ταίριασμα Ένα ταίριασμα (matching) σε ένα γράφημα G(V, E) είναι ένα σύνολο ακμών M E με την ιδιότητα ότι κάθε κόμβος εμφανίζεται το πολύ σε μια ακμή του M. Το M είναι ένα τέλειο ταίριασμα αν κάθε κόμβος εμφανίζεται σε μία μόνο ακμή του M. Με ταιριάσματα μοντελοποιούμε προβλήματα ανάθεσης, για παράδειγμα ανάθεση υπολογιστικών εργασιών σε υπολογιστές όπου μια ακμή υποδηλώνει την ικανότητα του εκάστοτε υπολογιστή να διεκπεραιώσει την λειτουργία. Χαροκόπειο Πανεπιστήμιο 8/14

Διμερές Ταίριασμα πρόβλημα Διμερούς Ταιριάσματος (Bipartite matching problem) Δεδομένου ενός διμερούς γραφήματος G, βρείτε ένα ταίριασμα μέγιστου μεγέθους. Θα δούμε μια κομψή και αποδοτική τεχνική για την εύρεση του μέγιστου ταιριάσματος η οποία με επαγωγικό τρόπο δομεί όλο και μεγαλύτερα ταιριάσματα. Χαροκόπειο Πανεπιστήμιο 9/14

Ανεξάρτητο Σύνολο Δεδομένου ενός γραφήματος G = (V, E) λέμε ότι ένα σύνολο κόμβων S V είναι ανεξάρτητο (independent) αν δεν υπάρχουν στο S κόμβοι που να ενώνονται ανά δύο με μια ακμή. Το πρόβλημα Ανεξάρτητου Συνόλου είναι το εξής: Δεδομένου ενός γραφήματος G, βρείτε ένα ανεξάρτητο σύνολο που να είναι όσο το δυνατόν μεγαλύτερο. Χαροκόπειο Πανεπιστήμιο 10/14

Ανεξάρτητο Σύνολο Το πρόβλημα κωδικοποιεί καταστάσεις όπου θέλουμε να επιλέξουμε αντικείμενα από μια συλλογή αντικειμένων και υπάρχουν κατά ζεύγη διενέξεις μεταξύ ορισμένων αντικειμένων. Το πρόβλημα είναι ένα εξαιρετικά γενικό πρόβλημα. Τα προβλήματα χρονοπρογραμματισμού διαστημάτων και το διμερές ταίριασμα μπορούν να λυθούν ως ειδικές περιπτώσεις του προβλήματος αυτού. Χαροκόπειο Πανεπιστήμιο 11/14

Ανεξάρτητο Σύνολο 1 2 3 4 5 6 7 Έστω το παραπάνω γράφημα Χαροκόπειο Πανεπιστήμιο 12/14

Ανεξάρτητο Σύνολο 1 2 3 4 5 6 7 Το παραπάνω σύνολο είναι ανεξάρτητο με μέγεθος 3. Χαροκόπειο Πανεπιστήμιο 12/14

Ανεξάρτητο Σύνολο 1 2 3 4 5 6 7 Το παραπάνω σύνολο είναι μέγιστο ανεξάρτητο με μέγεθος 4 Χαροκόπειο Πανεπιστήμιο 12/14

Χρονοπρογραμματισμός Διαστημάτων και Ανεξάρτητο Σύνολο Ορίζουμε ένα γράφημα G όπου οι κόμβοι είναι τα χρονικά διαστήματα και υπάρχει ακμή μεταξύ δύο κόμβων εάν τα αντίστοιχα διαστήματα επικαλύπτονται. Τα ανεξάρτητα σύνολα του G είναι τα συμβατά υποσύνολα των χρονικών διαστημάτων. Εαν βρούμε ένα μέγιστο ανεξάρτητο υποσύνολο τότε έχουμε βρει και ένα μέγιστο συμβατό υποσύνολο διαστημάτων. Χαροκόπειο Πανεπιστήμιο 13/14

Ανεξάρτητο Σύνολο Κατάσταση Λύσης Προς το παρόν δεν είναι γνωστός κάποιος αποδοτικός αλγόριθμος για το πρόβλημα του ανεξάρτητου συνόλου Εικάζεται πως δεν υπάρχει τέτοιος αλγόριθμος Ο προφανής αλγόριθμος "ωμής βίας" (brute force) που ελέγχει όλα τα δυνατά υποσύνολα κόμβων και διαλέγει το μεγαλύτερο ανεξάρτητο, είναι πολύ αργός και πιθανώς το καλύτερο δυνατό. Το πρόβλημα ανήκει σε μια μεγάλη κατηγορία προβλημάτων που ονομάζονται NP-πλήρη. Δεν είναι γνωστός κανένας αποδοτικός αλγόριθμος για κανένα από αυτά τα προβλήματα, τα οποία είναι όλα ισοδύναμα με την έννοια πως ένας αποδοτικός αλγόριθμος για ένα από αυτά θα υπονοούσε έναν αποδοτικό αλγόριθμο για όλα. Χαροκόπειο Πανεπιστήμιο 14/14