탐색(Search)

 

1. 맹목적 탐색 (Blind search)

 

1) 깊이 우선 탐색 (Depth First Search : DFS)

시작하는 정점에서 출발해서 인접한 정점 중 아직 반문하지 않은 정점을 계속 찾아 방문하는 방법.

재귀 알고리즘을 이용해 쉽게 구현 가능하며 이 경우 스택(Stack)을 사용한다.

 

그래프 G

 

위와 같이 주어진 그래프 G가 있을 경우 DFS는 아래와 같이 방문하게 된다.

탐색은 A, B, D, H, E, C, F, G 순으로 이루어진다.

 

DFS의 결과

 

이 때, 방문 과정 중 인접한 모든 정점을 이미 탐색한 경우 가장 최근 방문했던 정점으로 돌아가는 것을 Back Tracking 라고 한다.

 

2) 너비 우선 탐색 (Breadth First Search : BFS)

시작점 A를 방문후 A에 인접한 모든 정점을 차례대로 방문 후 더 이상 방문할 정점이 없을 경우 인접한 정점 가운데 가장 처음에 방문한 정점에서 위와 같이 반복하는 과정이며, 레벨 단위로 이루어진다.

DFS와는 달리 큐(queue)를 사용하고 탐색은 A, B, C, D, E, F, G, H 순으로 이루어 진다.

 

BFS의 결과

 

 

2. 경험적 탐색 (Heuristic search)

경험적 탐색이란 실생활에서 예를 들자면 비가 온다는 날씨에 '우산을 가져간다', '가져가지 않는다' 라는 생각을 하는 것이 맹목적인 방법이며, 비의 형태를 경험해보고 '어느정도의 비는 맞아도 되겠다', '우산을 가져간다'라는 최적화 된 방향으로 생각하는 것이다. 간단하게 말하자면 어떤 문제를 탐색할 때 최소, 최대가 아닌 최적의 방법으로 탐색하는 것을 말한다. 

 

 

 

˚ 행렬(Matrix)    n×m 

정의 : 실수를 n행, m열로 나열된 배열을 말한다.

1) 행렬의 스칼라 곱(Scalar Multiplication) : 행렬 A에 실수 k를 곱하는 연산

2) 행렬의 곱셈

 

˚ 행렬의 종류

1) 영행렬(Zero Matrix)    O

2) 2차 정사각행렬(n-square Matrix) : 행과 열이 같은 행렬

3) 대각행렬(Diagonal Matrix) : 정사각행렬에서 대각원소 이외의 모든 원소가 0인 행렬

4) 단위행렬(Unit Matix, Identity Matrix) : 대각행렬에서 대각원소가 모두 1인 행렬

5) 전치행렬(Transpose Matrix) 

: m × n 행렬의 행과 열을 바꾼 n × m 행렬

6) 대칭행렬(Symmetric Matrix) : 인 행렬

7) 부울행렬(Boolean Matrix, Zero-One Matrix) : 모든 원소가 0,1로 구성된 행렬

* 부울행렬 연산자

(1) 합(join) : A∨B=

(2) 교차(meet) : A∧B=

(3) 부울곱(boolean product) : A⊙B

* 부울행렬 연산의 특징

(1) A∨A=A, A∧A=A

(2) A∨B=B∨A , A∧B=B∧A

(3) (A∨B)∨C=A∨(B∨C)

(4) A∨(B∧C)=(A∨B)∧(A∨C)

 

˚ 행렬식(Determinant) |A| or det(A)

정의 : n차 정사각행렬에 대응하는 수를 구하는 식

1) 소행렬(Minor Matrix)

n차 정사각행렬에서 r번쨰 행과 s번째 열을 제거해서 얻은 (n-1)×(n-1)행렬

2) 소행렬식 det(A)

n차 정사각행렬의 소행렬 에 대한 행렬식

3) 여인수(Cofactor) , 여인수행렬(Cofactor Matrix)

n차 정사각행렬 에서 원소 에 관련된 수와 그 수들에 대한 행렬

