Επιχειρησιακή Ερευνα η Σειρά Ασκήσεων Ενδεικτικές Λύσεις 1. (α ) Η συνάρτηση f(x 1, x ) = x 1 + x x 1 x + x μπορεί να γραφεί ως f( x) = x A x + b x όπου x = x 1 A = 1 1 1 x b = 0 Θα χρειαστούμε το διάνυσμα κλίσης και την Εσσιανή της συναρτήσης f( x). Για το διάνυσμα κλίσης έχουμε: f( x) = A x + b = 1 x 1 + 0 = x 1 x 1 1 x 1 + x + x Για την Εσσιανή έχουμε: H(f, x) = A = Εχοντας αρχικό σημείο το x 0 = [0, 0], το επόμενο σημείο σύμφωνα με τον αλγόριθμο Newton υπολογίζεται ως εξής: x 1 = x 0 H(f, x 0 ) 1 f( x 0 ) = 0 0 1 0 0 0.5 0.5 = 0 = 0 + 0 + 0.5 1 (β ) Αρχικά θέτουμε t = 1. Επειτα υπολογίζουμε τη διεύθυνση δ για x 0 = [0, 0] : δ = f( x0 ) = 0 + 0 = 0 0 0 Υπολογίζουμε το επόμενο σημείο ως εξής: x 1 = x 0 + t δ = 0 + 0 = 0 0 και στη συνέχεια, την τιμή της συνάρτησης στο σημείο αυτο: f( x 1 ) = 0 1 0 [ ] + 0 0 = 0 1 1 1
Επειτα, υπολογίζουμε την τιμή της παράστασης f( x 0 ) + c f( x 0 )( x 1 x 0 ): f( x 0 ) + c f( x 0 )( x 1 x 0 ) = 0 0 1 0 [ ] + 0 0 [ ] ( + 0.5 0 0 0 ) = 8 1 1 0 0 0 και τέλος, συγκρίνουμε τα δυο παραπάνω. Ισχύει: f( x 1 ) > f( x 0 ) + c f( x 0 )( x 1 x 0 ) Συνεπώς, το σημείο x 1 δεν ικανοποιεί τη συνθήκη Armijo-Goldstein οπότε ο αλγόριθμος συνεχίζει με t = 1 /. Οπως και παραπάνω, υπολογίζουμε το επόμενο σημείο ως εξής: x 1 = x 0 + t δ = 0 + 1 0 = 0 0 Υπολογίζουμε την τιμή της συνάρτησης στο νέο σημείο: f( x 1 ) = 0 1 0 [ ] + 0 0 = 1 1 Στη συνέχεια, υπολογίζουμε την παράσταση f( x 0 ) + c f( x 0 )( x 1 x 0 ): f( x 0 ) + c f( x 0 )( x 1 x 0 ) = 0 0 1 0 [ ] + 0 0 [ ] ( + 0.5 0 0 0 ) = 1 1 0 0 0 και τέλος ξανασυγκρίνουμε τα δυο παραπάνω. Βλέπουμε ότι: f( x 1 ) = f( x 0 ) + c f( x 0 )( x 1 x 0 ) Άρα, το επόμενο σημείο είναι το x 1 = [0, ].. (α ) Αρχικά μετατρέπουμε το πρόβλημά μας σε πρόβλημα ελαχιστοποίησης: min(x y) έτσι ώστε x y 1 x +y 1 x, y R Επειτα μετατρέπουμε τους ανισοτικούς περιορισμούς σε ισοτικούς, εισάγωντας μια μεταβλητή χαλαρότητας
για κάθε περιορισμό ως εξής: min(x y) έτσι ώστε x y + z 1 = 1 x + y + z = 1 z 1, z 0, x, y R Προκύπτει η παρακάτω Λαγκραντζιανή: L(x, y, z 1, z ; λ 1, λ ) = x y + λ 1 (x y + z 1 + 1) + λ (x + y + z 1) Εδώ βλέπουμε ότι θα πρέπει να ισχύει λ 1 0 και λ > 0 γιατί σε διαφορετική περίπτωση L καθώς z 1, z αντίστοιχα. Άρα Λ = {(λ 1, λ ) R : λ 1 0, λ > 0}. Εχουμε τις παρακάτω εξισώσεις μερικών παραγώγων της Λαγκραντζιανής ως πρός x και y: x L(x, y, z 1, z ; λ 1, λ ) = 0 x( λ) = λ 1 + 1 λ y L(x, y, z 1, z ; λ 1, λ ) = 0 y( λ) = λ 1 + λ Για να ελαχιστοποιήσουμε τη Λαγκραντζιανή ως προς z 1, λύνουμε το πρόβλημα min z1 0 λ 1 z 1. Διακρίνουμε δυο περιπτώσεις: 1. Εάν λ 1 > 0, η βέλτιστη λύση είναι z 1 ( λ) = 0.. Εάν λ 1 = 0, τότε κάθε z 1 ( λ) 0 είναι βέλτιστο. Συνεπώς, για τη λύση των εξισώσεων x( λ) y( λ) + z 1 ( λ) = 1 x( λ) + y( λ) + z ( λ) = 1 θεωρούμε δύο περιπτώσεις ανάλογα εάν λ 1 > 0 ή λ 1 = 0: 1. Εάν λ 1 > 0, τότε z 1 ( λ) = 0 και λύνοντας το σύστημα: λ 1 + 1 λ 1 + = 1 λ λ λ 1 + λ 1 + 1 λ + λ 1 + λ 1 + 8λ = 1 προκύπτει λ 1 0.91 ή λ 1 0.1, τα οποία όμως και τα δυο έρχονται σε αντίθεση με την υπόθεση λ 1 > 0. Άρα δεν υπάρχει λ Λ όπου η βέλτιστη λύση της Λαγκραντζιανής είναι εφικτή, όταν λ 1 > 0.. Εάν λ 1 = 0 λαμβάνουμε το σύστημα εξισώσεων: λ + z 1 = 1 όπου z 1 0 η απροσδιόριστη τιμή z 1 ( λ). Λύνοντας το σύστημα των εξισώσεων και αγνώστων λ = 1
βρίσκουμε λ = /, z 1 = 1. Παρατηρήστε ότι (λ 1, λ ) = (0, /) Λ καθώς και η λύση x( λ), y( λ), z 1 ( λ) είναι εφικτή, άρα δίνουν τη βέλτιστη λύση του προβλήματος x = / και y = /. (β ) Οπως είδαμε παραπάνω, η βέλτιστη λύση ικανοποιούσε τον 1ο περιορισμό χωρίς ισότητα. Εάν ο περιορισμός γινόταν x y 1.5, η βέλτιστη λύση θα παρέμενε η ίδια, καθώς βλέπουμε ότι: = < 1.5 οπότε ικανοποιείται και πάλι ο περιορισμός, ενώ ταυτόχρονα δεν μπορούμε να οδηγηθούμε σε καλύτερη λύση. 1. (α ) Παρακάτω ακολουθεί υλοποίηση της μεθόδου εσωτερικού σημείου (με λογαριθμικές συναρτήσεις φραγμού (barrier) και τη μέθοδο Newton με συντελεστή οπισθοδρόμησης c = 0.5) για την εύρεση της βέλτιστης λύσης στο πρόβλημα. Η υλοποίηση που δίνεται είναι σε γλώσσα Matlab. Αρχικά, ορίζουμε τη συνάρτηση η οποία θα ελαχιστοποιηθεί όπως παρακάτω. 1 f u n c t i o n val = f ( e p s i l o n, x ) val = x x e p s i l o n ( l o g ( x ( 1 )+x ( ) 1)+l o g (6 x ( 1 ) x ( ) ) ) ; end Επειτα, ορίζουμε τις μερικές παραγώγους της συνάρτησης αυτής. 1 f u n c t i o n df = Df ( e p s i l o n, x ) df = x+e p s i l o n [/( x ( 1 )+x ( ) 1)+/(6 x ( 1 ) x ( ) ), 1/( x ( 1 )+x ( ) 1)+/(6 x ( 1 ) x ( ) ) ] ; 5 end Και στη συνέχεια την Εσσιανή της. 1 f u n c t i o n h = Hessian ( e p s i l o n, x ) h= eye ( ) +[, ;,1] e p s i l o n /( x ( 1 )+x ( ) 1) ˆ + [, 6 ; 6, 9 ] e p s i l o n /(6 x ( 1 ) x ( ) ) ˆ ; 5 end Παρακάτω δίνεται η υλοποίηση της μεθόδου Newton η οποία χρησιμοποιεί τις παραπάνω συναρτήσεις. 1 f u n c t i o n x s t a r = Newton ( e p s i l o n, t o l, x ) while true d = inv ( Hessian ( e p s i l o n, x ) ) Df ( e p s i l o n, x ) ; 5 % backtracking c =0.5: 6 c =0.5; 7 t =1; 8 while true 9 i f f ( e p s i l o n, x+t d )<=f ( e p s i l o n, x ) t c Df ( e p s i l o n, x ) d 10 break ;
11 end 1 t = c t ; 1 end 1 t 15 x = x+t d 16 17 i f ( t s q r t ( d ( 1 ) ˆ+d ( ) ˆ)<t o l ) 18 break 19 end 0 end 1 x s t a r = x ; end Τέλος, ορίζουμε τη μέθοδο εσωτερικού σημείου η οποία στο βασικό βρόχο της χρησιμοποιεί τη μέθοδο Newton που ορίστηκε παραπάνω. 1 f u n c t i o n x s t a r = i n t p o i n t ( e p s i l o n, x, i n t o l ) while true x = Newton ( e p s i l o n, i n t o l, x ) ; 5 e p s i l o n = e p s i l o n 0. 5 ; 6 i f ( e p s i l o n < 1e 5 ) 7 break ; 8 end 9 end 10 x s t a r = x 11 end (β ) Αρχικά, μετατρέπουμε τους ανισοτικούς περιορισμούς σε ισοτικούς, εισάγωντας μια μεταβλητή χαλαρότητας για κάθε περιορισμό ως εξής: min(x 1 + x ) έτσι ώστε x 1 x + z 1 = 1 x 1 + x + z = 6 z 1, z 0, x 1, x R Η Λαγκραντζιανή που προκύπτει είναι η ακόλουθη: L(x 1, x, z 1, z ; λ 1, λ ) = x 1 + x + λ 1 (x 1 x + z 1 + 1) + λ (x 1 + x + z 6) Θα πρέπει λ 1, λ 0 γιατί σε διαφορετική περίπτωση L καθώς z 1, z αντίστοιχα. Άρα Λ = {(λ 1, λ ) R : λ 1 0, λ 0}. Εχουμε τις παρακάτω εξισώσεις μερικών παραγώγων της Λαγκραντζιανής 5
ως πρός x 1 και x : L(x 1, x, z 1, z ; λ 1, λ ) = 0 x 1 ( x λ) = λ 1 λ 1 L(x 1, x, z 1, z ; λ 1, λ ) = 0 x ( x λ) = λ 1 λ Για να ελαχιστοποιήσουμε τη Λαγκραντζιανή ως προς z 1, λύνουμε το πρόβλημα min z1 0 λ 1 z 1. Διακρίνουμε δυο περιπτώσεις: 1. Εάν λ 1 > 0, η βέλτιστη λύση είναι z 1 ( λ) = 0.. Εάν λ 1 = 0, τότε κάθε z 1 ( λ) 0 είναι βέλτιστο. Επιπλέον, για να ελαχιστοποιήσουμε τη Λαγκραντζιανή ως προς z, λύνουμε το πρόβλημα min z 0 λ z. Διακρίνουμε και εδώ δυο περιπτώσεις: 1. Εάν λ > 0, η βέλτιστη λύση είναι z ( λ) = 0.. Εάν λ = 0, τότε κάθε z ( λ) 0 είναι βέλτιστο. Συνδυάζοντας τα παραπάνω, προκύπτουν τέσσερις περιπτώσεις. Συνεπώς, για τη λύση των παρακάτω εξισώσεων: x 1 ( λ) x ( λ) + z 1 ( λ) = 1 x 1 ( λ) + x ( λ) + z ( λ) = 6 θεωρούμε κάθε μια από τις τέσσερις περιπτώσεις ξεχωριστά: 1. Για λ 1 = 0 και λ = 0, έχουμε x 1 ( λ) = x ( λ) = 0, συνεπώς z 1 = 1 το οποίο όμως έρχεται σε αντίθεση με την υπόθεση ότι z 1 0.. Για λ 1 > 0 και λ > 0, ισχύει z 1 ( λ) = 0 και z ( λ) = 0, και λαμβάνουμε το σύστημα: λ 1 λ + λ λ 1 λ 1 λ + λ 1 9λ = 1 Λύνοντας το σύστημα των εξισώσεων και αγνώστων βρίσκουμε λ = 1 / το οποίο όμως έρχεται σε αντίθεση με την υπόθεση ότι λ > 0. = 6. Για λ 1 = 0 και λ > 0, ισχύει z ( λ) = 0, και λαμβάνουμε το σύστημα: λ + z 1 = 1 1λ όπου z 1 0 η απροσδιόριστη τιμή z 1 ( λ). Λύνοντας τη δεύτερη εξίσωση βρίσκουμε λ = 1 /1 το οποίο όμως έρχεται σε αντίθεση με την υπόθεση ότι λ > 0. = 6. Για λ 1 > 0 και λ = 0, ισχύει z 1 ( λ) = 0, και λαμβάνουμε το σύστημα: 5λ 1 = 1 λ 1 + z = 6 6
όπου z > 0 η απροσδιόριστη τιμή z ( λ). Από τις παραπάνω εξισώσεις προκύπτει λ 1 = /5 και z = 1 /5. Παρατηρήστε ότι (λ 1, λ ) = ( /5, 0) Λ καθώς και η λύση x 1 ( λ), x ( λ), z 1 ( λ) είναι εφικτή, άρα δίνουν τη βέλτιστη λύση του προβλήματος x 1 = /5 και x = /10. 7