131

PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 2: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 3: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 4: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 5: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 6: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 7: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 8: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 9: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 10: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 11: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 12: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 13: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 14: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 15: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 16: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 17: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 18: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 19: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 20: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 21: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 22: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 23: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 24: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 25: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 26: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 27: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 28: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 29: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 30: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 31: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 32: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 33: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 34: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 35: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 36: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 37: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 38: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 39: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 40: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 41: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 42: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 43: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 44: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 45: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 46: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 47: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 48: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 49: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 50: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 51: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 52: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 53: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 54: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 55: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 56: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 57: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 58: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 59: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 60: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 61: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 62: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 63: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 64: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 65: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 66: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 67: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 68: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 69: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 70: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 71: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 72: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 73: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 74: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 75: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 76: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 77: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 78: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 79: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 80: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 81: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 82: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 83: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 84: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 85: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 86: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 87: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 88: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning
Page 89: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1 그래프의 개요

8.1.1 그래프의 기본 개념 •그래프(graph): 연결되어 있는 객체간의 관계를 표현하는 자료구조

•그래프의 예: 전기회로, 프로젝트관리, 지도에서 도시들의 연결

•그래프: 아주 일반적인 자료구조 • (예) 트리도 그래프의 일종으로 볼수 있다.

•그래프 이론(graph theory): 그래프를 문제해결의 도구로 이용하는 연구분야

Page 90: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.1 그래프의 기본 개념 (1)

• 1736년에 오일러에 의하여 창안

•오일러 문제: 모든 다리를 한번만 건너서 처음 출발했던 장소로 돌아오는 문제

•문제의 핵심만을 표현 •위치: 정점(node)

•다리: 간선(edge)

•오일러 경로: 정점에 연결된 간선의 개수가 짝수이면 존재

Page 91: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.1 그래프의 기본 개념 (2) •그래프는 G(V, E)로 표시된다.

• V는 정점(vertices)들의 집합

• E는 간선(edge)들의 집합

• 정점과 간선은 모두 관련되는 데이터를 가질수 있다.

8.2: 그래프의 예

1

2 3

4

1

2 3

4 5 6

1

2

3

(a) G1 (b) G2 (c) G3

V(G1)={1, 2, 3, 4} E(G1)={(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3.,4)}

V(G2)={1, 2, 3, 4, 5, 6} E(G2)={(1, 2), (1, 3), (2, 4), (2, 5), (3, 6)}

V(G3)={1, 2, 3, 4} E(G3)={<1, 2>, <2, 3>, <3, 2>, <2, 4>}

4

Page 92: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.2 그래프 관련 용어 (1)

•완전 그래프(complete graph) • 최대 수의 간선을 가진 그래프

• 정점이 n개일 때, 간선의 수는 • 무방향 그래프일 때 n(n-1)/2,

• 방향 그래프일 때 n(n-1)

•다중 그래프(mutigraph) • 두 정점사이 2개 이상의 간선이 존재하는 그래프

• 원칙적으로 그래프는 중복간선을 허용하지 않음

•서브 그래프(subgraph) • V(G’)⊆V(G)이고, E(G’)⊆E(G)인 그래프 G’를 그래프 G의 서브 그래프 또는 부분 그래프라 한다.

Page 93: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.2 그래프 관련 용어 (2)

•인접 (adjacent)과 부속 (incident):

무방향 그래프의 한 간선 (vj, vk)에 대해 • vj와 vk는 서로 인접한다.

• 간선 (vj, vk)는 정점 vj와 vk에 부속한다.

• 예1) 그래프 G1 • 정점 1, 3 : 정점 0에 인접.

• 간선 (0, 1), (1, 2), (1, 3) : 정점 1에 부속.

• 예2) 그래프 G2 • 정점 1 : 정점 2로 인접(adjacent to 2)

• 정점 2 : 정점 1로부터 인접(adjacent to 1)

• 아크 <0, 1>, <1, 2>, <1, 0> : 정점 1에 부속.

0

1

3

2

G1

0

1

2

G2

Page 94: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.2 그래프 관련 용어 (3) •경로(path)와 사이클(cycle)

• 경로: 정점 vj 로부터 vi 까지의 경로(path) •경로의 길이(path length): 경로를 구성하는 간선의 수

