쓰레기통을 최소한의 움직임으로 채우는 것은 NP-hard입니까?


33

있다 쓰레기통과 공의 유형. 번째 빈 라벨 갖는다 에 대해 ,이 타입의 볼의 예상 번호 .nmiai,j1jmj

유형의 볼로 시작 합니다. 유형의 각 볼 은 가중치 를 가지며 bin 가 가중치 볼을 빈에 . 이전 상태를 유지하는 볼의 분포를 실현 가능한 솔루션이라고합니다.bjjjwjici

bin 유형의 공이 있는 실행 가능한 솔루션을 고려 하면 비용은. 우리는 가능한 최소 비용의 솔루션을 찾고 싶습니다.xi,jjii=1nj=1m|ai,jxi,j|

에 제한이 없다면이 문제는 분명히 NP-hard 입니다. 부분합 합 문제는 실현 가능한 솔루션의 존재로 줄어 듭니다.{wj}

그러나 가 모든 대해 을 나누는 조건을 추가하면 부분 집합 합계 축소가 더 이상 작동하지 않으므로 결과 문제가 NP-hard로 유지되는지 확실하지 않습니다. 실행 가능한 솔루션의 존재를 확인하는 데 시간 이 걸리지 만 질문 끝에 첨부) 최소 비용의 실행 가능한 솔루션은 아닙니다.wjwj+1jO(nm)

문제는 동등한 정수 프로그램 공식을 가지고 있습니다. 감안 대 : ai,j,ci,bj,wj1in,1jm

Minimize:i=1nj=1m|ai,jxi,j|subject to:j=1mxi,jwj=ci for all 1ini=1nxi,jbj for all 1jmxi,j0 for all 1in,1jm

내 질문은

가 모든 대해 을 나눌 때 위의 정수 프로그램은 NP-hard 입니까?wjwj+1j

시간에 실행 가능한 솔루션이 있는지 판별하는 알고리즘O(nm) :

정의 및 d_j W_ {= J + 1} / w_j를 . 하자 \ % B가 때 remainer 수 A를 로 나눈 B .wm+1=wm(maxjcj+1)dj=wj+1/wj % B Ba%bab

  1. 이 존재하는 경우 ci 로 나누어 아니다 w1 , 반환 "아니오 가능한 솔루션을". (불변의 ci 나누기 wj 는 항상 다음 루프에서 유지됩니다)
  2. j 에서 1m :

    1. ki=1n(ci/wj)%dj . (최소 볼의 무게wj 필요)
    2. bj<k 인 경우 "가능한 해결책 없음"을 리턴하십시오.
    3. cici((ci/wj)%dj)모든 대해 . (무게의 필요한 볼의 최소 개수 )iwj
    4. bj+1(bjk)/dj . (작은 공을 큰 공으로 그룹화)
  3. "가능한 해결책이있다"를 반환한다.

이고 가 s 인 특수한 경우에 대한 다항식 시간 솔루션n=1wj2

이고 모든 가 거듭 제곱 이면이 특별한 경우를 다항식 시간으로 해결할 수 있다는 것이 알려져 있습니다. n=1wj2

Minimize:j=1m|ajxj|subject to:j=1mwjxj=c0xjbj for all 1jm

이 솔루션은 Yuzhou Gu 에 의해 암시되었으며 여기 에서 글을 볼 수 있습니다 .

답변:


0

일부 배경. 위의 문제는 제한이있는 배낭 문제입니다. 제약이 있거나없는 가장 효율적인 배낭 문제 해결 방법은 의사 다항식 시간 (여전히 NP-Hard)으로 해결할 수 있습니다. 변형에 대해서는 https://en.wikipedia.org/wiki/Knapsack_problem#Definition을 참조 하십시오 . 이 변형의 첫 번째 제한은 배낭 (통)에 넣을 품목 (볼)의 값이 중요하지 않다는 것입니다. 그러면 문제는 배낭에 물건을 넣는 데 걸리는 시간으로 제한됩니다. 원래 문제는 가장 가치있는 품목을 가능한 한 짧은 시간 안에 배치해야합니다. 이 버전의 또 다른 제한은 가중치와 다른 모든 인수가 정수라는 것입니다. 그리고 관심의 제한은 가중치wj모든 대해 을 나눕니다 . 참고 : 배낭 백팩 문제는 다항식 시간으로 해결할 수 있지만 원래 문제에 대한 가장 실용적인 해결책은 제시하지 않습니다. 이 문제는 균등하게 분할되는 정수를 사용합니다 (합리적 솔루션 없음). 아마도 참조 배낭 문제로 큰 문제가 무엇입니까? . 일본wj+1j

