Kısıtlı doğrusal denklemlere dayalı optimizasyon problemlerini Simplex tabloları, Bland döngü önleme kuralı ve gradyan inişi (Steepest Descent) ile çözer.
Doğrusal Programlama (LP), doğrusal eşitlik veya eşitsizlik kısıtları altında doğrusal bir amaç fonksiyonunu (objective function) maksimize veya minimize etme problemidir.
George Dantzig tarafından geliştirilen Simpleks Yöntemi (Simplex Method), kısıtların oluşturduğu dış bükey politopun (convex polytope) köşeleri arasında dolaşarak en iyi değeri arar. Bir köşeden komşu köşeye geçmek için Simplex pivot işlemleri (satır işlemleri) yapılır.
Bland Döngü Önleme Yöntemi (Bland's Anti-cycling Rule), pivot adımlarında aynı köşeler arasında sonsuz döngüye (cycling) girilmesini engellemek için en küçük indisli değişkeni seçme kuralıdır. En Dik İniş (Steepest Descent / Gradient Descent) ise gradyan yönünde adım atarak fonksiyonun yerel minimumunu arayan ardışık bir optimizasyon metodudur.
Aşağıdaki uygulamalar PDF kaynaklarındaki pseudo kod akışını modern veri yapılarıyla ifade eder. Kenar durumları görünür bırakıldığı için örnekler doğrudan test edilebilir.
1export function simplexPivot(2 tableau: number[][],3 pivotRow: number,4 pivotCol: number5): void {6 const R = tableau.length;7 const C = tableau[0].length;8 const pivotVal = tableau[pivotRow][pivotCol];9 10 // Normalize pivot row11 for (let j = 0; j < C; j++) {12 tableau[pivotRow][j] /= pivotVal;13 }14 15 // Reduce other rows16 for (let i = 0; i < R; i++) {17 if (i !== pivotRow) {18 const factor = tableau[i][pivotCol];19 for (let j = 0; j < C; j++) {20 tableau[i][j] -= factor * tableau[pivotRow][j];21 }22 }23 }24}Kısıtlı doğrusal denklemleri matris tablosuna dökerek Simplex pivot adımlarını ve Bland kuralını izleyin.
Kısıtlı doğrusal denklemleri matris tablosuna dökerek Simplex pivot adımlarını ve Bland kuralını izleyin.
En İyi Durum: O(d) - Köşeler arasında doğrudan geçiş yapıldığında
Ortalama Durum: Polinomsal - O(R * C) pivot adımı
En Kötü Durum: O(2^d) - Klee-Minty küpü gibi üstel durumlar
O(R * C) - Simplex tablosu matrisi saklama - Bu algoritmanın karmaşıklığı belirtilmemiş.
Doğrusal Programlama / Simpleks (Linear Programming / Simplex) Algoritması ile benzer veya alternatif olarak değerlendirilebilecek diğer başlıklar:
Doğrusal denklem sistemlerini çözen ve Simplex pivotlarında kullanılan matris indirgeme tekniği.
Doğrusal kısıtı olmayan sürekli fonksiyonlarda gradyan bazlı arama yöntemi.