최소 누적 설정 합계


17

이 문제점을 고려하십시오. 유한 세트 목록이 을 최소화 하는 순서 를 .| s 1 | + | s 1s 2 | + | s 1s 2s 3 | + s1,s2,s3,|s1|+|s1s2|+|s1s2s3|+

알려진 알고리즘이 있습니까? 복잡성은 무엇입니까? 나는 효율적인 최적의 알고리즘을 아직 생각할 수 없었지만 NP-Hard에서도 분명하지 않습니다.


1
욕심 많은 알고리즘 으로이 문제를 해결하려고 시도하는 모든 확실한 후보 방법을 사용해 보았습니까? (홀수는 그들 중 어느 것도 작동하지 않지만 점검 할 가치가 있습니다. 일반적으로 당신이 염두에 둔 각 탐욕스러운 욕심 알고리즘에 대해, 그것이 효과가 없다면, 그것을 증명하는 반례를 찾기가 쉽습니다.)
DW

나는 탐욕스러운 알고리즘이 n 3에서 작동하지 않는다는 것을 이미 증명했다. 반례 : A = {0, 1} B = C = {2,3,4}. 최적의 솔루션은 B, C, 비용 (11)와 A는, 욕심이 알고리즘은 A, B, C 비용 (12)와 함께 제공 지금까지 내가 가지고 올 한 최고의 비율 근사 알고리즘 N + 2 , 이것은 꽤 나쁘다. n+23
안티몬

거기에서의 - 시간 동적 프로그램, 여기서 n은 세트 수이다. O(2npoly(n))n

1
아마도 이것은 cstheory에 더 적합 할 것입니다.
유발 Filmus

5
누구나 특별한 경우를 해결할 수 있습니까 ? |si|=2
domotorp December

답변:


6

이 문제는 실제로 스케줄링 문제와 관련이 있습니다. "가중 완료 시간을 최소화하기위한 우선 순위 제한 스케줄링". 문제는 다음과 같습니다. 각 작업에 처리 시간 (p)과 가중치 (w)가 있고 작업에 우선 순위 그래프가 정의되어있는 작업 세트가 제공됩니다. 목표는 우선 순위 제한 조건이 안정화되고 가중 완료 시간의 합계가 최소화되도록 단일 시스템 (비 선점)에서 작업을 스케줄하는 것입니다. 문제는 NP-hard이며 2 근사치가 알려져 있습니다.

최소 누적 합계 문제에서 우선 순위 제한 스케줄링 문제로 감소 : 각 요소에 대해 p = 1, w = 0으로 작업을 작성하십시오. 또한 각 세트에 대해 p = 0, w = 1로 작업을 작성하십시오. 우선 순위 그래프를 작성하십시오. 요소 이면 eS 보다 먼저 예약되어야합니다 . 스케줄링 문제 의이 특별한 경우도 NP-hard라고 생각합니다.eSeS

다음 링크를 참조하십시오

1) http://www.win.tue.nl/~gwoegi/papers/precsum.pdf

2) http://web.engr.illinois.edu/~chekuri/papers/dam_sched.ps


또한 일정 문제의 개선 된 범위, 특수 사례 및 경도 결과에 대해서는 다음 용지를 권장합니다. people.idsia.ch/~monaldo/papers/MOR-schedprec-11.pdf . Bansal 및 Khot win.tue.nl/~nikhil/pubs/focs-09-version.pdf 의 독특한 게임 변형에서 2- \ epsilon 경도에 관한 논문을 참조하십시오 .
Chandra Chekuri

누적 합계 문제가 NP Hard임을 증명하기 위해 축소가 다른 방향으로 진행되지 않습니까?
안티몬

신경 쓰지 마라, 나는 감소가 어떻게 양방향으로 진행되는지 봅니다.
안티몬

1

Shalmoli Gupta는 이미 일반적인 문제가 NP-Hard라고 설명 했으므로 특수 사례가 다항식으로 풀 수 있는지 조사하기로 결정했습니다. 결국, 나는 트리를 나타내는 특별한 세트의 경우에 대한 해결책, 또는 더 일반적으로 비교할 수없는 모든 세트가 분리 된 서브 세트 포함으로 일련의 병렬 순서에 대한 해결책을 찾았습니다.

더 쉽게 만드는 한 가지 속성은 집합 목록이 교차로 닫혀있는 경우입니다. 경우 , 다음이 최적의 순서가있는 s의 1은 이전 온다 이야 2 . WLOG는 최적의 순서가 부분 집합 포함에 의해 주어진 부분 순서의 선형 확장이라고 가정 할 수 있습니다.s1s2s1s2

