套装封面子盒的硬度


10

如果元素的数量受某个函数(例如)限制,那么Set Cover问题有多难,其中n是问题实例的大小。正式地,log⁡nn

让和˚F = { s ^ 1,⋯ ,小号Ñ } 其中š 我 ⊆ Ù和米= Ö (登录Ñ )。确定以下问题有多难U={e1,⋯,em}F={S1,⋯,Sn}Si⊆Um=O(log⁡n)

SET-COVER'={<U,F,k>: there exists at most k subsets  Si1,⋯,Sik∈F that cover U}.

如果?m=O(n)

任何基于众所周知的猜想(例如,Unique Games,ETH)的结果都是好的。

编辑1:这个问题的动机是找出问题随着增加而变得困难的时候。显然,如果m = O (1 ),则问题出在P中;如果m = O (n ),则问题在于NP-hard 。问题的NP硬度阈值是多少?mm=O(1)m=O(n)

编辑2:存在一个简单的算法来决定它在时间(其中列举的尺寸所有子集米的˚F)。因此,如果m = O (log n),那么问题就不是NP-hard问题,因为ETH隐含着在时间O (2 n o (1 ))中没有任何NP-hard问题的算法(其中n是NP难题)。O(nm)mFm=O(log⁡n)O(2no(1))n


2
存在一种更好的算法来确定时间(更精确地讲是m的贝尔数)的问题:对于将元素划分为子集的每个分区,测试是否存在覆盖每个子集的输入集。因此,对于m = O (log n / log log n ),可以在多项式时间内解决问题。但是,这并不能完全回答您关于m = O (log n )的问题。mO(m)mm=O(log⁡n/log⁡log⁡n)m=O(log⁡n)
— David Eppstein

Answers:


11

当,可以使用动态编程来找到多项式时间的最佳值。该表包含布尔值细胞Ť ℓ ,X为每个ℓ &Element; { 0 ,... ,ķ }和X ⊆ ü,指示是否有ℓ覆盖在元件集合X。m=O(log⁡n)Tℓ,Xℓ∈{0,…,k}X⊆UℓX

当,说米≤Ç √m=O(n),问题仍然是NP难题。给定SET-COVER的实例,添加m个新元素x1,…,xm和(2C − 1 m)2个新集合,其中包括新元素的非空子集,包括{x1,…,xm}(当m足够大时,(2C − 1 m)2<2m)。也增加km≤Cnmx1,…,xm(2C−1m)2{x1,…,xm}m(2C−1m)2<2mk一个。新是米' = 2 米和Ñ ' = ñ + (2 c ^ - 1米)2 ≥ (ç - 1米' )2。m,nm′=2mn′=n+(2C−1m)2≥(C−1m′)2


m=nO(1)m=no(1)poly(n,2m)

11

m=clog⁡nnO(c)k=O(1)O(nk⋅m)NO(N)2N−o(N)时间),从以下意义上讲,这两个时限是我们可以期望的多项式时间的“极限”。

knknk−εk≥2ε>02N(1−ε/2)poly(M)NM 条款。

knmnk−ε⋅f(m)MN2N(1−ε/2)⋅f(M)M=O(N)nk−ε⋅2m/α(m)α(m)

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.