ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ηλεκτρονικοί Υπολογιστές IV Εισαγωγή στη βελτιστοποίηση Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.
Function Optimization Using Computational Approaches The very basics Athanassios Stavrakoudis http://stavrakoudis.econ.uoi.gr
y Example function for grid search y = 1 2 x cos(x 2 ) 1.5 1 0.5 0-0.5-1 -1.5-2 0 0.5 1 1.5 2 2.5 3 x 2 / 16
Octave/Matlab grid search code example 1 % s e t the space 2 x = l i n s p a c e ( 0, pi, 1 0 1 ) ; 3 y = 0. 5 x. cos ( x. ˆ 2 ) ; 4 5 % f i n d the maximum 6 [ v i ] = max ( y ) ; 7 8 % p r i n t the r e s u l t 9 [ x ( i ) y ( i ) ] 10 11 % p l o t 12 p l o t ( x, y, LineWidth, 8 ) ; 13 g r i d on ; box o f f ; 14 a x i s ( [ 0 p i ] ) ; 15 x l a b e l ( x ) ; y l a b e l ( y ) ; 16 hold on ; 17 p l o t ( x ( i ), y ( i ), s r, MarkerSize, 8 ) ; 18 hold o f f ; 3 / 16
The Rosenbrock function f (x, y) = (1 x) 2 + 100(y x 2 ) 2 2500 2000 1500 1000 500 3.0 2.5 2.0 1.5 y 1.0 0.5 0.0 0.5 1.5 0.0 0.5 1.0 0.5 x 1.0 1.5 2.0 4 / 16
Rosenbrock function Grid search 1 % d e f i n e r a n g e s ; 2 x1 = 10; x2 = 1 0 ; y1 = 10; y2 = 1 0 ; 3 s t e p = 0. 2 ; 4 5 % i n i t i a l i z e 6 x = x1 ; y = y1 ; xmin = x ; ymin = y ; 7 fmin = (1 x )ˆ2 + 100 ( y x ˆ2) ˆ2; 8 9 % l o o p 10 while ( x < x2 ) 11 y = y1 ; 12 while ( y < y2 ) 13 f = (1 x )ˆ2 + 100 ( y x ˆ2) ˆ2; 14 i f ( f < fmin ) 15 fmin = f ; xmin = x ; ymin = y ; 16 end 17 y += step ; 18 end 19 x += step ; 20 end 21 22 % p r i n t the r e s u l t s 23 [ fmin xmin ymin ] 5 / 16
Constraint grid search x = good A quantity of spaghetti seafood y = good B Tomato and Mozzarella Salad U(x, y) = x 4/5 y 1/5 (Utility) P x = 8 (Price of x) P y = 5 (Price of y) 100 xp x + yp y (Income constraint) 6 / 16
Napoli grid search 1 Um = 0 ; % I n i t i a l i z e 2 3 f o r x = 0 : 1 : 1 2 % v a l u e s o f x 4 f o r y = 0 : 1 : 2 0 % v a l u e s o f y 5 C = 8 x + 5 y ; % Comsumption 6 i f (C <= 100) % C < I 7 U = x ˆ 0.8 y ˆ 0. 2 ; % U t i l i t y 8 i f (U > Um) % comparison 9 Um = U; % s e t max v a l u e s 10 xm = x ; 11 ym = y ; 12 Cm = C ; 13 end 14 end 15 end 16 end 17 18 [Um xm ym Cm] % r e s u l t s 7 / 16
Random search one variable y = 1 2 x cos(x 2 ) 1 % random numbers o f x and y 2 x = u n i f r n d ( 0, pi, 1000, 1 ) ; 3 %x = l i n s p a c e ( 0, pi, 1 0 1 ) ; 4 y = 0. 5 x. cos ( x. ˆ 2 ) ; 5 6 % f i n d the maximum 7 [ v i ] = max ( y ) ; 8 9 % p r i n t the r e s u l t 10 [ x ( i ) y ( i ) ] 8 / 16
Rosenbrock function random search f (x, y) = (1 x) 2 + 100(y x 2 ) 2 1 % random numbers o f x and y 2 N = 1 e +3; 3 x = u n i f r n d ( 10, 10, N, 1 ) ; 4 y = u n i f r n d ( 10, 10, N, 1 ) ; 5 6 % compute f 7 f = (1 x ). ˆ 2 + 100 ( y x. ˆ 2 ). ˆ 2 ; 8 9 % f i n d the minimum 10 [ v i ] = min ( f ) ; 11 12 % p r i n t the r e s u l t s 13 [ f ( i ) x ( i ) y ( i ) ] 9 / 16
Example function f (x) = x 2 + sin(x) 10 8 6 4 2 0-2 -4-3 -2-1 0 1 2 3 4 10 / 16
Newton s method x n+1 = x n f (x n ) f (x n ) f (x) = x 2 + sin x f (x) = 2x + cos x f (x) = 2 cos x 2x + cos x x n+1 = x n 2 cos x 11 / 16
Newton code part 1 1 % d e f i n e f u n c t i o n and d e r e v a t i v e s 2 f = @( x ) x. ˆ 2 + s i n ( x ) ; 3 f 1 = @( x ) 2 x + cos ( x ) ; 4 f 2 = @( x ) 2 s i n ( x ) ; 5 6 % p a r a m e t e r s 7 Tol = 1e 4; % t o l e r a n c e 8 Imax = 100; % maximum i t e r a t i o n s 9 c o n v e r = 0 ; % c o n v e r g e n c e 10 11 % I n i t i a l i z e 12 i = 1 ; 13 x = zeros ( Imax, 1 ) ; 14 y = zeros ( Imax, 1 ) ; 15 16 % f i r s t p o i n t 17 x ( i ) = input ( Give the s t a r t i n g v a l u e : ) ; 18 y ( i ) = f ( x ( i ) ) ; 12 / 16
Newton code part 2 1 % l o o p i t e r a t i o n 2 while ( i < Imax ) 3 x ( i +1) = x ( i ) f 1 ( x ( i ) ) / f 2 ( x ( i ) ) ; 4 y ( i +1) = f ( x ( i +1)); 5 i f ( abs ( y ( i +1) y ( i ) ) < Tol ) 6 c o n v e r = 1 ; 7 xmin = x ( i +1); 8 ymin = y ( i +1); 9 break ; 10 end 11 ++i ; 12 end 13 14 % r e s u l t s 15 [ i xmin ymin c o n v e r ] 16 [ x ( 1 : i ) y ( 1 : i ) ] 13 / 16
Quasi Newton f (x n+1 ) f (x n ) f (x n ) x n+1 x n 14 / 16
Broyden Fletcher Goldfarb Shanno (BFGS) method f (x) = x 2 + sin x 1 % d e f i n e the f u n c t i o n 2 function y = f ( x ) 3 y = x ˆ2 + s i n ( x ) ; 4 end 5 6 % p a r a m e t e r s 7 x0 = 1 ; 8 9 % c a l l the m i n i m i z e r 10 [ x y c ] = bfgsmin ( f, { x0 }) 15 / 16
Σχόλια και ερωτήσεις Σας ευχαριστώ για την προσοχή σας. Είμαι στη διάθεσή σας για σχόλια, απορίες και ερωτήσεις. 16 / 16
Τέλος Ενότητας
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Σημειώματα
Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Έκδοση 1.0 διαθέσιμη εδώ. http://ecourse.uoi.gr/course/view.php?id=1155.
Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης. «Ηλεκτρονικοί Υπολογιστές IV. Εισαγωγή στη βελτιστοποίηση». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1155.
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.