다항식 시간으로 Traveling Salesman Problem에 대한 솔루션을 확인하려면 어떻게해야합니까?


31

따라서 TSP (Travelling salesman problem) 의사 결정 문제는 NP 완료 입니다.

그러나 다항식 시간에서 최적의 솔루션을 찾을 수있는 방법이 없기 때문에 TSP에 대한 주어진 솔루션이 실제로 다항식 시간에서 최적임을 확인할 수있는 방법을 이해하지 못합니다 (P에 문제가 없기 때문에)?

실제로 다항식 시간에 검증을 수행 할 수 있다는 것을 알 수있는 방법이 있습니까?

답변:


20

더 정확하게 말하면 TSP가 P에 있는지 알 수 없습니다 . 아마도 일반적인 관념이 PN P 이지만 다항식 시간으로 풀 수 있습니다 . 이제 문제가 N P- hard 및 N P - complete 라는 것이 무엇을 의미하는지 기억 하십시오 . 예를 들어 내 대답은 여기를 참조 하십시오 . 나는 당신의 혼란의 근원이 다음과 같은 정의에 기인한다고 생각합니다 : N P- hard 문제가 반드시 N P에 있는 것은 아닙니다 .PPNPNPNPNPNP

당신과 당신이 국가를 연결하는 위키 백과 페이지로, 의사 결정 문제가 있다 - 전체 : 비용과 정수 주어진 X ,보다 투어 저렴이 있는지 여부를 결정하는 X . 문제를 보는 한 가지 방법은 N P 이므로 해가 주어지면 다항식 시간에 해가 x 보다 저렴한 지 쉽게 확인할 수 있다는 것을 알 수 있습니다. 어떻게 할 수 있습니까? 주어진 둘러보기를 따라 총 비용을 기록하고 마지막으로 총 비용을 x에 비교하십시오 .NPxxNPxx


"주어진 둘러보기를 따라 총 비용을 기록한 다음 총 비용을 x와 비교하십시오." -> 네, 그러나 확인해야 할 투어 수가 기하 급수적입니다!
Lazer

2
나는 너무 느리게 느꼈다. ;-)
Niel de Beaudrap

3
@Lazer 아니요, 확인해야 할 투어가 정확히 한 곳입니다. 둘러보기가 제공되며 길이를 기록합니다. 보다 작은 경우 yes를 출력 하고 그렇지 않으면 no를 출력하십시오 . x
Juho

"투어가 있는지를 결정하십시오"라는 것은 우리에게 투어가 제공되지 않았 음을 의미합니다. 내가 무엇을 놓치고 있습니까?
Lazer

3
@Lazer 아니오, 문제에서 가중치 그래프와 목표 비용이 제공됩니다. 증명서는 여행입니다. 다른 설명은 Niel의 답변을 참조하십시오. SUBSET-SUM의 경우 Wiki의 예에서와 같이 0이 제공되지 않지만 대신 특정 하위 집합이 인증서로 제공됩니다.
Juho

34

요점은 결정 문제 를 고려해야 한다는 것 입니다.

영업 사원 문제 (결정 버전). 가중 그래프 G 와 목표 원가 C 가 주어지면 무게 가 최대 C 인 해밀턴 사이클이 G에 있습니까?

'예'인스턴스의 경우 인증서는 무게가 최대 C 인 해밀턴 사이클입니다 . 이 문제를 효율적으로 해결할 수 있다면 전체 네트워크의 가중치부터 시작하여 이진 검색을 통해 최소 여행 비용을 찾을 수 있습니다.


3

TSP에 대한 특정 솔루션이 최상의 솔루션 인지 여부를 판별하는 데 문제가있을 수 있습니다 . 그러나 이에 대한 알려진 다항식 솔루션이 없으므로이 문제는 NP-hard에 있지만 반드시 NP-Complete 일 필요는 없습니다.

TSP 결정 문제 는 실제로 그래프에서 솔루션의 가중치를 결정하는 것입니다.G 가 최대 비용C (Niel의 답변에 더 잘 설명되어 있음). 다항식 시간으로 확실히 확인할 수 있습니다.


5
pedantry는 유감이지만 투어 가 있기 때문에 TSP는 NP-hard가 아닙니다 . 예를 들어 n 이 있지만 정렬은 P입니다 ! 가능한 순열도 마찬가지입니다. 거대하거나 빠르게 성장하는 검색 공간이 항상 경도를 의미하는 것은 아닙니다. O(n!)n!
Juho

@Juho 단순히 을 확인하여 시퀀스가 ​​정렬되었는지 확인할 수 있습니다 . . . . 그러나 무언가가 TSP에 가장 적합한 솔루션임을 알기 위해서는 비용이 최소 비용이라는 것을 알아야합니다. 이는 본질적으로 다른 모든 비용을 알아야합니다. n0<=n1<=...
Casey Kuball

4
아니요, 다른 모든 투어의 길이를 계산하지 않아도 최적의 결과를 얻을 수 있습니다. 그리고 네, 이것이 다른 모든 투어를 계산하지 않고도 실제로 최적임을 증명할 수 있습니다. 예를 들어 branch & bound를 고려하십시오.
Juho

7
내가 말하는 것은 거대한 검색 공간이 반드시 문제가 어렵다는 것을 의미하지는 않습니다. 예를 들어 모든 가능성을 열거하는 무차별 대입보다 더 나은 알고리즘을 모른다고해서 이것이 유일한 알고리즘이라는 의미는 아닙니다. 동적 프로그래밍은 여기에서도 좋은 예입니다. Held-Karp 알고리즘은 시간에 실행되는 TSP에 대한 정확한 알고리즘입니다 . 죄송합니다, 이것은 nitpicking 일 것입니다.하지만 알림을 추가하고 싶었습니다. :O(n22n)
Juho

@ 주호 좋은 지적. 나는 더 이상 무차별 힘을 유일한 옵션으로 표시하지 않도록 답을 업데이트했습니다 (다항식 솔루션이없는 경우에만).
Casey Kuball

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