İç nokta yöntemlerinin doğrusal optimizasyon için simpleks yöntemine göre avantajları / dezavantajları nelerdir?


14

Anladığım kadarıyla, doğrusal bir programa yönelik bir çözüm her zaman çok yüzlü uygulanabilir kümesinin bir tepe noktasında gerçekleştiğinden (bir çözüm varsa ve en uygun objektif işlev değeri, bir minimizasyon problemi varsayarak alttan sınırlandırılırsa), uygulanabilir bölgenin iç daha iyi olabilir mi? Daha hızlı birleşiyor mu? Hangi koşullar altında iç nokta yöntemleri üzerinde simpleks yönteminin kullanılması avantajlı olur? Birinin kodda uygulanması diğerinden daha kolay mıdır?


İfadelerinizden biri yanlış. Konveks optimizasyon probleminin çözümü her zaman sınırda OLMAYACAKTIR. Mesela, minx[1,1]x2 uygun çözümün , uygulanabilir bölgenin iç kısmında bulunan x = 0'da oluştuğu dakikanızı alın x=0. Ayrıca, doğrusal programlama bağlamının dışında, simpleks yöntemi genellikle 1'den büyük boyutta optimal bir çözüme bile yaklaşamayan Nelder-Mead simpleks yöntemini ifade eder. Bu yöntem dışbükey programlama için önerilmez. Açıklık ve doğruluk için lütfen sorunuzu düzenleyin.
Geoff Oxberry

"Dışbükey optimizasyon" yerine "doğrusal optimizasyon" demek daha uygun olur mu?
Paul

Evet, ifadeniz doğrudur. Sorunuzu düzenlediğiniz için teşekkür ederiz.
Geoff Oxberry

Simpleks yöntemindeki sorun, doğrusal olmayan problemlere, yani gerçek dünya problemlerinin çoğuna genelleştirilememesidir.

Yanıtlar:


17

Kişisel deneyime dayanarak, doğrusal programlama sınıfının bir parçası olarak MATLAB'da hem temel simpleks hem de temel bir iç nokta yöntemini uygulamaktan kişisel deneyime dayanarak, simpleks yöntemlerinin nasıl uygulanacağını anlamak için iç nokta yöntemlerinden biraz daha kolay olduğunu söyleyebilirim. . İlkel simpleksdeki ana engeller, Faz I ve Faz II'yi doğru bir şekilde uyguladığınızdan ve ayrıca bir bisiklet sürme kuralını doğru bir şekilde uyguladığınızdan emin olmaktır. Doğrusal programlama için bir iç nokta yönteminin uygulanmasındaki temel engeller, yinelemeli yöntemin doğru bir şekilde uygulanması ve bariyer parametresinin buna göre ölçeklendirilmesi ile ilgili olma eğilimindedir.

Bertsimas ve Tsitsiklis tarafından Doğrusal Optimizasyona Giriş gibi doğrusal programlama üzerine bir ders kitabında her algoritmanın artıları ve eksileri hakkında daha kapsamlı bir tartışma bulabilirsiniz . ( Feragatname: Bu ders kitabından doğrusal programlama öğrendim ve Bertsimas'ın karısından MIT'de doğrusal programlama aldım.) İşte bazı temel bilgiler:

Simpleks'in artıları:

  • karar değişkeni verildiğinde , genellikle operasyonlarında pivotları ile birleşir .O ( n ) O ( n )nO(n)O(n)
  • Problemin geometrisinden yararlanır: uygulanabilir kümenin köşelerini ziyaret eder ve ziyaret edilen her tepe noktasını en iyi duruma getirmek için kontrol eder. (Primal simplekste, azaltılmış maliyet bu kontrol için kullanılabilir.)
  • Küçük sorunlara iyi gelir.

