Optimizasyon
Bu maddede kaynak listesi bulunmasına karşın metin içi kaynakların yetersizliği nedeniyle bazı bilgilerin hangi kaynaktan alındığı belirsizdir. (Haziran 2016) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin) |
Matematikte matematiksel programlama, eniyileme ya da optimizasyon terimi; bir gerçel fonksiyonu minimize ya da maksimize etmek amacı ile gerçek ya da tam sayı değerlerini tanımlı bir aralıkta seçip fonksiyona yerleştirerek sistematik olarak bir problemi incelemek ya da çözmek işlemlerini ifade eder. Örneğin bu problem şöyle olabilir:
Verilen: f fonksiyonu: A'dan R ye tanımlı. (R:Reel Sayılar)
Aranan : A'da öyle bir x0 var mı ki; tüm x değerleri için f(x0)≤ f(x)ifadesini sağlasın ("minimizasyon") veya f(x0)≥ f(x) ifadesini sağlasın ("maksimizasyon").
Böylesi bir formulasyona optimizasyon problemi ya da matematiksel programlama problemi denir (terimin bilgisayar programlama ile direkt bir ilgisi yoktur, ama yine de lineer programlamada kullanılan bir ifadedir). Pek çok gerçek ve teorik problemler bu genel çerçevede modellenebilir.Bu teknik kullanılarak formüle edilen problemlere fizik bilminin ilgi alanından bir örnek verilecek olursa, bilgisayar monitörlerinin enerji minimizasyonundan söz edilebilir. O halde, yukarıdaki f fonksiyonu modellenen sistemdeki enerjiyi temsil edecekti.
Bu tür problemlerde "A kümesi" genellikle, bir takım daraltıcı kısıtlar, eşitlikler ve eşitsizlikler ile yerine verilecek(denenecek) değerleri sağlayan öklidyen uzayın (Rn) bir alt kümesidir. f fonksiyonundaki A'nın tanım aralığına "arama uzayı", A'nın alacağı değerlerin kümesine ise çözüm adayları ya da olası çözümler denir.
f fonksiyouna objektif (nesnel) ya da paha(maliyet) fonksiyonu denir. İstenilen objeyi minimize ya da maksimize eden(amaca göre) olası A çözümüne ise "optimal çözüm" denir.
Genellikle, problemin olası çözümü ve objektif fonksiyonu dışbükeylik göstermez, birden çok yerel "minimum" ve "maksimum" noktalarına rastlanabilir.
x* da bulunan ve tüm x'ler için δ > 0 iken
- epsilon
ifadesi ile
sağlanıyorsa; x* civarında bir yerlerde fonksiyonun tüm değerlerinin, bu noktadaki değerden büyük veya o'na eşit olduğu söylenebilir, o halde bu nokta bir "Yerel Minimum" noktasıdır. (Yerel Maksimum da benzer şekilde ifade edilebilir).
Dışbükey olmayan problemlerin çözümünde pek çok algoritma kullanılmasına rağmen (çoğunlukla ticari amaca yönelik çözüm üreten algoritmalar) yine de yerel optimal noktalar ve gerçek optimal noktaral arasındaki farkların ayırt ve tespit edilmesinde yetersiz kalınmakta ve orijinal probleme bir adım geriden yaklaşılmaktadır. Deterministik algoritmaların gelişimi ile ilgilenip, yakınsayan ve dışbükey olmayan ifadeleri -sınırlı bir zamanda- gerçek bir optimal ifadeye ayrıştırabilen uygulamalı matematik ve nümerik analiz branşlarına global optimizasyon denir.
Başlıca alt dalları
[değiştir | kaynağı değiştir]- Doğrusal Programlama : f objektif fonksiyonun doğrusal olduğu ve A kümesinin yalnızca doğrusal eşitlik veya eşitsizlikler ile ulaşılabilir olduğu durumlarda bu isim kullanılır. Böylesi bir A kümesine, sınırlandırılmamış ise polihedron, sınırlı ile politop denir.
- Tamsayı Programlama : Doğrusal programların bir ya da daha çok değişkeni tam sayı ile ifade edildiği durumlarda kullanılır.
- Kuadratik Programlama: A değeri doğrusal eşitlik veya eşitsizlikler ile gösterilmek kaidesi ile; objektif fonksiyonun kuadratik değerler almasına müsaade eder.
- Doğrusal olmayan Programlama: Objektif fonksiyon ya da kısıtların doğrusal olmadığı genel durumları inceler.
- Konveks Programlama objektif fonksiyon ve kısıtın bükey bir fonksiyon biçiminde ifade edilebileceği durumları inceler. Non-Lineer programlaman özel bir hâli olarak düşünülebilir.
- İkinci Derece Koni Programlama (SOCP).
- Yarı-Belirli Programlama (SDP) Değişkenleri yarı tanımlı olacak şekilde, Bükey optimizasyonun bir alt dalıdır. Lineer ve Konveks Kuadratik programlaman genel bir hâlidir.
- Stokastik Programlama: Kısıt ve parametrelerin rastgele değişkenler'e bağlı olduğu durumları inceler.
- Robust Optimizasyonu/Programlama: Optimizasyon problemindeki belirsiz bilgiyi yakalamaya çalışan bir tür stokastik programlamatır.Stokastik programlama gibi, belirsiz bilgiye dayalı olarak çalışmaz ancak problemi girilen bilginin rastgele etkinliği ve şans temelinden kopmadan çözemez.
- Tümleşik optimizasyon : Olası çözüm kümesi içeren problemlerin mümkün ise daha kolay çözülebilir bir şekle indirgenmesi esasına dayanır.
- Sonsuz-boyutlu optimizasyon : Olası çözüm kümesinin (Fonksiyonlar kümesi gibi) sonsuz boyutlu bir uzaya ait olup, olmadığını araştırır.
- Kısıt Sağlaması f fonskiyonun sabit olup, olamayacağını araştırır (Bu metot yapay zekâ alanında kullanılır, özellikle de otomatikleşmiş ilişkilendirme konusunda yardımcı olur).Ayırıcı Programlama kullanularak, seçilen ve önem adledilen (en az) bir kısıtın sağlanması temin edilmesi esasına dayanır.
- Yörünge optimizasyonu: Hava ve uzay araçları için kullanılan özel bir optimizasyon türüdür.
Altdallara göre farklılık gösterecek şekilde, çeşitli teknikler dizayn edilmiştir:
- Değişkenler hesabı Objektif fonksiyonun zaman aralıklarından seçilen değişik noktalara nasıl reaksiyon verdiğinin incelenmesi ile kullanılan yöntemdir.
- Optimal Kontrol Teorisi değişkenler hesabının çeşitli genellemelerinin toplanmış halidir.
- Dinamik programlama Büyük parçaların daha küçük boyutlara indirgenmesi optimizasyon stratejisini yöneten metottur.Bu tür alt problemler ile ilgili olan eşitliklere Bellman eşitliği denir.
Teknikler
[değiştir | kaynağı değiştir]İki kez diferansiyeli alınabilen fonksiyonlar için, kısıt bulundurmayan problemler objektif fonksiyonun gradyan'ının sıfır'a eşit olduğu noktaların (istasyon noktaların) yeri tespit edilip, Hesse matrisi ile her noktanın sınıfı belirlenerek çözülebilir.Eğer Hesse pozitif tanımlı ise bu nokta "Yerel Minimum", negatif tanımlı ise "Yerel Maksimum"'dur.Şayet tanımsız ise de bir tür saddle point olduğu söylenebilir.
Ancak, her zaman türev almak olası değildir.Objektif fonksiyonun düzgünlüğüne göre metotların ana sınıflandırması şöyle yapılabilir:
Bazı metotlar özel isimleri ile de yukarıdaki dört gruptan birine denk gelecek şekilde listenebilir:
- Gradyan iniş ya da Dik iniş metodu.
- Nelder-Mead metodu ya da the Amoeba metodu.
- Alt-gradyan metodu - Gradyan metodunun, gradyan bulunmayan durumlar için kullanılan hali.
- Tekyönlü metot
- Elipsoid metot
- Yığın metodu
- Newton metodu
- Kazi-Newton metodu
- Birleşik gradyan metodu
- Hat araması - tek boyulu optimizasyon için kullanılan bir teknik, genellikle başka bir tekniğe yardımcı olması için kullanılır.
Kısıt problemleri genellikle Lagrange Çarpanı ile kısıttan bağımsız bir forma getirilir.
Birkaç popüler metot daha:
- Tepe tırmanışı
- Benzetimli tavlama
- Kuantum benzetimli tavlama
- Tabu araması
- Kiriş araması
- Genetik algoritmalar
- Karınca sürüsü optimizasyonu
- Evrim stratejisi
- Stokastik tünel
- Diferansiyel evrim
- Sürü parçacıkları
- Armoni araması
- Arı algoritması
Kullanım alanları
[değiştir | kaynağı değiştir]Yapı-Araç İskeleti dinamiği'ne ilişkin problemler sıklık ile matematiksel programlama teknikleri gerektirmektedir.Yapı-Araç İskeleti, manifold ile kısıtlanmış bir basit diferansiyel denklem'in çözümüne ihtiyaç duyan bir yönelim olarak değerlendirilebilir.Bu durumda kısıtlar non-lineer olmayan gemotetrik çeşitliliktedir, öneğin "bu iki nokta daima temas etmeli", "bu alan diğerine etki etmemeli" ya da "bu nokta her zaman bu eğri üzerinde olmalı" gibi.Ayrıca temas halindeki kuvvetlere ilişkin problemler de lineer uyumluluk çatısı altında çözüldüğünden, buna da bir tür QP (Kuadratir Programlama) Problemi gözüyle bakılabilir.
Pek çok dizayn problemi de optimizasyon programları ile çözülmektedir.Bu tür uygulamalara dizayn optimizasyonu denir.Bu alanda bilinen ve büyümekte olan bir alt kol çok disiplinli dizayn optimizasyonu'dur.Bu tür, pek çok problemde kullanışlı olduğu gibi aynı zamanda da uzay mühendisliği sahasına uyarlanabilmektedir.
Ekonomi de matematiksel programlamaya ağır bir bağımlılık duyar.Mikroiktisat'da sık karşılaşılan bir problem olan marjinal fayda ve bundan kaynaklanan ikilik olan harcamaları minimize etme problemi iktisadî bir optimizasyon problemidir. Tüketiciler ve firmalar fayda/kar oranlarını maksimize etmek durumundadırlar.Ticaret teorisi de milletler arası ticari ortaklığın izahında optimizasyona sık sık başvurur.
Sabit genel giderli zaman maliyet problemleride önemli bir optimizasyon problemidir. Özellikle inşaat ve endüstri mühendisliğinde bu problemle sıkça karşılaşılır. Doğrusal programlama, sezgisel ve üst sezgisel yöntemler bu problem türünün optimizasyonu için kullanılmaktadır.
Optimizasyon tekniklerinin sıkça kullanıldığı bir diğer alan da operasyon araştırması'dır.
Tarihçe
[değiştir | kaynağı değiştir]Dik İniş adıyla bilinen ilk optimizasyon tekniğinin tarihi Gauss'a dek uzanır. Tarihi olarak, 1940'larda George Dantzig tarafından ortaya atılan lineer programlama kuramı en yaşlı optimizasyon terimidir. Programlama terimi bu bağlamda Bilgisayar Programcılığı'nı ifade etmez.Program teriminin kullanımı ABD Ordusunun, kendi içtimai ve lojistik takvimini belirlemede konteyner kullandığı "program" terimi ile ilişkilidir. (Daha sonra ise "program" terimi devlet bütçesinin düzenlenmesinde kullanılmış ve günümüzde de yüksek teknolojik araştırmaların sahasına da geçmiştir.)
Optimizasyon Alanına Katkı Sağlayan Diğer Önemli Matematikçiler:
- John von Neumann
- Leonid Vitalyevich Kantorovich
- Naum Z. Shor
- Leonid Khachian
- Boris Polyak
- Yurii Nesterov
- Arkadii Nemirovskii
- Michael J. Todd
- Richard Bellman
- Hoang Tuy
Ayrıca bakınız
[değiştir | kaynağı değiştir]Problem Çözücüler
[değiştir | kaynağı değiştir]- NAG Numerical Libraries-NAG kütüphanesi çeşitli problem ve durumlardan oluşan optimizasyona dair geniş bir arşiv sunuyor.http://www.nag.co.uk/optimization/index.asp9 Şubat 2008 tarihinde Wayback Machine sitesinde arşivlendi.
- NPSOL - Non-Lineer progralama problemlerinin çözümü için geliştirilmiş bir Fortran paketi.http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm10 Mart 2008 tarihinde Wayback Machine sitesinde arşivlendi.
- OpenOpt - Pyhton dilinde yazılmış ücretsiz çözücüleri sağlayan bir araç-kutusu
- IPOPT - Açık kaynak kodlu ilkel-ikincil dahli metotlar ile çalışan bir NLP çözücü.
- KNITRO - Non-Lineet problemler için bir çözücü.
- Mathematica
- OpenSolver - Açık kaynaklı MS Excel eklentisi olarak çalışan bir çözücü
Kaynakça
[değiştir | kaynağı değiştir]- Mordecai Avriel (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.
- Stephen Boyd and Lieven Vandenberghe (2004). Convex Optimization28 Şubat 2008 tarihinde Wayback Machine sitesinde arşivlendi., Cambridge University Press. ISBN 0-521-83378-7.
- Panos Y. Papalambros and Douglass J. Wilde (2000). Principles of Optimal Design : Modeling and Computation30 Ocak 2008 tarihinde Wayback Machine sitesinde arşivlendi., Cambridge University Press. ISBN 0-521-62727-3.
- Jorge Nocedal and Stephen J. Wright (2006). Numerical Optimization30 Mayıs 2008 tarihinde Wayback Machine sitesinde arşivlendi., Springer. ISBN 0-387-30303-0.
Dış bağlantılar
[değiştir | kaynağı değiştir]- NEOS Guide şu anda yerine NEOS Wiki[ölü/kırık bağlantı] gelmiş durumda.
- Mathematical Programming Society7 Mart 2006 tarihinde Wayback Machine sitesinde arşivlendi.
- COIN-OR19 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi.
- Mathematical Programming Glossary28 Mart 2010 tarihinde Wayback Machine sitesinde arşivlendi.
- Mathematical optimization
- Global optimization28 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi.
- Optimization Related Links9 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi.
- Decision Tree for Optimization Software17 Mart 2007 tarihinde Wayback Machine sitesinde arşivlendi. Optimizasyon kaynak kodlarına linkler içeriyor.
- Optimization Online27 Eylül 2019 tarihinde Wayback Machine sitesinde arşivlendi.
Modeling languages:
- AIMMS23 Temmuz 2019 tarihinde Wayback Machine sitesinde arşivlendi.
- AMPL17 Eylül 2009 tarihinde Wayback Machine sitesinde arşivlendi.
- GAMS20 Ağustos 2009 tarihinde Wayback Machine sitesinde arşivlendi.
- OPL
Solvers:
- CONOPT23 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi.
- JOpt
- Moocho - Çok esnek ve açık-kaynak kodlu bir NLP çözücü.
- SAS OR6 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi.
- [1]17 Ocak 2008 tarihinde Wayback Machine sitesinde arşivlendi. Stanford Üniversitesi'nin Sistem Optimizasyon Labarotuarı tarafından sunulan ücretsiz optimizasyon yazılımı.
- TANGO Project19 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi. Genel Non-Lineer algoritmalar için güvenilir bir yazılım.
- SmartDO22 Ocak 2009 tarihinde Wayback Machine sitesinde arşivlendi. - Mühendislik ile ilgili global optimizasyon yazılımı (ticari)
Kütüphaneler:
- OOL (Open Optimization library)21 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi. -
- IOptLib (Investigative Optimization Library)21 Nisan 2008 tarihinde Wayback Machine sitesinde arşivlendi. - (ANSI C).
- ALGLIB7 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi. Optimizasyon kaynakları. C++, C#, Delphi, Visual Basic.