Εναλλακτικές μέθοδοι μερικής απαρίθμησης σε προβλήματα ακεραίου προγραμματισμού

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

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

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

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

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

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

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

max 17x x 2 υπό 10x 1 + 7x 2 40 x 1 + x 2 5 x 1, x 2 0.

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

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

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

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

ΚΕΦΑΛΑΙΟ 4. Ακέραια Πολύεδρα

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

3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ

Γραµµικός Προγραµµατισµός (ΓΠ)

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

Τμήμα Μηχανικών Πληροφορικής ΤΕ Η μέθοδος Simplex. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 19/01/2017

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου

Η μέθοδος Simplex. Γεωργία Φουτσιτζή-Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

ΚΕΦΑΛΑΙΟ 2 ΑΛΓΟΡΙΘΜΟΙ ΤΥΠΟΥ SIMPLEX. 2.1 Βασικές έννοιες - Ορισμοί

ΕΠΙΛΥΣΗ ΕΚΦΥΛΙΣΜΕΝΩΝ ΚΑΙ ΓΕΝΙΚΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ. 4.1 Επίλυση Εκφυλισμένων Γραμμικών Προβλημάτων

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

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

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

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017

z = c 1 x 1 + c 2 x c n x n

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

Branch and Bound. Branch and Bound

Επιχειρησιακή Έρευνα

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

Κεφάλαιο 3ο: Γραμμικός Προγραμματισμός

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

Προβλήματα Μεταφορών (Transportation)

ΤΕΙ Χαλκίδας Σχολή Διοίκησης και Οικονομίας Τμήμα Διοίκησης Επιχειρήσεων

Επιχειρησιακή Έρευνα Θεωρητική Θεμελίωση της Μεθόδου Simplex

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

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

είναι πρόβλημα μεγιστοποίησης όλοι οι περιορισμοί είναι εξισώσεις με μη αρνητικούς του σταθερούς όρους όλες οι μεταβλητές είναι μη αρνητικές

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

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

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ

Αναγνώριση Προτύπων Ι

Επιχειρησιακή Έρευνα I

3.7 Παραδείγματα Μεθόδου Simplex

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

Μάθημα Επιλογής 8 ου εξαμήνου

Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης.

Εφαρμοσμένη Βελτιστοποίηση

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 28/3/2012. Lecture07 1

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

ΑΛΓΟΡΙΘΜΟΙ Ενότητα 10

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

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

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

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

Πληροφοριακά Συστήματα Διοίκησης. Εισαγωγή στον Γραμμικό Προγραμματισμό

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

Τμήμα Μηχανικών Πληροφορικής ΤΕ Πρόβλημα Μεταφοράς. Γεωργία Φουτσιτζή ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα

Επιχειρησιακή Έρευνα I

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

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

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

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών

Αλγόριθμοι Τυφλής Αναζήτησης

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis)

Σχεδιασμός επέκτασης του συστήματος ηλεκτροπαραγωγής με τη χρήση Πολυκριτηριακού Γραμμικού Προγραμματισμού

Θεωρία Αλγόριθμοι Γραμμικής Βελτιστοποίησης 3/4/2012. Lecture08 1

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

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

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

Επιχειρησιακή Έρευνα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

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

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ

Μάθημα Επιλογής 8 ου εξαμήνου

Κεφάλαιο 9. Έλεγχοι υποθέσεων

Η μέθοδος Simplex. Χρήστος Γκόγκος. Χειμερινό Εξάμηνο ΤΕΙ Ηπείρου

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Επίλυση Προβλημάτων 1

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) +

Επίλυση προβλημάτων με αναζήτηση

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ Διπλωματική εργασία Εναλλακτικές μέθοδοι μερικής απαρίθμησης σε προβλήματα ακεραίου προγραμματισμού Ζλατάνος Αλέξανδρος 4433 ΘΕΣΣΑΛΟΝΙΚΗ 2007

2

Περιεχόμενα Εισαγωγή 5 Κεφάλαιο 1 : Περιγραφή του προβλήματος 1.1 Μαθηματικός Προγραμματισμός 6 1.2 Γραμμικός Προγραμματισμός 7 1.3 Η μέθοδος Simplex 9 1.4 Ο Ακέραιος Προγραμματισμός 11 1.5 Απαρίθμηση και Branch And Bound 13 1.5.1 Η στρατηγική υπολογισμού κάτω φράγματος 15 1.5.2 Η στρατηγική διακλάδωσης 16 1.5.3 Η στρατηγική αναζήτησης 16 1.5.4 Ένα απλό παράδειγμα μερικής απαρίθμησης 16 Κεφάλαιο 2ο: Η έρευνα 2.1 Γενικά Στόχοι της έρευνας 20 2.2 Η στρατηγική αναζήτησης (ή επιλογής προβλήματος) 22 2.2.1 Το κριτήριο του ελάχιστου κάτω φράγματος 22 2.2.2 Η στρατηγική της κατά βάθος αναζήτησης 24 2.3 Οι στρατηγικές επιλογής μεταβλητής διακλάδωσης 25 2.3.1 Το κριτήριο του μεγαλύτερου συντελεστή στην αντικειμενική συνάρτηση 26 2.3.2 Το κριτήριο της μεγιστοποίησης του κάτω φράγματος των παραγόμενων κόμβων 26 Κεφάλαιο 3ο : Υπολογιστικά αποτελέσματα 3.1 Οι συνθήκες διεξαγωγής των υπολογιστικών πειραμάτων 28 3.2 Η στρατηγική επιλογής προβλήματος 28 3.3 Η στρατηγική επιλογής μεταβλητής 31 Επίλογος-Συμπεράσματα 34 Παράρτημα: Η εφαρμογή, τα προβλήματα, ο πηγαίος κώδικας 1 Η εφαρμογή Z1Opt 35 2 Η βιβλιοθήκη συναρτήσεων γραμμικού προγραμματισμού 37 3 Τα προβλήματα που χρησιμοποιήθηκαν 38 4 Ο πηγαίος κώδικας της εφαρμογής 39 Βιβλιογραφία 60 3

4

Εισαγωγή Το παρόν πόνημα έχει ως αντικείμενο την μερική απαρίθμηση όπως αυτή εφαρμόζεται σε προβλήματα διακριτής βελτιστοποίησης. Πιο συγκεκριμένα αντικείμενο μελέτης μας θα είναι οι διάφορες στρατηγικές που μπορούν να υιοθετηθούν κατά την εφαρμογή της μερικής απαρίθμησης, μέσω του αλγορίθμου Περιορισμού και Διακλάδωσης (Branch and Bound) σε προβλήματα ακεραίου προγραμματισμού με δυαδικές μεταβλητές. Ο αλγόριθμος Περιορισμού και Διακλάδωσης βρίσκει ευρεία εφαρμογή στην επίλυση μεικτών προβλημάτων ακεραίου προγραμματισμού (mixed integer programming problems) και έχει μελετηθεί εκτενώς τις τελευταίες δεκαετίες. Οι στρατηγικές που θα μελετηθούν αφορούν την επιλογή προβλήματος και μεταβλητής διακλάδωσης κατά την εκτέλεση του αλγορίθμου και θα συγκριθούν ως προς την αποτελεσματικότητά τους μέσα στα πλαίσια εκτενών υπολογιστικών πειραμάτων. Για τις ανάγκες των πειραμάτων αυτών αναπτύχθηκε κώδικας στη C++ (η εφαρμογή Z1Opt) με στόχο την υλοποίηση του αλγορίθμου Περιορισμού και Διακλάδωσης με δυνατότητα ενσωμάτωσης και υιοθέτησης διαφορετικών προσεγγίσεων στην επίλυση του προβλήματος κάθε φορά. Στη συνέχεια η εφαρμογή αυτή χρησιμοποιήθηκε για την επίλυση ενός αριθμού «πρότυπων» προβλημάτων ακεραίου προγραμματισμού, πηγή των οποίων ήταν καθιερωμένες βιβλιοθήκες προβλημάτων του διαδικτύου. Οι διαφορετικές δε στρατηγικές συγκρίθηκαν ως προς την αποτελεσματικότητά τους (ταχύτητα επίλυσης του προβλήματος, αριθμός επαναλήψεων) αλλά και ως προς άλλες παραμέτρους όπως η κατανάλωση πόρων του συστήματος. Δεδομένης της ευρύτητας του πεδίου εφαρμογών της Διακριτής Βελτιστοποίησης αλλα και της συνεχούς αύξησης της διαθέσιμης υπολογιστικής ισχύος που επιτρέπει την επίλυση προβλημάτων μέχρι χθες δισεπίλυτων, η έρευνα πάνω στην μερική απαρίθμηση αποκτά εξαιρετική σημασία. 5

Κεφάλαιο 1ο: Περιγραφή του προβλήματος 1.1 Μαθηματικός Προγραμματισμός Ο ακέραιος προγραμματισμός (integer programming), τον οποίο εξετάζουμε, όπως και ο γραμμικός, αποτελεί κλάδο του μαθηματικού προγραμματισμού (mathematical programming). Το πρόβλημα του μαθηματικού προγραμματισμού μπορεί να διατυπωθεί σε γενική μορφή ως εξής: min f ( x ) x S R n (1) n όπου το R είναι το σύνολο όλων των διανυσμάτων n διαστάσεων με συντεταγμένες πραγματικούς αριθμούς και η f είναι μία πραγματική συνάρτηση ορισμένη πάνω στο S. Το σύνολο S καλείται σύνολο περιορισμών (constraint set) και η συνάρτηση f αντικειμενική συνάρτηση (objective function). Κάθε x S καλείται εφικτή (feasible) λύση του προβλήματος. Εάν δε, για κάποιο x 0 S ισχύει επιπλέον πως: < f ( x ) f ( x) x S 0 τότε το x0 αποτελεί βέλτιστη λύση (optimal solution) της (1). Στόχος, κατά την επίλυση ενός προβλήματος μαθηματικού προγραμματισμού, είναι η εύρεση (εάν υπάρχει) μιας βέλτιστης λύσης (ή ενδεχομένως και όλων). Είναι βολικό να θεωρήσει κανείς το πρόβλημα (1) ως ένα μοντέλο λήψης αποφάσεων όπου το S αναπαριστά το σύνολο όλων των επιτρεπτών αποφάσεων και η f αντιστοιχίζει σε κάθε x S κάποιο κόστος (ή κέρδος όταν ζητούμενο είναι η μεγιστοποίηση). Οι εφαρμογές του μοντέλου αυτού αφθονούν στον πραγματικό κόσμο (βιομηχανία, επιχειρήσεις, φυσικές και κοινωνικές επιστήμες)[2]. 6

