세트 커버 서브 케이스의 경도


10

요소의 수가 일부 함수 (예 : )에 의해 제한되는 경우 Set Cover 문제는 얼마나 어려운가? 여기서 n 은 문제 인스턴스의 크기입니다. 공식적으로log⁡nn

하자 와 F가 = { S 1 , ⋯ , S , N은 } S I ⊆ U 및 m = O ( 로그 N ) . 다음 문제를 결정하는 것이 얼마나 어려운가요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 의 모든 하위 집합을 열거 함 ). 따라서,이 문제는 NP-단단하지 않은 경우 m = O ( 로그 N ) ETH 더 시간의 알고리즘이 없다는 것을 의미 때문에 O ( 2 N O ( 1 ) ) 모든 NP-어려운 문제는 (여기서 N 의 크기이다 NP- 하드 문제).O(nm)mFm=O(log⁡n)O(2no(1))n


2
시간에 문제를 결정하는 더 나은 알고리즘이 있습니다 (보다 정확하게는 m 의 Bell 번호 ) : 요소의 각 파티션을 서브 세트로 나누려면 각 서브 세트를 포함하는 입력 세트가 있는지 테스트하십시오. 따라서 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

답변:


11

때 , 당신은 다항식 시간에 최적를 찾기 위해 동적 프로그래밍을 사용할 수 있습니다. 테이블은 부울 값 세포 포함 T의 ℓ , X 각각 ℓ ∈ { 0 , ... , K } 및 X ⊆ U가 존재하는지 여부를 나타내는 ℓ에서 의 요소 커버 세트 X는 .m=O(log⁡n)Tℓ,Xℓ∈{0,…,k}X⊆UℓX

m = O 일 때 ( √,m≤C √m=O(n) , 문제는 NP-hard로 남아 있습니다. SET-COVER의 인스턴스가 주어진 경우,{x1,…,x를포함하여 비어 있지 않은 새로운 요소의 서브 세트로 구성된m 개의새로운 요소x1,…,xm및(2C - 1 m)2 개의새로운 세트를 추가하십시오.m}(m이 충분히 클 경우(2C - 1 m)2<2m). k를증가 시키십시오m≤Cnmx1,…,xm(2C−1m)2{x1,…,xm}m(2C−1m)2<2mk하나씩. 새로운 은 m ' = 2 m 이고 n ' = n + ( 2 C - 1 m ) 2 ≥ ( C - 1 m ' ) 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)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.