728x90

연결선에 가중치가 부여된 가중 그래프

- 이동하는데 걸리는 시간

- 어느 경로를 선택해야 목적지에 빠르게 도착할까?

-> 최단 경로 문제

 

 

네비게이션 시스템은 복잡한 지도와 그래프를 사용.

 

다익스트라 알고리즘

- 최단 경로 문제를 해결할 수 있는 알고리즘

 

 

특수 그래프

1. 오일러 그래프

2. 해밀턴 그래프

 

 

오일러 그래프

- 오일러 경로 : 그래프의 모든 연결선을 한번씩만 지나는 경로

- 오일러 순환 : 시작노드와 끝노드가 같은 오일러

- 오일러 그래프 : 오일러 순환을 가지는 그래프

 

 

 

오일러 그래프에 대한 정의

- 연결 그래프의 모든 노드들이 짝수 노드이면 오일러 그래프 

 -> 노드의 차수 : 노드에 근접하는 연결선 개수

 -> 짝수 노드 : 차수가 짝수인 노드

- 연결 그래프의 노드 중 홀수 노드의 개수가 0 또는 2이면 오일러 경로를 가짐

 

오일러 그래프와 한붓그리기

- 한붓 그리기 : 그래프에서 연필을 떼지 않고 모든 변을 오직 한 번만 지나는 것

- 한붓 그리기가 가능하려면 연결 그래프의 홀수 노드의 개수가 0 또는 2여야 함

 

쾨니히스베르크 다리 문제

- 오일러는 쾨니히스베르크 다리 문제를 (다중 그래프에서의) 오일러 순환의 존재 여부 문제로 변환하여 해결함

- 오일러 순환이 존재하지 않음 -> 쾨니히스베르크 다리들을 모두 한번씩만 건너서 출발한 곳으로 다시 돌아올 수 없음

 

해밀턴 그래프

- 해밀턴 경로 : 시작 노드와 끝 노드 빼고 모든 노드를 한번씩만 지나는 경로

- 해밀턴 순환 : 시작노드와 끝노드가 같은 해밀턴 경로

- 해밀턴 그래프 : 해밀턴 순환을 가지는 그래프

 

 

NP-complete

- 어떤 그래프에 해밀턴 경로가 존재하는지 여부를 결정하는 문제를 NP-complete 문제라 함.

- 어떤 그래프가 해밀턴 그래프인지 여부를 구하는 문제

 

 

윌리엄 로언 해밀턴

- 아일랜드 수학자, 물리학자, 천문학자

- 사원수를 발견할 인물

- 광학, 동역학 및 대수학의 발전에 큰 공헌을 함

 

 

순회 판매원 문제

- 방문할 도시들과 이들 도시 사이의 거리가 주어질때, 순회 판매원이 어떤 특정 도시를 출발하여 어떠한 도시도 두 번 방문함 없이 모든 도시를 거쳐 처음 출발한 도시로 돌아오는 경우의 '최소 경로'를 찾는 문제

- 일반적인 해결 알고리즘이 존재하지 않음

- 도시가 많아질 수록 경우의 수가 크게 늘어남 -> NP-hard 문제(NP-complete 보다 어려운 문제)

 

최단 경로 문제

- 최단 경로 : 가중 그래프에서 가장 짧은 거리의 경로

 

 

다익스트라 알고리즘

- 가중치가 모드 음수값이 아닌 방향 그래프에서 주어진 출발점과 도착점 사이의 최단 경로를 찾아주는 알고리즘

ex) 1에서 2까지 최단 거리는? 1에서 3까지 최단 거리는? 1에서 4까지 최단 거리는?

 

 

에츠허르 다익스트라

- 네덜란드 출신 컴퓨터 과학자

- 전산학이 정립되지 않은 시절 전산학의 여러 분야에 기여함

- 다익스트라 알고리즘을 개발하여 최단 경로 문제에 대한 학문적 연구를 시작