•단순 경로(simple path): 모두 상이한 간선들로 구성된 경로

•사이클(cycle): 첫 번째 정점과 마지막 정점이 동일한 단순 경로 • 그래프 G1

• 경로 0,1,3,2 : 길이 3, 단순경로 • 경로 0, 1, 3, 0 : 사이클

• 그래프 G2

• 경로 0,1,2 : 단순 경로 • 경로 0, 1, 0 : 사이클

0

1

3

2 G1

0

1

2 G2

Page 95: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.2 그래프 관련 용어 (4)

•연결 그래프(connected graph) 서로 다른 모든 정점들 사이에 경로가 있는 무방향 그래프는 연결 그래프 아니면 단절 그래프(disconnected graph)

• 어느 한 정점에서부터 다른 어떤 정점에로의 경로 존재

• 트리 : 사이클이 없는 연결 그래프 (acyclic connected graph)

•연결 요소(connected component): • 최대 연결 부분 그래프(maximal connected subgraph)

• 최대 : 최대의 정점과 최대의 간선

• 예) G : H1, H2 두개의 요소를 가짐

0

1

3

2

G

4

5 6

H1

H2

Page 96: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.2 그래프 관련 용어 (5) • 강력 연결(strongly connected)

• 방향 그래프 G에서 V(G)에 있는 서로 다른 모든 정점의 쌍 u와 v에 대해 u에서 v까지, 또한 v에서 u까지의 방향 경로가 존재

• 예 : G4

• 약한 연결(weakly connected) • 무방향그래프로 생각할때(에지방향을 무시해서) 모든 정점사이에 경로가 존재

• 예 : G5

• 강력 연결 요소(strongly connected component) • 강력 연결된 최대 부분 그래프

• 예) H1 , H2 : G2 의 강력연결요소

0

1 4

3 2

0

1 4

3 2

G4 G5

0

1

2

G2

0

1

H1

2

H2

방향그래프에 대해

Page 97: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.1.2 그래프 관련 용어 (6) • 차수(degree)

• 무방향 그래프의 차수(degree) : 무방향 그래프에서 그 정점에 부속된 간선의 수

예) G1 의 정점 3의 차수 : 3

정점이 n개인 무방향 그래프의 간선 수 e = ( ∑i=0

n-1 degree(i) ) / 2

• 방향 그래프의 차수(degree) • 진입 차수(indegree) : 방향 그래프에서 정점 v를 머리로 하는 간선의 수

• 진출 차수(outdegree) : 방향 그래프에서 정점 v를 꼬리로 하는 간선의 수

예) 그래프 G2

정점 0 : 진입 차수 = 진출 차수 = 1

정점 1 : 진입 차수 =1, 진출 차수 = 2

0

1

3

2

G1

0

1

2

G2

Page 98: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2 그래프의 표현

• 그래프 표현 방법은 그래프에 수행시키려는 연산과 적용하려는 응용에 따라 선택 8.2.1 인접 행렬(adjacency matrix)

8.2.2 인접 리스트(adjacency list)

8.2.3 인접 다중 리스트(adjacency multilist)

Page 99: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.1 인접 행렬 (1)

•인접 행렬(adjacency matrix) • n≥1개의 정점을 가지는 그래프 G = (V, E)에 대해, 크기가 nⅹn인 2차원 배열 a[n, n]

• 부속 행렬(incidence matrix)이라고도 함 • 인접 행렬로 표현하는데 필요한 공간 : n2 비트

• 무방향 그래프 : 행렬의 상위 삼각이나 하위 삼각만 저장한다면 거의 반 정도의 공간을 절약

• 인접 행렬의 정보 • 무방향 그래프 : 행 i 의 합은 정점 i 의 차수 • 방향 그래프 : 행 i의 합은 정점 i의 진출 차수, 열 i의 합은 정점 i의 진입 차수

