주요 내용 왜 그래프인가? 기본 용어 그래프의 표현 오일러(Euler) 그래프와 해밀턴(Hamilton) 그래프

Slides:



Advertisements
Similar presentations
14 장. 그래프 알고리즘 Internet Computing KUT Youn-Hee Han.
Advertisements

1. 도형의 연결 상태 2. 꼭지점과 변으로 이루어진 도형 Ⅷ. 도형의 관찰 도형의 연결상태 연결상태가 같은 도형 단일폐곡선의 성질 연결상태가 같은 입체도형 뫼비우스의 띠.
1.3.1 원의 방정식. 생각해봅시다. SK 텔레콤에서는 중화동에 기지국을 세우려고 한다. 이 기지국은 중화고, 중화우체국, 뚝방에 모두 전파를 보내야 한다. 기지국은 어디에 세워야 할까 ? 중화동의 지도는 다음과 같다 원의 방정식.
Add Your Text 5. 지수함수와 로그함수 1. 지수함수 2. 로그함수 · 지수함수와 그 그래프 · 지수방정식과 지수부등식 · 로그 함수와 그 그래프 · 로그방정식과 로그부등식.
주요 내용 기본 용어 이진 트리(binary tree) 이진 탐색 트리(binary search tree)
주요 내용 기본 용어 그래프의 표현 오일러(Euler) 그래프와 해밀턴(Hamilton) 그래프
그래프.
적분방법의 연속방정식으로부터 Q=AV 방정식을 도출하라.
제2장 주파수 영역에서의 모델링.
공차 및 끼워맞춤.
수치해석 6장 예제문제 환경공학과 천대길.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
CHAP 10:그래프 (1) 순천향대학교 하상호.
되추적(Backtracking).
Chapter 02 순환 (Recursion).
강의 #9 그래프(Graph).
Error Detection and Correction
Modulo 연산.
그래프의 기본 연산 깊이-우선 탐색(DFS; Depth-First Search) (1) 출발 정점 v를 방문
CHAP 10 : 그래프.
CHAP 10 : 그래프.
CHAP 10: 그래프(part 2) 순천향대학교 하상호.
보고서 #5(제출기한: 10/14) 다음 문제를 해결하시오.
Ch4.마디해석법, 메쉬해석법 마디해석법, 초마디 기법, 메쉬해석법, 초메쉬 기법
C언어 응용 제 11 주 그래프1.
행렬 기본 개념 행렬의 연산 여러가지 행렬 행렬식 역행렬 연립 일차 방정식 부울행렬.
Trigonometric Function
별의 밝기와 거리[2] 밝다고 가까운 별은 아니야! 빛의 밝기와 거리와의 관계 별의 밝기 결정.
Ⅲ. 이 차 방 정 식 1. 이차방정식과 그 풀이 2. 근 의 공 식.
제1장 통계학이란 무엇인가 제2장 자료와 수집 제3장 자료 분석 방법
CHAP 10:그래프 (2) 순천향대학교 하상호.
1.4 중첩된 한정기호 (Nested Quantifiers) 이산수학 (Discrete Mathematics)
자바 5.0 프로그래밍.
어서와 C언어는 처음이지 제14장.
피타고라스 정리 Esc.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
도형의 기초 3. 기본작도 삼각형의 작도 수직이등분선의 작도 각의 이등분선의 작도.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
이산수학 – Discrete Mathematics
Metal Forming CAE Lab., Gyeongsang National University
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
합집합과 교집합이란 무엇인가? 01 합집합 두 집합 A, B에 대하여 A에 속하거나 B에 속하는 모든 원소로 이루어진 집합을 A와 B의 합집합이라고 하며, 기호 A∪B로 나타낸다. A∪B ={x | x∈A 또는 x∈B}
P 등속 직선 운동 생각열기 – 자동차를 타고 고속도로를 달릴 때, 속력계 바늘이 일정한 눈금을 가리키며 움직이지 않을 때가 있다. 이 때 자동차의 속력은 어떠할까? ( 속력이 일정하다 .)
⊙ 이차방정식의 활용 이차방정식의 활용 문제 풀이 순서 (1)문제 해결을 위해 구하고자 하는 것을 미지수 로 정한다.
평 면 도 형 삼각형 다각형 원과 부채꼴 다각형과 원 학습내용을 로 선택하세요 다각형과 원
수학10-나 1학년 2학기 Ⅳ.삼각함수 3. 삼각함수의 그래프(7/12) 삼각함수 수업계획 수업활동.
01 로그의 정의 ⑴ 일 때, 양수 에 대하여 을 만족시키는 실수 는 오직 하나 존재한다. 이때 를
이차방정식과 이차함수의 관계 이차함수의 그래프와 축의 위치 관계 이차방정식 의 그래프와 축이 만나는 점의 좌표는 이차방정식
1. 선분 등분하기 (1) 주어진 선분 수직 2등분 하기 ① 주어진 선분 AB를 그린다. ② 점 A를 중심으로 선분AB보다
Chapter 7. 그래프.
약식 진리표를 이용한 타당성 증명 진리표 그리기 방법의 한계
Ch4.마디해석법, 메쉬해석법 마디해석법, 초마디 기법, 메쉬해석법, 초메쉬 기법 : 회로를 해석하는 일반적인 방법을 제시.
보고서 #2(제출기한: 09/23) 다음 문제를 해결하시오. (7)
Chapter 1 단위, 물리량, 벡터.
원의 방정식 원의 방정식 x축, y축에 접하는 원의 방정식 두 원의 위치 관계 공통접선 원과 직선의 위치 관계
학 습 목 표 직선의 방정식 직선의 방정식 두 직선의 위치 관계 두 직선의 교점을 지나는 직선 점과 직선 사이의 거리.
Chapter 1 단위, 물리량, 벡터.
1. 접선의 방정식 2010년 설악산.
학습 주제 p 끓는점은 물질마다 다를까.
상관계수.
7. 힘과 운동 속력이 변하지 않는 운동.
이산수학 논리∙명제에서 알고리즘까지 √ 원리를 알면 IT가 맛있다.
수치해석 ch3 환경공학과 김지숙.
전류의 세기와 거리에 따른 도선 주변 자기장 세기 변화에 대한 실험적 고찰
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
C++ Espresso 제15장 STL 알고리즘.
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
피보나치수열에 대하여 한림초 5학년 신동오.
Presentation transcript:

주요 내용 왜 그래프인가? 기본 용어 그래프의 표현 오일러(Euler) 그래프와 해밀턴(Hamilton) 그래프 방향 그래프(directed graph, digraph) 최단 경로 알고리즘 그래프 순회(graph traversal) 평면 그래프(planar graph) 그래프의 채색(graph coloring)

왜 그래프인가? 컴퓨터를 하는 사람에게 그래프는 어떤 의미가 있는가? 우리가 풀고자 하는 문제의 본질을 추출하여 단순화된 그림(abstract, 抽象)으로 문제를 표현할 수 있도록 한다. 그래서 우리는 이 단순화된 그림을 통해서 문제를 해결하는 알고리즘을 찾고자 한다.

예: Konigsberg의 7개 다리 프러시아의 도시인 Konigsberg(지금은 러시아의 Kaliningrad)는 Pregel강의 양쪽에 위치하고 있었다. 강 가운데는 두 개의 섬이 있고, 도시는 일곱개의 다리로 연결되어 있었다. 문제: 다리를 한번만 건너면서, 모든 다리를 지나서 출발했던 지점으로 다시 돌아 오는 길을 찾는다.

앞의 문제를 다시 표현하면, 이 문제를 풀기 위해서 우리가 관심있는 것은? - 육지에서의 길은 의미가 없다. - 오직 의미가 있는 것은 지나는 다리의 순서이다. 따라서 이 문제는 다음과 같은 추상적 모형(그림)으로 표현할 수 있다. - 육지는 점(vertex, node)으로 표현하다. - 다리는 선(edge)으로 표현한다.

위의 세 그림은 이 문제를 표현한 추상화한 그림이라는 점에서는 모두 같다. 왜? 모두 이 문제의 같은 본질(?)을 갖고 있기 때문이다.

주요 내용 왜 그래프인가? 기본 용어 그래프의 표현 오일러(Euler) 그래프와 해밀턴(Hamilton) 그래프 방향 그래프(directed graph, digraph) 최단 경로 알고리즘 그래프 순회(graph traversal) 평면 그래프(planar graph) 그래프의 채색(graph coloring)

기본 용어 그래프(graph) 그래프 G는 다음의 두 가지 집합으로 구성되며 G={V, E} 로 표시한다. 여기서 V는 정점(vertex)들의 집합이며, E는 정점들을 연결하는 선(edge)들의 집합이다. e1 e2 v3 e3 e5 e6 e9 e10 v2 v1 v4 v6 v8 v5 v7 v9 e4 e7 e8