1.2 Γραμμικός Προγραμματισμός Ο γραμμικός προγραμματισμός αφορά προβλήματα όπου η αντικειμενική συνάρτηση είναι γραμμική, δηλαδή της μορφής: ή σε μορφή πινάκων: f c x c x c x ( x ) = 1 1+ 2 2+... + n n T f ( x) = c x Ο πίνακας c είναι προφανώς διαστάσεων nx1. Η δε αντικειμενική συνάρτηση είναι υποκείμενη σε m γραμμικούς περιορισμούς (γραμμικές n ισότητες και ανισότητες) που διαμορφώνουν το σύνολο S R των εφικτών λύσεων του προβλήματος. Ο i-οστός δηλαδή περιορισμός (constraint) είναι της μορφής: ή ή a x a x a x b i1 1+ i 2 2 +... + in n = i a x a x a x b i1 1+ i 2 2 +... + in n i a x a x a x b i1 1+ i 2 2 +... + in n i για 1 i m τα δε xj (1 j n) λαμβάνουν τιμές με συνεχή τρόπο, δηλαδή πραγματικές τιμές ( x j R για κάθε i), χωρίς κάποιον περιορισμό ακεραιότητας (integrality constraint). Οι περιορισμοί αυτοί ορίζουν την εφικτή περιοχή (feasible region) του προβλήματος. Αυτή μπορεί να είναι και το κενό σύνολο ( S= ) οπότε και το πρόβλημα λέγεται ανέφικτο (infeasible), ή και να μην είναι φραγμένη. Στις περισσότερες περιπτώσεις πάντως αποτελεί ένα κυρτό πολύτοπο n στον χώρο R. Οι συντελεστές aij (1 i m,1 j n) σχηματίζουν τον πίνακα A (mxn) που καλείται και πίνακας περιορισμών (constraint matrix). Οι δε σταθερές bi ορίζουν τον πίνακα-στήλη b (right-hand-side vector). Έτσι έχοντας 7

εισαγάγει τον κατάλληλο συμβολισμό, μπορούμε να επαναδιατυπώσουμε το γενικό πρόβλημα του γραμμικού προγραμματισμού ως εξής: Ελαχιστοποίηση της f ( x) = cx ύπο την προϋπόθεση πως Ax b Για τα προβλήματα όπου όλοι οι περιορισμοί είναι γραμμικές εξισώσεις (Ax=b) εύκολα αποδεικνύεται πως η f(x) είτε παραμένει σταθερή πάνω στο σύνολο των εφικτών λύσεων, είτε αποκλίνει στο. Κατά συνέπεια αυτά τα προβλήματα είναι τετριμμένα και στερούνται πρακτικού ενδιαφέροντος. Τα προβλήματα με τα οποία θα καταπιαστούμε από δω και στο εξής θα περιέχουν τουλάχιστον έναν ανισοτικό περιορισμό (που στην απλούστερη περίπτωση μπορεί να είναι και ένας περιορισμός προσήμου (sign restriction) xi 0)[1]. Έτσι, σε ότι αφορά το σύνολο των εφικτών λύσεων του προβλήματος προκύπτουν οι κάτωθι τρεις (αμοιβαίως αποκλειόμενες) δυνατές περιπτώσεις: 1. Δεν υπάρχει εφικτή λύση ( S= ). Τότε το πρόβλημα λέγεται ανέφικτο (infeasible). 2.Υπάρχουν διανύσματα x και y τέτοια ώστε c Τ y<0 και το διάνυσμα x+ay είναι εφικτή λύση για κάθε μη αρνητικό συντελεστή (scalar) a. Σε αυτήν την περίπτωση το πρόβλημα λέγεται μη-φραγμένο (unbounded). 3. Υπάρχει εφικτή λύση x 0 T 0 T για την οποία ισχύει < c x < c x για κάθε άλλη εφικτή λύση x. Σε αυτή την περίπτωση η x 0 λέγεται βέλτιστη λύση (optimal solution). Η τρίτη περίπτωση είναι η πλέον σημαντική, και παρουσιάζει το μεγαλύτερο πρακτικό ενδιαφέρον. Το σύνολο των εφικτών λύσεων n αποτελεί ένα κυρτό πολύτοπο (convex polytope) στον χώρο R, καθώς αποδεικνύεται ότι για κάθε x, y S ax+ (1 a) y S για όλα τα 0 a 1. Η δε βέλτιστη λύση βρίσκεται σε μια απ τις κορυφές του πολυτόπου[2] 8

1.3 Η μέθοδος Simplex Λαμβάνοντας υπόψιν όλα τα παραπάνω, μπορούμε να συμπεράνουμε ότι ένας τρόπος για να επιλύσουμε ένα πρόβλημα γραμμικού προγραμματισμού είναι η αναζήτηση εκείνης της κορυφής του αντίστοιχου πολυέδρου που θα έχει την βέλτιστη τιμή στην αντικειμενική συνάρτηση. Αυτό ακριβώς κάνει και ο αλγόριθμος Simplex που θα μπορούσαμε να τον περιγράψουμε ως μέθοδο με τα παρακάτω βήματα: 1) Ξεκίνησε από μία κορυφή (βασική εφικτή λύση) 2) Πήγαινε σε μία άλλη γειτονική κορυφή εάν βελτιώνεται η αντικειμενική συνάρτηση 3) Εάν το βήμα 2 δεν είναι εφικτό, η κορυφή που έχουμε είναι και η βέλτιστη. Ο αλγόριθμος δηλαδή ξεκινάει από μία αρχική κορυφή του πολυτόπου x 1 και προχωράει σε μία γειτονική κορυφή x 2 εάν και μόνο εάν υπάρχει βελτίωση στην αντικειμενική συνάρτηση. Εάν σε μια κορυφή καμμία γειτονική της δεν παρέχει βελτίωση στην αντικειμενική συνάρτηση, τότε αυτή η κορυφή θα είναι και η βέλτιστη λύση. Εικόνα 1.3.1 Μία σειρά γραμμικών ανισοτήτων ορίζει ένα κυρτό πολύτοπο ως την εφικτή περιοχή του προβλήματος. Ο αλγόριθμος Simplex ξεκινά από μία αρχική κορυφή και κινείται διαμέσου των ακμών του πολυτόπου έως ότου καταλήξει στην κορυφή (διάνυσμα) που αντιστοιχεί στην βέλτιστη λύση του προβλήματος 9

Δεδομένου δε ότι ο αριθμός των κορυφών ενός πολυτόπου είναι πεπερασμένος και για ένα πρόβλημα n μεταβλητών και m περιορισμών το πολύ ίσος με: n! C( n, m) = m!( n m)! ο αριθμός των βημάτων του αλγορίθμου θα είναι επίσης πεπερασμένος. Οπότε ο αλγόριθμος Simplex θα μπορούσε να χαρακτηριστεί ως συνδυαστικός αλγόριθμος, που ενώ ο αριθμός των επαναλήψεων που θα εκτελέσει είναι στην χειρότερη περίπτωση εκθετικός, στην πράξη λειτουργεί αρκετά γρήγορα, σε πολυωνυμικό δηλαδή χρόνο ως προς τον αριθμό των μεταβλητών και των περιορισμών[3]. Αυτή η συμπεριφορά περιγράφεται και ερμηνεύεται με τους όρους της μέσης πολυπλοκότητας (average complexity) και της εξομαλυμένης (smoothed) πολυπλοκότητας. Το 1972 οι Klee και Minty έδωσαν ένα παράδειγμα ενός προβλήματος γραμμικού προγραμματισμού στο οποίο έδειξαν πως η μέθοδος Simplex επισκέπτεται όλες τις κορυφές του πολυτόπου που αποτελεί τον χώρο των εφικτών λύσεων του προβλήματος. Έτσι δείχθηκε πως στην χειρότερη περίπτωση η πολυπλοκότητα του αλγορίθμου είναι εκθετική. Υπάρχουν επίσης και αλγόριθμοι που στην χειρότερη περίπτωση απαιτούν πολυωνυμικό αριθμό πράξεων, και υπολογίζουν μία λύση σε ένα πρόβλημα γραμμικού προγραμματισμού μετακινούμενοι στο εσωτερικό του πολυτόπου που ορίζουν οι περιορισμοί. Αυτοί οι αλγόριθμοι ονομάζονται αλγόριθμοι εσωτερικών σημείων. 10

1.4 Ο Ακέραιος Προγραμματισμός Όταν στους περιορισμούς ενός προβλήματος μαθηματικού προγραμματισμού προστίθεται και η απαίτηση κάποιες απ τις μεταβλητές (ή και όλες) να λαμβάνουν μόνο ακέραιες τιμές τότε αναφερόμαστε σε ένα πρόβλημα Ακεραίου Προγραμματισμού ή Διακριτής Βελτιστοποίησης. Τα προβλήματα αυτά χωρίζονται σε δύο κατηγορίες. Τα Προβλήματα Καθαρού Ακεραίου προγραμματισμού (Pure Integer Programming Problems), όπου όλες οι μεταβλητές λαμβάνουν μόνο ακέραιες τιμές και τα Προβλήματα Μεικτού Ακεραίου Προγραμματισμού, όπου κάποιες μεταβλητές λαμβάνουν ακέραιες και κάποιες πραγματικές τιμές. Ένα Πρόβλημα Καθαρού Ακεραίου Προγραμματισμού θα μπορούσε να διατυπωθεί σε γενική μορφή ως εξής: με min f ( x) x S R n x Ax b, x 0, x S= = Z n Θεωρούμε δε προβλήματα γραμμικού ακεραίου προγραμματισμού κατά συνέπεια η f θα είναι γραμμική συνάρτηση, δηλαδή της μορφής T f ( x) = c x. Γίνεται φανερό απ την μορφή του προβλήματος πως αν αγνοήσουμε τον n περιορισμό x Z λαμβάνουμε το σχετιζόμενο (associated) πρόβλημα Γραμμικού Προγραμματισμού. Θα μπορούσε κανείς να μπει στον πειρασμό να συμπεράνει πως η βέλτιστη λύση του ακεραίου προβλήματος (ή τουλάχιστον μία καλή προσέγγιση αυτής) θα μπορούσε να ληφθεί απ την στρογγυλοποίηση της βέλτιστης λύσης x του αντίστοιχου γραμμικού προβλήματος σε μια γειτονική ακέραιη τιμή. Αυτή η μέθοδος στρογγυλοποίησης θα μπορούσε να είναι πρακτική εάν οι περιορισμοί του προβλήματος ήταν τέτοιοι ώστε να είναι εύκολο να διαπιστωθεί πως η εφικτότητα της λύσης διατηρείται με την στρογγυλοποίηση μιας μη-ακέραιας τιμής μιας μεταβλητής στον κοντινότερο μεγαλύτερο ή μικρότερο ακέραιο. Ωστόσο σε πολλά ακέραια προβλήματα υπάρχουν αρκετές 0-1 μεταβλητές. Σε αυτήν την περίπτωση η στρογγυλοποίηση στο κοντινότερο ακέραιο διάνυσμα χάνει το νόημα της. Εξ άλλου η λύση του n αντίστοιχου γραμμικού προβλήματος x R μπορεί να έχει 2 n γειτονικά ακέραια σημεία, και δεν είναι ξεκάθαρο ποιό από αυτά θα έπρεπε να 11

