Top Banner
P vs. NP
39

P vs. NP

Mar 14, 2016

Download

Documents

emmanuel-dalton

P vs. NP. From Garey & Johnson’s book. I can’t find an efficient algorithm, I guess I’m just too dumb. Better than the previous…. I can’t find an efficient algorithm, because no such algorithm is possible. Unfortunately, proving intractability is hard. I can’t find an efficient algorithm, - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: P vs. NP

P vs. NP

Page 2: P vs. NP

From Garey & Johnson’s book I can’t find an efficient algorithm, I guess I’m just too dumb.

Page 3: P vs. NP

Better than the previous… I can’t find an efficient algorithm, because no such algorithm is possible.

Page 4: P vs. NP

Unfortunately, proving intractability is hard. I can’t find an efficient algorithm, but neither can all these famous people.

Page 5: P vs. NP

From our textbook

Page 6: P vs. NP

그럼 , 이 장에서는 무얼 배우는 걸까 ? 문제의 난이도

다루기 힘든 정도

문제의 분류

P vs. NP

Page 7: P vs. NP

복습 : 다차시간 (Polynomial-time) 알고리짐

최악의 경우 시간복잡도의 상한이 입력 크기의 다항식이 되는 알고리즘을 말한다 .

f(n) ?

Page 8: P vs. NP

다루기 힘든 정도 (Intractability) 다차시간 알고리즘을 찾을 수 없는 문제를 다루기 힘든

(intractable) 문제라 한다 . 지금 까지 다루기 힘든 문제 ?

그렇지 않은 문제 ?

Page 9: P vs. NP

문제의 분류

1. 다차시간 알고리즘을 찾은 문제

2. 다루기 힘들다고 증명된 문제

3. 다루기 힘들다고 증명되지 않았고 , 다차시간 알고리즘도 찾지 못한 문제

Page 10: P vs. NP

다차시간 알고리즘을 찾은 문제

모든 알고리즘이 다차시간인 경우 정렬 정렬된 배열에서 검색 문제 행렬 곱셈 문제

제일 빠른 알고리즘에서 다차시간이 있는 경우 연쇄행렬곱셈 최단경로문제 최소비용신장트리 문제

Page 11: P vs. NP

다루기 힘들다고 증명된 문제

결과 자체가 비다항식이상 크기인 경우 모든 해밀토니안 순환경로를 결정하는 문제

최대 (n-1)! 가지의 답이 있다 .

다차시간에 풀 수 없다고 증명된 문제 몇 개나 있을까 ? 결정불가능한 문제 (undecidable problem)

문제를 풀 수 있는 알고리즘 자체가 없다고 증명된 문제

Page 12: P vs. NP

종료 문제 (Halting Problem) 어떤 프로그램이 정상적으로 수행되어서 종료하는지를

결정하는 문제 정리 : 종료 문제는 결정불가능하다 . 증명 : 이 문제를 풀 수 있는 알고리즘이 존재한다고

가정하자 . 그 알고리즘은 어떤 프로그램을 입력으로 받아서 그 프로그램이 종료하면 “예”라는 답을 주고 , 종료하지 않으면 “아니오”라는 답을 줄 것이다 . 그 알고리즘을 Halt 라고 하면 , 다음과 같은 “말도안돼” 알고리즘을 만들 수 있다 .

Algorithm 말도 안돼If Halt( 말도 안돼 ) == “ 예” then

While true do print “ 야호”

Page 13: P vs. NP

종료 문제 (Halting Problem)Algorithm 말도 안돼

If Halt( 말도 안돼 ) == “ 예” thenWhile true do print “ 야호”

만일 “말도안돼” 알고리즘이 정상적으로 종료하는 알고리즘이라고 한다면 , Halt( 말도안돼 ) 는 “예”가 되고 , 따라서 이 알고리즘은 절대로 종료하지 않는다 . 이는 가정과 상반된다 .

만일 “말도안돼” 알고리즘이 정상적으로 종료하지 않는 알고리즘이라고 한다면 , Halt( 말도안돼 ) 는 “아니오”가 되고 , 따라서 이 알고리즘은 종료하게 된다 . 이도 마찬가지로 가정과 상반된다 .