4) 여인수를 이용한 행렬식

˚ 역행렬(Inverse Matrix) 

정사각행렬 A에 대해 AB=BA=I를 만족하는 행렬 B

1) 행렬식을 이용한 역행렬

2) 수반행렬

여인수행렬 에 대한 전치행렬

3) 가역행렬(Invertible Matrix 또는 Nonsingular Matrix)

역행렬이 존재하는 행렬

4) 특이행렬(Singular Matrix)

역행렬이 존재하지 않는 행렬

* 행렬식을 이용한 역행렬에서 의 분모가 0이 되면 특이행렬이 된다.

 

˚ 연립 1차 방정식(System at linear Equation) : 1차 방정식 m개로 구성된 방정식

1) 첨가행렬(Augmented Matrix)

2) 1차 방정식의 해를 구하는 방법

(1) 가우스 소거법(Gaussion Elimination)

① 가우스 소거법(Gaussion Elimination)

계수행렬의 대각원소들이 모두 1로 만들고, 대각원소를 기준으로 아래쪽 원소들은 모두 0으로 만든 후 위쪽 원소들은 계수들로 남겨놓은 형태의 첨가행렬

② 가우스 조르단 소서법(Gauss Jordan Elimination)

가우스행렬의 계수 부분을 단위행렬로 만들어 구하는 방법

 

 

 

 

 

˚ 수의 종류

복소수

 실수

유리수

정수

자연수 

(음의 정수, 0)

(무리수)

 (허수)

1) 자연수 N : 0보다 큰 정수

2) 정수 Z : 양의 정수, 0, 음의 정수로 구성된 수

3) 유리수 Q : 두 정수 a,b로 a/b(분수)의 꼴로 나타낸 수이며, b≠0 이고 b=1이면 정수가 된다. 

*하한항(lowset) : 분모와 분자 사이에 1 이외의 공약수가 존재하지 않는 유리수

4) 무리수 I : 실수 중 유리수가 아닌 수. a/b(b≠0)로 나타낼 수 없는 수.

5) 실수 R : 무리수와 유리수를 모두 포함하는 수.

6) 복소수 C : x² = -1을 포함하는 수 체계

 

˚ 수의 연산

1) 닫힘 성질

 

 +

 -

 ×

 ÷

 자연수 (N)

 O

 X

 O

 X

 정수 (Z)

 O

 O

 O

 X

 유리수 (Q)

 O

 O

 O

 O

 무리수 (I)

 X

 X

 X

 X

 실수 (R)

 O

 O

 O

 O

 복소수 (C)

 O

 O

 O

 O

2) 수의 특징

 x+y=y+x, xy=yx

 교환법칙 

 (x+y)+z=x+(y+z), (xy)z=x(yz)

 결합법칙

 x(y+z)=xy+xz

 분배법칙
 0  합에 대한 항등원
 1  곱에 대한 항등원
 -a  합에 대한 역
 1/a  곱에 대한 역

3) (시그마) : 일정한 규칙을 나열한 수를 더할 때 쓰는 기호

4) (프로덕트) : 일정한 규칙을 나열한 수를 곱할 때 쓰는 기호

5) 나머지 연산 : 정수 n을 d로 나누어 나오는 몫 q와 나머지 r이 있을때, r을 구하는 연산.

n mod d = r     n mod d = 0 ⇔ d|n

 

˚ 보수

1) 컴퓨터에서의 데이터 표현

 최상위 비트

부호비트

 데이터 비트

 데이터 비트

 데이터 비트

 데이터 비트

 데이터 비트

데이터 비트

 최하위 비트

데이터 비트

양수인 경우 부호비트가 0, 음수인 경우 1이 된다.

* 부호화-절대치 표현 : 부호와 데이터의 절댓값을 그대로 표현

1의 보수 : 음수 표현에만 사용 된다.

   2진법에 있어서 보수를 취할 때 각 자리의 반대수 (0→1, 1→0)를 취하는 보수.

2의 보수 : 음수 표현에만 사용되고, 절대치 비트에대한 1의 보수에 1을 더한다.