επιλεγεί ως στρογγυλοποίηση του x. Πολλά από αυτά τα 2 n σημεία μπορεί να μην είναι εφικτές λύσεις του προβλήματος και η εύρεση ενός γειτονικού ακέραιου σημείου του x που να αποτελεί και εφικτή λύση είναι από μόνη της ένα πολύ δύσκολο πρόβλημα όταν το n είναι μεγάλο. Στην επόμενη εικόνα φαίνεται μια περίπτωση όπου κανένα από τα γειτονικά ακέραια διανύσματα δεν αποτελεί εφικτή λύση του προβλήματος. Εικόνα 1.4.1 Κανένα από τα γειτονικά σημεία της βέλτιστης λύσης του γραμμικού προβλήματος δεν είναι εφικτή λύση του ακέραιου προβλήματος (εικόνα από [1]) Ακόμη και αν ένα γειτονικό του x σημείο με ακέραιες συντεταγμένες βρεθεί, μπορεί να απέχει πολύ από την βέλτιστη ακέραια λύση του προβλήματος, όπως φαίνεται στην παρακάτω εικόνα. Εικόνα 1.4.2 Το γειτονικό σημείο x1 της βέλτιστης λύσης του γραμμικού προβλήματος δεν είναι και βέλτιστη λύση του ακέραιου προβλήματος (εικόνα από [1]) 12

Κατά συνέπεια η στρογγυλοποίηση της λύσης του αντίστοιχου γραμμικού προβλήματος δεν αποτελεί αποτελεσματική προσέγγιση στην πλειοψηφία των περιπτώσεων[1]. 1.5 Απαρίθμηση και Branch And Bound Οι διάφορες μέθοδοι επίλυσης προβλημάτων ακεραίου προγραμματισμού με απαρίθμηση εκμεταλλεύονται το γεγονός ότι σε ένα φραγμένο ακέραιο πρόβλημα το σύνολο των διαφορετικών συνδυασμών τιμών των ακέραιων μεταβλητών είναι πεπερασμένο. Εάν ο συνολικός αριθμός των ενδεχόμενων λύσεων του προβλήματος είναι μικρός θα μπορούσε κανείς να υπολογίσει την τιμή της αντικειμενικής συνάρτησης για την κάθε μία ξεχωριστά και να διαλέξει την βέλτιστη λύση συγκρίνοντας τα αποτελέσματα μεταξύ τους. Αυτή η προσέγγιση λέγεται ολική ή εξαντλητική απαρίθμηση (total or exhaustive enumeration). Στα περισσότερα πρακτικά προβλήματα η εξαντλητική απαρίθμηση κρίνεται αναποτελεσματική καθώς ο αριθμός των εφικτών λύσεων που πρέπει να ελεγχθούν συχνά αποδεικνύεται απαγορευτικά μεγάλος. Η Branch And Bound (Περιορισμός και Διακλάδωση) αποτελεί μια μεθοδολογία αναζήτησης της βέλτιστης λύσης με πραγματοποίηση μιας μερικής μόνο απαρίθμησης (partial enumeration). Κατά την εφαρμογή της, το σύνολο των εφικτών λύσεων διαμερίζεται σε πολλά απλούστερα υποσύνολα. Σε κάθε στάδιο του αλγορίθμου, κάποιο (υποσχόμενο) υποσύνολο επιλέγεται και γίνεται προσπάθεια να βρεθεί η καλύτερη εφικτή λύση που περιλαμβάνεται σε αυτό. Εάν αυτή βρεθεί τότε το υποσύνολο λέγεται πως είναι αξιολογημένο (fathomed). Εάν δεν βρεθεί, τότε το υποσύνολο διαμερίζεται εκ νέου σε δύο (ή και περισσότερα) απλούστερα υποσύνολα και η διαδικασία επαναλαμβάνεται. Η εκτέλεση της διαδικασίας Περιορισμού και Διακλάδωσης υποβοηθάται από τον υπολογισμό είτε της βέλτιστης τιμής της αντικειμενικής συνάρτησης (εάν αυτή μπορεί να υπολογιστεί χωρίς πολύ κόπο) είτε ενός φράγματος (bound) αυτής (άνω φράγματος για την περίπτωση της μεγιστοποίησης και κάτω φράγματος για προβλήματα ελαχιστοποίησης) σε κάθε υποσύνολο που παρήχθη απ την διαμέριση. Ο υπολογισμός αυτός καθίσταται δυνατός με την επίλυση μίας χαλαρωμένης εκδοχής του αρχικού προβλήματος. Τα φράγματα χρησιμοποιούνται για την επιλογή 13

των πλέον υποσχόμενων υποσυνόλων κατά την εκτέλεση του αλγορίθμου και για την απόρριψη των υποσυνόλων που δεν θα μπορούσαν να περιλαμβάνουν την βέλτιστη λύση του προβλήματος. Κάθε ένα από τα υποσύνολα S i, όπως αυτά προέκυψαν από την διαμέριση της εφικτής περιοχής S του αρχικού προβλήματος, σχετίζεται με ένα υποπρόβλημα, έστω P i, που προκύπτει από το αρχικό πρόβλημα P 0, με τον επιπλέον περιορισμό η λύση του να ανήκει στο S i. Για ένα πρόβλημα P i έστω L z i ένα κάτω φράγμα της ελάχιστης τιμής της S. Έστω L η λίστα των υποψήφιων προς αντικειμενικής συνάρτησης στο i εξέταση προβλημάτων (ή αλλιώς ενεργών κόμβων του προβλήματος). U Τέλος έστω z ένα άνω φράγμα της ελάχιστης τιμής της αντικειμενικής συνάρτησης του αρχικού προβλήματος. Ο αλγόριθμος Περιορισμού και Διακλάδωσης θα μπορούσε να διατυπωθεί σε γενική μορφή ως εξής: 1. Αρχικοποίηση U =, z =, L P 0 x * = 2.Τερματισμός * Εάν L= τότε η x είναι μια βέλτιστη λύση στο αρχικό πρόβλημα. Διαφορετικά μετάβαση στο βήμα 3. 3. Επιλογή Επιλογή και διαγραφή από την L ενός προβλήματος P. i 4.Διαμέριση Διαμέριση της S i σε kπεριοχές S, S,..., S, τέτοιες ώστε 1 2 k i i i κάθε μία από τις οποίες αντιστοιχεί ένα υποπρόβλημα j P i. 5.Αξιολόγηση Για κάθε j= 1, 2,..., k, επίλυση μίας χαλαρωμένης εκδοχής του k j S j 1 i = S = i, σε j P i, και j υπολογισμός της βέλτιστης λύσης x i και της αντίστοιχης τιμής της L L U αντικειμενικής συνάρτησης z ij. Εάν zij z τότε διαγραφή του προβλήματος. Διαφορετικά, εάν x S τότε j i x x, * j i διαγραφή από την L κάθε προβλήματος P l με zl j j xi Sπροσθήκη του S i στην L. Μετάβαση στο βήμα 2. και U L z z ij L U z, ενώ εάν 14

Αναφερόμενοι λοιπόν σε ένα πρόβλημα ελαχιστοποίησης της μορφής: μένει να καθοριστούν: T min f ( x) = c x x S R n x Ax b, x 0, x S= = Z n 1)Μια στρατηγική υπολογισμού κάτω φράγματος (lower bounding strategy) 2) Μια στρατηγική διακλάδωσης ή επιλογής μεταβλητής (branching strategy ή variable selection strategy) 3) Μια στρατηγική αναζήτησης ή επιλογής προβλήματος (search strategy ή problem selection strategy) 1.5.1 Η στρατηγική υπολογισμού κάτω φράγματος Η ελάχιστη τιμή της αντικειμενικής συνάρτησης υπολογίζεται με ακρίβεια εάν το πρόβλημα λυθεί-αυτό ωστόσο μπορεί να μην είναι εύκολο. Προτιμάται λοιπόν να υπολογισθεί ένα κάτω φράγμα για την ελάχιστη τιμή της f ( x ) στο υποσύνολο που εξετάζουμε. Η μέθοδος υπολογισμού του θα πρέπει να είναι εύκολη στην εφαρμογή της και υπολογιστικά αποτελεσματική. Καλύτερη μέθοδος υπολογισμού κάτω φράγματος κρίνεται εκείνη που δίνει φράγμα το δυνατόν εγγύτερο στην ελάχιστη τιμή της f ( x ) χωρίς μεγάλο υπολογιστικό κόστος. Μια προφανής όσο και εύκολα εφαρμόσιμη μέθοδος είναι η χαλάρωση (relaxation) των περιορισμών που καθιστούν δύσκολη την επίλυση του προβλήματος. Προφανώς η ελάχιστη τιμή της αντικειμενικής συνάρτησης του προβλήματος που προκύπτει θα αποτελεί ένα κάτω φράγμα για την ελάχιστη τιμή της αντικειμενικής συνάρτησης του αρχικού προβλήματος. Μια καλή επιλογή είναι η χαλάρωση του περιορισμού ακεραιότητας των μεταβλητών του προβλήματος και η λύση του αντίστοιχου Γραμμικού Προβλήματος που προκύπτει. Στο παρόν πόνημα εφαρμόζεται αυτή η μέθοδος κατ αποκλειστικότητα.[1] 15

1.5.2 Η στρατηγική διακλάδωσης Αυτή αφορά την μεθοδολογία διαμέρισης του υπό εξέταση υποσυνόλου κάθε φορά σε δύο (ή περισσότερα) νέα υποσύνολα. Αποτελεσματικότερες είναι οι μεθοδολογίες κατά τις οποίες ένα υποσύνολο διαμερίζεται σε δύο ακριβώς νέα υποσύνολα. Η διαμέριση αυτή γίνεται προσθέτοντας νέους περιορισμούς στο αρχικό πρόβλημα. Έτσι στην περίπτωση δυαδικών (0-1) μεταβλητών η προσθήκη των περιορισμών για την μεταβλητή x 1 x= 1 0και x= 1 1 αντίστοιχα σε κάποιο βήμα του αλγορίθμου γεννά δύο νέα υποπροβλήματα. Ιδιαίτερης σημασίας για την αποτελεσματικότητα του αλγορίθμου είναι η μέθοδος επιλογής της μεταβλητής με βάση την οποία πραγματοποιείται η διακλάδωση σε κάθε βήμα. Διάφορες στρατηγικές θα μελετηθούν και θα συγκριθούν στην συνέχεια ως προς την αποδοτικότητά τους. 1.5.3 Η στρατηγική αναζήτησης Κατά την έναρξη του αλγορίθμου, διαθέσιμο προς εξέταση υπάρχει μόνο το αρχικό πρόβλημα και το αρχικό σύνολο των εφικτών του λύσεων. Μετά από κάθε επανάληψη του αλγορίθμου, νέα προβλήματα προστίθενται στην λίστα των υποψηφίων προς εξέταση προβλημάτων σε μια διαδικασία συνεχούς διαμέρισης του αρχικού συνόλου των εφικτών λύσεων. Η στρατηγική και τα κριτήρια με βάση τα οποία επιλέγεται ποιο πρόβλημα θα εξετασθεί σε κάθε βήμα είναι ιδιαίτερης σημασίας για την αποτελεσματικότητα του αλγορίθμου. 1.5.4 Ένα απλό παράδειγμα μερικής απαρίθμησης Ας θεωρηθεί το παρακάτω πρόβλημα διακριτής βελτιστοποίησης: min z( x ) = 12x 12x 9x 15x 90x 26x 112x 1 2 3 4 5 6 7 16

