P의 어떤 문제에서 결과를 찾는 것보다 결과를 확인하는 것이 더 쉬운가?


52

NP- 완전 문제 의 (검색 버전)의 경우, 다항식 시간에 검증을 수행 할 수 있고 증인을 찾는 데 기하 급수적으로 시간이 걸리기 때문에 솔루션을 검증하는 것이 솔루션을 찾는 것보다 훨씬 쉽습니다.

그러나 P 에서는 다항식 시간에 솔루션을 찾을 수도 있으므로 솔루션을 찾는 것보다 검증이 더 빠른시기는 분명하지 않습니다. 실제로이 문제와는 다른 문제가 다르게 보인다. 몇 가지 예 :

  1. 3SUM : 입력 번호가 주어지면 그중 3을 0으로 합산하십시오. 내가 아는 한 가장 빠른 알려진 알고리즘은 시간에 실행 되며이 순서는 최적으로 추측됩니다. 다른 한편으로, 솔루션 의 검증 은 훨씬 빠릅니다. 왜냐하면 우리가해야 할 일은 찾은 3 개의 숫자가 실제로 0인지 확인하는 것입니다.O ( n 2 - o ( 1 ) )nO(n2o(1))

  2. 모든 쌍의 최단 경로 : 모서리 가중치가있는 그래프가 제공되면 최단 경로 거리 매트릭스를 계산합니다. 일단 그러한 행렬이 주어지면 다시 계산하는 것보다 정확한 거리 행렬인지 더 빨리 확인할 수 있습니까? 내 생각 엔 그 대답은 아마도 그렇 겠지만 3SUM 보다 분명히 명확하지 않습니다.

  3. 선형 프로그래밍. 청구 된 최적의 솔루션이 제공되면 보조 정보가 제공 될 때 (최적의 이중 솔루션) 다시 계산하는 것보다 검사하기가 더 쉽습니다. 반면, 최초 솔루션 만 사용 가능한 경우 실제로 LP를 해결하는 것보다 더 빨리 확인할 수 있는지 확실하지 않습니다.

질문 : 이 주제에 대해 알려진 것은 무엇입니까? 즉, 솔루션을 찾는 것보다 P 의 문제에 대한 솔루션을 확인하는 것이 언제 더 쉬운 가요?


7
많은 예제가 일부 매개 변수를 수정하면 P에 빠지는 NP- 완전 문제에서 비롯된 것 같습니다. 예를 들어, 그래프 에 고정 대한 크기 의 도가 포함되어 있는지 확인하십시오 . 검증 선형 시간이 걸리지 만 않는다면 P = NP, 탐색 문제 (다항식)의 복잡성에 따라k kkkk
MARZIO 드 BIASI에게

16
정수 목록이 비교로 정렬되어 있는지 확인할 수 있지만 정렬되지 않은 목록을 정렬하려면 비교가 필요합니다. n 1 Θ ( n log n )nn1Θ(nlogn)
토마스

7
의사 결정 문제에 대한 예와 아니오를 모두 쉽게 확인하기를 원하십니까? 3SUM의 경우 일정한 시간에 예 인스턴스를 쉽게 확인할 수 있지만 인스턴스가 없는지 쉽게 확인할 수 있는지 모르겠습니다. 아니면 행렬 곱셈과 같이 부울이 아닌 출력이있는 문제에 대해 더 많이 생각하고 있습니까? (행렬 곱셈은 무작위 알고리즘을 허용하는 경우 당신이 원하는의 예입니다.)
로빈 Kothari의

3
"반면에, 솔루션의 검증은 훨씬 빠르다. 왜냐하면 우리가해야 할 일은 발견 된 3 개의 숫자가 실제로 0인지 확인하는 것 뿐이 기 때문이다." -또한 찾은 3 개의 숫자가 실제로 입력의 일부인지 확인해야합니다.
hvd

3
우리가하는 문제가 있습니까 알고 검증이 용이 아니라고는?
Raphael

답변:


24

그래프 G와 트리 T가 주어지면 T가 G의 최소 스패닝 트리임을 선형 시간으로 확인할 수 있습니다. 그러나 MST를 계산할 결정적인 선형 시간 알고리즘은 아직 없습니다. 물론 간격이 작습니다 (1 대 ), 여전히 있습니다 :))α(n)


4
어쩌면 예상 선형 시간 (Karger-Klein-Tarjan 알고리즘)에서 실행되는 무작위 알고리즘이 추가되어있는 것이 좋습니다.
Sasho Nikolov

2
또한 누구나 링크를 원할 경우 webhome.cs.uvic.ca/~val/Publications/Algorithmica-MSTverif.ps 와 같이 내가 알고있는 가장 간단한 선형 시간 MST 검증 알고리즘 입니다.
Sasho Nikolov

20

이 백서 에서는 Max flow, 3SUM 및 APSP를 포함한 3 가지 문제에 대한 YES 및 NO 인스턴스에 대한 검증 알고리즘이 있으며 , 솔루션 자체를 계산하기 위해 알려진 범위보다 다항식 요소에 의해 더 빠릅니다 .

