410 likes | 1.36k Views
제 5 장 증명법. 증명 방법 수학적 귀납법의 원리 모순 증명법 직접 증명법 반례 증명법 순환 관계식. 5.1 증명 방법. 문제 해결의 일반적인 방법론 아이디어 스케치 단계 문제 해결의 핵심적인 실마리를 찾아내어 기술하게 된다 . 따라서 문제를 해결할 수 있는 방법론을 구상하게 되며 개략적인 아이디어를 스케치한다 . 구체적인 방법론 제시 단계
E N D
제5장 증명법 • 증명 방법 • 수학적 귀납법의 원리 • 모순 증명법 • 직접 증명법 • 반례 증명법 • 순환 관계식
5.1 증명 방법 • 문제 해결의 일반적인 방법론 • 아이디어 스케치 단계 문제 해결의 핵심적인 실마리를 찾아내어 기술하게 된다. 따라서 문제를 해결할 수 있는 방법론을 구상하게 되며 개략적인 아이디어를 스케치한다. • 구체적인 방법론 제시 단계 아이디어를 묶어서 구체적인 블럭 다이어그램(block diagram) 등으로 표현하거나, 프로그래밍의 경우 유사 코드(pseudo code) 단계까지 구체화하는 작업이다. • 엄밀한 입증이나 증명의 단계 자기가 내린 결론에 대해 객관적인 증명 방법을 통해 누구나 공감할 수 있게 증명하는 일이다.
5.2 수학적 귀납법(Mathematical Induction) • 연역법과 귀납법 • 연역법(deduction) 연역법은 주어진 사실들과 공리(axioms)들에 입각하여 추론(inference)을 통하여 새로운 사실을 도출하는 것 • 일반적 원리에서 특수한 사실을 이끌어 냄 예) 사람은 죽는다. 소크라테스는 사람이다. 그러므로 소크라테스는 죽는다. • 귀납법 (induction) 귀납법은 관찰과 실험에 기반한 가설을 귀납 추론을 통하여 일반적인 규칙을 입증하는 것 • 구체적인 사실에서 공통적인 일반 원리를 이끌어 냄 예) A가 죽었다. B도 죽었다. 개똥이도 죽었다. 그러므로 사람은 죽는다.
수학적 귀납법에 의한 증명 • 명제 P1, P2, P3, ..., Pn이 사실이라고 할 때 Pn+1의 경우에도 적용된다는 것을 보임. • n이 1인 경우에 성립하는 것을 보이고, • 또한 모든 양의 정수 n에 대해 성립한다고 가정하면 • n+1의 경우에도 성립하는 것을 보임. • 기초단계(basis) : 출발점이 되는 n의 값 • 귀납가정(inductive assumption): P1, P2, P3, ..., Pn 성립 • 귀납단계(inductive step): Pn+1의 경우에 성립됨을 보이는 것
수학적 귀납법의 원리 모든 정수 n에 대해 어떤 명제 P(n)이 주어졌을 경우 P(n)이 n≥1인 모든 정수에 대해 참이라는 것을 증명하기 위한 일반적인 방법은 다음과 같다. 1. (기초단계) P(1)이 참임을 보인다. 2. (귀납가정) P(n)이 참이라고 가정한다. 3. (귀납단계) 귀납가정에 입각하여 P(n + 1)이 참임을 보인다.
<예제 5.1> 임을 증명하라. <증 명> (n에 대한 수학적 귀납법을 이용) (기초단계) n=1 인 경우 (귀납가정) 만약 이라고 가정하면 (귀납단계) 왼쪽 = = 오른쪽 (n 대신 n + 1을 대입한 값) ∴ 위의 식이 성립한다. 예제 5.1
<예제 5.2> 임을 증명하라. <증 명> (n에 대한 수학적 귀납법을 이용) (기초단계) n = 1인 경우, (귀납가정) 만약 이라고 가정하면 (귀납단계) ∴ 위의 식이 성립한다. 예제 5.2
<예제 5.3> 높이가 h인 완전 이진 트리(full binary tree)에서는 최대한 2h개의 잎(leaf) 노드를 가진다. <증 명> (높이 h에 대한 수학적 귀납법을 이용한다.) (기초단계) 높이 h가 0인 경우 잎 노드는 루트(root) 노드 하나뿐이다. 즉 2h = 20 = 1 (귀납가정) 만약 높이가 h인 경우 2h개의 잎 노드를 가진다고 가정하자. (귀납단계) 높이가 h + 1인 경우에는 2h개의 잎 노드가 각각 2개씩의 잎 노드들을 가지므로 잎 노드의 총 개수는 2h 2 = 2h+1이다. 따라서 h + 1의 경우에도 적용된다. ∴ 모든 h에 대해 위의 주장은 성립한다. 예제 5.3
루트 h [그림 5.1] 완전 이진 트리
<예제 5.4> n ≥5일 때 2n > n2이다. <증 명> (n≥5에 대한 수학적 귀납법을 이용) (기초단계) n = 5인 경우 25>52이므로 2n>n2 이 성립한다. (귀납가정) 만약 n≥5일 때 2n>n2 이라고 가정하면 2n+1>(n+1)2 임을 보이면 된다. (귀납단계) 2n+1 = 2 2n> 2 n2 = n2 + n2 >n2 + 4n = n2 +2n + 2n > n2 +2n + 1 = (n+1)2 따라서 n + 1인 경우에도 위의 식이 성립한다. 예제 5.4
5.4 직접 증명법 • 직접 증명법이란 우리가 통상 주어진 유용한 정보로부터 추론을 통하여 목적하는 결론에 다다를 수 있도록 유도하는 증명법이다. • 직접증명법(direct proof) • 명제의 함축 p→q 가 참이 됨을 증명하는 방법 • 명제 p 를 참이라고 가정하고, 여러 가지 정리와 식을 이용하여 명제 q 또한 참이 됨을 증명
직접증명법 <예제 5.7> |x| 으로 나타내지는 x의 절대값은 x가 양수이거나 0일 경우에는 x이고, x가 음수일 경우에는 -x가 된다. 만약 |x||y| 이면 x2 y2임을 증명하라. <증 명> |x|>|y| 이므로 |x|2>|y|2이 된다. 또한 모든 수 z에 대해 |z|2= z2이다. 따라서 x2 y2이 된다. 예제 5.7
직접증명법(계속) • [Example] 짝수인 정수 n 이 있을 때 n2 도 짝수인 정수임을 직접증명법 을 이용하여 증명하여라. [풀이] p : n이 짝수 q : n2이 짝수 라고 가정하자. 명제 p가 참이므로 n은 짝수, 즉 n=2k (k∈Z)다. 따라서 n2=(2k)2=4k2=2(2k2) 가 된다. 그러므로 n2은 짝수다.
직접증명법(계속) • [Example] 두 유리수의 합이 유리수임을 직접증명법으로 증명하여라. [풀이]
간접증명법 • 간접증명법(indirect proof) • 증명하고자 하는 명제를 논리에 어긋나지 않는 범위에서 증명하기 쉬운 명제로 변환하여 증명하는 방법 • 유형 • 대우증명법 • 모순증명법 • 반례증명법
간접증명법 - 대우증명법 • 대우증명법(proof by contraposition) • 명제의 함축 p→q이 참이면 그 대우인 q→ p도 참이고 두 명제가 서로 동치인 것을 이용 • 주어진 명제의 대우명제가 참임을 증명함으로써 증명하고자 하는 명제도 참임을 증명하는 방법
간접증명법 - 대우증명법(계속) • [Example] n2 이 짝수면 n 이 짝수임을 대우증명법을 이용하여 증명하라. [풀이] p : n2짝수, q : n짝수 라고 하면 q:n 홀수, p : n2홀수 이다. 이제 q→ p가 참임을 보이자. n 이 홀수라면 n=2k+1(k는 정수)이므로 n2=(2k+1)2=(4k2+4k+1)=2(2k2+2k)+1 이 되어 n2 도 홀수다. 그러므로 q→ p이 참이 되어 주어진 명제 ‘n2 이 짝수면 n 이 짝수’도 참임을 알 수 있다.
간접증명법 - 대우증명법(계속) • [Example] 실수 x에 대하여 |x|>1이면 x>1또는 x<-1임을 대우증명법을 이용하여 증명하여라. [풀이] 명제 p: |x|>1, q: x>1 또는 x<-1 이라고 하면 p:|x|≤1, q: -1≤x≤1 이다. 이제 q→ p가 참임을 보이자. 0≤x≤1일 때 식은 |x|= x≤1이 되어 성립, -1≤x≤0일 때 |x|= -x≤1이 되어 성립한다. 그러므로 실수 x에 대하여 |x|>1이면 x>1또는 x<-1이다.
간접증명법 - 모순증명법 • 모순증명법(proof by contradiction) • 기존의 전통적인 방법으로는 쉽게 증명할 수 없는 경우에 매우 유용 • 주어진 문제의 명제를 일단 부정해 놓고 논리를 전개하여 그것이 모순됨을 보임으로써 본래의 명제가 사실임을 증명하는 방법 • p → q가 참인 것과 p∧(q)가 거짓임은 동치이다. • 함축 p→q와 (p∧q)가 동치 • p∧(q)가 참이라고 하고 모순이 유도되면 원래의 명제가 참임을 증명. • (p∧q)가 참이라고 한 뒤 그 결과가 모순되면 (p∧q) 가 참이 되고 이와 동치인 함축 p→q도 참이 됨을 이용
n m 간접증명법 - 모순증명법(계속) <예제 5.5> 는 유리수(rational number)가 아님을 증명하라. <증 명> 가 유리수라고 가정하자. 그러면 유리수의 정의에 따라 = (n, m은 정수, n, m은 서로 소)으로 표현된다. 양변을 제곱해서 정리하면 2m2 = n2이 된다. 여기서 2m2이 짝수이므로 n2도 반드시 짝수여야 한다. 즉 n도 짝수이다. 따라서 n = 2k로 표현될 수 있다. 이것을 위의 식에 대입하면 2m2 = 4k2 그리고 m2 = 2k2 그러므로 m2이 짝수이고 따라서 m도 짝수가 된다. 여기서 m과 n이 동시에 짝수가 되므로 n과 m이 서로 소라는 가정에 모순된다. 따라서 는 유리수가 아니다. 예제 5.5
간접증명법 - 모순증명법(계속) <예제 5.6> n이 양의 정수라고 할 때 만약 n이 2가 아닌 소수(prime number)라고 하면 n은 홀수이다. <증 명> n이 2가 아닌 소수이고 n이 짝수라고 가정하자. n이 짝수라고 가정했으므로 n은 어떤 양의 정수 p에 대해 n = 2p가 된다. 만약 p = 1이면 n = 2이다. 만약 p>1인 경우에는 n이 p로 나누어지므로 n은 소수가 아니다. 어느 경우에나 모순이므로 주어진 명제에서 n은 홀수라는 것이 증명된다 예제 5.6
간접증명법 - 모순증명법(계속) • [Exmaple]다음 명제를 증명하여라. n 이 정수일 때 n+m=0이 되는 m은 유일하게 하나 존재한다. [풀이] n+m=0을 만족하면서 m과는 다른 정수가 존재한다고 가정 이 정수를 k라고 하면 n+k=0이므로 n+m=n+k 양변에 정수 n은 빼주면 m=k 그런데 m≠k라고 했으므로 m=k는 가정에 모순된다. 따라서 정수 n에 대해 n+m=0을 만족하는 정수 m은 유일하다.
간접증명법 –반례 증명법 • 반례에 의한 증명법(proof by counter-example) • 주어진 명제에 모순되는 간단한 예를 하나 보임으로써 명제를 증명하는 방법 • 다른 증명 방법으로 증명하기 어려운 예제들을 증명할 때 유용
간접증명법 –반례 증명법 <예제 5.8> p가 양의 정수이고 x = p2+ 1이면 x는 소수이다. <증 명> 위의 명제가 거짓임을 입증하기 위해서는 어떤 양의 정수 p에 대해 x가 소수가 아닌 예를 하나 밝히면 된다. p = 3일 경우 x = 10이므로 x는 소수가 아니다. 따라서 위의 명제는 거짓이다. <예제5.9> 모든 실수 x에 대해 (x+1)2 ≥ x2이 성립하지 않음을 증명하라. <증 명> 반례를 들어서 위의 명제가 거짓임을 증명한다. x =-1일 때 (-1 + 1)2 = 0 < 1 = (-1)2이다. 따라서 위의 명제는 거짓이다. 예제 5.8 예제 5.9
재귀법(= 되부름 관계식) • 재귀법(recursion) • 하나의 문제를 그보다 값이 작은 동일한 문제로 계속 단순화시켜 해결하고자 하는 방법 • 재귀법 문제해결을 위해 규칙필요 • 초기조건(initial condition) • 재귀조건(recursion condition)
1 if n=1 n! = n*(n - 1)! otherwise • 수학적 귀납법은 되부름적인 수열을 표현하는데 활용될 수 있다. 귀납정의 수열의 첫 번째 요소가 정의되고, n번째의 요소는 바로 그 앞의 (n - 1)번째의 요소와의 관계로서 정의된다. 전산학에서는 이러한 귀납정의를 되부름정의(recursive definition)라고 부른다. • 귀납정의의 가장 간단한 예로는 정수의 계승(factorial)을 들 수 있는데 다음과 같은 식으로 정의된다. 3! = 3 * 2! = 3 * 2 * 1! = 3 * 2 * 1 = 6
재귀법(계속) • [Example] 재귀법을 이용하여 양의 정수 n 에 대한 팩토리얼(factorial) 값을 구해주는 함수를 정의하여라. [풀이] 구하는 함수의 이름을 factorial(n)=n!이라고 하면 다음과 같이 정의할 수 있다. 초기조건 factorial(0)=0!=1 재귀조건 factorial(n)=n∙factorial(n-1), n≥1
재귀법(계속) 팩토리얼 재귀정의가 올바른지 보기 위해 factorial(2)를 구하는 과정을 살펴보면 다음과 같다. factorial(2)=2∙factorial(2-1) =2∙factorial(1)=2∙(1∙factorial(1-1)) = 2∙1∙factorial(0)=2
int fact(int n) /* fact(n) computes n! */ { if(n<=1) return (1); else return (n * fact(n-1)); } [프로그램 5.2] n!을 구하는 되부름 프로그램
<예제5.10 다음의 되부름 관계식을 만족하는 처음 5개의 수열을 구하라. x1 = 2, x2 = 1 xn+2 = 3xn - 2xn+1 for n > 2 <풀 이> x1 = 2, x2 = 1은 이미 정의되었고 x3 = 3x1- 2x2 = 6 - 2 = 4 x4 = 3x2 - 2x3 = 3 - 8 = -5 x5 = 3x3- 2x4= 12 - (-10) = 22 예제 5.10
피보나치 수(Fibonacci number) • 앞의 두 수를 합한 수로 나열된 수열 int fib(int n) { if(n==0) return (0); else if(n==1) return (1); else return (fib(n-1) + fib(n-2)); } [프로그램 5.1] 피보나치 수를 구하는 되부름 프로그램
재귀법(계속) • 하노이 탑(tower of Hanoi) • 3개의 기둥 중 제일 왼쪽 기둥에 크기가 큰 것이 제일 아래에 있게 원판들이 쌓여있을 때 제일 오른쪽 기둥으로 원판을 옮기는 데 소요되는 최소 이동 회수를 구하는 문제 • 추가조건 • 원판은 한 번에 하나씩만 옮길 수 있다. • 원판을 기둥과 기둥으로만 옮길 수 있다. (즉, 바닥에 내려놓을 수 없다.) • 크기가 큰 원판은 작은 원판 위에 올 수 없다.
재귀법(계속) • 하노이 탑의 유래 • 동판에 다이아몬드막대가 세 개 있고, 크기가 서로 다른 64개의 황금 원판이 한 막대에 꽂혀 있다. 이때, 다음과 같은 규칙으로 황금 원판을 다른 막대로 모두 옮기는 놀이를 신(God)이 하고 있다. (1) 한 번에 한 개의 황금 원판만을 옮긴다. (2) 크기가 큰 황금 원판은 반드시 크기가 작은 황금 원판 아래쪽에 있어야 한다. 그러면 신이 이 놀이를 다 마칠 때면 (즉, 황금 원판이 다른 막대로 모두 옮겨졌다면), 이 세상은 연기처럼 사라질 것이다. 만약 1번의 움직임에 1초가 걸린다고 가정하면 ??
재귀법(계속) • 원판이 3개인 하노이 탑의 풀이 원리
재귀법(계속) • 원판이 n개인 하노이 탑의 옮긴 횟수 n개의 원판이 있을 때 필요한 원판의 이동 회수를 수학적 귀납법에 의해 증명하시오