Με περιορισμούς: 3x + 4x + 3x + 3x + 15x + 13x + 16x 35 1 2 3 4 5 6 7 x j 0,1 1 j 7 Σε ότι αφορά την στρατηγική εύρεσης κάτω φράγματος, επιλέγεται η χαλάρωση του περιορισμού ακεραιότητας των μεταβλητών και η λύση του σχετιζόμενου γραμμικού προβλήματος, η βέλτιστη λύση του οποίου προκύπτει: 1 x7 = x5 = x4 = 1, x1 =, x2 = x3 = x6 = 0 3 με αντίστοιχη τιμή για την αντικειμενική συνάρτηση: f = 0 ( x ) 221 Αν η λύση αυτή ικανοποιούσε τον περιορισμό ακεραιότητας των μεταβλητών θα ήταν μια βέλτιστη λύση στο αρχικό πρόβλημα και ο αλγόριθμος θα σταματούσε εδώ. Ωστόσο καθώς δεν συμβαίνει αυτό (η x1 δεν έχει ακέραιη τιμή) το αρχικό πρόβλημα δεν είναι αξιολογημένο. Η υπολογισθείσα βέλτιστη λύση του αντίστοιχου γραμμικού προβλήματος 0 f ( x ) = 221 είναι ένα κάτω φράγμα της βέλτιστης τιμής της αντικειμενικής συνάρτησης του αρχικού προβλήματος. Τώρα το πρόβλημα πρέπει να διακλαδωθεί. Για τις ανάγκες της διακλάδωσης προφανώς πρέπει να επιλεγεί κάποια μεταβλητή που να έχει μη ακέραιη τιμή στην λύση του χαλαρωμένου προβλήματος. Εδώ υπάρχει ακριβώς μία τέτοια μεταβλητή, οπότε η επιλογή της είναι αυτονόητη. Τα κάτω φράγματα για τα προβλήματα που παράγονται από την διακλάδωση (με την προσθήκη των επιπλέον συνθηκών x 1= 0 και x 1= 1 αντίστοιχα στους περιορισμούς του αρχικού προβλήματος) υπολογίζονται επίσης με επίλυση του αντίστοιχου γραμμικού προβλήματος. Κάθε φορά από την λίστα των υποψήφιων προβλημάτων επιλέγεται για διακλάδωση αυτό με το ελάχιστο κάτω φράγμα Ολόκληρο το δέντρο αναζήτησης για τον αλγόριθμο φαίνεται στην εικόνα (1.5.4.1). Δίπλα σε κάθε κόμβο αναφέρεται η βέλτιστη λύση του χαλαρωμένου προβλήματος με παράθεση των τιμών των μη μηδενικών μεταβλητών. Εάν όλες οι μεταβλητές έχουν ακέραιες τιμές τότε η λύση αυτή είναι και βέλτιστη λύση του ακέραιου προβλήματος. Όλοι οι 17

επιπρόσθετοι περιορισμοί σε ένα υποψήφιο πρόβλημα παρατίθενται μέσα στον κόμβο που του αντιστοιχεί. Τα διάφορα στάδια του αλγορίθμου περιγράφονται παρακάτω: Βήμα 1ο: Το αρχικό πρόβλημα διακλαδώνεται στα υποψήφια προβλήματα 1,2 χρησιμοποιώντας την x1 σαν μεταβλητή διακλάδωσης (branching variable). Στο πρόβλημα 1 ο επιπρόσθετος περιορισμός είναι x 1= 1, και στο πρόβλημα 2 x 1= 0. Βήμα 2ο: Από τα υποψήφια προβλήματα 1 και 2 που περιέχονται στη λίστα σε αυτό το στάδιο, το υποψήφιο πρόβλημα 2 χαρακτηρίζεται από το μικρότερο κάτω φράγμα. Οπότε επιλέγεται για διακλάδωση. Ως μεταβλητή διακλάδωσης επιλέγεται η μεταβλητή x3 καθώς είναι η μόνη με κλασματική τιμή στην βέλτιστη λύση του χαλαρωμένου γραμμικού προβλήματος. Παράγονται τα υποψήφια προβλήματα 21 και 22. Βήμα 3ο: Η λίστα τώρα αποτελείται από τα υποψήφια προβλήματα 1, 21 και 22. Το πρόβλημα 22 έχει το μικρότερο κάτω φράγμα και επιλέγεται για διακλάδωση. Παράγονται τα υποψήφια προβλήματα 221 και 222. Το γραμμικό πρόβλημα που αντιστοιχεί στο πρόβλημα 221 έχει βέλτιστη λύση ακέραιο διάνυσμα. Κατά συνέπεια η λύση αυτή ταυτίζεται με την βέλτιστη λύση του προβλήματος 221 και αποτελεί την τρέχουσα καλύτερη εφικτή λύση (incumbent). Η αντίστοιχη τιμή της αντικειμενικής συνάρτησης προκύπτει ίση με -214. Υποψήφια προβλήματα με κάτω φράγμα μεγαλύτερο από αυτή την τιμή θα υφίσταντο την διαδικασία του κλαδέματος (pruning), καθώς η εξέτασή τους δεν θα μπορούσε να αποφέρει κάποια βελτιωμένη υποψήφια λύση για το αρχικό πρόβλημα. Ωστόσο στην παρούσα φάση δεν υπάρχουν. Βήμα 4ο: Η λίστα τώρα πια περιλαμβάνει τα προβλήματα 1, 21 και 222. Επιλέγεται το πρόβλημα 222. Παράγονται τα προβλήματα 2221 και 2222. Η βέλτιστη λύση στο σχετιζόμενο γραμμικό πρόβλημα του 2222 είναι ακέραιο διάνυσμα οπότε είναι και βέλτιστη λύση για το ίδιο. Η τιμή της αντικειμενικής συνάρτησης προκύπτει ίση με -217, δηλαδή μικρότερη της αντίστοιχης της τρέχουσας καλύτερης εφικτής λύσης. Έτσι το 2222 γίνεται η νέα καλύτερη εφικτή λύση. Τα υποψήφια προβλήματα 2221 και 21 κλαδεύονται. Βήμα 5ο: Η λίστα τώρα πια περιλαμβάνει μόνο το πρόβλημα 1. Από αυτό παράγονται τα υποψήφια προβλήματα 11 και 12. Το κάτω φράγμα και για 18

τα δύο αυτά προβλήματα προκύπτει ίσο με -217. Κατά συνέπεια και αυτά κλαδεύονται. Η λίστα είναι πλέον άδεια και κατά συνέπεια η καλύτερη έως τώρα εφικτή λύση είναι μία βέλτιστη λύση στο αρχικό πρόβλημα. Η βέλτιστη λύση λοιπόν προκύπτει για: x = x = x = 1, x = x = x = x = 0 7 5 4 1 2 3 6 και η αντικειμενική συνάρτηση για αυτές τις τιμές γίνεται ίση με -217[1]. Εικόνα 1.4.5.1 Το δένδρο που προκύπτει κατά την εφαρμογή του αλγορίθμου στο υπό εξέταση πρόβλημα (το παράδειγμα και η εικόνα προέρχονται από το βιβλίο του Katta Murty Linear And Combinatorial Programming σελ 447-448) 19

Κεφάλαιο 2ο: Η έρευνα 2.1 Γενικά Στόχοι της έρευνας Στόχος του παρόντος πονήματος, όπως προαναφέρθηκε, είναι η αξιολόγηση και η σύγκριση της αποτελεσματικότητας διαφόρων διαφορετικών στρατηγικών σε ότι αφορά την επιλογή υποψηφίου προβλήματος (ή επιλογή κόμβου) και μεταβλητής διακλάδωσης σε κάθε βήμα του αλγορίθμου, μέσα στα πλαίσια ενός υπολογιστικού πειράματος. Πιο συγκεκριμένα σε σχέση με τη στρατηγική επιλογής προβλήματος μελετήθηκαν: 1)Η στρατηγική επιλογής με κριτήριο το ελάχιστο κάτω φραγμα, όπου σε κάθε επανάληψη επιλέγεται το πρόβλημα με το μικρότερο κάτω φράγμα από τα διαθέσιμα στη λίστα. Η στρατηγική αυτή αποδείχτηκε πως οδηγεί σε καλύτερους χρόνους επίλυσης των προβλημάτων που χρησιμοποιήθηκαν. 2)Η κατά βάθος αναζήτηση στο δένδρο, όπου εξερευνάται πλήρως κάθε νέο υποδένδρο στο οποίο ο αλγόριθμος εισέρχεται. Η στρατηγική αυτή οδήγησε γενικά στην ταχύτερη εξεύρεση ικανοποιητικών εφικτών λύσεων στα προβλήματα που εφαρμόστηκε, εις βάρος όμως του συνολικού χρόνου επίλυσης του προβλήματος. Σε σχέση με τη στρατηγική επιλογής μεταβλητής διακλάδωσης μελετήθηκαν: 1)Η στρατηγική επιλογής με κριτήριο τη μεγιστοποίηση του ελάχιστου κάτω φράγματος, όπου σε κάθε επανάληψη επιλέγεται η μεταβλητή που οδηγεί στη μεγιστοποίηση του μικρότερου εκ των δύο κάτω φραγμάτων των παραγόμενων υποπροβλημάτων. Η εφαρμογή αυτής της στρατηγικής οδήγησε στην συντριπτική πλειοψηφία των περιπτώσεων σε πολύ μικρότερα δένδρα, αλλά χαρακτηριζόταν από μεγάλο υπολογιστικό κόστος σε κάθε επανάληψη του αλγορίθμου. Έτσι δεν οδήγησε σε ιδιαίτερα ικανοποιητικούς χρόνους επίλυσης. 2)Η στρατηγική επιλογής με κριτήριο τον μεγαλύτερο (κατ απόλυτο τιμή) συντελεστή στην αντικειμενική συνάρτηση. Αυτή η στρατηγική γενικά 20

