인가


66

현재 완전 문제 또는 완전 문제를 해결하는 것은 일반적으로 큰 입력에 대해서는 불가능합니다. 그러나 둘 다 지수 시간과 다항식 공간에서 해결할 수 있습니다.P S P A C ENPPSPACE

우리는 비 결정적이거나 '운이 좋은'컴퓨터를 만들 수 없기 때문에 문제가 또는 이라면 우리에게 어떤 차이가 있습니까?P S P A C ENPPSPACE

답변:


82

이것은 내가 많이 생각한 아주 좋은 질문입니다 . 문제가 -complete 또는 -complete라는 사실이 실제로 문제 의 최악의 시간 복잡성에 영향을 줍니까? P S P A C ENPPSPACE더 나쁘게, 그러한 구별이 실제로 문제의 "전형적인 사례"복잡성에 실제로 영향을 미칩니 까?

직감에 따르면 문제는 사용하는 복잡성 측정 방법에 관계없이 문제보다 어렵다고 합니다. 그러나 상황은 미묘합니다. 예를 들어, (만족도, 표준 완전 문제)가 지수 미만 시간 인 경우에만 (정규화 된 부울 공식, 정식 완전 문제)가 하위 지수 시간에있을 수 있습니다. (한 방향은 분명합니다. 다른 방향은 큰 결과 일 것입니다!) 이것이 사실이라면, "이 문제를 해결하고 싶습니다"라는 관점에서 볼 때, 문제가 -complete 인지 아닌지는 큰 문제가 아닙니다. 또는N P Q B F P S P A C E S A T N P P S P A C E N PPSPACENPQBFPSPACESATNPPSPACENP-완료 : 어느 쪽이든, 하나의 하위 지수 알고리즘은 다른 하나의 하위 지수 알고리즘을 의미합니다.

악마의 대변인이되어 보도록하겠습니다. 한 문제가 다른 문제보다 "어려워"발생하지만 다른 문제보다 "더 다루기 쉬운"사례가 있습니다.

하자 에 부울 식 될 변수 짝수이다. 결정하려는 두 공식 중에서 하나를 선택할 수 있다고 가정하십시오.n nF(x1,,xn)nn

Φ1=(x1)(x2)(xn1)(xn)F(x1,,xn) .

