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



Σχετικά έγγραφα
ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

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

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

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

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

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

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

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

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

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

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

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

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

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

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

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

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

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

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

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

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

Chapter 7, 8 : Time, Space Complexity

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα

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

Εξαντλητική Απαρίθµηση

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

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

Βασικά Στοιχεία Πολυπλοκότητας

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

Chapter 9: NP-Complete Problems

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

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

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

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Δυναμικός Προγραμματισμός

Κλάση NP, NP-Complete Προβλήματα

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

Δυναμικός Προγραμματισμός

W i. Subset Sum Μια παραλλαγή του προβλήματος knapsack είναι το πρόβλημα Subset Sum, το οποίο δεν λαμβάνει υπόψιν την αξία των αντικειμένων:

L A P. w L A f(w) L B (10.1) u := f(w)

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

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

Δυναμικός Προγραμματισμός

Chapter 7, 8 : Time, Space Complexity

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

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

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Μη Ντετερμινισμός και NP-Πληρότητα

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

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

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

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

Θεωρία Υπολογισµού Theory of Computation

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

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

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

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

Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυϊκότητα. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 1/12/2016

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

t M (w) T ( w ) O( n) = O(n 2 )

Ευρετικές Μέθοδοι. Ενότητα 1: Εισαγωγή στις ευρετικές μεθόδους. Άγγελος Σιφαλέρας. Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΙ

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

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

HY118-Διακριτά Μαθηματικά

Δυσεπίλυτα Προβλήματα σε Γραφήματα και Παίγνια

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη

ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΑΚ. ΕΤΟΣ ΔΙΑΛΕΞΗ 6 η -Η ΔΥΙΚΗ ΜΕΘΟΔΟΣ SIMPLEX

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

Δομές Δεδομένων Ενότητα 2

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

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

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

Στοχαστικές Στρατηγικές

ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ & ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ. ΕΞΕΤΑΣΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ Έβδομο Εξάμηνο

ILP-Feasibility conp

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

Transcript:

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 1 Άγγελος Σιφαλέρας sifalera@uom.gr 4 η Διάλεξη

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 2 Knapsack Problem, (1/9) Ένας επενδυτής διαθέτει ένα χρηματικό ποσό b και εξετάζει την υλοποίηση n διαφορετικών επενδύσεων. Η επένδυση i = 1,..,n απαιτεί κόστος c i και αποφέρει κέρδος p i. Κάθε επένδυση μπορεί είτε να γίνει ολικά ή καθόλου, δηλαδή δεν είναι εφικτή η μερική υλοποίηση της. Ο επενδυτής θέλει να αποφασίσει ποιες επενδύσεις να χρηματοδοτήσει, ούτως ώστε το συνολικό κέρδος του να μεγιστοποιηθεί, χωρίς το συνολικό ποσό που απαιτείται για την υλοποίηση των επιλεγμένων επενδύσεων να υπερβαίνει το ύψος του διαθέσιμου προϋπολογισμού. Για τη μορφοποίηση αυτού του προβλήματος ορίζουμε δυαδικές μεταβλητές απόφασης: x i 1, εάν η επένδυση i υλοποιηθεί = 0, αλλιώς

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 3 Knapsack Problem, (2/9) Η μαθηματική μορφοποίηση του προβλήματος είναι: max z= s.t. x j i i {0,1} px i i cx i i b Σε περίπτωση που μια επένδυση μπορεί να υλοποιηθεί περισσότερες από μια φορές, τότε η αντίστοιχη μεταβλητή απόφασης δεν είναι δυαδική, αλλά μπορεί να πάρει οποιαδήποτε μη αρνητική ακέραια τιμή. Το πρόβλημα του σακιδίου είναι από τα πιο ευρέως χρησιμοποιούμενα προβλήματα στην περιοχή του μαθηματικού προγραμματισμού και βρίσκει εφαρμογές σε συστήματα επικοινωνιών, μεταφορών, παραγωγής κ.α.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 4 Knapsack Problem, παράδειγμα (3/9) Έστω ότι ένας διαρρήκτης ο οποίος έχει ένα σακίδιο το οποίο σηκώνει μέχρι και 100kg, επιθυμεί να κλέψει κάποια από τα παρακάτω αντικείμενα τα οποία βρίσκει σε ένα σπίτι: i 1 2 3 4 5 6 7 8 p i 15 100 90 60 40 15 10 1 c i 2 20 20 30 40 30 60 10 Ποια αντικείμενα θα έπρεπε να επιλέξει? (Αντίστοιχο κλασικό παράδειγμα υπάρχει και με ορειβάτη ο οποίος κουβαλάει το σακίδιο του )