- GOTO문 사용하지 말것을 주장

- 세마포어에 대한 연구를 처음 시작함

- 1972년 튜링상 수상

 

다익스트라 알고리즘의 Pseudo-code

void Dijkstra()
{
	S = {1};
    for (i=2; i <= n; i = i + 1)
    {
    	D[i] = C[1, i];
        // D[i]는 노드 i에서 노드 j까지의 최단 거리
        // C[i, j]는 노드 i에서 노드 j까지의 거리
        // 노드 i에서 노드 j로 가는 연결선이 없다면 C[i, j] = inf
    }
    
    for (i = 1; i <= n - 1; i = i + 1)
    {
    	V - S에 있는 노드 중에서 D[w]가 최소인 노드 w를 선택;
        w를 S에 추가;
        V - S에 있는 각 노드 v에 대해 D[v] = min(D[v], D[w] + C[w, v]);
    }
}

 

다익스트라 알고리즘의 적용 예시

- 1에서 2까지 최단거리 = 10

- 1에서 3까지 최단거리 = 60

- 1에서 4까지 최단거리 = 50

- 1에서 5까지 최단거리 = 30

 

 

 

그래프의 탐색

1. 탐색 정의

2. 깊이 우선 탐색

3. 너비 우선 탐색

 

 

 

 

그래프 탐색

- 그래프의 모든 노드를 체계적으로 방문하는 방법

ex) 깊이 우선 탐색, 너비 우선 탐색

 

메모리 구조

- 스택

- 큐

 

 

스택

- LIFO(Last In First Out) 구조를 가지는 메모리 한 형태

- FIFO(First In First Out) 구조를 가지는 메모리 한 형태

 

 

깊이 우선 탐색 Depth First Search, DFS 과정

1. 임의의 시작 노드 v를 선택하고 탐색

2. v에 인접한 노드 중

  -> 방문하지 않는 노드 w가 있으면 v를 스택에 push하고 w를 방문, 그리고 w를 v로 설정한 뒤 2를 반복

  -> 방문하지 않은 노드가 없으면 스택을 pop하여 받은 가장 마지막 방문 노드를 v로 설정한 뒤 2를 방문

3. 스택이 공백이 될 떄 까지 2를 반복

 

 

깊이 우선 탐색 과정 예

- A를 우선 탐색 -> 스택

- B를 탐색 -> 스택 A

- D를 탐색 -> 스택  A B

- G를 탐색 -> 스택 A B D

- F를 탐색 -> 스택 A B D G

- F에 인접한 노드가 없음 -> G를 Pop

- E를 탐색 -> 스택 A B D

- C를 탐색 -> 스택 A B D E

- C에 인접한 탐색할 노드 없음 -> E Pop -> 스택 A B D

- D에서 탐색할 노드 없음 -> D pop -> 스택 A B

- B에서 탐색할 노드 없음 -> B pop -> 스택 A

- A에서 탐색할 노드 없음 -> A Pop -> 스택 

 

 

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

1. 인의의 시작노드 v를 선택하고 이를 탐색한다.

2. v에 인접한 노드 중

 - 방문하지 않는 노드를 차례로 방문하여 큐에 enQueue 한다.

 - 방문하지 않은 인접한 노드가 없으면 큐에서 deQueue한 노드를 가지고 2를 계속 반복

3. 큐가 공백이 될 때 까지 2를 반복한다.

 

 

너비 우선 탐색 과정 예

1. A를 우선 탐색 . v = A

2. B를 탐색 -> enQueue B -> Queue B

3. C를 탐색 -> enQueue C -> Queue B C

4. v에 더이상 인접한 노드 없음 -> deQueue B -> v = B -> Queue C

5. D를 탐색 -> enQueue D -> Queue C D

6. E를 탐색 -> enQueue E -> Queue C D E

7. v(B)에 인접한 노드 없음 -> deQueue C -> v = C -> queue D E