φάνηκε να οδηγεί σε ταχύτερους χρόνους επίλυσης, παρόλο που χαρακτηριζόταν από σημαντικά μεγαλύτερο αριθμό παραγόμενων υποπροβλημάτων από την προηγούμενη (με προφανές κόστος στην απαιτούμενη μνήμη) Οι δύο αυτές στρατηγικές επιλογής μεταβλητής διακλάδωσης συγκρίθηκαν με μία στρατηγική επιλογής μεταβλητής με τυχαίο τρόπο, ούτως ώστε να διαπιστωθεί η σκοπιμότητα ή μη της υιοθέτησής τους. Γενικά παρατηρήθηκε μία μικρή αλλά αξιοπρόσεκτη υπεροχή τους, με κάποιες εξαιρέσεις, οι οποίες προβλημάτισαν. Για τις ανάγκες των υπολογιστικών μας πειραμάτων ο αλγόριθμος Περιορισμού και Διακλάδωσης υλοποιήθηκε σε C++. Η εφαρμογή που θα προέκυπτε έπρεπε να μπορεί να χρησιμοποιηθεί για την επίλυση δυαδικών προβλημάτων ακεραίου προγραμματισμού (Binary Integer Programming Problems) υιοθετώντας κάθε φορά διαφορετικές στρατηγικές αναζήτησης και διακλάδωσης ανάλογα με τις επιλογές του χρήστη. Έμφαση δόθηκε λοιπόν κατά την ανάπτυξή της στην δυνατότητα ενσωμάτωσης νέων προσεγγίσεων στο πρόβλημα. Η υλοποίση έγινε σε περιβάλλον Dev-C++ και το πρόγραμμα αναπτύχθηκε σε μορφή εφαρμογής κονσόλας (console application). Για τις ανάγκες της επίλυσης των σχετιζόμενων προβλημάτων γραμμικού προγραμματισμού, χρησιμοποιήθηκαν συναρτήσεις μιας ελεύθερης βιβλιοθήκης συναρτήσεων γραμμικού προγραμματισμού, της QSopt Function Library ( 2000-2003 by David Applegate, William Cook, Sanjeeb Dash and Monika Mevenkamp, All rights reserved). Η εφαρμογή στην συνέχεια χρησιμοποιήθηκε για την επίλυση δυαδικών προβλημάτων ακεραίου προγραμματισμού. Τα προβλήματα προέρχονται στην πλειοψηφία τους από την δημοφιλή, όσο και καθιερωμένη για παρόμοιους ερευνητικούς σκοπούς, βιβλιοθήκη του διαδικτύου MIPLIB, εκτενέστερη αναφορά στην οποία γίνεται παρακάτω. Δύο από τα προβλήματα που χρησιμοποιήθηκαν, αναπτύχθηκαν ειδικά για τις ανάγκες του πονήματος. Σε κάθε πρόβλημα εφαρμόστηκαν οι στρατηγικές που αναφέρθηκαν παραπάνω, με σκοπό την αξιολόγηση και σύγκρισή τους με κριτήριο τόσο την ταχύτητα εύρεσης μιας βέλτιστης λύσης, όσο και κάποιους άλλους παράγοντες, όπως η κατανάλωση πόρων του συστήματος. Οι στρατηγικές που υιοθετήθηκαν, και τα αποτελέσματα της εκτέλεσης της εφαρμογής αναλύονται διεξοδικά παρακάτω. 21

2.2 Η στρατηγική αναζήτησης (ή επιλογής προβλήματος) Η στρατηγική αναζήτησης (ή στρατηγική επιλογής προβλήματος), αναφέρεται στα κριτήρια με βάση τα οποία αποφασίζεται ποιο πρόβλημα από τη λίστα των υποψηφίων προβλημάτων θα επιλεγεί κάθε φορά για περαιτέρω διακλάδωση. Η στρατηγική επιλογής προβλήματος έχει διπλό σκοπό: Την εξεύρεση ικανοποιητικών εφικτών λύσεων στο πρόβλημα, και την επαλήθευση πως δεν υπάρχει καλύτερη εφικτή λύση στο πρόβλημα από αυτήν που ήδη διαθέτουμε. 2.2.1 Το κριτήριο του ελάχιστου κάτω φράγματος Μία προσέγγιση είναι να υλοποιηθεί η λίστα ως μία ουρά προτεραιότητας (priority queue) και να προσδιορισθεί ένα κριτήριο προτεραιότητας (priority criterion) που να καθιστά τον αλγόριθμο αποτελεσματικό (με βάση τα κριτήρια αποτελεσματικότητας που έχουμε θέσει εμείς). Ένα κριτήριο προτεραιότητας που οδηγεί σε αποδοτικούς αλγορίθμους και χρησιμοποιείται ευρύτατα είναι το κριτήριο του ελάχιστου κάτω φράγματος (least lower bound selection criterion), όπου σε κάθε επανάληψη επιλέγεται το υποψήφιο πρόβλημα με το μικρότερο κάτω φράγμα από τα διαθέσιμα στη λίστα. Η αποτελεσματικότητα αυτής της προσέγγισης τεκμηριώνεται ως εξής: Έστω ότι σε κάποιο στάδιο της εκτέλεσης του αλγορίθμου η λίστα αποτελείται από τα προβλήματα P 1, P 2, P 3,..., P n με αντίστοιχα κάτω φράγματα (όπως αυτά έχουν υπολογιστεί με βάση τη μέθοδο υπολογισμού κάτω φράγματος που έχουμε επιλέξει) z L 1, z L 2,..., z L n με z z z... z z L L L L L 1 2 3 n 1 n Έστω ακόμη f opt 1, f opt 2, f opt 3,..., f opt n οι (ακόμη άγνωστες) τιμές της αντικειμενικής συνάρτησης για τις βέλτιστες λύσεις των P1, P2, P3,..., P n(όπου θεωρούμε πως αν κάποιο P i είναι τελικά ανέφικτο τότε opt f opt L i = ). Το μόνο που γνωρίζουμε είναι πως f z, 1 i n. Σίγουρα L L κανείς δεν μας εξασφαλίζει πως επειδή z1 z i (για κάποιο i>1) θα έχουμε i i 22