Knapsack Problem, εφαρμογή (4/9) Έστω ότι έχουμε υπολογίσει n αρχεία δεδομένων αποτελεσμάτων (output files), τα οποία θέλουμε να αποθηκεύσουμε, αλλά έχουμε διαθέσιμο αποθηκευτικό χώρο μονάχα W bytes. Κάθε αρχείο i έχει μέγεθος w i bytes και απαιτεί p i λεπτά να υπολογιστεί ξανά από την αρχή. Επιθυμούμε να αποφύγουμε, όσο είναι δυνατόν, το γεγονός να τα επαναϋπολογίσουμε, όποτε χρειαζόμαστε να βρούμε ένα υποσύνολο αυτών των αρχείων αποτελεσμάτων τα οποία και θα αποθηκεύσουμε έτσι ώστε: Το συνολικό μέγεθος των επιλεγμένων αρχείων να μην ξεπερνάει τα W bytes. O συνολικός χρόνος υπολογισμού των αποθηκευμένων αρχείων να είναι όσο το δυνατόν μεγαλύτερος. Δεν μπορούμε να αποθηκεύσουμε μόνο ένα μέρος από το κάθε αρχείο, παρά μόνο ολόκληρο ή καθόλου. Άρα, με ποιόν τρόπο θα πρέπει να επιλέξουμε τα αρχεία? Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 5

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 6 Knapsack Problem, με πολλαπλούς περιορισμούς (5/9) Εάν υπάρχουν περισσότεροι από ένας περιορισμοί (π.χ., ένα όριο στο συνολικό όγκο και ένα όριο στο βάρος των αντικειμένων, όπου όμως ο όγκος και το βάρος ενός αντικειμένου δεν σχετίζονται), προκύπτει το knapsack problem με πολλαπλούς περιορισμούς, multi-dimensional knapsack problem, ή m-dimensional knapsack problem. Σε αυτήν την κατηγορία προβλημάτων δεν αναφερόμαστε στο σχήμα των αντικειμένων. Αυτό το πρόβλημα έχει διάφορες παραλλαγές, όπως π.χ. με μεταβλητές που λαμβάνουν δυαδικές τιμές, ή με μεταβλητές, φραγμένες ή μη, που παίρνουν ακέραιες τιμές, όπως για παράδειγμα: max z = n j= 1 n s.t. wx W, 1 i m j= 1 j j ij j i x Ν, 1 j n j px

Knapsack-like Problems, bin packing problem (6/9) Εάν έχουμε έναν αριθμό φορτηγών οχημάτων (containers) ιδίου μεγέθους, και επιθυμούμε να στοιβάξουμε όλα τα n αντικείμενα (π.χ., παλέτες προϊόντων) σε όσο το δυνατόν λιγότερα φορτηγά οχήματα, το πρόβλημα που προκύπτει αναφέρεται στη βιβλιογραφία ως bin packing problem. Η μαθηματική του μορφοποίηση περιλαμβάνει δυαδικές μεταβλητές αποφάσεων: y i =1 ή 0, εφόσον το i φορτηγό όχημα χρησιμοποιείται ή όχι αντίστοιχα: min z = s.t. n i= 1 n j= 1 n i= 1 x ij y i wx x ij j ij y = 1 W yi { } [ n] [ n], 0,1 i i 1, (containers), j 1, (items) Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 7

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 8 Knapsack-like Problems, bin packing problem (7/9) Για παράδειγμα, όταν ένα ferry boat φορτώνεται, οι στρατηγικές με τις οποίες χωρούν τα περισσότερα οχήματα σε κάθε ταξίδι μειώνει τους χρόνους αναμονής και κάνουν τη βέλτιστη χρήση των διαθέσιμων πόρων.