임의의 연결선 e=(u,v)에 대해서 정점 u와 v는 서로 인접(adjacent)했다고 하며, u와 v는 e의 끝점(end point) 이라고 한다. e는 정점 u와 정점 v에 접합(incident)한다고 한다. 연결선의 두 끝점이 같은 정점이면 이 연결선을 루프(loop)라고 한다. 또한 두 개 이상의 연결선이 같은 끝점을 가지면 이 연결선을 다중 연결선(multiple edge)이라고 한다. 이와 같이 다중 연결선이나 루프를 갖는 그래프를 다중 그래프(multiple graph)라고 한다. 그리고 다중 그래프가 아닌 그래프를 구분하여 단순 그래프(simple graph)라고 부르기도 한다.

예 e1과 e3, e2와 e4는 다중 연결선이다. e5는 루프이다. v1 e8 e5 e1 e3 v2 e6 v4 e2 e4 e7

정점 u에 접합된 연결선의 수를 정점 u의 차수(degree)라고 한다. 차수는 deg(u)와 같이 표기하기도 한다. v1 v2 v3 v4 e1 e2 e3 e4 e5 e6 e7 e8 deg(v4)=5 deg(v3)=3,

그래프에서 모든 정점의 차수의 합은 모든 연결선 수의 2배이다. <정리> 그래프에서 모든 정점의 차수의 합은 모든 연결선 수의 2배이다.                          deg(v1)=3, deg(v2)=5, deg(v3)=3, deg(v4)=5이고 연결선 의 수는 8이다. v1 v2 v3 v4 e1 e2 e3 e4 e5 e6 e7 e8

“여러 이성 파트너를 갖고 있는 경우가 남성이 여성 보다 74% 더 많다. 따라서 남성의 이성 관계가 더 난잡하다” (1994년 시카고 대학 연구 결과) 과연 이 명제는 성립될 수 있는가? 여성(F) 남성(M) 앞의 정리에 의해서 Avg. deg(M) = Avg. deg(M) |M|≈|F|이라면,

경로(path) 그래프 G의 모든 정점은 경로가 1이다. 연결선이 존재하는 연속된 정점들(v1, v2, …, vk)을 경로라고 한다. (0<i<k) 경로상의 모든 정점들이 다른 경로를 단순 경로(simple path) 라고 한다. 두 정점 u와 v 사이에 경로가 존재하면 두 정점은 연결(connected)되었다고 한다. 그래프에서 k-1개의 연결선을 제거해도 두 정점 u와 v 사이에 경로가 존재하면 두 정점은 K-연결(k-connected)되었다고 한다.

그래프 G의 모든 정점들이 상호 연결되어 있으면 G는 연결 그래프(connected graph)라고 하며, 그렇지 않은 그래프는 비연결 그래프(disconnected graph) 라고 한다. 예: 연결 그래프와 비연결 그래프 v2 v1 v3 v4 v5 v6 e1 e2 e3 e4 e7 e8 e5 e6

길이(length) 두 정점의 경로를 구성하는 연결선의 수를 경로의 길이라고 한다. 닫힌 경로(closed path) 만약 경로 {v1, v2, ... ,vn}에서 v1=vn인 경로  순환(cylcle 혹은 circuit) 3개 이상의 연결선을 갖는 경로에서 어떤 연결선도 중복되지 않은 닫힌 경로(closed path) 순환 그래프(cylcled graph)와 비순환 그래프(acycled graph) 이러한 경로를 갖는 그래프를 순환 그래프(cycled graph), 그렇지 않은 그래프를 비순환 그래프(acycled graph)라고

두 정점의 거리(distance)는 두 정점 간의 최단 경로의 길이를 말하며, 직경(diameter)은 그래프 상의 임의의 두 정점 사이의 길이 중 최장 길이, 즉 가장 긴 길이를 말한다. 예 v1과 v6을 연결하는 경로는 {e1, e4, e7}(길이는 3), {e1, e3, e5, e8}(길이는 4), {e1, e3, e5, e6, e7}(길이는 5) 등 여러 가지 경로가 존재하는데 이 중 최단 경로는 {e1, e4, e7}으로 두 정점의 거리는 3이 된다. v2 v1 v3 v4 v5 v6 e1 e2 e3 e4 e7 e8 e5 e6

