Zaman dilimlerinin satış blokları


27

Verilen zaman dilimleri olduğunu insanlar satın almak istiyorum. Kişi bir değerin h (i, j) \ geq 0 her bir zaman dilimi için j . Her insan, boş olabilen sadece bir ardışık zaman dilimi bloğu alabilir.n, nk kı ih ( i , j ) 0 h(i,j)0jj

Satıcının elde edebileceği maksimum değeri hesaplamak için bir polinom-zaman algoritması var mı ?

Ardışıklık kısıtı olmadan, her zaman dilimini en çok değer veren kişiye verebiliriz. Biz zaman aralıkları sırasını saptamak Ayrıca, kk insanlar, daha sonra dinamik programlama birinci maksimum değeri için çözmek için kullanılabilecek 0 i k0ik ilk satın insanlar 0 j n0jn zaman yuvalar.

Yanıtlar:


9

Cümlecikleri ile 3CNF Verilen ϕ 1 , , ϕ kϕ1,,ϕk değişkenlerine x 1 , , x nx1,,xn . Her iki varsayalım x benxi ve ¯ x benxi¯¯¯¯¯ en formül görünür k iki kez sırasıyla.

Köşeleri üç parçadan oluşan renkli bir DAG G tasarlıyoruz G,G:

  • "Atama" köşeleri v i ( j )vi(j) ve ˉ v i(j)v¯i(j) , 1 i n1in , 1 j k i1jki . Renkli " v i ( j )vi(j) " renkli " x i ( j )xi(j) ve ˉ v i(j)v¯i(j) , ¯ x i (j)xi¯¯¯¯¯(j) .
  • "Clause" köşeleri w i ( j )wi(j) , 1 i k1ik , j = 1 , 2 , 3j=1,2,3 . Renk w_ {i '} (j') x_i (j)w i ( j )wi(j) rengiyle (veya \ overline {x_i} (j) ), eğer \ overline {x_i} (veya x_i , resp.) Cümlesinin j ' harfidir. \ phi_ {i '} ve bu değişmezi içeren j -th yan tümcesi.x i ( j )xi(j)¯ x i (j)xi¯¯¯¯¯(j)¯ x benxi¯¯¯¯¯x benxij jϕ ben ϕijj
  • "Kes" köşeleri s = s 0 , s 1 , , s n , s n + 1 , s n + k = ts=s0,s1,,sn,sn+1,sn+k=t . Yukarıdan farklı renklerle onları renklendirin.

Kenarlar şunları içerir:

  • s i - 1 v i ( 1 )si1vi(1) , v i ( j ) v i ( j + 1 )vi(j)vi(j+1) , v i ( k i ) s ivi(ki)si ;
  • s i - 1 ˉ v ı ( 1 )si1v¯i(1) , , ;ˉ v i(j) ˉ v i(j+1) ˉ v i(ki)siv¯i(j)v¯i(j+1)v¯i(ki)si
  • ve , .sn+i1wi(j)sn+i1wi(j)wi(j)sn+iwi(j)sn+i

Örneğin, 3CNF'den x_2 'den aşağıdaki grafik oluşturulur (kenar yönleri soldan sağa). (x1x2¯x3)(x1¯x2x3)(x1x2x3¯¯¯¯¯)(x1x2¯¯¯¯¯x3)görüntü tanımını buraya girin

Şimdi bir olduğunu ve ancak eğer orijinal 3CNF karşılanabilir olduğunu görmek zor değil - farklı köşe renklerle yolu .ssttGG

(Bu arada, renkli farklı köşe renkleri olan - yolunun olduğu bir yan . Bu sorunla ilgili pek çok literatürü hesaplama perspektifinde bulamadım. bilirsin, lütfen yorum yap!)ssttNP-hardNP-hard

Öyleyse, ve OP'nin sorunu arasındaki ilişki nedir? Sezgisel olarak yapacağımız şey, bir matris tasarlamaktır , böylece her renk bir sıraya (bir kişi) eşlenir ve kenarlar ardışık sütunlara (zaman dilimleri) eşlenir. Dolayısıyla matristeki temel olarak soldan sağa giden bir maksimum programlama - yoluna karşılık gelir .GGhhsstt