결론적으로 , Halt 라는 알고리즘은 존재할 수 없다 .

Page 14: P vs. NP

문제의 분류

1. 다차시간 알고리즘을 찾은 문제

2. 다루기 힘들다고 증명된 문제

3. 다루기 힘들다고 증명되지 않았고 , 다차시간 알고리즘도 찾지 못한 문제

Page 15: P vs. NP

다루기 힘들다고 증명되지 않았고 , 다차시간 알고리즘도 찾지 못한 문제

많은 문제들이 여기에 속한다 . 중간고사 이후에 배웠던 문제들의 대부분… 0-1 배낭채우기 외판원 m- 색칠하기 해밀토니안 회로…

이런 문제들를 나타낼 수 있는 이름은 ? NP(Nondeterministic Polynomial)

Page 16: P vs. NP

일단 , 문제를 바꿔보자 . 최적화 문제 (optimization problem)

최적의 해를 찾자 . 결정 문제 (decision problem)

대답이 “ 예” 또는 “ 아니오” 로 제한된 문제

최적화 문제에 대한 해답을 가지고 결정 문제에 대한 해답은 저절로 얻는다 .

어떤 최적화 문제에 대해서 다차시간 알고리즘이 있다면 , 그 알고리즘으로부터 그 문제에 해당하는 결정 문제에 대한 다차시간 알고리즘을 쉽게 유추해 낼 수 있다 .

NP 와 P 를 다룰 때 결정 문제만 고려해도 충분하다 .

Page 17: P vs. NP

외판원 문제 : 최적화 vs. 결정

최적화 문제 가중치가 있는 방향 그래프에서 , 한 정점에서 출발하여 다른

모든 정점을 정확히 한번씩만 방문하면서 출발점으로 돌아오는 일주여행경로 중에서 총 여행거리가 최소가 되는 경로를 구하시오 .

결정 문제 어떤 양수 d가 주어지고 , 총 일주여행거리가 d를 넘지

않는 경로가 있는지 없는지를 결정하시오 .

Page 18: P vs. NP

외판원 문제 : 최적화 vs. 결정

외판원 문제에 대해 최적화 , 결정 문제 모두 아직까지 다차시간 알고리즘을 발견하지 못하였다 . 최적화 문제에 대한 다차시간 알고리즘이 있으면 결정 문제에

대한 다차시간 알고리즘을 만들 수 있다 .

외판원 최적화 문제를 해결하는 다차시간 알고리즘을 통해 얻은 값이 120 이면 외판원 결정 문제는 d≥120 이 주어지면 “예”로 대답하고 , d<120 이면 “아니오”로 대답하면 된다 .

Page 19: P vs. NP

0-1 배낭채우기 문제

최적화 문제 배낭에 넣을 아이템의 무게와 가치를 알고 있을 때 , 용량이

W가 되는 배낭에 아이템을 총 이익이 최대가 되도록 채우시오 .

결정 문제 용량이 W가 되는 배낭에 아이템을 총 이익이 최소한 P가

되도록 채울 수 있는지를 결정하시오

Page 20: P vs. NP

P 집합

P 는 다차시간 알고리즘이 존재하는 모든 결정 문제들의 집합을 말한다 . P 에 속하는 문제 ? 속하지 않는 문제 ?

NP 문제에 대해 정의해 보자 . NP 문제에 관한 오해

Non-polynomial time problem?? 이게 아니라면 , 어떻게 엄밀하게 NP 를 정의 할 수 있을까 ?

문제 풀이 방법을 두 가지로 나눠서 푼다고 생각해보자 . 추측 ( 비결정적 ; nondeterministic) 단계 검증 ( 결정적 ; deterministic, verification) 단계

Page 21: P vs. NP

예 ) 외판원 결정 문제

추측 ( 비결정적 단계 ) “ 나는 ( 직관적으로 ) 답을 알고 있다 . ( 어떤 식으로

풀었는지는 안 가르쳐 주겠다 .)” 검증 ( 결정적 단계 )

