Upload
hakan-boyaci
View
224
Download
0
Embed Size (px)
Citation preview
7/29/2019 Matla Bop Tim
1/13
MATLABOPT M ZASYON ARA KUTUSUNUN
KULLANIMI
DO. DR. RFAN KAYMAZ2006
7/29/2019 Matla Bop Tim
2/13
1 OPTMZASYON PROBLEMLERN ZMNDE MATLABUYGULAMALARI
Optimizasyon problemlerinin zmnde MATLABdeki hazr ktphanelerin
yan
s
ra, mevcut matematiksel metotlar
n kullan
m
ile de zmlemeleryaplabilir. Bu nedenle bu blmde Optimizasyon dersi kapsamnda gsterilen
zm metotlarndan bir ksmnn MATLAB uygulamalar verilmitir.
1.1 GRAFKSEL OPTMZASYON
Grafiksel optimizasyon iki tasarm deikenine ait optimizasyon problemlerinin
zmnde kullanlan metottur ve grafiksel olarak ifade edilmi problemde
optimum deerler grafik zerinden okunur.
rnek 1:
Aada verilen optimizasyon probleminin zmn grafiksel olarak elde
ediniz.
22
2121 )2()3(),(min += xxxxf
22
82),(
s.t.
21211 =+= xxxxh
100100
025.0),(
7),(
4)4()1(),(
21
221212
21211
21212
=
+=
=+=
xx
xxxxg
xxxxg
xxxxh
zm 1:
Aadaki MATLAB program vastasyla grafiksel zm elde edilir. Aadaverilen MATLAB programlama kodlar MATLAB editrn kullanarak yazlr
ve graph_cozum.m olarak kaydedilir.
% Verilen optimizasyon probleminin MATLABde grafiksel zm
% Tasarm deikenlerine ait deerleri retilir
% x1 ve x2 0dan balaayarak 10 kadar 0.1 aralklarla retilen saylar ieren
vektrler
2
7/29/2019 Matla Bop Tim
3/13
3
x1=0:0.1:10;
x2=0:0.1:10;
% Optimizasyon fonksiyonlarnn deerlendirilecei X1 ve X2 matrisleri retilir
[X1 X2] = meshgrid(x1,x2);
% X1 ve X2 deerlerine karlk hedef fonksiyonun deerleri obj_ex1 dosyas
arlararak elde edilir
f1 = obj_ex1(X1,X2);% the objective function is evaluated
% X1 ve X2 deerlerine karlk g1 kstlayc fonksiyonun deerleri inecon1
dosyas arlararak elde edilir
ineq1 = inecon1(X1,X2);
ineq2 = inecon2(X1,X2);
eq1 = eqcon1(X1,X2);
eq2 = eqcon2(X1,X2);
% ineq1 kstlaycsna ait iso-lineler bu kstlaycnn 7 deeri iin aada
verilen komut yardmyla izilir
[C1,han1] = contour(x1,x2,ineq1,[7,7],'r-');
% iso-line etiketleri aadaki komut yardmyla elde edilr
clabel(C1,han1);
% g1 ifadesi mouse tklamas ile uygun bir yere yerletirilir
gtext('g1');
% Geri kalan kstlayclar iin de benzer ilemler tekrar edilir
[C2,han2] = contour(x1,x2,ineq2,[0,0],'r--');
clabel(C2,han2);
gtext('g2');
[C3,han3] = contour(x1,x2,eq1,[8,8],'b-');
clabel(C3,han3);
gtext('h1');
[C4,han4] = contour(x1,x2,eq2,[4,4],'b--');clabel(C4,han4);
gtext('h2');
[C,hf] = contour(x1,x2,f1,'g');
clabel(C,hf);
% graifiin etiketleri aadaki komut yardmyla yazlr
xlabel('x1 values','FontName','times','FontSize',12, 'FontWeight','bold');
ylabel('x2 values','FontName','times','FontSize',12, 'FontWeight','bold');
gridhold off
7/29/2019 Matla Bop Tim
4/13
4
Yukardaki m-dosyasnda arlan fonksiyonlar aada verilmitir.
obj_ex1.m
function retval = obj_ex1(X1,X2)
retval = (X1 - 3).*(X1 - 3) +(X2 - 2).*(X2 - 2);
eqcon1.m
function retval = eqcon1(X1,X2)
retval = 2.0*X1 + X2;
eqcon2.m
function retval = eqcon2(X1,X2)
retval = (X1 - 1).*(X1 - 1) + (X2 - 4).*(X2 - 4);
inecon1.m
function retval = inecon1(X1, X2)
retval = X1 + X2;
inecon1.m
function retval = inecon2(X1,X2)
retval = X1 - 0.25*X2.^2;
2 MATLABDE OPTMZASYON
MATLAB optimizasyon toolbox, optimizasyon probleminin byklne gre
iki farkl yaklam uygulamaktadr:
Standart algoritma (Medium-Scale)
Byk lekli algoritma (Large-Scale)
Eer deiken says ok fazla ise byk lekli algoritma kullanlr. Ancak bu
algortimann kullanmnda, baz parametrelerin (fonksiyonlarn gradyantlar
gibi) kullanc tarafndan verilmesi gerekir. Ancak Standart algoritma
Optimizasyon dersinde verilen rneklerin zm iin yeterli olduundan
Sadece standart algoritma ve ona bal komutlar verilecektir. Bu toolboxda
optimizasyon probleminin tipine bal olarak kullanlacak hazr fonksiyonlar
bulunmakta, ve bu fonksiyonlar yardmyla optimizasyon ilemi
gerekletirilmektedir. Belli bal optimizasyon fonksiyonlar ve ilevleri
aadaki tabloda verilmitir.
7/29/2019 Matla Bop Tim
5/13
5
Tablo 1: Optimizasyon komutlar ve kullanm amalar.
Fonksiyon Amac
fgoalattain Birden fazla hedef fonksiyonlu optimizasyon
fminbnd Skalar nonlinear minimizasyon snrlarla birlikte
fmincon Kstlayc fonksiyonlu nonlinear optimizasyon
fminimax Minimax optimizasyonu
fminsearch,fminunc Kstlayc fonksiyonsuz nonlinear minimizasyon
fseminf Yari-sonlu programlama
linprog Lineer programlama
quadprog Quadratik programlama
Yukardaki tabloda verilen her bir komutun kullanm, komuta verilmesi
gereken deerle (girdi bilgileri), komutun alaca seenekler (OPTIONS) vekt parametrelerin neler olduu komut ile ilgi yardm dosyasndan elde
edilebilir. En genel optimizasyon problemlerinin zmnde kullanlan fmincon
komutu ile ilgili bilgi rnek amacyla aada verilmitir.
Tablo 2: fmincon komutunun kullanm
x = fmincon(fun,x0,A,b)
x = fmincon(fun,x0,A,b,Aeq,beq)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
[x,fval] = fmincon(...)
[x,fval,exitflag] = fmincon(...)
[x,fval,exitflag,output] = fmincon(...)
[x,fval,exitflag,output,lambda] = fmincon(...)
[x,fval,exitflag,output,lambda,grad] = fmincon(...)
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(...)
Yukardaki tabloda, fmincon komutunun, en yaln kullanmdan en ileri kulanm
ile ilgili 11 biimi verilmitir. Burada temel kullanm benzer olmakla birlikte,
optimizasyon problemi ile alakal ne tr bir bilgi girii yaplaca ve optimum
zm elde edildiinde ne tr sonularn, komut tanmlanmada eitliin sa
tarafnda verilen deikenlere atanaca tanmlanr. Dolaysyla komutta ilgili
deikenlerin mutlaka tanml olmas gerekir. Bu nedenle Tablo 3de fmincon
komutun alaca parametrelerin detayl aklamas verilmitir.
7/29/2019 Matla Bop Tim
6/13
6
Tablo 3: fmincon komutunun parametrelerinin anlamlar.
PARAMETRE ANLAMI
GRD PARAMETRELER
Fun hedef fonkisyonu ieren m-dosyasnn ismi
X0 tasarm deikenlerinin balag deerleri
A, b Lineer eitliksizlik kstlayc fonksiyonun katsaylar (A*x
7/29/2019 Matla Bop Tim
7/13
7
Tablo 4: OPTIMSET komutu yardmyla tanmlanan baz argmanlar.
ARGUMAN ANLAMI ALACAI DEERLER
DerivativeCheck Kullancnn salad derivative ile
sonlu farklarla hesaplanan derivativi
karlatrr.
on, off
DiffMaxChange Sonlu farklar ile derivative hesaplamada
deikenlerin deerlerindeki maksimum
deiiklik
DiffMinChange Sonlu farklar ile derivative hesaplamada
deikenlerin deerlerindeki minimum
deiiklik
Display zm admlarndan hangisinin komut
satrnda gsterilecei belirtilir
off: herhangi bir kt gstermez
iter: her bir iterasyonda ktlar
gsterir
final: sadece son kty gsterir
notify: optimizasyon yaknsamad
zamanki kty gsterir
GradObj Hedef fonksiyonun gradyantn kullanc
tarafndan verilip verilmediini belirtir
on, off
GradConstr Nonlinear kstlayc fonksiyonun
gradyantn kullanc tarafndan verilip
verilmediini belirtir
on, off
Hessian Hedef fonksiyonun Hessian matrisinin
kullanc tarafndan verilip verilmediini
belirtir
on, off
MaxFunEvals Fonksiyon deerlendirilmesinin
maksimum says
Pozitif tam say
MaxIter Maksimum iterasyon says Pozitif tam say
Tolcon Kstlayc ihlalindeki tolerans Poztif bir say
TolFun Hedef fonksiyon iin tolerans Poztif bir say
TolX Tasarm deikenleri iin tolerans Poztif bir say
Bu fonksiyonlarn kullanm optimizasyon problem tiplerine gre aada geni
olarak verilmitir.
7/29/2019 Matla Bop Tim
8/13
2.1 KISITLAYICISIZ OPTMZASYON PROBLEM
Kstlaycs optimizasyon problemlerinin MATLABde zm iin gerekli
admlar aada verilen rnek yardmyla verilecektir.
Bu optimizasyon probleminin zm iin takip edilecek admlar:
Adm 1: Bir M-file oluturun:
Hedef fonksiyon iin bir M-file oluturulur ve hedef fonksiyona verilen isimle
ayn olacak ekilde M-Filen ismi seilir.
ekil 1: objfun.m isimli M-file.
Adm 2: Kstlaycsz optimizasyon metotlarndan birini arn:
Seilecek kstlaycsz optimizasyon metoduna gre istenilen opsiyonlarda
verilmelidir. Bu rnekte optimizasyon metodu olarak fminunc seilmitir. Bu
komut, tasarm deikenleri iin bir balang deeri atanmas gerekmektedir.
Gerekli komutlar MATLAB komut satrna aada gsterildii gibi yazlr:
ekil 2: Optimizasyon komutunun MATLAB komut satrndan arlmas.
8
7/29/2019 Matla Bop Tim
9/13
ekil 2de verilen komutlarn aklamas:
X0: balang deerleri (tahmini)
Options: optimset komutu ile seilen optimizasyon seeneklerinin atand
deiken. Optimset yardmyla standart veya byk lekli algoritma seimine
bal olarak optimizasyon metodunun seenekleri belirlenir. Bunlardan
bazlar, Jakobien veya Hessian matrisinin hesaplanp hesaplanmayaca,
ekrana ne kadar bir bilgi yazlaca gibi seeneklerdir.
exitflag:Seilen algoritmann sonuca yaknsayp yaknsamadn belirtir.
Eer sfrdan byk ise lokal minimum deerinin bulunduunu belirtir.
Output:Optimizasyon zm hakknda daha detayl bilgi verir. Yukardaki
rnek iin, komut satrna output yazlp Enterlanrsa aadaki bilgiler elde
edilir:
ekil 3: Output komutu yardmyla optimizasyon zm ile ilgili geni bilgi alma.
Burada:
Iterations: toplam iterasyon saysn
funcCount: Fonksiyonun deerlendirme says
stepsize: Son iterasyonda seilen adm uzunluu
firstorderopt: birinci derece optimumluk art
algortihm: Kullan
lan algoritmay
ve seilen metodu gsterir.
2.2 LNEER OLMAYAN ETSZLK KISITLAYICILI OPTMZASYONPROBLEM
Bu tip optimizasyon problemleri iin hedef fonksiyonun yan sra eitsizlik
kstlayclar iinde bir M-file oluturulur. Yukardaki rnee kstlayc
fonksiyonlar ekleyerek bu blmde kullanlacak rnek problem oluturulabilir:
9
7/29/2019 Matla Bop Tim
10/13
kstlayclar:
Bu tip optimizasyon problemi iin, fmincon komutu kullanlarak zm
yaplabilir.
Adm 1: Kstlayclar iin bir M-dosyasn oluturulmas
Adm 2: Optimizasyon komutlar iin bir M-dosyasn oluturulmas
Buradaki fmincon fonksiyonun kullanmlarnn genel format
x = f mi ncon( @obj f un, x0, A, b, Aeq, beq, l b, ub, nonl con)
eklindedir.Kstlayc fonksiyonlarn zm noktasndaki deerlendirmesi iin aadaki
komut icra edilir:
Bu komutun icrasnda elde edilen sonu:
c =
1.110223024625157e-015
-1.776356839400251e-015ceq =[ ]
2.3 TASARIM DEKENLERN ALACAI DEERLERNSINIRLANDIRILMASI
Tasarm deikenlerin alaca deerlerde snrlama olduu durumda fmincon
komutu aadaki gibi verilir:
10
7/29/2019 Matla Bop Tim
11/13
Burada
lb: tasarm deikenin aaca alt snr
ub: tasarm deikenin aaca st snr
Genellikle kullanlan tasarm deikenlerin sfrdan byk deer alma
snrlamas bir nceki problem iin aadaki gibi verilebilir:
Bu artlara gre zm yaplrsa aadaki sonu elde edilir:
2.4 GRADYANTLARIN TEMN EDLD OPTMZASYONPROBLEMLER
Normalde standart algoritma kullanld durumda gerekli olan gradyantlar
sonlu farklar yntemiyle yaklak olarak hesaplanmaktadr. Ancak
gradyantlarn verilebildii problemlerde gradyantlarnda ileme katlmas
optimizasyon probleminin daha doru olarak zlmesini salamaktadr.
nceki blmlerde verilen problemin gradyant salanarak zm iin
aadaki admlar takip edilmelidir:
11
7/29/2019 Matla Bop Tim
12/13
Adm 1: hedef fonksiyon ve gradyant iin bir M-file oluturulur:
Adm 2: kstlayc fonksiyonlar ve gradyantlar iin bir M-file oluturulur:
Gradyantlarn verildiinin fmincon da belirtmek iin optimset komutu
yardmyla Gradobj ve GradConstr deikenleri on komutunu getirilmelidir:
Adm 3: Kstlaycl optimizasyon metotlarndan birini arn:
Buradan elde edilen sonu:
12
7/29/2019 Matla Bop Tim
13/13
2.5 ETLK KISITLAYICILI OPTMZASYON PROBLEMLER
Bir nceki rnek iin kstlayclar eitlik kstlaycs ile
nonlineer eitsizlik kstlaycya olacak ekilde seilsin. Aadaki admlar icra
edilerek optimizasyon problemi zlr:
Adm 1: Hedef fonksiyon iin bir M-dosyasn oluturulmas
Adm 2: Kstlayclar iin bir M-dosyasn oluturulmas
Adm 3: Kstlaycl optimizasyon metotlarndan birini arn:
Buradan elde edilen sonu:
13