Grafiksel Optimizasyon

advertisement
B Ö L ÜM 2
G R A F İ K S E L O P T İ M İ ZA S Y O N
2.1 GİRİŞ
Grafiksel optimizasyon iki tasarım değişkenine ait optimizasyon problemlerinin
çözümünde matematiksel metotlar kullanmadan optimum çözümü bulmadan çizilen
grafikler yardımıyla optimum değerlerin bulunmasıdır. Bu metot aynı zamanda ileriki
bölümlerde verilecek olan matematiksel metotların anlaşılmasında da yardımcı
olacaktır.
Grafiksel optimizasyonda optimum sonucun hedef ve kısıtlayıcı fonksiyonların eş
yükselti eğrilerini elde edilerek bulunmasını içerdiğinden, bu grafiklerin elde
edilmesinde MATLAB programı kullanılacaktır. Bu bölüm P. Venkataraman’nın
Applied
Optimization
hazırlanmıştır
ve
with
konu
MATLAB
Programming
anlatımı
aşağıda
kitabından
verilen
yararlanılarak
örnekler
üzerinden
gerçekleştirelecektir.
2.2 ÖRNEK 1
Grafiksel optimizasyon yöntemi ile iki tasarım değişkenine sahip optimizasyon
problemlerinin çözümünde izlenecek aşamalar aşağıda verilen örnek yardımıyla
aktarılacaktır.
min f ( x1 , x2 )  ( x1  3) 2  ( x2  2) 2
(2.1)
s.t.
h1 ( x1 , x 2 )  2 x1  x 2  8
h2 ( x1 , x 2 )  ( x1  1) 2  ( x 2  4) 2  4
g1 ( x1 , x 2 )  x1  x 2  7
g 2 ( x1 , x 2 )  x1  0.25 x 22  0
0  x1  10
(2.2)
0  x 2  10
Yukarıda tanımlanan optimizasyon probleminde hedef fonksiyon denklem (2.1) de
verilmiştir. Bu optimizasyon problemine ait kısıtlayıcılar ise Denklem (2.2)’ de
2-1
verilmiştir. Kısıtlayıcı fonksiyonlar eşitlik ve eşitliksiz kısıtlayıcıları ve aynı zamanda
doğrusal ve doğrusal olmayan tiptedir.
Grafiksel optimizasyon için aşağıdaki adımlar takip edilerek sonuca ulaşılır.
Adım 1: Tasarım değişkenlerine ait sayı setlerinin elde edilmesi
Öncelikli olarak fonksiyonlara ait eş yükselti eğrilerini çizebilmek için tasarım
değişkenlerine ait sayı setlerinin elde edilmesi gerekir. Bunu için tasarım
değişkenlerine ait yan kısıtlayıcılar dikkate alınır. Zira bu kısıtlayıcılar tasarım
değişkenlerinin alabileceği değerlerin sınırlarını göstermektedir. Dolayısıyla ilk önce
Bu sayı setleri aşağıda verilen komutlarla elde edilir:
x1=0:0.1:10;
x2=0:0.1:10;
Bu sayı seti kullanılarak tasarım değişkenlerinin eksenlerde olduğu koordinat
sisteminde bir ağ tanımlayıp bu ağın her bir noktasında fonksiyonların değerlerini
hesaplayabilmek için aşağıdaki komut icra edilir:
[X1 X2] = meshgrid(x1,x2);
Bu komut vasıtasıyla Şekil 1’de verilen bir tasarım uzayı elde edilir.
1
0.9
0.8
0.7
x2
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
x1
0.6
0.7
0.8
0.9
1
Şekil 2.1: Optimizasyon problemine ait tasarım uzayı.
2-2
Elde edilen bu noktalarda hem hedef fonksiyonu hem de kısıtlayıcı fonksiyonlarının
sonuçları elde edilmelidir. Hedef fonksiyonun elde edilen bu noktalardaki değeri
aşağıdaki komutun icra edilmesi ile elde edilir:
f1 = obj_ex1(X1,X2);
Yukarıdaki ifade de Denklem (2.1)’de verilen matematiksel ifade açık bir şekilde ifade
edilmemesine rağmen bu komut bir alt fonksiyon olan ve aşağıda verilen obj_ex1.m
dosyasını çağırır:
function retval = obj_ex1(X1,X2)
retval = (X1 - 3).*(X1 - 3) +(X2 - 2).*(X2 - 2);
ve bu dosyaya türetilmiş olan X1 ve X2 değerleri gönderilerek bu değerlere karşılık
hedef fonksiyonun sonuçları retval dizi değişkenine atanır.
ADIM X: Kısıtlayıcı fonksiyonlarından sonuçların elde edilmesi
Hedef fonksiyonun sonuçlarının elde edilmesine benzer olarak X1 ve X2 tasarım
değişkenlerinin değerlerine karşılık kısıtlayıcı fonksiyonlarını sonuçları her bir
kısıtlayıcı fonksiyon için ayrı ayrı olmak üzere alt fonksiyonlar yazılarak elde edilir.
Denklem (2.2)’de verilen ilk eşitliksiz kısıtlayıcıya ait sonuçlar aşağıda verilen komut
yardımıyla elde edilir:
ineq1 = inecon1(X1,X2);
Alt fonksiyon olan inecon1.m dosyası aşağıda verildiği gibi kısıtlayıcı fonksiyonunu
içerir:
function retval = inecon1(X1, X2)
retval = X1 + X2;
Diğer kısıtlayıcıların sonuçları da aşağıda verildiği gibi benzer yöntemle elde edilir.
İkinci eşitliksiz kısıtlayıcısı:
ineq2 = inecon2(X1,X2);
Bu kısıtlayıcıya ait alt fonksiyon dosyası:
function retval = inecon2(X1,X2)
retval = X1 - 0.25*X2.^2;
Birinci eşitlik kısıtlayıcı:
eq1 = eqcon1(X1,X2);
Bu kısıtlayıcıya ait alt fonksiyon dosyası:
2-3
function retval = eqcon1(X1,X2)
retval = 2.0*X1 + X2;
İkinci eşitlik kısıtlayıcı:
eq1 = eqcon2(X1,X2);
Bu kısıtlayıcıya ait alt fonksiyon dosyası:
function retval = eqcon2(X1,X2)
retval = (X1 - 1).*(X1 - 1) + (X2 - 4).*(X2 - 4);
ADIM X: Eş yükselti eğrilerinin elde edilmesi
Hedef fonksiyona ve kısıtlayıcı fonksiyonlara ait sonuçlar elde edildikten sonra bu
değerlere ait eş yükselti eğrileri çizilebilir. Bunun için öncelikle birinci kısıtlayıcıya ait
eş yükselti eğrisi aşağıdaki komut vasıtasıyla elde edilir:
[C1,han1] = contour(x1,x2,ineq1,[7,7],'r-');
Verilen bu komutta eş yükselti eğrisi sadece bu fonkisyonun değeri 7 olan eğri elde
edilir, zira Denklem (2.2)’de verildiği gibi kısıtlayıcı 7’ye eşit ve küçük değerleri içerir.
Elde edilen eğrinin hangi değerde çizildiği aşağıdaki komut vasıtasıyla grafik üzerinde
gösterilir:
clabel(C1,han1);
Bu komutlar icra edildiğinde aşağıdaki grafik elde edilir.
10
9
8
7
6
5
4
3
2
1
0
0
1
2
3
4
5
6
7
8
9
10
Şekil 2.2: Birinci kısıtlayıcıya ait eş yükselti eğrisi.
Diğer fonksiyonlara ait grafiklerinde aynı grafik penceresinde çizilebilmesi için
aşağıdaki komut icra edilir:
2-4
hold on
Şekil 2.2’de verilen grafiğin hangi kısıtlayıcıya ait olduğunu belirlemek için aşağıdaki
komut icra edilir:
gtext('g1');
Yukarıda birinci kısıtlayıcı için izlenen yöntem diğer kısıtlayıcılar içinde aşağıda
verilen komutlar yardımıyla icra edilir:
İkinci kısıtlayıcı için:
[C2,han2] = contour(x1,x2,ineq2,[0,0],'r--');
clabel(C2,han2);
gtext('g2');
Üçüncü kısıtlayıcı için:
[C3,han3] = contour(x1,x2,eq1,[8,8],'b-');
clabel(C3,han3);
gtext('h1');
Dördüncü kısıtlayıcı için:
[C4,han4] = contour(x1,x2,eq2,[4,4],'b--');
clabel(C4,han4);
gtext('h2');
Hedef fonksiyon için ise aşağıdaki komut icra edilerek eş yükselti eğrisi elde edilir:
[C,hf] = contour(x1,x2,f1,'g');
Yukarıda verilen bu komutlar icra edildiğinde Şekil 2.3’de verilen grafik elde edilir.
2-5
10
60
60
9
60
40
8
10
0
80
40
8
40
7
6
4 20
20
0
h2
60
7
g2
5
20
0
40
4
h1
4
g1
8
7
0
3
4
2
40
0
7
8
0
20
1
0
1
2
3
4
5
6
7
8
9
10
Şekil 2.3: Hedef fonksiyon ve kısıtlayıcı fonksiyonların eş yükselti eğrileri.
Şekil 2.3’de verilen grafik için eksenlerle ilgili açıklayıcı bilgi aşağıda verilen komutlar
icra edilerek elde edilir ve Şekil 2.4’de gösterilmiştir.
xlabel('x1 values','FontName','times','FontSize',12, 'FontWeight','bold');
ylabel('x2 values','FontName','times','FontSize',12, 'FontWeight','bold');
grid
hold off
10
9
60
40
8
40
40
20
h2
0
g1
5
4
40
20
0
g2
4
7
0
3
h1
4
2
0
8
20
7
1
0
60
7
40
2
6
8
x2 values
7
0
1
2
3
4
5
6
7
40
8
10
0
80
60
60
8
9
10
x1 values
Şekil 2.4: Eksenleri tanımlanmış optimizasyon problemi.
2-6
Şekil 2.3’de verilen grafikte optimum sonuca götüren yani hedef fonksiyonu minimum
yapan ve feasible alanda olan çözüm x1= ve x2=6 olan çözümdür. Bu tür
problemlerde dikkat edilecek husus eşitlik kısıtlayıcıların tanımladığı feasible alanın
mutlaka bu fonksiyonların eş yükselti eğrileri üzerindeki değerinin alınması
gerekliliğidir.
2.3 UYGULAMA ÖRNEK 1:
Bir firma A ve B olmak üzere iki tür makine üretmektedir. Mevcut kaynaklar
kullanıldığında bir günde 28 A veya 14 B makinesi üretilebilmektedir. Buna rağmen
satış departmanı maksimum 14 A veya 24 B makinesi satabilmektedir. Dağıtım
bölümü ise günde 16 makinenin dağıtımını yapabilmektedir. Firma A makinesinden
400$ ve B makinesinden ise 600$ kar etmektedir.
Firma karını maksimum yapabilmek için ne kadar A ve B makinesinden üretmesi
gerektiğini grafiksel optimizasyon kullanarak bulunuz.
2.4 OPTİMİZASYON PROBLEMLERİNİN TANIMLANMASINDA KARŞILAŞILAN
HATALAR
Optimizasyon problemlerinin tanımlanmasında yani hedef fonksiyonların ve kısıtlayıcı
fonksiyonların belirlenmesinde yapılan hatalar nedeniyle çoğunlukla bir optimum
sonuca varılamayabilir. Bu nedenle, gelişen sayısal teknikler ve özellikle bilgi işlem
imkanlarının gelişmesi, optimizasyon alanında çözümü uygun bir metot kullanıp
çözüm elde etmekte yaşanılan zorluklar azalırken, problem tanımlamasının doğru bir
şekilde yapılması pratik açıdan daha da önem kazanmaktadır. Bu nedenle bu
bölümde optimizasyon problemlerinin tanımlanmasında yapılan belirli hatalar örnekler
üzerinden aktarılacaktır.
2.4.1 BİRDEN FAZLA ÇÖZÜME SAHİP OPTİMİZASYON PROBLEMLERİ
Bazı tasarım problemlerinin birden fazla optimum çözümü olabilir. Bu durum,
kısıtlayıcı fonksiyonun hedef fonksiyona paralel olması halinde ortaya çıkar ve
kısıtlayıcı fonksiyon optimum çözümde aktif ise bu problemin birden fazla çözümü
vardır. Bu duruma uygun örnek aşağıda verilmiştir:
2-7
min f   x1  0.5 x 2
s.t.
2 x1  3 x 2  12
2 x1  x 2  8
- x1  0 - x 2  0
Yukarıda verilen optimizasyon problemi iki tasarım değişkenine sahip olduğundan
grafiksel optimizasyon kullanılarak optimum sonuçlar elde edilir. Bunun için hedef
fonksiyon ve kısıtlayıcı fonksiyonların eş yükselti eğrileri Şekil 2.5’de verilmiştir.
Şekil 2.5: Optimizasyon problemine ait tasarım uzayı.
Şekilden de görüleceği gibi ikinci lineer kısıtlayıcı fonksiyon hedef fonksiyon ile
paralel olduğundan CB doğrusuna karşılık gelen tüm x1 ve x2 tasarım değişkenleri
değerleri optimizasyon probleminin belirtilen şartlarını karşıladığından optimum
sonucu yani f= -4 değerini verir.
2-8
2.4.2 SINIRLANDIRILMAMIŞ ÇÖZÜME SAHİP OPTİMİZASYON PROBLEMLERİ
Bazı tasarım problemleri sınırlandırılmamış çözüme sahip olabilirler ki bu durum
genelde optimizasyon problemi tanımlanırken bir kısıtlayıcının unutulması veya
optimizasyon probleminin yanlış tanımlanmasından kaynaklanır. Bu duruma uygun
örnek aşağıda verilmiştir:
max f  x1  2 x 2
s.t.
2 x1  x 2  0
- 2 x1  3 x 2  6
- x1  0 - x 2  0
Bu problem standart optimizasyon problemine çevrildiğinde aşağıdaki formülasyon
elde edilir:
min f   x1  2 x 2
s.t.
- 2 x1  x 2  0
- 2 x1  3 x 2  6  0
- x1  0 - x 2  0
Yukarıda verilen optimizasyon problemi iki tasarım değişkenine sahip olduğundan
grafiksel optimizasyon kullanılarak optimum sonuçlar elde edilir. Bunun için hedef
fonksiyon ve kısıtlayıcı fonksiyonların eş yükselti eğrileri Şekil 2.6’de verilmiştir.
2-9
Şekil 2.6: Optimizasyon problemine ait tasarım uzayı.
Şekilde de görüleceği gibi feasible alan sınırlandırılmamış ve dolaysısıyla bu
probleme ait sonlu bir çözüm yoktur. Bu nedenle problem tanımlanması gözden
geçirilerek yeniden tanımlanmalıdır.
2.4.3 FEASİBLE OLMAYAN OPTİMİZASYON PROBLEMLERİ
Optimizasyon problemi dikkatli bir biçimde tanımlanmadığı durumda çözüm elde
edilemez. Bu durum genelde çatışan istekler veya uygun olmayan şekilde kısıtlayıcı
fonksiyon tanımlanmasından doğar. Bir diğer durum ise probleme ait çok fazla sayıda
kısıtlayıcı tanımlamaktan dolayısıyla feasible bir alan elde edilememesinden
kaynaklanır. Bu duruma uygun örnek aşağıda verilmiştir:
2-10
min f  x1  2 x 2
s.t.
3 x1  2 x 2  6
2 x1  3 x 2  12
x1  5
x2  5
- x1  0 - x 2  0
Yukarıda verilen optimizasyon problemi iki tasarım değişkenine sahip olduğundan
grafiksel optimizasyon kullanılarak optimum sonuçlar elde edilir. Bunun için hedef
fonksiyon ve kısıtlayıcı fonksiyonların eş yükselti eğrileri Şekil 2.6’de verilmiştir.
Şekil 2.7: Optimizasyon problemine ait tasarım uzayı.
Şekilden de görüleceği gibi FC ile GA doğrusunun tanımladığı feasible alanlar
birbiriyle çatışmakta dolayısıyla tüm kısıtlayıcıları sağlayan bir feasible alan
oluşmamaktadır.
2-11
Download