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

Slides:



Advertisements
Similar presentations
연천 새둥지마을 체재형 주말농장 준공식 초청장 오시는 길 주제 일시 장소 21C 경기농촌희망심기 2005년 제1기 교육수료마을
Advertisements

SPARCS Wheel Seminar Mango X Sugoi
출석수업 자료 교과서 범위: 제1장-4장.
10월 충북노회 남선교회 순회 헌신예배 묵 도 기 도 성 경 봉 독 특 송 찬 양 설 교 찬양 / 봉헌 봉 헌 기 도
글에 나타난 시대적 사회적 배경을 파악할 수 있다. 배경 지식과 의미 해석의 관련성을 이해할 수 있다.
패널자료 분석
라오디게아 교회의 교훈 본문 계 3: ○라오디게아 교회의 사자에게 편지하라 아멘이시요 충성되고 참된 증인이시요 하나님의 창조의 근본이신 이가 이르시되 15. 내가 네 행위를 아노니 네가 차지도 아니하고 뜨겁지도 아니하도다 네가 차든지 뜨겁든지 하기를 원하노라.
한알Ⅱ「더불어 살기」전국대회 일정표 날짜 시간 7월 26일(목) 7월 27일(금) 7월 28일(토) 7월 29일(일)
2013학년도 전라북도고등학교신입생 입학전형 기본계획
선거관리위원회 위원 공개모집 4차 공고 제4기 선거관리위원회를 구성하는 위원 모집의
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
오늘의 학습 주제 Ⅱ. 근대 사회의 전개 4. 개항 이후의 경제와 사회 4-1. 열강의 경제 침탈 4-2. 경제적 구국 운동의 전개 4-3. 사회 구조와 의식의 변화 4-4. 생활 모습의 변화.
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2009학년도 가톨릭대학교 입학안내.
한국 상속세 및 증여세 과세제도 한국 국세공무원교육원 교 수 최 성 일.
중세시대의 의복 학번 & 이름.
다문화가정의 가정폭력의 문제점 연세대학교 행정대학원 정치행정리더십 2학기 학번 이름 홍 진옥.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
◆ 지난주 반별 출석 보기 ◆ 제 56 권 26호 년 6월 26일 반 선생님 친구들 재적 출석 5세 화평 김성희 선생님
第1篇 자치입법 개론.
교직원 성희롱·성폭력·성매매 예방교육 벌교중앙초등학교 박명희
제5장 새로운 거버넌스와 사회복지정책 사회복지정책이 어떤 행위자에 의해 형성되고 집행되는지, 어떤 과정에서 그러한 일들이 이루어지는지, 효과적인 정책을 위해서는 어떤 일들이 필요한지 등을 본 장에서 알아본다 개인들이 생활을 개선하는 가장 효과적인고 궁극적인 방법은 개별적.
임상시험 규정 (최근 변경 사항 중심으로) -QCRC 보수 교육 과정 전달 교육
서울특별시 특별사법경찰 수사 송치서류 유의사항 서울특별시 특별사법경찰과 북부수사팀장 안   진.
특수학교용 아동학대! 제대로 알고 대처합시다..
사회복지현장의 이해 Generalist Social Worker 사회복지입문자기초과정 반포종합사회복지관 김한욱 관장
학교보건 운영의 실제 한천초등학교 이 채 금.
제 출 문 고용노동부 귀중 본 보고서를 ’ ~ ‘ 까지 실시한 “근로감독관 직무분석 및 교육프로그램 개발에 관한 연구”의 최종보고서로 제출합니다  연구기관 : 중앙경영연구소  프로젝트 총괄책임자 : 고병인 대표.
학습센터란? 기도에 관해 배울 수 있는 다양한 학습 코너를 통하여 어린이들이 보다 더 쉽게 기도를 알게 하고, 기도할 수 있게 하며, 기도의 사람으로 변화될 수 있도록 하는 체험학습 프로그램이다. 따라서 주입식이지 않으며 어린이들이 참여할 수 있는 역동적인 프로그램으로.
Digital BibleⅢ 폰속의 성경 디지털 바이블 2008년 12월 ㈜씨엔커뮤니케이션 ㈜씨엔엠브이엔오.
후에 70인역(LXX)을 좇아 영어 성경은 본서의 중심 주제인 “엑소도스”(출애굽기)라 하였다.
성 김대건 피츠버그 한인 성당 그리스도왕 대축일 공지사항
예배에 대하여.
말씀 듣는 시간입니다..
하나님은 영이시니 예배하는 자가 신령과 진정으로 예배할지니라.
지금 나에게 주신 레마인 말씀 히브리서 13장 8절.
예수의 제자들 담당교수 : 김동욱.
Lecture Part IV: Ecclesiology
KAINOS 날마다 더하여지는 Kainos News 이번 주 찬양 20 / 300 – 20개의 셀, 300명의 영혼
예배의 외부적인 틀II - 예배 음악 조광현.
영성기도회 렉시오 디비나와 묵상기도 2.
성인 1부 성경 공부 지도목사: 신정우 목사 부 장: 오중환 집사 2010년. 5월 9일
남북 탑승객 150명을 태운 디젤기관차가 2007년 5월 17일 오전 경의선 철길을 따라 남측 최북단 역인 도라산역 인근 통문을 통과하고 있다. /문산=사진공동취재단.
성경 암송 대회 한일교회 고등부 (일).
천주교 의정부교구 주엽동본당 사목협의회 사목활동 보고서
III. 노동조합과 경영자조직 노동조합의 이데올로기, 역할 및 기능 노동조합의 조직형태 노동조합의 설립과 운영
여수시 MICE 산업 활성화 전략 ( 중간보고 )
1. 단위사업 관리, 예산관리 사업설정 (교직원협의/의견수렴) 정책 사업 학교 정책 사업 등록 사업 기본정보 목표 설정
※과정 수료자에 한하여 수강료의 80~100% 차등 환급함
평생학습중심대학 프로그램 수강지원서 접수안내 오시는 길 관악구&구로구민을 위한 서울대학교 -- 접수 일정 및 방법 안내--
서비스산업의 선진화, 무엇이 필요한가? 김 주 훈 한 국 개 발 연 구 원.
기존에 없던 창업을 하고 싶은데, 누구의 도움을 받아야 할지 모르겠어요
전시회 개요 Ⅰ. 전시명칭 개최기간 개최장소 개최규모 주 최 참 관 객 현 지 파 트 너 General Information
Homeplus 일 家 양 득 프로그램 소개 2015년 12월.
Home Network 유동관.
통신이론 제 1 장 : 신호의 표현 2015 (1학기).
I. 기업과 혁신.
Chapter 4 – 프로그래밍 언어의 구문과 구현 기법