E(G)j)(i, 0,

E(G)j)(i, 1, j]a[i,

Page 100: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.1 인접 행렬 (2)

0

1

3

2

0

1

2

0

1

3

4

2

G1 G2

G3

0 1 0 1

1 0 1 1

0 1 0 1

1 1 1 0

[0] [1] [2] [3]

[0]

[1]

[2]

[3]

a[4, 4]

0 1 0

1 0 1

0 0 0

[0] [1] [2]

[0]

[1]

[2]

a[3, 3]

0 1 0 0 0

1 0 1 0 0

0 1 0 0 0

0 0 0 0 1

0 0 0 1 0

[0] [1] [2] [3]

[0]

[1]

[2]

[3]

a[5, 5]

[4]

[4]

그래프 G1, G2, G3에 대한 인접 행렬 표현

Page 101: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.2 인접 리스트 표현법 (1)

•인접 리스트(adjacency list) • n개의 정점 각각에 대한 인접한 정점들을 리스트로 만듦

• 인접 리스트의 구현 • 연결 리스트

• 순차 표현

•연결 리스트로 표현한 인접 리스트 • 각각의 정점의 리스트 : 헤더 노드와 vertex 필드, link 필드로 구성된 리스트 노드로 이루어짐

• n개의 정점과 e개의 간선을 가진 그래프에서 • 무방향 그래프는 n개의 헤더 노드와 2e개의 리스트 노드 필요

• 방향 그래프는 n개의 헤더 노드와 e개의 리스트 노드 필요

Page 102: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.2 인접 리스트 표현법 (2)

0

1

3

2

0

1

2

G1

G2

header vertex link

[0]

[1]

[2]

[3]

3 null

3 null

1

0 2

1 3 null

0 1 2 null

null

header

[0]

[1]

[2]

null 1

0 null 2

(a) G1에 대한 인접 리스트

(b) G2에 대한 인접 리스트

Page 103: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.2 인접 리스트 표현법 (3)

•역인접 리스트(inverse adjacency list) • 각 정점 i에 대해, 정점 i로 진입하는 모든 정점 각각에 대한 노드를 포함시킨 리스트

1

2

G2

header

[0]

[1]

[2]

1 null

0 null

1 null

0 null

[0]

[1]

[2]

null 1

0 null 2

인접리스트

역인접리스트

header

Page 104: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.3 인접 다중 리스트 표현법 (1)

•인접 다중 리스트(adjacency multilist) • 다중 리스트

• 노드들을 여러 리스트들이 공용하는 리스트

• 특정 간선에 대한 접근 여부를 표시하는 데 편리

• 간선에 부속된 두 정점 각각에 대한 인접 리스트를 다중 리스트로 유지하여, 하나의 간선을 두 개의 리스트가 공유하는 리스트

• 간선 (i, j)를 표현하는 노드 구조 • M : 간선이 이미 검사되었는지 여부를 표시하는 마크 비트

• i-link, j-link : 각각 정점 i, j에 대한 인접 리스트의 링크

M i j i-Link j-Link

Page 105: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.3 인접 다중 리스트 표현법 (2)

•클래스 노드의 정의

Public class edge {

boolean M;

int i;

int j;

edge i-link;

edge j-link;

}

edge [] headnode new edge[n]

Page 106: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.2.3 인접 다중 리스트 표현법 (3)

• G1에 대한 인접 다중 리스트의 식별 • 정점 0의 경우

• 정점 0의 헤더로부터 노드 E0를 따라감

• 노드 E0에서 정점 0을 포함한 필드 = i i-link를 따라 E1으로 감

• 노드 E1의 첫 번째 i 필드가 정점 0 포함 다시 i-link를 따라감

• 이 때 링크값이 널 여기서 리스트가 끝남

• 위의 방법으로 모든 정점들을 식별

[0]

[1]

[2]

[3]

G1에 대한 인접 다중 리스트

header E2 E1 1 0 E0

E3 null 3 0 E1

E4 E3 2 1 E2

E4 null 3 1 E3

null null 3 2 E4

0

1

3

2 G1

E0

E1

E4 E3

E2

정점 0 : E0 E1

정점 1 : E0 E2 E3

정점 2 : E2 E4

정점 3 : E1 E3 E4

Page 107: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3 그래프의 운행

• 그래프 운행(traverse) • 주어진 어떤 정점을 출발하여 체계적으로 그래프의 모든 정점들을 방문하는 것

• 그래프 운행법의 종류 • 깊이 우선 탐색(Depth First Search)

• 넓이 우선 탐색(Breadth First Search)

• 그래프 운행의 응용 • 연결 요소(Connected component)

• 신장 트리(Spanning tree)

Page 108: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3.1 깊이 우선 탐색 (1)

• 깊이 우선 탐색(depth first search : DFS) 1) 정점 i를 방문한다.

