본문 바로가기

Algorithm/Basic Concept

[Lecture] The Halting Problem, 수학적 귀납법

Halting Problem

Q : 프로그램 M과 입력 X가 있을때, M에 입력 X를 주고 수행시키면 종료할 것인가?

A : 특수한 경우는 알 수 있으나, 모두 알 수 있다고 확신할 수 없다

돌려봤을 때, 언제 끝날지 모르기 때문에 '무한루프'가 절대로 안끝난다는 것을 확신할 수 없기 때문이다

 

어떤 프로그램이 종료하는지 알 수 있는 방법이 있을까?

 

D(M,X)은 프로그램 M에 X를 입력했을 때 멈추면(exit) Yes, 멈추지 않으면(loop) No 중 하나를 출력하고 항상 멈추는 프로그램이라고 가정하자

 

이해하기 쉽도록 exit - yes, loop - no를 사용한다

 

D라는 프로그램이 있으면, D' ,S 프로그램을 만들 수 있다

D'은 입력값에 의해 종료하면 프로그램을 실행하고, 종료하지 않을 경우 프로그램을 종료한다

M(x) 멈추는 경우 → D’(M,X) 멈추지 않는다

: yes → loop (no)

M(x) 멈추지 않는 경우 → D’(M,X) 멈춘다

: no → exit (yes)

 

D' 프로그램이 위와 같다면,

 

M(M) 멈추는 경우 → S(M) 멈추지 않는다

: yes → loop (no)

M(M) 멈추지 않는 경우 → S(M) 멈춘다

: no → exit (yes)

 

S(S) 멈추는 경우 → S(S) 멈추지 않는다

S(S) 멈추지 않는 경우 → S(S) 멈춘다

: 모순이다

 

위 문제 풀이에서 잘못된 부분은 "프로그램 D가 있다고 가정한 것"이다

 

이해를 더한 영상은 아래와 같다

https://youtu.be/92WHN-pAFCs?si=Q_L38HbaIyfE4-DA

 


수학적 귀납법

P(n)(문장)은 모든 자연수 n에 대해서 참이라는 것을 보이기 위해서 사용되는 기법이다

수학적 귀납법의 기본형 : P(1)이 참(Base)이고, P(n-1) → P(n)이 참(Step)이면 P(n)은 모든 자연수 n에 대해서 참이다

 

P(n-1)을 참으로 가정한다 = 참이 아니라 거짓이면 ?

 

P Q P → Q
true true true
true false false
false true vacuous true
false false vacuous true

 

vacuous ture를 편의상, true로 본다

false는 절대 아니기 때문에, 애매하지만 ture로 보는 것이다

 

ex) vacuous true 예시

if n > 3 → n^2  > 10 이 항상 사실인가?

n = 1 이라면 ? 

 

위 표에서 알 수 있듯이 P(n-1)의 true false 상관없이 P(n)의 진리값에 따라 P(n-1) → P(n)이 결정되는 것을 볼 수 있다

 

강한 수학적 귀납법

1. P(1)이 참이다

2. 임의의 자연수 K에 대해 P(1),P(2), .... P(k)가 참이면 P(k+1)도 참이다

(일반적인 수학적 귀납법은 임의의 자연수 k에 대해 P(k)가 참이면 P(k+1)도 참이 됨을 설명한다)

 

https://pkjung.tistory.com/140

 

수학적 귀납법 = 강한 수학적 귀납법

수학적 귀납법은 자연수를 포함한 명제를 증명할 때 아주 유용하게 쓰이는 도구입니다. 수학사에 대한 저술로 유명한 Morris Klein은 Mathematical Thought: From Ancient to Modern Times에서 유클리드가 원론에

pkjung.tistory.com

 

'Algorithm > Basic Concept' 카테고리의 다른 글

[Lecture] BCC  (0) 2024.02.14
[Lecture] Cut Vertex  (0) 2024.02.14
[Lecture] Graph Traversal  (0) 2024.02.14
[Lecture] Greedy Algorithms, Minimum Spanning Tree  (0) 2023.09.14
[Lecture] Sum, Binary Search, Selection Sort  (0) 2023.09.12