8. v(C)에 인접한 노드 없음 -> deQueue D -> v = D -> queue E

9. G를 탐색 -> enQueue G -> Queue E G

10. v(D)에 인접한 노드 없음 -> deQueue E -> v = E -> queue G

11. F 탐색 -> enQueue G -> Queue G F

12. v(E)에 인접한 노드 없음 -> deQueue G -> v = G -> queue F

13. v(G)에 인접한 노드 없음 -> deQuque F -> V = F -> queue 

14. 종료

 

300x250

'수학 > 알고리즘' 카테고리의 다른 글

이산 수학 - 16 트리 활용  (0) 2020.06.08
이산 수학 - 15 트리  (0) 2020.06.08
이산 수학 - 13 그래프  (0) 2020.06.08
이산 수학 - 10 관계  (0) 2020.06.07
이산 수학 - 2 수의 종류  (0) 2020.06.07
728x90

 

 

쾨니흐스베르크의 다리 문제

- 7개의 다리들을 한번씩만 건너면서 처음 위치로 돌아오는 길이 있는가?

오일러의 증명

- 그래프를 이용하여 다리 문제가 불가능함을 증명함

 

 

평면 그래프

- 어떤 연결선도 노드가 아닌곳에서 교차하지 않는 그래프

 

 

그래프의 정의

그래프 G = (V, E)

- 이산 수학에서의 그래프 : 점과 선들의 집합

- V = {$v_1$, $v_2$} :: 노드 집합

- E = {$e_{ij$} = ($v_i$, $v_j$) | $v_i$, $v_j$ $\in$ V} : 연결 선(에지)들의 집합

 

 

 

그래프 G = (V, E)에 대하여

- u, v $\in$ V 이고, e = (u, v) $\in$ E

 -> u와 v는 인접(adjacent)

 -> e는 u와 v에 근접(incident)

- u $\in$ V 이고, e = (u, u) $\in$ E -> e: 루프(loop)

 

 연결선의 종류

- (v, w)와 (w, v)를 다르게 취급 -> 유향 그래프

- (v, w)와 (w, v)를 동일하게 취급 -> 무향 그래프

 

 

다중 그래프

- 두 노드 사이에 두 개 이상의 연결선이 있는 그래프

 

가중 그래프

- 각 연결선에 가중치가 부여된 그래프

- 네트워크 라고도 함.

- a, b, c, d가 도시를 나타내고 연결선의 가중치는 각 도시를 자동차로 갈 때 걸리는 시간을 나타내면, a에서 d까지 가는 최소 시간 경로는?

- 도로망, 철도망 또는 네트워크를 설계할 때 유용하게 사용됨.

 

 

그래프 용어

v $\in$ G의 차수

- v에 근접하는 연결선의 개수

 -> deg(v)로 표기 (deg(v)가 홀수면 v는 홀수 노드, deg(v)가 짝수면 v는 짝수 노드)

- G가 유향 그래프인 경우

 -> v의 진입 차수 : v로 들어오는 연결선 개수, in_deg(v)로 표기

 -> v의 진출 차수 : v에서 나가는 연결선의 개수, out_deg(v)로 표기

- 그래프 G의 차수 : 각 노드의 차수 중 최대 차수 -> deg(G)로 표기

 

 

그래프 차수 예시

- deg(1) = 2 -> 1 : 짝수 노드

- deg(2) = 2 -> 2: 짝수 노드

- deg(3) = 3 -> 3: 홀수 노드

- deg(4) = 2 -> 4 : 짝수 노드

- deg(5) = 1 -> 5: 홀수 노드

- deg(G) = 3

 

차수 특성

- $\sum_{v \in V}$ deg(v) = 2 |E|

 -> 모든 노드들의 차수의 합은 연결선의 개수의 2배와 같다.

- 홀수 노드의 개수는 짝수이다.

 

 

 

보행 Walk

