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