ESOCOM – IPIX 고정IP서비스 제안서 Proposer ㈜이소컴.
화장품 CGMP 한국콜마㈜.
초화류 종자 시장 규모 100억원 이상(추정, 생산액의 10%정도 차지)
COMPUTER ARCHITECTIRE
[ 한옥 실측 ] 1. 약실측 2. 정밀실측 조선건축사사무소.
14. 컴파일러 자동화 도구 스캐너 생성기 파서 생성기 코드 생성의 자동화
A제조용수/B환경관리/C시설관리 ㈜ 에이플러스 코리아
Introduction to Network Security
Presentation transcript:

주요 내용 기본 용어 그래프의 표현 오일러(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

두 정점 u와 v 사이에 연결선이 존재하면 두 정점은 연결(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 1 0 3 0 1 1 1 0 4 0 0 0 1 1 5 0 0 0 0 1 M =

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

쾨니스버그의 다리들과 그래프 v1 v2 v3 v4 e1 e2 e3 e4 e5 e6 e7

한 줄로 그리기 문제: 다음의 그래프 중 한 정점에서 시작해서 연결선을 한 번만 지나면서 그래프를 다 그릴 수 있는 것은 어는 것인가?

오일러 경로(Eulerian path) 그래프 G의 오일러 경로는 G의 모든 연결선을 한번만 방문하는 경로이다. 닫힌 오일러 경로(closed Eulerian path)를 오일러 순환(Eulerian cycle 혹은 Circuit)이라고 한다. 오일러 순환이 존재하는 그래프를 오일러 그래프라고 한다.

<정리> 오일러 경로를 갖기 위한 필요충분 조건 2개 이상의 정점을 갖는 연결 그래프에서 홀수 차수(odd degree)를 갖는 정점이 하나도 없거나 오직 두 개만 존재해야 한다. 홀수 차수를 갖는 정점을 홀수점(odd vertex)라고 부르면, 그래프가 오일러 경로를 갖는 것과 그래프가 0 혹은 2개의 홀수점을 갖는 것은 동치 관계(equivalence relation)이다. 특히 모든 정점이 짝수 차수를 가지면 이 그래프는 오일러 그래프이다.

출발점과 종료점이 다른 경우 출발점과 종료점이 일치하는 경우

홀수점이 2개인 그래프는 한 줄로 그리기가 가능하며, 이 때 오일러 경로는 한 홀수점에서 시작하여 또 다른 <정리> 홀수점이 2개인 그래프는 한 줄로 그리기가 가능하며, 이 때 오일러 경로는 한 홀수점에서 시작하여 또 다른 홀수점에서 끝나야 한다. deg=2 deg=3 a b a b (시작점) d c c d deg=3 deg=2 (종료점)

예: 오일러 경로를 갖는 그래프 시작점 종료점 deg=3 deg=4 deg=3 deg=2 a d a b c d b c e f

예: 오일러 순환을 갖는 그래프 deg=4 deg=4 deg=4 deg=2 a a b c d b c d e f g e f g

예제 다음의 그래프는 오일러 경로를 갖고 있는가? deg=3 deg=3 deg=3 deg=6 deg=3 deg=3 deg=3 a b deg=3 deg=6 deg=3 f g c deg=3 deg=3 e d

해밀톤 경로(Hamitonian path) 그래프 G={V,E}에서 모든 정점을 정확히 한 번만 지나는 경로를 해밀톤 경로(Hamilton path)라고 한다. 해밀톤 순환(Hamiltonian cycle 혹은 circuit) 그래프 G={V,E}에서 모든 정점을 정확하게 한 번만 포함하는 순환을 해밀톤 순환이라고 한다.

G2는 해밀톤 경로는 존재하지만 해밀톤 순환은 존재하지 않는다. G3는 해밀톤 경로와 순환이 존재하지 않는다. 예: G1은 해밀톤 순환이 존재한다. G2는 해밀톤 경로는 존재하지만 해밀톤 순환은 존재하지 않는다. G3는 해밀톤 경로와 순환이 존재하지 않는다. a b c a a b c b d f c g f e e d e g d G1 G2 G3

예제: 방문 판매원 문제(traveling salesman problem) 해밀톤 순환은 1857년에 만들어진 Icosian 퀴즈 문제에서 비롯되었다. 이 퀴즈 문제는 12면체의 20개의 각 정점에 도시 이름을 적고 어느 한 도시에서 출발하여 모서리를 따라서 다른 모든 19개의 도시를 방문하고 처음 출발했던 도시로 돌아오는 게임이다. 물론 각 도시는 단 한번만 방문할 수 있다. 1 20 13 2 19 5 14 12 6 18 15 17 11 16 7 8 10 9 3 4

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

방향 그래프(directed graph, digraph) 그래프 G={V,E}에서 연결선의 두 정점이 순서쌍일 때

연결선이 시작하는 정점을 시점(initial point), 연결선이 끝나는 정점을 종점(terminal point)라고 한다. 방향 그래프의 정점 v에서 v를 종점으로 하는 연결선의 개수를 진입 차수(indegree)라고 하며, v를 시점으로 하는 연결선의 수를 진출 차수(outdegree)라고 한다. 예: 정점 v3의 진입 차수는 3이며, 정점 v2의 진출 차수는 2이다. v2 e4 v4 e1 e5 e3 v1 v6 e2 e6 v3 v5

진입 차수가 0인 정점을 소스(source)라고 하며, 진출 차수가 0인 정점을 싱크(sink)라고 한다. 예: 정점 v1과 v5는 진입 차수가 0으로 모두 소스에 해당되며, 정점 v3와 v6는 진출 차수가 0으로 싱크에 해당된다. v2 v1 v3 v4 v5 v6 e1 e2 e3 e4 e5 e6

강한 연결 방향 그래프(strongly connected diagraph) 방향 그래프 G의 두 정점 u, v에서 u에서 v로의 경로가 존재하고, v에서 u로의 경로가 존재하면 u와 v는 강하게 연결되었다고(strongly connected) 한다. 방향 그래프 G의 모든 정점의 쌍이 강하게 연결되어 있으면 이 그래프를 강한 연결 방향 그래프라고 한다. 약한 연결 방향 그래프(weakly connected diagraph) 방향 그래프 G에서 방향성이 없는 연결선으로 이루어진 그래프를 G'라고 하자. G'의 모든 두 개의 정점에 대해서 경로가 존재하면 약한 연결 방향 그래프라고 한다. 강한 연결 요소(strongly connected component) 강한 연결 그래프의 최대 부분 그래프이다.

예: 그래프 G는 모든 두 정점 사이에 경로가 존재하므로 강한 연결 그래프이다. 하지만 그래프 H는 a와 e 사이에 경로가 존재하지 않는다. 하지만 H의 연결선에서 방향성을 제외할 경우 모든 두 정점 사이에는 경로가 존재한다. 따라서 H는 약한 연결 방향 그래프이다. G H G의 강한 연결 요소

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

가중 그래프(weighted graph) 가중 그래프 G는 G=(V,E,W)로서 정의된다. W는 각 연결선에 주어지는 가중치의 집합을 의미한다. 40 2 40 4 2 4 10 10 40 30 30 10 30 15 15 15 10 20 1 10 20 6 1 10 20 6 30 10 30 10 30 20 10 20 3 5 20 3 5

최단 경로 알고리즘 Dijstra 알고리즘 Bellman-Ford 알고리즘

[알고리즘] Dijstra 최단 경로 알고리즘 입력: 그래프 G={V,E,W}, V={1,2,3,...,n} 결과: 소스(source) 1에서 다른 정점으로의 최단 경로와 비용 C[i,j] : 연결선 e=(i,j)의 비용(가중치) D[i] : 소스 1에서 정점 i까지 경로의 비용 S={1}  초기 단계 for i=2 to n    D[i] = C[1,i]  /* 1에서 노드 i까지의 비용 */ while (V≠S)    V-S의 정점 중에서 D[w]가 최소값인 정점 w를 선택한다.    w를 S에 합한다.(S = S +{w})    for v ∈ V-S (S를 제외한 모든 정점들에 대해서)        D[v] = min(D[v], D[w]+C[w,v]) for w ∈S

예제 초기 단계 S={1}, D[2]=10, D[3]=30, D[4]=, D[5]= , D[6]=  2 40 4 10 15 1 10 20 6 30 10 20 3 5 초기 단계 2 4 10 1 6 30 3 5 S={1}, D[2]=10, D[3]=30, D[4]=, D[5]= , D[6]= 

단계2 단계1 단계3 단계4 S={1,2}, D[3]=25, D[4]=50, D[5]= , D[6]=  40 4 4 10 10 10 1 15 6 1 15 6 20 3 5 3 5 S={1,2}, D[3]=25, D[4]=50, D[5]= , D[6]=  노드2까지의 최단 경로: 12 S={1,2,3}, D[4]=35, D[5]= 45, D[6]=  노드3까지의 최단 경로: 12 3 단계3 단계4 2 4 2 4 10 10 30 10 10 1 15 6 1 15 6 10 20 20 3 5 3 5 S={1,2,3,4}, D[5]= 45, D[6]= 65 노드4까지의 최단 경로: 12 3 4 S={1,2,3,4,5}, D[6]= 55 노드5까지의 최단 경로: 12 3 5

단계5 S={1,2,3,4,5,6} 노드4까지의 최단 경로: 12 3 56 2 4 10 10 1 15 6 10 20 3 40 4 10 30 15 1 10 20 6 30 10 20 3 5

Bellman-Ford 알고리즘 소스로부터 특정 정점에 이르는 경로를 선택할 때 각 단계 h 마다 최대 h개의 연결선으로 연결된 경로 중에서 최소값을 갖는 경로를 선택 j 2 Dh(2) d2i 3 d3i 1 Dh(3) i Dh(n-1) dn-1i n-1 Dh(n) dni n Dh[j]: h 단계까지 계산 결과 소스 1에서 각 정점에 이르는 경로의 최소값 Dh[j]+dji : i와 이웃하는 정점들(j)을 통한 i까지의 경로의 비용 dji: 연결선 (j,i)의 비용 이렇게 구한 값 중에서 가장 작은 값이 소스1에서 i에 이르는 h+1개의 연결선으로 구성된 최단 경로가 된다.

[알고리즘] Bellman-Ford 최단 경로 알고리즘 입력: 그래프 G={V,E,W}, V={1,2,3,...,n} 결과: 소스(source) 1에서 다른 정점으로의 최단 경로와 비용 djj : 정점 i에서 j까지 연결선의 비용      dii = 0      dij = ∞ if i and j are not directly connected  h :  연결선의 수  Dh[j]: 소스 1에서 정점 j까지 h개까지의 연결선으로 이루어진 경로 중에서 가장 적은 비용의 값 단계1: 초기화     h=0     D0[i] = ∞ for all i ∈ {2,3,...,n}  단계2:     Dh+1[i] = min(Dh[j]+dji) for i,j ∈ {2,3,...,n}     h=h+1  단계2의 절차를 Dh[i]의 변화가 더 이상 발생하지 않을 때까지 반복한다.

예제 h=1 D1[2]=10 , D1[3]= 30, D1[4]=, D1[5]= , D1[6]=  (12) (13) 2 40 4 10 30 15 1 10 20 6 30 10 20 3 5 h=1 2 4 10 1 6 30 3 5 D1[2]=10 , D1[3]= 30, D1[4]=, D1[5]= , D1[6]=  (12) (13)

h=2 h=3 D1[2]=10, D1[3]=25, D1[4]=40, D1[5]= 50, D1[6]=  15 6 30 20 3 5 D1[2]=10, D1[3]=25, D1[4]=40, D1[5]= 50, D1[6]=  (12), (12 3) (13 4) (13 5) h=3 2 4 10 10 1 15 6 30 10 20 3 5 D1[2]=10, D1[3]=25, D1[4]=35, D1[5]= 45, D1[6]= 60 (12), (12 3) (12 3 4) (12 3 5) (13 5 6)

h=4 D1[2]=10, D1[3]=25, D1[4]=35, D1[5]= 45, D1[6]= 55 15 6 30 20 3 5 D1[2]=10, D1[3]=25, D1[4]=35, D1[5]= 45, D1[6]= 55 (12), (12 3) (12 3 4) (12 3 5) (12  3  5 6) 2 40 4 10 30 15 1 10 20 6 30 10 20 3 5

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

그래프 순회(graph traversal) 그래프의 모든 정점들을 한번씩 찾아서 방문하는 것을 그래프 순회(graph traversal)라고 한다. 그래프 순회 방법  깊이 우선 탐색(depth first search)  넓이 우선 탐색(breadth first search)

깊이 우선 탐색 탐색을 시작하는 정점에서 인접하는 정점 중에서 아직 방문하지 않은 정점을 계속 찾아서 먼저 방문하는 것이다. 이렇게 계속 인접하는 정점을 찾아 방문하다가 더 이상 방문하지 않은 정점이 없으면 가장 최근에 방문했던 정점으로 다시 돌아와서 이 정점에 인접된 정점 중에서 방문하지 않은 정점이 있으면 계속 찾아 나간다. 그리고 더 이상 방문하지 않은 정점이 없으면 다시 가장 최근에 방문했던 정점으로 돌아와서 여기서부터 다시 인접된 정점들을 방문해 나간다.

예: 그래프 G의 깊이 우선 탐색에 의한 방문 순서 a 2 9 b c d e b f 10 3 f d g f c i c a g 4 c j g j 5 6 a d d g h 7 e a i f j h 8 f g h G j 방문 순서: a b f c d g j h e i

넓이 우선 탐색 시작 정점의 인접 정점들을 모두 방문한 뒤에 이 정점들에 인접한 정점들을 방문하는 것이다. 즉 한 정점에 인접한 정점들은 모두 먼저 방문하고 다음 단계의 인접된 정점들을 찾아간다.

예: 그래프 G의 넓이 우선 탐색에 의한 방문 순서 1 a b f 2 3 4 5 c b d e c 7 a g 6 f i 8 j d g f c c 9 g j 10 d h f j h e j i G 방문 순서: a b c d e f g i j h

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

평면 그래프(planar graph) 그래프 G=(V,E)의 연결선들이 서로 교차하지 않고 평면상에 그릴 수 있는 그래프G를 평면 그래프라고 한다.

예: 비평면 그래프 (a) K5 (b) K3,3

연결선에 따라 구분된 영역을 면(face)이라고 한다. 4 3 1 2 (a) 그래프 G 1 2 3 4 1 1 2 2 (b) 그래프 G에 분할되는 면(faces)

<정리> 오일러 정리 연결된 평면 그래프의 정점의 수를 v, 연결선의 수를 e, 면의 수를 f라고 하면 다음과 같은 관계식이 성립한다.   v-e+f = 2 <정리> 루프(loop)가 없고 두 개 이상의 연결선이 존재하는(즉, v≥3) 연결된 평면 그래프에서는 다음과 같은 식이 성립한다.           e  ≤ 3v - 6

그래프 K5는 v=5, e=10이다. 따라서 3x5-6=9이므로 오일러 정리를 만족하지 않으므로 비평면 그래프이다. 예제: 그래프 K5는 v=5, e=10이다. 따라서 3x5-6=9이므로 오일러 정리를 만족하지 않으므로 비평면 그래프이다. K5 K3,3 K3,3 그래프는 v=6, e=9이다. 이 그래프가 평면 그래프라면 [정리5]의 오일러 정리에 의해서 f=5이다. 그런데 이 그래프는 어떤 면도 세 개의 연결선으로 만들어지지 않는다. 따라서 모든 면은 최소한 4개 이상의 연결선으로 만들어지며 5개 면의 총 차수(degree)는 4x5=20 이상이 되어야 한다. 차수가 20 이상이라면 총 연결선은 10개 이상(e≥10)이 되어야 하므로 현재 그래프는 e=9이므로 이 그래프는 평면 그래프가 될 수 없다.

준동형 그래프(homeomophic graph) 임의의 그래프 G에 대해서 한 연결선에 여러 개의 정점을 추가해서 그 연결선을 분할할 수 있다. 이것을 기본적인 세분할(elementary subdivision)이라고 한다. 이와같이 그래프G로부터 기본적인 세분할을 통해서 얻어진 그래프 G'과 G''을 준동형 그래프라고 한다. G’’ G G’

Kurantowski 정리와 Kurantowski 그래프 그래프가 그래프K5와 K3,3와 준동형인 부분 그래프를 포함한다면 비평면 그래프이며, 이 역도 성립한다. 그리고 K5와 K3,3;를 Kurantowski 그래프라고 한다. 예제: G'은 G의 부분 그래프이다. 그리고 G‘은 K5와 준동형 그래프이다. 따라서 Kurantowski 정리에 의해서 그래프 G는 K5와 준동형인 부분 그래프를 갖고 있으므로 비평면 그래프이다. G G’ K5

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

그래프의 채색(graph coloring)과 색상수(chromatic number) 그래프의 채색은 인접하고 있는 정점들은 서로 다른 색을 갖도록 하면서 그래프의 모든 정점에 색을 할당하는 것이다. 이렇게 칠하기 위해서 필요한 최소한의 색의 수를 그래프의 색상수(chromatic number)라고 하고 χ(G)로 표시한다.

예제: 다음 그림의 색상수는 얼마인가? χ(G)=4 G A E I C B F D G J H Y E R F R Y A B I C

예제: 완전 그래프 Kn의 색상수는 얼마일까? Kn의 색상수는 n이다. 예제: 이분 그래프 Km,n의 색상수는 얼마일까? 이 값은 m, n에 상관없이 χ(Km,n)=2이다.

<정리> 다음 세 가지 명제는 서로 동치(equivalent)이다. (1) G는 이분 그래프이다. (2) χ(G) = 2이다. (3) G의 모든 순환(cycle)의 길이는 짝수이다. <정리>4색 정리(the four color theorem) 평면 그래프의 색상수는 4보다 크지 않다. 즉 χ(G) ≤ 4이다.

예제: 그래프 채색의 응용- 스케쥴링(scheduling) 대학교에서 기말 시험을 볼 때 동일한 학생이 수강하고 있는 강좌는 같은 시간에 시험을 보아서는 안 된다. 예를 들어 1번에서 8번까지의 8개의 강좌가 있고 동일한 학생이 수강하는 과목이 1과 2, 1과 5, 1과 8, 2와 7, 2와 3, 3과 4, 4와 7, 4와 6, 5와 6, 6과 7, 7과 8이라고 하자. 이 문제는 수강 과목을 정점으로 하고 동일한 학생이 수강하는 과목들을 연결선으로 하는 그래프로 표시할 수 있다. 그리고 동일한 학생이 수강하는 과목들은 같은 시간에 시험을 볼 수 없으므로 인접하는 정점들은 다른 색을 같아야 하는 그래프 채색의 문제가 된다. 1 2 3 8 4 7 6 5