Sabit sayıda değişkenle tamsayılı programlama


12

H. Lenstra'nın Sabit Sayıda Değişkenle Programlama adlı ünlü 1983 makalesi, sabit sayıda değişkene sahip tam sayı programlarının veri uzunluğunda zaman polinomunda çözülebildiğini belirtmektedir.

Bunu şu şekilde yorumluyorum.

  1. Tamsayı programlama hala NP-tamamlanmış ancak eldeki tipik sorun büyüklüğüm (yaklaşık 10.000 değişken, rasgele sayıda kısıtlama varsa) pratikte mümkün ise, o zaman kısıtlamaların sayısı içinde polinom olarak ölçeklenen bir algoritma oluşturabilirdim ama değişkenlerin ve kısıtların sayısı.
  2. Sonuç, ikili programlama için de geçerlidir, çünkü uygun bir kısıtlama ekleyerek herhangi bir tamsayıyı 0-1'e zorlayabilirim.

Benim yorumum doğru mu?

Bu sonucun herhangi bir pratik etkisi var mı? Yani, mevcut bir uygulama var mı veya CPLEX, Gurobi veya Mosek gibi popüler çözücülerde kullanılıyor mu?

Makaleden bazı alıntılar:

Bu uzunluk bizim amacımız için n · m · log (a + 2) olarak tanımlanabilir, burada bir A ve b katsayılarının mutlak değerlerinin maksimumu belirtilir. Aslında, söz konusu sorun NP-tamamlanmış olduğundan, böyle bir polinom algoritması mevcut değildir.

[...]

N'nin herhangi bir sabit değeri için tamsayı doğrusal programlama probleminin çözümü için bir polinom algoritması olduğu varsayılmıştır [5], [10]. Bu yazıda böyle bir algoritma sergileyerek bu varsayımı kanıtlıyoruz. Algoritmamızın çalışma süresinin sınırlanabileceği polinom derecesi n'nin üstel bir fonksiyonudur.


2
" Kısıtlamaların veya değişkenlerin sayısı içinde polinom olarak ölçeklenen, ancak değişkenlerin ve kısıtlamaların sayısına göre ölçeklenmeyen bir algoritma oluşturabilirim ." İlginç bir nokta / soru - şimdiye kadar bunun kısıtlamalar için doğru olduğunu gördük (değişkenlerin sayısını sabit tutarak), ancak değişkenler için de doğru olup olmadığını sormak ilginç olabilir (kısıtlama sayısını sabit tutarak) ? Sezgisel olarak, doğru olmaması gerektiği gibi geliyor, başka IP genel olarak çoklu zaman olurdu, ama emin değilim.
usul

Lenstra makalesinin 4. bölümünde "sabit bir m değeri olan tamsayılı doğrusal programlama probleminin polinom olarak çözülebildiğini" belirtmektedir. (m kontrastların sayısıdır) Bu, ana sonucun bir sonucu olarak ortaya çıkar. Bu bölüm benim için net değil. İkinci bir düşüncede belki n & m sabitini varsayar; yani "a" da polinomdur (A ve b katsayılarının mutlak değerlerinin maksimumu). (Sonuç olarak yukarıdaki sorudan "veya değişkenler" bölümünü kaldırdım).
Bernhard Kausler

6
nmmn

Yanıtlar:


19

n

O(n2.5n+o(n)L)LLn

Böylece, problem değişken sayısı ile parametreleştirilen sabit parametreli lineerdir.

1) Evet, Tamsayılı Doğrusal Programlama "hala" NP tamamlandı. Yukarıdaki teorik sonucun çalışma süresi sadece doğrusal olarak kısıtlamaların sayısına bağlıdır, bu nedenle kısıtlamaların sayısında güzel bir şekilde ölçeklenir. Ancak bu algoritmanın gerçek bir uygulamasını bilmiyorum.

2) Evet, değişkenlerin ikili değerleri almasını sağlamak gözlemlediğiniz gibi basittir.

L

O(2nnm+8nnmlogmlogm+n2.5n+o(n)slogm)
ms

1
Ah, "sabit parametreli doğrusal" terimi için teşekkürler. Lenstra'nın makalesi bununla ilgilidir. Ayrıca bakınız: en.wikipedia.org/wiki/Parameterized_complexity
Bernhard Kausler

4
nO(n2nm)

T(n,m,s)nmsO(2nm+(logm)T(n,f(n),s)O(s)f(n)nO(n)

1
Bu, cevabınızın temel gerçeklerini değiştirmez, ancak başka bir ilgili referans KL Clarkson'dur. Boyut küçük olduğunda doğrusal ve tamsayı programlama için Las Vegas algoritmaları. ACM 42 (2): 488-499, 1995, doi: 10.1145 / 201019.201036.
David Eppstein

2
mnO(n2.5n+o(n)L)T(n,f(n),s)f(n)=4nL=4nsf(n)O(2nnm+n2.5n+o(n)(logm)s)

4

İşte Lenstra tipi sonuçların pratik sonuçları ve CPLEX, Gurobi, vs.'deki olası uygulamalar ile ilgili birkaç nokta: IP için bu tür algosların çoğundaki temel adımlardan biri "iyi" veya "ince" yönlerde dallanmaktır, yani, politopun genişliğinin çok büyük olmadığı hiperplanlar (değişkenlerde polinom ve veri boyutu). Ancak Mahajan ve Ralphs ( burada baskı öncesi ), optimum bir ayrılma seçme sorununun NP-tamamlanmış olduğunu gösterdi. Bu nedenle, bu sınıftaki algos sınıfında pratik olarak verimli uygulamalar oluşturmak zor görünecektir.

CPLEX gibi ambalajlarda uygulanan algosların çoğu dal kesme yöntemiyle sınıflandırılabilir. Bu teknik ailesi tipik olarak , mümkün olan ve çoğu zaman en uygun çözümleri bulabilen IP örneklerinde iyi çalışır. Ancak Lenstra tipi algosun odak noktası, başlamak için mümkün olmayan en kötü IP durumlarıdır ve amaç, tamsayı olanaksızlığını kanıtlamaktır (ve bu görevin karmaşıklığını araştırırlar). AFAIK, bu tanıma uyan pratik alaka düzeyiyle ilgili herhangi bir sorun sınıfı yoktur. Bu nedenle, CPLEX / Gurobi halkı muhtemelen Lenstra tipi algos'u yakın bir zamanda uygulamıyor olacaktı.

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.