세트의 모든 서브 세트가 순서대로 표시되기 때문에, 이는 주어진 세트에 의해 누계에 추가되는 양이 표시되는 위치에 관계없이 고정됨을 의미합니다. 경우 집합의리스트는 다음 세트의 증분 비용에 나타나는 임의의 서브 세트에 있지 않은 S의 요소 수 인 S는 . S 에서 동일한 세트가 여러 번 나타나는 경우 임의로 하나를 선택하고 다른 하나는 비용이 0이되도록 할 수 있습니다.SSS

이는 문제가 우선 순위 제약 조건이있는 단일 머신 스케줄링에서 최소 가중치 완료 시간 문제와 동일 함을 의미합니다. 이 문제에서 가중치 작업 세트가 지정 와 시간 t J , 그리고 작업에 대한 부분 위해 P를 , 우리는 가중 총 완료 시간을 최소화하는 작업의 순서, 즉 찾고자wjtjP

i=1nwji(k=1itjk)

우선 순위 제약 조건 . 교차 폐쇄 세트에 대한 최소 누적 세트 문제는 각 세트에 대한 작업을 작성하여이 작업으로 전환 할 수 있습니다. 여기서 모든 작업에는 가중치 1, 시간이 위에 정의 된 증분 비용과 같고 P 는 서브 세트 포함으로 주어진 순서입니다.PP

결과적 으로이 문제는 일반 NP-Hard입니다 . 그러나 특정 특수 형태의 P 는 다항식 시간으로 풀 수 있습니다.PP

이 논문 은 직렬 병렬 차수 P (중요한 나무의 경우도 포함)의 경우에 대한 알고리즘을 제공합니다 . 불행히도, 나는 그 논문에 접근 할 수 없었기 때문에 독립적으로 재발 명하기로 결정했다. 여기에 내가 생각해 낸 것이 있습니다.O(nlogn)P

이 문제를 해결하려면 몇 가지 관찰이 필요합니다.

첫째는, 어떤 선행 제약 조건이없는 상태에서, 최적의 솔루션은 증가하는 순서 단순히 종류의 작업에이다 . 간단하게하기 위해 이것을 약어v(j)로하는 작업의 값이라고합니다. 정렬이O(nlogn)이므로이 복잡성보다 더 나은 작업을 수행 할 수 없습니다.tjwjv(j)O(nlogn)

규칙 1 하자 하고 , B는 같은 것을 채용 할 < B P 및 B 커버. 경우 V ( ) < V ( B ) , 우리는 제약 조건을 삭제할 수 있습니다 < B를 최적의 순서 또는 목표 값에 영향을주지 않고.aba<bPv(a)<v(b)a<b

가정하자 전에 나타나는 완화 문제의 최적의 순서이다. b가 원래를 다루었으므로 새로운 순서에서 b와 a 사이의 모든 작업은 a와 b와 비교할 수 없습니다. 그러나 b가 a보다 높은 값을 가지므로 b와 a를 모순으로 바꿔 목표 값을 줄일 수 있습니다.ba

마찬가지로 값을 기준으로 정렬 한 후 원래 (단순화 된) 문제의 우선 순위 관계를 참조하여 관계를 끊는 경우 제약 조건을 제거 할 수 있습니다 . 이렇게하면 완화 된 문제에 대해 찾은 최적의 솔루션이 원래 문제에 대한 최적의 솔루션이기도합니다.v(a)=v(b)

따라서 b가 a와 포함 할 때마다 제약 조건 a < b를 삭제하여 문제를 단순화 할 수 있습니다 .v(a)v(b)a<b

규칙 2 최적의 솔루션에서 b 바로 뒤에 b가 뒤따른다는 것을 알고 있다고 가정하십시오. 우리는 a와 b를 t c = t a + t b 와 함께 새 노드 c에 병합 할 수 있으며, poset P를 적절히 축소 할 수 있습니다.wc=wa+wbtc=ta+tbP

새로운 문제의 최적 목표 값은 원래 목표 값 (특히 )과 상수가 다르지만이 상수는 순서에 의존하지 않으므로 최적 순서에 영향을 미치지 않습니다. 우리는 새로운 문제에 대한 최적의 솔루션을 복용하고 대체하여 이전 문제에 대한 최적의 솔루션을 복구 할 수 있습니다 C를 함께 B .watbcab

3 규칙 문제 인스턴스에 대한 최적의 솔루션에 있다고 가정 바로 앞에 온다 BV ( ) > V ( B ) . 이제 우리는 원본과 직렬 또는 병렬 구성으로 형성된 새로운 poset으로 새로운 작업을 추가하여 더 큰 문제 인스턴스를 생성한다고 가정하십시오. ab 바로 앞에 오는 더 큰 문제에 대한 최적의 솔루션이 항상 있습니다 .abv(a)>v(b)ab