- 노드와 연결선이 화살표와 함께 교대로 나열된 형태로, 각 연결선의 앞과 뒤에 위치한 노드는 그 연결선의 양 끝에 위치한 노드를 의미

- 표기시 연결선을 생략하기도 함.

- 보행의 길이 : 보행을 구성하는 연결선의 구성

 

1 -> $e_1$ -> 3 -> $e_3$ -> 4 -> $e_4$->2

or 1 -> 3 -> 4 -> 2

=> 길이 = 3

 

경로 Path

- 연결선이 중복되지 않는 보행. 보행의 특수한 경우

- 경로의 길이 : 경로를 구성하는 연결선의 개수

 

단순 경로 simple path

- 시작노드와 끝노드를 제외하고 노드가 중복되지 않는 경로

 

사이클 cycle

- 시작 노드와 끝 노드가 같은 경로

 

그래프에서의 연결

- v $\in$ V, w $\in$ V가 연결 -> v에서 w까지의 경로가 존재

 

연결 그래프

- 서로 다른 모든 노드를이 연결된 그래프

- 단절 그래프 : 모두 연결되지 않은 그래프

 

 

그래프의 종류

- 정규 그래프 : 모든 노드의 차수가 동일한 그래프

 -> 차수가 k인 무향 정규 그래프의 연결선 개수는 |V| x $\frac{k} {2}$

- 완전 그래프 : 모든 노드의 차수가 |V|(노드의 개수) - 1인 정규 그래프

 -> 노드의 개수가 n인 무향 완전 그래프는 $K_n$으로 표기

 -> 무향 완전 그래프의 연결선 개수는 |V| x $\frac{|V| - 1} {2}$

 

 

평면 그래프

- 그래프를 평면에 그릴때, 어떤 연결선도 노드가 아닌곳에서 교차하지 않도록 그릴수 있는 그래프

 

 

동형 그래프

- 그래프 G = (V, E)와 G' = (V', E')에 대하여 다음을 만족하는 함수

     f: V -> V'이 존재하면 G와 G'를 동형이라고 함

- f는 전단사 함수

- u, v $\in$ V에 대하여 (u, v) $\in$ E 이면 ( f(u), f(v) ) $\in$ E' 

 

이분 그래프 

- 그래프 G = (V,E)가 다음을 만족시키면 이분 그래프라고 함

- V = $V_1$ $\cup$ $V_2$, $V_1$ $\cap$ $V_2$ = $\Phi$를 만족하는 공집합이 아닌 노드 집합 $V_1$, $V_2$가 존재

- 모든 (u, v) $\in$ E에 대해 만약 u $\in$ $V_1$이면 v $\in$ $V_2$이고,반대로 u $\in$ $V_2$이면 v $\in$ $V_1$이다.

 

완전 이분 그래프

- 그래프 G = (V, E)가 다음을 만족 시 완전 이분 그래프라고 함

- G는 이분 그래프

- $V_1$의 모든 노드들과 $V_2$의 모든 노드들이 인접함 

 

부분 그래프 subgraph

- 그래프 G = (V, E)와 G' = (V', E')에 대해 V' $\subset$ V 이고, E' $\subset$ E이면 G'는 g의 부분그래프

 

 

 

생성 부분 그래프  spanning subgraph

- 그래프 G = (V, E)와 G' = (V', E')에 대해 V' = V이고, E' $\subset$ E이면, G'는 G의 생성 부분 그래프

 

 

오일러 그래프

- 오일러 경로 : 그래프의 모든 연결선을 한번씩만 지나가는 경로

- 오일러 순환 : 시작 노드와 끝 노드가 같은 오일러 경로

- 오일러 그래프 : 오일러 순환을 가지는 그래프

- 오일러 그래프는 한붓 그리기와 관련

 

 

 

 

해밀턴 경로

- 해밀턴 경로 : 시작 노드와 끝 노드를 제외하고 그래프 모든 노드를 한번씩만 지나가는 경로

