170 likes | 757 Views
Computer Algorithm 실습 - Backtracking, Greedy Method -. Kim Hwan- Hee (hwanhee0920@kangwon.ac.kr) 2013. 5. 20. < 목 차 >. Backtracking( 되추적 ) – Graph Coloring 알고리즘 설명 프로그래밍 실습 Greedy Method( 탐욕적인 방법 ) – Prim Algorith m 알고리즘 설명 프로그래밍 실습 알고리즘 HW #2. 1. Backtracking – Graph Coloring.
E N D
Computer Algorithm 실습- Backtracking, Greedy Method- Kim Hwan-Hee (hwanhee0920@kangwon.ac.kr) 2013. 5. 20.
< 목 차 > • Backtracking(되추적) – Graph Coloring • 알고리즘 설명 • 프로그래밍 실습 • Greedy Method(탐욕적인 방법) – Prim Algorithm • 알고리즘 설명 • 프로그래밍 실습 • 알고리즘 HW #2
1. Backtracking – Graph Coloring • Graph Coloring Algorithm Overview • m개의 색을 가지고, 인접한 지역이 같은 색이 되지 않도록 지도에 색칠하는 문제 • 위와 같은 그래프에서 2가지 색은 불가능 • 3가지 색은 총 6가지 방법 가능
1. Backtracking – Graph Coloring • Graph Coloring Algorithm ( 1/2 ) • 입력 : n – 노드의 수, m – 색깔의 수, W[i][j] – 이음선 있으면 true, 그렇지 않으면 false • 출력 : vcolor[i] - i번째 노드에 할당된 색(1 ~ m)이다.
1. Backtracking – Graph Coloring • Graph Coloring Algorithm ( 2/2 )
1. Backtracking – Graph Coloring • Graph Coloring Programming ( 1/3 )
1. Backtracking – Graph Coloring • Graph Coloring Programming ( 2/3 )
1. Backtracking – Graph Coloring • Graph Coloring Programming ( 3/3 )
1. Backtracking – Graph Coloring • Graph Coloring Result • 색의 수를 3가지로 하였을 때의 결과는 다음과 같다.
2. Greedy Method – Prim Algorithm • Prim Algorithm Overview ( 1/2 ) • 문제 : 비방향성 그래프 G = (V,E)가 주어졌을 때, F E 를 만족하면서, (V,F)가 G의 MST가 되는 F를 찾는 문제. • 그래프의 인접행렬식 표현 • 추가적으로 nearest[1..n]과 distance[1..n] 배열 유지 • nearest[i] = Y에 속한 노드 중 vi(V-Y)에서 가장 가까운 노드의 인덱스 • distance[i] = vi와 nearest[i]를 잇는 이음선의 가중치
2. Greedy Method – Prim Algorithm • Prim Algorithm Overview ( 2/2 ) • 그래프의 인접행렬식 표현 1 v1 v2 3 6 3 4 v4 v3 5 2 v5
2. Greedy Method – Prim Algorithm • Prim Algorithm ( 1/2 )
2. Greedy Method – Prim Algorithm • Prim Algorithm ( 2/2 )
2. Greedy Method – Prim Algorithm • Prim Programming
2. Greedy Method – Prim Algorithm • Prim Result
3. HW #2 • 앞서 Greedy Method와 BacktrackingAlgorithm을 한 가지씩 살펴보았습니다. • Greedy Method – Prim Algorithm • Backtracking – Graph Coloring • Greedy Method 방법과 Backtracking Algorithm의 실습을 위해 한 가지씩 프로그래밍을 더 수행하세요. • Greedy Method – Dijkstra Algorithm • Backtracking – nQueens Problem ( n = 4일 때)