주된 질문은 아마도 "이 문제는 여전히 대응하는 다항식에 의해 바운드 될 문제가 NP-Hard 입니까? 가 바인드 되면 P에 있고 가 반드시 나눌 필요가없는 경우 NP- 하드 i w j w j w j + 1 w j w j + 1 w j j w jwjiwjwjwj+1균등하게 (가중은 단순히 임의 임), 모든 제한은이 문제의 복잡성을이 두 조건으로 제한합니다. 이러한 조건 (1. 항목-값 제한이없는 무작위 가중치 배낭 문제와 2. 항목-값 제한이없는 분할 가능한 무게 배낭 문제)은 가중치의 몫이 무작위 일 수 있기 때문에 복잡성을 줄이는 측면에서 서로 부정합니다 ( 특히 제한이없는 경우) 따라서 지수 시간 계산을 수행합니다 (이는 아래 예에 표시됨). 또한 때문에 분할 , 각 지수 대형화wjwj+1wjj. 이는 임의 가중치 항목 (단위 가중치가 모두 100 또는 50 이하 또는 10 미만의 단위 가중치로 제한 될 수있는 볼)을 사용하는 대신 시간 복잡성이 의 자릿수에 따라 달라 지기 때문입니다. 시험 분할, 지수입니다.wj

그래서 네, 위의 정수 프로그램은 NP-하드 남아있는 경우에도 분할 모든 . w J + 1 일본wjwj+1j 그리고 이것은 쉽게 관찰됩니다.

실시 예 1 : 하게및두 자승. 상수가 2이므로 전체 문제가 2 차 시간에 해결됩니다 (예에서 알 수 있듯이). 가중치는 임의적이지 않으므로 계산이 효율적으로 해결됩니다.w Pn=1wp

실시 예 2 : 하자로 정의 될,대응 소수 인,되도록입니다. 이는가 모든대해을나누적용 가능합니다. 우리는 각각의가까지의 모든 소수의 곱을얻습니다. 단위 중량의 값은합니다. 바운드가 있으므로 (~ w J * P의 P의 j 개의 P = 2 , J = 1 : P = 3 , J = 2 , P = 5 , J = 3 , P = 7 , J = 4 , . . . , P , J w J w J + 1 J w j 개의 J 1 ,wj+1wjppjp=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,P,Jwjwj+1jwjj1,2,6,30,210,2310,30030,...pjjlog(j)몫이 모두 소수이므로 NP-Intermediate의 복잡성을 얻게됩니다.

실시 예 3 : 하자로 정의 될,대응 무한대 두에서 임의로 선택된 소수이다. 는모든대해을나누문제에 적용 할 수있습니다. 우리는와 같이 처음 5 몫을 얻습니다 (임의로 2에서 무한대로 떨어짐). 우리는 5 번째 공에서도 무게가 11 자리임을 알 수 있습니다. 다행히도 5 번째 몫은 2 개이며이상인소수는 아닙니다. wj+1wjRpRpjwjwj+1j101,2657,7,3169,210100

위의 예제 3은 가 해당하는 다항식에 의해 제한되지 않는 경우 (임의 가중치) 입니다. 시간 복잡성은 기하 급수적으로 NP-Hard입니다. 일부 관점에서는 모든 가중치를 합산하고 적합한 지 확인하십시오. 그러나 각 하위 집합을 시도하여 작동하는지 확인하는 것보다 가중치를 나눌 수있게하여 훨씬 빠르게 해결할 수있는 솔루션은 없습니다. 수십 개의 공이 있더라도 여전히 수조의 서브셋 또는 수조의 영역으로 들어가고 있습니다.wji


1
그러나 소인수 분해는 NP-hard가 아닌 것으로 간주됩니다. NP- 중간 것으로 간주됩니다.
rus9384

2
나는 여기에 축소가 보이지 않습니다. 실제 감축은 무엇입니까? 소수 분해를 입력하고 정수 프로그램의 솔루션을 사용하여 분해를 출력했습니다.
Chao Xu

2
"위의 정수 프로그램은 NP-hard"입니까? 개별 프로그램은 NP-hard 일 수 없습니다.
Yuval Filmus

1
실제로 소인수 분해는 있습니다. 따라서 경우 -hard 입니다. NPcoNPNPNP=coNP
rus9384

2
불행히도 추가 편집 내용은 지워지지 않았습니다. 실제 축소가 도움이 될 것입니다.
Chao Xu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.