MST – Kruskal 알고리즘 (추상적)

Slides:



Advertisements
Similar presentations
10장. 시기별 학급경영 11조 염지수 이 슬 권용민 신해식.
Advertisements

일본 근세사. (1) 에도막부의 개창 ( ㄱ ) 세키가하라의 전투 (1600) - 히데요시의 사후 다섯 명의 다이로 ( 大老 ) 가운데 최대 영지 (250 만석 ) 를 보유하고 있던 도쿠가와 이에야스가 급부상. 이에 이에야스와 반목해 온 이시다 미쓰나리 ( 石田三成 ),
아니마 / 아니무스 송문주 조아라. 아니마 아니마란 ? 남성의 마음속에 있는 여성적 심리 경향이 인격화 한 것. 막연한 느낌이나 기분, 예견적인 육감, 비합리적인 것에 대 한 감수성, 개인적인 사랑의 능력, 자연에 대한 감정, 그리.
대구가톨릭대학교 체육교육과 06 학번 영안중학교 체육교사 신웅섭 반갑습니다. 반야월초등학교 축구부 대륜중학교 축구부 대륜고등학교 대구가톨릭대학교 차석 입학 대구가톨릭대학교 수석 졸업 2014 년 경북중등임용 체육 차석 합격 영안중학교 체육교사 근무 소개.
일장 - 1 일 24 시간 중의 명기 ( 낮 ) 의 길이 ( 밤은 암기, 낮은 명기 ) 광주기성 - 하루 중 낮의 길이의 장단에 따라 식물의 꽃눈 형성이 달라지는 현상 일장이 식물의 개화현상을 조절하는 중요한 요인 단일식물 - 단일조건에서 개화가 촉진되는 식물 장일식물.
2 학년 6 반 1 조 고은수 구성현 권오제 김강서.  해당 언어에 본디부터 있던 말이나 그것에 기초하여 새로 만들어진 말  어떤 고장 고유의 독특한 말  Ex) 아버지, 어머니, 하늘, 땅.
프로젝트 학습 중간 보고서 군포초등학교부설 지역공동 영재학급 용호초등학교5학년 이창민.
2014년도 교원 및 기간제교사 성과상여금 전달교육 개 회 국기에 대한 경례 - 인사말
선진 고양교육 “유아교육 행정 업무 연수” 유치원 회계실무 및 유아학비 연수 경기도고양교육청.
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
Chapter 2 정보시스템 아키텍처 (IS Architecture)
Vision System Lab, Sang-Hun Han
묵자 겸애, 비명, 비공, 상현, 상동, 천지, 명귀, 삼표 법.
Internet Computing KUT Youn-Hee Han
인천대학교 PINCOM 컴퓨터비전 스터디 계획 인천대학교 임베디드시스템공학과 김도건.
내 아이를 위한 구강관리.
14주차 1교시 강화계획 [학습목표] 1. 강화계획의 정의를 안다 [학습내용] 1. 단순한 강화계획 2. 간헐적 강화 3. 복합 계획 4. 선택과 대응법칙 [사전학습] 강화계획이 일어날 수 있는 사례를 생각해본다.
제 6 장 그래프 6.1 그래프의 정의 6.2 용어 및 표현법 6.3 그래프의 표현 방법 6.4 그래프의 순회와 신장 트리
제16장 원무통계 • 분석 ☞ 통계란 특정의 사실을 일정한 기준에 의하여 숫자로 표시한 것을 말한다.통계로서 활용할 수 있는 조건으로는 ① 동질성을 지녀야 하고 ② 기준이 명확하고 ③ 계속성이 지속되어야 하며 ④ 숫자로 표시하여야 한다 경영실적의.
연장근로와 야간·휴일근로 김영호 노무사 나눔 노사관계연구소 소장 연세대 일반대학원 박사 수료 고려사이버대 법학과 외래교수
서울지방세무사회 부가세 교육 사진클릭-자료 다운 세무사 김재우.
치매의 예방 김 은민 윤금 노인요양원 치매의.
Chapter 10 – 추상 자료형 Outline 10.1 소개 10.2 Ada의 추상 자료형 10.3 C++의 추상 자료형
시스템 생명 주기(System Life Cycle)(1/2)
Delphi 2009의 언어 개선 박지훈.임프 2018년 11월 16일 금요일
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
Internet Computing KUT Youn-Hee Han
Internet Computing KUT Youn-Hee Han
Ch.04 Greedy Method (탐욕적 방법)
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 학기 데이터구조.
CHAP 10:그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 62).
시스템 생명 주기(System Life Cycle)(1/2)
쉽게 배우는 알고리즘 9장. 그래프 알고리즘.
알고리즘(Algorithm) – Greedy Method (탐욕적 방법)
Chapter 10 그래프(graph) SANGJI University Kwangman KO
Ch.04 Greedy Method (탐욕적 방법)
그래프(graph) 연결되어 있는 객체 간의 관계를 표현하는 자료구조 가장 일반적인 자료구조 형태
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
마산에 대하여 만든이 : 2204 김신우, 2202 권성헌.
이산수학(Discrete Mathematics)
1.고객맞이 상황 응대자세 화법 중점사항 매장 밖 에 서 도보 고객 고객 방향 쪽으로 바른 자세를 취한다
1. 논리적이란? 논리적이지 못하다 말이나 글에 두서가 없다. 1. 논리적이란? 논리적이지 못하다 말이나 글에 두서가 없다.
CHAPTER 6 그래프.
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
경건의 시간 (QT) 한남 큰모임.
자료구조(SCSC) Data Structures
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
강의 소개, 자료구조의 개념, SW 개발과 자료구조
Introduction to Programming Language
Chapter 01 자료 구조와 알고리즘.
이산수학(Discrete Mathematics)
[CPA340] Algorithms and Practice Youn-Hee Han
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
Chapter 02. 소프트웨어와 자료구조.
Internet Computing KUT Youn-Hee Han
Can Digital Computers Think? - Summary
CHAP 1:자료구조와 알고리즘.
6장 마케팅 조사 박소현, 김중호, 박기찬.
한밭대학교 창업경영대학원 회계정보학과 장 광 식
스케줄링 (Scheduling) 시스템 내부시간(time in the system): 스케줄링 문제
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
음양오행과 물리학 조 원 : 김용훈, 양범길, 박수진, 윤진희, 이경남, 박미옥, 박지선 (11조)
MST – Kruskal 알고리즘 (추상적)
이야기 치료에 대하여 <8조 학문적 글쓰기 발표> 주희록 최은지
▶서류관리 프로그램 1. 로그인….2 2. 서류등록 … 서류도착 서류스티커발행
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
중국문학개론 한부와 겅건안문학 중어중국학과 ㅇ이진원 한부와 건안문학.
Presentation transcript:

MST – Kruskal 알고리즘 (추상적) 1. F := 0; 2. 서로소(disjoint)가 되는 V 의 부분집합 들을 만드는데, 각 부분집합 마다 하나의 정점만 가지도록 한다. 3. E안에 있는 이음선을 가중치의 비내림차순으로 정렬한다. 4. 최종해답을 얻지 못하는 동안 다음 절차를 계속 반복하라 (a) 선정 절차: 최소의 가중치를 가진 이음선을 선정한다. (b) 적정성 점검: 선정된 이음선이 두 개의 서로소인 부분 집합에 속한 정점을 잇는다면, 그 두 집합을 하나의 집합으로 합치고, 그 이음선을 F에 추가한다. (c) 해답 점검: 만약 모든 부분집합이 하나의 집합으로 합쳐지면, 그 때 T = (V,F)가 최소비용 신장 트리 이다.

MST – Kruskal 알고리즘 (추상적)

MST – Kruskal 알고리즘 (구체적) 주어진 그래프에 대한 “서로소 집합 추상 데이터 타입” (disjoint set - abstract data type) Variables Set에 속한 각 원소들: 각 정점들의 인덱스 (ex. i, j) Operations initial(n): n개의 서로소 부분집합을 초기화 (하나의 부분집합에 1에서 n사이의 정점 인덱스가 정확히 하나 포함됨) p = find(i): 정점 인덱스 i가 포함된 집합 p를 넘겨줌 merge(p, q): 두 개의 집합을 가리키는 p와 q를 합병 equal(p, q): p와 q가 같은 집합을 가리키면 true를 넘겨줌