Bizim matris sahip endeksleri başlayarak, sütun . Aşağıdaki konstrüksiyonda ve , değerlerini sağlayan iki değerdir . oranları büyük ve güçleri olabilir . Let .hh2n+1+i2ki+k2n+1+i2ki+k00XXYY1XY1XYX/1,Y/XX/1,Y/XkknnKi=2i+2ij=1kiKi=2i+2ij=1ki

  • Her , , (eğer Koordinat var, aşağıda aynı).sisi0in0inh(si,Ki)=h(si,Kiki1)=h(si,Ki+ki+1+1)=Yh(si,Ki)=h(si,Kiki1)=h(si,Ki+ki+1+1)=Y
  • Her , ; Her biri için , izin .xi(j)xi(j)h(xi(j),Ki1+j)=Xh(xi(j),Ki1+j)=X¯xi(j)xi¯¯¯¯¯(j)h(¯xi(j),Ki1+ki+1+j)=Xh(xi¯¯¯¯¯(j),Ki1+ki+1+j)=X
  • Her biri için , ve değişmez bir maddesi içinde , izin .ϕiϕi1ik1ikxxϕiϕih(x,Kn+i)=1h(x,Kn+i)=1
  • Diğer tüm girişler 0.

Örneğin, yukarıdaki örnek grafik için karşılık gelen matris görüntü tanımını buraya girin

Şimdi iddia ediyoruz: orijinal 3CNF, yalnızca ve eğer maksimum değer .(2n+1)Y+ikiX+k(2n+1)Y+ikiX+k

Çizelgelemeyi, azami değer elde etmeyi düşünün. içeren içinde tam olarak sütunlar bulunduğundan , bunların tümü örtülmelidir. İki seçeneğine sahip sütunu için, zamanlamanın atadığını varsayalım . Sütun yana atanmalıdır , ardışıklığın biz sütunları kaybetmek zorunda için . Sütununda atama planlaması eğer aynı şeyler olur için .(2n+1)(2n+1)hhYYKi+ki+1Ki+ki+1YYsisiKiKisisiKi+1Ki+1Ki+kiKi+kiKi+ki+1Ki+ki+1si+1si+1

Bu nedenle, değerine sahip olması amacıyla , tüm geri kalan mevcut seçilmelidir ', matris içinde s değişkenler üzerindeki bir atamaya olan karşılık gelir. Dolayısıyla, geri kalan değeri, sadece ödevin her maddeyi yerine getirmesi durumunda mümkündür.ikiXikiXXXkk

Sonuç olarak, yasal zamanlamanın maksimum değerine karar vermek . Belki de bu nedenle önceki tüm algoritma bulma girişimlerimiz başarısız olmuştur.NP-hardNP-hard


Ancak, örnek matriste, eğer ve hala hedefe ulaşabilirim. Neyi yanlış yapıyorum? Ayrıca in sağ ve bir sütun olmalıdır in bir sütun sola olmalıdır¯x1x1¯¯¯¯¯ ¯x2x2¯¯¯¯¯x3x3XX¯x1(1)x1¯¯¯¯¯(1)XX¯x1(2)x1¯¯¯¯¯(2)
rotia

@rotia Evet ve bu, solda , sahip olmak için seçmeniz gerektiği anlamına gelir . Böylece tatmin edici bir karşılık gelir . x1,x2,¯x3x1,x2,x3¯¯¯¯¯4X4Xx1=x2=1,x3=0x1=x2=1,x3=0
Willard Zhan

Eğer "Varsayalım netleştirmek Can hazır bilgilerinin maçta iki sayı daha büyük bir ve ." anlamına geliyor? Bir değişmezin görünme sayısı nedir? Bu madde / formülde nerede göründüğü hakkında mı, yoksa formülde kaç kez göründüğü hakkında mı? Mı bir sabit veya numara? kikixixi¯xixi¯¯¯¯¯kiki
DW

@DW bir sayıdır. Benim ifadem gerçekten net değildi; Düzenledim. kiki
Willard Zhan

@WillardZhan Evet. Ancak bu değişkenleri seçersem formüldekinden daha büyük bir değere ulaşabilirim. Örneğin, ve ayarladım , formülüne göre i sadece 450 puana ulaşmalı ( cümle sayısı olduğu varsayılarak ). Ama seçerek i sağda dört olanları seçerek 452 puan alabilirsinizY=60Y=60X=7X=7kkx1,x2,¯x3x1,x2,x3¯¯¯¯¯
rotia

3

