Συνδυαστική Βελτιστοποίηση Σημειώσεις. Β. Ζησιμόπουλος

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Συνδυαστική Βελτιστοποίηση Σημειώσεις. Β. Ζησιμόπουλος"

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-Δύσκολα Προβλήματα

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

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αντιμετώπιση NP- υσκολίας Αν P NP, όχι αλγόριθμος

Διαβάστε περισσότερα

Chapter 9: NP-Complete Problems

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 1 Βελτιστοποίηση Στην προσπάθεια αντιμετώπισης και επίλυσης των προβλημάτων που προκύπτουν στην πράξη, αναπτύσσουμε μαθηματικά μοντέλα,

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Κεφάλαιο 12 Προσεγγιστικοί Αλγόριθμοι 12.1 Προβλήματα Βελτιστοποίησης Σε ένα πρόβλημα βελτιστοποίησης σε κάθε στιγμιότυπο του προβλήματος αντιστοιχούν κάποιες εφικτές (feasible) -δηλαδή επιτρεπτές- λύσεις,

Διαβάστε περισσότερα

Προηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι.

Προηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι. Προηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι Άρης Παγουρτζής Άνοιξη 2018 Προσεγγιστικοί Αλγόριθμοι Αφορούν κυρίως σε προβλήματα βελτιστοποίησης:

Διαβάστε περισσότερα

Αξιολόγηση Ευριστικών Αλγορίθµων

Αξιολόγηση Ευριστικών Αλγορίθµων Προσεγγιστικοί Αλγόριθµοι Πολλές ϕορές η εύρεση της ϐέλτιστων λύσεων προβληµάτων ακέραιου γραµµικού προγραµµατισµού είναι µια χρονοβόρα διαδικασία (εκθετική πολυπλοκότητα) Προσεγγιστικοί Αλγόριθµοι Πολλές

Διαβάστε περισσότερα

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

Εξαντλητική Απαρίθµηση Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου Υπενθύµιση Χαράκτηρίζουµε τους αλγόριθµους ως προς το χρόνο εκτέλεσης συναρτήσει της εισόδου Ως µέτρο ϑεωρούµε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

Ακέραιος Γραµµικός Προγραµµατισµός Μέγιστο Ανεξάρτητο Σύνολο Μέγιστο Ανεξάρτητο Σύνολο Εφαρµογές : Παράλληλη εκτέλεση εργασιών Χρονοπρογραµµατισµός (scheduling) Ανάθεση πόρων (resource allocation) Πρόβληµα k-ϐασιλισσών Τηλεπικοινωνίες Μέγιστο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές. 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

Branch and Bound. Branch and Bound Μέθοδος επίλυσης προβληµάτων ακέραιου γραµµικού προγραµµατισµού Μέθοδος επίλυσης προβληµάτων ακέραιου γραµµικού προγραµµατισµού Προσπαθούµε να αποφύγουµε την εξαντλητική αναζήτηση Μέθοδος επίλυσης προβληµάτων

Διαβάστε περισσότερα

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

Κεφάλαιο 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- ύσκολα Προβλήµατα Αλγόριθµοι Προσέγγισης για NP- ύσκολα Προβλήµατα Παύλος Σπυράκης Πανεπιστήµιο Πατρών Τοµέας Θεµελιώσεων και Εφαρµογών της Επιστήµης των Υπολογιστών Ερευνητικό Ακαδηµαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

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

Διαβάστε περισσότερα

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

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός Κεφάλαιο 5ο: Ακέραιος προγραμματισμός 5.1 Εισαγωγή Ο ακέραιος προγραμματισμός ασχολείται με προβλήματα γραμμικού προγραμματισμού στα οποία μερικές ή όλες οι μεταβλητές είναι ακέραιες. Ένα γενικό πρόβλημα

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

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

Διαβάστε περισσότερα

