DP 기반 최단경로 – 자료 구조 및 전략 (1/4) 주어진 그래프에 대한 W:인접행렬(adjacent matrix) 표현 W

Slides:



Advertisements
Similar presentations
파리바게트의 기업이미지 주요 타겟 라이벌 기업 광고 방법 광고 INDEX 1. 파리바게트의 기업이미지 파리바게트 의 기 업이미 지 신선한 원료로 갓 만든 “ 건강한 빵 ” 프랑스의 지명 ’ 파리 ’ + 전통 빵 ’ 바게트 ’ 가 합쳐진 브랜드명 그 대로 유럽전통 베이커리에서.
Advertisements

커리큘럼 구 분 내 용 1차시 11월 16일 (임유정 원장님) 2차시 11월 23일 (박세정 강사) 3차시 11월 30일
(사단법인)이주노동희망센터·보리샬 꼴르노커띠 학교설립추진위원회
컴퓨터 개론 및 실습 강의 9.
배열(Array) 선린인터넷고등학교 정보통신과 유 순 옥.
C 프로그래밍.
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 1 강원대학교 컴퓨터과학전공 문양세.
Dynamic Programming.
Ch.04 Greedy Method (탐욕적 방법)
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
CHAP 10:그래프 순천향대학교 하상호.
부분집합의 합 구하기 문제 부분집합의 합 구하기(Sum-of-Subsets) 문제
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 학기 데이터구조.
CHAP 10:그래프 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
CHAP 10 : 그래프 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 62).
제5장 트리.
ALGORiTHM Algorithm 2000 서울산업대학교 전자계산학과.
제 3 장. 배열과 구조체 및 포인터.
교육 일정표 시 간 1일차 2일차 09:00-10:00 품질 경영에 대한 이해 품질 도구 활용 _원인분석 2
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
쉽게 배우는 알고리즘 9장. 그래프 알고리즘.
Dynamic Programming.
 Branch-and-Bound (분기한정)
알고리즘(Algorithm) – Greedy Method (탐욕적 방법)
군집분석: 비지도 학습 효율적 군집분석 급내 (intra-class) 유사성이 높고
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
10장. 그래프 알고리즘.
그래프(graph) 연결되어 있는 객체 간의 관계를 표현하는 자료구조 가장 일반적인 자료구조 형태
강의에 대한 소개 책에 대한 소개 공부하는 방법 자바 설치 방법
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
동적 계획(Dynamic Programming)
Ch.03 Dynamic Programming (동적 프로그래밍 or 동적 계획법)
강의 프레젠테이션 현대 사회와 미디어 6강. 문화 연구로 영화 접근하기.
 Dynamic Programming (동적 프로그래밍)
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
오피스텔 디자인 사용자 정하기! 설정1.영화, 드라마, 소설 속 캐릭(주인공) 1명을 사용자로
프로그래밍 개론 Ⅰ 제 1장 . 서론 ①.
[CPA340] Algorithms and Practice Youn-Hee Han
Dynamic Programming.
선택 정렬 #define SWAP(x, y, t) {(t) = (x); (x) = (y); (y) = (t);}
CHAP 2:순환.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
그래프의 용어 알고리즘 수업자료 김정현.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
건강평가 이미경 임선미.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
동적계획법과 최적화 문제 Dynamic Programming을 사용한 최적화 문제를 해결하는 알고리즘 설계 절차
동적계획법과 최적화 문제 Dynamic Programming을 사용한 최적화 문제를 해결하는 알고리즘 설계 절차
동적계획법과 최적화 문제 Dynamic Programming을 사용한 최적화 문제를 해결하는 알고리즘 설계 절차
중등교원 전보시스템 로그인 오류시 해결 해결방안 * 작성일 2016 년 12 월 15일 * 작성자 광주광역시교육청.
-Part1- 제7장 반복문이란 무엇인가.
Index 2010년 공판장 업무보고 목차 구미농협 공판장 현황 판매사업 추진 계획 중점 추진과제 Ⅰ. 주요 품목별 추진계획
CHAP 10 : 그래프.
 Dynamic Programming (동적 프로그래밍)
알고리즘 강의 슬라이드 2 분할정복 제 2 장 분할정복 도경구역, 알고리즘, 사이텍미디어, 1999.
-Part2- 제2장 다차원 배열이란 무엇인가.
알고리즘(Algorithm) – Divide and Conquer (분할정복)
전류의 자기작용 과학 1 학년 1 학기 에너지>03. 전동기가 돌아가는 원리는 무엇일까? ( 3 / 7 ] 발견학습
발표 : KAB부동산연구원 조윤제 부연구위원
알기쉽게 해설한 데이터구조 고 갑 승 한남대학교
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
9주차: Using Files and Others
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
[CPA340] Algorithms and Practice Youn-Hee Han
Chapter 09. 배열.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
강사 및 비전임교원 공개채용시스템 메뉴얼 교 무 연 구 팀.
Ch.11. 이진영상처리를 이용한 영상인식.
Presentation transcript:

DP 기반 최단경로 – 자료 구조 및 전략 (1/4) 주어진 그래프에 대한 W:인접행렬(adjacent matrix) 표현 W v5 v1 v4 v2 v3 3 5 1 9 2 4 W