Bu çözümde sorunlar var ve yakında silinecekler; templatetypedef'in yorumuna bakınız.

Bunu minimum maliyet akışını kullanarak polinom zamanında çözebilirsiniz . Aşağıda, tüm kenarlar ünite kapasitesine sahiptir.

  • Bir kaynak vertex oluşturun ve bir hedef köşe . Biz gönderecek gelen akışın birimleri için .ssttkksstt
  • Oluşturma köşe yuvaları arasındaki zaman noktaları temsil etmek ve yönlendirilmiş bir kenar her biri için eksiksiz 0 ile.n+1n+1v0,,vnv0,,vnvjvj+1vjvj+10j<n0j<n
  • Her kişi için aşağıdakileri oluşturun: ii
    • Bir alt kaynak tepe noktası ve bir alt lavabo tepe noktası .sisititi
    • Her için , bir kenar için sahip olan maliyet (biz ise 0 olduğu aldığı ).0j<n0j<nsisivjvjΣjk=1h(i,k)Σjk=1h(i,k)j=0j=0
    • Her için , bir kenar için sahip olan eksiksiz .1jn1jnvjvjtitiΣjk=1h(i,k)Σjk=1h(i,k)
    • 0 maliyeti olan bir kenar .ssissi
    • 0 olan bir kenar .tittit

Bu ağdaki minimum maliyet akışı, mümkün olan en iyi kârın negatifine eşit toplam maliyete sahip olacaktır. (Bu maliyet negatif olacaktır, ama bu bir sorun değildir.) Vardır, her kişi hangi bir uygun entegre çözüm terk tek kenara sahip 1 bir akış ve gelen bir tek kenarlı 1 bir akış ile, ve veya meydana gelen diğer tüm kenarlarda 0 akış var. Kişi için bu akış 1 kenarları olsun olması ve sonra: arasındaki tek yolları için, -vertices simge artıranlar. Eğeriisisititisisititiiisivjsivjvktivktikjkjvvk=jk=j, o zaman insana zaman dilimi tahsis edilmez; aksi takdirde, kişiye , zaman dilimleri bloğu tahsis edilmiştir .iiiij+1,,kj+1,,k

Sezgisel olarak, her kişi 1 birim akış alır " ve bir başlangıç ​​zamanı (kenar) ve bitiş zamanı (kenar) seçer; bu başlangıç ​​ve bitiş kenarları ağda sıfır maliyeti olmayan tek kenarlardır ve iki ön ek toplamının farkı olarak bloğunun değerini temsil edebiliriz . kanalları arasındaki kenarlardaki birim kapasiteler 2 kişinin aynı zaman dilimini kullanmasını önler.ssj+1,,kj+1,,kvv

İlginçtir ki, bu formülasyon değerleri negatif olsa bile çalışacaktır .h(i,j)h(i,j)


3
Bazı kişi eğer bu başarısız olabilir ben başka bir kişinin lavabo ve tersi için kendi kaynağından bir yol alır? i
templatetypedef

@templatetypedef: Haklı olduğuna inanıyorum; Bu cevabı kısa süre içinde sileceğim. Onun yerine bu yapı hakkında ne: Biz eskisi gibi köşeleri ve kenarları var, ama şimdi biz (artan tarafından sipariş insanların bir "boru hattı" ile akışın tek bir birim "iplik" deneyin i bütün için kenarlarının silerek değeri) ler ler i için hariç s s 1 ve tüm kenarları t i t haricinde t k t ve bir kenar ilave t i s i + 1 büyük olumsuz maliyeti - M her biri için 1 i < ki. - M hepsi ziyarete akışının tek birimini zorlar k - 1 Bu "boru hattı" kenarlarının herhangi eniyiliği.
j_random_hacker

@j_random_hacker o zaman k halkının siparişini zorluyorsun .
Chao Xu,

@ChaoXu: Ben öyle düşünmüyorum: insanlara blokların herhangi atamasında atama olabilir kişi tarafından artan sırada listelenir. (Bildirim hiçbir şey bir insanı yasaklar i ' > i bir blok biten atandığı j ' < j , j ilk blok kişiye atanmış olan i .) Ama bir his var benim ilk etkilenen sorunun yakın akrabası girişimi de bunu etkiler ...
j_random_hacker 22:16

@j_random_hacker maliyeti s ı v j gerektirecektir s i için i uygun çözelti içinde inci kişi.
Chao Xu
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.