1 / 20

알고리즘 CHAPTER 9. 그래프 알고리즘

알고리즘 CHAPTER 9. 그래프 알고리즘. 천주희 wngml1205@kunsan.ac.kr 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2012.11.6. 목차. 그래 프 그래프 표현 너비우선탐색과 깊이우선탐색 최소신장트리 위상정 렬. 철수. 철수. 준호. 준호. 영희. 영희. 승우. 승우. 동건. 동건. 재상. 재상. 그래프. 6. 9. 6. 9. 8. 8. 5. 5. 5. 5. 7. 7. 2. 9. 6. 9. 1. 1. 5. 5.

ray-byrd
Télécharger la présentation

알고리즘 CHAPTER 9. 그래프 알고리즘

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 알고리즘CHAPTER 9. 그래프 알고리즘 천주희 wngml1205@kunsan.ac.kr • 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2012.11.6

  2. 목차 그래프 그래프 표현 너비우선탐색과 깊이우선탐색 최소신장트리 위상정렬 IST (Information Sciences & Technology) Laboratory

  3. 철수 철수 준호 준호 영희 영희 승우 승우 동건 동건 재상 재상 그래프 6 9 6 9 8 8 5 5 5 5 7 7 2 9 6 9 1 1 5 5 [유향 그래프] [무향 그래프] IST (Information Sciences & Technology) Laboratory • 개념 • 현상이나 사물을 정점(V)과 간선(E)으로 표현 • G = (V, E)

  4. 철수 철수 준호 준호 영희 영희 승우 승우 재상 동건 동건 재상 그래프의표현 (1/2) 장점 : 이해하기 쉽고 간선의 존재 여부를 즉시 알 수 있음 단점 : nxn행렬이 필요하므로 n제곱에 비례하는 공간 필요 간선의 밀도가 높은 그래프에 적합 6 5 4 1 1 2 3 1 6 1 2 3 4 5 6 8 9 1 5 8 1 2 6 6 2 4 9 5 5 7 2 3 5 6 2 4 7 6 3 9 2 4 1 3 5 9 5 4 5 1 5 5 6 3 5 6 가중치 있는 유향 그래프의 예 가중치 있는 무향 그래프의 예 인접 행렬을 이용한 방법 IST (Information Sciences & Technology) Laboratory

  5. 철수 1 4 6 2 준호 영희 승우 3 5 동건 재상 그래프의표현 (2/2) 장점 : 행렬 표현에 비해 공간 낭비가 없음 모든 가능한 정점 쌍에 비해 간선 수가 적을 때 유용 단점 : 리스트를 차례로 훑어야 하므로 인접행렬 표현보다 많은 시간 소요 정점 번호 | 가중치 | 다음 정점 포인터 정점 번호 | 다음 정점의 포인터 1 • 9 2 3 4 무향 그래프의 예 5 6 IST (Information Sciences & Technology) Laboratory 인접 리스트을 이용한 방법

  6. 깊이우선탐색과 너비우선탐색 BFS DFS IST (Information Sciences & Technology) Laboratory

  7. 너비우선탐색 (1/2) 2 (b) 1 (a) 3 1 4 (c) 2 5 1 3 6 4 (e) (d) 2 2 7 5 1 5 1 8 3 8 3 6 4 6 4 7 7 IST (Information Sciences & Technology) Laboratory BFS 수행 예

  8. 너비우선탐색 (2/2) • BFS(G, s) • { • for each v ∈ V –{s} • visited[v] ← NO; visited[s] ← YES; ▷ s: 시작 정점 enqueue(Q, s); ▷ Q: 큐 while (Q ≠ ∮ ) { u ← dequeue(Q); for eachv∈ L(u) ▷ L(u): 정점 u의 인접 리스트 if (visited[v] = NO) then visited[u] ← YES; enqueue(Q, v); } } } • 수행시간: Θ(|V|+|E|) BFS 알고리즘 IST (Information Sciences & Technology) Laboratory

  9. 깊이우선탐색(1/3) (b) 1 (a) 1 2 (c) 1 2 (e) (d) 3 1 1 4 4 5 2 2 3 3 IST (Information Sciences & Technology) Laboratory DFS 수행 예

  10. 깊이우선탐색(2/3) (f) (g) 7 1 1 4 4 6 6 5 5 2 2 3 3 (i) (h) 8 8 7 7 1 1 4 6 4 6 5 5 2 2 3 3 IST (Information Sciences & Technology) Laboratory DFS 수행 예

  11. 깊이우선탐색(3/3) DFS(G) { for each v ∈ V visited[v] ← NO; for each v ∈ V if (visited[v] = NO) then aDFS(v); } aDFS (v) { visited[v] ← YES; for each x ∈ L(v) ▷ L(v) : 정점 v의 인접 리스트 if (visited[x] = NO) then aDFS(x); } • 수행시간: Θ(|V|+|E|) DFS 알고리즘 IST (Information Sciences & Technology) Laboratory

  12. 최소신장트리 프림 알고리즘 크루스칼 알고리즘 • 개념 • 간선들의 가중치를 갖는 그래프에서 간선 가중치의 합이 가장 작은 트리 • n 개의 정점을 가진 트리는 항상 n-1개의 간선을 가짐 • 싸이클을 만들지 않는 범위 내 IST (Information Sciences & Technology) Laboratory

  13. 11 프림 알고리즘 (1/2) (b) (a) 8 8 S ∞ 8 10 10 r ∞ 0 ∞ 0 9 5 9 5 9 ∞ 11 11 12 13 12 13 ∞ ∞ 11 ∞ 7 8 7 8 ∞ ∞ (c) (d) 8 8 10 8 10 S 0 10 5 0 9 5 9 9 5 11 12 13 9 12 13 ∞ 11 12 11 7 8 ∞ 7 8 ∞ IST (Information Sciences & Technology) Laboratory • 프림 알고리즘 작동

  14. 프림 알고리즘 (2/2) Prim(G, r) { Q ← V; • for each u ∈ Q • d[u]← ∞ • d[r] ← 0; • while (Q ≠∮) { • u ← deleteMin(Q,d); • for each v ∈ L(u) • if(v∈ Q and w(u,v) < d[v]) then{ • d[v] ← w(u,v); • tree[v] ← u; } } } deleteMin(Q,d[]) { 집합 Q에서 d값이 가장 작은 정점 u를 리턴하고, u를 집합 Q에서 제거; } • 수행시간: O(E logV) • 프림 알고리즘 IST (Information Sciences & Technology) Laboratory

  15. 크루스칼 알고리즘 (1/2) • 크루스칼 알고리즘 작동 IST (Information Sciences & Technology) Laboratory

  16. 크루스칼 알고리즘 (2/2) Kruskal (G, r) { T ← Ф; ▷ T : 신장트리 단 하나의 정점만으로 이루어진 n 개의 집합을 초기화; 모든 간선을 가중치가 작은 순으로 정렬; while (T의 간선수 < n-1) { 최소비용 간선 (u, v)를 제거; 정점 u와 정점 v가 서로 다른 집합에 속하면 { • T ← T∪{u, v)}; 두 집합을 하나로 합침; } } } • 수행시간: O(|E | log |V |) • 크루스칼 알고리즘 IST (Information Sciences & Technology) Laboratory

  17. 위상정렬 (1/3) 진입차수 진출차수 • 개념 • 조건 • 사이클이 없는 유향 그래프 G = (V, E) • 간선 (i,j)가 존재하면 정렬 결과에서 정점 i는 반드시 정점 j보다 앞에 나열되야 함 IST (Information Sciences & Technology) Laboratory

  18. 위상정렬 (2/3) topologicalSort1(G, v) { for← 1 ton { 진입간선이 없는 정점u를 선택; A[i] ← u; 정점u와, u의 진출간선을 모두 제거;         } ▷ 이 시점에 배열A[1…n]에는 정점들이위상 정렬되어 있음 } • 수행시간: Θ(|V|+|E|) • 위상정렬 알고리즘 1 IST (Information Sciences & Technology) Laboratory

  19. 위상정렬 (3/3) topologicalSort2(G) { for eachv∈V                   visited[v] ← NO; for eachv∈V▷ 정점의 순서는 무관 if(visited[v] = NO) then DFS-TS(v) ; - } DFS-TS(v) {         visited[v] ← YES; for each x∈L(v)▷ L(v): v의 인접 리스트 if (visited[x] = NO) then DFS-TS(x) ;  연결 리스트 R 의 맨 앞에 정점 v를 삽입; } • 수행시간: Θ(|V|+|E|) • 위상정렬 알고리즘 2 IST (Information Sciences & Technology) Laboratory

  20. 감사합니다천주희wngml1205@kunsan.ac.kr IST (Information Sciences & Technology) Laboratory

More Related