MST – Kruskal 알고리즘 (구체적) [복습] Data Abstraction (in Computer Science) Separation of a data type’s logical properties from its implementation Abstract Data Type (ADT) a specification of a set of variables and a set of operations that can be performed on the data Variables and operations are specified independently of any particular implementation. LOGICAL PROPERTIES IMPLEMENTATION What are the possible variables? How can this be done in C++ or java? What operations will be needed? How can data types be used?

MST – Kruskal 알고리즘 (구체적) set_of_edges kruskal(int n, int m,//입력:정점의 수 n,이음선의 수 m set_of_edges E){//가중치를 포함한 이음선의 집합 E index i, j; set_pointer p, q; edge e; set_of_edges F; E에 속한 m개의 이음선을 가중치의 비내림차순으로 정렬; F = emptyset; initial(n); while (F에 속한 이음선의 개수가 n-1보다 작다) { e = 아직 점검하지 않은 최소의 가중치를 가진 이음선; i, j = e를 이루는 양쪽 정점의 인덱스; p = find(i); q = find(j); if (!equal(p, q)) { merge(p, q); F에 e를 추가; } return F; equal(p, q) = true는 e를 추가할 경우 cycle이 형성됨을 의미한다.

MST – Kruskal 알고리즘의 분석 단위연산: find 등에서 수행되는 (비교) 명령문 입력크기: 정점의 수 n과 이음선의 수 m 최악의 경우 분석 1. 이음선 들을 정렬하는데 걸리는 시간: W(m)  (m lg m)  정렬의 이론적 하한 3. n개의 서로소 집합(disjoint set)을 초기화하는데 걸리는 시간: (n) 2. 반복문 안에서 걸리는 시간: 최악의 경우 루프를 m번 수행. - 최소의 가중치를 가진 이음선 구하기: (1)에 수행 - 부록 C의 서로소 집합 자료구조(disjoint set data structure)를 사용하 여 구현하면, find, equal, merge는 (lg m)에 수행된다. - 따라서, m번 반복에 대한 시간복잡도는 (m lg m)이다.

MST – Kruskal 알고리즘의 분석 분석 (계속) 그런데 여기서 m  n - 1이고, 위 분석에서 1과 3은 2를 지배하게 되므로, W(m, n) = (m lg m)가 된다. 그러나, 최악의 경우에는, 모든 정점이 다른 모든 정점과 연결이 될 수 있기 때문에(fully connected), 가 된다. 그러므로, 최악의 경우의 시간복잡도는 다음과 같다.

MST – Kruskal 알고리즘의 최적 여부 검증 보조정리 4.2: G = (V,E)는 가중치 포함 비방향성 연결 그래프라고 하자. E의 부분집합인 F는 유망하며, e는 F  {e}하여 순환이 생기지 않는 E – F 에 속한 최소가중치 이음선이라고 하자. 그러면, F  {e}는 유망하다. (즉, Kruskal의 방법을 사용한 F  {e}는 유망하다.) 정리 4.2: Kruskal 알고리즘은 항상 MST를 만들어 낸다.

MST – Prim vs. Kruskal 분석 결과 비교 (Kruskal) 연결된 그래프에서 이음선 개수 m은 다음 범위를 갖는다. 그래프가 sparse하면, m  n이므로, (n lg n)이 된다. 반면에 dense이면, m  n2이므로, (n2 lg n)이 된다.

MST – More Improved Algorithms 알고리즘의 시간복잡도는 그 알고리즘을 구현하는데 사용하는 자료구조에 좌우되는 경우도 있다. Heap을 사용하여 개선된 Prim 알고리즘의 시간 복잡도