˚ 집합

집합이란? 영어 대문자(A, B, C, D, … )로 표기하며 어떤 조건들에 의해 분류되서 모인 요소들의 모임.

집합의 표기방식

1) 원소나열법 : 집합에 포함되는 원소를 일일이 나열하는 방법

ex) A={1,2,3,4}

2) 조건제시법 : 집합에 포함되는 원소의 공통적인 성질을 조건식으로 제시하는 방법

ex) A={x|x<5, x∈N}

집합과 원소의 포함관계 : 1 ∈ A 또는 5  A

기수(Cardinality) : 집합 A가 포함하는 원소의 수    |A| = 4

상등(Equal) : 두 개의 집합의 원소가 동일할 때 '상등'한다고 한다.    A=B⇔(a∈A∧a∈B)

 

˚ 집합의 종류

1) 전체집합(Universal Set) U : 논의 대상이 되는 원소 전체를 포함하는 집합

2) 공집합(Empty Set) { } or : 원소를 포함하지 않은 집합, ||=0

3) 부분집합(Subset) A⊆B : A의 모든 원소가 B에 포함되는 경우, |A||B|

4) 진부분집합(Proper Subset) A⊂B : B에 대하여 A의 요소 모두는 포함되어 있지 않은 부분 집합, |A|<|B|

 

˚ 집합의 연산

1) 합집합(Union) : 집합 A,B에 대하여 A에 속하거나 B에 속하는 원소로 되는 집합.

A∪B={x|x∈A∨x∈B}

2) 교집합(Intersection) : 집합 A,B에 대하여 A와 B에 동시에 속하는 원소로 되는 집합.

A∩B={x|x∈A∧x∈B}

3) 여집합 또는 보집합(Complement) : 전제집합에 속하지만 A를 제외 한 나머지.

A′={x|x∈U∧x∉A}=U-A

4) 차집합(Difference) : 집합 A,B에 대하여 A에 속하지만 B에 속하지 않는 집합.

A-B={x|x∈A∧x∉B}

5) 대칭차집합(Symmetric Difference) : 집합 A,B에 대하여 A-B 또는 B-A에 속하는 집합.

A⊕B={x|(x∈A∧x∉B)∨(x∈A∧x∉B)}={x|(x∈A-B)∨(x∈B-A)}

6) 서로소(Disjoint) : 집합 A,B에 대하여 공통으로 속하는 원소가 하나도 없는 경우.

A∩B=

 

˚집합의 대수법칙

집합

대수법칙

A∪∅=A,      A∩U=A

항등법칙(Identity Law)

A∪U=U,      A=

지배법칙(Domination Law)

A∪A=A,      A∩A=A

멱등법칙(Idempotent Law)

A∪B=B∪A, A∩B=B∩A

교환법칙(Communitive Law)

A∪(B∪C)=(A∪B)∪C

A∩(B∩C)=(A∩B)∩C

결합법칙(Associative Law)

A∪(B∩C)=(A∪B)∩(A∪C)

A∩(B∪C)=(A∩B)∪(A∩C)

A×(B∩C)=(A×B)∩(A×C)

A×(B∪C)=(A×B)∪(A×C)

분배법칙(Distribute Law)

(A′)′

이중 보법칙(Double negation Law)

A∪A′=U,      A∩A′=

′=U,          U′=

보법칙(Complement Law)

(A∪B)′=A′∩B′,  (A∩B)′=A′∪B′

드모르간의 법칙(De Morgan's Law)

A∪(A∩B)=A,   A∩(A∪B)=A

흡수법칙(Absorption Law)

* 흡수법칙 증명

A∪(A∩B) = (A∪∅)∩(A∪B)    항등법칙

  = A∪(∅∩B)            분배법칙

  = A∪∅                  지배법칙

  = A                        항등법칙

˚ 공리(Axion)

하나의 이론에서 증명 없이 참(T)이 되는 명제

ex) a=b면, a+c=b+c다.