Knapsack Problem, βιβλιογραφία (8/9) Hans Kellerer, Ulrich Pferschy & David Pisinger, Knapsack Problems, Springer, 2010. Silvano Martello & Paolo Toth, Knapsack Problems: Algorithms and Computer Implementations, Wiley-Interscience Series in Discrete Mathematics and Optimization, 1990. Εφαρμογές στην κρυπτογραφία: Merkle, Ralph and Martin Hellman, (1978) Hiding information and signatures in trapdoor knapsacks, IEEE Transactions on Information Theory, 24(5), 525-530. Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 9

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 10 Knapsack Problem, μέθοδοι επίλυσης (9/9) Πλήρη απαρίθμηση (brute force): Δοκιμάζουμε όλους τους πιθανούς συνδυασμούς αντικειμένων. Πόσοι είναι? Υπάρχουν 2 n πιθανοί συνδυασμοί αντικειμένων Quiz: Έστω ότι, έχουμε στη διάθεση μας έναν σύγχρονο Η/Υ με επεξεργαστή τελευταίας γενιάς ο οποίος διενεργεί τον κάθε έλεγχο σε 10-6 δευτερόλεπτα. Πόσο υπολογιστικό χρόνο εκτιμάτε ότι απαιτείται για την επίλυση ενός στιγμιότυπου προβλήματος με n = 40 μεταβλητές? Υπάρχουν καλύτερες μέθοδοι επίλυσης από τη μέθοδο πλήρη απαρίθμησης? Απάντηση: Δυναμικός προγραμματισμός.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 11 Ανάλυση Αλγορίθμων & Υπολογιστική Πολυπλοκότητα Εισαγωγή Προβλήματα Υπολογιστικά προβλήματα Στιγμιότυπα περιπτώσεις Διάσταση προβλήματος: αριθμός που δηλώνει πόσο μεγάλο είναι ένα πρόβλημα. Ασυμπτωτικός ρυθμός αύξησης (Asymptotic growth rate): Ένας τρόπος σύγκρισης συναρτήσεων που αγνοεί σταθερές και δεδομένα εισόδου μικρής διάστασης. Ορισμός: Δοθέντων δυο κατάλληλων συναρτήσεων g(n) και h(n) θα συμβολίζουμε με Θ(h(n), g(n)) το σύνολο των συναρτήσεων t(n) για τις οποίες υπάρχουν σταθερές Α, B > 0 τέτοιες ώστε να ισχύει η σχέση: Βh(n) t(n) Ag(n), για n = 1, 2,

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 12 Μεγάλο Θήτα (Big-theta) Θ( g(n) ): σύνολο συναρτήσεων t(n) που οι τιμές τους αυξάνουν με τον ίδιο ρυθμό όπως η g(n). n o t(n) Θ( g(n) ) ή Βg(n) t(n) Αg(n)

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 13 Μεγάλο Όμικρον (Big-oh) O( g(n) ): σύνολο συναρτήσεων t(n) που οι τιμές τους αυξάνουν όχι γρηγορότερα από την g(n). n o t(n) Θ( 0, g(n) ) ή t(n) O( g(n) ) ή t(n) Ag(n)

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 14 Μεγάλο Ωμέγα (Big-omega) Ω( g(n) ): σύνολο συναρτήσεων t(n) που οι τιμές τους αυξάνουν τουλάχιστον τόσο γρήγορα όπως η g(n). n o t(n) Θ( g(n), 0 ) ή t(n) Ω( g(n) ) ή Βg(n) t(n)

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 15 Εμπειρική πολυπλοκότητα Στην ανάλυση αυτή κατασκευάζονται με τον ηλεκτρονικό υπολογιστή ομάδες προβλημάτων με ποικίλες (συνήθως αυξανόμενες) διαστάσεις. Τα προβλήματα κάθε ομάδας λύνονται με διαφορετικούς αλγόριθμους και υπολογίζονται οι μέσοι χρόνοι κάθε ομάδας για κάθε αλγόριθμο. Συγκρίνοντας τους μέσους χρόνους καθώς η διάσταση αυξάνει, είναι δυνατόν να εξάγουμε συμπεράσματα για τη σχετική αποτελεσματικότητα των αλγόριθμων.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 16 Παράδειγμα υπολογιστικής μελέτης σε matlab (1/4) Κατασκευή με Η/Υ ομάδων προβλημάτων με αυξανόμενες διαστάσεις. Τα προβλήματα κάθε ομάδας λύνονται με διαφορετικούς αλγόριθμους και υπολογίζονται οι μέσοι χρόνοι κάθε ομάδας για κάθε αλγόριθμο. Σύγκριση των μέσων χρόνων καθώς η διάσταση αυξάνει. Εξαγωγή συμπερασμάτων για τη σχετική αποτελεσματικότητα των αλγόριθμων.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 17 Παράδειγμα υπολογιστικής μελέτης σε matlab (2/4) Κατασκευή 10 ομάδων προβλημάτων, με αυξανόμενες διαστάσεις από 1.000 έως 10.000, με βήμα 1.000. Για κάθε ομάδα, δημιουργούμε 5 στιγμιότυπα. Τα 10 * 5 = 50 διαφορετικά προβλήματα θα λυθούν με 3 διαφορετικούς αλγόριθμους ταξινόμησης και θα υπολογιστούν οι μέσοι χρόνοι κάθε ομάδας για κάθε αλγόριθμο. Γράφημα που καταδεικνύει τη σύγκριση των μέσων χρόνων, καθώς η διάσταση αυξάνει.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 18 Παράδειγμα υπολογιστικής μελέτης σε matlab (3/4) function study cpu_selectsort = [ ]; cpu_bubblesort = [ ]; cpu_insertsort = [ ] ; for i = 1000 : 1000 : 10000 cpu_instance_selectsort = 0 ; cpu_instance_bubblesort = 0 ; cpu_instance_insertsort = 0 ; for j = 1:5 A = round(1000 * rand(1,i) ) ; [T, time] = selectsort(a) ; cpu_instance_selectsort = cpu_instance_selectsort + time ; [T, time] = bubblesort(a) ; cpu_instance_bubblesort = cpu_instance_bubblesort + time ; [T, time] = insertsort(a) ; cpu_instance_insertsort = cpu_instance_insertsort + time ; end cpu_instance_selectsort = cpu_instance_selectsort / 5 ; cpu_instance_bubblesort = cpu_instance_bubblesort / 5 ; cpu_instance_insertsort = cpu_instance_insertsort / 5 ; cpu_selectsort = [cpu_selectsort cpu_instance_selectsort] ; cpu_bubblesort = [cpu_bubblesort cpu_instance_bubblesort] ; cpu_insertsort = [cpu_insertsort cpu_instance_insertsort] ; end dimension = 1000 : 1000 : 10000; plot(dimension,cpu_selectsort, dimension,cpu_bubblesort, dimension,cpu_insertsort) hold on title( 'Computational Study' ) legend( 'selectsort', 'bubblesort', 'insertsort ) xlabel( 'Problem dimension ) ylabel( 'Time (secs)' )

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 19 Παράδειγμα υπολογιστικής μελέτης σε matlab (4/4)

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 20 Σύγκριση αλγόριθμων (1/3) Έστω ότι έχουμε δύο αλγόριθμους 1 και 2 με συναρτήσεις πολυπλοκότητας f(n) και g(n) αντίστοιχα. Γενικά πιο αποτελεσματικός είναι ο αλγόριθμος του οποίου η συνάρτηση πολυπλοκότητας αυξάνει με μικρότερη ταχύτητα καθώς n. Πιο συγκεκριμένα, για να βρούμε ποιος από τους δυο αλγόριθμους είναι πιο αποτελεσματικός εξετάζουμε το όριο f ( n) οριο n g( n) = a

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 21 Σύγκριση αλγόριθμων (2/3) i. Άν a = 0, ο αλγόριθμος 1 είναι πιο αποτελεσματικός από τον αλγόριθμο 2, ii. Άν 0 < a <, οι δυο αλγόριθμοι είναι το ίδιο αποτελεσματικοί, iii. Άν a =, ο αλγόριθμος 2 είναι πιο αποτελεσματικός από τον αλγόριθμο 1. Γενικότερα: Οι δυο αλγόριθμοι είναι το ίδιο αποτελεσματικοί, αν Θ(f(n)) = Θ(g(n)) παρότι και σ αυτούς τους αλγόριθμους μπορούν να υπάρξουν διαβαθμίσεις (δηλαδή, αν είναι a < 1, ο αλγόριθμος 1 είναι πιο αποτελεσματικός, ενώ αν είναι a >1, ο αλγόριθμος 2 είναι πιο αποτελεσματικός).

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 22 Σύγκριση αλγόριθμων (3/3) Αλγόριθμοι = Αποτελεσματικοί Άν η συνάρτηση πολυπλοκότητάς του, στην περίπτωση που είναι ομογενής ή η συνάρτηση πολυπλοκότητας χειρότερης περίπτωσης, στην περίπτωση που είναι μη ομογενής Θ(0, n k ), για κάποιο k > 0. Μη αποτελεσματικοί Διαφορετικά Οι αποτελεσματικοί αλγόριθμοι θα ονομάζονται πολυωνυμικοί ενώ οι μη αποτελεσματικοί θα ονομάζονται εκθετικοί.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 23 Αξία της ανάλυσης των αλγορίθμων (1/6) Πολύ σημαντική η αξία της ανάπτυξης αποτελεσματικών αλγόριθμων, (δηλαδή αλγόριθμων, των οποίων η συνάρτηση πολυπλοκότητας αυξάνει με «αργούς ρυθμούς» καθώς η διάσταση αυξάνει) Σκεφθείτε τους ρυθμούς αύξησης ορισμένων συναρτήσεων καθώς το όρισμα n αυξάνει! Ας το δούμε με ένα παράδειγμα

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 24 Αξία της ανάλυσης των αλγορίθμων (2/6) Έστω οι παρακάτω χαρακτηριστικές συναρτήσεις logn, n, n 3, n 5, 2 n και n! (Θα υποθέσουμε ότι είναι συναρτήσεις πολυπλοκότητας κάποιων αλγόριθμων, που εκτελούνται σε ένα υπολογιστή) Στον υπολογιστή αυτό ας κάνουμε την παραδοχή ότι εκτελείται κάθε τμήμα κώδικα πολυπλοκότητας Θ(1) σε ένα μικροδευτερόλεπτο (10-6 sec).

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 25 Αξία της ανάλυσης των αλγορίθμων (3/6) Ο αλγόριθμος πολυπλοκότητας n! λύνει τα προβλήματα διάστασης 10 σε χρόνο = (1*2*3* *10)*10-6 = 3,62 sec, Τα προβλήματα διάστασης 20 σε χρόνο = (1*2*3* *20)*10-6 = 2.432.902.008.176,64 sec = 40.548.366.802,94 λεπτά = 675.806.113,38 ώρες = 28.158.588,06 ημέρες = 77.146,82 χρόνια = 771,468 αιώνες Τα προβλήματα μεγαλύτερης διάστασης επιλύονται σε χρόνους που δεν μπορούν ούτε να υπολογιστούν Παρόμοια κατάσταση, αν και λίγο καλύτερη ισχύει για αλγόριθμους εκθετικής πολυπλοκότητας 2 n. Για παράδειγμα τα προβλήματα διάστασης 40 λύνονται σε 12,7 μέρες, και διάστασης 60 σε 366 αιώνες.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 26 Αξία της ανάλυσης των αλγορίθμων (4/6) Αντίθετα, η κατάσταση είναι πολύ πιο ευχάριστη για τις συναρτήσεις logn, n, n 3 και n 5. Για παράδειγμα για n = 60 οι αντίστοιχοι χρόνοι είναι 0.0000041 sec, 0.000006 sec, 0.216 sec και 13 λεπτά. Άρα: Οι αλγόριθμοι με συνάρτηση πολυπλοκότητας λογαριθμική ή πολυωνυμική είναι αποτελεσματικοί, ενώ οι αλγόριθμοι με συνάρτηση πολυπλοκότητας εκθετική ή παραγοντική δεν είναι καθόλου αποτελεσματικοί και δεν μπορούν να χρησιμοποιηθούν για επίλυση πρακτικών προβλημάτων.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 27 Αξία της ανάλυσης των αλγορίθμων (5/6) Όμως τι θα γίνει, όταν στο μέλλον κατασκευαστούν υπολογιστές, οι οποίοι είναι 100 ή 1000 φορές ταχύτεροι από τους σημερινούς? Αν ένας αλγόριθμος με συνάρτηση πολυπλοκότητας n 3 λύνει στους σημερινούς Η/Υ σε ένα συγκεκριμένο χρονικό διάστημα προβλήματα διάστασης m, σε Η/Υ 100 φορές ή ακόμη και 1000 φορές ταχύτερους στον ίδιο χρόνο τι διάστασης προβλήματα θα λύνει? Σε 100 φορές ταχύτερο Η/Υ, θα λύνουμε πρόβλημα διάστασης y = 4.64m, ενώ σε 1000 φορές ταχύτερο Η/Υ, θα λύνουμε πρόβλημα διάστασης y = 10m. Όσο ο βαθμός του πολυωνύμου μικραίνει τόσο αυξάνει ο αριθμός με τον οποίο πολλαπλασιάζεται η διάσταση. (Για παράδειγμα στις γραμμικές συναρτήσεις η διάσταση γίνεται 100m ενώ στις λογαριθμικές m 100 m 1000 γίνεται 1000m ).

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 28 Αξία της ανάλυσης των αλγορίθμων (6/6) Αντίθετα η αύξηση του μεγέθους των προβλημάτων για τις εκθετικές συναρτήσεις είναι (m + 6.6) για 100 φορές ταχύτερους και (m + 9.7) για 1000 φορές ταχύτερους υπολογιστές. Επομένως: Πρακτικά προβλήματα για τα οποία υπάρχουν μόνο εκθετικοί αλγόριθμοι δεν μπορούν να επιλυθούν ούτε αν κατασκευαστούν 1000 φορές πιο γρήγοροι υπολογιστές (κάτι που φαίνεται ότι δεν μπορεί να γίνει στο ορατό μέλλον). Η μόνη ελπίδα λοιπόν για την επίλυση αυτών των προβλημάτων είναι η ανάπτυξη αποτελεσματικών αλγορίθμων!

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 29 Βασικές Ασυμπτωτικές Κλάσεις Αποδοτικότητας Τι πολυπλοκότητα εμφανίζει ένας αλγόριθμος που εκτελείται σε χρόνο τάξης? 1 σταθερή log n n n log n n 2 n 3 n κ λογαριθμική γραμμική n log n τετραγωνική κυβική πολυωνυμική 2 n εκθετική n! παραγοντική

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 30 Παράδειγμα της αξίας Ανάλυσης Αλγορίθμων (1/2) a) Εάν αγοράσετε έναν Η/Υ που είναι 1.000 φορές ταχύτερος από αυτόν που διαθέτετε, πόσο ποιό μεγάλο μέγεθος συστημάτων θα λύνετε τώρα στον ίδιο χρόνο? Τωρινός Η/Υ 1 1 3 Νέος Η/Υ 1.000 3 n 3 1 3 x Άρα: 1 3 1 3 x = 1000 n 3 3 3 3 x 1000n x 10n = =

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 31 Παράδειγμα της αξίας Ανάλυσης Αλγορίθμων (2/2) Η Γκαουσιανή απαλοιφή (Gaussian elimination), ο κλασικός αλγόριθμος επίλυσης συστημάτων n γραμμικών εξισώσεων με n αγνώστους, απαιτεί περίπου (1/3)*n 3 πολλαπλασιασμούς, οι οποίοι είναι και η βασική λειτουργία του αλγορίθμου. b) Πόσο περισσότερο θα μεγαλώσει ο χρόνος εκτέλεσης του αλγορίθμου για ένα σύστημα των 1.000 εξισώσεων, σε σχέση με αυτόν που απαιτείται για ένα σύστημα των 500 εξισώσεων? 1 ( 2 n) 3 T(2 n) = 3 = 8 Tn ( ) 1 3 n 3

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 32 Παράδειγμα ρυθμού αύξησης της τάξης μεγέθους Για κάθε μια εκ των παρακάτω συναρτήσεων, υποδείξτε πόσο θα μεταβληθεί η τιμή τους, εάν το όρισμα τους τετραπλασιαστεί λοδ n, n, n, n 2, n 3, 2 n

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 33 Υπολογιστική πολυπλοκότητα (Computational Complexity) Ένας αλγόριθμος επιλύει ένα πρόβλημα σε πολυωνυμικό χρόνο, εάν η πολυπλοκότητα του της χειρότερης περίπτωσης ανήκει στην κλάση O( p(n) ), όπου p(n) είναι ένα πολυώνυμο του μεγέθους n της εισόδου του προβλήματος. Τα προβλήματα που μπορούν να επιλυθούν σε πολυωνυμικό χρόνο ονομάζονται βατά (tractable problems), ενώ αυτά που δεν μπορούν να επιλυθούν σε πολυωνυμικό χρόνο ονομάζονται μη-βατά (intractable problems). Η θεωρία της NP-πληρότητας εφαρμόζεται (τυπικά) σε προβλήματα αποφάσεων και όχι σε προβλήματα βελτιστοποίησης. Όμως, κάθε πρόβλημα βελτιστοποίησης είναι δυνατόν να το ανάγουμε σε ένα ισοδύναμο πρόβλημα απόφασης. Προβλήματα: Βελτιστοποίησης: λύση με βέλτιστη αντικειμενική τιμή. Απόφασης: απάντηση ΝΑΙ ή ΌΧΙ. Για παράδειγμα, το ισοδύναμο πρόβλημα απόφασης του προβλήματος του περιοδεύοντος πωλητή (TSP) είναι, δεδομένου ενός δικτύου G και ενός μηαρνητικού αριθμού k, εάν υπάρχει διαδρομή με συνολική απόσταση το πολύ k (?)

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 34 P, NP, και NP-πλήρη προβλήματα Η κλάση Ρ είναι εκείνη η κλάση των προβλημάτων απόφασης, τα οποία μπορούν να επιλυθούν σε πολυωνυμικό χρόνο, με τη χρήση αιτιοκρατικών (deterministic) αλγορίθμων. Η κλάση αυτή των προβλημάτων ονομάζεται πολυωνυμική (polynomial). Ορισμένα προβλήματα απόφασης δεν είναι επιλύσιμα από κανέναν γνωστό αλγόριθμο. Τέτοιου είδους προβλήματα ονομάζονται μη-αποφασίσιμα (undecidable problems). Για παράδειγμα το πρόβλημα του τερματισμού (halting problem), από τον A. Turing το 1936. Η κλάση NP είναι εκείνη η κλάση των προβλημάτων απόφασης, τα οποία μπορούν να επιλυθούν από μη-αιτιοκρατικούς πολυωνυμικούς αλγορίθμους. Η κλάση αυτή των προβλημάτων, αποκαλείται πολυωνυμική μη-αιτιοκρατική (nondeterministic polynomial).

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 35 P, NP, και NP-πλήρη προβλήματα Πιο απλά, ένας πολυωνυμικός μη-αιτιοκρατικός αλγόριθμος θεωρούμε ότι είναι ικανός να «μαντέψει» μια λύση ενός προβλήματος απόφασης, τουλάχιστον μια φορά και να είναι σε θέση να επιβεβαιώσει την εγκυρότητα της σε πολυωνυμικό χρόνο. Τα περισσότερα προβλήματα ανήκουν στην κλάση ΝΡ, η οποία συμπεριλαμβάνει όλα τα προβλήματα της κλάσης Ρ: Ρ ΝΡ Αυτό ισχύει διότι, εάν ένα πρόβλημα ανήκει στην κλάση Ρ τότε μπορεί να επιλυθεί αιτιοκρατικά σε πολυωνυμικό χρόνο. Οπότε, για αυτό το πρόβλημα μπορεί και να επαληθευτεί η (βέλτιστη) λύση (από έναν μη-αιτιοκρατικό αλγόριθμο) σε πολυωνυμικό χρόνο.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 36 P, NP, και NP-πλήρη προβλήματα Η κλάση ΝΡ συμπεριλαμβάνει πάρα πολλά προβλήματα συνδυαστικής βελτιστοποίησης, όπως για παράδειγμα τις εκδόσεις των προβλημάτων απόφασης του προβλήματος του περιοδεύοντος πωλητή (TSP), του προβλήματος του σακιδίου (knapsack problem), κ.λ.π. Το πλέον σημαντικό ανοιχτό ερευνητικό πρόβλημα της επιστήμης της θεωρητικής πληροφορικής, είναι εάν η κλάση Ρ είναι γνήσιο υποσύνολο της κλάσης ΝΡ ή αυτές οι δυο κλάσεις ταυτίζονται στην πραγματικότητα? Lance Fortnow, The status of the P versus NP problem, Communications of the ACM, 52(9), 78-86, 2009. (URL: http://doi.acm.org/10.1145/1562164.1562186) http://www.claymath.org/millennium/p_vs_np Βραβείο: 1.000.000$

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 37 P, NP, και NP-πλήρη προβλήματα Ένα πρόβλημα απόφασης D καλείται ΝΡ-πλήρες (NP-complete), εάν: Ανήκει στην κλάση ΝΡ Κάθε άλλο πρόβλημα της κλάσης ΝΡ είναι πολυωυμικά αναγώμενο στο D.

Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 38 P, NP, και NP-πλήρη προβλήματα M. Garey, D. Johnson, Computers and Intractability: A Guide to the Theory of NP- Completeness, W. H. Freeman Publications, (1979).