2) 정점 i에 인접한 정점 중에서 아직 방문하지 않은 정점이 있으면, 이 정점들을 모두 스택에 저장한다.

3) 스택에서 정점을 삭제하여 새로운 i를 설정하고, 단계 (1)을 수행한다.

4) 스택이 공백이 되면 연산을 종료한다

• 정점 방문 여부를 표시 배열 visited[n]을 이용하여 표현

않았음 방문하지 false,

방문하였음 true, visited[i]

Page 109: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3.1 깊이 우선 탐색 (1)

• 깊이 우선 탐색(depth first search : DFS) 1) 정점 i를 방문한다.

2) 정점 i에 인접한 정점 중에서 아직 방문하지 않은 정점이 있으면, 이 정점들을 모두 스택에 저장한다.

3) 스택에서 정점을 삭제하여 새로운 i를 설정하고, 단계 (1)을 수행한다.

4) 스택이 공백이 되면 연산을 종료한다

• 정점 방문 여부를 표시 배열 visited[n]을 이용하여 표현

않았음 방문하지 false,

방문하였음 true, visited[i]

Page 110: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3.1 깊이 우선 탐색 (2)

•깊이 우선 탐색 알고리즘 Public void DFS(int vtx)

{

node w;

marked[vtx]=true;

for (w=graph[vtx]; w!=null; w=w.link)

if (marked[w.vertex]!=true) DFS(w.vertex);

}

Page 111: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3.2 너비 우선 탐색 (2)

•너비 우선 탐색 (breadth first search ; BFS) • 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법

• 큐를 사용하여 구현됨

Page 112: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3.2 너비 우선 탐색 (2) •너비 우선 탐색 알고리즘 Public class queue

{

int vertex;

queue link;

}

Public void BFS(int vtx){

node w;

queue front;

queue rear;

front=rear=null;

marked[vtx]=true;

ADDQ(front,rear,vtx);

while(front!=null){

vtx=DELETEQ(front);

for(w=graph[vtx];w!=null;w=w.link)

if (maked[w.vertex]!=true){

ADDQ(front,rear,w.vertex);

marked[w.vertex]=true;

}

}

}

Page 113: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3.4 그래프 운행의 응용

• 연결 요소

• 연결 그래프 여부 판별 • DFS나 BFS 알고리즘 이용

• 무방향 그래프 G에서 하나의 정점i에서 시작하여 DFS(or BFS)로 방문한 노드집합 V(DFS(G, i))가 V(G)와 같으면 G는 연결 그래프.

• 연결 요소 찾기 • 정점 i에 대해 DFS (or BFS) 수행

• 둘 이상의 연결 요소가 있는 경우, 나머지 정점 j에 대해 DFS(or BFS) 반복 수행

V(DFS(G, i)) = V(G) : 연결 그래프, 하나의 연결 요소

V(DFS(G, i))⊂ V(G) : 단절 그래프, 둘 이상의 연결 요소

Page 114: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.3.4 그래프 운행의 응용

•연결 요소를 찾는 알고리즘

Public void CONCOMP(void)

{

int i;

for(i=0;i<n;i++)

marked[i]=false;

for(i=0;i<n;i++)

if(marked[i]!=true){ DFS(i);

System.out.println(“\n”);

}

}

Page 115: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4 그래프의 트리화

8.4.1 신장 트리

8.4.2 최소 비용 신장 트리

Page 116: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.1 신장 트리 (1)

•신장 트리(spanning tree) • 그래프 G에서 E(G)에 있는 간선과 V(G)에 있는 모든 정점들로 구성된 트리

• DFS, BFS에 사용된 간선 집합 T는 그래프 G의 신장 트리를 의미

• 주어진 그래프 G에 대한 신장 트리는 유일하지 않음

(a) 연결 그래프 G (b) 신장 트리

그래프 G에 대한 3개의 신장 트리

Page 117: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.1 신장 트리 (2)

•신장 트리의 종류 • 깊이 우선 신장 트리(depth first spanning tree) : DFS 사용

• 너비 우선 신장 트리(breadth first spanning tree) : BFS 사용

