학습 목표
1. 튜링기계, 다항 시간 알고리즘, 판정 문제의 개념을 이해할 수 있다.
2. 클래스 P와 클래스 NP의 개념을 이해할 수 있따.
3. NP-완전 문제와 NP-하드 문제의 개념과 종류를 이해할 수 있다.
4. NP- 하드 문제의 다양한 근사 알고리즘을 이해할 수 있따.
주요 용어
결정론적 튜링기계, 비결정론적 튜링 기계, 쉬운 문제, 어려운 문제, 다항 시간 알고리즘, 판정 문제, 클래스 P, 변환, NP-완전문제(외판원문제, 0/1 배낭 문제, CNF 만족성 문제, 해밀토니언 사이클 문제, 퀘 채우기 문제, 파티션 문제, 클리크 판정 문제, 버텍스 커버문제), NP-하드 문제, NP-완전성, 근사 알고리즘
7.1 기본 개념
7.1.1. 튜징기계(Turing machine)
- 컴퓨터의 이론적 모델
- 구성요소 > 테이프, 기호, 헤드, 상태, 규칙
- 무한한 길이의 테이프, 유한한 개수의 기호와 상태, 상태와 기호에 따른 헤드의 동작을 정해둔 규칙
- 현재 상태와 읽은 기호에 따라 헤드가 테이프에 기호를 쓰거나 좌우로 이동
- 주어진 테이프와 규칙에 따라 동작하는 튜링 기계
= 주어진 입력과 알고리즘으로 동작하는 컴퓨터
(1) 결정론적 튜링기계 = 순차 처리 컴퓨터
- 테이프의 위치를 바꾸거나 쓰인 기호를 바꿀 때 한 가지 상태로만 변경 가능
(2) 비 결정론적 튜링 기계 = 병렬 처리 컴퓨터
- 하나 이상의 상태로 바뀔 수 있거나 혹은 바뀔 상태가 없을 수 있음
- 연산 결과가 상황에 따라 달라질 수 있는 연산을 수행
7.1.2 다항 시간 polynomial time 알고리즘
>알고리즘의 수행 시간이 입력 크기에 대한 다항식으로표현
- O(1), O(logn), O(n), O(nlogn), O(n^2).......O(N^k)...
- O(2^n) > 지수 시간 알고리즘
> 문제 난이도
- 쉬운 tractable 문제
: 결정론적 튜링 기계를 이용한 다항 시간 알고리즘이 존재하는 문제
- 어려운 intractable 문제
: 결정론적 튜링 기계를 이용한 다항 시간 알고리즘의 존재 여부를 알 수 없는 문제
7.1.3 판정문제
> 문제 형태에 따른 분류
- 판정 decision 문제
: 예 혹은 아니오 중 하나를 답으로 요구하는 형태의 문제
: 예) n x n 이 n + n 보다 작은 자연수 n 이 존재하는가?
- 최적화 optimization 문제
: 최솟값 또는 최댓값을 구한는 형태의 문제
: 예) n x n 이 n + n 보다 작은 자연수 n 을 모두 찾으시오.
7.2 클래스 P 와 클래스 NP
> 클래스 P
- 결정론적 튜링 기계를 이용하여 다항 시간에 해결할 수 있는 모든 판정 문제의 집합
: 쉬운 문제의 판정 문제 버전을 원소를 갖는 집합
: 주어진 그래프에서 정점 a 에서 정점 e까지의 최단 거리는 10보다 작은가?
>클래스 NP
-비결정론적 튜링 기계를 이용하여 다항 시간에 해결할 수 있는 모든 판정 문제의 집합
: 최단 경로 문제의 판정 문제 버전
: 외판원 문제 > 주어진 가중 그래프에서 모든 정점을 한 번씩만 방문하고 처음 정점으로 돌아오는 비용이 50 보다 작은 경로가 존재하는가?
> 클래스 P 와 클래스 NP 의 관계
'방송통신대학 > 알고리즘' 카테고리의 다른 글
제13강 근사 알고리즘 (0) | 2020.05.16 |
---|---|
제 13강 근사 알고리즘(NP - 완전 문제와 NP-하드 문제, NP - 완전 문제의 종류 ) (0) | 2020.05.15 |
제2장 자료형과 선행처리기(변수선언, 선행 처리기) (0) | 2020.05.13 |
제2장 자료형과 선행처리기(자료형) (0) | 2020.05.12 |
12강 제 6장 탐색 알고리즘 ( 해 싱 ) (0) | 2020.05.09 |