opt opt κατ ανάγκην και f1 f i. Ωστόσο επιλέγουμε να διερευνήσουμε πρώτο opt το P 1 με την προσδοκία πως θα βρούμε για αυτό ακέραιη λύση f 1 τέτοια opt L ώστε f1 z i, ώστε να μην χρειαστεί στην συνέχεια να εξετάσουμε το P i (όπως και όλα τα Pj, i< j n) για εξεύρεση βελτιωμένης λύσης. Αντιθέτως αν εξετάζαμε κάποιο από τα υποψήφια προβλήματα με μεγαλύτερο κάτω φράγμα (έστω το P), i εξ ορισμού θα ήταν αδύνατο να βρεθεί λύση opt L fi z1, και το 1 τα προβλήματα Pj,1 j< i ). P θα έπρεπε ούτως ή άλλως να εξεταστεί (όπως και όλα Όπως γίνεται λοιπόν φανερό από τα παραπάνω η στρατηγική επιλογής προβλήματος με κριτήριο το ελάχιστο κάτω φράγμα προσπαθεί να εκμεταλλευτεί στο έπακρο τη δυνατότητα κλαδέματος του παραγόμενου δέντρου, με στόχο την ταχύτερη εύρεση και επαλήθευση της βέλτιστης λύσης του προβλήματος. Εξετάζει κάθε φορά το πρόβλημα με το ελάχιστο κάτω φράγμα με την ελπίδα να ανακαλύψει μία λύση στο πρόβλημα που θα οδηγήσει σε εκτεταμένο κλάδεμα κόμβων αλλά και με το σκεπτικό πως, ακόμη και αν η βέλτιστη λύση του αρχικού προβλήματος βρίσκεται τελικά κάπου αλλού, το συγκεκριμένο πρόβλημα θα έπρεπε να διερευνηθεί έτσι και αλλιώς για τις ανάγκες της επαλήθευσης. Στα μειονεκτήματα της μεθόδου συγκαταλέγεται η περιπλοκότητά της και το υπολογιστικό κόστος μιας ουράς προτεραιότητας. Σημαντικό πρόβλημα ακόμη μπορεί να αποτελέσει το αυξημένο μέγεθος της λίστας των υποψηφίων προβλημάτων. Καθώς τα προβλήματα με το χαμηλότερο κάτω φράγμα τείνουν να βρίσκονται ψηλά στο δέντρο (κάθε νέος περιορισμός που προστίθεται συνήθως αυξάνει στην καλύτερη περίπτωση διατηρεί σταθερή - την βέλτιστη τιμή της αντικειμενικής συνάρτησης του σχετιζόμενου γραμμικού προβλήματος) το δέντρο τείνει να μεγαλώνει κυρίως κατά πλάτος με αποτέλεσμα να έχει πολλούς ενεργούς κόμβους, και κατά συνέπεια πολλά υποψήφια προβλήματα στη λίστα. Έτσι ενέχεται ο κίνδυνος η λίστα να απαιτεί απαγορευτικά μεγάλο χώρο στη μνήμη. Αλλά το σημαντικότερο ελλάτωμα της μεθόδου είναι η αδυναμία της (στην πλειοψηφία των περιπτώσεων) να παρέχει νωρίς μία ικανοποιητική εφικτή λύση (sub optimal solution) στο πρόβλημα-όπως θα δούμε ότι καθίσταται εφικτό με άλλες μεθόδους. Καθώς προτιμώνται κόμβοι που βρίσκονται ψηλότερα στο δέντρο ικανοποιητικές εφικτές λύσεις προκύπτουν (στις περισσότερες περιπτώσεις) με αρκετή καθυστέρηση σε σχέση με την στρατηγική που θα εξεταστεί στην συνέχεια, αυτήν της κατά βάθος εξερεύνησης του δένδρου. 23

2.2.2 Η στρατηγική της κατά βάθος αναζήτησης Μια προσέγγιση που δεν χαρακτηρίζεται από τις αδυναμίες που αναφέρθηκαν παραπάνω είναι η εξερεύνηση του δέντρου κατά βάθος (depth-first search ή back-track strategy) υλοποιώντας τη λίστα ως στοίβα (stack). Μετά το διαχωρισμό ενός προβλήματος σε δύο νέα υποψήφια προβλήματα, αυτό με το μικρότερο κάτω φράγμα επιλέγεται για να εξεταστεί στη συνέχεια, ενώ το δεύτερο προστίθεται στην κορυφή της στοίβας. Όταν κάποιο πρόβλημα δεν δώσει απογόνους (είτε γιατί βρέθηκε ακέραιο διάνυσμα ως λύση του, είτε γιατί αμφότερα τα παραγόμενα προβλήματα ήταν ανέφικτα, ή είχαν κάτω φράγματα μεγαλύτερα από την τρέχουσα καλύτερη εφικτή λύση) τότε για εξέταση επιλέγεται το πρόβλημα που βρίσκεται στην κορυφή της στοίβας. Κατ αυτόν τον τρόπο το δέντρο εξερευνάται κατά βάθος, ή το κριτήριο επιλογής προβλήματος είναι ο ελάχιστος αριθμός ελεύθερων μεταβλητών μεταξύ των υποψηφίων προβλημάτων στη λίστα. Τα πλεονεκτήματα αυτής της προσέγγισης είναι προφανή. Η στοίβα είναι ιδιαίτερα απλή στην υλοποίηση της, η δε προσθήκη ή αφαίρεση στοιχείου σε αυτήν γίνεται σε χρόνο Ο(1) (constant time). Ακόμη, στην χειρότερη περίπτωση περιλαμβάνει το πολύ (n-1) υποψήφια προβλήματα (το μέγιστο μήκος ενός μονοπατιού στο δέντρο) και έτσι είναι ιδιαίτερα αποδοτική και από πλευράς κατανάλωσης μνήμης. Το σημαντικότερο όμως πλεονέκτημα αυτής της στρατηγικής είναι η εύρεση ικανοποιητικών εφικτών λύσεων πολύ νωρίς κατά την εκτέλεση του αλγορίθμου. Καθώς προτεραιότητα δίνεται στην επέκταση του δέντρου κατά βάθος, εφικτές λύσεις (πολύ συχνά με τιμές την αντικειμενικής συνάρτησης πολύ κοντινές στη βέλτιστη λύση του προβλήματος) προκύπτουν από τα πρώτα κιόλας στάδια της εκτέλεσης του αλγορίθμου. Αυτό σε προβλήματα που είτε δεν είναι απαραίτητο να βρεθεί μια βέλτιστη λύση είτε η πλήρης επίλυση τους είναι υπολογιστικά ανέφικτη, είναι σημαντικότερο από μία ενδεχόμενη ταχύτερη εύρεση και επαλήθευση μιας βέλτιστης λύσης. Ωστόσο, όπως αναμενόταν, σε ότι αφορά την πλήρη επίλυση ενός προβλήματος ακεραίου προγραμματισμού, η στρατηγική της κατά βάθος αναζήτησης στο δέντρο αποδεικνύεται λιγότερο αποδοτική από την αναζήτηση με κριτήριο το ελάχιστο κάτω φράγμα. Αυτό συμβαίνει γιατί εξετάζονται συνήθως πολλά υποψήφια προβλήματα με κάτω φράγμα μεγάλυτερο από την τελική βέλτιστη λύση του προβλήματος (κάτι που αποφεύγεται με την στρατηγική του ελάχιστου κάτω φράγματος). Καθώς διασχίζεται το δέντρο κατά βάθος, ο αλγόριθμος εξερευνά εξαντλητικά 24

κάθε υποδένδρο στο οποίο εισέρχεται (με εξαίρεση φυσικά κόμβους που κλαδεύονται). Έτσι, αρκεί μία «λάθος απόφαση» στα αρχικά στάδια του αλγορίθμου (όπου μάλιστα πιθανόν να μην έχει βρεθεί ακόμη κάποια εφικτή λύση και να μην υπάρχει δυνατότητα κλαδέματος) για να εξερευνηθούν άσκοπα (και εξαντλητικά) τεράστιες περιοχές του συνόλου των εφικτών λύσεων. Σε αυτό το μειονέκτημα της κατά βάθος εξερεύνησης του δένδρου αποδίδεται και το παρατηρούμενο αυξημένο υπολογιστικό κόστος κατά την επίλυση προβλημάτων με αυτήν τη στρατηγική όπως φαίνεται παρακάτω. 2.3 Οι στρατηγικές επιλογής μεταβλητής διακλάδωσης Η μέθοδος επιλογής μεταβλητής διακλάδωσης αποδεικνύεται εξίσου καθοριστικής σημασίας στην αποδοτικότητα του αλγορίθμου με την στρατηγική επιλογής προβλήματος. Υπάρχουν πολλές διαφορετικές προσεγγίσεις που θα μπορούσαν να υιοθετηθούν και η αποτελεσματικότητα τους εξαρτάται σε μεγάλο βαθμό από το πρόβλημα στο οποίο εφαρμόζονται και κατά συνέπεια μπορεί να κριθεί μόνο στην πράξη και όχι θεωρητικά. Έχοντας υπόψιν την περιγραφή του αλγορίθμου περιορισμού και L διακλάδωσης όπως αυτή δίνεται στη σελίδα 14, και ονομάζοντας z το ελάχιστο από τα κάτω φράγματα όλων των υποψηφίων προβλημάτων της λίστας, γίνεται φανερό πως έχουμε επιτυχή επίλυση ενός προβλήματος L U όταν z z, δηλαδή όταν κανένα πρόβλημα δεν διαθέτει κάτω φράγμα μικρότερο του τρέχοντος άνω φράγματος της βέλτιστης τιμής της αντικειμενικής συνάρτησης (δηλαδή της τιμής της αντικειμενικής συνάρτησης για την τρέχουσα μερική λύση). Κατά συνέπεια πρώτο μέλημα μιας αποδοτικής στρατηγικής διακλάδωσης θα πρέπει να είναι ή κατά το δυνατόν μεγιστοποίηση του ελάχιστου εκ των δύο κάτω φραγμάτων των παραγόμενων υποπροβλημάτων σε κάθε βήμα, ώστε να L U υπάρξει ταχύτερη σύγκλιση των ορίων z και z. Αυτή όμως η μεγιστοποίηση θα πρέπει να χαρακτηρίζεται από εύλογο υπολογιστικό κόστος. Εδώ θα εξεταστούν δύο κριτήρια επιλογής μεταβλητής διακλάδωσης. Το πρώτο είναι το κριτήριο του μεγαλύτερου συντελεστή στην αντικειμενική συνάρτηση. Το δεύτερο είναι η μεγιστοποίηση του κάτω φράγματος των παραγόμενων υποπροβλημάτων. 25

2.3.1 Το κριτήριο του μεγαλύτερου συντελεστή στην αντικειμενική συνάρτηση Σύμφωνα με το πρώτο κριτήριο επιλέγονται κατά προτεραιότητα για διακλάδωση σε κάθε κομβο οι μεταβλητές εκείνες xiπου χαρακτηρίζονται από τους μεγαλύτερους συντελεστές c i στην αντικειμενική συνάρτηση (κατ απόλυτο τιμή). Η επιλογή γίνεται πάντα από τις μεταβλητές εκείνες των οποίων οι τιμές στην βέλτιστη λύση του σχετιζόμενου γραμμικού προβλήματος είναι κλασματικές. Δηλαδή x i 0,1. Αυτό αποτελεί μια γενική αρχή κατά την επιλογή μεταβλητής διακλάδωσης. Δεν αποκομίζεται κάποιο όφελος αν ως μεταβλητή διακλάδωσης επιλεγεί κάποια μεταβλητή της οποίας η τιμή στην βέλτιση λύση είναι ακέραια, και αυτό γιατί το κάτω φράγμα του ενός από τα δύο παραγόμενα υποπροβλήματα παραμένει το ίδιο με αυτό του κόμβου γονέα. Κατά L συνέπεια δεν προκύπτει αύξηση του z όπως είναι επιθυμητό για ταχύτερη επίλυση του προβλήματος. Το κριτήριο αυτό χαρακτηρίζεται από υπολογιστική απλότητα ωστόσο οδηγεί συνήθως σε πολύ μεγαλύτερα δένδρα από ότι πραγματικά χρειάζεται για τις ανάγκες της επίλυσης του προβλήματος. Ουσιαστικά αποτελεί μία προσπάθεια πρόβλεψης της μεταβλητής, η διακλάδωση με βάση την οποία θα επιφέρει την μεγαλύτερη αύξηση στα κάτω φράγματα των παραγόμενων υποπροβλημάτων, με μόνο κριτήριο την τιμή του αντίστοιχου συντελεστή στην αντικειμενική συνάρτηση. Γι αυτό πολύ συχνά τα αποτελέσματα της κρίνονται μάλλον φτωχά (σε αριθμό παραγόμενων κόμβων). 2.3.2 Το κριτήριο της μεγιστοποίησης του κάτω φράγματος των παραγόμενων κόμβων Το κριτήριο που αποδείχτηκε πως οδηγεί στον μικρότερο αριθμό υποπροβλημάτων είναι αυτό της μεγιστοποίησης του κάτω φράγματος των παραγόμενων κόμβων. Πιο συγκεκριμένα σε κάθε επανάληψη του αλγορίθμου, και αφού έχει επιλεγεί το προς διακλάδωση πρόβλημα, διερευνώνται όλες οι ελεύθερες μεταβλητές του (στην πραγματικότητα 26

μόνον αυτές με κλασματική τιμή στην βέλτιστη λύση του σχετιζόμενου γραμμικού προβλήματος) ώστε να βρεθεί εκείνη (έστω η xi) που μεγιστοποιεί την παράσταση min( z, z ) L L 1 0 Όπου L L z1, z 0 τα κάτω φράγματα των δύο νέων προβλημάτων που παράγονται από το αρχικό με την προσθήκη των επιπλέων περιορισμών x = 1 και x = 0 αντίστοιχα. i i Η μέθοδος αυτή είναι φανερό πως έχει αυξημένο υπολογιστικό κόστος, καθώς σε κάθε επανάληψη διερευνώνται (με την επίλυση του αντίστοιχου γραμμικού προβλήματος) 2k προβλήματα όπου k είναι ο αριθμός των ελεύθερων μεταβλητών (με κλασματικές τιμές) του υποψήφιου προβλήματος που επελέγη για περαιτέρω διακλάδωση. Ωστόσο η μέθοδος οδηγεί σε εύρεση και επαλήθευση της βέλτιστης λύσης με σημαντικά μικρότερα δένδρα από άλλες στρατηγικές. 27

Κεφάλαιο 3ο : Υπολογιστικά αποτελέσματα 3.1 Οι συνθήκες διεξαγωγής των υπολογιστικών πειραμάτων Για την εξαγωγή και επιβεβαίωση των παραπάνω συμπερασμάτων διεξήχθησαν εκτενή υπολογιστικά πειράματα. Πιο συγκεκριμένα αναπτύχθηκε σε C++ η εφαρμογή κονσόλας Z1Opt. Η εφαρμογή, στόχος της οποίας ήταν η υλοποίηση του αλγορίθμου Περιορισμού και Διακλάδωσης, χρησιμοποιήθηκε για την επίλυση μίας σειράς πρότυπων προβλημάτων μεικτού ακεραίου προγραμματισμού (benchmark instances of mixed integer programming problems) με δυαδικές μεταβλητές (0-1 variables). Δείκτες των μετρήσεών μας αποτέλεσαν τόσο ο χρόνος, όσο και ο αριθμός παραγόμενων υποπροβλημάτων (κόμβων του δέντρου). Πηγή των προβλημάτων που χρησιμοποιήθηκαν για την διεξαγωγή της έρευνας αποτέλεσε η σχετική βιβλιοθήκη του διαδικτύου MIPLIB (και πιο συγκεκριμένα οι εκδόσεις τις 3.0 και 2.0), εκτενής αναφορά στην οποία γίνεται σε επόμενο κεφάλαιο. Ακόμη, δύο προβλήματα, τα z1opt32 και z1opt32b, αναπτύχθηκαν ειδικά για τις ανάγκες του πονήματος και με χρήση των ρουτινών δημιουργίας αρχείων MPS που παρείχε η βιβλιοθήκη QSOpt. H εκτέλεση των πειραμάτων έγινε σε έναν υπολογιστή Pentium 4 στα 2.3 GHz με 512 MB μνήμης RAM και λειτουργικό σύστημα τα Windows XP. 3.2 Η στρατηγική επιλογής προβλήματος Σε πρώτη φάση επιχειρήθηκε η σύγκριση των δύο στρατηγικών επιλογής προβλήματος που αναφέρθηκαν, με επίλυση των προβλημάτων και με τις δύο, διατηρώντας ως στρατηγική διακλάδωσης το κριτήριο του μέγιστου κάτω φράγματος. Τα αποτελέσματα καταγράφονται στον παρακάτω πίνακα. Κάθε εγγραφή του πίνακα περιλαμβάνει (κατά σειρά) το όνομα του προβλήματος, τον αριθμό των μεταβλητών, την βέλτιστη λύση του, την βέλτιστη λύση του σχετιζόμενου γραμμικού προβλήματος και τέλος 28

τον χρόνο που απαιτήθηκε για την επίλυσή του και τον συνολικό αριθμό παραγόμενων προβλημάτων με εφαρμογή των δύο στρατηγικών. Όνομα προβλήματος Αριθμός μεταβλητών Βέλτιστη λύση Βέλτιστη χαλαρωμένη λύση 1)Ελάχιστο κάτω φράγμα Χρόνος Aριθμός (sec) Προβ. 2)Κατά βάθος αναζήτηση Χρόνος Aριθμός (sec) Προβ. p0033 33 3089 2520.57 7 671 14 2267 lseu 89 1120 834.68 1889 38261 3038 65839 p0201 201 7615 6875 1001 839 2165 1939 mod008 319 307 290.93 419 25331 641 43687 p0040 40 62027 61796.55 1 61 2 89 pipex 48 788.263 773.751 8 1647 28 6745 p0282 282 258411 176867.50 400 1647 564 2395 z1opt32 32 159.52 146.24044 48 28651 77 44867 z1opt32b 32 135.72 122.12875 17 8927 24 14175 enigma 100 0 0 443 2161 443 2161 Πίνακας 3.2.1 Σύγκριση των δύο στρατηγικών σε αποδοτικότητα σε σχέση με την πλήρη επίλυση ενός προβλήματος Τα πειραματικά αποτελέσματα επαληθεύουν τις θεωρητικές μας προσδοκίες. Η στρατηγική αναζήτησης με κριτήριο το ελάχιστο κάτω φράγμα αποδεικνύεται αποδοτικότερη σε ότι αφορά την πλήρη επίλυση του προβλήματος και στο χρόνο που απαιτείται και στον συνολικό αριθμό των παραγόμενων προβλημάτων. Διαπιστώνουμε επίσης όμως πως η διαφορά στην αποτελεσματικότητα των δύο μεθόδων εξαρτάται από το συγκεκριμένο πρόβλημα στο οποίο εφαρμόζονται. Αυτό είναι ένα γενικότερο συμπέρασμα κατά τη μελέτη της αποδοτικότητας διαφόρων στρατηγικών στη μερική απαρίθμηση. Από τα παραπάνω δεδομένα όμως δεν γίνεται φανερό το σημαντικότερο πλεονέκτημα της κατά βάθος αναζήτησης στο δέντρο ο υπολογισμός μιας ικανοποιητικής εφικτής (έστω και μη βέλτιστης) λύσης από τα αρχικά ακόμη στάδια της εκτέλεσης του αλγορίθμου. Στον πίνακα που ακολουθεί συγκρίνονται οι χρόνοι και οι αντίστοιχοι αριθμοί παραγόμενων προβλημάτων μέχρι την εμφάνιση της πρώτης εφικτής λύσης στο πρόβλημα 29