이 사람의 주장이 맞는지 확인하는 단계 다차시간 내에 확인 할 수 있나 ?

다차시간 검증가능성 (polynomial-time verifiability) 결정 문제에 대한 답을 다차시간에 확인할 수 있는 특성

Page 22: P vs. NP

비결정적 알고리즘 (nondeterministic algorithm) 추측 ( 비결정적 ) 단계 : 문제의 사례가 주어지면 임의의

문자열 S를 만든다 .

검증 ( 결정적 ) 단계 : 문제의 사례와 문자열 S를 입력 받아 , 다음 세 가지 중 하나와 같이 동작한다 .1. 궁극적으로 “ true” 를 출력하고 종료 2. “false” 를 출력하고 종료3. 종료하지 않는다 .

Page 23: P vs. NP

외판원 결정문제 : 비결정적 알고리즘

d = 15

1. 외판원 결정문제를 풀고 있는가 ?

2. 다차시간내에 ?

Page 24: P vs. NP

NP 집합

다차시간 비결정적 알고리즘 (polynomial-time nondeterministic algorithm) 은 검증 단계가 다차시간 알고리즘인 비결정적 알고리즘이다 .

NP(Nondeterministic Polynomial) 는 다차시간 비결정적 알고리즘으로 해결할 수 있는 모든 결정 문제의 집합을 말한다 .

외판원 문제는 NP 문제에 속한다 ? 모든 P 에 속한 문제는 NP 에 속한다 ? NP 에 속하지 않는 문제

종료문제

Page 25: P vs. NP
Page 26: P vs. NP

NP 의 특징

NP 에 속한 문제 중에서 P 에 속하지 않는다고 증명이 된 문제는 하나도 없다 . 따라서 아마도 NP - P = 0 일지도 모른다 .

그럼 P = NP ? 이것이 사실이라면 거의 모든 결정 문제가 NP 에 속하기 때문에 우리가 아는 거의 모든 문제가 다차 시간 알고리즘이 있다는 얘기가 된다 .

사실 많은 사람들이 P ≠ NP 일 것 이라고 생각하고 있기는 하지만 아무도 이것을 증명하지 못하고 있는 것이다 .

P ≠ NP? P = NP?

Page 27: P vs. NP

NP-Complete 외판원 문제 0-1 배낭 채우기 m- 색칠하기 …

NP-complete (NP- 완전 ;NP- 완비 ) 이들 중 한 문제가 P 에 속한다고 증명되면 다른 문제들도

모두 P 에 속해야 한다 .

Page 28: P vs. NP

CNF 만족가능도 문제 (CNF-satisfiability problem) 용어

논리 변수 : true or false 값을 갖는 변수 리터럴 (literal): 논리 변수 또는 논리 변수의 부정 절 (clause): 리터럴과 논리 연산자 (∨) 만을 사용하여 구성된

표현식 CNF(Conjunctive Normal Form): 절과 논리 연산자 (∧) 만을

사용하여 구성된 표현식

CNF 만족가능성 결정 문제 주어진 CNF 에 대해 변수에 값을 대입하여 이 CNF 를 true

로 만드는 값의 대입이 존재하는지 결정하는 문제를 말한다 .

,x x

1 2 3 1 4 2 3 4( ) ( ) ( )x x x x x x x x

Page 29: P vs. NP

예 :

예 ? 아니오 ?

예 ? 아니오 ?

CNF 만족가능도 문제는 NP 문제 이다 . 다차시간 검증 알고리즘이 존재한다 . P 에 속한다는 증명 ? 1971 년 Stephen Cook 은 CNF 가 P 에 속하면 NP=P 임을

증명하였다 .

1 2 2 3 2( ) ( )x x x x x

1 2 1 2( )x x x x

Page 30: P vs. NP

변환 (transformation) A 결정 문제를 해결하고 싶다 . 이 때 우리는 B 결정

문제를 해결하는 다차시간 알고리즘을 알고 있다 . A 결정 문제의 모든 사례에 대해 이것과 대응되는 B 결정