- 해밀턴 순환 : 시작 노드와 끝 노드가 같은 해밀턴 경로

- 해밀턴 그래프 : 해밀턴 순환을 가지는 그래프

 

 

 

순환 그래프

- V = {$v_1$, $v_2$, .., $v_n$} 인 그래프 G = (V, E)가 다음을 만족하면 G를 순환그래프라 함

- G는 무향 그래프

- ($v_i$, $v_j$2) $\in$ E이면 j = i +- mod n

* 노드의 개수가 n인 순환 그래프를 $C_n$으로 표기

* 다각형의 그래프 모델

 

 

트리

- 그래프 G가 다음을 만족시키는 경우 G를 트리라고함

- G는 연결 그래프 -> 서로 다른 모든 노드들 사이에 경로가 존재

- 루트 노드가 존재 -> 루트 노드 : 나무의 뿌리에 해당하는 (트리의 가장 높은 곳에 존재하는) 노드

- G에는 사이클이 없어야 함

 

연결 그래프

- 좌측은 연결 그래프가 아니기 때문에 트리가 아니며, 우측 그래프는 사이클이 존재하므로 트리가 안됨

 

 

오일러 공식

- 연결된 평면 그래프 노드의 수를 v, 연결선의 수를 e, 영역(연결선으로 나눠진 공간)의 수를 s라 하면 다음이 성립

 

 

 

그래프의 표현

1. 인접 행렬

2. 인접 리스트

 

 

 

 

인접 행렬

- 그래프 G = (V, E)에서 |V| = n일때, G의 n x n 인접 행렬 $A_G$ = ($a_{ij}$는 다음과 같이 정의됨

- 무향 그래프의 인접 행렬은 대칭 행렬

- 그래프 인접행렬에 0이 아닌 대각 원소가 존재하면(위 경우 $a_{11}$ = 1) 그래프에 루프가 존재

 

 

인접 리스트

연결 리스트

- 자료구조의 일종

- 데이터 집합을 저장할때 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장

- 배열 방식에 비해 데이터의 추가/삽입 및 삭제가 용이하나 탐색 속도는 떨어지는 데이터 저장 방식

- 그래프 G = (V, E)를 구성하는 각 노드에 인접한 노드들을 연결 리스트로 표현한 것

300x250

'수학 > 알고리즘' 카테고리의 다른 글

이산 수학 - 15 트리  (0) 2020.06.08
이산 수학 - 14 그래프의 활용  (0) 2020.06.08
이산 수학 - 10 관계  (0) 2020.06.07
이산 수학 - 2 수의 종류  (0) 2020.06.07
이산 수학 - 1 집합  (0) 2020.06.07
728x90
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    }
  });
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML"></script>

 

집합 A, B가 주어질 때

- A, B의 곱 집합 : A x B = {(a, b) | a $\in$ A, b $\in$ B}

- A에서 B로으의 관계 R은 A x B의 한 부분잡합을 의미

=> (a, b) $\in$ R이면, aRb로 표기 / (a, b) $\notin$ R 이면 a$\bar{R}$b로 표기

 

ex) 철수는 1반, 영희는 2반, 영진은 1반 일때 학생에서 반으로의 관계 R로 표시하면

- R = {(철수, 1반), (영희, 2반), (영진, 1반)} $\subset$ A x B

- 철수R1반, 영희R2반, 영진 R1반, 영진$\bar{R}$2반

 

 

집합 A, B가 주어질때

- B = A이면 A에서 A로의 관계 R을 'A에서의 관계'라고도 함

 

A = {철수, 영희, 짱구}에 대하여

- 철수와 영희는 친구, 출수와 짱구는 친구, 영희와 짱구는 친구라는 관계를 R로 표기하면

- R = {(철수, 영희), (철수, 짱구), (영희, 짱구)}

 

 

A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a < b }로 주어지면

- R = {(1, 2), (1,3), (1,4), (2, 3), (2,4), (3, 4)}

