본문 바로가기
학과 공부/자료구조

DAY2

by sonysame 2016. 9. 6.

Problems

Turing Machine

Big -o notation



♠Problem


◇decision problem: 결정을 하는 문제 답이 ex) 0인지 1인지

1/2보다 높은 확률

보통은 확률 1로 해결했을때


◇search problem: solution이 여러개 있고 그 중에 하나를 고를때


ex) Hamiltonian Circuit problem

In the mathematical field of graph theory, a Hamiltonian path (or traceable path) is a path in an undirected or directed graph that visits each vertex exactly once. A Hamiltonian cycle (or Hamiltonian circuit) is a Hamiltonian path that is acycle. Determining whether such paths and cycles exist in graphs is the Hamiltonian path problem, which is NP-complete.


1. decision version: Given a graph, determine whether the graph has a Hamiltonian Circuit.

2. search version: Given a graph, find a Hamiltonian Circuit.


보통은 decision version보다 search version이 더 어렵다. search version으로 solve했을때 decision version이 solve되는 것이므로.


♠Reduction


A problem P1 is reduced to a problem P2, if we can construct an algorithm which solves P1 using an algorithm which solves P2. 

: P1<=P2 라는 기호로 표현

ex) decisional Hamiltonian circuit problem<=search version of Hamiltonian circuit problem.



문제의 난이도를 define할 수 있다.

■ upper bound of a problem :이것보다는 어렵지 않다.

■ lower bound of a problem :이것보다는 어렵다.


ex) nlogn<= T(n) <=n^2

lower bound      upper bound


컴퓨터의 사양과 관계없이 알고리즘의 수행속도를 define할 수 있다.

컴퓨터를 수학적으로 모델링한다.->튜링머신



튜링 머신:

deterministic T.M.


input tape

     |

transition function  ―  working tape

     |

output tape



transition function: 컴퓨터의 그 이전의 상태를 참조해서 다음 상태를 결정해 나간다.

working tape : 메모리 공간, 하드디스크 공간은 working tape에 저장된다.

output tape : 여기에 값을 써 내려 간다. 파일이 될 수도 있고, 모니터가 될 수도 있다.


transition function은 항상 deterministic하기 때문에 input이 같으면 output이 같을 수밖에 없다.


probabilistic T.M.


                        input tape

                             |

random tape―transition function  ―  working tape

                            |

                       output tape



random tape: 난수발생

input이 같아도 output이 다를 수 있다.

난수는 진짜 난수인가?



♠Complexity

▷time

▷space-사용하는 메모리


♠Complexity of problems

▷intractable: Halting problem

▷P/NP/BPP/IP

P: 효율적으로 풀수있는 문제 class /polynomial 한 time안에 풀 수 있다.

NP: 효율적으로 풀 수 없는 문제 class /polynomial 한 time 안에 풀 수 없다.


polynomial time algorithm은 무엇인가?


n^2(n: the length of an input)

n, n^2, n^4, n^100....nlogn은 polynomical time algorithm이다.


ex) sum1(a[1],   ,a[n])

         for i=1 to n

for j=1 to n

s=s+a[j]:

return s;


가장 많이 나타나는 연산(여기선 +)의 횟수

따라서 O(n^2)


sum2(a[1],,,,,a[n])

for j=1 to n

s=s+a[j];

return s*n;

->O(n)


psedo time conplextity


O; big O 이 알고리즘의 upper bound를 말해준다.

다음시간에 O,오메가, o, small 오메가에 대해 알아보자

'학과 공부 > 자료구조' 카테고리의 다른 글

DAY5  (0) 2016.09.27
DAY4  (0) 2016.09.20
DAY3  (0) 2016.09.13
Day3  (0) 2016.09.08
DAY 1  (0) 2016.09.01