1 / 39

P vs. NP

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,

Download Presentation

P vs. NP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. P vs. NP

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

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

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

  5. From our textbook

  6. 그럼, 이 장에서는 무얼 배우는 걸까? • 문제의 난이도 • 다루기 힘든 정도 • 문제의 분류 • P vs. NP

  7. 복습: 다차시간(Polynomial-time) 알고리짐 • 최악의 경우 시간복잡도의 상한이 입력 크기의 다항식이 되는 알고리즘을 말한다. • f(n) ?

  8. 다루기 힘든 정도(Intractability) • 다차시간 알고리즘을 찾을 수 없는 문제를 다루기 힘든(intractable) 문제라 한다. • 지금 까지 다루기 힘든 문제? • 그렇지 않은 문제?

  9. 문제의 분류 • 다차시간 알고리즘을 찾은 문제 • 다루기 힘들다고 증명된 문제 • 다루기 힘들다고 증명되지 않았고, 다차시간 알고리즘도 찾지 못한 문제

  10. 다차시간 알고리즘을 찾은 문제 • 모든 알고리즘이 다차시간인 경우 • 정렬 • 정렬된 배열에서 검색 문제 • 행렬 곱셈 문제 • 제일 빠른 알고리즘에서 다차시간이 있는 경우 • 연쇄행렬곱셈 • 최단경로문제 • 최소비용신장트리 문제

  11. 다루기 힘들다고 증명된 문제 • 결과 자체가 비다항식이상 크기인 경우 • 모든 해밀토니안 순환경로를 결정하는 문제 • 최대 (n-1)! 가지의 답이 있다. • 다차시간에 풀 수 없다고 증명된 문제 • 몇 개나 있을까? • 결정불가능한 문제(undecidable problem) • 문제를 풀 수 있는 알고리즘 자체가 없다고 증명된 문제

  12. 종료 문제(Halting Problem) • 어떤 프로그램이 정상적으로 수행되어서 종료하는지를 결정하는 문제 • 정리: 종료 문제는 결정불가능하다. • 증명: 이 문제를 풀 수 있는 알고리즘이 존재한다고 가정하자. 그 알고리즘은 어떤 프로그램을 입력으로 받아서 그 프로그램이 종료하면 “예”라는 답을 주고, 종료하지 않으면 “아니오”라는 답을 줄 것이다. 그 알고리즘을 Halt 라고 하면, 다음과 같은 “말도안돼” 알고리즘을 만들 수 있다. Algorithm 말도 안돼 If Halt(말도 안돼) == “예” then While true do print “야호”

  13. 종료 문제(Halting Problem) Algorithm 말도 안돼 If Halt(말도 안돼) == “예” then While true do print “야호” • 만일 “말도안돼” 알고리즘이 정상적으로 종료하는 알고리즘이라고 한다면, Halt(말도안돼)는 “예”가 되고, 따라서 이 알고리즘은 절대로 종료하지 않는다. 이는 가정과 상반된다. • 만일 “말도안돼” 알고리즘이 정상적으로 종료하지 않는 알고리즘이라고 한다면, Halt(말도안돼)는 “아니오”가 되고, 따라서 이 알고리즘은 종료하게 된다. 이도 마찬가지로 가정과 상반된다. • 결론적으로, Halt라는 알고리즘은 존재할 수 없다.

  14. 문제의 분류 • 다차시간 알고리즘을 찾은 문제 • 다루기 힘들다고 증명된 문제 • 다루기 힘들다고 증명되지 않았고, 다차시간 알고리즘도 찾지 못한 문제

  15. 다루기 힘들다고 증명되지 않았고, 다차시간 알고리즘도 찾지 못한 문제 • 많은 문제들이 여기에 속한다. • 중간고사 이후에 배웠던 문제들의 대부분… • 0-1 배낭채우기 • 외판원 • m-색칠하기 • 해밀토니안 회로… • 이런 문제들를 나타낼 수 있는 이름은? • NP(Nondeterministic Polynomial)

  16. 일단, 문제를 바꿔보자. • 최적화 문제(optimization problem) • 최적의 해를 찾자. • 결정 문제(decision problem) • 대답이 “예” 또는 “아니오”로 제한된 문제 • 최적화 문제에 대한 해답을 가지고 결정 문제에 대한 해답은 저절로 얻는다. • 어떤 최적화 문제에 대해서 다차시간 알고리즘이 있다면, 그 알고리즘으로부터 그 문제에 해당하는 결정 문제에 대한 다차시간 알고리즘을 쉽게 유추해 낼 수 있다. • NP와 P를 다룰 때 결정 문제만 고려해도 충분하다.

  17. 외판원 문제: 최적화 vs. 결정 • 최적화 문제 • 가중치가 있는 방향 그래프에서, 한 정점에서 출발하여 다른 모든 정점을 정확히 한번씩만 방문하면서 출발점으로 돌아오는 일주여행경로 중에서 총 여행거리가 최소가 되는 경로를 구하시오. • 결정 문제 • 어떤 양수 d가 주어지고, 총 일주여행거리가 d를 넘지 않는 경로가 있는지 없는지를 결정하시오.

  18. 외판원 문제: 최적화 vs. 결정 • 외판원 문제에 대해 최적화, 결정 문제 모두 아직까지 다차시간 알고리즘을 발견하지 못하였다. • 최적화 문제에 대한 다차시간 알고리즘이 있으면 결정 문제에 대한 다차시간 알고리즘을 만들 수 있다. • 외판원 최적화 문제를 해결하는 다차시간 알고리즘을 통해 얻은 값이 120이면 외판원 결정 문제는 d≥120이 주어지면 “예”로 대답하고, d<120이면 “아니오”로 대답하면 된다.

  19. 0-1 배낭채우기 문제 • 최적화 문제 • 배낭에 넣을 아이템의 무게와 가치를 알고 있을 때, 용량이 W가 되는 배낭에 아이템을 총 이익이 최대가 되도록 채우시오. • 결정 문제 • 용량이 W가 되는 배낭에 아이템을 총 이익이 최소한 P가 되도록 채울 수 있는지를 결정하시오

  20. P 집합 • P는 다차시간 알고리즘이 존재하는 모든 결정 문제들의 집합을 말한다. • P에 속하는 문제? 속하지 않는 문제? • NP 문제에 대해 정의해 보자. • NP문제에 관한 오해 • Non-polynomial time problem?? • 이게 아니라면, 어떻게 엄밀하게 NP를 정의 할 수 있을까? • 문제 풀이 방법을 두 가지로 나눠서 푼다고 생각해보자. • 추측(비결정적; nondeterministic) 단계 • 검증(결정적; deterministic, verification) 단계

  21. 예) 외판원 결정 문제 • 추측(비결정적 단계) • “나는 (직관적으로) 답을 알고 있다. (어떤 식으로 풀었는지는 안 가르쳐 주겠다.)” • 검증(결정적 단계) • 이 사람의 주장이 맞는지 확인하는 단계 • 다차시간 내에 확인 할 수 있나? • 다차시간 검증가능성(polynomial-time verifiability) • 결정 문제에 대한 답을 다차시간에 확인할 수 있는 특성

  22. 비결정적 알고리즘(nondeterministic algorithm) • 추측(비결정적) 단계: 문제의 사례가 주어지면 임의의 문자열 S를 만든다. • 검증(결정적) 단계: 문제의 사례와 문자열 S를 입력 받아, 다음 세 가지 중 하나와 같이 동작한다. • 궁극적으로 “true”를 출력하고 종료 • “false”를 출력하고 종료 • 종료하지 않는다.

  23. 외판원 결정문제: 비결정적 알고리즘 • d = 15 1. 외판원 결정문제를 풀고 있는가? 2. 다차시간내에?

  24. NP 집합 • 다차시간 비결정적 알고리즘(polynomial-time nondeterministic algorithm)은 검증 단계가 다차시간 알고리즘인 비결정적 알고리즘이다. • NP(Nondeterministic Polynomial)는 다차시간 비결정적 알고리즘으로 해결할 수 있는 모든 결정 문제의 집합을 말한다. • 외판원 문제는 NP 문제에 속한다? • 모든 P에 속한 문제는 NP에 속한다? • NP에 속하지 않는 문제 • 종료문제

  25. NP의 특징 • NP에 속한 문제 중에서 P에 속하지 않는다고 증명이 된 문제는 하나도 없다. 따라서 아마도 NP - P = 0일지도 모른다. • 그럼 P = NP ? 이것이 사실이라면 거의 모든 결정 문제가 NP에 속하기 때문에 우리가 아는 거의 모든 문제가 다차 시간 알고리즘이 있다는 얘기가 된다. • 사실 많은 사람들이 P ≠ NP 일 것 이라고 생각하고 있기는 하지만 아무도 이것을 증명하지 못하고 있는 것이다. P ≠ NP? P = NP?

  26. NP-Complete • 외판원 문제 • 0-1 배낭 채우기 • m-색칠하기 • … • NP-complete (NP-완전;NP-완비) • 이들 중 한 문제가 P에 속한다고 증명되면 다른 문제들도 모두 P에 속해야 한다.

  27. CNF 만족가능도 문제(CNF-satisfiability problem) • 용어 • 논리 변수: true or false 값을 갖는 변수 • 리터럴(literal): 논리변수 또는 논리 변수의 부정 • 절(clause): 리터럴과 논리 연산자(∨)만을 사용하여 구성된 표현식 • CNF(Conjunctive Normal Form): 절과 논리 연산자(∧)만을 사용하여 구성된 표현식 • CNF 만족가능성 결정 문제 • 주어진 CNF에 대해 변수에 값을 대입하여 이 CNF를 true로 만드는 값의 대입이 존재하는지 결정하는 문제를 말한다.

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

  29. 변환(transformation) • A 결정 문제를 해결하고 싶다. 이 때 우리는 B 결정 문제를 해결하는 다차시간 알고리즘을 알고 있다. • A 결정 문제의 모든 사례에 대해 이것과 대응되는 B 결정 문제의 사례를 만드는 다차시간 알고리즘이 있다. • 여기서 대응된다는 것은 B 결정 문제의 사례에 대해 “예”를 답하기 위한 필요충분조건이 대응되는A 결정 문제의 사례에 대해 “예”를 답하는 것을 의미한다. • 이런 다차시간 변환 알고리즘이 있으면 A도 다차시간에 해결할 수 있다.

  30. 변환(transformation) • 정의)결정 문제 A를 결정 문제 B로 변환하여 주는 다차시간 변환 알고리즘이 존재하면 문제 A는 문제 B로 다차시간 다일 변환가능 (polynomial-time many-one reducible)하다고 말한다. 기호로는 “A ∝ B”와 같이 표기한다. • 다일(many-one)이란 변환 알고리즘이 A의 여러 사례를 B의 한 사례로 매핑할 수 있기 때문이다. • 정리)결정 문제 B가 P에 속하고A ∝ B이면 A는 P에 속한다.

  31. NP-complete • 정의) 다음 두 가지가 만족되면 문제 B는 NP-complete에 속한다. • B는 NP에 속한다. • NP에 있는 모든 문제 A에 대해 A ∝ B이다. • Cook의 정리) CNF 만족가능성 문제는 NP-complete하다. • 따라서 외판원 문제는 CNF 만족가능성 문제로 다차시간 다일 변환가능하다.

  32. NP-complete • 정리)다음 두 가지가 만족되면 문제 C는 NP-complete에 속한다. • C는 NP에 속한다. • 어떤 NP-complete 문제 B에 대해B ∝ C이다.

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

  34. NP-hard • 정의) 어떤 NP-complete 문제 A에 대해 A ∝T B이면 문제 B는 NP-hard라 한다. • NP-complete 문제에 대한 모든 최적화 문제는 NP-hard이다. • 최적화 문제를 다차시간에 해결할 수 있으면 그것의 결정 문제도 다차시간에 해결할 수 있다.

  35. 모든 문제 집합 • NP-hard에 속하지 않는 문제? • P에 속한 어떤 문제가 NP-hard임을 증명하면 P=NP이다. • why? 이 알고리즘으로 모든 NP 문제를 다차시간에 해결할 수 있다. • NP-hard에 속하지 않는 문제가 있다고 증명하면 P≠NP이다. • why? P=NP이면 모든 NP 문제를 다차시간에 해결할 수 있다.

  36. 다루지 않은 내용 • 다음의 결정 문제가 NP-Complete에 속하는지 증명 • 0-1 배낭 채우기 • 외판원 • m-색칠하기 • … • NP-easy • NP-equivalent

  37. 기말 프로젝트 발표(화금반) • 12/5(화) 1조~8조, 12/8(금) 9조~15조 • 조당 발표시간 10분 이내 • 파워포인트로 발표자료 준비 • 도움을 받은 출처 명확히 • 프로그램 시연 • 원래의 알고리즘과 차이점 토의 • 발표 후에 자료 제출

  38. 기말 프로젝트 발표(목금반) • 12/8(금) 16조~19조 • 조당 발표시간 10분 이내 • 파워포인트로 발표자료 준비 • 도움을 받은 출처 명확히 • 프로그램 시연 • 원래의 알고리즘과 차이점 토의 • 발표 후에 자료 제출

More Related