그래프와 트리 (Graphs and Trees)

Slides:



Advertisements
Similar presentations
언어의 자서전 소단원 (1) 단원. 언어의 특성 기호성 자의성 사회성 규칙성 창조성 역사성.
Advertisements

2008 년 7 월 24 일 신문기사 자동 분류 시스템 한국과학기술정보연구원 최성필 목차 문서분류시스템의 예시와 정의 자동문서분류시스템의 구조 문서분류 모델 및 알고리즘의 종류 문서분류 모델 별 정확도 실험결과 실험결과에 대한 단상 세 가지 분류모델.
전남행복수업 design 독서ㆍ토론 수업 지원 자료 활용 목포유달초등학교 김미향.
전남행복수업 design, 독서·토론수업 연구의 개요를 말씀드리겠습니다..
자료구조: CHAP 7 트리(1) 순천향대학교 컴퓨터공학과 하 상 호.
1. 자료구조 개념 (1) 자료구조의 개요 1) 자료구조 ① 일련의 자료들을 조직하고 구조화하는 것 ② 자료의 표현과 그것과 관련된 연산 2) 자료구조에 따라 저장공간의 효율성과 프로그램의 실행시간이 달라짐 3) 어떠한 자료구조에서도 필요한 모든 연산들을 처리하는 것이.
그래프.
Maximum Flow.
Discrete Mathematics Express
Shortest Path Algorithm
Internet Computing KUT Youn-Hee Han
8. 파일 인덱스: 탐색트리 (Search Tree)
블로그 활용 현황 학과 : 영어영문학과 학번 : 이름 : 정경업
제 6 장 그래프 6.1 그래프의 정의 6.2 용어 및 표현법 6.3 그래프의 표현 방법 6.4 그래프의 순회와 신장 트리
Chapter 7. Binary Search Trees - 보충 자료-
분류 (Classification) 2014년 가을학기 강원대학교 컴퓨터과학전공 문양세.
6장 트리.
Information Technology
Ch.04 Greedy Method (탐욕적 방법)
쉽게 배우는 알고리즘 3장. 정렬Sorting
CHAP 10:그래프 순천향대학교 하상호.
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 학기 데이터구조.
CHAP 10:그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 62).
제5장 트리.
CHAP 7:트리.
강의 #7 트리(Tree).
쉽게 배우는 알고리즘 5장. 검색트리
On the computation of multidimensional Aggregates
제 6 장 그래프.
Tel : Office : 2공학관 408호 오토마타 및 형식언어 김 현 성 Tel : Office : 2공학관 408호
쉽게 배우는 알고리즘 9장. 그래프 알고리즘.
알고리즘(Algorithm) – Greedy Method (탐욕적 방법)
Chapter 10 그래프(graph) SANGJI University Kwangman KO
발표자 : 홍익대학교 소프트웨어 공학 연구실 변은영 지도교수 : 김영철
10장. 그래프 알고리즘.
RPL: Routing Protocol for Low Power and Lossy Networks
그래프(graph) 연결되어 있는 객체 간의 관계를 표현하는 자료구조 가장 일반적인 자료구조 형태
Tree & Heap SANGJI University Kwangman Ko
CHAP 7:트리 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
CHAPTER 6 그래프.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
자료구조(SCSC) Data Structures
CHAP 7:트리 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
동적 계획(Dynamic Programming)
Social Network Analysis
2009, 46th KLA General Conference
Ch.03 Dynamic Programming (동적 프로그래밍 or 동적 계획법)
관계 기본 개념 관계의 표현 관계의 성질 관계의 연산 관계의 폐포 동치 관계 부분순서 관계.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
그래프의 용어 알고리즘 수업자료 김정현.
조 병 규 Software Quality Lab. 한 국 교 통 대 학 교
어린이집.
국제물류.
CHAP 10 : 그래프.
알고리즘(Algorithm) 유비쿼터스 컴퓨팅학과 교수 송 창근
Chapter 9. Multilevel Indexing and B-Trees
제 8 장 계산복잡도 개론 검색 문제 알고리즘 강의 슬라이드 8 검색 문제
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
타인을 내편으로 만드는 12가지 방법 고객서비스팀.
이산수학(Discrete Mathematics)
탐색 선형 탐색, 이진 탐색, 이진 탐색 트리.
Chapter 07 트리.
(Ⅰ) 독서와 언어의 본질 언어의 본질 1 2 [고등 국어] – 독서와 문법 독서의 본질 (1) 독서의 특성
시민이 체감하는 편리한 건축인허가 절차 개선 추진.
자료구조 자료구조의 개요 배열 선형 리스트 스택 큐 트리.
4. 분자 상호 작용의 네트워크 분석 4.1 네트워크 표현과 계산
Dynamic Graph Query Primitives for SDN-based Cloud Network Management Ramya Raghavendra, Jorge Lobo, Kang-Won Lee 2012 HotSDN 정보통신공학과.
[CPA340] Algorithms and Practice Youn-Hee Han
알고리즘 강의 슬라이드 7 정렬문제 알고리즘 해석 강의 슬라이드 #7
Presentation transcript:

그래프와 트리 (Graphs and Trees) 이산수학(Discrete Mathematics) 그래프와 트리 (Graphs and Trees) 2016년 봄학기 강원대학교 컴퓨터과학전공 문양세

그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 강의 내용 Graphs and Trees 그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 특별한 그래프 (Special Types of Graphs) 그래프 표현(Representing Graphs) 트리 소개 (Introduction to Trees)

그래프의 정의 Graphs and Trees 정의: 그래프 G = (V,E)는 공집합이 아닌 노드(정점)들의 집합 V와 에지(이음선)의 집합 E로 구성된다. 에지는 하나 혹은 두 개의 정점을 연결한다. 그래프 예제

용어 (Terminology) (1/2) Graphs and Trees 단순 그래프(simple graph): 각 에지는 서로 다른 두 노드를 연결하며, 같은 쌍의 노드를 연결하는 두 개의 에지는 존재하지 않는다. 다중 그래프(multigraph): 같은 쌍의 노드를 연결하는 다중 에지(multiple edges)가 존재한다.

용어 (Terminology) (2/2) 루프(loop): 노드 자기 자신을 연결하는 에지 Graphs and Trees 루프(loop): 노드 자기 자신을 연결하는 에지 의사 그래프(pseudo graph): 루프, 다중 에지를 포함하는 그래프이다.

방향성 그래프(Directed Graphs) Graphs and Trees 지금까지 살펴본 그래프는 에지가 방향성을 갖지 않는 비방향성 그래프(undirected graph)이다. 방향성 그래프(directed graph, digraph): 그래프 G=(V,E)가 공집합이 아닌 노드들의 집합 V, 방향성 에지 혹은 아크(arcs)들의 집합 E로 구성된다. 각 에지는 노드의 순서쌍(ordered pair)이다. 단순 방향성 그래프(simple directed graph) 방향성 다중 그래프 (directed multigraph)

그래프 모델 (Graph Models) 그래프와 그래프 이론은 여러 모델에 이용될 수 있다. Graphs and Trees 그래프와 그래프 이론은 여러 모델에 이용될 수 있다. 컴퓨터 네트워크 (Computer Networks) 소셜 네트워크 (Social Networks) 통신 네트워크 (Communication Networks) 정보 네트워크 (Information Networks) 소프트웨어 설계 (Software Design) 운송(교통) 네트워크 (Transportation Networks) 생물 네트워크 (Biological Networks)

그래프 모델 – 컴퓨터 네트워크 Graphs and Trees

그래프 모델 – 소셜 네트워크 (1/2) 소셜 네트워크 모델링 Graphs and Trees 소셜 네트워크 모델링 노드: 개인(individuals) 혹은 조직(organizations) 에지: 노드간의 관계(relationship) 교우관계 그래프(friendship graph): 두 사람이 친구이면 연결

그래프 모델 – 소셜 네트워크 (2/2) Graphs and Trees 영향력 그래프(influence graph): 한 사람이 다른 사람에게 영향력을 미침 (방향성 그래프) 협업 그래프(collaboration graph): 두 사람이 협력(공동연구) 하는 관계를 표시 (비방향성 그래프) 헐리우드 그래프: 두 배우가 공동 출연한 경우 연결 공동연구 그래프: 공저자인 경우 연결

전화 호출 그래프 Graphs and Trees

운송(교통) 네트워크 (1/2) Graphs and Trees 항공 네트워크 (Airline Network)

운송(교통) 네트워크 (2/2) Graphs and Trees 도로 네트워크 (Road Network)

생물 네트워크 (Biological Networks) Graphs and Trees

