0-1 Doğrusal Programlama: Optimal Formülasyonu Hesaplama


14

boyutlu alanı düşünün ve , formunun doğrusal bir kısıtlaması olsun , burada , ve .{ 0 , 1 } n c a 1 x 1 + a 2 x 2 + a 3 x 3 + . . . + a n - 1 x n - 1 + a n x nk a iR x i{ 0 , 1 } k Rn{0,1}nca1x1+a2x2+a3x3+ ... +an1xn1+anxnkaiRxi{0,1}kR

Açıkçası, , ve üzere iki alt bölme etkisine sahiptir . Tüm ve tatmin edici yalnızca noktaları içeren , oysa Tüm ve tahrif yalnızca noktaları içeren .{ 0 , 1 } n S c S ¬ c S c c S ¬ c cc{0,1}nScS¬cSccS¬cc

Varsayalım . Şimdi , aşağıdaki üç ifadenin tümünü bir alt kümesi olsun :O S c|Sc|nOSc

  1. nO tam olarak puan içerir .n
  2. Bu noktaları doğrusal olarak bağımsızdır.n
  3. Bu noktaları temsil edilen hiper düzlemden minimum mesafede olanlardır . Daha doğrusu, noktasının hiper düzlemden mesafesi olmasına izin verin . Daha sonra, bu şekilde tatmin 1 ve 2 bu durumda olduğunu . Başka bir deyişle , her iki koşulu da 1 ve 2 karşılayan tüm alt kümeleri arasında , noktalarının hiper düzlemden mesafelerinin toplamını en aza indiren alt kümelerdir .c d ( x , c ) x { 0 , 1 } n c B S c B x B d ( x , c ) x O d ( x , c ) O S c cncd(x,c)x{0,1}ncBScBxBd(x,c)xOd(x,c)OScc

Sorular

  1. verildiğinde , verimli bir şekilde hesaplanması mümkün müdür ? OcO
  2. Hesaplamak için en iyi bilinen algoritma hangisidir?

 

ile örnek n=3

N = 3 ile örnek

O = { ( 0 , 0 , 1 ) , ( 1 , 1 , 1 ) , ( 1 , 0 , 0 ) }S¬c={(1,0,1)} , .O={(0,0,1),(1,1,1),(1,0,0)}

 

Güncelleme 05/12/2012

Motivasyon

Motivasyon kullanılarak olmasıdır mümkün olmalıdır uygun kısıtlama belirlemek için , bu tarafından tanımlanan hiper olması gerektiği gibi noktaları . c n OOcnO

Optimal kısıtlama , optimal politop yol açan sınırlamadır .P cP

Optimal politop , köşeleri hepsi ve sadece başlangıç ​​politopu tamsayı köşeleri olan olandır (bir tamsayı tepe noktası, koordinatları tamamen tamsayı olan bir tepe noktasıdır). PPP

Optimal Formülasyon

İşlem , her seferinde karşılık gelen optimal kısıtlaması ile değiştirerek, 0-1 eşgörünüm her bir kısıtlaması için yinelenebilir . Sonunda, bu optimum politop yol açacaktır ait . Daha sonra, tepe noktaları yana Tüm ve ilk politop yalnızca tamsayı köşeler olan ve , uygun herhangi bir algoritma uygun tamsayı çözümü hesaplamak için kullanılabilir. verimli bir şekilde hesaplamak ima edeceğini biliyorum , ancak aşağıdaki ek soru hala duruyor:L P I c c P I P P I L P P P = N PcLPIccPIPPILPPP=NP

Ek Soru

Bu çizgiler üzerinde daha önce yapılmış bir çalışma var mı? Bir politop , buna karşılık gelen optimal politop verildiğinde, hesaplama işi zaten araştırılmış mı? Bunu yapmak için en iyi bilinen algoritma hangisidir?P PP


Bu, alt küme toplamından indirgeyerek tam olarak NP yapmak zor görünüyor. Verilen ikili tamsayılar bir alt kümesi toplama için olup olmadığını test etmek için, , altdüzlemle bir nokta olup olmadığını test edebilirsiniz . Yaklaşımlarla ilgileniyor musunuz? v1,,vnsv1x1++v1xn=s
Colin McQuillan

@ColinMcQuillan: Soru kesin bir çözüm anlamına geliyordu, ancak kesinlikle yaklaşımlarla da ilgileniyorum. Yorumunuzu neden bir cevaba dönüştürmüyorsunuz?
Giorgio Camerani

@ColinMcQuillan: Ayrıca, hiper düzleminiz bir eşitlik kullanılarak tanımlanırken, benimki de bir eşitsizlik kullanılarak tanımlanır. Bunun sertlik açısından fark yaratmadığından emin misiniz? Henüz kontrol etmedim, bu yüzden sadece soruyorum.
Giorgio Camerani

üzerindeki tüm kısıtlamalar konusunda biraz kafam karıştı . dışbükey gövdesi hakkında bilgi arıyorsanız , operasyon araştırma literatüründe 0-1 sırt çantası hakkında birçok sonuç var. Yaklaşık formülasyonlar açısından buna bakın . OSc
Austin Buchanan

Yanıtlar:


6

Bu, alt küme toplamından indirgeyerek tam olarak NP yapmak zor görünüyor. Diyelim ki hesaplamak için etkili bir prosedürümüz var . Verilen pozitif tamsayılar kodlanmış ikili, bir alt küme toplama için olup olmadığını test etmek isteyen . Daha büyük herhangi tamsayılar dışarı atarak Preprocess .Ov1,,vnss

Minimalite koşullarınızı karşılayan karşılayan küçük bir nokta kümesi elde etmek için prosedürü çağırın (önişleme ). Bu küme, varsa üzerinde kesinlikle bir nokta içerecektir .Ov1x1++v1xns|Sc|nv1x1++v1xn=s


Belki burada makroskopik bir şeye bakmıyorum, ama 2 sorum var: 1) " İkili tamsayı verildi" derken, ikili ile ne demek istiyorsun ? aittir . Belki ikili kodlanmış mı demek istediniz? Ya da belki olumlu söylemek istedin? 2) Neden büyük tüm tam sayıları atıyor ? Çözüme katkıda bulunabilirler. Örneğin: uzağa atmak halinde yalnızca çözelti kaybeder . R s v 1 = - 3 , v 2 = 7 , v 3 = - 5 , s = 2 v 2 { v 2 , v 3 }v1,...,vnRsv1=3,v2=7,v3=5,s=2v2{v2,v3}
Giorgio Camerani

2
ai

1
@GiorgioCamerani: Olumlu söylemem gerekiyordu - Cevabımı güncelledim.
Colin McQuillan

1

Bana öyle geliyor ki IP'nin dışbükey gövdesine ulaşmaya çalışıyorsunuz - özünde kesme algoritmaları elde etmeye çalışıyor. Her ne kadar bu yöntemlere ilgi çekici bir şekilde cazip gelse de pratikte yetersiz kalmaktadır.

Geçerli eşitsizliklerin üretilmesine ilişkin tüm teoriler vardır. İyi bir başlangıç ​​noktası, shrijver'ın tamsayı programlama kitabı teorisidir.

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.