문제의 사례를 만드는 다차시간 알고리즘이 있다 . 여기서 대응된다는 것은 B 결정 문제의 사례에 대해 “예”를

답하기 위한 필요충분조건이 대응되는 A 결정 문제의 사례에 대해 “예”를 답하는 것을 의미한다 .

이런 다차시간 변환 알고리즘이 있으면 A 도 다차시간에 해결할 수 있다 .

Page 31: P vs. NP

변환 (transformation) 정의 ) 결정 문제 A 를 결정 문제 B 로 변환하여 주는

다차시간 변환 알고리즘이 존재하면 문제 A 는 문제 B 로 다차시간 다일 변환가능 (polynomial-time many-one reducible) 하다고 말한다 . 기호로는 “A ∝ B” 와 같이 표기한다 . 다일 (many-one) 이란 변환 알고리즘이 A 의 여러 사례를 B

의 한 사례로 매핑할 수 있기 때문이다 .

정리 ) 결정 문제 B 가 P 에 속하고 A ∝ B 이면 A 는 P 에 속한다 .

Page 32: P vs. NP

NP-complete 정의 ) 다음 두 가지가 만족되면 문제 B 는 NP-complete

에 속한다 .1. B 는 NP 에 속한다 .2. NP 에 있는 모든 문제 A 에 대해 A ∝ B 이다 .

Cook 의 정리 ) CNF 만족가능성 문제는 NP-complete하다 . 따라서 외판원 문제는 CNF 만족가능성 문제로 다차시간

다일 변환가능하다 .

Page 33: P vs. NP

NP-complete 정리 ) 다음 두 가지가 만족되면 문제 C 는 NP-complete

에 속한다 .1. C 는 NP 에 속한다 .2. 어떤 NP-complete 문제 B 에 대해 B C∝ 이다 .

Page 34: P vs. NP

다시 , 결정 문제에서 최적화 문제로

정의 ) 문제 A 를 문제 B 를 해결하여 주는 가상의 다차시간 알고리즘으로 해결할 수 있으면 문제 A 는 문제 B 로 다차시간 튜링 변환가능 (polynomial-time Turing reducible) 하다고 말한다 . 기호로는 “A ∝T B” 와 같이 표기한다 .

A 와 B 가 결정 문제이면 , A ∝ B implies A ∝T B

Page 35: P vs. NP

NP-hard 정의 ) 어떤 NP-complete 문제 A 에 대해 A ∝T B 이면

문제 B 는 NP-hard 라 한다 .

NP-complete 문제에 대한 모든 최적화 문제는 NP-hard이다 . 최적화 문제를 다차시간에 해결할 수 있으면 그것의 결정

문제도 다차시간에 해결할 수 있다 .

Page 36: P vs. NP

모든 문제 집합

NP-hard 에 속하지 않는 문제 ? P 에 속한 어떤 문제가 NP-hard 임을 증명하면 P=NP 이다 .

why? 이 알고리즘으로 모든 NP 문제를 다차시간에 해결할 수 있다 .

NP-hard 에 속하지 않는 문제가 있다고 증명하면 P≠NP 이다 . why? P=NP 이면 모든 NP 문제를 다차시간에 해결할 수 있다 .

Page 37: P vs. NP

다루지 않은 내용

다음의 결정 문제가 NP-Complete 에 속하는지 증명 0-1 배낭 채우기 외판원 m- 색칠하기 …

NP-easy NP-equivalent

Page 38: P vs. NP

기말 프로젝트 발표 ( 화금반 ) 12/5( 화 ) 1 조 ~8 조 , 12/8( 금 ) 9 조 ~15 조

조당 발표시간 10 분 이내

파워포인트로 발표자료 준비

도움을 받은 출처 명확히

프로그램 시연

원래의 알고리즘과 차이점 토의

발표 후에 자료 제출

Page 39: P vs. NP

기말 프로젝트 발표 ( 목금반 ) 12/8( 금 ) 16 조 ~19 조

조당 발표시간 10 분 이내

파워포인트로 발표자료 준비

도움을 받은 출처 명확히

프로그램 시연

원래의 알고리즘과 차이점 토의

발표 후에 자료 제출