Optimizasyon

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ı 
 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 
İ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:

 Tümleşik metotlar
 Türeve-serbest metotlar
 Birinci derece metotlar
 İkinci derece metotlar

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ı 
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 
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 
 Oyun teorisi
 Yöneylem araştırması
 Bulanık mantık
 Dinamik programlama

Problem Çözücüler 
 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.asp
 NPSOL - Non-Lineer progralama problemlerinin çözümü için geliştirilmiş bir Fortran paketi.http://www.sbsi-sol-optimize.com/asp/sol_product_npsol.htm
 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 

 Mordecai Avriel (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.
 Stephen Boyd and Lieven Vandenberghe (2004). Convex Optimization, Cambridge University Press. ISBN 0-521-83378-7.
 Panos Y. Papalambros and Douglass J. Wilde (2000). Principles of Optimal Design : Modeling and Computation, Cambridge University Press. ISBN 0-521-62727-3.
 Jorge Nocedal and Stephen J. Wright (2006). Numerical Optimization, Springer. ISBN 0-387-30303-0.

Dış bağlantılar 
 NEOS Guide şu anda yerine NEOS Wiki gelmiş durumda.
 Mathematical Programming Society
 COIN-OR 
 Mathematical Programming Glossary
 Mathematical optimization
 Global optimization
 Optimization Related Links
 Decision Tree for Optimization Software Optimizasyon kaynak kodlarına linkler içeriyor.
 Optimization Online 
Modeling languages:
 AIMMS
 AMPL
 GAMS
 OPL
Solvers:
 CONOPT
 JOpt
 Moocho - Çok esnek ve açık-kaynak kodlu bir NLP çözücü.
 SAS OR
  Stanford Üniversitesi'nin Sistem Optimizasyon Labarotuarı tarafından sunulan ücretsiz optimizasyon yazılımı.
 TANGO Project Genel Non-Lineer algoritmalar için güvenilir bir yazılım.
 SmartDO - Mühendislik ile ilgili global optimizasyon yazılımı (ticari)

Kütüphaneler:
 OOL (Open Optimization library) - 
 IOptLib (Investigative Optimization Library) - (ANSI C).
 ALGLIB Optimizasyon kaynakları. C++, C#, Delphi, Visual Basic.

Optimizasyon