DW의 답변에 하나의 작은 것을 추가 할 것입니다.
나는 단항 Knapsack이 P에 있기 때문에 최고의 알고리즘이 기하 급수적 인 Knapsack 대신 사용할 수 있다고 생각하는 사람들을 보았습니다.
입력 값을 및 k로 하고 배낭 및 단항 배낭에 대한 동적 프로그래밍 알고리즘을 고려하십시오. 둘 다의 실행 시간은 O ( n k ) 입니다. 같은 실행 시간입니다. 즉, 입력이있는 경우 단항 배낭에 동적 프로그래밍을 사용하거나 배낭에 동적 프로그래밍을 사용하더라도 중요하지 않습니다. 둘 다 문제 인스턴스를 해결하는 데 거의 같은 시간이 걸립니다. 이론적으로 어느 곳을 사용하든 다른 하나를 사용할 수 있습니다. 단항에서 이진수로 또는 그 반대로 숫자를 변환하면됩니다.W={w1,…,wn}kO(nk)
그렇다면 입력의 크기에 따라 알고리즘의 복잡성을 정의하는 요점은 무엇입니까? 왜 항상 같은 매개 변수의 관점에서이를 명시 ?O(nk)
고립 된 문제에 관심이 있다면 그렇게 할 수 있습니다. 실제로는 알고리즘을 사용하는 사람들이 자주하는 일입니다. 그래프 알고리즘의 복잡성은 종종 코딩하는 문자열의 크기가 아니라 수 꼭지점과 가장자리 수로 표현됩니다.
그러나 이것은 우리가 고립 된 문제를 다룰 때입니다. 서로 다른 종류의 입력 문제를 처리 할 때는 유용하지 않습니다. 그래프의 경우 정점 수와 가장자리 수에 따른 실행 시간에 대해 이야기 할 수 있습니다. 배낭의 경우 항목 수와 배낭 크기에 대해 이야기 할 수 있습니다. 그러나 둘 다에 대해 이야기하고 싶다면 어떻게해야합니까? 예를 들어 문제 사이의 축소를 원하거나 그래프를 입력으로 사용하는 것이 아니라 임의의 문제를 포함하는 문제 클래스에 대해 논의 할 때. 우리는 보편적 인 입력 매개 변수가 필요합니다. 일반적으로 입력은 단지 문자열 일뿐입니다. 기호를 단항, 이진수, 그래프 등으로 해석하는 것은 우리입니다. 알고리즘의 복잡성과 문제에 대한 일반적인 이론을 개발하려면 일반적인 입력 매개 변수가 필요합니다. 입력의 크기는 분명한 선택이며, 그 위에 합리적인 이론을 세울 수있을 정도로 견고합니다. 유일한 가능성은 아닙니다. 인공적인 것을 위해 우리는 를 입력 크기로. 잘 작동합니다.2
이제 크기를 범용 입력 매개 변수로 사용하기로 결정하고 문자열의 관점에서 객체 인코딩에 대해 생각하도록합니다. 그것들을 인코딩하는 다양한 방법이 있으며 크기가 다를 수 있습니다. 일반적인 알고리즘 이론의 관점에서, 입력 숫자를 단항 또는 이진수로 인코딩할지 여부는 중요합니다. 단항을 사용하고 의 크기 가 100 인 경우 가장 큰 숫자는 100 입니다. 우리는 바이너리를 사용하는 경우 K를 같은 대형으로 할 수있다 2 (100) - 1 . 우리가 k 크기가 배낭 문제를 해결하는 실행 시간에 대해 이야기 할 때k100100k2100−1k어디 한 경우에 우리는 입력에 대한 관심 : 우리가 두 개의 매우 다른 상황을 얻는 100 큰으로 할 수 있습니다 입력에 대한 다른 우리 관리에서 최대 100 인 이 100 - (1) .k2100−1
다항식 시간으로 SAT를 배낭으로 줄일 수 있는지 알고 싶습니다. SAT의 입력 공식의 크기가 합니다. 그런 다음 n에 크기 다항식이있는 배낭에 대한 입력 만 만들 수 있습니다 . p ( n ) 이 내가 만든 배낭의 입력 크기 라고 가정 해 봅시다 . 단항을 사용하면 k 는 최대 p ( n )이 될 수 있습니다 . I 이진 사용하는 경우에는 I 넣을 수 K를 가능하게 컸다 (2) P ( N ) - 1 . k 를 넣어야한다는 것이 밝혀졌습니다nnp(n)kp(n)k2p ( n )− 1케이SAT를 배낭으로 줄일 수있을 정도로 상당히 큽니다. 따라서 단항 배낭은 SAT를 줄이기 위해 작동하지 않습니다. 그러나 이진 배낭은 작동합니다.
바이너리를 사용하면 가 더 큰 배낭 인스턴스를 만들 수 있습니다 .케이
이것을 생각하는 또 다른 방법 : 단항 배낭을 해결하는 블랙 박스와 배낭을 해결하는 블랙 박스가 있다고 가정하십시오. 블랙 박스에 비트 입력 을 쓸 시간이 있다고 가정합니다 . 블랙 박스 중 어느 것이 더 강력합니까? 분명히 이진 인코딩을 사용하는 것입니다. 우리는 기하 급수적으로 더 큰이 배낭 문제를 해결하는 데 사용할 수 있습니다 K 단항 배낭 블랙 박스가 해결할 수있는 문제를 비교합니다.엔케이