Φ2=(x1)(x2)(xn1(xn)F(x1,,xn)

(즉, 에서는 수량자가 번갈아 나타납니다.)Φ2

어느 쪽이 해결하기 쉽다고 생각하십니까? 유형의 공식 또는 유형의 공식 ?Φ1Φ2

하나는 분명한 선택을하고 있다고 생각 것 단지 한, 반면, 그것을 결정하는 - 완전한 A는 - 완전한 문제. 그러나 가장 잘 알려진 알고리즘에 따르면 가 더 쉬운 문제입니다. 단계 미만 으로 일반 에 대해 을 해결하는 방법을 . (이 작업을 수행 할 수 있으면 새로운 수식 크기 하한을 갖게됩니다!) 그러나 임의의 게임 트리 검색을 사용하여 임의의 시간 에 모든 에 대해 를 쉽게 해결할 수 있습니다 ! 참조는 Motwani 및 Raghavan의 2 장 2.1 절을 참조하십시오. N P Φ 2 P S P C E Φ 2 Φ 1 F 2 N 개의 Φ 2 F O ( 2 0.793 N )Φ1NPΦ2PSPACEΦ2Φ1F2nΦ2FO(2.793n)

직감는 점이다 보편적 한정사를 추가하는 것은 실제로 문제를 제약 이있어 쉽게 오히려 더 열심히보다 해결하기 위해. 게임 트리 검색 알고리즘은 교번하는 정량자를 갖는 것에 크게 의존하며 임의의 정량을 처리 할 수 ​​없습니다. 그럼에도 불구하고 문제가 다른 측정에서는 "더 어려워"보일 수 있지만 문제는 한 복잡성 측정에서는 "단순화"될 수 있습니다.


16
좋은 답변과 흥미로운 테이크.
Suresh Venkat

위의 내용은 "미세한 복잡성"(Simons Institute의 2015 년 가을 프로그램)의 의미에 대한 좋은 예입니다. 핵심 아이디어 중 하나는 복잡성 이론이 각 문제에 대해 문제가 "완전한"(잠재적으로 기괴한) 계산 모델을 찾으려고 시도 할 때 가능한 최상의 런타임이 무엇인지 이해하는 데 중점을 두는 것입니다. 문제에 대한 지수.
Ryan Williams

37

솔루션을 찾을 수 있는지 여부보다 더 큰 위험이 있기 때문에 중요합니다. 또한 솔루션 을 검증 할 수 있는지 여부도 중요합니다 . 문제의 난이도 사이에 다른 자 질적 차이가있을 수 있지만 NP 대 복잡한 클래스의 경우 이것이 가장 중요한 것으로 식별됩니다.

의사 결정 문제 (모든 인스턴스에 ' '또는 ' 아니오 '답변 이있는 문제)의 경우 NP 는 주어진 인스턴스가 ' '인스턴스 라는 증거를 효율적으로 확인할 수있는 문제의 클래스입니다. 우리는 하나가 제시됩니다. 예를 들어, 3-SAT 인스턴스에 대해 만족스러운 변수 할당이있는 경우 해당 할당을 통해 인스턴스가 만족 스럽다는 것을 효율적으로 증명할 수 있습니다. 이러한 만족스러운 과제를 찾기가 어려울 수 있지만 일단 과제가 있으면 찾은 솔루션을 확인함으로써 인스턴스가 만족 스럽다는 것을 쉽게 증명할 수 있습니다.

마찬가지로, coNP 의 경우 ' NO '인스턴스에 대해 효율적으로 확인 가능한 증명이 있습니다 . NP  ∩  coNP의 문제에 대해서는 두 가지를 모두 수행 할 수 있습니다. 그러나 PSPACE- 완전한 문제의 경우, 복잡한 클래스의 매우 훌륭한 평등을 증명할 수 없다면 그러한 절차는 존재하지 않습니다.


문제는 NP-complete 및 PSPACE-complete 문제의 "최적화"버전에 관한 것입니다. 예를 들어, SAT와 QBF에 대한 솔루션을 찾는 데 차이가 있습니까 (복잡성 측면에서)? 더 일반적으로, 결정 버전이 NP-complete 또는 PSPACE-complete 인 최적화 문제의 특성이 있습니까?
Lamine

@Lamine : 나는 당신이 문제에서 만들고있는 차이점을 감지하지 못합니다 (적어도 단순한 결정과 전체 최적화 사이). 아마도 당신은 그 답이 그 답을 찾는 데 필요한 자원에 대한 질문에만 관심이 있고, 문제의 다른 난이도에 관심이 없다는 것을 의미합니다. 어쨌든, 위의 질문에 대한 나의 대답은 그대로입니다.
Niel de Beaudrap

5
아주 좋은 답변입니다.
Dave Clarke

효율적으로 검증하는 기능 은 솔루션 계산에 도움이되지 않습니다 (P = NP가 아닌 한). NP 및 co-NP는 추측 및 검증을 통해 문제를 공격 할 수 있습니다. 이 방법은 구현하기 쉽고 더 효율적일 수도 있지만 최악의 경우에는 도움이되지 않습니다.
András Salamon

@ András : true — 솔루션을 찾는 것이 내 대답의 서문에서 유일하게 중요한 것은 아니라는 점을 강조합니다.
Niel de Beaudrap

36

우리는 (최악의 경우) NP- 완전 문제로부터 평균적인 경우 어려운 문제를 만드는 방법을 모르지만 PSPACE ( Köbler & Schuler (1998) 참조 )에 대해이를 수행 할 수없는 균일 한 분포에서도 문제를 만들 수 있습니다. 모든 PSPACE가 계산하기 쉽지 않은 경우 대부분의 입력에서 해결됩니다.


20

실질적 측면에서 NP-Completeness는 실제로 많은 문제에 대한 장벽이 아니라는 것을 기억하는 것이 중요합니다. SAT 솔버와 CPLEX (정수 선형 프로그래밍 용)의 트윈 툴은 문제를 적합한 ILP로 구성하거나 SAT를 줄임으로써 NP- 완전 문제의 큰 인스턴스를 해결할 수있을 정도로 강력하고 잘 설계되었습니다.

PSPACE의 문제에 대해 유사하게 잘 설계된 솔버를 알지 못합니다.


11
QBF 솔버를 개선하기 위해 매년 경쟁 이 있습니다 . 나는 그들을 많이 사용하지 않았다.
Radu GRIGore

7

수학 문제에는 사람이 읽을 수있는 증거가 있거나 본질적으로 "컴퓨터 증거"가 필요한가? 예 : 체커의 시작 위치는 추첨입니까? (답 : 예) 체스의 시작 위치는 백인에게는 승리입니까? (답 : 알 수 없지만 대부분의 대학원생들은 그것이 무승부라고 생각합니다.)

체커의 시작 위치가 추첨이라는 증거는 궁극적으로 컴퓨터가 실제로 많은 특수 사례를 정확하게 검증했음을 수락해야합니다. 체스에 대한 증거가 존재한다면, 인간 독자는 컴퓨터가 훨씬 더 특별한 경우를 올바르게 검증했음을 수용해야 할 것입니다. 그리고 그러한 진술을 증명하는 더 짧은 방법없을 수도 있습니다 . PSPACE의 문제입니다. NP에서 문제가 "그냥"이라면, 인간은 (직관적으로) 모든 증거를 머리 속에 담을 수 있습니다. 물론 인간은 매우 전문화 된 수학자 여야합니다.

n1000000


coNP- 완전 문제에 "컴퓨터 증거"가 필요한 (때로는)이 문제가 있다고 주장 할 수 있습니까?
Philip White

@ 필립 화이트 : 나는 그것이 같지 않다고 생각합니다. coNP에 "무승부"가 있다고 말하십시오. '아니요'라고 말하면, 쉽게 검증 할 수있는 단일 강제 행을 보여 주기만하면됩니다. 그러나 이러한 행이 존재하더라도 실제로 "강제"임을 증명하기는 매우 어려울 것으로 예상됩니다. 따라서 특정 방향으로 해결할 수 있으면 문제가 단순성을 보장하지 않습니다. "Chess is draw"는 아마도 컴퓨터가 사실이든 거짓이든 증명할 것을 본질적으로 요구합니다.
Aaron Sterling

5

수레 쉬의 의견에 따르면, 실제로는 큰 차이가있는 것으로 보인다. 실제 SAT 인스턴스의 구조를 활용하고 우수한 성능을 얻는 휴리스틱이 있습니다 (여기서는 갈등 중심의 조항 학습 솔버를 참조하십시오). 동일한 휴리스틱이 QBF 솔버에서 유사한 성능 개선을 생성하지 않습니다.

증명과 검증의 차이도 나타납니다. 일부 SAT 솔버 (예 : MiniSAT 1.14 및 기타 호스트)는 증거를 생성합니다. 현재 QBF 솔버에서 증거를 생성하는 것은 쉽지 않습니다. QBF 경쟁에는 솔버가 분명히 다른 결과를 만들어내는 큰 사례가 있습니다. 증명 생성 솔버가 없으면 어떤 결과가 올바른지 알 수 없습니다.


0

SAT와 체스의 실제 성능을 보면 차이가 있습니다 .NP- 완전 문제는 PSPACE- 완전 문제보다 다루기 쉽습니다. 오늘날 SAT 솔버는 수천 개가 넘는 변수를 처리 할 수 ​​있지만, 같은 시간에 최고의 체스 엔진은 20 개 미만의 움직임 만 계산할 수 있습니다.

나는 이것이 문제의 구조 때문이라고 생각합니다. 예, 솔루션을 열거하면 SAT 해결이 매우 느립니다. 그러나 그것은 양자화 교대가 없기 때문에 사람들은 공식의 구조를 발견하므로 많은 열거를 피합니다. Ryan Williams가이 점을 간과 한 것 같습니다.

정량화 대안을 사용하면 똑똑한 가지 치기 방법이 있지만 여전히 구조는 CNF 공식만큼 풍부하지 않습니다.

미래를 예측하겠습니다. SAT 해석은 공식을 검사하고 본질적으로 검색을 피함으로써 P로 만들며, 체스는 게임 트리에서 검색을 활용하여 P로 만듭니다.

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