Bir vektör toplamının maksimum bileşenini en aza indirme


11

Bu optimizasyon sorunu hakkında bir şeyler öğrenmek istiyorum: Verilen negatif olmayan tam sayılar için , bir fonksiyonu bulmak f ifadesini minimizeai,j,kf

maxkiai,f(i),k

Farklı bir formülasyon kullanan bir örnek daha net hale getirebilir: Size bir dizi vektör kümesi verilir.

{
    {(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)},
    {(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)},
    {(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)}
}

Her kümeden bir vektör seçin, böylece toplamlarının maksimum bileşeni minimum olur. Örneğin,

(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)

maksimum bileşen 2'ye eşittir, burada açıkça optimaldir.

Bunun iyi bilinen bir sorun olup olmadığını ve hangi probleme özgü yaklaşık çözüm yöntemlerinin mevcut olduğunu merak ediyorum. Programlanması hızlı ve kolay olmalıdır ( ILP çözücü vb. Yok ). Tam bir çözüme gerek yoktur, çünkü bu sadece gerçek sorunun bir kestirimidir.


İlgilendiğim sorun örnekleri hakkında bazı ayrıntılar eklemem gerektiğini görüyorum:

  • i{0,1,,63} , yani her zaman 64 satır vardır (yukarıdaki örnekte yazıldığı gibi).
  • j{0,1} , yani satır başına yalnızca 2 vektör var.
  • k{0,1,,N1} ; burada (vektör uzunluğu) 10 ile 1000 arasındadır.N

Dahası, her satırda tüm vektörlerin elemanlarının toplamı aynıdır, yani,

i,j,j:kai,j,k=kai,j,k

ve toplam vektörün elemanlarının toplamı uzunluğundan daha azdır, yani,

kiai,f(i),k<N

4
3-partition problemini probleminize indirgemek zor değil . Bu, sayılar tekli olarak verildiğinde bile sorununuzun tam olduğu anlamına gelir ve bu, bir yaklaşım algoritması için ortak yaklaşımlardan birini dışlar.
Tsuyoshi Ito

Düzeltmeler için teşekkürler ve içgörü için @Tsuyoshi Ito'ya teşekkürler. Doğru anlarsam, satır başına iki vektörün (belirtmeyi unuttuğum) kısıtlaması, azaltmayı geçersiz kılar ve sorunu daha kolay hale getirebilir.
maaartinus

Haklısınız, her satırda sadece iki vektör varsa, düşündüğüm 3 bölümlü sorunun azaltılması işe yaramıyor.
Tsuyoshi Ito

Karşılaştırmak için kombinasyonları var mı? ji
Jason Kleban

@ uosɐſ: Kesin olarak, olası kombinasyon vardır, burada için olasılık sayısıdır ve için olasılık sayısıdır . JI=264J=2jI=64i
maaartinus

Yanıtlar:


7

3SAT iki vektör versiyonuna indirgenmesi: bir formül verilen izin indeks değişkenleri, ve indeks maddeleri. Let kez değişken sayısı, pozitif belirir (eğer ) ya da negatif (eğer ) maddesi içinde . OPT az olan formülü (bijection açıktır) karşılanabilir IFF.ij{0,1}kai,j,kij=0j=1k3

Bu soruna nasıl saldırırdım: geniş mahalle araması. Herhangi bir çözümle başlayın. Rastgele satırları seçin . Kullanım kaba kuvvet en iyi çözümü bulmak için sadece bu satırların-çok bile ılımlı için yapılabilir üzerinde değiştirebilir sorunu boyutu olduğu göz önüne alındığında satır. Tekrar et.rfk64


1
Bu güzel bir azalma. Niye oy vermediğinden emin değilim. Her neyse, işte + 1'im.
Tsuyoshi Ito

1
Sanırım azaltma konusunda biraz daha ayrıntılı olmalısın. Özellikle şunlara sahip görmek biraz zor bir eşleşme yapar gibi belki çok iyi, iyi gizlenmiş. f
Raphael

7

Problem büyüklüğü bir sabit olarak sabitlendiğinde bir sorunun karmaşıklığını tartışamayız, çünkü karmaşıklık teorisi (çoğunlukla) problem büyüklüğü sonsuzluğa eğilimli olduğu için sorunun karmaşıklığının asimptotik davranışıyla ilgilenir. Burada, hem satır sayısını hem de vektörlerin boyutunu değişken olarak kabul ediyorum.

Daha sonra girişteki rakamlar tekli verilse bile problem NP-tamamlanmış olur. Bu, sorunuzun bir cevabı değildir, çünkü yaklaşımı soruyorsunuz, ancak bir şeydir.

Sorunu titizlikle tanımlayın:

Örnek : n vektörlerin çifti bir i , b i ∈ ℕ m ( i ∈ {1, ..., n, }) ve K ∈ ℕ, tekli Tüm.
Soru : Biz seçebilir miyim ya bir i ya b i her biri için ben bu yüzden bu toplamı o n vektörler en fazla sahip K her koordinat?

Aşağıdakiler, 3-partition adı verilen bilinen bir NP-complete problemidir :

3-bölüm
Örneği : B 4 and ve 3 k tamsayı c 1 ,…, c 3 k , B / 4 ve B / 2 arasında, tek başına, ∑ i = 1 3 k c i = kB , hepsi tekli.
Soru : Can multiset { 1 , ..., c 3 k } içine bölümlenmiş k MULTISETS S 1 , ..., S K , her toplamı şekilde S j eşittirB ?

Bir örneğini göz önüne alındığında ( B ; C 1 , ..., c 3 k ) aşağıdaki gibi 3-bölme sorun, yukarıdaki sorunun bir örneğini oluşturmak. Her i = 1,…, 3 k ve j = 1,…, k için , c i'nin S j'ye ait olup olmadığına dair seçimi temsil eden bir çift 4 k boyutlu vektör oluşturacağız :

  • Seçim temsil eden vektör “ C ıS j ” sadece bir sıfırdan farklı bir giriş vardır ( k -1) C i de j koordine inci.
  • C iS j ” seçimini temsil eden vektörde ayrıca ( k + i ) koordinatında B olan sıfır olmayan bir giriş vardır .

(Örnek görmek zor değildir B , C 1 , ..., c 3 k 3, her bir vektör seçmek için bir yolu yoktur, ancak ve ancak 3-bölme sorun) bir çözümü vardır k 2 inşa böylece bu vektörlerin toplamının tüm koordinatları en fazla ( k −1) B olur . (Aslında, bu olduğunda, toplamın tüm koordinatları ( k −1) B'ye eşittir .) Bu, 3 bölümlü problemden yukarıdaki soruna bir azalmadır.

Şimdiye kadar, sorunun sonunda belirtilen iki ek kısıtlamayı göz ardı ettim, ancak her ikisinin de bu azalmayı biraz değiştirerek uygulanması kolaydır. Her vektörün elemanlarının toplamının eşit olması koşulu, yalnızca 0 veya 1 içeren kukla koordinatlar eklenerek uygulanabilir. Bu toplamın boyuttan küçük olması koşulu, yalnızca 0 içeren kukla koordinatlar eklenerek uygulanabilir.


Güzel cevap, sadece bazı notlar: 1. Burada teorik karmaşıklığı umursamıyorum . 2. Sıra sayısı sabittir ve değişken yeterli olması nedeniyle bu şekilde kalabilir . Çok teşekkürler. N
maaartinus
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.