Όνομα προβλήματος Βέλτιστη λύση 1)Ελάχιστο κάτω φράγμα 1 η εφικτή λύση Χρόνος (sec) Aριθμός Προβ. 2)Κατά βάθος αναζήτηση 1 η εφικτή λύση Χρόνος (sec) Aριθμός Προβ. p0033 3089 3089 6 614 3606 0 58 Lseu 1120 1153 574 11390 1798 3 122 p0201 7615 7615 839 1001 7905 49 65 mod008 307 307 7 580 344 2 142 p0040 62027 62166 0 16 62149 0 21 Pipex 788.263 788.263 1583 8 807.819 4 969 p0282 258411 259572 291 1195 294270 19 91 z1opt32 159.52 159.92 39 22884 202.72 0 56 z1opt32b 135.72 135.72 17 8927 183.92 0 54 Enigma 0 0 443 2161 0 443 2161 Πίνακας 3.2.2 Σύγκριση της αποδοτικότητας των δύο στρατηγικών σε σχέση με την εύρεση της πρώτης εφικτής λύσης Βλέπουμε πως στην πλειοψηφία των περιπτώσεων η στρατηγική της κατά βάθος αναζήτησης στο δέντρο παρέχει πράγματι πολύ νωρίς ικανοποιητικότατες εφικτές λύσεις στο πρόβλημα. Αυτό μπορεί να είναι ιδιαίτερα σημαντικό για προβλήματα όπου η πλήρης επίλυση είναι χρονοβόρα ή δεν είναι αναγκαίο να βρεθεί η βέλτιστη λύση. Κατά την αξιολόγηση των δύο προσεγγίσεων προφανώς χρησιμοποιήθηκε η ίδια στρατηγική επιλογής μεταβλητής διακλάδωσης. Πρόκειται για την στρατηγικη διακλάδωσης με κριτήριο την μεγιστοποίηση του κάτω φράγματος. Πρέπει να επισημανθεί σε αυτό το σημείο πως με βάση αυτήν τη στρατηγική διακλάδωσης η μεταβλητή που επιλέγεται σε κάθε βήμα είναι συνάρτηση μόνο του συγκεκριμένου προβλήματος (κόμβου) το οποίο εξετάζεται. Κατά συνέπεια σε κάθε κόμβο λαμβάνονται οι ίδιες αποφάσεις για την επιλογή μεταβλητής και με τις δύο στρατηγικές αναζήτησης που μελετήθηκαν. Δηλαδή και με τις δύο μεθόδους εξερευνάται το ίδιο δένδρο. Από αυτό εύκολα μπορεί να συμπεράνει κανείς πως ο επιπλέον αριθμός προβλημάτων που παράγονται με την κατά βάθος αναζήτηση αφορά αποκλειστικά προβλήματα με κάτω φράγμα μεγαλύτερο ή ίσο από την βέλτιστη τιμή της αντικειμενικής συνάρτησης για το πρόβλημα, όπως αυτή τελικά προέκυψε. Δηλαδή παίρνοντας ως παράδειγμα την επίλυση του προβλήματος pipex παρατηρούμε πως με την στρατηγική του ελάχιστου κάτω φράγματος παρήχθησαν συνολικά 1647 προβλήματα (κόμβοι του δένδρου) ενώ με 30

κατά βάθος αναζήτηση 6745 προβλήματα. Διαπιστώνουμε λοιπόν πως 6745-1647=5098 επιπλέον προβλήματα παρήχθησαν με την κατά βάθος αναζήτηση. Αυτά τα προβλήματα όμως προέκυψαν από την εξέταση 5098/2=2549 προβλημάτων με κάτω φράγματα μεγαλύτερα ή ίσα από την τιμή 788.263, που αποτελούσε τελικά και την βέλτιστη τιμή της αντικειμενικής συνάρτησης για το πρόβλημα. Την εξέταση αυτών των προβλημάτων απέφυγε η στρατηγική του ελάχιστου κάτω φράγματος, εξετάζοντας κατά προτεραιότητα κόμβους με μικρότερο κάτω φράγμα. 3.3 Η στρατηγική επιλογής μεταβλητής Κατά τη δεύτερη φάση των υπολογιστικών πειραματισμών μας έγινε απόπειρα να αξιολογηθούν και να συγκριθούν οι στρατηγικές επιλογής μεταβλητής στις οποίες αναφερθήκαμε νωρίτερα. Για να διαπιστωθεί μάλιστα η χρησιμότητα της εφαρμογής τους κρίθηκε σκόπιμη η σύγκρισή τους με μια στρατηγική επιλογής μεταβλητής διακλάδωσης με τυχαίο τρόπο. Οι τρεις αυτές στρατηγικές εφαρμόστηκαν στα ίδια προβλήματα που χρησιμοποιήθηκαν και για τις ανάγκες της αξιολόγησης των στρατηγικών επιλογής προβλήματος. Οι χρόνοι αναφέρονται σε επίλυση με στρατηγική επιλογής προβλήματος το κριτήριο του ελάχιστου κάτω φράγματος. Τα αποτελέσματα παρατίθενται στον πίνακα που ακολουθεί: Όνομα προβλ. 1)Μέγιστο κάτω φράγμα Χρόνος (sec) Αριθμός κόμβων 2)Μέγιστος συντελ. στην αντικ. συνάρτηση Χρόνος (sec) Αριθμός κόμβων 3)Τυχαία επιλογή μεταβλητής Χρόνος (sec) Αριθμός κόμβων p0033 7 671 4 2443 12 7839 lseu 1889 38261 - - - - p0201 1001 839 205 2655 95 1179 mod008 419 25331 498 113117 151 32213 p0040 1 61 1 73 1 121 pipex 8 1647 3 2121 6 3667 p0282 291 1195 33 411 - - z1opt32 39 22884 43 60117 71 77125 z1opt32b 17 8927 13 20331 30 29381 enigma 443 2161 140 2615 603 11210 Πίνακας 3.3.1 Σύγκριση της αποδοτικότητας των δύο στρατηγικών επιλογής μεταβλητής διακλάδωσης. 31

