0-1 programlama için kesin üstel zaman algoritmaları


10

Naif algoritmayı yenen aşağıdaki sorun için bilinen algoritmalar var mı?

Girdi: bir sistem olup ve m eşitsizlikler lineer.Axbm

Çıkış: bir olası çözüm eğer varsa.x{0,1}n

ve b'nin tamsayı girişleri olduğunu varsayın . En kötü sınırlarla ilgileniyorum.Ab

Yanıtlar:


14

Eğer superlinear olduğu böyle bir algoritma birleşik normal formda formüller 0-1 programlamanın özel bir durumudur ve seyreltme Lemma çünkü bize azaltmasını sağlar, Güçlü Üstel Zaman Hipotezi çürütmek istiyorum k doğrusal birçok maddeler üzerinde CNF-SAT -SAT .mk

Bununla birlikte, tel sayısı, yani A'daki sıfır olmayan katsayıların sayısı doğrusal ise, böyle bir eşitsizlik sistemini çözebilen Impagliazzo, Paturi ve kendime bağlı bir algoritma vardır . Özellikle, tel sayısı c n ise, algoritma 2 ( 1 - s ) n süresinde çalışır , burada s = 1Acn2(1s)n .s=1cO(c2)


1

Eğer küçük yeterlidir, sen yani naif algoritması daha iyi daha iyi yapabileceği 2 n zaman. Burada "yeterince küçük", m'nin n / lg n gibi bir şeyden daha küçük olduğu anlamına gelir . Çalışma süresi hala üstel olacaktır - örneğin, 2 n / 2 zaman olabilir - ancak saf algoritmadan daha hızlı olacaktır.m2nmn/lgn2n/2

Bu arada, A matrisinin süper lineer sayıda girişe sahip olduğu bazı durumlarda sorunu daha hızlı bir şekilde çözmemize izin veriyor gibi görünüyor . Bunu burada verilen diğer cevapla nasıl kare yapacağımı bilmiyorum. Sonuç olarak, cevabımı dikkatlice kontrol etmelisiniz: bir yerlerde ciddi bir hata yaptığımı gösterebilir.2nA


Temel yaklaşım: yazma , x 0 ilk tutan , n / 2 bileşenlerini x ve x 1 son tutan N / 2 bileşeni; ve benzer bir = ( A 0 , A 1 ) , bir 0 sol sahiptir , n / 2 sütun A ve A 1 sağ , nx=(x0,x1)x0n/2xx1n/2A=(A0,A1)A0n/2AA1 sütun. Şimdi A x b şeklinde yeniden yazılabilirn/2Axb

A0x0+A1x1b,

Veya eşdeğer olarak,

A0x0bA1x1.

A 0 x 0 için olasılığının tümünü numaralandırın ve S , olası değerler kümesini gösterelim, yani,2n/2A0x0S

S={A0x0:x0{0,1}n/2}.

Benzer şekilde, tüm 2 setinin sayısınıT için olanaklarb- A 1 x 1 , yani,2n/2bA1x1

T={bA1x1:x1{0,1}n/2}.

Şimdi sorun

Verilen setler 2 beden n / 2S,TZm2n/2 , orada mevcut mu ve T T bu şekilde ler t ?sStTst

(Burada , noktasal alınır yani biz gerektirmektedir s ıt i herkes için i .)sitii

İkinci sorun CS.StackExchange üzerinde tartışılmıştır ve görünüşe göre zamanında çalışan bir algoritma vardır . EğerO(2n/2(n/2)m1) (daha küçük, diyelim ki yeterince küçüktür n / lg n ), daha sonra toplam çalışma süresi daha az olacağı, aşağıdaki 2 n arzu edildiği gibi.mn/lgn2n


Bu sonucun daha akla yatkın olmasına yardımcı olmak için işte çok kaba bir sezgi. olan aşırı durumu ele alırsak , elbette bu hızlı bir şekilde çözülebilir. (Aslında m = 1 için özel durum için çok daha basit bir algoritma vardır : A 1 , i0 ise x i = 1 olsunm=1m=1xi=1A1,i0 , aksi takdirde ; ; şimdi herhangi bir uygulanabilir çözüm varsa, o zaman bu x bir olacaktır.)xi=0x


1
Cevabımdaki algoritma, aynı yöntemi kullanarak cevabınızda açıklanan vektör problemine de azalır, yani değişkenleri böler ve tüm ödevlerini listeler.
Stefan Schneider

2
Çalışma süresi boyuta bağımlılığı ve diğer her şeye polinom bağımlılığı olan genel tamsayı programlama problemi için algoritmalar vardır . Bkz. Dl.acm.org/citation.cfm?id=380857 . 2O(m)
Sasho Nikolov
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.