˚ 정의(Definition)

 논의의 대상을 보편적인 것으로 하기 위해, 사용되는 용어 또는 기호의 의미를 확실하게 규정한 문장이나 식.

ex)한 내각의 크기가 직각인 삼각형을 직각삼각형이라 한다.

˚ 정리(Theorem)

공리와 정의를 통해 증명이 된 명제

ex) 피타고라스의 정리 : 직각삼각형은 빗변의 길이를 한 변으로 하는 정사각형의 넓이와

나머지 두 변의 길이를 각각 한변의 길이로 한 정사각형 두 개의 넓이의 합과 같다.

˚ 증명(proof)

어떤 명제가 참임을 확인하는 과정

 

˚ 직접증명법(Direct Proof)

명제를 변형하지 않고 함축명제 p→q가 T을 증명하는 방법이다.

예제) 모든 정수에 대해 짝수에서 홀수를 뺀 수가 홀수임을 증명하라.

풀이) p : x는 짝수다.

q : x에서 홀수 y를 뺀 수는 홀수다.

p→q : 짝수인 x에서 홀수인 y를 뺀 수는 홀수다.

정수 m,n이 있을 때, 짝수 x는 x=2m, 홀수 y는 y=2n+1 으로 표현할 수 있다.

x에서 y를 뺀 식을 표현하면 다음과 같다.

x - y = 2m - ( 2n + 1 ) = 2m - 2n - 1 = 2 ( m - n ) - 1

m-n을 변수 a로 치환하면, x-y=2a-1로 홀수가 된다.

∴ 명제 p→q "짝수인 x에서 홀수인 y를 뺀 수는 홀수다"는 참이다.

 

˚ 간접증명법(Indirect Proof)

직접 증명하지 않고, 간접으로 증명하는 방법으로, 대우증명법, 모순증명법, 반례증명법, 존재증명법이 있다.

1) 대우증명법(Proof by Conterposition)

함축명제 p→q와 ¬q→¬p가 동치임을 이용하여 증명하는 방법.

2) 모순증명법(Proof by Conteadiction)

함축명제 p→q와 ¬(p∧¬q)가 동치임을 이용하여 증명하는 방법.

3) 반례증명법(Proof by Counter-Example)

주어진 명제에 모순이 되는 예를 찾아 증명하는 방법.

4) 존재증명법(Existence Proof)

주어진 명제가 참이 되는 예를 찾아 증명하는 방법.

 

˚ 수학적 귀납법(Mathematical Induction)

자연수 n에 관한 명제 p(n)이 임의의 자연수에 대하여 만족하는 것을 세 단계의 과정으로 증명하는 방법이다.

1) 기본가정 : p(논의영역의 초깃값)가 성립한다.

2) 귀납가정 : 명제 p(k)가 성립한다면, p(k+1)도 성립한다고 가정한다.

3) 귀납단계 : 기본가정과 귀납가정을 이용해 p(n)이 성립함을 증명한다.

* 귀납이란? 여러 가지 특정 사실들로부터 일반적인 사실을 유도해내는 추론 방법

 

 


이산수학

저자
박주미 지음
출판사
한빛미디어 | 2011-08-29 출간
카테고리
컴퓨터/IT
책소개
논리적 사고를 높여주는 예제로 배우는『이산수학』. 컴퓨터 연산을...
가격비교

 

˚ 명제

1. 명제(Proposition)

참(Ture)인지 거짓(False)인지를 명확하게 판별할 수 있는 문장이나 수식 : p,q,r, …로 표현

 

2. 진릿값(Truth Value)

참이나 거짓을 가르키는 말 : 0, 1

 

3. 논리 연산자(명제의 결합)

1) NOT    부정(Negation) : 'not p' or 'p의 부정'

문장 p가 명제일 때 ~p, ¬p도 명제.

2) AND    논리곱(Conjunction) : 'p and q' or 'p 그리고 q'

p, q 모두 T 일 때 p∧q는 T

3) OR    논리합(Disjunction) : 'p or q', 'p 또는 q'

p, q 모두 F 일 때만 F, p∨q

