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.)