- 1R4, 3$\bar{R}$2

 

 

 

A에서 B로의 관계 R이 주어질 때

- A = R의 정의역(domain)

- B = R의 공역(Codomain)

- R의 치역(Range) = {b $\in$ B | (a, b) $\in$ R인 a $\in$ A가 존재}

- R의 치역 $\subset$ R의 공역 = B

 

 

예시

- 집합 A = {철수, 영희, 영진}, 집합 B = {1반, 2반, 3반}와 철수는 1반, 영희는 2반, 영진은 1반을 나타내는 관계 R에 대하여

- R의 정의역 = {철수, 영희, 영진} = A

- R의 공역 = {1반, 2반, 3반} = B

- R의 치역 = 1반, 2반

 

 

관계의 표현 방법

1. 순서쌍을 이용한 표현

- 관계의 모든 원소를 순서쌍으로 표현

- 집합 A = {1, 2, 3, 4}, 집합 B = {2, 3, 4, 5}, R = {(a, b) $\in$ A x B | a + b는 짝수}

-> R = {(1, 3), (1, 5), (2, 2), (2,4), (3, 3), (3, 5), (4, 2), (4, 4)}

 

2. 화살표 도표를 이용한 표현

- A에서 B로의 관계 R이 주어졌을 때, 만약 (a, b) $\in$ R이면 a와 b를 화살표로 연결해서 관계를 표현

ex) 집합 A = (1, 2, 3, 4}, B ={2, 3, 4, 5}, R = {(a, b) $\in$ A x B | a + b는 소수}

 

 

3. 좌표를 이용한 표현

- A에서 B로의 관계 R이 주어졌을때 A의 원소는 x축, B의 우너소는 y축에 표시

- (a, b) $\in$ R이면 a를 가리키는 축과 b를 가리키는 축이 만나는 점을 좌표에 표시

ex) 집합 A = (1, 2, 3, 4}, B ={2, 3, 4, 5}, R = {(a, b) $\in$ A x B | a + b는 짝수}

- x축에 A의 원소, y축에는 b의 원소

 

4. 관계 행렬을 이용한 표현

- A, B로 관계 R이 주어질 때 A의 각 원소가 행을 나타내는 것으로, B의 각 원소는 열을 나타내는 것으로 가정

- (a, b) $\in$ R이면 a를 가리키는 행과 b를 가리키는 열이 만나는 원소는 1

- (a, b) $\notin$ R이면 a를 가리키는 행과 b를 가리ㅣ는 열이 만나는 원소는 0

ex) 집합 A = (1, 2, 3, 4}, B ={2, 3, 4, 5}, R = {(a, b) $\in$ A x B | a + b는 짝수}

 

 

5. 방향 그래프를 이용한 표현

- 그래프 : 점들과 점 사이를 연결한 선으로 구성된 수학적 개념

- 방향 그래프 : 점 사이를 연결한 선이 화살표인 그래프

 

 

 

방향 그래프를 이용한 표현

- A에서의 관계 R이 주어질 때 A의 각 원소를 점으로 표시하고 (a, b) $\in$ R이면, a를 나타내는 점에서 b를 나타내는 점으로 화살표를 그려서 관계를 표현

ex) 집합 A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a - b $\geq$ 0}

 

관계의 성질

- 반사성

- 대칭성

- 추이성

 

 

 

반사성의 정의

- 집합 A에서 관계 R이 주어질때, 모든 a $\in$ A에 대해서 (a, a) $\in$ R이면 R이 반사성을 가진다고 하거나 R을 반사 관계라고 함.

ex) A = {1, 2, 3, 4} , R = {(a, b) $\in$ A x A | a - b $\geq$ 0}

- R ={(1, 1), (2, 1), (2, 2), (3, 1), (3, 2), (3, 3), (4, 1), (4, 2), (4, 3), (4, 4)}

 -> R은 반사 관계

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a - b $\gt$ 0}