Simpleks Eksileri:

  • Verilen algoritma gerektirdiği karar değişkenleri, her zaman bir sorun örneğini bulmak için işlemleri ve pivotlar bir çözüme ulaşmak için.O ( 2 n )nO(2n)
  • Büyük problemler için o kadar büyük değil, çünkü dönme işlemleri pahalı hale geliyor. Kesme düzlemi algoritmaları veya Dantzig-Wolfe gibi gecikmeli sütun oluşturma algoritmaları bazen bu eksikliği telafi edebilir.

İç nokta yöntemlerinin artıları:

  • polinom zamanı asimptotik karmaşıklığına sahip olun ; burada , algoritmaya girdi bitlerinin sayısıdır.LO(n3.5L2logLloglogL)L
  • Büyük, seyrek problemler için daha iyidir çünkü algoritma için gereken doğrusal cebir daha hızlıdır.

İç nokta yöntemlerinin eksileri:

  • Sezgisel olarak tatmin edici değil çünkü haklısınız, bu yöntemler köşeleri ziyaret etmiyor. İç kısımda dolaşıyorlar, başarılı olduklarında bir çözüme yaklaşıyorlar.
  • Küçük problemler için, simpleks muhtemelen daha hızlı olacaktır. (Klee-Minty küpü gibi patolojik vakalar inşa edebilirsiniz.)

2
İyi bir özet. Klee-Minty aslında simpleks LP yöntemlerini karıştırmak için tasarlanmış gibi görünüyor ...
JM

@JM Evet, işte tam da bu nokta - simpleks yöntemlerinin polinom olmadığını göstermek için açık bir yapıdır (iç nokta yöntemlerini de ağlatan varyantlar olmasına rağmen).
Christian Clason

Bu bilgilendirici gönderi için teşekkür ederim. Sorunu kaç değişken büyüttüğünü merak ediyorum? Onlarca? Yüzlerce? Binlerce?
KjMag

Klee-Minty küp çözücü açık-kod içinde <0,1 saniye olarak çalışan GLPK 4.65 simplex. (Değerler de ve farklı. Oluyor birçok D = 100 yaramazlık çözen, ama dava) simpleks yöntem yavaş çalışıyor hepsi için de herhangi bir sorun, <1M nonzeros ile seyrek orada söylemek mı? A x 5DAx
denis

3

Cevap kolaydır. Her ikisi de (simpleks ve iç nokta yöntemleri) algoritmik açıdan olgun bir alandır. İkisi de pratikte çok iyi çalışıyor. IPM'nin (iç nokta yöntemleri) iyi bir üne sahip olması, en kötü durumda polinom karmaşıklığından kaynaklanmaktadır. Kombinatoryal karmaşıklığa sahip simpleks için durum böyle değildir. Bununla birlikte, kombinatoryal doğrusal programlar neredeyse hiç pratikte gerçekleşmez. Çok büyük ölçekli problemler için IP biraz daha hızlı görünmektedir, ancak kural gerekli değildir. Bence IP'yi anlamak ve uygulamak kolay olabilir, ama elbette, başka biri katılmıyorum ve bu iyi. Şimdi, LP'de, çözüm benzersizse, kesinlikle bir tepe noktasındadır (hem IP hem de Simplex burada da başarılıdır). Çözelti ayrıca çokyüzlünün bir yüzünde veya bir kenarda olabilir, bu durumda, bitişik tepe noktası da (veya köşeler) bir çözümdür (yine, hem IP hem de simpleks iyi sonuç verir). Yani hemen hemen aynı.


Verdiğim örneğin doğrusal bir program olmadığını anlıyorum; revizyon geçmişine bakarsanız, bu sorunun daha önceki bir sürümünde dışbükey optimizasyon problemleri için simpleks yöntemini ve iç nokta yöntemlerini karşılaştırmak istendi. Yaptığım düzenlemeleri haklı göstermek ve orijinal posteri yaptığı sorusunu düzeltmesi için teşvik etmek için bir karşı örnek verdim.
Geoff Oxberry
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.