그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 강의 내용 Graphs and Trees 그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 특별한 그래프 (Special Types of Graphs) 그래프 표현(Representing Graphs) 트리 소개 (Introduction to Trees)

비방향성 그래프 (1/3) Graphs and Trees 정의: 비방향성 그래프 G에서 두 노드 u, v가 에지 e로 연결되어 있다면, u와 v는 인접(adjacent)하다 혹은 이웃(neighbor)한다고 한다. 이때, 에지 e가 노드 u와 v를 연결(connect)한다고 한다. 정의: G=(V,E)의 한 노드 v의 모든 이웃의 집합을 v의 이웃이라 하고, N(v)라 표기한다. 또한, A가 V의 부분집합이라면 N(A)는 A내 노드에 인접한 모든 노드들의 집합이다. 정의: 노드의 차수(degree of a node, degree of a vertex)란 해당 노드에 연결된 에지의 수를 나타내며, deg(v)라 표기한다. 루프의 경우 차수 2로 계산한다.

비방향성 그래프 (2/3) Graphs and Trees 예제: 다음 그래프 G에서 노드의 이웃과 차수는?

비방향성 그래프 (3/3) Graphs and Trees 예제: 다음 그래프 H에서 노드의 이웃과 차수는?

방향성 그래프 (1/2) Graphs and Trees 정의: (u,v)가 방향성 그래프 G의 에지 e라 할 때, e는 v로 인접(adjacent to)한다 혹은 e는 u로 부터 인접(adjacent from)한다고 한다. 이때, u를 시작 노드(initial node)라 하고 v를 종료 노드(terminal node)라 한다. 정의: 노드 v의 입력 차수(in-degree)란 v를 종료 노드로 하는 에지의 수이며, deg(v)라 표기한다. 반대로, 노드 v의 출력 차수(out-degree)란 v를 시작 노드로 하는 에지의 수이며, deg +(v)라 표기한다. 참고: 루프의 경우, 입력 차수에 1, 출력 차수에 1을 부여한다.

방향성 그래프 (2/2) 예제: 다음 그래프 G에서 노드의 입력 차수(in-degree)와 출력 차수(out-degree)는? Graphs and Trees 예제: 다음 그래프 G에서 노드의 입력 차수(in-degree)와 출력 차수(out-degree)는?

그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 강의 내용 Graphs and Trees 그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 특별한 그래프 (Special Types of Graphs) 그래프 표현(Representing Graphs) 트리 소개 (Introduction to Trees)

완전 그래프 (Complete Graphs) Graphs and Trees 정의: 노드 n개에 대한 완전 그래프 Kn은 모든 노드간에 정확히 1개의 에지가 연결된 단순 그래프이다.

n-차원 큐브 (n-Dimensional Cube) Graphs and Trees 정의: n-차원 큐브(or n-큐브) Qn은 길이 n의 2n개 비트 스트링을 나타내는 노드들을 갖는 그래프이다.

이분 그래프 (Bipartite Graphs) Graphs and Trees 정의: 단순 그래프 G=(V,E)에서, 집합 V가 서로 소(disjoint)인 두 집합 V1, V2로 분리되고, E의 모든 에지는 V1의 한 노드와 V2의 한 노드를 연결하면, G는 이분(bipartite)되었다고 한다.

이분 그래프 예제 (1/3) Graphs and Trees C6는 이분 그래프인가? C6는 이분 그래프이다!  V1 = {v1, v3, v5}, V2 = {v2, v4, v6}

이분 그래프 예제 (2/3) Graphs and Trees C3는 이분 그래프인가? C3는 이분 그래프가 아니다!  C3를 공집합이 아닌 두 집합으로 구분하면, 적어도 한 집합은 두 노드를 포함하고, 이들 두 노드는 연결되어 있다.

이분 그래프 예제 (3/3) 그래프 H는 이분 그래프인가? Graphs and Trees 그래프 H는 이분 그래프인가? H는 이분 그래프가 아니다!  노드 a, b, f가 C3를 형성하고 있는데, C3는 이분 그래프가 아니다.

서브그래프 (Subgraphs) Graphs and Trees 정의: 그래프 G=(V,E)에서, WV, FE를 만족하는 W와 F로 구성된 그래프 (W,F)를 G의 서브그래프라 정의한다.

그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 강의 내용 Graphs and Trees 그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 특별한 그래프 (Special Types of Graphs) 그래프 표현(Representing Graphs) 트리 소개 (Introduction to Trees)