DP 기반 최단경로 – 자료 구조 및 전략 (2/4) 주어진 그래프에 대한 최단경로의 길이를 나타내는 행렬: D 즉, 알고리즘에 의해서 생성할 목표에 해당하는 자료구조 즉, W: 주어진 그래프의 인접행렬 표현 D: 주어진 그래프의 각 정점들 사이의 최단경로의 길이 v5 v1 v4 v2 v3 3 5 1 9 2 4 D

DP 기반 최단경로 – 자료 구조 및 전략 (3/4)  

DP 기반 최단경로 – 자료 구조 및 전략 (4/4) v5 v1 v4 v2 v3 3 5 1 9 2 4 예제

DP 기반 최단경로 – 설계 (1/4)   v5 v1 v4 v2 v3 3 5 1 9 2 4

DP 기반 최단경로 – 설계 (2/4)   v5 v1 v4 v2 v3 3 5 1 9 2 4

DP 기반 최단경로 – 설계 (3/4) 1. D(k-1)을 가지고 D(k)를 계산하는 재귀적 속성(recursive property)을 정립 경우 2에 대한 그림설명 2. 상향식으로 k = 1부터 n까지 다음과 같이 상기 과정을 반복하여 해를 구한다. D(0), D(1),……., D(n) {v1, v2,…, vk-1} {v1, v2,…, vk-1}

DP 기반 최단경로 – 설계 (4/4) v5 v1 v4 v2 v3 3 5 1 9 2 4 예제 W

DP 기반 최단경로 – Floyd 알고리즘 1 (1/2) 문제: 가중치 포함 방향 그래프의 각 정점에서 다른 모든 정점까지의 최단거리를 계산하라. 입력: 가중치 포함 방향 그래프 W, 그래프에서의 정점의 수 n 출력: 최단거리의 길이가 포함된 배열 D 알고리즘 void floyd(int n, number[][] W, number[][] D){ index i, j, k; D = W; for(k=1; k <= n; k++) for(i=1; i <= n; i++) for(j=1; j <= n; j++) D[i][j] = minimum(D[i][j], D[i][k]+D[k][j]); }

DP 기반 최단경로 – Floyd 알고리즘 1 (2/2) 모든 경우를 고려한 분석: 단위연산: for-j 루프안의 할당문 입력크기: 그래프에서의 정점의 수 n

DP 기반 최단경로 – Floyd 알고리즘 2 (1/4) 문제: 가중치 포함 방향 그래프의 각 정점에서 다른 모든 정점까지의 최단거리를 계산하고, 각각의 최단경로를 구하라. 입력: 가중치 포함 방향 그래프 W, 그래프에서의 정점의 수 n 출력: 최단경로의 길이가 포함된 배열 D, 다음을 만족하는 배열 P vi 에서 vj 까지 가는 최단경로의 중간에 놓여 있는 정점이 존재하는 경우  그 놓여 있는 정점 중에서 가장 큰 인덱스 vi 에서 vj 까지 가는 최단경로의 중간에 놓여 있는 정점이 없는 경우  0

DP 기반 최단경로 – Floyd 알고리즘 2 (2/4) void floyd2(int n, number W[][], number D[][], index P[][]){ index i, j, k; for(i=1; i <= n; i++) for(j=1; j <= n; j++) P[i][j] = 0; D = W; for(k=1; k<= n; k++) for(j=1; j<=n; j++) if ((D[i][k] + D[k][j]) < D[i][j]) { P[i][j] = k; D[i][j] = D[i][k] + D[k][j]; } vi에서 vj로 가는데 vk를 지난다는 정보를 저장 D[i][j] = minimum(D[i][j], D[i][k]+D[k][j]);

DP 기반 최단경로 – Floyd 알고리즘 2 (3/4) v5 v1 v4 v2 v3 3 5 1 9 2 4 예 1) v2 에서 v1 까지 가는 최단경로 P[2][1]=5, P[2][5]=4, P[2][4]=0 그러므로, v2  v4  v5  v1 예 2) v5 에서 v3 까지 가는 최단경로 P[5][3]=4, P[5][4]=1, P[5][1]=0 그러므로, v5  v1  v4  v3

DP 기반 최단경로 – Floyd 알고리즘 2 (4/4) void path(index q, r){ if (P[q][r] != 0) { path(q, P[q][r]); System.out.print(“ v“ + P[q][r]); } 최단경로 출력 알고리즘 (주의: 교재와 상이) 앞서의 행렬 P로 path(5,3)을 호출하면 다음과 같이 수행된다. path(5, 3) path(5, P[5][3]=4) path(5, P[5][4]=1) P[5][1]=0  return; v1 v4 결과: v1 v4. (즉, v5에서 v3으로 가는 최단경로는 v5, v1, v4, v3,이다.)

[실습 6] Floyd 알고리즘 작성 Floyd 알고리즘을 Java 로 코딩하기 Floyd.java 를 분석하기 “// Write Codes...” 라고 되어진 세 부분을 채워넣기 다음과 같이 출력되어야 함