0

1 3

2

4 5

6

(a) 연결 그래프 G

0

1 3

2

4 5

6

(b) DFS(0) 신장 트리

0

1 3

2

4 5

6

(c) BFS(0) 신장 트리

연결 그래프 G와 신장 트리

Page 118: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.2 최소 비용 신장 트리 (1)

• 최소비용신장트리(MST: minimu spanning tree): 네트워크에 있는 모든 정점들을 가장 적은 수의 간선과 비용으로 연결하는 신장트리

• MST의 응용

• 도로 건설 - 도시들을 모두 연결하면서 도로의 길이가 최소가 되도록 하는 문제

• 전기 회로 - 단자들을 모두 연결하면서 전선의 길이가 가장 최소가 되도록 하는 문제

• 통신 - 전화선의 길이가 최소가 되도록 전화 케이블 망을 구성하는 문제

• 배관 - 파이프를 모두 연결하면서 파이프의 총 길이가 최소가 되도록 연결하는 문제

Page 119: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.2 최소 비용 신장 트리 (2)

• 2가지의 대표적인 알고리즘 • Kruskal의 알고리즘

• Prim의 알고리즘

•탐욕적인 방법(greedy method) • 알고리즘 설계에서 있어서 중요한 기법 중의 하나

• 결정을 해야 할 때마다 그 순간에 가장 좋다고 생각되는 것을 해답으로 선택함으로써 최종적인 해답에 도달

• 탐욕적인 방법은 항상 최적의 해답을 주는지를 반드시 검증해야 한다.

• Kruskal의 알고리즘은 최적의 해답을 주는 것으로 증명

Page 120: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.2 최소 비용 신장 트리 (3)

• Prim의 MST 알고리즘 • Prim의 알고리즘은 시작 정점에서부터 출발하여 신장 트리 집합을 단계적으로 확장해나가는 방법

• 시작 단계에서는 시작 정점만이 신장 트리 집합에 포함

• 앞 단계에서 만들어진 신장 트리 집합에, 인접한 정점들 중에서 최저 간선으로 연결된 정점을 선택하여 트리를 확장

• 이 과정은 트리가 n-1개의 간선을 가질 때까지 계속된다.

간선 (a, b)와 간선 (f, e)의 가중치를

비교해보면 (f, e)가 27로서 (a, b)의 29보다

높다. 따라서 (f, e) 간선이 선택되고 정점 e가

신장 트리 집합에 포함된다.

Page 121: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.2 최소 비용 신장 트리 (4)

• Prim의 MST 알고리즘

Page 122: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.2 최소 비용 신장 트리 (5)

• Kruskal의 MST 알고리즘 • 최소 비용 신장 트리가 최소 비용의 간선으로 구성됨과 동시에 사이클을 포함하지 않는다는 조건에 근거하여, 각 단계에서 사이클을 이루지 않는 최소 비용 간선을 선택

• 그래프의 간선들을 가중치의 오름차순으로 정렬한다.

• 정렬된 간선들의 리스트에서 사이클을 형성하지 않는 간선을 찾아서 현재의 최소 비용 신장 트리의 집합에 추가한다.

• 만약 사이클을 형성하면 그 간선은 제외된다.

Page 123: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.4.2 최소 비용 신장 트리 (6) • Kruskal의 MST 알고리즘

Page 124: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5 그래프의 응용

8.5.1 최단 경로 검색

8.5.2 모든 정점간의 최단경로

8.5.3 이행적 폐쇄행렬

8.5.4 위상정렬

8.5.5 유통문제

8.5.6 임계경로

Page 125: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5.1 최단 경로 검색 (1)

•최단 경로(shortest path): • 최단경로 문제는 네트워크에서 정점 i와 정점 j를 연결하는 경로 중에서 간선들의 가중치 합이 최소가 되는 경로를 찾는 문제

• 간선의 가중치는 비용, 거리, 시간 등을 나타낸다.

Page 126: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5.1 최단 경로 검색 (2)

•디익스트라(Dijkstra)의 최단 경로 알고리즘 • Dijkstra의 최단 경로 알고리즘은 네트워크에서 하나의 시작 정점으로부터 모든 다른 정점까지의 최단 경로를 찾는 알고리즘