그래프의 표현 (Representation of Graphs) Graphs and Trees 다음 그래프들을 어떻게 컴퓨터에서 표현할까? 즉, 컴퓨터에서 어떤 자료구조로 나타낼까?

인접 리스트 (Adjacent List) (1/2) Graphs and Trees 인접 리스트(adjacent list): 각 노드에 대해 해당 노드에 인접한 다른 노드들을 리스트로 나열한다.

인접 리스트 (Adjacent List) (2/2) Graphs and Trees 인접 리스트(adjacent list): 각 노드에 대해 해당 노드에 인접한 다른 노드들을 리스트로 나열한다.

인접 행렬 (Adjacent Matrix) (1/3) Graphs and Trees 인접 행렬(adjacent matrix): 그래프 G=(V,E)에서 V={v1, v2, ..., vn}이라 할 때, G의 인접행렬 A=[aij]는 다음과 같이 정의된다. 단순 그래프의 인접행렬 예제

인접 행렬 (Adjacent Matrix) (2/3) Graphs and Trees 다중 그래프의 인접행렬 예제

인접 행렬 (Adjacent Matrix) (3/3) Graphs and Trees 가중치 방향성 그래프(weighted directed graph)의 인접행렬 v5 v1 v4 v2 v3 3 5 1 9 2 4

그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 강의 내용 Graphs and Trees 그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 특별한 그래프 (Special Types of Graphs) 그래프 표현(Representing Graphs) 트리 소개 (Introduction to Trees)

트리(Tree)란? (1/2) Graphs and Trees 정의: 트리(tree)란 사이클(cycle, 순환)을 갖지 않는 연결된 비방향성 그래프(connected undirected graph)이다. 다음 중 트리는? YES YES NO NO

트리(Tree)란? (2/2) 정리: 비방향성 그래프가 트리라면 임의의 두 노드간의 경로는 유일하며, 그 역도 성립한다. Graphs and Trees 정리: 비방향성 그래프가 트리라면 임의의 두 노드간의 경로는 유일하며, 그 역도 성립한다.

포레스트(Forest)란? Graphs and Trees 정의: 한 개 이상의 트리로 구성된 그래프를 포레스트(forest)라 한다. 즉, 트리들의 집합을 포레스트라 부른다.

트리 모델링 (1/2) Graphs and Trees 파일 시스템의 디렉토리/파일 체계

트리 모델링 (2/2) Graphs and Trees 기업의 조직 체계

루티드 트리(Rooted Tree) (1/3) Graphs and Trees 정의: 트리에서 하나의 노드가 루트(root)로 지정된 경우 이를 루티드 트리(rooted tree)라 정의한다. 루트를 제외한 모든 노드는 루트로부터 뻗어서 연결된다.

루티드 트리(Rooted Tree) (2/3) Graphs and Trees 용어: 부모(parent), 자식(children), 형제(sibling)

루티드 트리(Rooted Tree) (3/3) Graphs and Trees 용어: 조상(ancestor), 자손(descendant)

m-가지 트리(m-ary Tree) Graphs and Trees 정의: 트리의 모든 내부 노드가 m개 이하의 자식을 가질 경우, 이 트리를 m-가지 트리(m-ary tree)라 부른다. 또한, 모든 내부 노드가 정확히 m개 자식을 가질 경우 이를 전체 m-가지 트리(full m-ary tree)라 한다. 예제: 다음 중 전체 m-가지 트리인 것은?

이진 트리(Binary Tree) Graphs and Trees 정의: 트리의 모든 내부 노드가 최대 2개의 자식을 가지면 이를 이진 트리(binary tree)라 부른다. 이진 트리의 임의의 내부 노드가 두 자식을 가질 때, 첫 번째 자식을 왼쪽 자식(left child), 두 번째 지식을 오른쪽 자식(right child)라 한다. 왼쪽 자식을 루트로 하는 서브트리를 왼쪽 서브트리(left subtree), 오른쪽 자식을 루트로 하는 서브트리를 오른쪽 서브트리(right subtree)라 한다.

그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 강의 내용 Graphs and Trees 그래프와 그래프 모델(Graphs and Graph Models) 그래프 용어 (Graph Terminology) 특별한 그래프 (Special Types of Graphs) 그래프 표현(Representing Graphs) 트리 소개 (Introduction to Trees)