4) XOR     배타적 논리합(Exclusive OR) : 'p  q'

p, q 진릿값이 하나만 T일 때 T, 그 외는 모두 F

 

4. 합성 명제(명제의 합성)

1) 합성명제(Compound Proposition)

하나 이상의 명제들이 논리 연산자를 이용해 결합된 명제.

 우선순위 

 논리 연산자

 1

 2

 3

 ¬

 ∨, ∧

 →, ↔ 

2) 항진명제(Toutology)     T

합성명제를 구성하는 명제의 진릿값에 상관없이 합성명제의 진릿값이 항상 T인 명제.

3) 모순명제(Contradicion)    F

합성명제를 구성하는 명제의 진릿값에 상관없이 합성명제의 진릿값이 항상 F인 명제.

4) 사건명제(Contingency)

항진명제도, 모순명제도 아닌 명제.

 

5. 함축(조건명제)

1)함축(Implication) / 조건명제(Conditional Proposition)    p→q

"비가 오면 우산을 가지고 간다."는 "비가 온다"라는 조건과 "우산을 가지고 간다"라는 결론이 된다.

이와 같이 조건과 결론의 관계로 결합된 형태를 함축, 조건명제라고 한다.

˚ p implies q : p는 q를 함축한다.

˚ if p then q 또는 p only if q : p면 q다.

*p가 T일 때 반드시 q가 T이면 "p is sufficient for q(p는 q의 충분조건이다)",

   "q is necessary for p(q는 p의 필요조건이다)"라고 하고 p⇒q로 표기한다.

[표] 함축 p→q의 진리표

 p 

 q 

 p→q 

T

T

F

F

T

F

T

F

T

F

T

T

 

2)쌍방조건명제(Biconditional) p↔q

p, q가 조건이면서 결론인 명제.

˚ p if and only of q : p면 q고, q면 p다.

* p⇒q와 같이 모두 T일 경우 p⇔q, q⇔p(q는 p의 필요충분조건)이다.

[표] 함축 p↔q의 진리표

 p 

 q 

 p↔q 

T

T

F

F

T

F

T

F

T

F

F

T

 

6. 역, 이, 대우

역(Converse) : p→q의 역은 q→p

이(Inverse) : p→q의 이는 ¬p→¬q

대우(Contraposition) : p→q의 대우는 ¬q→¬p

[표] 함축 p→q의 역, 이, 대우 진리표

p   q

p→q

q→p

¬p→¬q

¬q→¬p

T   T

T   F

F   T

F   F

T

F

T

T

T

T

F

T

T

T

F

T

T

F

T

T

 

˚ 논리적 동치

1. 명제와 논리적 동치

1) 논리적 동치(Logical Equivalence)    p≡q

p, q의 진릿값이 서로 같은 경우

"p와 q는 같다", "p와 q의 진릿값은 같다"라고 읽는다.

2) 논리적 동치법칙

논리적 동치 

법칙 

 p∧T≡p                 p∨F≡p

 항등법칙(Identity Law)

 p∧F≡F                 p∨T≡T

 지배법칙(Domination Law)

 p∧¬p=F               p∨¬p=T

 부정법칙(Negation Law)

 ¬(¬p)≡p

 이중 부정법칙(Double Negation Law)

 p∧p≡p                 p∨p≡p

 멱등법칙(Idempotent Law)

 p∧q≡q∧p            p∨q≡q∨p

 교환법칙(Commutative Law)

 (p∧q)∧r≡p∧(q∧r)

 (p∨q)∨r≡p∨(q∨r)

 결합법칙(Associative Law)

 p∨(q∧r)≡(p∨q)∧(p∨r)

 p∧(q∨r)≡(p∧q)∨(p∧r)

 분배법칙(Distributive Law)

 ¬(p∧q)≡¬p∨¬q

 ¬(p∨q)≡¬p∧¬q

 드모르간의 법칙(De Morgan's Law)

 p∧(p∨q)≡p         p∨(p∧q)≡p

 흡수법칙(Absorption Law)

 p→q≡¬p∨q

 함축법칙(Implication Law)

예제) 논리적 동치법칙을 이용해 합성명제 {p∧[¬(¬p∨q)]}∨(p∧q)≡p 가 동치임을 보여라.