• 집합 S: 시작 정점 v로부터의 최단경로가 이미 발견된 정점들의 집합

• distance 배열: 최단 경로를 알려진 정점만을 통하여 각 정점까지가는 최단경로의 길이

• 매단계에서 가장 distance 값이 적은 정점을 S에 추가한다.

• 매단계에서 새로운 정점이 S에 추가되면 distance값을 갱신한다.

Page 127: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5.1 최단 경로 검색 (3)

1 2

3

4

5

6

7

0

San Francisco

Denver

Chicago

Miami

New Orleans

Los Angeles

800

1200

1500

250

1000

1400

900

1000

1700

1000

300

Boston

New York

0

1

2

3

4

5 6

7

0 1 2 3 4 5 6 7

0

300

1000

1700

0

800

0

1500

1000

0

1200

0

250

0

900 0

1400 1000

0

Itera

-tion S

Vertex

selected

Distance

LA SR DEN CHI BOST NY MIA NO

[0] [1] [2] [3] [4] [5] [6] [7]

Initial

1

2

3

4

5

6

{4}

{4,5}

{4,5,6}

{4,5,6,3}

{4,5,6,3,7}

{4,5,6,3,7,2}

{4,5,6,3,7,2,1}

5

6

3

7

2

1

+∞ +∞ +∞ 1500 0 250 +∞ +∞

+∞ +∞ +∞ 1500 0 250 1150 1650

+∞ +∞ +∞ 1500 0 250 1150 1650

+∞ +∞ 2450 1500 0 250 1150 1650

3350 +∞ 2450 1500 0 250 1150 1650

3350 3250 2450 1500 0 250 1150 1650

3350 3250 2450 1500 0 250 1150 1650

Page 128: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5.1 최단 경로 검색 (3)

• 디익스트라(Dijkstra)의 최단 경로

Page 129: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5.2 모든 정점간의 최단 경로

•알고리즘 Public void FLOYD(int [][] A, fload [][] cost, int n)

{

int i,j,k;

for(i=0;j<n;i++)

for(j=0;j<n;j++)

A[i][j]=cost[i][j];

for(k=0;k<n;k++)

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if(A[i][k]+A[k][j]<A[i][j]

A[i][j]=A[i][k]+A[k][j];

}

0 1

2

6

4

2 3 11

A-1 0 1 2 0 4 11 6 0 2 3 ∞ 0

0 1 2

A0 0 1 2 0 4 11 6 0 2 3 7 0

0 1 2

A1 0 1 2 0 4 6 6 0 2 3 7 0

0 1 2

A2 0 1 2 0 4 6 5 0 2 3 7 0

0 1 2

Page 130: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5.3 이행적 폐쇄 행렬

•이행적 폐쇄 행렬(Transitive closure matrix) Definition: Transitive closure matrix A+

Reflexive transitive closure A*

0 1 2 3 5

(a) 방향 그래프 G

0 1 2 3 4

0 1 2 3 4

0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0

0 1 2 3 4

0 1 2 3 4

0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1

0 1 2 3 4

0 1 2 3 4

1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1

(b) G의 인접행렬 A

(d) A* (c) A+

Page 131: PowerPoint 프레젠테이션 - KOCWelearning.kocw.net/KOCW/document/2015/chungbuk/leechungse/9.pdf · 자료구조 •그래프의 예: 전기회로, ... •신장 트리(Spanning

8.5.4 위상정렬 (1)

•위상정렬(topological sort): • 방향 그래프에서 간선 <u, v>가 있다면 정점 u는 정점 v를 선행한다고 말한다. 방향 그래프에 존재하는 각 정점들의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것을 방향 그래프의 위상 정렬(topological sort)이라고 한다.

과목번호 과목명 선수과목

0 전산학개론 없음

1 이산수학 없음

2 자료구조 1

3 알고리즘 분석 0, 1, 2

4 운영체제 1

5 인공지능 2, 3, 4

위상정렬: (0,1,2,3,4,5) , (1,0,2,3,4,5)

(2,0,1,3,4,5)는 위상 정렬이 아니다. 왜냐하면 2번 정점이 0번 정점 앞에 오기 때문이다. 간선 <0, 2>이 존재하기 때문에 0번 정점이 끝나야 만이 2번 정점을 시작할 수 있다.