具有许多可除条件的子集和问题


28

令S为一组自然数。我们认为S可分偏序下,即s1≤s2⟺s1∣s2。让

α(S)=max{|V|∣V⊆S,V的反链}。

如果考虑数字的多重集在的子集和问题S,那么与有关的问题的复杂性又能怎么说呢α(S)?很容易看出α(S)=1,那么问题就很容易。注意,当α(S)=1†时,即使是较难的背包问题也很容易。


† 解决M. Hartmann和T.Olmstead(1993)的顺序背包问题


1
Instead of "relation", I suggest using the terms "partial order". Also, on minimal thought, the Frobenius coin problem might be relevant (of course, not sure, though)
— Aryabhata

Answers:


2

This problem can be solved in polynomial time using linear programming, and this is actually true for any partial order (S,≤). By the way, we can prove by induction that for any finite partial order set (S,≤), there exists a finite set S′⊆N and a bijection f:S→S′, such that for all s1,s2∈S,s1≤s2⇔f(s1)|f(s2).

Let C be the set formed by the chains in S. Remind that C is a chain iff for all v,v′ in C, v≤v′ or v′≤v

xvv∈SyCC(P)

Max∑v∈Sxvsubject to∑v∈Cxv≤1,∀C∈Cxv∈{0,1},v∈S

and its dual (D) :

Min∑C∈CyCsubject to∑C:v∈CyC≥1,∀v∈SyC∈{0,1},C∈C

Then the problem of finding the minimum cover of an ordered set by chains is the dual of our problem. Dilworth's theorem states that

There exists an antichain A, and a partition of the order into a family P of chains, such that the number of chains in the partition equals the cardinality of A

which means that the optimal solution of these two problems match : Opt(P)=Opt(D)

Let (P∗) (resp. (D∗)) be the relaxation of (P) (resp. (D)) i.e. the same linear program where all constraints xv∈{0,1} (resp. yC∈{0,1}) are replaced by xv∈[0,1] (resp. yC∈[0,1]). Let Opt(P∗) and Opt(D∗) be their optimal solutions. Since {0,1}⊆[0,1] we have :

Opt(P)≤Opt(P∗) and Opt(D∗)≤Opt(D)
and weak duality theorem establishes that Opt(P∗)≤Opt(D∗) then by putting everything together we have :
Opt(P)=Opt(P∗)=Opt(D∗)=Opt(D)

Then, using Ellipsoid method, we can compute Opt(P∗) ( =Opt(P)) in polynomial time. There are an exponential number of constraints but there exists a polynomial time separation oracle. Indeed given a solution X, we can enumerate all couples s1,s2∈X and check if s1≤s2 or s2≤s1, and therefore decide in polynomial time whether X is feasible or otherwise the constraint associated to the chain {v1,v2} is violated.


Ellispoid method works whatever the number of constraints, if we have (1) a polynomial number of variables and (2) a separation oracle which given any solution x decides in polynomial time whether x is feasible or find a constraints violated by x. I recommend reading [www-math.mit.edu/~goemans/18433S09/ellipsoid.pdf], wikipedia is not very clear on this point
— Mathieu Mari

Thanks for explaining why the exponential number of constraints is not a problem, and the relevance of duality. Very nice!
— D.W.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.