실행 시간을 개선하는 문제에는 SETH-hard 문제가 있으며, 인스턴스를 확인하기위한 실행 시간이 솔루션 계산 시간보다 현저히 빠르지 않을 가능성이 있습니다. 그렇지 않으면이 논문의 결론은 비결정론 적입니다. 강력한 지수 시간 가설이 실패합니다.


18

어떤 문제에는 차이가없는 것 같습니다. 특히 Vassilevska Williams & Williams 는 다음을 보여줍니다.

  • 부울 행렬 곱셈의 경우, 행렬 곱을 계산하고 행렬 곱 하위 큐브와 동등 함을 확인합니다. 즉, 둘 다 서브 큐브 시간 알고리즘이 있거나 둘 다 없음을 의미합니다.

  • 모든 "확장 된 (최소, +) 구조"에 대한 매트릭스 곱 계산 및 검증에 대해서도 마찬가지입니다 (정의에 대한 논문 참조). 여기에는 많은 자연 문제가 포함됩니다.

(물론,이 문제들 모두에 서브 큐빅 알고리즘이있을 수 있으며, 컴퓨팅과 검증 사이에 다항식 차이가있을 수 있지만,이 문제들에 대해서는 3 차적인 차이가있을 수 없습니다. 사실 모두 본질적으로 입방 시간이 필요합니다.)


2
반면에, 충분히 큰 필드에서의 행렬 곱셈의 경우, 검증을위한 2 차 시간 무작위 알고리즘이 있으며, 제품 계산을위한 가장 빠른 실행 시간은 n ^ omega입니다.
Thatchaphol

2
@Thatchaphol : 그렇습니다. 많은 사람들이 오메가 = 2라고 생각합니다. 또한 부울 매트릭스 곱셈 (예 : 부울 및 / 또는 세미 링을 통한 계산 행렬 곱셈)은 들.
Joshua Grochow

16
  • 배열에 값이 있는지 확인하려면 (또는 배열이 정렬 된 경우 가 걸립니다 .Ω ( 로그 없음을 )Ω(n)Ω(logn)

    시간 에 지정된 위치에 지정된 값이 배열에 포함되어 있는지 확인할 수 있습니다 .O(1)

  • (비교 모델에서) 정렬에는 시간 이 걸리지 만 배열 또는 목록이 정렬되어 있는지 확인하는 것은 시간 합니다.O를 ( N )Ω(nlogn)O(n)


2
비슷한 점 : 비교 모델에서 중복 요소가 확인하지만 물론 에서 확인할 수 있습니다 . O를 ( 1 )Ω(nlogn)O(1)
SamM

@ Sam : 에서 확인 했습니까? 정확히 무엇을 주었습니까? 당신이 불공평하다고 생각합니다. O(n)
Mehrdad

@Mehrdad 좋은 지적; 인덱스가 아닌 값이 주어지면 확인하는 입니다. 나는 이것이 그것을 보는 더 좋은 방법이라는 좋은 주장을 볼 수 있습니다. Θ(n)
SamM

10

하나 이상의 매개 변수를 수정 하면 P에 빠지는 NP- 완전 문제에서 많은 예제가 나온다고 생각합니다 .

예를 들어, 가 입력의 일부 이면 그래프에 크기의 도수가 포함되어 있는지 확인하는 것이 NP- 완료이고 , 가 고정되어 있으면 다항식 시간 분해 가 가능합니다.k kkkk

고정 에 대해 검증에는 선형 시간이 걸리지 만 아닌 경우 검색 문제 (다항식) 복잡도는 ( 따라 다릅니다 .P = N P k Ω ( n k ) )kP=NPkΩ(nk))

다른 예 : 길이가 인 해밀턴 경로 찾기, 경계 트리 폭 그래프에서 채색, ...k


9

우선 순위 결정 : AKS의 가장 잘 알려진 변형은 시간 에서 우선 순위를 결정하는 것으로 보이지만 , 전통적인 Pratt 원시성 인증서는 비결정론 적 시간 에서 우선 순위를 결정할 수 있음을 암시합니다 . ~ O (N3)O~(n6)O~(n3)


보완 (복합성)이 훨씬 더 쉽게 관찰됩니다!
Yonatan N

3

Abboud 등논문. SODA 2016에 최근 승인 된 결과에 따르면 강력한 지수 시간 가설이 거짓이 아니면 하위 트리 동형이 시간에 풀 수 없다는 것을 알 수 있습니다 . 물론, 선형 시간에서 동 형사상을 확인할 수 있습니다.O(n2ϵ)

다시 말해, SETH는 에서 찾기와 확인 사이 의 간격으로 인해 자연스러운 문제를 일으 킵니다 . Ω ( n 1 ϵ )PΩ(n1ϵ)

특히, 알고리즘은 뿌리가 있고 일정한 정도의 나무에 대해 알려져 있습니다 (Abboud 등의 하한 결과가 여전히 적용됨). 따라서 SETH에서는이 문제에 대해 거의 선형 인 찾기-검증 간격이 필수적입니다.O(n2/logn)

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