그렇지 않다고 가정하십시오. 최적 해에 . 이후 P는 일련의 평행 한 조성물로 형성하고, 우리는 모두 알고 X 들에 비교할 수있다 및 B . 규칙 2를 사용하여 모든 x i 노드를 새 노드 x '에 병합하십시오 . 이제 v ( x ' )를 고려하십시오 . 만약 V ( X ' ) V ( ) 다음 우리가 할 수 스왑a,x1,x2,,bPxiabxixv(x)v(x)v(a) 및없이 증가 목표치. 마찬가지로 v ( x ' ) v ( b ) 인 경우 x ' b를 바꿀 수 있습니다. 따라서 v ( a ) < v ( x ' ) < v ( b ) 입니다. 그러나 v ( a ) > v ( b ) 는 모순입니다.xav(x)v(b)xbv(a)<v(x)<v(b)v(a)>v(b)

규칙 2와 규칙 3을 사용하면 이미 단순하지만 차선책 인 알고리즘을 얻을 수 있습니다 . 이후 P는 일련의 평행 한 순서이며, 입력이 트리 표현을 포함한다고 가정 P 각 노드가 직렬 또는 병렬 조성물 조성물이고, 잎은 개별 작업이다. 각 하위 문제에 대한 최적의 솔루션이 증가하는 가치 순서의 체인이라는 불변성을 유지함으로써 트리의 사전 순서 순회가있는 최적의 솔루션을 찾을 수 있습니다.O(n2)PP

가 포셋 P 1P 2 가있는 하위 문제의 연속 구성 이라고 가정 합니다. 최적의 솔루션을 C 1C 2 로 주문하십시오 . P에 대한 최적의 해결책 은 분명히 이러한 사슬의 연결입니다. 그러나, 최초의 작업을하는 것이 가능 C 2 의 마지막 작업보다 낮은 값을 갖는 C 1 . 솔루션이 정렬 된 체인이라는 불변성을 유지하기 위해 규칙 3 + 규칙 2를 사용하여 엔드 포인트가 정렬되지 않은 한 엔드 포인트를 병합합니다.PP1P2C1C2PC2C1

경우 병렬 구성 대신에, 우리는 간단하게 정렬 된 체인이 걸릴 S 1S 2 와 새로운 정렬 사슬로 병합합니다. 불변으로 인해 유효합니다.PS1S2

불행하게도,이 알고리즘은 입니다. O ( n l o g n ) 알고리즘 을 얻으려면 규칙 1을 사용하여 느리게 체인을 계산해야합니다.O(n2)O(nlogn)

특히 하위 문제에 우선 순위 제약 조건이 값의 순서와 동일한 노드 만 포함 된 경우 우선 순위 제약 조건을 완전히 잊고 값만 볼 수 있습니다. 이는 솔루션이 이전 알고리즘에서 체인으로 정렬되도록하는 동일한 불변에 의해 보장됩니다.

각 하위 문제에 대해 정렬 된 체인을 계산하는 대신 하위 문제에 대한 모든 작업을 포함하는 한 쌍의 피보나치 힙, 하나의 최소 힙 및 하나의 최대 힙으로 하위 문제에 대한 최적의 솔루션을 나타냅니다. 즉, 로그 시간에 솔루션의 최소 또는 최대 요소를 표시 할 수 있습니다.

이전과 마찬가지로 사전 주문 순회를 수행합니다. 어디 일련의 구성입니다, 우리는 첫 번째 힙 쌍의 두 번째 힙 쌍의 최소 작업의 최대 작업을 검사합니다. 값이 잘못된 경우 규칙 2와 3을 사용하여 값을 팝하고 병합합니다. 그런 다음 새로 작성된 작업을 새 엔드 포인트와 비교하고 순서가 잘못된 한 계속 팝 및 병합합니다. 엔드 포인트가 더 이상 비 순차 값을 가지지 않으면 규칙 1로 인해 시리즈 우선 순위 제한을 안전하게 잊을 수 있습니다. 그런 다음 새로 작성된 작업이 있으면 힙으로 푸시 한 다음 힙을 병합하여 솔루션을 나타내는 힙 쌍을 작성하십시오. 에 P 자체.PP

병렬 컴포지션의 경우 단순히 힙 쌍을 병합합니다. 새로운 최소 힙은 각 하위 문제점의 최소 힙과 최대 힙의 병합입니다. 피보나치 힙은 일정한 시간에 병합 할 수 있습니다.

전체 문제에 대한 솔루션을 나타내는 힙 쌍이 있으면 최소 힙이 비어있을 때까지 팝하여 실제 솔루션 순서를 찾을 수 있습니다. 그런 다음 모든 문제 2 대체를 실행 취소하여 원래 문제에 대한 해결책을 얻습니다.

힙에서 튀어 나온 각 작업은 즉시 새 작업으로 병합되어 총 작업 수를 줄이거 나 끝에서 정확히 한 번 튀어 나옵니다. 따라서 대부분의 선형 팝 힙 수가 있으므로 시간이 길어집니다. 다른 작업은 노드 또는 작업마다 일정한 시간이므로 전체적으로 선형입니다.O(nlogn)

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