- R = {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3)}

 -> R은 반사 관계가 아님( (1,1) $\notin$ R)

 

 

반사 관계의 특징

- R이 반사 관계이면 R의 관계 행렬의 대각 원소는 모두 1

- R이 반사 관계이면 R의 방향 그래프 표현에서 모든점은 루프를 가짐

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a - b $\geq$ 0}

 

비반사성

- 집합 A에서 관계 R가 주어질때, 모든 a $\in$ A에 대하여 (a, a) $\notin$ R이면, R이 비반사성을 가진다거나 R을 비반사 관계라고 한다.

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a- b $\gt$ 0}

- 관계 행렬의 대각 원소가 0, 방향 그래프에서 모든 점은 루프를 가지지 않음 -> 비반사 관계

- R = {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3)}, 비반사 관계

 

반사 관계와 비반사 관계의 관계

- 반사 관계가 아니면 비반사 관계이다? -> 거짓

- 다음 관계는 반사 관계도 비반사 관계도 아님

 

 

 

대칭성

- 집합 A에서 관계 R이 주어질때 , (a, b) $\in$ R이면 항상 (b, a) $\in$ R을 만족시키면 R이 대칭성을 가진다 하며, R을 대칭 관계라고 함.

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a + b는 홀수}

- R = {(1, 2), (1, 4), (2, 1), (2, 3), (3, 2), (3, 4), (4, 1), (4, 3)}

 -> R은 대칭 관계

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a - b $\get$ 0}

- R = {(1, 1), (2,1), (2, 2), (3, 1), (3, 2), (3, 3), (4, 1), (4, 2), (4, 3), (4, 4)}

 -> (2, 1) $\in$ R, (1, 2) $\notin$ R => R은 대칭 관계가 아님

 

 

대칭 관계의 특징

- R의 관계 행렬은 대칭 행렬

- R의 방향 그래프 표현에서 어떤 점 x에서 다른점 y로 가는 연결선이 존재하면 y에서 x로 가는 연결선도 반드시 존재

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a + b는 홀수}

 

 

추이성

- 집합 A에서 관계 R이 주어질때, (a, b) $\in$ R이고, (b, c) $\in$ R이면 항상 (a, c) $\in$ R을 만족 시키면, R은 추이성을 가진다 하고, R을 추이 관계라고 한다

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a - b $\get$ 0} -> R은 추이관계

- (a, b) $\in$ R -> a - b $\get$ 0

- (b, c) $\in$ R - > b - c $\get$ 0

 => (a, b) $\in$ R, (b, c) $\in$ R -> a - b $\get$ 0, b - c $\get$ 0 -> a -c $\get$ 0 -> (a, c) $\in$ R

ex) A = {1, 2, 3, 4}, R = {(a, b) $\in$ A x A | a + b는 홀수} -> R은 추이 관계가 아님

 - (1, 2) $\in$ R이고, (2, 3) $\in$ R이지만 (1, 3) $\notin$ R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

300x250

'수학 > 알고리즘' 카테고리의 다른 글

이산 수학 - 15 트리  (0) 2020.06.08
이산 수학 - 14 그래프의 활용  (0) 2020.06.08
이산 수학 - 13 그래프  (0) 2020.06.08
이산 수학 - 2 수의 종류  (0) 2020.06.07
이산 수학 - 1 집합  (0) 2020.06.07
728x90

 

자연수의 집합

- N = {1, 2, 3, ...} -> N(Natural Number}

 

정수의 집합

- Z = {..., -2, -1, 0, 1, 2, ...} => Z(Zahlen) : 독일어로 정수 의미

- N $\subset$ Z 

 

유리수의 집합

- Q = {x | x = $\frac{b} {a}$, a는 0이아닌 정수, b는 정수} -> Q(Quotient)

- N $\subset$ Z $\subset$ Q

 

실수의 집합

- R = {x | x는 소수로 표현 가능} => R(Real Number)

