Problema somma sottoinsieme con molte condizioni di divisibilità


28

Sia S un insieme di numeri naturali. Consideriamo S nell'ordine parziale di divisibilità, ovvero . Permetteres1s2s1s2

α(S)=max{|V|VS,V an antichain } .

Se consideriamo il problema della somma dei sottoinsiemi in cui il multiset di numeri è in S , cosa possiamo dire della complessità del problema relativo a α(S) ? È semplice vedere se α(S)=1 , quindi il problema è semplice. Nota che è facile anche per il problema dello zaino più difficile quando α(S)=1 .


Risolvere problemi sequenziali di zaini di M. Hartmann e T. Olmstead (1993)


1
Invece di "relazione", suggerisco di usare i termini "ordine parziale". Inoltre, con il minimo pensiero, il problema con le monete di Frobenius potrebbe essere rilevante (ovviamente, non sono sicuro, però)
Aryabhata,

Risposte:


2

Questo problema può essere risolto in tempo polinomiale usando la programmazione lineare, e questo è vero per qualsiasi ordine parziale . A proposito, possiamo indurre per induzione che per qualsiasi insieme di ordine parziale finito ( S , ) , esiste un insieme finito S N e una biiezione f : S S , tale che per tutti gli s 1 , s 2S , s 1s 2f ((S,)(S,)SNf:SS .s1,s2S,s1s2f(s1)|f(s2)

Lasciate l'insieme formato dalle catene in S . Ricorda che C è una catena iff per tutti v , v in C , v v o v vCSCv,vCvvvv

Ora creare un booleano variabile per ogni v S , ed un booleano variabile y C per ogni catena C . Possiamo scrivere il seguente programma lineare ( P ) per il nostro problema: Max v S x v soggetto a xvvSyCC(P)

MaxvSxvsubject tovCxv1,CCXv{0,1},vS

e il suo doppio :(D)

minΣCCyCsoggetto aΣC:vCyC1,vSyC{0,1},CC

Quindi il problema di trovare la copertura minima di un set ordinato per catene è il doppio del nostro problema. Il teorema di Dilworth afferma che

Esiste un antichain A e una partizione dell'ordine in una famiglia P di catene, in modo tale che il numero di catene nella partizione sia uguale alla cardinalità di A

il che significa che la soluzione ottimale di questi due problemi corrisponde: Opt(P)=Opt(D)

Sia ( resp. ( D ) ) il rilassamento di ( P ) ( resp. ( D ) ), ovvero lo stesso programma lineare in cui tutti i vincoli x v{ 0 , 1 } ( resp. Y C{ 0 , 1 }(P*) (D*)(P) (D)Xv{0,1} yC{0,1} ) sono sostituiti da ( risp. YXv[0,1] ). Sia O p t ( P ) e O p t ( D ) le loro soluzioni ottimali. Poiché { 0 , 1 } [ 0 , 1 ] abbiamo: O p t ( P ) O p t ( P )  e  O p t ( D yC[0,1]Opt(P*)Opt(D*){0,1}[0,1] e il teorema della dualità debole stabilisce che O p t ( P ) O p t ( D ) quindi unendo tutto ciò che abbiamo: O p t ( P ) = O p t ( P ) = O p t ( D ) = O p t ( D )

Opt(P)Opt(P*) e Opt(D*)Opt(D)
Opt(P*)Opt(D*)
Opt(P)=Opt(P*)=Opt(D*)=Opt(D)

Opt(P*)=Opt(P)XS1,S2XS1S2S2S1X{v1,v2}


XXX

Grazie per aver spiegato perché il numero esponenziale di vincoli non è un problema e la rilevanza della dualità. Molto bella!
DW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.