ILP-Feasibility conp

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 ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ Λ03Β ΑΛΓΟΡΙΘΜΟΙ ΔΙΚΤΥΩΝ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΦΛΕΒΑΡΗΣ 2004 Παρουσίαση του paper: Increasing the Weight of Minimum Spanning Trees Greg N. Frederickson and Roberto Solis- Oba Journal of Algorithms

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μη Ντετερμινισμός και 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

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/ / 37 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 3/2/2019 1 / 37 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον i ανάμεσα σε όλους

Διαβάστε περισσότερα

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής Θεωρία Παιγνίων και Αποφάσεων Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Παίγνια μηδενικού αθροίσματος PessimisIc play Αμιγείς max-min και

Διαβάστε περισσότερα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 7 Φεβρουαρίου 2017 1 / 38 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.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-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων NP-πληρότητα Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων Πολυωνυμικός μετασχηματισμός Ένας πολυωνυμικός μετασχηματισμός από την L 1 Σ 1 * στην L 2 Σ 2 * είναι μια συνάρτηση

Διαβάστε περισσότερα

Approximation Algorithms for the k-median problem

Approximation Algorithms for the k-median problem Approximation Algorithms for the k-median problem Ζακυνθινού Λυδία Παυλάκος Γεώργιος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Θεωρία Υπολογισμού 2011-2012 Το πρόβλημα

Διαβάστε περισσότερα

Λύσεις 4ης Σειράς Ασκήσεων

Λύσεις 4ης Σειράς Ασκήσεων Λύσεις 4ης Σειράς Ασκήσεων Άσκηση 1 Αναγάγουμε τν Κ 0 που γνωρίζουμε ότι είναι μη-αναδρομική (μη-επιλύσιμη) στην γλώσσα: L = {p() η μηχανή Turing Μ τερματίζει με είσοδο κενή ταινία;} Δοσμένης της περιγραφής

Διαβάστε περισσότερα

Κεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού

Κεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού Κεφάλαιο 6 Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού 1 Γραφική επίλυση Η γραφική μέθοδος επίλυσης μπορεί να χρησιμοποιηθεί μόνο για πολύ μικρά προβλήματα με δύο ή το πολύ τρεις μεταβλητές απόφασης.

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα 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 Κουτσιούμπας Αχιλλέας ΕΛΕΓΧΟΣ ΚΛΗΣΕΩΝ ΣΕ ΑΚΤΥΛΙΟ 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.

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 ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3 Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017 ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Bέλτιστος σχεδιασμός με αντικειμενική συνάρτηση και περιορισμούς

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Ικανοποίηση Περιορισμών Κατηγορία προβλημάτων στα οποία είναι γνωστές μερικές

Διαβάστε περισσότερα

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 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)

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 Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Έλενα Ρόκου Μεταδιδακτορική Ερευνήτρια ΕΜΠ Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Ασυμπτωτικός Συμβολισμός Ασυμπτωτικός Συμβολισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

Διαβάστε περισσότερα

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

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 1 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΓΡΑΦΗΜΑΤΩΝ Σταύρος Δ. Νικολόπουλος 2017-18 www.cs.uoi.gr/~stavros Σχετικά με το Μάθημα Ώρες γραφείου: Δευτέρα Παρασκευή

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες

Διαβάστε περισσότερα

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Παρεμβολή και Παρεκβολή Εισαγωγή Ορισμός 6.1 Αν έχουμε στη διάθεσή μας τιμές μιας συνάρτησης

Διαβάστε περισσότερα

2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΕΙΣΑΓΩΓΗ ΣΤΗN ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ 2 η ΕΝΟΤΗΤΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μ. Καρλαύτης Ν. Λαγαρός Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative

Διαβάστε περισσότερα

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

Αλγόριθμοι και πολυπλοκότητα: 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

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 ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΣΤΟΥΚΑ ΝΙΚΟΛΑΟΣ ΛΑΜΠΡΟΥ μπλ 2014 Έχουμε G = (V,E) μη κατευθυνόμενο γράφο με μη αρνητικές χωρητικότητες c e για κάθε e E. {(s 1, t 1 ),..., (s k, t k )} διακριτά διατεταγμένη ζεύγη

Διαβάστε περισσότερα

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

Διαβάστε περισσότερα

viii 20 Δένδρα van Emde Boas 543

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/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα