일부 배경. 위의 문제는 제한이있는 배낭 문제입니다. 제약이 있거나없는 가장 효율적인 배낭 문제 해결 방법은 의사 다항식 시간 (여전히 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+1wj∗ppjp=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+1wj∗RpRpjwjwj+1j101,2657,7,3169,210100
위의 예제 3은 가 해당하는 다항식에 의해 제한되지 않는 경우 (임의 가중치) 입니다. 시간 복잡성은 기하 급수적으로 NP-Hard입니다. 일부 관점에서는 모든 가중치를 합산하고 적합한 지 확인하십시오. 그러나 각 하위 집합을 시도하여 작동하는지 확인하는 것보다 가중치를 나눌 수있게하여 훨씬 빠르게 해결할 수있는 솔루션은 없습니다. 수십 개의 공이 있더라도 여전히 수조의 서브셋 또는 수조의 영역으로 들어가고 있습니다.wji