부분 그래프(subgraph)와 伸張 그래프(spanning graph) 그래프 G={V,E}가 있을 때, V'⊆V이고 E'⊆E인 그래프 G'={V', E'}를 G의 부분 그래프라고 한다. V'=V이고 G‘가 연결 그래프이면 G’는 신장 그래프라고 한다. (a) (b) v2 e4 v4 v2 v1 v3 v4 v5 v6 e1 e2 e3 e4 e7 e8 e5 e6 e1 v1 e3 v6 e2 e5 v3 v5 (c) v2 e4 v4 e1 그래프 b와 c는 a의 부분 그래프 이고 c는 a의 신장 그래프이다. v1 e3 v6 e2 e5 v3 v5

동형 그래프(isomorphic graph) 임의의 두 그래프 G={V, E}와 G'={V', E'}에 대하여 다음의 조건을 만족하는 함수가 1:1 관계의 함수이면 두 그래프 G와 G'를 동형 그래프라고 한다.       함수 f: v → v' (v∈V, v'∈V')       (x,y) ∈ E ⇔ (f(x), f(y)) ∈ E' 그리고 이 관계가 성립하는 함수 f를 동형(isomophic)이라고 한다. a c b d e g f h

예: 동형 그래프들 v1 v2 v3 v4 v1’ v2’ v3’ v4’ v1 v2 v3 v4 v5 v1’ v2’ v3’ v4’

완전 그래프(complete graph) 그래프G={V, E}가 모든 정점 사이에 연결선이 존재하면 완전 그래프는 Km으로 표시한다.(m은 정점의 총 수) (b) K4 (c) K5 (a) K3

이분 그래프(bipartite graph) 그래프G={V, E}의 V가 X⋂Y=∅인 두 부분 집합 X와 Y로 갈라지고, 연결선이 x∈X, y∈Y인 (x,y)의 쌍으로 이루어지면 G는 이분 그래프라고 한다. 또한 X의 모든 정점과 Y의 모든 정점 사이에 연결선이 존재하면 G를 완전 이분 그래프(complete bipartite graph) 라고 하며 Km,n으로 표시한다. (m은 X의 개수, n은 Y의 개수)

이분 그래프 완전 이분 그래프 X Y a b c d e f

정규 그래프(regular graph) 그래프 G={V, E}의 모든 정점의 차수가 같으면, G를 정규 그래프라고 한다. 예: deg=4인 정규 그래프

예: 정규 그래프들

주요 내용 기본 용어 그래프의 표현 오일러(Euler) 그래프와 해밀턴(Hamilton) 그래프 방향 그래프(directed graph, digraph) 최단 경로 알고리즘 그래프 순회(graph traversal) 평면 그래프(planar graph) 그래프의 채색(graph coloring)

그래프의 표현 인접 행렬(adjacent matrix) 인접 리스트(adjacent list) 접합 행렬(incidence matrix)

인접 행렬 인접 행렬은 그래프를 구성하는 두 정점들 간에 연결선의 존재 여부를 나타내는 방법이다. 그래프를 구성하는 정점들의 집합을 V={1,2,3,...,n}이라고 하면 그래프는 n x n의 행렬로서 표현되는데 행렬의 각 요소는 다음과 같이 정의된다. aij = 1: 두 정점 i와 j 사이에 연결선이 존재하는 경우          0: 두 정점 i와 j 사이에 연결선이 없는 경우

예: 인접 행렬로 표현한 그래프의 예 M = 2 1 3 4 5 e1 e2 e3 e4 e5 1 2 3 4 5 0 1 1 0 0 1 2 3 4 5 0 1 1 0 0 1 0 1 1 0 3 1 1 0 0 0 4 0 1 0 0 1 5 0 0 0 1 0 M =

인접 리스트 인접 리스트는 그래프의 각 정점과 연결선을 갖는 정점들을 연결 리스트(linked list)로 표현하는 방법이다. 2 1 3 4 5 e1 e2 e3 e4 e5

접합 리스트 그래프를 표현하는 또 다른 방법은 각 정점에서 접합되는 연결선의 존재 여부를 행렬로서 나타내는 방법이다. V={1,2,3,...,m}, E={e1,e2,..., en}인 그래프는 m x n의 행렬로서 표현되는데 행렬의 각 요소는 다음과 같이 정의된다. aij =  1: 연결선 ej가 정점 i에 접합된 경우           0: 그렇지 않은 경우

예: 접합 리스트로 표현한 그래프 M = 2 e4 4 e1 e3 1 e5 e2 3 5 e1 e2 e3 e4 e5 1 1 0 0 0 1 0 1 0 0 3 0 1 1 1 0 4 0 0 0 1 1 5 0 0 0 0 1 M =