풀이) {p∧[¬(¬p∨q)]}∨(p∧q)≡p

[p∧(¬(¬p)∧¬q)]∨(p∧q)≡p    드모르간의 법칙

[p∧(p∧¬q)]∨(p∧q)≡p    이중부정의 법칙

[(p∧p)∧¬q]∨(p∧q)≡p    결합법칙

(p∧¬q)∨(p∧q)≡p    멱등법칙

p∧(¬q∨q)≡p    분배법칙

p∧T≡p    부정법칙

p≡p    항등법칙

 

˚ 변수를 포함한 명제와 한정자

1. 명제함수

1) 명제함수(Propositional Function)    P(x)

논의영역 D에 속하는 변수 x를 포함하여 진릿값을 판별할 수 있는 문장.

2) 논의영역(Universe of Discourse)

명제에 포함된 변수 x가 속하게 될 범위

 

2. 한정자(Quantifier)

1) 전칭기호 or 전체한정자(Universal Quantifier)    ∀

논의영역에 속하는 모든 값을 의미

˚ 논의영역 U에 속하는 모든 x에 대해 명제 P(x)는 참 : ∀xP(x)

2) 존재기호 or 존재한정자(Existential Quantifier)    ∃

논의영역에 속하는 어떤 값을 의미

˚ 논의영역 U에 속하는 어떤 x에 대해 명제 p(x)는 참 : ∃xP(x)

 

예제) 다음 표현을 문장으로 서술하라.

(1) ¬(∀xP(x))    (2) ∃x(¬P(x))    (3) ∃x(∀yP(x,y))    (4) ∀x∀yP(x,y)

풀이)

(1) ¬(∀xP(x)) : 모든 x에 대해 P(x)를 만족하지 않는다.

(2) ∃x(¬P(x)) : P(x)가 성립하지 않는 어떤 x는 존재한다.

(3) ∃x(∀yP(x,y)) : 모든 y에 대해 P(x,)를 만족하는 어떤 x는 존재한다.

(4) ∀x∀yP(x,y) : 모든 x에 대해 모든 y가 P(x,y)를 만족한다.

 

˚ 논리

1. 논리와 추론

1) 추론(Inference)

기존의 명제들로부터 결과를 유도해 나가는 과정. 이때 명제들의 참값은 알고 있거나 가정된다

2) 가정 or 전제(Hypothesis), 결론(Conclusion)

근거가 되는 명제가 가정 또는 전제가 되고, 전제로부터 유도되는 명제를 결론이라 한다.

 

2. 정당한 추론(유효추론)

주어진 전제에 의해 유도된 결론이 T이면 "정당한 추론(유효추론)"이라 하고,

그렇지 않은 추론을 "부당한 추론(허위추론)"이라 한다.

 

3. 논리적 추론법칙

법칙 이름

추론법칙

항진명제

 논리곱

(Conjunction)

p

q

∴ p∧q

 없음

 선언적 부가

(Disjunctive Addition)

 p

∴ p∨q

 p→(p∨q)

 단순화

(Simplication)

p∧q

∴ p

(p∧q)→p

 긍정논법

(Modus Pnens)

p

p→q 

∴ q

[p∧(p→q)]→q

 부정논법

(Modus Tollens)

¬q

p→q

∴¬p

[¬q∧(p→q)]→¬p

 선언적 삼단논법 또는 소거

(Disjunctive Syllogism)

p∨q

¬p

∴q

[(p∨q)∧¬p]→q

 가설적 삼단논법 또는 추이

(Hypothetical Syllogism)

p→q

q→r

∴ p→r

[(p→q)∧(q→r)]→(p→r)

*항상 정당하기 때문에 어떠한 전제가 주어졌을 때 결론을 유도해내는 과정에서 사용할 수 있다.

 

+ Recent posts