Με μια πρόχειρη ματιά διαπιστώνουμε την δραστική μείωση του αριθμού προβλημάτων (και άρα και του μεγέθους του δένδρου) που απαιτούνται για την εύρεση μιας βέλτιστης λύσης στο πρόβλημα με εφαρμογή του κριτηρίου του μέγιστου κάτω φράγματος στην επιλογή μεταβλητής διακλάδωσης. Η στρατηγική αυτή οδηγεί συστηματικά σε πολύ μικρότερα δένδρα. Αυτό ήταν κάτι που αναμέναμε άλλωστε και θεωρητικά, καθώς L είναι σχεδιασμένη με κριτήριο την ταχύτερη σύγκλιση των οριών z και U z. Διαπιστώνουμε όμως επίσης και την αύξηση του χρόνου που απαιτείται για την διερεύνηση κάθε προβλήματος εξετάζοντας για κάθε στρατηγική τον λόγο του αριθμού των προβλημάτων (ή κόμβων) που παρήχθησαν συνολικά προς τον χρόνο που απαιτήθηκε για την πλήρη επίλυση του κάθε προβλήματος. Οι λόγοι αυτοί για την κάθε στρατηγική παρατίθενται στον πίνακα που ακολουθεί. Όνομα προβλ. 1)Μέγιστο κάτω φράγμα 2) Μέγιστος συντελεστής στην αντικ. συνάρτηση 3)Τυχαία επιλογή μεταβλητής p0033 95,86 610,75 653,25 lseu 20,25 - - p0201 0,84 12,95122 12,41053 mod008 60,46 227,1426 213,3311 p0040 61,00 73 121 pipex 205,88 707 611,1667 p0282 4,11 12,45455 - z1opt32 586,77 1398,07 1086,268 z1opt32b 525,12 1563,923 979,3667 enigma 4,88 18,67857 185,9038 Πίνακας 3.3.2 Μέσος ρυθμός παραγωγής κόμβων ανά δευτερόλεπτο εκτέλεσης του αλγορίθμου Καθοριστικότερος παράγοντας, όπως φαίνεται από τα πειραματικά αποτελέσματα, φαίνεται να είναι ο χρόνος που απαιτείται για την επιλογή μεταβλητής σε κάθε επανάληψη. Έτσι με εξαίρεση το πρόβλημα lseu, του οποίου η επίλυση ήταν δυνατή μόνο με το κριτήριο του μέγιστου κάτω φράγματος, και του προβλήματος mod008, το κριτήριο του μεγαλύτερου συντελεστή στην αντικειμενική συνάρτηση οδήγησε σε ταχύτερη επίλυση του προβλήματος παρά το αυξημένο κόστος σε παραγόμενα υποπροβλήματα. Σε σχέση με την επιλογή μεταβλητής με τυχαίο τρόπο σε κάθε βήμα, τα συμπεράσματα δεν υπήρξαν απολύτως σαφή. Αρκετά συχνά αποδείχτηκε καλύτερη από την στρατηγική της μεγιστοποίησης του κάτω φράγματος 32

(προβλήματα p0201, mod008 και pipex) και κάποτε καλύτερη ακόμη και από την στρατηγική του μεγαλύτερου συντελεστή στην αντικειμενική συνάρτηση (προβλήματα p0201, mod008). Έτσι, παρόλο που οι δύο αυτές στρατηγικές γενικά αποδείχτηκαν ταχύτερες, οι προαναφερθείσες περιπτώσεις προβλημάτισαν και γέννησαν ερωτηματικά σε σχέση με το πόσο εύρωστες (δηλαδή αποτελεσματικές σε μία ευρεία γκάμα προβλημάτων) είναι οι στρατηγικές που μελετήθηκαν. Συμπερασματικά θα μπορούσε να πει κανείς πως η μόνη αδιαμφισβήτητη διαπίστωση από τους υπολογιστικούς πειραματισμούς σε σχέση με την επιλογή μεταβλητής διακλάδωσης ήταν πως το κριτήριο του μέγιστου κάτω φράγματος οδηγεί σε πολύ μικρότερους αριθμούς παραγόμενων υποπροβλημάτων για τις ανάγκες της επίλυσης ενός δεδομένου προβλήματος από τις άλλες στρατηγικές. Εάν βρεθούν τρόποι να μειωθεί το υπολογιστικό κόστος του προσδιορισμού μεταβλητής διακλάδωσης σε κάθε βήμα του αλγορίθμου, η στρατηγική αυτή είναι η πλέον υποσχόμενη. 33

Επίλογος-Συμπεράσματα Τα υπολογιστικά μας πειράματα κατέδειξαν την ιδιαίτερη σημασία που έχει η επιλογή των κατάλληλων στρατηγικών κατά την εφαρμογή της μερικής απαρίθμησης στην επίλυση προβλημάτων ακέραιου προγραμματισμού. Σε ότι αφορά την στρατηγική επιλογής προβλήματος, το κριτήριο του ελάχιστου κάτω φράγματος αποδείχθηκε αναμφίβολα πως οδηγεί σε συντομότερη πλήρη επίλυση των προβλημάτων στα οποία εφαρμόζεται. Στα μειονεκτήματά του όμως συγκαταλέγονται οι αυξημένες ανάγκες σε μνήμη και η αδυναμία του να παρέχει νωρίς κάποια ικανοποιητική (έστω και μη βέλτιστη) εφικτή λύση στο πρόβλημα. Απάντηση σε αυτές τις αδυναμίες δίνει η κατά βάθος αναζήτηση στο δένδρο που όμως συστηματικά οδηγεί σε μεγαλύτερους χρόνους επίλυσης. Άρα η επιλογή του κριτηρίου επιλογής προβλήματος σε κάθε περίπτωση επαφίεται στις ανάγκες του χρήστη. Για τις στρατηγικές επιλογής μεταβλητής διακλάδωσης από την άλλη, που αποτελούν άλλωστε και το βασικό αντικείμενο της έρευνας πάνω στην μερική απαρίθμηση σήμερα, τα πράγματα είναι λιγότερο ξεκάθαρα και ιδιαιτέρως εξαρτώμενα από το εκάστοτε πρόβλημα. Βέβαιο συμπέρασμα υπήρξε πως με καταβολή επιπλέον υπολογιστικής προσπάθειας (όπως με το κριτήριο της μεγιστοποίησης του κάτω φράγματος) μπορούμε να οδηγηθούμε σε επίλυση ενός προβλήματος με σημαντικά μειωμένο αριθμό παραγόμενων υποπροβλημάτων. Πάντως με τη μέθοδο αυτή το υπολογιστικό κόστος σε κάθε επανάληψη υπήρξε δυσανάλογο με το κέρδος σε αριθμό επαναλήψεων οδηγώντας τελικά σε βραδύτερες επιλύσεις (σε γενικές γραμμές). Απλούστερα (από υπολογιστική άποψη) κριτήρια επιλογής, όπως αυτό του μεγαλύτερου συντελεστή στην αντικειμενική συνάρτηση φαίνεται να αποδίδουν καλύτερα, παρά την παραγωγή πολύ μεγαλύτερων δένδρων. Η υπεροχή πάντως αμφότερων των στρατηγικών από την τυχαία επιλογή μεταβλητής δεν πρέπει να θεωρείται δεδομένη. Έτσι αναδεικνύεται η ανάγκη σχεδιασμού εύρωστων στρατηγικών, ικανών να εγγυηθούν ταχεία επίλυση ενός ευρέος φάσματος προβλημάτων. Οι διάφορες στρατηγικές επιλογής μεταβλητής και προβλήματος αποτελούν αντικείμενο ζωηρής μελέτης και έρευνας στις μέρες μας. Η κύρια προσέγγιση που υιοθετείται είναι αυτή των υπολογιστικών πειραμάτων, καθώς θεωρητικά συμπεράσματα είναι ιδιαιτέρως δύσκολο να εξαχθούν. Ο αναγνώστης καλείται να ανατρέξει στη σχετική βιβλιογραφία. 34

Παράρτημα: Η εφαρμογή, τα προβλήματα, ο πηγαίος κώδικας 1 H εφαρμογή Z1Opt Η εφαρμογή, όπως προαναφέρθηκε, αναπτύχθηκε σε περιβάλλον Dev- C++ και είναι μια εφαρμογή κονσόλας. Κατά την εκκίνησή της ζητά από τον χρήστη να προσδιορίσει το όνομα του αρχείου στο οποίο βρίσκεται αποθηκευμένο το προς επίλυση πρόβλημα. Τα προβλήματα είναι πρέπει να είναι αποθηκευμένα σε μορφή αρχείων MPS, ενός καθιερωμένου format αποθήκευσης μεικτών προβλημάτων ακεραίου προγραμματισμού. Στη συνέχεια ο χρήστης καλείται να προσδιορίσει τις στρατηγικές επιλογής προβλήματος και επιλογής μεταβλητής διακλάδωσης που επιθυμεί να εφαρμοστούν κατά την επίλυση του προβλήματος όπως φαίνεται στην εικόνα. Εικόνα 4.1.1 Καθορισμός των στρατηγικών που θα εφαρμοστούν κατά την εκτέλεση της εφαρμογής 35

Κατά την διαδικασία επίλυσης του προβλήματος το πρόγραμμα μπορεί να παρέχει λεπτομέρειες στο χρήστη σχετικά με την δομή του δένδρου που παράγεται. Πιο συγκεκριμένα, δίνεται η δυνατότητα να τυπώνεται στην οθόνη το πρόβλημα που επελέγη για διακλάδωση και τα χαρακτηριστικά του (κάτω φράγμα, ελεύθερες μεταβλητές), η μεταβλητή διακλάδωσης και τα παραγόμενα προβλήματα με τα αντίστοιχα κάτω φράγματα. Στην εικόνα που ακολουθεί φαίνεται ένα στιγμιότυπο της εξόδου που παρέχει η εφαρμογή κατά την εκτέλεση του αλγορίθμου Εικόνα 4.1.2 Έξοδος του προγράμματος κατά την επίλυση ενός προβλήματος Τα προβλήματα αριθμούνται με βάση την σειρά με την οποία παράγονται. Αυτή η δυνατότητα της εφαρμογής απενεργοποιήθηκε προφανώς για τις ανάγκες του υπολογιστικού μας πειράματος καθώς καθυστερεί σημαντικά την εκτέλεση του προγράμματος. Η μόνη έξοδος που επετράπη στο πρόγραμμα ήταν η ενημέρωση του χρήστη κάθε φορά που βρίσκεται μια νέα βελτιωμένη ακέραιη λύση στο πρόβλημα, δηλαδή μία νέα μερική λύση. Όταν η λίστα των υποψήφιων προβλημάτων αδειάσει η τρέχουσα μερική λύση αποτελεί και την βέλτιστη λύση στο πρόβλημα. 36

Τέλος το πρόγραμμα τυπώνει το χρόνο που μεσολάβησε ανάμεσα στην εκκίνηση της εκτέλεσης του αλγορίθμου και την εύρεση της βέλτιστης λύσης, καθώς και τον αριθμό προβλήμάτων (ή κόμβων του δένδρου) που παρήχθησαν για τις ανάγκες της επίλυσης. Η έξοδος του προγράμματος φαίνεται στην επόμενη εικόνα Εικόνα 4.1.3 Υπολογισμός της βέλτιστης λύσης ενός προβλήματος από την εφαρμογή 2 Η βιβλιοθήκη συναρτήσεων γραμμικού προγραμματισμού Για τις ανάγκες του υπολογισμού του κάτω φράγματος κάθε υποψήφιου προβλήματος χρησιμοποιήθηκε η στρατηγική της επίλυσης του σχετιζόμενου προβλήματος γραμμικού προβλήματος (associated linear program). Για την επίλυση των προβλημάτων αυτών χρησιμοποιήθηκαν ρουτίνες της βιβλιοθήκης QSOpt. Όπως αναφέρεται και στο εγχειρίδιο οδηγιών της, η βιβλιοθήκη QSOpt παρέχει ένα σύνολο συναρτήσεων για την δημιουργία, τον χειρισμό και την επίλυση προβλημάτων γραμμικού 37