Συνδυαστική Βελτιστοποίηση Σημειώσεις. Β. Ζησιμόπουλος
|
|
- Ἅβελ Σπυρόπουλος
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Συνδυαστική Βελτιστοποίηση Σημειώσεις Β. Ζησιμόπουλος Ιανουάριος 2007
2 Περιεχόμενα 1 Εισαγωγή στη Συνδυαστική Βελτιστοποίηση Προβλήματα Βελτιστοποίησης Πρόβλημα Πλανόδιου Πωλητή (TSP) Πρόβλημα Ανάθεσης Εργασιών (Task Assignment) Ανάθεση Εργ ασιών σε Επεξεργ αστές Πολυπλοκότητα Γενικός Αλγ όριθμος Βελτιστοποίησης Μαθηματικός Προγ ραμματισμός Γραμμικός Προγ ραμματισμός Ακριβείς Αλγόριθμοι Branch and Bound Δυναμικός Προγ ραμματισμός Εφαρμογή στο Πρόβλημα του Σακιδίου Ακέραιος Προγραμματισμός Γραμμική Αποδυνάμωση γ 4 Προσεγγιστικοί Αλγόριθμοι Κλάσεις Προσέγγισης (Approximation Classes) Προβλήματα με Προσεγγιστικό Αλγόριθμο Μη Σταθερού Λόγ ου Προβλήματα με Προσεγγιστικό Αλγόριθμο Σταθερού Λόγου Προβλήματα με PTAS Προβλήματα με FPTAS Πρόβλημα Καλύματος Κόμβων (Vertex Cover) Ευριστικά ια το Vertex Cover Προσεγγιστικοί Αλγόριθμοι για το Vertex Cover Weighted Vertex Cover Πολυωνυμικές Παραλλαγές του Vertex Cover Πρόβλημα Καλύματος Ακμών (Edge Cover)
3 2 ΠΕΡΙΕΧΟΜΕΝΑ 4.4 Πρόβλημα Τοποθέτησης σε Κάδους (Bin Packing) Πρόβλημα Χρονοπρογραμματισμού (List Scheduling) Πρόβλημα Χρονοπρογραμματισμού σε Γνωστό Πλήθος Επεξεργαστών (M-Processor Scheduling) Multifit Πρόβλημα Δέντρου Steiner (Steiner Tree) Πρόβλημα Πλανόδιου Πωλητή (Traveling Salesman Problem) Πρόβλημα Μέγιστου Ανεξάρτητου Υποσυνόλου (Maximum Independent Set) Πολυωνυμικές Παραλλαγές του Maximum Independent Set Πρόβλημα Σακιδίου (Knapsack) Πρόβλημα Καλύματος Συνόλου (Set Cover) Πρόβλημα Διαμέρισης Συνόλου (Set Partitioning) Πρόβλημα Συσκευασίας Συνόλου (Set Packing) Απόλυτη Προσέγγιση (Absolute Approximation) Η απόλυτη προσέγγιση είναι NP-hard Σχήματα Προσέγγισης (Approximation Schemes) PTAS FPTAS Δυναμικός Προγ ραμματισμός Πρόβλημα Αθροίσματος Υποσυνόλων (Subset Sum) Πρόβλημα Μέγ ιστης Τομής (Maximum Cut) Πρόβλημα Max-Sat με Τυχαιότητα Τοπική Αναζήτηση (Local Search) Εισαγ ωγ ή Ο Αλγ όριθμος της Τοπικής Αναζήτησης Στρατηγ ικές Αναζήτησης Προσομοιωμένη Ανόπτηση (Simulated Annealing) 67 7 Μέθοδοι Νευρωνικών Δικτύων (Neural Network Methods) Εφαρμογή Τοπικής Αναζήτησης στο Πρόβλημα Μέγιστου Ανεξάρτητου Συνόλου PLS Πληρότητα (PLS Completeness) 71
4 Κεφάλαιο 1 Εισαγωγή στη Συνδυαστική Βελτιστοποίηση Πολύ συχνά τα πρακτικά προβλήματα που συναντάμε είναι προβλήματα της κλάσης NP-complete. Η κλάση αυτή περιλαμβάνει προβλήματα με την ιδιότητα ότι αν υπάρχει αλγόριθμος πολυωνυμικού χρόνου για κάποιο από αυτά, τότε υπάρχει τέτοιος αλγόριθμος και για όλα τα υπόλοιπα. Μέχρι στιγμής δεν έχει ϐρεθεί πολυωνυμικός αλγόριθμος για κανένα και εικάζεται ότι κάτι τέτοιο δεν πρόκειται να συμβεί. Λόγω όμως της κρισιμότητας των εφαρμογών στις οποίες εμφανίζονται, πρέπει να είμαστε σε ϑέση να ϐρίσκουμε λύσεις γι αυτά, παρ όλη τηνέμφυτη δυσκολία επίλυσής τους. Αυτό μπορούμε να το κάνουμε με διάφορους τρόπους, οι σημαντικότεροι από τους οποίους είναι : Να επιταχύνουμε τους υπάρχοντες ακριβείς αλγόριθμους. Για τα περισσότερα από τα προβλήματα που μας ενδιαφέρουν υπάρχουν ακριβείς αλγόριθμοι εξαντλητικής αναζήτησης. Μπορούμε να τους επιταχύνουμε με τις τεχνικές : { διακλάδωσε και ϕράξε (branch and bound), που επιτρέπει να αποκόψουμε τμήμα του δέντρου αναζήτησης υπολογίζοντας ϕράγματα για τη ϐέλτιστη τιμή σε κάθε κόμβο, { δυναμικό προγραμματισμό (dynamic programming), που κάποιες ϕορές δίνει ψευδοπολυωνυμικούς αλγόριθμους. Να περιορίσουμε τις εισόδους. Στις αποδείξεις για την NP-πληρότητα (NP-completeness) λαμβάνουμε υπόψη τη χειρότερη περίπτωση των εισόδων ενός προβλήματος. Συχνά όμως οι είσοδοι που εμφανίζονται στην πράξη είναι πιο καλές, επιτρέποντάς μας να λύσουμε το πρόβλημα πιο εύκολα. Για παράδειγμα, παρόλο που το πρόβλημα SAT είναι 3
5 4 ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ δύσκολο, για το 2SAT, που είναι εξειδίκευση του προηγούμενου, υπάρχει απλός αλγόριθμος πολυωνυμικού χρόνου. Να ϐρούμε προσεγγιστικές λύσεις. Συχνά συναντάμε NP-complete προβλήματα επειδή ϑέλουμε ακριβείς λύσεις. Αν χαλαρώσουμε κάποιο πρόβλημα ώστε να Ϲητάμε απλώς μια καλή λύση, ενδέχεται να μπορούμε να το λύσουμε με αλγόριθμο πολυωνυμικού χρόνου. Για παράδειγμα, υπάρχει greedy αλγόριθμος που δίνει μια προσεγγιστική λύση του προβλήματος SET COVER. Να χρησιμοποιήσουμε ευριστικές μεθόδους. Κάποιες ϕορές δε μπορούμε να κάνουμε απόλυτες προσεγγίσεις, μπορούμε όμως να σχεδιάσουμε αλγόριθμους που ϕαίνεται να δουλεύουν καλά στην πράξη και να δικαιολογήσουμε το γιατί δουλεύουν καλά. Οι πιο συνηθισμένες ευριστικές μέ- ϑοδοι κάνουν τοπική αναζήτηση στο χώρο των λύσεων του προβλήματος, καταλήγοντας σε μια τοπικά ϐέλτιστη λύση. Το μειονέκτημά τους είναι ότι δε μπορούν εύκολα να συγκριθούν. Για το λόγο αυτό έχουν προταθεί διάφορα είδη ανάλυσης : η εμπειρική, η ανάλυση στη μέση και στη χειρότερη περίπτωση. Ο αλγόριθμος γραμμικού προγραμματισμού Simplex για παράδειγμα είναι εκθετικός στη χειρότερη περίπτωση, στην πράξη όμως δουλεύει καλά και έχει επικρατήσει. Να χρησιμοποιήσουμε τυχαιότητα. Το πρόβλημα με τους ακριβείς αλγόριθμους για NP-complete προβλήματα είναι ότι πρέπει κάθε ϕορά να εξετάσουν εκθετικό (ως προς το μέγεθος της εισόδου τους) πλήθος περιπτώσεων πριν καταλήξουν στη λύση, κάτι που οδηγεί σε εκθετική πολυπλοκότητα. Αυτό μπορούμε να το αποφύγουμε αν τους επιτρέψουμε να κάνουν κάποια πράγματα τυχαία. Οι αλγόριθμοι που προκύπτουν λέγονται πιθανοτικοί (randomized ή probabilistic). Μέχρι στιγμής δεν έχουμε καταφέρει να λύσουμε NP-complete προβλήματα χρησιμοποιώντας τυχαιότητα και αυτό μάλλον δεν πρόκειται να γίνει ποτέ. Ομως η τυχαιότητα είναι χρήσιμη όταν σχεδιάζουμε προσεγγιστικούς αλγόριθμους και ευριστικά. Επίσης, αν υποθέσουμε ότι η είσοδος ενός προβλήματος προέρχεται από κατάλληλη τυχαία κατανομή, μπορούμε να σχεδιάσουμε αλγόριθμο που να δουλεύει καλά στη μέση περίπτωση. Στο κεφάλαιο 4 ϑα μελετήσουμε προσεγγιστικούς αλγόριθμους για διάφο- ϱα NP-complete προβλήματα. Στα κεφάλαια 5, 6 και 7 ϑα εξετάσουμε κάποιες ευριστικές μεθόδους : την τοπική αναζήτηση (local search), την προσομοιωμένη ανόπτηση (simulated annealing) και τις μεθόδους νευρωνικών δικτύων (neural network methods) αντίστοιχα. Μέρχι στιγμής, λίγα πράγματα μπορούμε να αποδείξουμε γι αυτές. Ωστόσο έχουν αποδειχθεί καλές στην πράξη και ϕαίνονται λογικές για κάποια προβλήματα.
6 1.1. ΠΡΟΒΛΗΜΑΤΑ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ Προβλήματα Βελτιστοποίησης Ενα στιγμιότυπο ενός προβλήματος συνδυαστικής ϐελτιστοποίησης είναι ένα Ϲεύγος < S,f >, όπου S είναι ένα πεπερασμένο σύνολο λύσεων και f : S R μια συνάρτηση κόστους των λύσεων (που πρέπει να μεγιστοποιηθεί ή να ελαχιστοποιηθεί). Ζητάμε μια λύση s S τέτοια ώστε f(s ) f(s), s S αν πρόκειται για πρόβλημα ελαχιστοποίησης ή f(s ) f(s), s S αν πρόκειται για πρόβλημα μεγιστοποίησης. Αντικείμενο της Συνδυαστικής Βελτιστοποίησης είναι να ϐρίσκει την καλύτερη λύση ανάμεσα σε ένα σύνολο λύσεων. Μέχρι στιγμής έχουν προταθεί διάφοροι τρόποι τυποποίησης αυτής της διαδικασίας : η ϕυσική γλώσσα, οι λογικές συνεπαγωγές, οι γράφοι και ο μαθηματικός προγραμματισμός. Συνήθως μας ενδιαφέρουν οι ακέραιες λύσεις. Ασχολούμαστε με NP-hard προβλήματα όπως της περιήγησης οχημάτων, της εγκατάστασης (facility location), της επένδυσης, της ανάθεσης (assignment), του χρονοπρογραμματισμού (scheduling) και της κοπής-τεμαχισμού (cut). Για την επίλυση των NP-πλήρων (NP-complete) προβλημάτων έχουμε στη διάθεσή μας γενικές μεθόδους, που μπορούν να εφαρμοστούν σε οποιοδήποτε πρόβλημα, αλλά και ειδικές, που εξαρτώνται άμεσα από το πρόβλημα για του οποίου την επίλυση σχεδιάζονται. Οι γενικές μέθοδοι συμπεριλαμ- ϐάνουν τους ακριβείς (exact) αλγόριθμους και την τοπική αναζήτηση (local search) με τις επεκτάσεις και τα μεταευριστικά της (meta-heuristics). Σ- τις ειδικές περιλαμβάνονται τα ευριστικά (heuristics) και οι προσεγγιστικοί (approximation) αλγόριθμοι. Στην κλάση NP ανήκουν πολλά ϑεμελιώδη προβλήματα της Συνδυαστικής Βελτιστοποίησης : τα γραφοθεωρητικά προβλήματα ϐελτιστοποίησης, τα προβλήματα σχετικά με τη ϐέλτιστη τοποθέτηση εργασιών σε παράλληλες αρχιτεκτονικές, το πρόβλημα της τετραγωνικής ανάθεσης (quadratic assignment) και τα προβλήματα που έχουν να κάνουν με δίκτυα διασύνδεσης. Οι ακριβείς αλγόριθμοι μπορούν να χρησιμοποιηθούν για την επίλυση στιγμιοτύπων περιορισμένου μεγέθους (που εξαρτάται από το πρόβλημα). Ο χρόνος εκτέλεσής τους ενδέχεται να είναι πολύ μεγάλος. Γενικά δεν είναι εύκολο να παραλληλοποιηθούν. Τα ευριστικά έχουν αποδεκτό χρόνο εκτέλεσης για στιγμιότυπα μεγαλύτερου μεγέθους. Δίνουν μια προσέγγιση της Ϲητούμενης λύσης και είναι συγκεκριμένα για το πρόβλημα για το οποίο ϕτιάχνονται. Και αυτά δεν είναι εύκολο να παραλληλοποιηθούν.
7 6 ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Οι προσεγγιστικοί αλγόριθμοι δίνουν μια εγγύηση της ποιότητας των λύσεων που ϐρίσκουν. Μπορούμε να ορίσουμε και πλήρως πολυωνυμικά προσεγγιστικά σχήματα (fully polynomial-time approximation schemes), τα οποία ϐρίσκουν μια ɛ-προσεγγιστική λύση σε χρόνο πολυωνυμικό ως προς το μέγεθος της εισόδου και το 1/ɛ. Οι μέθοδοι τοπικής αναζήτησης είναι γενικές. Το ϐέλτιστο που ϐρίσκουν είναι τοπικό (και ενδέχεται να απέχει πολύ από το ολικό). Προκειμένου να τις εφαρμόσουμε χρειάζεται να έχουμε στη διάθεσή μας μια αρχική εφικτή λύση, που δεν είναι πάντα το ίδιο εύκολο να υπολογιστεί. Η δομή της γειτονιάς καθώς και ο τρόπος με τον οποίο γίνεται η αναζήτηση εξαρτώνται από το πρόβλημα. Η αρχική λύση επηρεάζει την ποιότητα του ϐέλτιστου. Ηπροσομοιωμένη ανόπτηση (simulatedannealing) είναι επίσης μια γενική τεχνική. Συγκρινόμενη με την τοπική αναζήτηση πλεονεκτεί στο ότι έχει τη δυνατότητα να μην παγιδεύεται σε τοπικά ϐέλτιστα. Δίνει λύσεις καλής ποιότητας και έχει μικρό χρόνο εκτέλεσης. Είναι ασυμπτωτικά ϐέλτιστη, δηλαδή αν την αφήσουμε να εκτελείται επ άπειρον ϑα ϐρει τη ϐέλτιστη λύση. Κατά συνέπεια η προσέγγιση που ϑα πετύχουμε εξαρτάται και από το χρόνο εκτέλεσης. Οι μέθοδοι των νευρωνικών δικτύων είναι επίσης γενικές και έχουν τη δυνατότητα να ξεφεύγουν από τοπικά ϐέλτιστα. Είναι μέθοδοι μαζικά παράλληλες. Είναι ευέλικτες, δηλαδή είναι εύκολο να προστεθούν σ αυτές νέοι πε- ϱιορισμοί. Δεν είναι απαραίτητο να διαθέτουμε αρχικά μια εφικτή λύση. Παράγουν καλές λύσεις. 1.2 Πρόβλημα Πλανόδιου Πωλητή (TSP) Πρόβλημα 1 (TSP). Δίνονται n +1πόλεις. Ζητείται ο συντομότερος κύκλος Hamilton. Πρέπει να εξεταστούν όλες οι μεταθέσεις των n +1πόλεων. Μπορούμε να μοντελοποιήσουμε το πρόβλημα αυτό σαν γραμμικό πρόγραμμα ως εξής : min n i=0 n d ij x ij j=0 n x ij =1, i=0 n x ij =1, j=0 j =0,...,n i =0,...,n
8 1.3. ΠΡΟΒΛΗΜΑ ΑΝΑΘΕΣΗΣ ΕΡΓΑΣΙΩΝ (TASK ASSIGNMENT) 7 { 1 αν υπάρχει ακμή από την πόλη i στη j, x ij = 0 διαφορετικά. 1.3 Πρόβλημα Ανάθεσης Εργασιών (Task Assignment) Μαςενδιαφέρει ηανάθεσηεργασιώνμετρόπο τέτοιο ώστε να ελαχιστοποιούνται ανάλογα με το πρόβλημα τα κόστη επικοινωνίας, τα κόστη υπολογισμού ή ο συνολικός χρόνος διάρκειας της εκτέλεσής τους. Μπορούμε να ϑέσουμε περιορισμούς στο χρόνο αποπεράτωσης της εκτέλεσης, στην ποσότητα της χρησιμοποιούμενης μνήμης, στο κατά πόσο επιτρέπεται σε όλες τις εργασίες να εκτελεστούν σε οποιοδήποτε επεξεργαστή και στο αν μπορούμε να διπλασιάσουμε κάποιες εργασίες ή όχι. 1.4 Ανάθεση Εργασιών σε Επεξεργαστές Οι περιορισμοί του προβλήματος αυτού είναι οι συνδέσεις ανάμεσα στους επεξεργαστές, η σειρά των εργασιών και το αν μπορούμε να διπλασιάσουμε κάποιες εργασίες ή όχι. Διακρίνουμε δύο οικογένειες προβλημάτων στην περίπτωση αυτή. Στη μία μας ενδιαφέρει να ελαχιστοποιήσουμε το άθροισμα των κοστών επικοινωνίας και υπολογισμού και στην άλλη το χρόνο τερματισμού της εκτέλεσης. Για τη μοντελοποίηση του προβλήματος ορίζουμε τις μεταβλητές { 1 αν η Mi ανατίθεται στον P x ik = k, 0 διαφορετικά. Η αντικειμενική συνάρτηση εκφράζει το κόστος εκτέλεσης και επικοινωνίας ή το χρόνο αποπεράτωσης που απαιτείται για τις εργασίες αντίστοιχα. Ορίζουμε το κόστος εκτέλεσης ως εξής : q ik = κόστος της M i στον P k, i =1,...,m, k =1,...,n. Εστω C ijkl το κόστος επικοινωνίας ανάμεσα στις εργασίες i και j όταν η i είναι στον επεξεργαστή P k και η j στον P l.ανοιp k και P l δεν είναι συνδεδεμένοι, τότε C ijkl =. Επίσης ισχύουν C iikl =0, i και C ijkk =0, k. Το κόστος για έναν επεξεργαστή k είναι το άθροισμα του κόστους εκτέλεσης και του κόστους επικοινωνίας των εργασιών που του έχουν ανατεθεί. Το κόστος εκτέλεσης ορίζεται ως m cp k (x) = x ik q ik. i=1
9 8 ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Το κόστος επικοινωνίας ορίζεται ως cc k (x) = m x ik κόστος επικ. μεταξύ i και όλων των άλλων = i=1 m x ik cc ki (x) i=1 cc ki (x) = m κόστος για k μεταξύ i και j = j=1 j i m m n cc k (x) = x ik ( ( c ijkl x jl )) = i=1 j=1 j i l=1 l k m i=1 Τότε η αντικειμενική συνάρτηση παίρνει τη μορφή : m n ( c ijkl x jl ) j=1 j i m j=1 j i l=1 l k n c ijkl x ik x jl. l=1 l k min k (cp k (x)+cc k (x)) και οι περιορισμοί που ϑέτουμε στις εργασίες είναι : n x ik =1, k=1 i =1,...,m. Εστω s k ο χώρος μνήμης και t k ο συνολικός χρόνος που είναι διαθέσιμα στον επεξεργαστή P k. Εστωεπίσηςs ik ο χώρος μνήμης και t ik οχρόνοςπου απαιτούνται για την εκτέλεση της εργασίας M i στον P k. Τότε οι περιορισμοί στη μνήμη και το διαθέσιμο χρόνο είναι : m s ik x ik s k, k =1,...,n και i=1 m t ik x ik t k, i=1 k =1,...,n. Μπορούμε να εκφράσουμε και άλλους περιορισμούς, όπως το αν μπορούν δυο εργασίες να εκτελεστούν στον ίδιο επεξεργαστή (περιορισμοί εξαίρεσης): e ij (x ik + x jk ) 1 { 1 αν Mi και M με e ij = j μπορούν να εκτελούνται στον P k, k 0 διαφορετικά και το αν μπορεί μια συγκεκριμένη εργασία να εκτελεστεί σε ένα συγκεκριμένο επεξεργαστή (περιορισμοί απαγόρευσης): x ik b ik
10 1.5. ΠΟΛΥΠΛΟΚΟΤΗΤΑ 9 { 1 αν Mi μπορεί να εκτελείται στον P με b ik = k 0 διαφορετικά. Λαμβάνοντας υπόψη τους περιορισμούς αυτούς, μπορούμε να διαγράψουμε μεταβλητές. Το πρόβλημα στη γενική του μορφή γράφεται ως εξής : min k [ m x ik q ik + i=1 m i=1 m j=1 j i n ] c ijkl x ik x jl l=1 l k έτσι ώστε n k=1 x ik = 1, i =1,...,m m i=1 s ikx ik s k, k =1,...,n m i=1 t ikx ik t k, k =1,...,n e ij (x ik + x jk ) 1, i, j, k x ik = 0 ή 1 Για την ανάθεση εργασιών μπορούμε να χρησιμοποιήσουμε μεθόδους γνωστές από προβλήματα της ϑεωρίας γράφων όπως το ταίριασμα (matching), η ϱοή (flow), η επικάλυψη (covering) και η διαμέριση (partitioning). Μπορούμε επίσης να χρησιμοποιήσουμε τον ακέραιο προγραμματισμό ή τη διάδοση πε- ϱιορισμών. Οι διάφορες προσεγγίσεις γίνονται είτε από την πλευρά της τεχνητής νοημοσύνης ή από την πλευρά της επιχειρησιακής έρευνας ή ακόμα συνδυάζοντας στοιχεία και από τις δύο αυτές περιοχές. 1.5 Πολυπλοκότητα Στα προβλήματα αυτά παρουσιάζει ενδιαφέρον η μελέτη τόσο της εμπειρικής, όσο και της ϑεωρητικής πολυπλοκότητας. Για τη ϑεωρητική πολυπλοκότητα μπορούμε να μελετήσουμε τη ϐέλτιστη, τη μέση ή τη χείριστη περίπτωση. Για την επίλυση των προβλημάτων συνδυαστικής ϐελτιστοποίησης χρησιμοποιούμε τη μέθοδο Simplex, που δημιούργησε ο μαθηματικός George Dantzig το 1947 ή τον αλγόριθμο του Khachiyan (1979). Στο σημείο αυτό ϑα ϑυμηθούμε μερικές έννοιες της ϑεωρίας πολυπλοκότητας. Οταν ένας αλγόριθμος όταν δέχεται είσοδο μεγέθους n εκτελείται σε χρόνο f(n) =n n +2 30, λέμε ότι είναι τάξης O(n 2 ). Εστωδυομηχανές M 1 και M 2 τέτοιες ώστε η M 2 είναι 16 ϕορές γρηγορότερη από τη M 1. Τότε για αλγόριθμους διαφορετικής πολυπλοκότητας στον ίδιο χρόνο μπορούμε να επιλύσουμε στιγμιότυπα προβλημάτων με μέγεθος εισόδου που ϕαίνεται στον παρακάτω πίνακα.
11 10 ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Πολυπλοκότητα M 1 M 2 O(2 n ) O(n 2 ) O(n) O(log n) ( ) 16 Το πρόβλημα του σακιδίου (Knapsack) διατυπώνεται ως εξής : max n c j x j j=1 n a j x j b j=1 { 1 αν το αντικείμενο j περιέχεται στο σακίδιο, x j = 0 διαφορετικά. Αν ϑέλουμε να λύσουμε το πρόβλημα αυτό εξαντλητικά, πρέπει να ελέγξουμε 2 n διαφορετικές λύσεις. Υποθέτοντας ότι μια πρόσθεση χρειάζεται χρόνο δευτερόλεπτα και ότι ένας πολλαπλασιασμός διαρκεί όσο περίπου 3 προσθέσεις, στον ακόλουθο πίνακα ϐλέπουμε το χρόνο που απαιτείται για την εκτέλεση στιγμιοτύπων του προβλήματος με διαφορετικά μεγέθη εισόδου. Μέγεθος εισόδου (n) Χρόνος εκτέλεσης (δευτερόλεπτα) Στον πίνακα που ακολουθεί ϐλέπουμε την εξέλιξη στο χρόνο επίλυσης του προβλήματος σακιδίου για 1000 μεταβλητές : Ετος Χρόνος Greenberry, Hegerich Fayard, Plateau Horowitz, Sahni Lauriere Martello, Toth Fayard, Plateau Balas, Zemel Martello, Toth Metairie, Polian, Fayard
12 1.6. ΓΕΝΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ Γενικός Αλγόριθμος Βελτιστοποίησης Εστω ένα πρόβλημα B, V (B) ηϐέλτιστητιμήτουκαιd οχώροςτων λύσεών του. Ζητείται να ϐρεθεί x τέτοιο ώστε V (B) =cx =max{cx x D}. Εκτελούμε τα ακόλουθα ϐήματα : 1. Αρχικοποίηση : ϐρίσκουμε το κάτω ϕράγμα της V (B), ϐρίσκουμε το άνω ϕράγμα της V (B), V(B) =cx V (B) =cx. 2. Ελάττωση του χώρου των λύσεων D με : διαγραφή μεταβλητών, διαγραφή περιορισμών, προσθήκη περιορισμών. 3. Επίλυση του μειωμένου προβλήματος με : αλγεβρικές μεθόδους, δυναμικό προγραμματισμό, μεθόδους απαρίθμησης. 1.7 Μαθηματικός Προγραμματισμός Ενα πρόβλημα μεγιστοποίησης διατυπώνεται με τη ϐοήθεια του γραμμικού προγραμματισμού ως εξής : max cx Ax b x 0 x {0, 1} A =(a ij ) 1 i m 1 j n Αν x R και η αντικειμενική συνάρτηση και οι περιορισμοί είναι γραμμικά, τότε το πρόγραμμα αυτό λύνεται με τους αλγόριθμους των Dantzig (1947), Kachiyan (1979) και Karmarkar (1984). Ομως ενδέχεται να έχουμε μη γραμμική αντικειμενική συνάρτηση και περιορισμούς, ή και να ενδιαφερόμαστε για ακέραιες μόνο λύσεις.
13 12 ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ I A X = b I _ I _ I Σχήμα 1.1: Ο υπολογισμός της λύσης του συστήματος Ax = b. 1.8 Γραμμικός Προγραμματισμός Θεωρούμε το γραμμικό σύστημα : Ax = b Αυτό, σύμφωνα με το σχήμα 1.1, γράφεται ισοδύναμα : A I x I + A I x I = b A I x I = b A I x I x I =(A I ) 1 b (A I ) 1 A I x I. Η τιμή της αντικειμενικής συνάρτησης γίνεται : cx = c I x I +c I x I = c I (A I ) 1 b c I (A I ) 1 A I x I +c I x I = c I (A I ) 1 b+[c I c I (A I ) 1 A I ]x I.
14 Κεφάλαιο 2 Ακριβείς Αλγόριθμοι Στο κεφάλαιο αυτό παρουσιάζουμε μερικές από τις πιο συχνά χρησιμοποιούμενες ακριβείς (exact) μεθόδους επίλυσης προβλημάτων συνδυαστικής ϐελτιστοποίησης. 2.1 Branch and Bound Η μέθοδος Branch and Bound αποτελείται από επαναλαμβανόμενες ε- ϕαρμογές διαχώρισης και εκτίμησης στο χώρο των λύσεων του προβλήματος. Κατά τη διαχώριση γίνεται διαμέριση του χώρου αναζήτησης σε μικρότεραυποσύνολα,ενώηεκτίμησηαφοράτηνεύρεσητουπάνωϕράγματοςτης ϐέλτιστης λύσης, δηλαδή μιας υπερεκτίμησης της ϐέλτιστης τιμής της αντικειμενικής συνάρτησης μέσα στο υποδένδρο. Κύριο ϱόλο παίζουν οι στρατηγικές που ακολουθούμε για τη διαχώριση και τη διάσχιση του χώρου αναζήτησης κατά την εφαρμογή της μεθόδου. Για τη διαχώριση έχουμε να αποφασίσουμε ποια υποσύνολα του χώρου αναζήτησης ϑα σχηματίζουμε ενώ για τη διάσχιση πρέπει να καθορίσουμε τη σειρά με την οποίαϑαεξετάζουμεταυποσύνολααυτά. Εναπαράδειγμαδιαχώρισηςενός χώρου με 3 μεταβλητές παρουσιάζεται στο σχήμα 2.1. Το σύνολο S στη ϱίζα του δέντρου περιλαμβάνει όλες τις συμβολοσειρές που αποτελούνται από 0 και 1 (S = {0, 1} n ). Στο S i ανήκουν αυτές στις οποίες x i =0,ενώστοS i αυτές στις οποίες x i =1. Αντίστοιχα, στο S ij ανήκουν οι συμβολοσειρές στις οποίες x i =0και x j =1. Προφανώς για στα σύνολα αυτά ισχύουν σχέσεις της μορφής : S ijk S ij S i S. Η επιλογή της μεταβλητής ϐάσει της οποίας ϑα γίνει η διαχώριση μ- πορεί να γίνει στην τύχη, συστηματικά, ϐάσει της εμπειρίας του παρελθόντος ή επιλύοντας ένα υποπρόβλημα. Η επιλογή της μεταβλητής διαχώρισης επηρεάζει το χρόνο εύρεσης της λύσης και το πλήθος των κόμβων που χρειάζε- 13
15 14 ΚΕΦΑΛΑΙΟ 2. ΑΚΡΙΒΕΙΣ ΑΛΓΟΡΙΘΜΟΙ x =0 1 S x =1 1 x =0 2 S _ 1 x =1 2 x =0 2 S 1 x =1 2 S 12 S _ 12 S _ 12 S 12 x =0 3 x =1 3 x =0 3 x =1 3 x =0 3 x =1 x =0 3 x =1 3 3 S 123 S 123 S 123 S _ 123 S 123 S _ 123 S _ 123 S 123 Σχήμα 2.1: ται να ανιχνευθούν για να ϐρεθεί η λύση. Η εκτίμηση για ένα πρόβλημα ελαχιστοποίησης (αντίστοιχα και για πρόβλημα μεγιστοποίησης) γίνεται ως εξής : Εστω S i ένας κόμβος στο δέντρο. Θεω- ϱούμε μια εκτίμηση f(s i ) γι αυτόν, δηλαδή ένα κάτω ϕράγμα της καλύτερης λύσης στο υποδέντρο που ϐρίσκεται κάτω από αυτόν, τέτοια ώστε : f(s i ) min x S i {cx}. Εστω x μια προσεγγιστική ακέραια λύση με z = cx, τέτοιαώστε: { > z, δε συνεχίζουμε τη διαχώριση του Si αν f(s i ) z, συνεχίζουμε. Η ποιότητα της λύσης που παίρνουμε εξαρτάται από το χρόνο που δίνουμε στη μέθοδο για να εκτελεστεί. Προφανώς για μια πολύ καλή εκτίμηση απαιτείται περισσότερος χρόνος από ότι για μια χονδρική εκτίμηση. Συνήθως κάνουμε ένα συμβιβασμό σε αυτή τη ϐάση. Οι πιο συνηθισμένες στρατηγικές διάσχισης είναι η κατά πλάτος, η κατά ϐάθος, η πρώτα ο καλύτερος και η πρώτα ο χειρότερος. Η ϑεωρητική πολυπλοκότητα της μεθόδου είναι εκθετική. Πρακτικά μπορεί να μετρηθεί με ϐάση τον απαιτούμενο χρόνο ή το χώρο μνήμης (πλήθος επισκεπτόμενων κόμβων). Στο σχήμα 2.2 ϐλέπουμε ένα παράδειγμα εφαρμογής της διάσχισης με ϐάση την καλύτερη εκτίμηση. Παράδειγμα 1. Εστω ότι ϑέλουμε να ελαχιστοποιήσουμε την αντικειμενική συνάρτηση min z = 20x 1 16x 2 11x 3 9x 4 7x 5 x 6
16 2.1. BRANCH AND BOUND 15 x =0 1 S x =1 1 (-23, 3) S _ S (-26) 1 1 x =0 x =1 2 2 S 12 S _ 12 S _ 12 (-25, 5) 0/ (+oo) S 123 0/ (+oo) Σχήμα 2.2: έτσι ώστε 9x 1 +8x 2 +6x 3 +5x 4 +4x 5 + x 6 12 x j {0, 1}. Εστω C ji ο συντελεστής του x i στην αντικειμενική συνάρτηση z και α ji ο συντελεστής του στον περιορισμό. Παρατηρούμε ότι ισχύει C j1 α j1 C j2 α j2... C jn α jn. Η συνεχής λύση του προβλήματος είναι η x 1 =1,x 2 = 3 που δίνει z = Χρησιμοποιώντας greedy (άπληστο) αλγόριθμο, ϐρίσκουμε την ακέραια λύση : x 1 =1,x 2 =1που δίνει z = 21. Διαχωρίζοντας το χώρο των λύσεων με ϐάση τη μεταβλητή x 1,έχουμε: { 8x2 +6x 1, S 1 : 3 +5x 4 +4x 5 + x 6 3 x 1 = { min 20 16x 2 11x 3 9x 4 7x 5 x 6 8x2 +6x 0, S 1 : 3 +5x 4 +4x 5 + x 6 12 min 16x 2 11x 3 9x 4 7x 5 x 6 ΗσυνεχήςλύσητουS 1 είναι η x 2 = 3, που δίνει z = 26. Η συνεχής λύση 8 του S 1 είναι η x 2 =1,x 3 = 2 3, που δίνει z =
17 16 ΚΕΦΑΛΑΙΟ 2. ΑΚΡΙΒΕΙΣ ΑΛΓΟΡΙΘΜΟΙ Στο σχήμα 2.3 ϐλέπουμε ένα παράδειγμα διαχωρισμού του χώρου των λύσεων ξεκινώντας από το σύνολο S 1 (πρώτα κατά πλάτος αναζήτηση). Στην περίπτωση αυτή, για να ϐρούμε τη λύση αρκεί να εξετάσουμε μόνο 17 κόμ- ϐους από τους που είναι συνολικά. 2.2 Δυναμικός Προγραμματισμός Στο δυναμικό προγραμματισμό η επίλυση ενός προβλήματος γίνεται μέσω της επίλυσης επιμέρους αλληλοεπικαλυπτόμενων υποπροβλημάτων. Καθένα από τα υποπροβλήματα λύνεται μία μόνο ϕορά και η ϐέλτιστη λύση απο- ϑηκεύεται και ανακαλείται όταν χρειάζεται. Η ϐασική αρχή του δυναμικού προγραμματισμού είναι το ότι κάθε υποστρατηγική μιας ϐέλτιστης στρατηγικής είναι η ίδια ϐέλτιστη. Για να επιλύσουμε ένα πρόβλημα με δυναμικό προγραμματισμό, το εντάσσουμε σε μια οικογένεια προβλημάτων της ίδιας ϕύσης και συνδέουμε τις ϐέλτιστες λύσεις τους με μια αναδρομική σχέση. Παράδειγμα 2. Εστω το γραμμικό πρόγραμμα : max n c j x j j=1 n α j x j b j=1 x j {0, 1}. Μπορούμε να το εντάξουμε στην οικογένεια προβλημάτων : k f k (y) =max{ c j x j j=1 n α j x j y, x j {0, 1}, j =1,...,k} j=1 που αναδρομικά γράφεται ως εξής : { fk 1 (y), αν y α f k (y) = k max{f k 1 (y), c k + f k 1 (y α k )}, διαφορετικά. Δεδομένου ότι 0 y b, 1 k n και f k (0) = 0, η ϐέλτιστη λύση του προβλήματος είναι ίση με f n (b). Για την εύρεση της λύσης δίνουμε στα x k (y) τιμές ως εξής : { 0, αν fk (y) =f x k (y) = k 1 (y) 1, διαφορετικά.
18 2.2. ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 17 x =0 1 S x =1 1 (-23, 3) S _ (-26) S 1 1 x =0 2 x =1 2 S 12 S _ 12 (-23, 3) S _ 12 (-25, 5) 0/ (-27, 7) (-25, 4) (+oo) (-23, 2) S 123 S _ 123 S 123 0/ (+oo) (-25, 2) (+oo) S 1234 S 1234 S / (-23) (+oo) (+oo) S / (-21) (+oo) Σχήμα 2.3:
19 18 ΚΕΦΑΛΑΙΟ 2. ΑΚΡΙΒΕΙΣ ΑΛΓΟΡΙΘΜΟΙ Η πολυπλοκότητα της μεθόδου του δυναμικού προγραμματισμού είναι τάξης O(nb) ως προς το χρόνο και τάξης O(b) ως προς τη μνήμη. Πρόκειται δηλαδή για ψευδοπολυωνυμικό αλγόριθμο. Παράδειγμα 3. Εστω η οικογένεια προβλημάτων : k n g k (z) =min{ a j x j c j x j z, x j {0, 1}, j =1,...,k} με Τότε j=1 j=1 k {1,...,n}, z {1,..., n c j }. j=1 g k (z) =min{g k 1 (z), α k + g k 1 (z c k )}. Εστω V (B) η ϐέλτιστη τιμή του προβλήματος. Τότε V (B) = min{z N g n (z +1)>b}. Ισχύουν { +, αν z>c1 g 1 (z) = α 1, διαφορετικά. και z {1,..., V (B) }, όπουv (B) η ϐέλτιστη λύση του συνεχούς προβλήματος. Η πολυπλοκότητα της μεθόδου είναι O(n V (B)),δηλαδή O(n min{b, V (B)}), οπότε ο αλγόριθμος είναι ψευδοπολυωνυμικός Εφαρμογή στο Πρόβλημα του Σακιδίου Θεωρούμε ένα στιγμιότυπο του προβλήματος του σακιδίου (knapsack), που περιγράφεται από το ακόλουθο γραμμικό πρόγραμμα : έτσι ώστε max z =20x 1 +16x 2 +11x 3 +9x 4 +7x 5 + x 6 9x 1 +8x 2 +6x 3 +5x 4 +4x 5 + x 6 12 x j {0, 1}. Φτιάχνουμε τον παρακάτω πίνακα
20 2.2. ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 19 Για να ϐρούμε τη λύση, κάνουμε τα ϐήματα που ϕαίνονται στον ακόλουθο πίνακα Είναι x 6 (12) = 0 x 5 (12) = 1, 12 x 5 (12) a 5 =8 x 4 (8) = 0 x 2 (8) = 1, 8 8=0 και αυτό τον υπολογισμό τον κάνουμε n ϕορές. Η χρονική πολυπλοκότητα της εύρεσης της λύσης είναι τάξης O(n(b +1)) O(nb). Η απαιτούμενη μνήμη είναι τάξης O(b).
21 20 ΚΕΦΑΛΑΙΟ 2. ΑΚΡΙΒΕΙΣ ΑΛΓΟΡΙΘΜΟΙ
22 Κεφάλαιο 3 Ακέραιος Προγραμματισμός Θεωρούμε το γραμμικό πρόγραμμα : έτσι ώστε min Z = cx Ax = b x 0 1 i m 1 j n a ij,b i,c j N, i, j. Τα x που ικανοποιούν τους περιορισμούς ανήκουν στο σύνολο : P = {x x R n, Ax = b, x 0} που είναι ϕραγμένο και μη κενό. Αν μια μεταβλητή x j παίρνει k διαφορετικές ακέραιες τιμές, μπορούμε να τηνεκφράσουμεμετηϐοήθειαp δυαδικών μεταβλητών (μεταβλητών με τιμές από το {0, 1}). Πιο συγκεκριμένα, μπορούμε να γράψουμε το x j στη μορφή x j = y 0 +2y 1 +4y i y i p 1 y p 1 με p = log 2 k και y i {0, 1}, i =0,...,p 1. Παράδειγμα 4. Για να μετατρέψουμε το γραμμικό πρόγραμμα min Z =3x 1 4x 2 x 1 +2x x x 2 3 x 1,x 2 N 21
23 22 ΚΕΦΑΛΑΙΟ 3. ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ σε ένα αντίστοιχο με δυαδικές μόνο μεταβλητές, χρειαζόμαστε 5 τέτοιες μεταβλητές. Αν x 1 = 2+y 1 +2y 2 +4y 3 x 2 = 1+y 4 +2y 5 το παραπάνω γραμμικό πρόγραμμα γράφεται ισοδύναμα : min Z = y 1 +6y 2 +12y 3 4y 4 8y 5 y 1 +2y 2 +4y 3 +2y 4 +4y 5 6 y 1 +2y 2 +4y 3 6 y 4 +2y 5 2 y i {0, 1} Ενα γραμμικό πρόγραμμα στο οποίο οι μεταβλητές μπορούν να έχουν μόνο ακέραιες τιμές, για παράδειγμα ένα πρόγραμμα της μορφής : min Z = cx Ax = b x 0 1 j n x j N j ονομάζεται ακέραιο γραμμικό πρόγραμμα (integer linear program). Θεωρούμε το ακέραιο γραμμικό πρόγραμμα min Z = 10x 1 11x 2 10x 1 +12x 2 59 x 1,x 2 N. Στο αντίστοιχο συνεχές πρόβλημα, η ϐέλτιστη τιμή της αντικειμενικήςς συνάρτησης είναι η Z = 59 που προκύπτει για (x 1,x 2 )=(5.9, 0). Αν στρογγυλοποιήσουμε τις τιμές των x 1,x 2 στις πλησιέστερες ακέραιες, που είναι οι (x 1,x 2 )= (6, 0), η αντικειμενική συνάρτηση ϑα πάρει τιμή Z = 60, που όμως δεν είναι ϐέλτιστη. Πράγματι, η ϐέλτιστη τιμή του ακέραιου προγράμματος επιτυγχάνεται για (x 1,x 2)=(1, 4) και είναι η Z = Γραμμική Αποδυνάμωση Θεωρούμε το ακέραιο γραμμικό πρόγραμμα min 15x 1 +2x 2 4x 3 +10x 4 x 3 x 4 0 x 1 +2x 2 +4x 3 +8x 4 =20 x 2 + x 4 1 x 1,x 2,x 3,x 4 {0, 1}.
24 3.1. ΓΡΑΜΜΙΚΗ ΑΠΟΔΥΝΑΜΩΣΗ 23 optimum solution integer program s feasible solutions linear relaxation s feasible solutions Σχήμα 3.1: Η ϐέλτιστη λύση ενός ακέραιου προγράμματος ϕράσσεται από τη ϐέλτιστη λύση της γραμμικής αποδυνάμωσής του. Αν επιτρέψουμε στις μεταβλητές x j,j=1, 2, 3, 4, να παίρνουν όλες τις τιμές στο διάστημα [0, 1], το γραμμικό πρόγραμμα που προκύπτει ονομάζεται γραμμική αποδυνάμωση (linear relaxation) του αρχικού. Οι γραμμικές αποδυναμώσεις μας δίνουν ϕράγματα για τις λύσεις των ακέραιων προγραμμάτων. Η σχέση μεταξύ των λύσεων ακέραιων προγραμμάτων και των αποδυναμώσεών τους είναι σχέση υποσυνόλου-υπερσυνόλου και απεικονίζεται στο σχήμα 3.1. Αν V (P ) είναι η ϐέλτιστη λύση ενός προβλήματος P και V (R) η ϐέλτιστη λύση της γραμμικής του αποδυνάμωσης R, τότε αν πρόκειται για πρόβλημα μεγιστοποίησης ισχύει V (R) V (P ), ενώ αν πρόκειται για πρόβλημα ελαχιστοποίησης ισχύει V (R) V (P ). Παράδειγμα 5 (Πρόβλημα Μεγιστοποίησης). Θεωρούμε το ακέραιο γραμμικό πρόγραμμα P : max x 1 + x 2 + x 3 x 1 + x 2 1 x 1 + x 3 1 x 2 + x 3 1 x i {0, 1}, i=1, 2, 3. Η ϐέλτιστη τιμή του είναι η V (P )=1, που προκύπτει για τη λύση x = (1, 0, 0). Η ϐέλτιστη τιμή της γραμμικής του αποδυνάμωσης R είναι η V (R) = 3 2, που προκύπτει για τη λύση x =(1 2, 1 2, 1 2 ). Παράδειγμα 6 (Πρόβλημα Ελαχιστοποίησης). Θεωρούμε το ακέραιο γραμμικό πρόγραμμα P : min 20x 1 +9x 2 +7x 3 10x 1 +4x 2 +3x 3 7 x i {0, 1}, i=1, 2, 3.
25 24 ΚΕΦΑΛΑΙΟ 3. ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η ϐέλτιστη τιμή του είναι η V (P )=16, που προκύπτει για τη λύση x = (0, 1, 1). Η ϐέλτιστη τιμή της γραμμικής του αποδυνάμωσης R είναι η V (R) = 14, που προκύπτει για τη λύση x =( 7, 0, 0). 10 Και στα δύο προηγούμενα παραδείγματα, αν η λύση x (της γραμμικής αποδυνάμωσης) είναι εφικτή για το P, τότε είναι ϐέλτιστη για το P.
26 Κεφάλαιο 4 Προσεγγιστικοί Αλγόριθμοι Τα ευριστικά μπορεί να είναι χρήσιμα στην πράξη, συνήθως όμως ϑέλουμε να έχουμε εγγυήσεις για την ποιότητα των λύσεων. Τέτοιες εγγυήσεις μας παρέχουν οι προσεγγιστικοί αλγόριθμοι. Σημειώνεται εδώ ότι οι προσεγγιστικοί αλγόριθμοι δε συμπεριφέρονται πάντα το ίδιο καλά με τα ευριστικά. Άλλες ϕορές συμβάλλουν στην κατανόηση του προβλήματος, ϐοηθώντας μας να ορίσουμε καλά ευριστικά. Οταν μιλάμε για κάποιον προσεγγιστικό αλγόριθμο, δίνουμε και έναν λόγο προσέγγισης. Ο λόγος προσέγγισης είναι ο λόγος του κόστους της λύσης του συγκεκριμένου προσεγγιστικού αλγορίθμου προς το κόστος της ϐέλτιστης λύσης. Προσπαθούμε να σχεδιάζουμε προσεγγιστικούς αλγόριθμους με λόγο όσο το δυνατό κοντά στο 1. Αν πρόκειται για πρόβλημα ελαχιστοποίησης, ο λόγος αυτός είναι μεγαλύτερος του 1 για πρόβλημα μεγιστοποίησης είναι μικρότερος του 1. Εστω ένας προσεγγιστικός αλγόριθμος A που αντιστοιχεί ένα στιγμιότυπο I κάποιου προβλήματος σε μια τιμή f A (I). Εστωεπίσηςˆf(I) ηϐέλτιστηλύση για το στιγμιότυπο I. Ορίζουμε τα ακόλουθα μέτρα ποιότητας των λύσεων του αλγορίθμου A: απόλυτο λάθος : ε α = ˆf(I) f A (I) σχετικό λάθος : ε r = ˆf(I) f A (I). ˆf(I) Ο λόγος προσέγγισης 1 (approximation ratio) του αλγορίθμου A ορίζεται ως : ρ = f A(I) ˆf(I) =1+εr, για πρόβλημα ελαχιστοποίησης και 1 λέγεται και συντελεστής απόδοσης 25
27 26 ΚΕΦΑΛΑΙΟ 4. ΠΡΟΣΕΓΓΙΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ρ = ˆf(I) f A (I) = 1, για πρόβλημα μεγιστοποίησης. 1 εr Σημειώνεται ότι ρ 1. Επίσης ορίζουμε το διαφορικό λόγο (differential ratio) του αλγορίθμου A ως εξής : ε d = worst(i) f A(I) worst(i) ˆf(I) Τα προβλήματα που προσεγγίζονται με σταθερό λόγο προσέγγισης ρ λέμε ότι ανήκουν στην κλάση APX. 4.1 Κλάσεις Προσέγγισης (Approximation Classes) Οταν δείξουμε ότι ένα πρόβλημα ϐελτιστοποίησης είναι NP-complete, το ενδιαφέρον μας μετατοπίζεται στο αν υπάρχουν ɛ-προσεγγιστικοί αλγόριθμοι γι αυτό. Και αν ναι, πόσο μικρό μπορεί να είναι το ɛ; Η κλάση των NP-complete προβλημάτων ϐελτιστοποίησης μπορεί να χωριστεί περαιτέρω σύμφωνα με το πόσο καλά μπορεί να προσεγγιστεί κάθε πρόβλημα που περιέχει. Ετσι διακρίνουμε τρεις μεγάλες κατηγορίες : Μη προσεγγίσιμα προβλήματα, για τα οποία δεν υπάρχει 2 ɛ-προσεγγιστικός αλγόριθμος για σταθερό ɛ, οσοδήποτε μεγάλο. Τα TSP, Clique, Maximum Independent Set, Set Cover ανήκουν σε αυτή την κατηγορία, που παρουσιάζουμε αναλυτικότερα στην ενότητα Μερικώς προσεγγίσιμα προβλήματα, για τα οποία υπάρχουν ɛ-προσεγγιστικοί αλγόριθμοι πολυωνυμικού χρόνου για κάποιες σταθερές τιμές του ɛ> 0, αλλά 3 οι τιμές αυτές δεν μπορούν να γίνουν οσοδήποτε μικρές ϑέλουμε. Παραδείγματα προβλημάτων που ανήκουν στην κλάση αυτή είναι το Vertex Cover και το Max SAT. Οι κατηγορίες προβλημάτων που περιλαμβάνονται εδώ παρουσιάζονται στις ενότητες και Πλήρως προσεγγίσιμα προβλήματα, για τα οποία υπάρχει ɛ-προσεγγιστικός αλγόριθμος πολυωνυμικού χρόνου για κάθε ɛ>0, οσοδήποτε μικρό. Το πρόβλημα Two-Machine Scheduling, στο οποίο πρέπει να αναθέσουμε ένα σύνολο εργασιών σε δύο μηχανές έτσι ώστε να ελαχιστοποιήσουμε το χρόνο περάτωσης της εκτέλεσής τους, ανήκει σε αυτή την κατηγορία. Παρουσιάζουμε την κατηγορία αυτή στην ενότητα Οι παραπάνω κατηγορίες παριστάνονται σχηματικά στο σχήμα εκτός εάν P=NP 3 εκτός αν P=NP
28 4.1. ΚΛΑΣΕΙΣ ΠΡΟΣΕΓΓΙΣΗΣ (APPROXIMATION CLASSES) 27 TSP Clique MIS Set Cover non constant p Vertex Cover Max Cut ÄTSP Multiway Cut Multiprocessor Scheduling Bin Packing Fixed Processor Scheduling Subset Sum Knapsack constant p PTAS FPTAS Σχήμα 4.1: Οι κλάσεις προσέγγισης Προβλήματα με Προσεγγιστικό Αλγόριθμο Μη Στα- ϑερού Λόγου Σε αυτή την κλάση προσεγγισιμότητας ανήκουν τα προβλήματα για τα οποία υπάρχει προσεγγιστικός αλγόριθμος, ο λόγος όμως προσέγγισης του εξαρτάται από το μέγεθος του προβλήματος. Τέτοια προβλήματα είναι αυτά του πλανόδιου πωλητή (TSP), του μέγιστου ανεξάρτητου συνόλου (MIS), της κλίκας (Clique) και του καλύματος συνόλου (Set Cover) Προβλήματα με Προσεγγιστικό Αλγόριθμο Σταθερού Λόγου Σε αυτή την κλάση προσεγγισιμότητας ανήκουν τα προβλήματα για τα οποία υπάρχει προσεγγιστικός αλγόριθμος με σταθερό λόγο προσέγγισης. Τέτοια προβλήματα είναι αυτά του καλύματος κόμβων (Vertex Cover), της μετρικής περίπτωσης του πλανόδιου πωλητή (ΔTSP), το Max Cut και το Multiway Cut Προβλήματα με PTAS Σε αυτή την κλάση προσεγγισιμότητας ανήκουν τα προβλήματα για τα οποία υπάρχει PTAS. Τέτοια προβλήματα είναι αυτά του χρονοπρογραμ-
29 28 ΚΕΦΑΛΑΙΟ 4. ΠΡΟΣΕΓΓΙΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ v 1 v 2 v 1 v 2 v 1 v 2 v 6 v 3 v 6 v 3 v 6 v 3 v 5 v 4 v 5 v 4 v 5 v 4 (a) (b) (c) Σχήμα 4.2: Ενα παράδειγμα για το Vertex Cover. (a) Ο γράφος του πα- ϱαδείγματος, (b) Ενα vertex cover του γράφου, (c) Το ελάχιστο vertex cover. ματισμού πολλών επεξεργαστών (Multiprocessor Scheduling) και της τοπο- ϑέτησης σε κάδους (Bin Packing) Προβλήματα με FPTAS Σε αυτή την κλάση προσεγγισιμότητας ανήκουν τα προβλήματα για τα οποία υπάρχει FPTAS. Τέτοια προβλήματα είναι αυτά του αθροίσματος υποσυνόλων (Subset Sum), του σακιδίου (Knapsack) και του χρονοπρογραμματισμού σταθερού πλήθους επεξεργαστών (Fixed Processor Scheduling). 4.2 Πρόβλημα Καλύματος Κόμβων (Vertex Cover) Θεωρούμε το ακόλουθο πρόβλημα. Πρόβλημα 2 (Vertex Cover). Δοθέντος ενός μη κατευθυνόμενου γράφου G = (V,E), ναϐρεθείτοελάχιστοv V τέτοιο ώστε [u, v] E u V ή v V. Ζητάμε δηλαδή το ελάχιστο δυνατό υποσύνολο των κόμβων του γράφου, από το οποίο ϕαίνονται όλες οι πλευρές του. Το σύνολο αυτό λέγεται κάλυμα κόμβων (vertex cover) του γράφου. Ενα κάλυμα κόμβων του γράφου του σχήματος 4.1(a), το V = {v 1,v 2,v 4,v 5,v 6 }, ϕαίνεται στο 4.1(b). Ενα minimal κάλυμά του, το V = {v 1,v 2,v 4,v 5 }, ϕαίνεται στο 4.1(c). Το πρόβλημα αυτό το συναντάμε όταν για παράδειγμα ϑέλουμε να ϐρούμε σε ποιες διασταυρώσεις των διαδρόμων ενός μουσείου χρειάζεται να τοποθετήσουμε κάμερες έτσι ώστε να ελέγχουμε όλους τους διαδρόμους. Είναι ειδική
30 4.2. ΠΡΟΒΛΗΜΑ ΚΑΛΥΜΑΤΟΣ ΚΟΜΒΩΝ (VERTEX COVER) 29 περίπτωση του προβλήματος καλύματος συνόλου που ϑα μελετήσουμε στην ενότητα Το πρόβλημα του Καλύματος Κόμβων είναι NP-complete. Μπορούμε όμως να ϐρούμε κάποιες καλές λύσεις του (που ίσως να μην είναι οι ϐέλτιστες) χρησιμοποιώντας κατάλληλα ευριστικά (heuristics). Στην ενότητα που ακολου- ϑεί ϑα εξετάσουμε την ποιότητα αυτών των λύσεων Ευριστικά για το Vertex Cover Το πρώτο ευριστικό που ϑα μελετήσουμε ϐασίζεται στην ιδέα ότι το κάλυμα ϑα περιέχει λίγους κόμβους αν καθένας από αυτούς καλύπτει πολλές ακμές. Ετσι, αφού Ϲητάμε το ελάχιστο δυνατό κάλυμα, εισάγουμε σε αυτό κάθε ϕορά τον κόμβο που καλύπτει τις περισσότερες από τις ακμές του γράφου από αυτές που δεν έχουν καλυφθεί ακόμα. Το greedy αυτό ευριστικό είναι το 4.1. Αλγόριθμος 4.1 Ευριστικό για το Vertex Cover V όσο E Επίλεξε v V με μέγιστο ϐαθμό V V {v} διάγραψε τις προσκείμενες στο v πλευρές επέστρεψε το V Ας δούμε ένα παράδειγμα εφαρμογής του. Το ελάχιστο δυνατό Κάλυμα Κόμβων του γράφου του σχήματος 4.3(a) ϕαίνεται στο σχήμα 4.3(b). Χρησιμοποιώντας το ευριστικό, εισάγουμε στο κάλυμα αρχικά τον κόμβο v 1 (σχήμα 4.3(c)) και στη συνέχεια τους κόμβους v 2,v 3,v 4 και v 5, οπότε προκύπτει το κάλυμα του σχήματος 4.3(d) (το οποίο προφανώς δεν είναι ϐέλτιστο). Ο λόγος προσέγγισης σε αυτή την περίπτωση είναι ρ = 5 και το σχετικό σφάλμα 4 ε r = 25%. Ομως το σφάλμα ενδέχεται να είναιπιο μεγάλο. Ας δούμε για παράδειγμα το γράφο του σχήματος 4.4. Ο γράφος αυτός αποτελείται από n a-κόμβους ϐαθμού n +2, n +2 b- κόμβους ϐαθμού n +1και n +2 c-κόμβους ϐαθμού 1 (εδώ n =3). Το ϐέλτιστο κάλυμα αποτελείται από τους n +2 b-κόμβους. Χρησιμοποιώντας το ευριστικό ϑα εισάγουμε αρχικά στο κάλυμα τους n a-κόμβους και εν συνεχεία τους n +2 b-κόμβους, καταλήγοντας σε ένα κάλυμα 2n +2κόμβων. Ο λόγος προσέγγισης στην περίπτωση αυτή είναι ρ = 2n+2 2, οπότε n+2 το σχετικό σφάλμα είναι ε r = 100%, δηλαδήηλύσηπουϑαϐρούμεέχει διπλάσιο μέγεθος από τη ϐέλτιστη.
31 30 ΚΕΦΑΛΑΙΟ 4. ΠΡΟΣΕΓΓΙΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ (a) (b) (c) (d) Σχήμα 4.3: Ενα ευριστικό για το Vertex Cover. (a) Ο γράφος του παραδείγματος, (b) Το ϐέλτιστο vertex cover του γράφου, (c) Το vertex cover μετά την πρώτη εφαρμογή του ευριστικού, (d) Το vertex cover που δίνει το ευριστικό. c 1 c 2 c 3 c 4 c 5 b 1 b 2 b 3 b 4 b 5 a 1 a 2 a 3 Σχήμα4.4:Οισκιασμένοικόμβοιαποτελούν το vertex cover του γράφου.
32 4.2. ΠΡΟΒΛΗΜΑ ΚΑΛΥΜΑΤΟΣ ΚΟΜΒΩΝ (VERTEX COVER) 31 c 1 c 2 c 3 c 4 c 5 c 6 b 1 b 2 b 3 b 4 b 5 b 6 a a 2 a 3 a 1 4 a 5 a 6 a 7 Σχήμα 4.5: Οι σκιασμένοι κόμβοι αποτελούν το vertex cover του γράφου. Μπορεί το σφάλμα να ξεπεράσει το 100%; Θεωρούμε το γράφο του σχήματος 4.5. Ο γράφος αυτός περιέχει nc-κόμβους, nb-κόμβους (εδώ n =6) και έναν a-κόμβο για κάθε σύνολο σε κάθε διαμέριση των b-κόμβων, ο οποίος συνδέεται με όλους τους κόμβους του συνόλου στο οποίο αντιστοιχεί. Στο συγκεκριμένο παράδειγμα, οι b-κόμβοι μπορούν να διαμεριστούν σχηματ ιζοντας 3 Ϲεύγη ή 2 τριάδες ή 1 τετράδα ή 1 πεντάδα. Το ϐέλτιστο κάλυμα αποτελείται και πάλι από τους nb-κόμβους. Χρησιμοποιώντας το ευριστικό, εισάγουμε αρχικά στο κάλυμα όλους τους a-κόμβους και εν συνεχεία τους nb-κόμβους, καταλήγοντας σε ένα κάλυμα 13 κόμβων. Ο λόγος προσέγγισης στην περίπτωση αυτή είναι ρ =1+ 7, οπότε το σχετικό σφάλμα είναι 6 ε r > 100%, δηλαδή ϑα ϐρούμε λύση με μέγεθος μεγαλύτερο του διπλάσιου της ϐέλτιστης. Προφανώς, αυξάνοντας το n μπορούμε να πετύχουμε σφάλμα οσοδήποτε μεγάλο. Στους γράφους αυτής της μορφής, ο τελευταίος a-κόμβος έχει πάντα το μεγαλύτερο ϐαθμό. Άρα η λύση του ευριστικού έχει μέγεθος {a-κόμβοι} + n = L(n) +n, ενώ η ϐέλτιστη λύση έχει μέγεθος {b-κόμβοι} = n. Ετσι ο λόγος προσέγγισης του ευριστικού είναι ρ = L(n)+n n =1+ L(n) n 1 n, με L(n) = n j, j=2 οπότε το σχετικό σφάλμα είναι ε r = L(n). Στον ακόλουθο πίνακα ϕαίνεται το n
33 32 ΚΕΦΑΛΑΙΟ 4. ΠΡΟΣΕΓΓΙΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ v 1 v 1 v 2 v 3 v 4 v 2 v 3 v 4 v 5 v 6 v 7 v 5 v 6 v 7 (a) (b) Σχήμα 4.6: Ενα άλλο ευριστικό για το Vertex Cover. (a) Το vertex cover μετά την πρώτη εφαρμογή του ευριστικού, (b) Το vertex cover που δίνει το ευριστικό. σχετικό σφάλμα συναρτήσει του n για την περίπτωση αυτή : L(n) n n (%) Παρατηρούμε ότι το σφάλμα αυξάνει όπως το ln(n). Μια άλλη ιδέα είναι να εξετάζουμε μία-μία τις ακμές του γράφου που έχουν μείνει ακάλυπτες και να εισάγουμε στο κάλυμα τους κόμβους στους οποίους προσπίπτουν. Αυτό το ευριστικό είναι το 4.2. Αλγόριθμος 4.2 Ευριστικό για το Vertex Cover (2) C όσο E Επίλεξε [u, v] E τυχαία C C {u, v} διάγραψε u, v από το γράφο επέστρεψε το C Ας δούμε ένα παράδειγμα εφαρμογής του, στο σχήμα 4.6. Χρησιμοποιώντας το ευριστικό, εξετάζουμε αρχικά την ακμή [v 1,v 2 ] και εισάγουμε στο Κάλυμα τους κόμβους v 1 και v 2 (σχήμα 4.6(a)). Στη συνέχεια εισάγουμε τους κόμβους v 3 και v 6 για να καλύψουμε τη [v 3,v 6 ] καιτέλοςτουςκόμβους v 4 και v 7 για να καλύψουμε τη [v 4,v 7 ] (σχήμα 4.6(b)).
34 4.2. ΠΡΟΒΛΗΜΑ ΚΑΛΥΜΑΤΟΣ ΚΟΜΒΩΝ (VERTEX COVER) 33 Παρατηρούμε ότι κάθε κάλυμα C που δίνει το ευριστικό περιέχει τουλάχιστον έναν κόμβο από κάθε επιλεγμένη πλευρά. Ομως κανένα κάλυμα δε μπορεί να είναι μικρότερο από 1 2 C. Ο λόγος προσέγγισης σε αυτή την περίπτωση είναι ρ = Heur Opt C 1 =2, C οπότε το σχετικό σφάλμα είναι το πολύ 100%! Ερώτημα : Επιτυγχάνεται το μέγιστο σφάλμα για κάποιο στιγμιότυπο ; Προσεγγιστικοί Αλγόριθμοι για το Vertex Cover Για να μοντελοποιήσουμε το Vertex Cover, ορίζουμε για κάθε i =1,...,n τις μεταβλητές { 1 αν ο vi ανήκει στο cover, x i = 0 διαφορετικά. Τότε το γραμμικό πρόγραμμα για το Vertex Cover είναι το n min έτσι ώστε x i i=1 x i + x j 1, [v i,v j ] E x i {0, 1} v i V Η λύση του προγράμματος αυτού είναι δύσκολο πρόβλημα. Μπορούμε όμως να λύσουμε πιο εύκολα τη γραμμική χαλάρωσή του (linear relaxation) που προκύπτει αν επιτρέψουμε στα x i να παίρνουν τιμές στο διάστημα [0, 1]. Ενας προσεγγιστικός αλγόριθμος για τον υπολογισμό του Vertex Cover είναι ο 4.3. Αλγόριθμος 4.3 Vertex Cover με Rounding C Λύσε το χαλαρωμένο γραμμικό πρόγραμμα για το Vertex Cover έστω x η λύση του για i =1ως n αν x i 1 2 τότε C C {v i } επέστρεψε το C Θεώρημα 1. Ο αλγόριθμος 4.3 είναι 2-προσεγγιστικός για το Vertex Cover.
35 34 ΚΕΦΑΛΑΙΟ 4. ΠΡΟΣΕΓΓΙΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ Αλγόριθμος 4.4 Vertex Cover με Matching Βρες ένα maximal matching M του G με οποιαδήποτε μέθοδο //π.χ. με greedy αλγόριθμο για κάθε κόμβο v V που πρόσκειται σε ακμή του M V V {v} επέστρεψε το V Ενας άλλος προσεγγιστικός αλγόριθμος για το Vertex Cover είναι ο 4.4. Το σύνολο V που προκύπτει είναι πράγματι ένα κάλυμα κόμβων του γράφου. Πράγματι, κάθε ακμή του γράφου είτε ανήκει στο M, οπότε προσπίπτει σε κόμβους που έχουν εισαχθεί στο V,ήδενανήκειστοM, οπότε έχει μία τουλάχιστον γειτονική ακμή που ανήκει στο M και άρα προσπίπτει σε ένα τουλάχιστον κόμβο του V. Θεώρημα 2. Ο αλγόριθμος 4.4 είναι 2-προσεγγιστικός για το Vertex Cover. Απόδειξη. Το V είναι εφικτή λύση (γιατί ;). M OPT. SOL = V =2 M =2 OPT Weighted Vertex Cover Στην εκδοχή του προβλήματος Vertex Cover με ϐάρη, ϑεωρούμε ότι οι κόμβοι του γράφου έχουν ϐάρη και Ϲητάμε το κάλυμα V να είναι ελάχιστου ϐάρους. Εστω w η τρέχουσα συνάρτηση ϐάρους των κόμβων. Το γραμμικό πρόγραμμα για το Weighted Vertex Cover είναι όπως αυτό του Vertex Cover στην προηγούμενη ενότητα, με τη διαφορά ότι εδώ η αντικειμενική συνάρτηση είναι : min n w i x i. i=1 Θεώρημα 3. Ο αλγόριθμος 4.3 είναι 2-προσεγγιστικός για το Weighted Vertex Cover. Απόδειξη. Εστω C το κάλυμα που επιστρέφει ο αλγόριθμος και C το ϐέλτιστο κάλυμα. Συμβολίζουμε με w(c) και w(c ) τα αντίστοιχα κόστη. Εστω επίσης
36 4.3. ΠΡΟΒΛΗΜΑ ΚΑΛΥΜΑΤΟΣ ΑΚΜΩΝ (EDGE COVER) 35 z το κόστος της λύσης του χαλαρωμένου γραμμικού προγράμματος για το Vertex Cover. Είναι z = n w i x i w i x i i=1 i xi 1 2 i xi 1 2 w i 1 2 = 1 2 w(c). Άρα z 1 2 w(c) w(c) 2z 2w(C ) w(c) w(c ) 2. Ενας άλλος προσεγγιστικός αλγόριθμος για το Weighted Vertex Cover είναι ο 4.5. Αλγόριθμος 4.5 Weighted Vertex Cover όσο υπάρχουν κόμβοι στο γράφο αφαίρεσε όλους τους κόμβους μηδενικού ϐαθμού ϐρες μέγιστο c : v Vc deg(v) w(v) για κάθε v V w(v) :=w(v) c deg(v) πρόσθεσε τους κόμβους μηδενικού ϐάρους στο κάλυμα και αφαίρεσέ τουςαπότογράφο Θεώρημα 4. Ο παραπάνω αλγόριθμος είναι 2-προσεγγιστικός Πολυωνυμικές Παραλλαγές του Vertex Cover Οι ακόλουθες κατηγορίες γράφων δίνουν παραλλαγές του Vertex Cover που λύνονται σε πολυωνυμικό χρόνο. Δέντρα/Δάση (Trees/Forests) Γράφοι Διαστημάτων (Interval Graphs) Χορδικοί Γράφοι (Chordal Graphs) Διμερείς Γράφοι (Bipartite Graphs) 4.3 Πρόβλημα Καλύματος Ακμών (Edge Cover) Πρόβλημα 3 (Edge Cover). Δοθέντος ενός μη κατευθυνόμενου γράφου G = (V,E), ναϐρεθείτοελάχιστοe E τέτοιο ώστε v V u V :[u, v] E.
37 36 ΚΕΦΑΛΑΙΟ 4. ΠΡΟΣΕΓΓΙΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ Ζητάμε δηλαδή το ελάχιστο δυνατό υποσύνολο των ακμών του γράφου, απότοοποίο ϕαίνονται όλοιοικόμβοιτου. Τοσύνολοαυτόλέγεταικάλυμα ακμών (edge cover) του γράφου. Το πρόβλημα αυτό λύνεται σε πολυωνυμικό χρόνο. Θεωρούμε το γραμμικό πρόγραμμα στο οποίο οι μεταβλητές x ij έχουν τιμή : { 1 αν ο κόμβος i πρόσκειται στην ακμή j x ij = 0 στην αντίθετη περίπτωση Η εύρεση του minimum edge cover του G ανάγεται στην ελαχιστοποίηση της αντικειμενικής συνάρτησης : υπό τους περιορισμούς E j=1 V E z = i=1 j=1 x ij x ij 1, i V. Το edge cover που υπολογίζεται ϐρίσκοντας το maximum matching του γράφου κι ενώνοντας κάθε κόμβο εκτός του matching με κάποιο κόμβο εντός του matching με μία ακμή του γράφου, είναι το ελάχιστο. Αυτό εξασφαλίζεται από το γεγονός ότι το maximum matching είναι το minimum edge cover των κόμβων μέσα στο matching. Για τους υπόλοιπους κόμβους δεν μπορούμε να κάνουμε κάτι καλύτερο από το να ενώσουμε τον καθένα μέσω μίας ακμής του γράφου με έναν κόμβο του matching. 4.4 Πρόβλημα Τοποθέτησης σε Κάδους (Bin Packing) Πρόβλημα 4 (Minimum Bin Packing). Εστω n αντικείμενα μεγέθους a 1,a 2,...,a n N και κάδοι χωρητικότητας B. Να ϐρεθεί η τοποθέτηση των αντικειμένων σε κάδους που ελαχιστοποιεί το πλήθος των χρησιμοποιούμενων κάδων. Το πρόβλημα αυτό σχετίζεται με το πρόβλημα stock cutting, στο οποίο ϑέλουμε από δεδομένες πλάκες (ϕύλλα) να κόψουμε πλάκες ορισμένων διαστάσεων έτσι ώστε τα κομμάτια που ϑα περισσέψουν να είναι εύκολο να χρησιμοποιηθούν στο μέλλον. Το να αποφασίσουμε κατά πόσο k κάδοι αρκούν είναι NP-complete. Για την ακρίβεια, δεν υπάρχει α-προσεγγιστικός αλγόριθμος για το Minimum Bin
38 4.5. ΠΡΟΒΛΗΜΑ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (LIST SCHEDULING) 37 Packing για α<3/2. Για να το δούμε αυτό, ϑεωρούμε το ακόλουθο πρόβλημα διαμέρισης : Δεδομένων των αντικειμένων μεγέθους a 1,a 2,...,a n [0,S] των οποίων το ολικό άθροισμα είναι 2S, υπάρχει διαμέριση των αντικειμένων σε δύο σύνολα τέτοια ώστε το ολικό μέγεθος κάθε συνόλου να είναι S; Το πρόβλημα αυτό είναι ισοδύναμο με το Αρκούν δύο κάδοι όταν καθένας έχει χωρητικότητα S; Αν είχαμε έναν α-προσεγγιστικό αλγόριθμο (για α<3/2), ϑα μπορούσαμε να λύσουμε το πρόβλημα Partition. Στην πολυωνυμική εκδοχή του Bin Packing, αν έχουμε n αντικείμενα P 1,P 2,...,P n, άπειρο πλήθος κάδων χωρητικότητας B και ισχύει P i > B, i =1,...,n, τότε σε κάθε κάδο χωρούν δύο το πολύ αντικείμενα. Άρα 3 ουσιαστικά Ϲητάμε το μέγιστο πλήθος Ϲευγών αντικειμένων που μπορούμε να σχηματίσουμε. Για παράδειγμα, στο σχήμα Πρόβλημα Χρονοπρογραμματισμού (List Scheduling) 4.6 Πρόβλημα Χρονοπρογραμματισμού σε Γνωστό Πλήθος Επεξεργαστών (M-Processor Scheduling) Πρόβλημα 5 (M-Processor Scheduling). Εστω m πανομοιότυποι επεξεργαστές P 1,P 2,...,P m και n ανεξάρτητες εργασίες με n > m και χρόνους εκτέλεσης t 1,t 2,...,t n αντίστοιχα. Να ϐρεθεί ο ελάχιστος χρόνος περάτωσης της εκτέλεσης των εργασιών, χωρίς προεκχώρηση (preemption). Η μοντελοποίση του προβλήματος, υποθέτοντας ότι οι μηχανές είναι πανομοιότυπες, έχει ως εξής. Για εργασίες i =1,...,n και επεξεργαστές p =1,...,m ορίζουμε τις μεταβλητές { 1 αν η i ανατίθεται στον p, x ip = 0 διαφορετικά. Άρα το πρόβλημα που έχουμε να λύσουμε είναι το min c max έτσι ώστε n i=1 t ix ip c max, p =1,...,m m p=1 x ip = 1, i =1,...,n x ip {0, 1} i =1,...,nκαι p =1,...,m
39 38 ΚΕΦΑΛΑΙΟ 4. ΠΡΟΣΕΓΓΙΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ Το παραπάνω πρόβλημα είναι NP-complete, ακόμα και για m =2επεξεργαστές. Ο αλγόριθμος 4.6 είναι ένας προσεγγιστικός αλγόριθμος για το πρόβλημα list scheduling. Αλγόριθμος 4.6 List Scheduling για i =1ως n ανάθεσε την εργασία i στον επεξεργαστή με το μικρότερο ϕόρτο επέστρεψε τα σύνολα εργασιών που ανατέθηκαν σε κάθε επεξεργαστή Παράδειγμα 7 (Εφαρμογή του Αλγορίθμου 4.6). Εστω n =12εργασίες και m =4επεξεργαστές. Η ανάθεση γίνεται όπως ϕαίνεται στο σχήμα... Θεώρημα 5. Ο αλγόριθμος 4.6 είναι 2 1 -προσεγγιστικός για το List Scheduling. m Απόδειξη. Θεωρούμε ένα στιγμιότυπο I του List Scheduling. Εστω ότι ο αλγόριθμος αναθέτει το μεγαλύτερο ϕόρτο στον επεξεργαστή P 1 και ότι ο P 1 ολοκληρώνει την εκτέλεση των εργασιών αυτών σε χρόνο L. Εστω ότι η τελευταία εργασία που ανατίθεται στον P 1 είναι η j (εδώ j =8). Τότε κάθε επεξεργαστής P k,μεk 1έχει συνολικό ϕόρτο L t j, και ο ϕόρτος του P 1 πριν την ανάθεση της j σε αυτόν είναι L t j. Η συνολική διάρκεια εκτέλεσης των n εργασιών είναι n t i m(l t j )+t j (4.1) i=1 και ο ϐέλτιστος χρόνος στον οποίο μπορούμε να πετύχουμε την εκτέλεσή τους είναι n i=1 OPT(I) t i m. (4.2) Από τις (4.1) και (4.2) προκύπτει : OPT(I) (L t j )+ t j m = A(I) (1 1 m )t j (4.3) όπου A(I) είναι ο χρόνος περάτωσης των εργασιών που προκύπτει από την ανάθεσή τους με τον αλγόριθμο 4.6. Επειδή OPT(I) t j, η (4.3) δίνει A(I) OPT(I) 2 1 m.
40 4.6. ΠΡΟΒΛΗΜΑ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΕ ΓΝΩΣΤΟ ΠΛΗΘΟΣ ΕΠΕΞΕΡΓΑΣΤΩΝ (M-PROCESSO Ο παραπάνω λόγος προσέγγισης είναι tight. Πράγματι, αν ϑεωρήσουμε ένα στιγμιότυπο I του προβλήματος με n = m(m 1) + 1, t 1 = t 2 =...= t n 1 =1και t n = m, τότεopt(i) =m και A(I) =2m 1, οπότε ισχύει A(I) OPT(I) =2 1 m. Η περίπτωση αυτή ϕαίνεται στο σχήμα... Πρόβλημα 6 (Minimum M-Processor Scheduling). Δοθέντων n εργασιών e 1,e 2,...,e n και m επεξεργαστών P 1,P 2,...,P m με m σταθερό, να ϐρεθεί η ανάθεση των εργασιών που ελαχιστοποιεί το makespan (διάρκεια εκτέλεσης χωρίς προεκχώρηση). Για το πρόβλημα αυτό υπάρχει FPTAS Multifit Ο προσεγγιστικός αυτός αλγόριθμος (4.7) προτάθηκε από τους Coffman, Garey και Johnson. Αλγόριθμος 4.7 M-Processor Scheduling Διάταξε τις εργασίες σε ϕθίνουσα σειρά του χρόνου εκτέλεσης Υπολόγισε τα κάτω και άνω ϕράγματα c min και c max επανέλαβε c = cmin+cmax 2 για i =1ως n ανάθεσε την i στον πρώτο διαθέσιμο επεξεργαστή αν πλήθος χρησιμοποιούμενων επεξεργαστών >mτότε c min = c αλλιώς c max = c μέχρι c min == c max ή να γίνει ορισμένο πλήθος επαναλήψεων επέστρεψε τα σύνολα εργασιών που ανατέθηκαν σε κάθε επεξεργαστή Θεωρούμε τώρα την περίπτωση που οι εργασίες επικοινωνούν μεταξύ τους και για τη μοντελοποίηση ορίζουμε τις μεταβλητές { 1 αν η Ti επικοινωνεί με την T c ij = j, 0 διαφορετικά. Το πρόβλημα που έχουμε να λύσουμε είναι το min c max
για NP-Δύσκολα Προβλήματα
Προσεγγιστικοί Αλγόριθμοι για NP-Δύσκολα Προβλήματα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Διαβάστε περισσότεραΑλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα
Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα Διδάσκοντες: E. Ζάχος, Α. Παγουρτζής Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα
Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι
Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα
Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αντιμετώπιση NP- υσκολίας Αν P NP, όχι αλγόριθμος
Διαβάστε περισσότεραChapter 9: NP-Complete Problems
Θεωρητική Πληροφορική Ι: Αλγόριθμοι και Πολυπλοκότητα Chapter 9: NP-Complete Problems 9.3 Graph-Theoretic Problems (Συνέχεια) 9.4 Sets and Numbers Γιώργος Αλεξανδρίδης gealexan@mail.ntua.gr Κεφάλαιο 9:
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν
Διαβάστε περισσότεραΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1
ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 1 Βελτιστοποίηση Στην προσπάθεια αντιμετώπισης και επίλυσης των προβλημάτων που προκύπτουν στην πράξη, αναπτύσσουμε μαθηματικά μοντέλα,
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι
Κεφάλαιο 12 Προσεγγιστικοί Αλγόριθμοι 12.1 Προβλήματα Βελτιστοποίησης Σε ένα πρόβλημα βελτιστοποίησης σε κάθε στιγμιότυπο του προβλήματος αντιστοιχούν κάποιες εφικτές (feasible) -δηλαδή επιτρεπτές- λύσεις,
Διαβάστε περισσότεραΠροηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι.
Προηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι Άρης Παγουρτζής Άνοιξη 2018 Προσεγγιστικοί Αλγόριθμοι Αφορούν κυρίως σε προβλήματα βελτιστοποίησης:
Διαβάστε περισσότεραΑξιολόγηση Ευριστικών Αλγορίθµων
Προσεγγιστικοί Αλγόριθµοι Πολλές ϕορές η εύρεση της ϐέλτιστων λύσεων προβληµάτων ακέραιου γραµµικού προγραµµατισµού είναι µια χρονοβόρα διαδικασία (εκθετική πολυπλοκότητα) Προσεγγιστικοί Αλγόριθµοι Πολλές
Διαβάστε περισσότεραΕξαντλητική Απαρίθµηση
Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου Ως µέτρο ϑεωρούµε
Διαβάστε περισσότεραΔυναμικός Προγραμματισμός
Δυναμικός Προγραμματισμός Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διωνυμικοί Συντελεστές Διωνυμικοί
Διαβάστε περισσότεραΔυναμικός Προγραμματισμός
Δυναμικός Προγραμματισμός Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις /προσθήκες: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διωνυμικοί Συντελεστές
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι
Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)
Διαβάστε περισσότεραΑκέραιος Γραµµικός Προγραµµατισµός
Μέγιστο Ανεξάρτητο Σύνολο Μέγιστο Ανεξάρτητο Σύνολο Εφαρµογές : Παράλληλη εκτέλεση εργασιών Χρονοπρογραµµατισµός (scheduling) Ανάθεση πόρων (resource allocation) Πρόβληµα k-ϐασιλισσών Τηλεπικοινωνίες Μέγιστο
Διαβάστε περισσότεραΑλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση
Διαβάστε περισσότεραΑλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων
Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and
Διαβάστε περισσότεραυναμικός Προγραμματισμός
υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί
Διαβάστε περισσότεραΑκέραιος Γραµµικός Προγραµµατισµός
Μέγιστο Ανεξάρτητο Σύνολο Μέγιστο Ανεξάρτητο Σύνολο Εφαρµογές : Παράλληλη εκτέλεση εργασιών Χρονοπρογραµµατισµός (scheduling) Ανάθεση πόρων (resource allocation) Πρόβληµα k-ϐασιλισσών Τηλεπικοινωνίες Μέγιστο
Διαβάστε περισσότεραΑλγοριθμικές Τεχνικές
Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και
Διαβάστε περισσότεραBranch and Bound. Branch and Bound
Μέθοδος επίλυσης προβληµάτων ακέραιου γραµµικού προγραµµατισµού Μέθοδος επίλυσης προβληµάτων ακέραιου γραµµικού προγραµµατισµού Προσπαθούµε να αποφύγουµε την εξαντλητική αναζήτηση Μέθοδος επίλυσης προβληµάτων
Διαβάστε περισσότεραΚεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.
Κεφάλαιο 1 Πέντε Αντιπροσωπευτικά Προβλήματα Έκδοση 1.4, 30/10/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 1.2 Πέντε Αντιπροσωπευτικά Προβλήματα 1. Χρονοπρογραμματισμός Διαστημάτων
Διαβάστε περισσότεραΑκέραιος Γραμμικός Προγραμματισμός
Τμήμα Μηχανικών Πληροφορικής ΤΕ 2017-2018 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για
Διαβάστε περισσότεραΑκέραιος Γραμμικός Προγραμματισμός
Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για
Διαβάστε περισσότεραΑλγόριθµοι Προσέγγισης για NP- ύσκολα Προβλήµατα
Αλγόριθµοι Προσέγγισης για NP- ύσκολα Προβλήµατα Παύλος Σπυράκης Πανεπιστήµιο Πατρών Τοµέας Θεµελιώσεων και Εφαρµογών της Επιστήµης των Υπολογιστών Ερευνητικό Ακαδηµαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών
Διαβάστε περισσότεραΑλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό
Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Προσεγγιστικοί Αλγόριθμοι Απόδοση χειρότερης
Διαβάστε περισσότεραΚεφάλαιο 5ο: Ακέραιος προγραμματισμός
Κεφάλαιο 5ο: Ακέραιος προγραμματισμός 5.1 Εισαγωγή Ο ακέραιος προγραμματισμός ασχολείται με προβλήματα γραμμικού προγραμματισμού στα οποία μερικές ή όλες οι μεταβλητές είναι ακέραιες. Ένα γενικό πρόβλημα
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό
Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αντιμετώπιση NP- υσκολίας Αν P NP, όχι
Διαβάστε περισσότεραILP-Feasibility conp
Διάλεξη 19: 23.12.2014 Θεωρία Γραμμικού Προγραμματισμού Γραφέας: Χαρίλαος Τζόβας Διδάσκων: Σταύρος Κολλιόπουλος 19.1 Θεωρία Πολυπλοκότητας και προβλήματα απόφασης Για να μιλήσουμε για προβλήματα και τον
Διαβάστε περισσότεραΚατανεμημένα Συστήματα Ι
Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 9 P vs NP 1 / 13 Δυσκολία επίλυσης υπολογιστικών προβλημάτων Κάποια προβλήματα είναι εύκολα να λυθούν με
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού
Πληροφοριακά Συστήματα Διοίκησης Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού Σημασία μοντέλου Το μοντέλο δημιουργεί μια λογική δομή μέσω της οποίας αποκτούμε μια χρήσιμη άποψη
Διαβάστε περισσότεραΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ Λ03Β ΑΛΓΟΡΙΘΜΟΙ ΔΙΚΤΥΩΝ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΦΛΕΒΑΡΗΣ 2004
ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ Λ03Β ΑΛΓΟΡΙΘΜΟΙ ΔΙΚΤΥΩΝ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΦΛΕΒΑΡΗΣ 2004 Παρουσίαση του paper: Increasing the Weight of Minimum Spanning Trees Greg N. Frederickson and Roberto Solis- Oba Journal of Algorithms
Διαβάστε περισσότεραΥπολογιστική Πολυπλοκότητα
Υπολογιστική Πολυπλοκότητα ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Γιατί κάποια (επιλύσιμα) προβλήματα είναι δύσκολο
Διαβάστε περισσότεραΚατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π
Περιορισμοί Αλγοριθμικής Ισχύος Κατηγοριοποίηση πολυπλοκοτήτων Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός
Διαβάστε περισσότεραΧρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»
Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης
Διαβάστε περισσότεραυναμικός Προγραμματισμός
υναμικός Προγραμματισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιακριτό Πρόβλημα Σακιδίου ίνονται n αντικείμενα και σακίδιο μεγέθους Β. Αντικείμενο
Διαβάστε περισσότεραυναμικός Προγραμματισμός
υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί
Διαβάστε περισσότεραΑσυμπτωτικός Συμβολισμός
Ασυμπτωτικός Συμβολισμός Επιμέλεια διαφανειών: Δημήτρης Φωτάκης (λίγες προσθήκες: Άρης Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα
Διαβάστε περισσότεραΜη Ντετερμινισμός και NP-Πληρότητα
Μη Ντετερμινισμός και NP-Πληρότητα Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Μη Ντετερμινιστικές Μηχανές Turing Μη ντετερμινιστική
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό
Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γενική Προσέγγιση ιατυπώνουμε το πρόβλημα
Διαβάστε περισσότεραΥπολογιστικό Πρόβληµα
Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις
Διαβάστε περισσότεραmax c 1 x 1 + c 2 x c n x n υπό a 11 x 1 + a 12 x a 1n x n b 1 a 21 x 1 + a 22 x a 2n x n b 2 a m1 x 1 + a m2 x a mn x n b m
Υπολογιστικές Μέθοδοι στη Θεωρία Αποφάσεων Ενότητα 10 Εισαγωγή στον Ακέραιο Προγραμματισμό Αντώνης Οικονόμου Τμήμα Μαθηματικών Πανεπιστήμιο Αθηνών Προπτυχιακό πρόγραμμα σπουδών 29 Φεβρουαρίου 2016 Προβλήματα
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ
ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Νοέμβριος 006 Αθήνα Κεφάλαιο ο Ακέραιος και μικτός προγραμματισμός. Εισαγωγή Μια από τις
Διαβάστε περισσότεραΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ
Ενότητα 4 Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας
Διαβάστε περισσότεραΑλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου
Διαβάστε περισσότεραΥπολογιστική Πολυπλοκότητα
Υπολογιστική Πολυπλοκότητα ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 13: Πολυωνυμική αναγωγή Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΑλγόριθμοι και Πολυπλοκότητα
7ο εξάμηνο Σ.Η.Μ.Μ.Υ. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 4η εβδομάδα: Εύρεση k-οστού Μικρότερου Στοιχείου, Master Theorem, Τεχνική Greedy: Knapsack, Minimum Spanning Tree, Shortest Paths
Διαβάστε περισσότεραΔυναμικός Προγραμματισμός
Τρίγωνο του Pascal Δυναμικός Προγραμματισμός Διωνυμικοί συντελεστές Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο
Διαβάστε περισσότεραΔΥΣΚΟΛΙΑ ΣΤΗΝ ΠΡΟΣΕΓΓΙΣΙΜΟΤΗΤΑ
ΔΥΣΚΟΛΙΑ ΣΤΗΝ ΠΡΟΣΕΓΓΙΣΙΜΟΤΗΤΑ Επιμέλεια : Γεωργίου Κωστής Παρουσίαση στα πλαίσια του μαθήματος: Δίκτυα και πολυπλοκότητα Φεβρουάριος 004 μπλ Κίνητρα για τη μελέτη της μη προσεγγισιμότητας Ο πληρέστερος
Διαβάστε περισσότεραΑκέραιος Γραμμικός Προγραμματισμός
Τμήμα Πληροφορικής & Τηλεπικοινωνιών Πανεπιστήμιο Ιωαννίνων 2018-2019 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος- Γεωργία Φουτσιτζή Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος
Διαβάστε περισσότερα4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37
4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 3/2/2019 1 / 37 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον i ανάμεσα σε όλους
Διαβάστε περισσότεραΘεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής
Θεωρία Παιγνίων και Αποφάσεων Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Παίγνια μηδενικού αθροίσματος PessimisIc play Αμιγείς max-min και
Διαβάστε περισσότερα4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38
4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 7 Φεβρουαρίου 2017 1 / 38 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον
Διαβάστε περισσότεραΕιδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
Διαβάστε περισσότεραΚεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,
Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα
Διαβάστε περισσότεραΥπολογιστική Πολυπλοκότητα
Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθµου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση µεγέθους στιγµιότυπου εισόδου. Χρόνος, µνήµη, επεξεργαστές, επικοινωνία,
Διαβάστε περισσότεραΑσυμπτωτικός Συμβολισμός
Ασυμπτωτικός Συμβολισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθμου Α: Ποσότητα
Διαβάστε περισσότεραΜοντελοποίηση προβληµάτων
Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Σχεδιασµός Αλγορίθµων Ακέραιος προγραµµατισµός Αποδοτικοί Αλγόριθµοι Μη Αποδοτικοί Αλγόριθµοι Θεωρία γράφων
Διαβάστε περισσότεραΑριθμητική Ανάλυση και Εφαρμογές
Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα
Διαβάστε περισσότεραNP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων
NP-πληρότητα Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων Πολυωνυμικός μετασχηματισμός Ένας πολυωνυμικός μετασχηματισμός από την L 1 Σ 1 * στην L 2 Σ 2 * είναι μια συνάρτηση
Διαβάστε περισσότεραApproximation Algorithms for the k-median problem
Approximation Algorithms for the k-median problem Ζακυνθινού Λυδία Παυλάκος Γεώργιος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Θεωρία Υπολογισμού 2011-2012 Το πρόβλημα
Διαβάστε περισσότεραΛύσεις 4ης Σειράς Ασκήσεων
Λύσεις 4ης Σειράς Ασκήσεων Άσκηση 1 Αναγάγουμε τν Κ 0 που γνωρίζουμε ότι είναι μη-αναδρομική (μη-επιλύσιμη) στην γλώσσα: L = {p() η μηχανή Turing Μ τερματίζει με είσοδο κενή ταινία;} Δοσμένης της περιγραφής
Διαβάστε περισσότεραΚεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού
Κεφάλαιο 6 Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού 1 Γραφική επίλυση Η γραφική μέθοδος επίλυσης μπορεί να χρησιμοποιηθεί μόνο για πολύ μικρά προβλήματα με δύο ή το πολύ τρεις μεταβλητές απόφασης.
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό
Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αντιμετώπιση NP- υσκολίας Αν P NP, όχι
Διαβάστε περισσότεραΕυρετικές Μέθοδοι. Ενότητα 1: Εισαγωγή στις ευρετικές μεθόδους. Άγγελος Σιφαλέρας. Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΙ
Ευρετικές Μέθοδοι Ενότητα 1: Εισαγωγή στις ευρετικές μεθόδους Μεταπτυχιακό Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΔιακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Διαβάστε περισσότεραΑλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων
Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός
Διαβάστε περισσότεραΠολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης
Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης Προσπάθεια υλοποίησης Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι
Διαβάστε περισσότεραΕισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο
Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠροσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό
Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γενική Προσέγγιση ιατυπώνουμε το πρόβλημα
Διαβάστε περισσότεραΚουτσιούμπας Αχιλλέας U. Adamy, C. Ambuehl, R. Anand, T. Erlebach
Κουτσιούμπας Αχιλλέας ΕΛΕΓΧΟΣ ΚΛΗΣΕΩΝ ΣΕ ΑΚΤΥΛΙΟ U. Adamy, C. Ambuehl, R. Anand, T. Erlebach ΜΠΛΑ 1 Δομή παρουσίασης Γενικά Ορισμός προβλήματος Σχετιζόμενη δουλειά Εισαγωγικά Αλγόριθμος Παράδειγμα εκτέλεσης
Διαβάστε περισσότεραmax 17x x 2 υπό 10x 1 + 7x 2 40 x 1 + x 2 5 x 1, x 2 0.
Υπολογιστικές Μέθοδοι στη Θεωρία Αποφάσεων Ενότητα 11 Επίλυση στον Ακέραιο Προγραμματισμό Αντώνης Οικονόμου Τμήμα Μαθηματικών Πανεπιστήμιο Αθηνών Προπτυχιακό πρόγραμμα σπουδών 6 Μαΐου 2016 Η μέθοδος κλάδος-φράγμα
Διαβάστε περισσότεραΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ολοκληρωμένη μαθηματική τεχνική βελτιστοποίησης Ευρύτατο φάσμα εφαρμογών Εισαγωγή ακέραιων/λογικών/βοηθητικών μεταβλητών Δυνατότητα γραμμικοποίησης με 0-1 μεταβλητές
Διαβάστε περισσότεραΚλάσεις Πολυπλοκότητας
Κλάσεις Πολυπλοκότητας Παύλος Εφραιμίδης pefraimi ee.duth.gr Κλάσεις Πολυπλοκότητας 1 Οι κλάσεις πολυπλοκότητας P και NP P: Polynomial ΗκλάσηP περιλαμβάνει όλα τα υπολογιστικά προβλήματα που μπορούν
Διαβάστε περισσότεραΥπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017
ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3 Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017 ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Bέλτιστος σχεδιασμός με αντικειμενική συνάρτηση και περιορισμούς
Διαβάστε περισσότεραΤεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή
Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Ικανοποίηση Περιορισμών Κατηγορία προβλημάτων στα οποία είναι γνωστές μερικές
Διαβάστε περισσότεραΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού
ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού 1 Σχέση γραμμικού και ακέραιου προγραμματισμού Ενα πρόβλημα ακέραιου προγραμματισμού είναι
Διαβάστε περισσότεραΑριθμητική Ανάλυση & Εφαρμογές
Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου
Διαβάστε περισσότεραΘεωρία Αποφάσεων και Βελτιστοποίηση
Θεωρία Αποφάσεων και Βελτιστοποίηση http://www.di.uoa.gr/ telelis/opt.html Ορέστης Τελέλης telelis@di.uoa.gr Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών Θεωρία Αποφάσεων και Βελτιστοποίηση
Διαβάστε περισσότεραΜη γράφετε στο πίσω μέρος της σελίδας
Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Φεβρουαρίου 2016 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες
Διαβάστε περισσότεραP. Chretienne, E. Coffman, J. Lenstra, Z. Liu Scheduling Theory and its Applications John Wiley & Sons, New York, (1995)
ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ 8ο Εξάμηνο ΕΡΓΑΣΙΑ P. Chretienne, E. Coffman, J. Lenstra, Z. Liu Scheduling Theory and its Applications John Wiley & Sons, New York, (995) CHAPTER (μέχρι και..) Scheduling with Communication
Διαβάστε περισσότεραΤο Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem
Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Έλενα Ρόκου Μεταδιδακτορική Ερευνήτρια ΕΜΠ Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΑσυμπτωτικός Συμβολισμός
Ασυμπτωτικός Συμβολισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΓραμμικός Προγραμματισμός Μέθοδος Simplex
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση
Διαβάστε περισσότεραΘεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 1 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΓΡΑΦΗΜΑΤΩΝ Σταύρος Δ. Νικολόπουλος 2017-18 www.cs.uoi.gr/~stavros Σχετικά με το Μάθημα Ώρες γραφείου: Δευτέρα Παρασκευή
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες
Διαβάστε περισσότεραΑριθμητική Ανάλυση και Εφαρμογές
Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Παρεμβολή και Παρεκβολή Εισαγωγή Ορισμός 6.1 Αν έχουμε στη διάθεσή μας τιμές μιας συνάρτησης
Διαβάστε περισσότερα2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΕΙΣΑΓΩΓΗ ΣΤΗN ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ 2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μ. Καρλαύτης Ν. Λαγαρός Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative
Διαβάστε περισσότεραΑλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.
Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά
Διαβάστε περισσότεραI 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11
Αλγόριθμοι και Πολυπλοκότητα 2η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Δεκέμβριος 2018 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος 2018 1 / 64 Outline 1 Άσκηση
Διαβάστε περισσότεραΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΣΤΟΥΚΑ ΝΙΚΟΛΑΟΣ ΛΑΜΠΡΟΥ. μπλ 2014
ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΣΤΟΥΚΑ ΝΙΚΟΛΑΟΣ ΛΑΜΠΡΟΥ μπλ 2014 Έχουμε G = (V,E) μη κατευθυνόμενο γράφο με μη αρνητικές χωρητικότητες c e για κάθε e E. {(s 1, t 1 ),..., (s k, t k )} διακριτά διατεταγμένη ζεύγη
Διαβάστε περισσότεραΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης
ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή
Διαβάστε περισσότεραviii 20 Δένδρα van Emde Boas 543
Περιεχόμενα Πρόλογος xi I Θεμελιώδεις έννοιες Εισαγωγή 3 1 Ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες 5 1.1 Αλγόριθμοι 5 1.2 Οι αλγόριθμοι σαν τεχνολογία 12 2 Προκαταρκτικές έννοιες και παρατηρήσεις
Διαβάστε περισσότεραΑλγόριθμοι και Πολυπλοκότητα
Αλγόριθμοι και Πολυπλοκότητα 7ο εξάμηνο ΣHMΜY Εισαγωγή Διδάσκοντες: Άρης Παγουρτζής, Δώρα Σούλιου Στάθης Ζάχος, Δημήτρης Σακαβάλας Επιμέλεια διαφανειών: Άρης Παγουρτζής www.corelab.ntua.gr/courses/algorithms
Διαβάστε περισσότεραΤεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/
Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας
Διαβάστε περισσότερα