다음과 같은 문제를 생각해보십시오. Q : 정수 과 k 간격 [ l i , r i ] 에 1 ≤ l i ≤ r i ≤ 2 n 이 주어집니다 . 또한 2 n 정수 d 1 , … , d 2 n ≥ 0이 부여 됩니다. 이 작업은 최소 간격 수를 선택하는 것입니다 [ l i , r i ]이러한 모든 것을위한 , 적어도 차원 I의 정수 함유 간격 내가 선택됩니다.
가 다항식 시간으로 풀 수 있음 을 알기 어렵지 않습니다 (아래 참조).
이제 다음과 같이 약간 수정 된 문제 고려하십시오. 문제 의 입력은 이전과 동일합니다. 그러나,이 작업은 현재 간격의 최소 수를 선택하는 이러한 모든 위해 이러한 , 적어도 (D) (2) I - 1 개 정수 함유 간격 2 I - 1 또는 적어도 (D) (2 개) 나 정수를 포함하는 간격 2 i 가 선택되었습니다 (“또는”으로 일반적인 논리 또는를 의미합니다).
내 질문 : 는 다항식 시간에 풀 수 있습니까 ?
효율적 으로 해결하는 두 가지 방법이 있습니다.
간단한 탐욕스러운 알고리즘 : 왼쪽에서 오른쪽으로 간격을 스윕하고 숫자 충족시키기 위해 필요한만큼만 간격을 선택하십시오 . 다른 간격 사이에서 선택이있을 때마다 최대 오른쪽 끝점을 가진 간격을 선택하십시오.
정수 프로그램 : 각 간격 대해 간격이 선택되면 x i = 1 인 결정 변수 x i ∈ { 0 , 1 } 을 도입합니다 . 목표는 제약 조건에 따라 x 1 + … + x k 를 최소화하는 것입니다. ∑ j : i ∈ [ l j , r j ] x j ≥ d i. 이 정수 프로그램의 제약 매트릭스는 연속적인 속성을 가지므로이 프로그램의 선형 프로그래밍 완화는 정수 최적 솔루션을 갖습니다.
힌트와 참조에 감사드립니다!