SlideShare a Scribd company logo
1 of 61
Graph Graph 데브루키 알고리즘 스터디 2011. 4. 16. 해보리
오늘의 주제 ‘그래프’ ※ 위 그림은 오늘의 내용과 아무 상관이 없습니다.
그래프를 소개합니다. 그래프를 어떻게 표현할 것인가? 그래프 순회: 그래프를 따라 산책하기 위상 정렬 최소 신장 트리 최단 경로 탐색 오늘의 주제 및 목차
오늘의 주제 및 목차 관련 용어에 대한 이해 게임에서의 사용 예
오늘의 주제 및 목차 하지만 이 보다 더 신경 쓴 지루하지 않은 발표 하기!!! …가 될 수 있을까??? ㅠ.ㅠ
각각의 단위 정보를 링크로 연결하여 구조화 시킨 자료 구조 그래프란 무엇인가?
서울 강원도 경기도 충청북도 경상북도 충청남도 전라북도 경상남도 전라남도 부산
7개의 다리를 한번씩만 건너서 도시 전체를 밟기 쾨니히스베르크의 다리건너기 문제
L. 오일러의 증명 한 붓 그리기 문제 쾨니히스베르크의 다리건너기 문제
홀수개인 변을 가진 꼭지점이없을 때… 한 붓 그리기 조건 홀수개인 변을 가진 꼭지점이 두 개만 존재 할 때…
한 붓 그리기 문제 그렇기 때문에쾨니히스베르크의 다리를한번씩만 건너는 방법은 없다.
쾨니히스베르크의 현재 모습
잠깐 쉽시다!
그래프를 이용하면복잡한 문제들을단순화 할 수 있다.
그래프 색칠 문제 응용 4색 문제를 그래프를 이용해 단순화 한 예 컴파일러에서 프로세서 레지스터 할당 문제 무선 기지국 사이에서 간섭을 없애기 위한 주파수 할당 문제
“정점의 집합을 V, 간선의 집합을 E, 그리고 그래프를 G라고 했을때,G = (V, E)이다” 그래프란 무엇인가? - 뇌를 자극하는 알고리즘(P.355)
그래프 = 꼭지점 + 변Graph = (Vertex, Edge)G = (V, E) 그래프란 무엇인가?
간선 A B 용어 알아보기 정점
A B 인접(Adjacent) 간선으로 연결되어 있는 두 정점 인접 또는 이웃 관계
경로(Path) 무향 경로, 유향 경로, 단순 경로 Path
순환(Cycle) 시작점과 끝점이 연결된 경로 Cycle
두 정점 사이에 경로가 존재하는 경우, “이 두 정점이 연결되어 있다” 연결성(Connectivity)
언제까지 할텐가? 일단 여기까지가 비타민 퀴즈~ 용어 설명은 지루하니까… 이 뒷 부분은 후다닥~ ^^;
내차수(內-, in-degree) 용어 알아보기 한 꼭지점에 이어져 있는 변의 개수(무향) 한 꼭지점에 내 외로 이어져 있는 변의 개수(유향) 차수 외차수(外-, out-degree)
A C 무향 그래프 B Undirected Graph E = {(A, B), (A, C), (B, C)}
A C 유향 그래프 B Directed Graph E = {(A, B), (B, C), (C, A)}
완전 그래프 Complete Graph = 클릭(Clique)
이분 그래프
완전 이분 그래프
정규 그래프 꼭지점의 모든 차수가 동일 Regular Graph
평면 그래프 평면 그래프의 예 평면 그래프가 아닌 예
동형 그래프 정점, 차수, 간선의 수가 동일한 두 그래프 Isomorphic Graph
부분 그래프
그래프를 어떻게 표현할 것인가? 아무 이유 없음 왠지 지금쯤 한번 나와줘야 할 듯 해서…
인접 행렬 행렬(M) = n x n(n은 Vertex) Adjacency Matrix
인접 리스트 Adjacency List
인접 행렬 Vs. 인접 리스트 언제나 그렇듯 상황에 맞게 쓰시오~ 그래프를 표현하기 위한 자료구조로 인접 행렬과 인접 리스트 중 무엇이 좋을까?
깊이 우선 탐색너비 우선 탐색 그래프 순회 그래프 순회 : 그래프를 따라 산책하기
깊이 우선 탐색 DFS(Depth First Search)
너비 우선 탐색 BFS(Breadth First Search)
“어떤 정점이 다른 정점과의 관계 속에서 가지는 위치” 위상정렬 Topological Sort
그래프에 방향성이 있어야 한다. 그래프 내에 사이클이 없어야 한다. 위상정렬의 조건 DAG(Directed Acyclic Graph)
정점 진입 간선 진출 간선 위상정렬 관련 용어 진입 간선(Incoming Edge) 진출 간선(Outgoing Edge)
7 5 11 위상정렬 8 3 2 10 9
주목적은 위상적 순서를 찾아내는 것이며, 이 때문에 순차적 작업을 요하는  부품 조립(선박, 비행기) 등의 분야에서 주로 응용 AOV Network Activity on Vertex Network
가중치? 신장 트리? 최소 신장 트리? 최소 신장 트리
신장 트리 Spanning Tree
0 0 0 신장 트리 1 2 1 2 1 2 3 6 5 4 3 6 3 6 5 5 4 4 7 7 7 Depth First Spanning Tree Breadth First Spanning Tree
가중치는 신장 트리를 구성할 때 참고하는 값 가중치와 신장 트리 Weight & Spanning Tree
최소의 가중치 값으로 구성된 신장 트리 최소 신장 트리 Minimum Spanning Tree
하나의 정점을 선택하고 연결된 정점의 주변 정보를 파악하여 구성 프림 알고리즘 Prim’s Algorithm
시작점 선택 : 어디에서 출발해도 무관하다. 주변 Vertex 확인 : 선택된 Edge의 두 Vertex가 연결되었을 때 순환이 생기면 버림 : 그렇지 않은 정점들을 신장 트리에 추가 Edge 리스트에 Edge가 없을 때까지 반복 프림 알고리즘 Prim’s Algorithm
프림 알고리즘
그래프 내의 모든 간선을 가중치에 따라 오름차순으로 정렬한다. 간선 목록을 순회하며  사이클이 생기지 않도록 최소 신장 트리에 추가한다. 크루스칼 알고리즘 Kruskal’s Algorithm
크루스칼 알고리즘
크루스칼 알고리즘과 유사 솔린 알고리즘 Sollin’s Algorithm
다익스트라 알고리즘은 1959년 네덜란드 컴퓨터 과학자 EdsgerDijkstra에 의해서 착상되었다. 최단 경로 탐색 바로 나! Dijkstra algorithm
비용(Cost) 추가 다익스트라 알고리즘 ※어떤 간선도 음수값을 갖지 않는 방향그래프에서 사용 Dijkstra algorithm
가중 유향 그래프에서 최단 거리 탐색 벨만-포드 알고리즘 Bellman-Ford algorithm
Warshall Algorithm Floyd Algorithm … 최단 경로 탐색 이렇게 하다간 끝이 없겠소~ ㅠ.ㅠ
게임 사용 예 급!! 마무리… Q & A 감사합니다.

More Related Content

More from SeungMin Yang

[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍SeungMin Yang
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)SeungMin Yang
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료SeungMin Yang
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비SeungMin Yang
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명SeungMin Yang
 

More from SeungMin Yang (6)

[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍[11 0702] 추상 인터페이스를 이용한 프로그래밍
[11 0702] 추상 인터페이스를 이용한 프로그래밍
 
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
[11 0702] 스마트 하지 못한 개발자의 스마트폰 게임 개발 하기(공개용)
 
내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료내 마음대로 정리 해 본 ndc 발표 자료
내 마음대로 정리 해 본 ndc 발표 자료
 
알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비알고리즘 스터디 NP-완비
알고리즘 스터디 NP-완비
 
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
[Gpg1권] 5.3 정점 색상 보간을 이용한 모의 실시간 조명
 
GPG 1권 4.12 VIPM
GPG 1권 4.12 VIPMGPG 1권 4.12 VIPM
GPG 1권 4.12 VIPM
 

그래프 알고리즘