-  N $\subset$ Z $\subset$ Q $\subset$ R

 

 

무리수

- I = {x | x는 실수지만 유리수가 아닌 수 } => I(Irrational Number)

 

 

방정식 $x^2$ = -1을 만족하는 실수 x 존재 여부

-> 실수의 제곱은 음수가 될수 없음

 

허수 i

- $x^2$ = -1을 만족하는 x중의 하나를 i로 표시

- i = $\sqrt(-1)$, i^2 = -1

 

 

복소수 집합

- C = {x | 실수 a, b에 대해서 x = a + bi} => C(Complex Number)

- x = a + bi ( a는 x의 실수부, x는 i의 허수부)

 

켤레 복소수

- x = a + bi가 있을때

- $\bar{x}$ = a - bi를 x의 켤례 복소수라 한다.

- x축에 대해 대칭

 

 

복소수, 평면 벡터, 좌표 평면의 관계

- 벡터 : 시작점과 끝점으로 구성. 시작점에서 끝점을 향하는 화살표, 이 화살표의 길이를 벡터의 크기가됨

 -> a + bi의 길이 =  | a + bi |

 

 

300x250

'수학 > 알고리즘' 카테고리의 다른 글

이산 수학 - 15 트리  (0) 2020.06.08
이산 수학 - 14 그래프의 활용  (0) 2020.06.08
이산 수학 - 13 그래프  (0) 2020.06.08
이산 수학 - 10 관계  (0) 2020.06.07
이산 수학 - 1 집합  (0) 2020.06.07
728x90

 

 

집합론

- 역설을 해결하는 과정을 통해 발전해온 이론

 

세비아의 이발사 역설

- 세비아의 이발사가 스스로 이발하지 않는 모든 사람들을 이발시켜준다면, 이발사는 스스로 이발해야하는가?

- 세비아 이발사는 스스로 이발해도 모순

- 세비아의 이발사는 스스로 이발하지 않아도 모순

=> 집합을 명확히 정의하지 않으면 다양한 모순이 발생

 

집합

- 명확한 조건이 주어질때, 이 조건을 만족하는 대상들의 모임

 

원소

- 집합을 구성하는 성분

- S가 집합이고 a가 S의 원소이면 a $\in$ S

- a가 집합 S에 포함되지 않으면 a $\notin$ S로 표기

ex) S가 대한민국 광역시의 모임 -> 부산 $\in$ S, 서울 $\notin$ S

 

 

집합의 표기

- 집합은 {} 사이에 원소를 나열하거나 집합 원소의 조건 등을 명기하여 표시함

ex) S가 대한민국 광역시의 모임 -> S = {부산, 대구, 인천, 광주, 대구, 울산};

 

 

기수 cardinality

- 집합의 원소 개수

- 집합 S의 기수는 |S| 또는 #S로 표기

- S = {2, 3, 4, 5} => |S| = 4

- N = 자연수의 집합 -> |N| = $\inf$(무한대)

 

 

집합 표기

1. 원소 나열법

- 집합에 포함되는 원소들을 일일이 나열하는 방법

- A = {2, 3, 4, 5}

- B = {1, 2, 3, ....}

 

2. 조건 제시법

- 원소들의 공통적인 성질을 조건식으로 제시하는 방법

- A = { x | x는 자연수이고 1 < x < 6}

- N = { x | x는 자연수}

 

 

벤다이어그램

- 집합과 원소의 포함 관계를 그림으로 보여주는 방법

 

 

 

 

 

 

300x250

'수학 > 알고리즘' 카테고리의 다른 글

이산 수학 - 15 트리  (0) 2020.06.08
이산 수학 - 14 그래프의 활용  (0) 2020.06.08
이산 수학 - 13 그래프  (0) 2020.06.08
이산 수학 - 10 관계  (0) 2020.06.07
이산 수학 - 2 수의 종류  (0) 2020.06.07

+ Recent posts