Αλγόριθμοι & Βελτιστοποίηση ΠΜΣ/ΕΤΥ: Μεταπτυχιακό Μάθημα 8η Ενότητα: Γραμμικός Προγραμματισμός ως Υπορουτίνα για Επίλυση Προβλημάτων Χρήστος Ζαρολιάγκης (zaro@ceid.upatras.gr) Σπύρος Κοντογιάννης (kontog@cs.uoi.gr) Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών ευτέρα, 9 Ιανουαρίου 2016
Σκελετός Ομιλίας 1 Μερικές Στοιχειώδεις Λειτουργίες 2 Norm Minimization 3 Linear Fractional Programming 4 Ακέραιος Γραμμικός Προγραμματισμός Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [2 / 26]
LP-Feasibility Test LP Feasibility Problem: Ελεγχος αν είναι κενό το σύνολο: F := {x R n : Ax = a; Bx b} Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [3 / 26]
LP-Feasibility Test LP Feasibility Problem: Ελεγχος αν είναι κενό το σύνολο: F := {x R n : Ax = a; Bx b} Απάντηση μέσω επίλυσης κατάλληλου γ.π. (θυμηθείτε επίσης και το Λήμμα του Farkas): minimize t (LPF) s.t. : Ax = a 1t + Bx b t 0 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [3 / 26]
LP-Feasibility Test 1. if (LPF) ΜΗ ΕΠΙΛΥΣΙΜΟ 2. then return(f = ) 3. else / (LPF): ΕΠΙΛΥΣΙΜΟ / 4. if η βέλτιστη λύση ( x, t) έχει κόστος t = 0 5. then return( x F ) 6. else return(f = ) Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [3 / 26] LP Feasibility Problem: Ελεγχος αν είναι κενό το σύνολο: F := {x R n : Ax = a; Bx b} Απάντηση μέσω επίλυσης κατάλληλου γ.π. (θυμηθείτε επίσης και το Λήμμα του Farkas): minimize t (LPF) s.t. : Ax = a 1t + Bx b t 0
Ελαχιστοποίηση Κυρτών Κατά Τμήματα Γραμμικών Συναρτήσεων minimize max {c i x + d i : i [k]} s.t. : Ax = a Bx b x J 0, J [n] f(x) x Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [4 / 26]
Ελαχιστοποίηση Κυρτών Κατά Τμήματα Γραμμικών Συναρτήσεων minimize max {c i x + d i : i [k]} s.t. : Ax = a Bx b x J 0, J [n] f(x) minimize v s.t. : Ax = a Bx b i [k], v c i x d i x J 0, J [n] x Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [4 / 26]
Σκελετός Ομιλίας 1 Μερικές Στοιχειώδεις Λειτουργίες 2 Norm Minimization 3 Linear Fractional Programming 4 Ακέραιος Γραμμικός Προγραμματισμός Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [5 / 26]
l 1 -Norm Minimization min. Cx d 1 s.t. : Ax = a Bx b x J 0, J [n] l 1 norm: z 1 = j [n] z j l 2 norm: z 2 = ( j [n] z 2 j ) 1 2 l norm: z = max j [n] z j Σημεία με τιμή νόρμας z p 1: z2 z 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [6 / 26]
l 1 -Norm Minimization min. Cx d 1 s.t. : Ax = a Bx b x J 0, J [n] min. 1 y s.t. : Ax = a Bx b y + Cx d y Cx d x J 0, J [n] l 1 norm: z 1 = j [n] z j l 2 norm: z 2 = ( j [n] z 2 j ) 1 2 l norm: z = max j [n] z j Σημεία με τιμή νόρμας z p 1: z2 z 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [6 / 26]
l 2 -Norm (aka Least-Squares) Minimization l 1 norm: z 1 = j [n] z j min. Cx d 2 Κλειστός τύπος για τη λύση (υποθέτοντας ότι rank(c) = n): l 2 norm: z 2 = ( j [n] z 2 j ) 1 2 l norm: z = max j [n] z j Σημεία με τιμή νόρμας z p 1: z2 x = (C C) 1 C d z 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [7 / 26]
l -Norm Minimization min. Cx d s.t. : Ax = a Bx b x J 0, J [n] l 1 norm: z 1 = j [n] z j l 2 norm: z 2 = ( j [n] z 2 j ) 1 2 l norm: z = max j [n] z j Σημεία με τιμή νόρμας z p 1: z2 z 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [8 / 26]
l -Norm Minimization min. Cx d s.t. : Ax = a Bx b x J 0, J [n] min. v s.t. : Ax = a Bx b 1v + Cx d 1v Cx d x J 0, J [n] l 1 norm: z 1 = j [n] z j l 2 norm: z 2 = ( j [n] z 2 j ) 1 2 l norm: z = max j [n] z j Σημεία με τιμή νόρμας z p 1: z2 z 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [8 / 26]
Σκελετός Ομιλίας 1 Μερικές Στοιχειώδεις Λειτουργίες 2 Norm Minimization 3 Linear Fractional Programming 4 Ακέραιος Γραμμικός Προγραμματισμός Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [9 / 26]
Linear Fractional Programming (I) min. c x+d f x+g s.t. : Ax = a Bx b f x g x J 0, J [n] Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [10 / 26]
Linear Fractional Programming (I) min. c x+d f x+g s.t. : Ax = a Bx b f x g x J 0, J [n] Ισοδύναμο μη-γραμμικό πρόγραμμα (για v c x+d f x+g ): (FLP) min. v s.t. : Ax = a Bx b f x g v f x + v g c x d x J 0, J [n] Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [10 / 26]
Linear Fractional Programming (II) Επίλυση με Χρήση Μεθόδου ιχοτόμησης (FLP_FEASIBILITY)(v) minimize 0 s.t. : Ax = a Bx b f x g v f x c x d v g x J 0, J [n] Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [11 / 26]
Linear Fractional Programming (II) Επίλυση με Χρήση Μεθόδου ιχοτόμησης (FLP_FEASIBILITY)(v) minimize 0 s.t. : Ax = a Bx b f x g v f x c x d v g x J 0, J [n] FLPBisection(A, a, B, b, c, d, f, g, ɛ) ΕΙΣΟ ΟΣ: L, U: Οριοθετούν ένα διάστημα τ.ώ.: v [L, U]. ɛ 0 := U L >0: Αρχική ανοχή σφάλματος. ɛ >0: Τελική ανοχή σφάλματος. ΨΕΥ ΟΚΩ ΙΚΑΣ: 1. repeat 2. Λύσε το (FLP_FEASIBILITY)(v) για v = L+U 2 3. if FEASIBLE. 4. then U := v 5. else / INFEASIBLE / L := v 6. until U L ɛ Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [11 / 26]
Linear Fractional Programming (III) FLPBisection(A, a, B, b, c, d, f, g, ɛ) ΕΙΣΟ ΟΣ: L, U: Οριοθετούν ένα διάστημα τ.ώ.: v [L, U]. ɛ 0 := U L >0: Αρχική ανοχή σφάλματος. ɛ >0: Τελική ανοχή σφάλματος. ΨΕΥ ΟΚΩ ΙΚΑΣ: 1. repeat 2. Λύσε το (FLP_FEASIBILITY)(v) για v = L+U 3. if FEASIBLE 4. then U := v 5. else / INFEASIBLE / L := v 6. until U L ɛ Το ΒΗΜΑ-2 επιλύει ένα γ.π.: η v εκλαμβάνεται ως σταθερά στο (FLP_FEASIBILITY)(v). 2. Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [12 / 26]
Linear Fractional Programming (III) FLPBisection(A, a, B, b, c, d, f, g, ɛ) ΕΙΣΟ ΟΣ: L, U: Οριοθετούν ένα διάστημα τ.ώ.: v [L, U]. ɛ 0 := U L >0: Αρχική ανοχή σφάλματος. ɛ >0: Τελική ανοχή σφάλματος. ΨΕΥ ΟΚΩ ΙΚΑΣ: 1. repeat 2. Λύσε το (FLP_FEASIBILITY)(v) για v = L+U 3. if FEASIBLE 4. then U := v 5. else / INFEASIBLE / L := v 6. until U L ɛ Το ΒΗΜΑ-2 επιλύει ένα γ.π.: η v εκλαμβάνεται ως σταθερά στο (FLP_FEASIBILITY)(v). Η ακρίβεια «διπλασιάζεται» σε κάθε επανάληψη. 2. Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [12 / 26]
Linear Fractional Programming (III) FLPBisection(A, a, B, b, c, d, f, g, ɛ) ΕΙΣΟ ΟΣ: L, U: Οριοθετούν ένα διάστημα τ.ώ.: v [L, U]. ɛ 0 := U L >0: Αρχική ανοχή σφάλματος. ɛ >0: Τελική ανοχή σφάλματος. ΨΕΥ ΟΚΩ ΙΚΑΣ: 1. repeat 2. Λύσε το (FLP_FEASIBILITY)(v) για v = L+U 3. if FEASIBLE 4. then U := v 5. else / INFEASIBLE / L := v 6. until U L ɛ Το ΒΗΜΑ-2 επιλύει ένα γ.π.: η v εκλαμβάνεται ως σταθερά στο (FLP_FEASIBILITY)(v). Η ακρίβεια «διπλασιάζεται» σε κάθε επανάληψη. Μέγιστο πλήθος επαναλήψεων; 2. Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [12 / 26]
Linear Fractional Programming (III) FLPBisection(A, a, B, b, c, d, f, g, ɛ) ΕΙΣΟ ΟΣ: L, U: Οριοθετούν ένα διάστημα τ.ώ.: v [L, U]. ɛ 0 := U L >0: Αρχική ανοχή σφάλματος. ɛ >0: Τελική ανοχή σφάλματος. ΨΕΥ ΟΚΩ ΙΚΑΣ: 1. repeat 2. Λύσε το (FLP_FEASIBILITY)(v) για v = L+U 3. if FEASIBLE 4. then U := v 5. else / INFEASIBLE / L := v 6. until U L ɛ Το ΒΗΜΑ-2 επιλύει ένα γ.π.: η v εκλαμβάνεται ως σταθερά στο (FLP_FEASIBILITY)(v). Η ακρίβεια «διπλασιάζεται» σε κάθε επανάληψη. Μέγιστο πλήθος επαναλήψεων; k = log 2 ( ɛ0ɛ ). Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [12 / 26] 2.
Σκελετός Ομιλίας 1 Μερικές Στοιχειώδεις Λειτουργίες 2 Norm Minimization 3 Linear Fractional Programming 4 Ακέραιος Γραμμικός Προγραμματισμός Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [13 / 26]
ρομολόγια Πτήσεων Αεροπλάνων (Ι) Ε ΟΜΕΝΑ: Σύνολο M = [m] απευθείας πτήσεων legs (πχ, Αθήνα - Φρανκφούρτη). Σύνολο N = [n] πιθανών δρομολογίων routes. j [n]: A[*, j] {0, 1} n είναι το χαρακτηριστικό διάνυσμα του δρομολογίου j. cj R είναι το κόστος του δρομολογίου j. ΕΦΙΚΤΕΣ ΛΥΣΕΙΣ: Κάθε leg αξιοποιείται ακριβώς σε ένα δρομολόγιο. ΣΤΟΧΟΣ: Επιλογή συλλογής δρομολογίων ελάχιστου κόστους. Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [14 / 26]
ρομολόγια Πτήσεων Αεροπλάνων (ΙΙ) Μεταβλητές απόφασης: { 1, επιλέγεται η διαδρομή j j [n], x j = 0, διαφορετικά Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [15 / 26]
ρομολόγια Πτήσεων Αεροπλάνων (ΙΙ) Μεταβλητές απόφασης: { 1, επιλέγεται η διαδρομή j j [n], x j = 0, διαφορετικά Μοντελοποίηση ως ακέραιο γραμμικό πρόγραμμα: minimize s.t. : nj=1 c j x j nj=1 A[i, j]x j = 1, i [m] x j {0, 1}, j [n] Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [15 / 26]
ρομολόγια Πτήσεων Αεροπλάνων (ΙΙ) Μεταβλητές απόφασης: { 1, επιλέγεται η διαδρομή j j [n], x j = 0, διαφορετικά Μοντελοποίηση ως ακέραιο γραμμικό πρόγραμμα: minimize s.t. : nj=1 c j x j nj=1 A[i, j]x j = 1, i [m] x j {0, 1}, j [n] Πρόκειται για παράδειγμα προβλήματος διαμέρισης (set-partitioning problem). Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [15 / 26]
ρομολόγια Πτήσεων Αεροπλάνων (ΙΙ) Μεταβλητές απόφασης: { 1, επιλέγεται η διαδρομή j j [n], x j = 0, διαφορετικά Μοντελοποίηση ως ακέραιο γραμμικό πρόγραμμα: minimize s.t. : nj=1 c j x j nj=1 A[i, j]x j = 1, i [m] x j {0, 1}, j [n] Πρόκειται για παράδειγμα προβλήματος διαμέρισης (set-partitioning problem). N P δύσκολο πρόβλημα (λόγω ακεραιότητας)!!! Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [15 / 26]
Χαλάρωση Ακέραιου Γ.Π. (Ι) Παράδειγμα ακέραιου γ.π. : (P) maximize ζ = 17x 1 + 12x 2 s.t. : 10x 1 + 7x 2 40 x 1 + x 2 5 x 1 N x 2 N Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [16 / 26]
Χαλάρωση Ακέραιου Γ.Π. (Ι) Παράδειγμα ακέραιου γ.π. και της χαλαρωμένης μορφής του: (P) maximize ζ = 17x 1 + 12x 2 s.t. : 10x 1 + 7x 2 40 x 1 + x 2 5 x 1 0 x 2 0 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [16 / 26]
Χαλάρωση Ακέραιου Γ.Π. (Ι) Παράδειγμα ακέραιου γ.π. και της χαλαρωμένης μορφής του: (P) maximize ζ = 17x 1 + 12x 2 s.t. : 10x 1 + 7x 2 40 x 1 + x 2 5 x 1 0 x 2 0 Q Πώς αξιοποιείται το χαλαρωμένο γ.π.; Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [16 / 26]
Χαλάρωση Ακέραιου Γ.Π. (Ι) Παράδειγμα ακέραιου γ.π. και της χαλαρωμένης μορφής του: (P) maximize ζ = 17x 1 + 12x 2 s.t. : 10x 1 + 7x 2 40 x 1 + x 2 5 x 1 0 x 2 0 Q Πώς αξιοποιείται το χαλαρωμένο γ.π.; A1 Παρέχει (άνω, αν είναι γ.π. μεγιστοποίησης, κάτω αν είναι γ.π. ελαχιστοποίησης) φράγμα στη βέλτιστη τιμή του ακέραιου γ.π. Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [16 / 26]
Χαλάρωση Ακέραιου Γ.Π. (Ι) Παράδειγμα ακέραιου γ.π. και της χαλαρωμένης μορφής του: (P) maximize ζ = 17x 1 + 12x 2 s.t. : 10x 1 + 7x 2 40 x 1 + x 2 5 x 1 0 x 2 0 Q Πώς αξιοποιείται το χαλαρωμένο γ.π.; A1 Παρέχει (άνω, αν είναι γ.π. μεγιστοποίησης, κάτω αν είναι γ.π. ελαχιστοποίησης) φράγμα στη βέλτιστη τιμή του ακέραιου γ.π. A2 Χρησιοποιείται ως υπορουτίνα για εύρεση της βέλτιστης ακέραιας λύσης (πχ, με την τεχνική Branch & Bound). Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [16 / 26]
Χαλάρωση Ακέραιου Γ.Π. (ΙΙ) Βέλτιστη λύση για το (P): [ x 1 ; x 2 ; ζ ] = [ 1.67; 3.33; 68.33 ]. x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 Ρ x1 + x2 5 Βέλτιστη Λύση Χαλαρωμένου ΓΠ 0 1 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [17 / 26]
Χαλάρωση Ακέραιου Γ.Π. (ΙΙ) Βέλτιστη λύση για το (P): [ x 1 ; x 2 ; ζ ] = [ 1.67; 3.33; 68.33 ]. Στρογγυλοποίηση στην πλησιέστερη ακέραια λύση [2; 3; 70] μη εφικτή λύση. x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 Ρ x1 + x2 5 Βέλτιστη Λύση Χαλαρωμένου ΓΠ 0 1 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [17 / 26]
Χαλάρωση Ακέραιου Γ.Π. (ΙΙ) Βέλτιστη λύση για το (P): [ x 1 ; x 2 ; ζ ] = [ 1.67; 3.33; 68.33 ]. Στρογγυλοποίηση στην πλησιέστερη ακέραια λύση [2; 3; 70] μη εφικτή λύση. Γεωμετρικά πλησιέστερη εφικτή ακέραια λύση: [ 1; 3; 53 ] μη βέλτιστη ακέραια λύση. x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 Ρ 0 1 x1 + x2 5 Βέλτιστη Λύση Χαλαρωμένου ΓΠ 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [17 / 26]
Χαλάρωση Ακέραιου Γ.Π. (ΙΙ) Βέλτιστη λύση για το (P): [ x 1 ; x 2 ; ζ ] = [ 1.67; 3.33; 68.33 ]. Στρογγυλοποίηση στην πλησιέστερη ακέραια λύση [2; 3; 70] μη εφικτή λύση. Γεωμετρικά πλησιέστερη εφικτή ακέραια λύση: [ 1; 3; 53 ] μη βέλτιστη ακέραια λύση. x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 Ρ 0 1 x1 + x2 5 Βέλτιστη Λύση Χαλαρωμένου ΓΠ 2 3 4 5 6 7 8 9 x 1 Βέλτιστη ακέραια λύση: [ x 1 ; x 2 ; ζ ] = [ 4; 0; 68 ]. Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [17 / 26]
Μέθοδος Branch & Bound (Ι) Q Στο χαλαρωμένο γ.π. ισχύει ότι: x 1 = 1.67. Πώς θα μπορούσαμε να αξιοποιήσουμε αυτή την πληροφορία, για επακριβή επίλυση του ακέραιου γ.π.; Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [18 / 26]
Μέθοδος Branch & Bound (Ι) Q Στο χαλαρωμένο γ.π. ισχύει ότι: x 1 = 1.67. Πώς θα μπορούσαμε να αξιοποιήσουμε αυτή την πληροφορία, για επακριβή επίλυση του ακέραιου γ.π.; A Υπάρχουν δυο αμοιβαία αποκλειόμενες περιπτώσεις για τη βέλτιστη ακέραια λύση x : x 1 1, ή x 1 2 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [18 / 26]
Μέθοδος Branch & Bound (Ι) Q Στο χαλαρωμένο γ.π. ισχύει ότι: x 1 = 1.67. Πώς θα μπορούσαμε να αξιοποιήσουμε αυτή την πληροφορία, για επακριβή επίλυση του ακέραιου γ.π.; A Υπάρχουν δυο αμοιβαία αποκλειόμενες περιπτώσεις για τη βέλτιστη ακέραια λύση x : x 1 1, ή x 1 2 BRANCH & BOUND: Λύνουμε δυο διαφορετικά χαλαρωμένα γ.π., ως υποπεριπτώσεις του (P): Το (P1) με τον επιπλέον περιορισμό x 1 1, και το (P2) με τον περιορισμό x 1 2: { (P1) x1 1 (P) (P2) x 1 2 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [18 / 26]
Μέθοδος Branch & Bound (ΙΙ) Λύση του (P1): [1; 4; 65]. x2 8 7 10x1 + 7x2 40 6 5 4 3 2 Ρ 1 1 Ρ 2 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 2 0 1 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [19 / 26]
Μέθοδος Branch & Bound (ΙΙ) Λύση του (P1): [1; 4; 65]. Βέλτιστη λύση κατά σύμπτωση ακέραια! x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 Ρ 1 Ρ 2 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 2 0 1 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [19 / 26]
Μέθοδος Branch & Bound (ΙΙ) Λύση του (P1): [1; 4; 65]. Βέλτιστη λύση κατά σύμπτωση ακέραια! STOP x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 Ρ 1 Ρ 2 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 2 0 1 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [19 / 26]
Μέθοδος Branch & Bound (ΙΙ) Λύση του (P1): [1; 4; 65]. Βέλτιστη λύση κατά σύμπτωση ακέραια! STOP Λύση του (P2): [2; 2.86; 68.29]. Μεγαλύτερο (χαλαρωμένο) κέρδος από αυτό της καλύτερης ακέραιας λύσης ως τώρα, από το (P1). x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 2 1 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 2 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [19 / 26]
Μέθοδος Branch & Bound (ΙΙ) Λύση του (P1): [1; 4; 65]. Βέλτιστη λύση κατά σύμπτωση ακέραια! STOP Λύση του (P2): [2; 2.86; 68.29]. Μεγαλύτερο (χαλαρωμένο) κέρδος από αυτό της καλύτερης ακέραιας λύσης ως τώρα, από το (P1). x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 2 1 x1 + x2 5 BRANCH { & BOUND: (P3) : x (P2) 1 2 x 2 2 Μη επιλύσιμο : x 1 2 x 2 3 Βέλτιστες Λύσεις των Ρ 1, Ρ 2 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [19 / 26]
Μέθοδος Branch & Bound (ΙΙΙ) x2 Λύση του (P3): [2.6; 2; 68.2] Μεγαλύτερο (χαλαρωμένο) κέρδος από αυτό της καλύτερης ακέραιας λύσης ως τώρα, από το (P1). 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 3 1 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 3 2 3 4 5 6 7 8 9 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [20 / 26]
Μέθοδος Branch & Bound (ΙΙΙ) x2 Λύση του (P3): [2.6; 2; 68.2] Μεγαλύτερο (χαλαρωμένο) κέρδος από αυτό της καλύτερης ακέραιας λύσης ως τώρα, από το (P1). 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 3 1 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 3 2 3 4 5 6 7 8 9 x 1 BRANCH & BOUND: (P3) { (P4) : x1 2 x 2 2 (P5) : x 1 3 x 2 2 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [20 / 26]
Μέθοδος Branch & Bound (IV) Λύση του (P4): [2; 2; 58]. Βέλτιστη λύση κατά σύμπτωση ακέραια! x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 4 Ρ 5 1 2 3 4 5 6 7 8 9 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 4, Ρ 5 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [21 / 26]
Μέθοδος Branch & Bound (IV) Λύση του (P4): [2; 2; 58]. Βέλτιστη λύση κατά σύμπτωση ακέραια! STOP x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 4 Ρ 5 1 2 3 4 5 6 7 8 9 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 4, Ρ 5 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [21 / 26]
Μέθοδος Branch & Bound (IV) Λύση του (P4): [2; 2; 58]. Βέλτιστη λύση κατά σύμπτωση ακέραια! STOP Λύση του (P5): [3; 1.43; 68.14]. Μεγαλύτερο (χαλαρωμένο) κέρδος από αυτό της καλύτερης ακέραιας λύσης ως τώρα, από το (P1). x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 4 Ρ 5 1 2 3 4 5 6 7 8 9 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 4, Ρ 5 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [21 / 26]
Μέθοδος Branch & Bound (IV) Λύση του (P4): [2; 2; 58]. Βέλτιστη λύση κατά σύμπτωση ακέραια! STOP Λύση του (P5): [3; 1.43; 68.14]. Μεγαλύτερο (χαλαρωμένο) κέρδος από αυτό της καλύτερης ακέραιας λύσης ως τώρα, από το (P1). x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 4 Ρ 5 1 2 3 4 5 6 7 8 9 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 4, Ρ 5 x 1 BRANCH { & BOUND: (P6) : x (P5) 1 3 x 2 1 Μη επιλύσιμο : x 1 3 x 2 2 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [21 / 26]
Μέθοδος Branch & Bound (V) x2 Λύση του (P6): [3.3; 1; 68.1]. Μεγαλύτερο (χαλαρωμένο) κέρδος από αυτό της καλύτερης ακέραιας λύσης ως τώρα, από το (P1). BRANCH & BOUND: (P6) 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Ρ 1 Ρ 4 Ρ 6 1 2 3 4 5 6 7 8 9 x1 + x2 5 Βέλτιστες Λύσεις των Ρ 1, Ρ 4, Ρ 6 { (P7) : x1 = 3 x 2 = 1 (P8) : x 1 = 4 x 2 = 1 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [22 / 26]
Μέθοδος Branch & Bound (VI) Λύση του (P7): [3; 1; 63]. Βέλτιστη λύση ακέραια! STOP Λύση του (P8): [4; 0; 68]. Βέλτιστη λύση ακέραια! STOP x2 8 7 10x1 + 7x2 40 6 5 4 3 2 1 0 Βέλτιστες Λύσεις των Ρ 1, Ρ 4, Ρ 7, Ρ 8 Ρ 1 Ρ 4 Ρ 7 Ρ 8 1 2 3 4 5 6 7 8 9 x1 + x2 5 x 1 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [23 / 26]
Μέθοδος Branch & Bound (VII) Βέλτιστη ακέραια λύση αρχικού ακέραιου γραμμικού προγράμματος; P 0 : x 1 =1.67, x 2 =3.33 ζ=68.33 x 1 <1 x 1 >2 P 1 : x 1 =1, x 2 =4 ζ=65 x 2 <2 P 2 : x 1 =2, x 2 =2.86 ζ=68.29 x 2 >3 P 3 : x 1 =2.6, x 2 =2 ζ=68.2 x 1 <2 x 1 >3 P 4 : x 1 =2, x 2 =2 ζ=58 P 5 : x 1 =3, x 2 =1.43 ζ=68.14 x 2 <1 x 2 >2 P 6 : x 1 =3.3, x 2 =1 ζ=68.1 x 1 <3 x 1 >4 P 7 : x 1 =3, x 2 =1 ζ=63 P 8 : x 1 =4, x 2 =0 ζ=68 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [24 / 26]
Μέθοδος Branch & Bound (VII) Βέλτιστη ακέραια λύση αρχικού ακέραιου γραμμικού προγράμματος; P 0 : x 1 =1.67, x 2 =3.33 ζ=68.33 x 1 <1 x 1 >2 P 1 : x 1 =1, x 2 =4 ζ=65 x 2 <2 P 2 : x 1 =2, x 2 =2.86 ζ=68.29 x 2 >3 Η ακέραια λύση με τη βέλτιστη τιμή, μεταξύ αυτών που ανακάλυψε η BRANCH & BOUND τεχνική: [ x 1 ; x 2 ; ζ ] = [ 4; 0; 68 ] P 3 : x 1 =2.6, x 2 =2 ζ=68.2 x 1 <2 x 1 >3 P 4 : x 1 =2, x 2 =2 P 5 : x 1 =3, x 2 =1.43 ζ=58 ζ=68.14 x 2 <1 x 2 >2 P 6 : x 1 =3.3, x 2 =1 ζ=68.1 x 1 <3 x 1 >4 P 7 : x 1 =3, x 2 =1 ζ=63 P 8 : x 1 =4, x 2 =0 ζ=68 Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [24 / 26]
Μέθοδος Branch & Bound (VIII) 1 (P σ ) = το χαλαρωμένο γ.π. του ακέραιου γ.π. (IP σ ) που επιθυμούμε να λύσουμε 2 if (P σ ) μη επιλύσιμο then return «(IP σ ): μη επιλύσιμο» if η βέλτιστη λύση του (P t ) έχει κόστος μεγαλύτερο του κόστους της καλύτερης ακέραιας λύσης μέχρι στιγμής then return «(IP σ ) : υποβέλτιστο κόστος» 3 BRANCH: Οι κλάδοι (P σ0 ) και (P σ1 ) έχουν τους ίδιους περιορισμούς με το (P σ ), συν δυο αμοιβαία αποκλειόμενους περιορισμούς (έναν για κάθε κλάδο) για την πρώτη μεταβλητή με μη ακέραια τιμή, x k x k, στη βέλτιστη λύση x του (P σ ): x i x i και x i x i. 4 BOUND: x σ0 = Β&Β(P σ0 ) x σ1 = Β&Β(P σ1 ) return arg min{ c x σ0, c x σ1 } Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [25 / 26]
Ευχαριστώ για την προσοχή σας! Ερωτήσεις / Σχόλια ; Σ. Κοντογιάννης ΠΜΣ/ΕΤΥ : Αλγόριθμοι & Βελτιστοποίηση (Φθινόπωρο 2016) 8η ενότητα [26 / 26]