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


10

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

하자 F가 = { S 1 , , S , N은 } S IUm = O ( 로그 N ) . 다음 문제를 결정하는 것이 얼마나 어려운가요U={e1,,em}F={S1,,Sn}SiUm=O(logn)

SET-COVER'={<U,F,k>: there exists at most k subsets  Si1,,SikF 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(logn)O(2no(1))n


2
시간에 문제를 결정하는 더 나은 알고리즘이 있습니다 (보다 정확하게는 m 의 Bell 번호 ) : 요소의 각 파티션을 서브 세트로 나누려면 각 서브 세트를 포함하는 입력 세트가 있는지 테스트하십시오. 따라서 m = O ( log n / log log n )의 경우 다항식 시간으로 문제를 해결할 수 있습니다. 그래도 m = O ( log n ) 에 대한 귀하의 질문에 대답하지는 않습니다 . mO(m)mm=O(logn/loglogn)m=O(logn)
David Eppstein

답변:


11

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

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


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

11

m=clognnO(c)k=O(1)O(nkm)NO(N)2No(N)이 두 시한은 다음과 같은 의미에서 다항식 시간으로 예상 할 수있는 "한계"입니다.

knknkεk2ε>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.