Microsoft PowerPoint Greedy Method.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint Greedy Method.ppt"

Transcription

1 알고리즘 (Algorithm) ( 탐욕적방법 ) 문양세 ( 컴퓨터과학전공, IT 특성화대학, 강원대학교 ) 강의순서 탐욕적알고리즘개요최소비용신장트리 (Minimum Spanning Tree) Dijkstra s Algorithm for the Short Path Problem 배낭채우기문제 (The Knapsack Problem) Page 2 1

2 탐욕적알고리즘개요 탐욕적알고리즘 (Greedy Algorithm) 은결정을해야할때마다그순간에가장좋다 ( 최적이다 ) 고생각되는것을해답으로선택함으로써최종적인해답에도달한다. 그순간의선택은그당시 (local) 에는최적이다. 그러나최적이라고생각했던해답들을모아서최종적인 (global) 해답을만들었다고해서, 그해답이궁극적으로최적이라는보장이없다. 따라서탐욕적인알고리즘은항상최적의해답을주는지를반드시검증해야한다. Page 3 탐욕적알고리즘의설계절차 1. 선정과정 (selection procedure) 현재상태에서가장좋으리라고생각되는 (greedy) 해답을찾아서해답모음 (solution set) 에포함시킨다. 2. 적정성점검 (feasibility check) 새로얻은해답모음이적절한지를결정한다. 3. 해답점검 (solution check) 새로얻은해답모음이최적의해인지를결정한다. 다음의거스름돈계산하기문제참조 Page 4 2

3 보기 : 거스름돈계산하기 문제 : 동전의개수가최소가되도록거스름돈을주는문제 탐욕적인알고리즘 거스름돈을 x라하자. 먼저, 가치가가장높은동전부터 x가초과되지않도록계속내준다. 이과정을가치가높은동전부터내림순으로총액이정확히 x가될때까지계속한다. 현재우리나라에서유통되고있는동전만을가지고, 이알고리즘을적용하여거스름돈을주면, 항상동전의개수는최소가된다. 따라서이알고리즘은최적 (optimal)! 선정과정 : ( 가치가높은 ) 동전을선택한다. 적정성검사 : 거스름돈총액을넘는지확인한다. 해답점검 : 현재까지의금액이거스름돈총액에도달했는지확인한다. Page 5 거스름돈계산하기 최적해를찾지못하는경우 12 원짜리동전을새로발행했다고하자. 이알고리즘을적용하여거스름돈을주면, 항상동전의개수는최소가된다는보장이없다. 예제 : 거스름돈액수 = 16 원 탐욕알고리즘의결과 : 12 원 1 개 = 12 원, 1 원 4 개 = 4 원 동전의개수 = 5 개 최적 (optimal) 이아님! 최적의해 : 10원 1개, 5원 1개, 1원 1개가되어동전의개수는 3개가된다. Page 6 3

4 강의순서 탐욕적알고리즘개요최소비용신장트리 (Minimum Spanning Tree) Dijkstra s Algorithm for the Short Path Problem 배낭채우기문제 (The Knapsack Problem) Page 7 그래프용어 좀더복습하기 비방향성그래프 (undirected graph) G = (V,E) V는정점 (vertex) 의집합 E는이음선 (edge) 의집합 경로 (path): 두노드사이에이음선으로연결된노드의나열 연결된그래프 (connected graph): 임의의두노드사이에경로가존재부분그래프 (subgraph) 가중치포함그래프 (weighted graph) 순환경로 (cycle) 순환적그래프 (cyclic graph), 비순환적그래프 (acyclic graph). 트리 (tree): 비순환적이며, 비방향성그래프 뿌리있는트리 (rooted tree): 한정점이뿌리로지정된트리 Page 8 4

5 연결된가중치 ( 포함 ) 비방향그래프 1 v 1 v v 3 v v 5 Page 9 신장트리 (Spanning Tree) 연결된비방향성그래프 G에서, 순환경로 (cycle) 가없어지도록이음선을제거하여구성한연결된부분그래프를신장트리 (spanning tree) 라한다. 따라서신장트리는 G안에있는모든정점을다포함하되트리가되는 (i.e., 순환경로가존재하지않는 ) 연결된부분그래프이다. Page 10 5

6 신장트리의예 1 v 1 v v 3 v 4 5 v 5 Page 11 최소비용신장트리 (Minimum Spanning Tree: MST) 신장트리가되는 G 의부분그래프중에서가중치가최소가되는부분그래프를최소비용신장트리 (minimum spanning tree) 라고한다. 여기서최소의가중치를가진부분그래프는반드시 ( 당연히 ) 트리가되어야한다. 그이유는다음과같다. 만약트리가아니라면, 분명히순환경로 (cycle) 가있을것이다. 그렇게되면, 순환경로상의한이음선을제거하면더작은비용의신장트리가만들어진다. 관찰 : 모든신장트리가최소비용신장트리는아니다. Page 12 6

7 최소비용신장트리의예 1 v 1 v v 3 v 4 2 v 5 앞서의예제 ( 그림 4-3(a)) 에는상기 MST 이외에하나의 MST 가더있다고한다. 찾아보기바람 Page 13 최소비용신장트리의응용 (Applications) 도로건설 : 도시들을모두연결하면서도로의길이가최소가되도록하는문제통신 (telecommunications): 전화선의길이가최소가되도록전화케이블망을구성하는문제배관 (plumbing): 파이프의총길이가최소가되도록연결하는문제 Page 14 7

8 MST 무작정알고리즘 알고리즘 모든신장트리를다고려해본다 ( 계산해본다 ). 그중에서최소비용이드는것을신장트리를고른다. 분석 최악의경우, 지수보다도나쁘다. 이유? ( 완전연결이면 대충생각해도 n! 에해당한다.) Page 15 강의순서 탐욕적알고리즘개요최소비용신장트리 (Minimum Spanning Tree) Prim의알고리즘 Kruskal의알고리즘 Dijkstra s Algorithm for the Short Path Problem 배낭채우기문제 (The Knapsack Problem) Page 16 8

9 MST 탐욕적알고리즘 문제 : 비방향성그래프 G = (V,E) 가주어졌을때, F E 를만족하면서, (V,F) 가 G 의 MST 가되는 F 를찾는문제. 알고리즘 : 1. F := 0; 2. 최종해답을얻지못하는동안다음절차를계속반복하라 (a) 선정절차 : 적절한최적해선정절차에따라서하나의이음선을선정 (b) 적정성점검 : 선정한이음선을 F에추가시켜도순환경로가생기지않으면, F에추가시킨다. (c) 해답점검 : T = (V,F) 가신장트리이면, T가최소비용신장트리이다. Page 17 MST Prim 의알고리즘 ( 추상적 ) 1. F := 0; 2. Y := {v 1 }; 3. 최종해답을얻지못하는동안다음절차를계속반복하라 (a) 선정절차 / 적정성점검 : V - Y 에속한정점중에서, Y 에가장가까운정점하나를선정한다. (b) 선정한정점을 Y 에추가한다. (c) Y 로이어지는이음선을 F 에추가한다. (d) 해답점검 : Y = V 가되면, T = (V,E) 가최소비용신장트리이다. 20 V - Y Y 15 Page 18 9

10 MST Prim 의알고리즘 ( 구체적 ) (1/3) 그래프의인접행렬식표현 이음선의가중치 vi에서 vj로이음선이있는경우 W[][ i j] = vi에서 vj로이음선이없는경우 0 i= j 인경우 추가적으로 nearest[1..n] 과 distance[1..n] 배열유지 nearest[i] = Y에속한노드중에서v i 에서가장가까운노드의인덱스 distance[i] = v i 와 nearest[i] 를잇는이음선의가중치 w a,b Y v j v i v a v b nearest[a] = b w i,j distance[a] = w a,b Page 19 nearest[i] = j distance[i] = w i,j MST Prim 의알고리즘 ( 구체적 ) (2/3) 알고리즘 void prim(int n, // 입력 : 정점의수 const number W[][], // 입력 : 그래프의인접행렬식표현 set_of_edges& F) // 출력 : 그래프의 MST에속한이음선의집합 { index i, vnear; number min; edge e; index nearest[2..n]; number distance[2..n]; F = empty_set; for(i=2; i <= n; i++) { nearest[i] = 1; distance[i] = W[1][i]; } // 초기화 // 초기에는 Y에노드가 v1밖에없음 // (vi,v1) 의가중치로초기화 // see the next page Page 20 10

11 MST Prim 의알고리즘 ( 구체적 ) (3/3) 알고리즘 ( 계속 ) repeat(n-1 times) { // n-1개의정점을 Y에차례로추가한다 min = infinite ; for(i=2; i <= n; i++) { // 각정점에대해서 if (0 <= distance[i] < min) { // distance[i] 를검사하여 min = distance[i]; // 가장가까이있는 vnear을 vnear = i; // 찾는다. } } e = vnear와 nearest[vnear] 를잇는이음선 ; e를 F에추가 ; distance[vnear] = -1; // 찾은노드를 Y에추가한다. for(i=2; i <= n; i++) if (W[i][vnear] < distance[i]) { // Y에없는각노드에대해서 distance[i] = W[i][vnear]; // distance[i] 와 nearest[i] = vnear; // nearest[i] 를갱신한다. } } // end of repeat } // end of main Page 21 MST Prim 의알고리즘분석 단위연산 : repeat- 루프안에있는두개의 for- 루프내부에있는명령문 ( 비교문및지정문 ) 입력크기 : 노드의개수, n 분석 : repeat-루프가 n-1번반복되고, 각루프마다 for-루프가 n-1번씩수행되므로 ( 모든경우의 ) 시간복잡도는다음과같다. T(n) = 2(n-1)(n-1) Θ(n 2 ) Page 22 11

12 MST Prim 의알고리즘의최적여부검증 (1/5) Prim 의알고리즘이찾아낸신장트리가최소비용 (minimal) 인지를검증해야한다. 다시말하면, Prim 의알고리즘이최적 (optimal) 인지를보여야한다. 탐욕적방법의문제점은이것이다. 즉, 알고리즘을개발하기는비교적용이하나, 개발한알고리즘의최적성을보이는작업이어렵다. Page 23 MST Prim 의알고리즘의최적여부검증 (2/5) 정의 4.1: 비방향성그래프 G = (V,E) 가주어지고, 만약 E 의부분집합 F 에 MST 가되도록이음선을추가해나갈수있으면 (F 에이음선들을추가하여 MST 가되면 ), F 는유망하다 (promising) 라고한다. 보조정리 4.1: G = (V,E) 는연결되고, 가중치포함비방향성그래프라고하자. E 의부분집합인 F 는유망하다하고, Y 는 F 안에있는이음선들에의해서연결이되어있는정점의집합이라고하자. 이때, Y 에있는어떤정점과 V - Y 에있는어떤정점을잇는이음선중에서가중치가가장작은이음선을 e 라고하면, F {e} 는유망하다. e V - Y e e e Y F = { 파란색이음선들 } Page 24 12

13 MST Prim 의알고리즘의최적여부검증 (3/5) 증명 : F 가유망하기때문에, F F 이면서 (V,F ) 이 MST 가되는 F 이반드시존재한다. (F 에이음선들이더해져 F 이되므로 ) 경우 1: 만일 e F 이라면, F {e} F 이되고, 따라서 F {e} 도유망하다. 경우 2: 만일 e F 라면, (V,F ) 는신장트리이기때문에, F {e} 는반드시순환경로를하나포함하게된다. 그리고, e는반드시그순환경로가운데한이음선이된다. 그러면 Y에있는한노드에서V - Y에있는한정점을연결하는어떤다른이음선 e F 가그순환경로안에반드시존재하게된다. 여기서만약 F {e} 에서 e 를제거하면, 그순환경로는없어지게되며, 다시신장트리가된다. 그런데 e는 Y에있는한정점에서 V - Y에있는한정점을연결하는최소의가중치 (weight) 를가진이음선이기때문에, e의가중치는반드시 e 의가중치보다작거나같아야한다. ( 실제로반드시같게된다.) 그러면, F {e} - {e } 는 MST이다. 결론적으로 F {e} F {e} - {e } 가되고, 따라서 F {e} 유망하다. Page 25 MST Prim 의알고리즘의최적여부검증 (4/5) 경우 2 를설명하는예제 F = {(v 1,v 2 )} F = { 파란색이음선들 } = MST F 은 e 을가지고있어서, e 를추가할경우, 순환경로가생긴다. 그런데, 그림에서와같이 F {e} - {e } 역시 MST 가된다. 따라서, F {e} F {e} - {e } 가성립하며, 이는 F {e} 가유망함을의미한다. Page 26 13

14 MST Prim 의알고리즘의최적여부검증 (5/5) 정리 : Prim 의알고리즘은항상 MST 를만들어낸다. 증명 : ( 수학적귀납법 ) 매반복이수행된후에집합 F 가유망하다는것을보이면된다. 귀납기본 : 공집합은당연히유망하다. 귀납가정 : 어떤주어진반복이이루어진후, 그때까지선정하였던이음선의집합인 F 가유망하다고가정한다. 귀납단계 : 집합 F {e} 가유망하다는것을보이면된다. 여기서 e 는다음단계의반복수행시선정된이음선이다. 그런데, 위의보조정리 1 에의하여 F {e} 은유망하다고할수있다. 왜냐하면이음선 e 는 Y 에있는어떤정점을 V - Y 에있는어떤정점으로잇는이음선중에서최소의가중치를가지고있기때문이다. 증명끝 Page 27 강의순서 탐욕적알고리즘개요최소비용신장트리 (Minimum Spanning Tree) Prim의알고리즘 Kruskal의알고리즘 Dijkstra s Algorithm for the Short Path Problem 배낭채우기문제 (The Knapsack Problem) Page 28 14

15 MST Kruskal 의알고리즘 ( 추상적 ) 1. F := 0; 2. 서로소 (disjoint) 가되는V의부분집합들을만드는데, 각부분집합마다하나의정점만가지도록한다 3. E안에있는이음선을가중치의비내림차순으로정렬한다 4. 최종해답을얻지못하는동안다음절차를계속반복하라 (a) 선정절차 : 다음이음선을선정한다. ( 최소의가중치를가진이음선을선정한다.) (b) 적정성점검 : 만약선정된이음선이두개의서로소인정점을잇는다면, 먼저그부분집합을하나의집합으로합하고, 그다음에그이음선을 F에추가한다. (c) 해답점검 : 만약모든부분집합이하나의집합으로합하여지면, 그때T = (V,F) 가최소비용신장트리이다. Page 29 MST Kruskal 의알고리즘 ( 세부적 ) (1/2) 서로소집합추상데이터타입 (disjoint set abstract data type) index i; set_pointer p, q; initial(n): n개의서로소부분집합을초기화 ( 하나의부분집합에 1에서 n사이의인덱스가정확히하나포함됨 ) p = find(i): 인덱스 i가포함된집합의포인터 p를넘겨줌 merge(p,q): 두개의집합을가리키는 p와 q를합병 equal(p,q): p와 q가같은집합을가리키면 true를넘겨줌 e Set A i j Set B p = find(i) q = find(j) Page 30 15

16 MST Kruskal 의알고리즘 ( 세부적 ) (2/2) 알고리즘 void kruskal( int n, int m, set_of_edges E, set_of_edges& F) { index i, j; set_pointer p, q; edge e; 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); e 를 F 에추가 ; } // 입력 : 정점의수 n, 이음선의수 m // 입력 : 가중치를포함한이음선의집합 // 출력 : MST를이루는이음선의집합 Set A p = find(i) i e j Set B q = find(j) equal(p,q) = true는 e를추가할경우 cycle이형성됨을의미한다. Page 31 MST Kruskal 의알고리즘분석 (1/2) 단위연산 : 비교문 입력크기 : 정점의수 n 과이음선의수 m 분석 1. 이음선들을정렬하는데걸리는시간 : Θ(m lg m) 정렬의이론적하한 2. 반복문안에서걸리는시간 : 루프를 m번수행한다. 서로소인집합자료구조 (disjoint set data structure: 부록 C 참조 ) 를사용하여구현하면, find, equal, merge는 Θ(lg m) 에수행된다. ( Search의복잡도로이해하면된다.) 따라서, m번반복에대한시간복잡도는 Θ(m lg m) 이다. 3. N개의서로소집합 (disjoint set) 을초기화하는데걸리는시간 : Θ(n) Page 32 16

17 MST Kruskal 의알고리즘분석 (2/2) 분석 ( 계속 ) 그런데여기서 m n -1이기때문에, 위의 1과 2는 3을지배하게되므로, W(m, n) = Θ(m lg m) 가된다. 그러나, 최악의경우에는, 모든정점이다른모든정점과연결이될수있기때 nn ( 1) 2 문에 (fully connected), m= 2 Θ( n ) 가된다. 그러므로, 최악의경우의시간복잡도는다음과같다. W m n n n n n n n (, ) Θ ( lg ) =Θ (2 lg ) =Θ( lg ) 최적여부의검증 (Optimality Proof): Prim 의알고리즘의경우와비슷함. ( 교재 p. 149 의보조정리 4.2 참조 ) ( n 1) n ( n 1) + ( n 2) = 2 Page 33 MST Prim vs. Kruskal 분석결과비교 Prim Kruskal W(m,n) Θ(n 2 ) Θ(m lg m) and Θ(n 2 lg n) sparse graph dense graph Θ(n 2 ) Θ(n lg n) Θ(n 2 ) Θ(n 2 lg n) (Kruskal) 연결된그래프에서이음선개수 m 은다음범위를갖는다. n 1 m nn ( 1) 2 Sparse이면, m n이므로, Θ(n lg n) 이된다. 반면에 dense이면, m n 2 이므로, Θ(n lg n 2 ) 이된다. Page 34 17

18 MST More Improved Algorithms 알고리즘의시간복잡도는그알고리즘을구현하는데사용하는자료구조에좌우되는경우도있다. Prim s algorithm W(m,n) sparse graph dense graph Heap Fibonacci heap Θ(m lg n) Θ(m + n lg n) Θ(n lg n) Θ(n lg n) Θ(n 2 lg n) Θ(n 2 ) Page 35 강의순서 탐욕적알고리즘개요최소비용신장트리 (Minimum Spanning Tree) Dijkstra s Algorithm for the Short Path Problem 배낭채우기문제 (The Knapsack Problem) Page 36 18

19 단일출발점최단경로문제 (Single Source Shortest Path Problem) 제 3 장 ( 강의노트 06) 에서모든정점을대상으로하는최단경로를구하는 Θ(n 2 ) 의알고리즘을개발하였다. 본문제에서는, 가중치가있는방향성그래프에서한특정정점에서다른모든정점으로가는최단경로구하는문제를다룬다. v v v 2 v 4 5 v 3 Page 37 Dijkstra 알고리즘 ( 추상적 ) 1. F := 0; 2. Y := {v 1 }; 3. 최종해답을얻지못하는동안다음절차를계속반복하라 (a) 선정절차 / 적정성점검 : V - Y에속한정점중에서, v 1 에서 Y에속한정점만을거쳐서최단경로가되는정점 v를선정한다 (b) 그정점v를 Y에추가한다. ( 아래그림에서 v i ) (c) v에서 F로이어지는최단경로상의이음선을 F에추가한다. (d) 해답점검 : Y = V가되면, T = (V,F) 가최단경로를나타내는그래프이다. Set Y v 1 v x v i v a v y 20 Page 38 19

20 Dijkstra 알고리즘 구성예제 Page 39 Dijkstra 알고리즘 ( 세부적 ) (1/3) 가중치그래프 W 는앞서 (06.ppt) 와같이이차원배열로표현 앞서의 nearest[], distance[] 대신에 touch[], length[] 사용 touch[i]: Y에속한노드들만을거쳐서 v 1 에서 v i 로가는현재최단경로상의마지막이음선을 <v, v i > 라할때, Y에속한노드v의인덱스 length[i]: Y에속한노드들만을거쳐서 v 1 에서 v i 로가는현재최단경로의길이 Set Y 현상태에서는 touch[i] = a, length[i] = 15 (2+3+10) touch[j] = x, length[j] = 27 (2+25) touch[k] = y, length[k] = 28 (8+20) v v x v i v a v y 20 Page 40 v j v k 노드 v i 가 Y에포함된상태에서는 touch[j] = i, length[j] = 25 ( ) touch[k] = y, length[k] = 28 (8+20) 20

21 Dijkstra 알고리즘 ( 세부적 ) (2/3) 알고리즘 void dijkstra(int n, const number W[][], set_of_edges& F) { index i, vnear; number min; edge e; index touch[2..n]; number length[2..n]; F = empty_set; for(i=2; i <= n; i++) { touch[i] = 1; length[i] = W[1][i]; } // 초기화 // 초기에는 Y에노드가 v1밖에없음 // (v1,vi) 의가중치로초기화 // see the next page Page 41 Dijkstra 알고리즘 ( 세부적 ) (3/3) 알고리즘 ( 계속 ) 노드하나를 Y 에넣기위해, Y 에서도달길이가가장짧은 v vnear 를선택한다. repeat(n-1 times) { // n-1개의정점을 Y에차례로추가한다 min = infinite ; for(i=2; i <= n; i++) { // 각정점을하나씩 Y에추가 if (0 <= length[i] < min) { // length[i] 를검사하여 min = length[i]; // Y에가장가까이있는노드 vnear = i; // vnear를찾는다. } } e = touch[vnear] 가인덱스인노드에서 vnear가인덱스인노드를잇는이음선 ; e를 F에추가 ; for(i=2; i <= n; i++) if (length[vnear]+w[vnear][i] < length[i]) { length[i] = length[vnear]+w[vnear][i]; // Y에속하지않는 touch[i] = vnear; // 각노드에대해 length[i] 를갱신한다. } length[vnear] = -1; // vnear가인덱스인노드를 Y에추가한다. } // end of repeat } // end of main 노드 vvnear의추가에따라, 도달거리를갱신한다 ( 앞서의예참조 ). Page 42 21

22 Dijkstra 알고리즘분석 분석 : T(n) Θ(n 2 ) repeat x 2-for-loop 힙 (heap) 으로구현하면 Θ(m lg n) 이고, 피보나찌힙으로구현하면 Θ(m + n lg n) 이다. 최적여부의검증 (Optimality Proof) Prim 의알고리즘과동일하게증명할수있다. Page 43 강의순서 탐욕적알고리즘개요최소비용신장트리 (Minimum Spanning Tree) Dijkstra s Algorithm for the Short Path Problem 배낭채우기문제 (The Knapsack Problem) Page 44 22

23 Dynamic Programming vs. 탐욕적인접근방법최적화문제를푸는데적합탐욕적알고리즘이존재할경우일반적으로더효율적알고리즘이최적인지를증명해야함단일출발점최단경로문제 : Θ(n 2 ) 배낭빈틈없이채우기문제는풀지만, 0-1 배낭채우기문제는풀지못함 동적계획법최적화문제를푸는데적합때로는불필요하게복잡최적화원칙이적용되는지를점검해보기만하면됨단일출발점최단경로문제 : Θ(n 3 ) 0-1 배낭채우기문제를푼다 Page 배낭채우기문제 (0-1 Kanpsack Problem) (1/2) 문제의개념적정의 어떤도둑이보석상에서배낭을매고침입했다. 훔칠보석의총무게가용량 W를초과하면배낭이망가진다. 똑똑한도둑은각보석의 ( 무게, 값어치 ) 을알고있다. 이도둑은총무게가W를초과하지않으면서보석들의총값어치가최대가되도록보석을배낭에담고자한다. Page 46 23

24 0-1배낭채우기문제 (0-1 Kanpsack Problem) (2/2) 문제의정형적정의입력 : S = {item 1, item 2,, item n } w i = item i 의무게 p i = item i 의가치 W = 배낭에넣을수있는총무게문제정의 w i W 를만족하면서 p 가최대가되도록 itemi A itemi A i A S가되는A를결정하는문제이다. Page 배낭채우기 무작정알고리즘 n개의아이템에대해서모든부분집합을다고려한다. 각아이템의무게w i 는 W를넘지않는다고하면, 가능한 A의개수는크기가n인집합의부분집합의개수와동일하다. 그러나, 불행하게도크기가 n인집합의부분집합의수는 2 n 개이다. Page 48 24

25 0-1배낭채우기 탐욕적방법 1 가장비싼물건부터우선적으로채운다. 애석하게도이알고리즘은최적이아니다! 왜아닌가? 보기 : W = 30kg 품목 무게 값 item 1 25kg 10 만원 item 2 10kg 9 만원 item 3 10kg 9 만원 탐욕적인방법 : item 1 25kg 10 만원 최적인해답 : item 2 + item 3 20kg 18 만원 Page 배낭채우기 탐욕적방법 2 가장가벼운물건부터우선적으로채운다. 마찬가지로이알고리즘도최적이아니다! 왜아닌가? 보기 : W = 30kg 품목 무게 값 item 1 25kg 20 만원 item 2 10kg 9 만원 item 3 10kg 5 만원 탐욕적인방법 : item 2 + item 3 20kg 14 만원 최적인해답 : item 1 25kg 20 만원 Page 50 25

26 0-1배낭채우기 탐욕적방법 3 무게당가치가가장높은물건부터우선적으로채운다. 그래도최적이아니다! 왜아닌가? 보기 : W = 30kg 품목 무게 값 값어치 item 1 5kg 50 만원 10 만원 /kg item 2 10kg 60 만원 6 만원 /kg item 3 20kg 140 만원 7 만원 /kg 탐욕적인방법 : item 1 + item 3 25kg 190 만원 최적인해답 : item 2 + item 3 30kg 200 만원 더복잡한탐욕적방법을쓰더라도, 0-1 배낭채우기문제는풀리지않는다. Page 51 배낭빈틈없이채우기문제 (The Fractional Knapsack Problem) 물건의일부분을잘라서담을수있다. ( 보석이금괴가아니라금가루라고해석하면된다.) 탐욕적인접근방법으로최적해를구하는알고리즘을만들수있다. item 1 + item 3 + item 2 x 1/2 30kg 220만원최적이다! 증명? ( 스스로해보세요 ) Page 52 26

27 0-1배낭채우기 동적프로그래밍 (1/4) i > 0 이고 w > 0일때, 전체무게가 w가넘지않도록i번째까지의항목중에서얻어진최고의이익 (optimal profit) 을 P[i][w] 라고하면, 다음의재귀관계식을얻을수있다. max( Pi [ 1][ w], pi + Pi [ 1][ w wi] ) ( wi W) Pi [][ w] = Pi [ 1][ w] ( wi > W) P[i-1][w] 는 i번째항목을포함시키지않는경우의최고이익이다. p i + P[i -1][w - w i ] 는 i번째항목을포함시키는경우의최고이익이다. 위의재귀관계식이최적화원칙을만족하는지는쉽게알수있다. 그러면어떻게 P[n][W] 값을구할수있을까? 다음과같은 2 차원배열을만든후, 각항을계산하여채워넣으면된다. int P[0..n][0..W] 여기서 P[0][w] = 0, P[i][0] = 0으로놓으면되므로, 계산해야할항목의수는 nw Θ(nW) 이다. Page 배낭채우기 동적프로그래밍 (2/4) 여기서 n과 W와는아무런상관관계가없다. 따라서, W = n! 이라고한다면수행시간은 Θ(n n!) 이된다. 그렇게되면이알고리즘은앞에서얘기한무작정알고리즘보다도나을게하나도없거나오히려더좋지않다. 그럼이알고리즘을최악의경우에 Θ(2 n ) 시간에수행될수있도록, 즉무작정알고리즘보다느리지않고, 때로는훨씬빠르게수행될수있도록개선할수있을까? 착안점은 P[n][W] 를계산하기위해서 (n-1) 번째행을모두계산할필요가없다는데있다. 즉, P[n-1][W] 와 P[n-1][W-w n ] 두항만계산하면된다. 이런식으로 n = 1이나 w 0일때까지계속해나가면된다. ( 다음페이지 ) Page 54 27

28 0-1배낭채우기 동적프로그래밍 (3/4) 앞선예에서 P[3][30] 을계산해보자. ( 교재 p. 175 의예제 4.7) 개량알고리즘은다음과같이 7 개항만계산하는데비해서, 이전알고리즘은 3 30 = 90 항을계산해야한다. { st 1 row = [3][30] ( [2][30],140 [2][10]) (110, ) 200 nd 2 row = rd 3 row = P = max P + P = max + = P[2][30] = max( P[1][30],60 + P[1][20]) = max(50,60+ 50) = 110 P[2][10] = max( P[1][10],60 + P[1][0]) = max(50,60 + 0) = 60 P[1][0] = 0 P[1][10] = 50 P[1][20] = 50 P[1][30] = 50 Page 배낭채우기 동적프로그래밍 (4/4) 개선된알고리즘의최악의경우수행시간을계산해보자. 앞의예에서보듯이 (n - i) 번째행에서기껏해야 2 i 항을계산한다. 따라서, 총계산하는항수는 n-1 = 2 n -1이된다. 결국, 계산하는엔트리수는 Θ(2 n ) 가된다. 결국, 개선된알고리즘의최악의경우수행시간은 Θ(2 n ) 이다. 분할정복방법으로도이알고리즘을설계할수도있고, 그최악의경우수행시간은 Θ(2 n ) 이다. 아직아무도이문제의최악의경우수행시간이지수 (exponential) 보다나은알고리즘을발견하지못했고, 아직아무도그러한알고리즘은없다라고증명한사람도없다. Page 56 28

29 Homework #3 Page 57 29

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

슬라이드 1

슬라이드 1 CHAP 10: 그래프 C 로쉽게풀어쓴자료구조 생능출판사 2005 그래프 그래프 (graph): 연결되어있는객체간의관계를표현하는자료구조 그래프의예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 그래프 : 아주일반적인자료구조 ( 예 ) 트리도그래프의일종으로볼수있다. 그래프이론 (graph theory): 그래프를문제해결의도구로이용하는연구분야 그래프역사 1800

More information

Ch.8 Procedures and Environments

Ch.8 Procedures and Environments Chapter 10 그래프 (graph) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 그래프 (graph) 그래프 연결되어있는객체간의관계를표현하는자료구조 예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 다양한모델에적용할수있는유연성있는자료구조 연결되어있는객체간의관계를표현하는자료구조 꼭지점 (vertex) 와변

More information

Chapter 10 그래프 (graph) SANGJI University Kwangman KO

Chapter 10 그래프 (graph) SANGJI University Kwangman KO Chapter 10 그래프 (graph) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 그래프 (graph) 그래프 연결되어있는객체간의관계를표현하는자료구조 예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 다양한모델에적용할수있는유연성있는자료구조 연결되어있는객체간의관계를표현하는자료구조 꼭지점 (vertex) 와변

More information

Microsoft PowerPoint Branch-and-Bound.ppt

Microsoft PowerPoint Branch-and-Bound.ppt 알고리즘 (Algorithm) ( 분기한정 ) 문양세 ( 컴퓨터과학전공, IT 특성화대학, 강원대학교 ) 강의순서 개념 0-1 Knapsack Problem Depth-First Search (Backtracking) Breadth-First Search Best-First Search Traveling Salesman Problem Dynamic Programming

More information

슬라이드 1

슬라이드 1 CHAP 10 : 그래프 yicho@gachon.ac.kr 1 그래프역사 1800 년대오일러에의하여창안 오일러문제 모든다리를한번만건너서처음출발했던장소로돌아오는문제 A,B,C,D 지역의연결관계표현 위치 : 정점 (node) 다리 : 간선 (edge) 오일러정리 모든정점에연결된간선의수가짝수이면오일러경로존재함 따라서그래프 (b) 에는오일러경로가존재하지않음 2 그래프정의

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

쉽게 배우는 알고리즘 강의노트

쉽게 배우는 알고리즘 강의노트 쉽게배우는알고리즘 장. 정렬 Sorting http://www.hanbit.co.kr 장. 정렬 Sorting 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고,

More information

Microsoft PowerPoint 알고리즘 개요(Part 1).pptx

Microsoft PowerPoint 알고리즘 개요(Part 1).pptx 알고리즘 (Algorithm) 알고리즘개요 ( 효율, 분석, 차수 ) Part 1 2011년봄학기 강원대학교컴퓨터과학전공문양세 강의내용 프로그램과알고리즘순차검색과이진검색피보나찌수구하기알고리즘분석차수 (O,, ) Part 2 Page 2 프로그램의설계과정 설계분석예문제알고리즘만족? 프로그램 아니오 재설계 알고리즘은주어진문제를논리적으로해결하는과정이다. 분석을통해작성한알고리즘의정확성을파악할수있고,

More information

5장 스택

5장 스택 강의내용 오늘강의내용 ( 월 7 일 ) 중갂고사문제풀이 9. 그래프의숚회. 최소비용신장트리 ( 가중치그래프 ) 예습 ( 월 일 ) : 장가중치그래프 ( 계속 ) 숙제 : 연습문제 (9 장 ) :,,,,,7,8, 번풀어보기 마감일 : 9 년 월 일 ( 화 ) 9. 그래프숚회 그래프숚회 주어진어떤정점을출발하여체계적으로그래프의모든정점들을방문하는것 그래프숚회의종류

More information

쉽게배우는알고리즘 9장. 그래프알고리즘

쉽게배우는알고리즘 9장. 그래프알고리즘 쉽게배우는알고리즘 장. 그래프알고리즘 http://academy.hanb.co.kr 장. 그래프알고리즘 수학은패턴의과학이다. 음악역시패턴들이다. 컴퓨터과학은추상화와패턴의형성에깊은관련이있다. 컴퓨터과학이다른분야들에비해특징적인것은지속적으로차원이 급상승한다는점이다. 미시적관점에서 거시적관점으로도약하는것이다. - 도널드크누스 - - 한빛미디어 학습목표 그래프의표현법을익힌다.

More information

Microsoft PowerPoint Relations.pptx

Microsoft PowerPoint Relations.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2010년봄학기강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

슬라이드 1

슬라이드 1 CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if

More information

슬라이드 1

슬라이드 1 CHAP 10 : 그래프 그래프 (graph) 연결되어있는객체간의관계를표현하는자료구조 가장일반적인자료구조형태 우리가배운트리 (tree) 도그래프의특수한경우임 전기회로의소자간연결상태 운영체제의프로세스와자원관계 큰프로젝트에서작은프로젝트간의우선순위 지도에서도시들의연결상태 그래프역사 1800 년대오일러에의하여창안 오일러문제 모든다리를한번만건너서처음출발했던장소로돌아오는문제

More information

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms 2015-1 12. 그래프와관련알고리즘 2015 년 5 월 28 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 그래프 (Graph) 그래프의응용예 Outline 미로찾기 인터넷라우터에서의패킷 forwarding

More information

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information

1장. 리스트

1장. 리스트 01. 그래프를소개합니다 02. 그래프를어떻게표현할것인가? 03. 그래프순회 : 그래프를따라산책하기 04. 최소신장트리 05. 최단경로탐색 06. 위상정렬 라인하르트오일러가 쾨니히스베르크의 7 개의다리문제 를풀기위해고안해낸수학적도구. 7 개의다리를간선 (Edge) 로, 4 개의육지를정점 (Vertex) 로표현. A A Pregel River B C B C D

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

슬라이드 1

슬라이드 1 CHAP 10 : 그래프 그래프 (graph) 연결되어있는객체간의관계를표현하는자료구조 가장일반적인자료구조형태 우리가배운트리 (tree) 도그래프의특수한경우임 전기회로의소자간연결상태 운영체제의프로세스와자원관계 큰프로젝트에서작은프로젝트간의우선순위 지도에서도시들의연결상태 그래프역사 1800 년대오일러에의하여창안 오일러문제 모든다리를한번만건너서처음출발했던장소로돌아오는문제

More information

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ 알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2016년 12월15일 ( 목 ) 오전 9시40분 ~) 담당교수 : 서강대학교컴퓨터공학과임인성 < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고, 반드시답을쓰는칸에어느쪽의뒷면에답을기술하였는지명시할것. 연습지는수거하지않음. function MakeSet(x) { x.parent

More information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

11장.그래프

11장.그래프 ---------------- T STRUTURS USIN ---------------- PTR 그래프 1/32 그래프 (graph) 란? 연결되어있는객체간의관계를표현하는자료구조 가장일반적인자료구조형태 그래프의예 트리 (tree) 지도, 지하철노선도 전기회로의연결상태 OS의프로세스와자원관계 인맥지도 2/32 그래프역사 오일러문제 (1800 년대 ) 다리를한번만건너서처음출발했던장소로돌아오는문제

More information

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores 프로젝트정리 1주차 : 미로를텍스트파일로만들어출력하는프로그램작성. 2주차 : 텍스트형태의미로를 MC의그래픽기능을이용하여그리는프로그램작성. 3주차 : 미로에서길찾는프로그램작성. Dept. of CS, Sogang Univ. 1 DS를이용한미로길찾기문제 DS를이용한미로길찾기문제는 2주차까지설계한미로의출발점과도착점을연결하는가장짧은경로를탐색해출력하는문제이다. NxM

More information

쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP)

쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP) 쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP) http://academy.hanb.co.kr IT COOKBOOK 8장. 동적프로그래밍 Dynamic Programming (DP) 계시란바깥어딘가에서우리한테갑자기주어지는객관적지식이아니다. 만물의근원에대한본질적인귀속감, 우리가거기에아주밀접하게닿아있다는관계성을스스로가발견해내는것이계시다.

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

-09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고, 선형시간정렬이가능한조건과선형시간정렬알고리즘을이해한다. - - 한빛미디어 Sortng Algorth

-09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고, 선형시간정렬이가능한조건과선형시간정렬알고리즘을이해한다. - - 한빛미디어 Sortng Algorth -09- 쉽게배우는알고리즘 장. 정렬 Sortng http://academy.hanb.co.kr 장. 정렬 Sortng 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 한빛미디어 1 -09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다.

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

<4D F736F F F696E74202D203728B0E8BBEABAB9C0E2B5B5B0B3B7D02DC1A4B7C4B9AEC1A6292E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203728B0E8BBEABAB9C0E2B5B5B0B3B7D02DC1A4B7C4B9AEC1A6292E BC8A3C8AF20B8F0B5E55D> 계산복잡도 Computatioal Complexity 계산복잡도개론정렬문제 알고리즘의분석 어떤특정알고리즘의효율 (efficiecy 을측정 시간복잡도 (time complexity 공간복잡도 (space/memory complexity 문제의분석 일반적으로 계산복잡도분석 이란이를지칭 어떤문제에대해서그문제를풀수있는모든알고리즘의효율의하한 (lower-bou 을결정한다.

More information

04 Çмú_±â¼ú±â»ç

04 Çмú_±â¼ú±â»ç 42 s p x f p (x) f (x) VOL. 46 NO. 12 2013. 12 43 p j (x) r j n c f max f min v max, j j c j (x) j f (x) v j (x) f (x) v(x) f d (x) f (x) f (x) v(x) v(x) r f 44 r f X(x) Y (x) (x, y) (x, y) f (x, y) VOL.

More information

Chap 6: Graphs

Chap 6: Graphs 5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

Chap 6: Graphs

Chap 6: Graphs AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node

More information

01장.자료구조와 알고리즘

01장.자료구조와 알고리즘 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 자료구조와알고리즘 1/30 자료구조 일상생활에서자료를정리하고조직화하는이유는? 사물을편리하고효율적으로사용하기위함 다양한자료를효율적인규칙에따라정리한예 2/30 컴퓨터에서의자료구조 자료구조 (Data Structure) 컴퓨터에서자료를정리하고조직화하는다양한구조

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information

Microsoft PowerPoint Backtracking.pptx

Microsoft PowerPoint Backtracking.pptx 알고리즘 (Algorithm) g( 되추적 ) 2011년봄학기 강원대학교컴퓨터과학전공문양세 되추적 (backtracking)? 갈림길에표시를해두었더라면 간단히말해서되추적은갈림길에표시를해두는기법이다. Page 2 강의순서 되추적기술 n-queens Problem Monte Carlo Technique Graph Coloring Hamiltonian Circuits

More information

제 3강 역함수의 미분과 로피탈의 정리

제 3강 역함수의 미분과 로피탈의 정리 제 3 강역함수의미분과로피탈의정리 역함수의미분 : 두실수 a b 와폐구갂 [ ab, ] 에서 -이고연속인함수 f 가 ( a, b) 미분가능하다고가정하자. 만일 f '( ) 0 이면역함수 f 은실수 f( ) 에서미분가능하고 ( f )'( f ( )) 이다. f '( ) 에서 증명 : 폐구갂 [ ab, ] 에서 -이고연속인함수 f 는증가함수이거나감소함수이다 (

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로 3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로성립한다. Theorem 7 두함수 f : X Y 와 g : X Y 에대하여, f = g f(x)

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

More information

선형자료구조 16.1 그래프 배열, 스택, 큐, 리스트를사용하여해결할수있다. 비선형자료구조 순환, 트리, 이진트리로복잡한문제를해결한다. 그래프 (graph) ; 인터넷과같은통신네트워크나고속도로나철도와같은교통네트워크에적합하다. 그래프 (graph) 링크에의해연결되어있는노

선형자료구조 16.1 그래프 배열, 스택, 큐, 리스트를사용하여해결할수있다. 비선형자료구조 순환, 트리, 이진트리로복잡한문제를해결한다. 그래프 (graph) ; 인터넷과같은통신네트워크나고속도로나철도와같은교통네트워크에적합하다. 그래프 (graph) 링크에의해연결되어있는노 16. 그래프 선형자료구조 16.1 그래프 배열, 스택, 큐, 리스트를사용하여해결할수있다. 비선형자료구조 순환, 트리, 이진트리로복잡한문제를해결한다. 그래프 (graph) ; 인터넷과같은통신네트워크나고속도로나철도와같은교통네트워크에적합하다. 그래프 (graph) 링크에의해연결되어있는노드들로구성된구조이다. 노드를정점 (vertex) 이라고부르고, 링크를간선 (edge)

More information

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max 알고리즘설계와분석 (CSE3081-2반 ) 중간고사 (2013년 10월24일 ( 목 ) 오전 10시30분 ) 담당교수 : 서강대학교컴퓨터공학과임인성수강학년 : 2학년문제 : 총 8쪽 12문제 ========================================= < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고반드시답을쓰는칸에답안지의어느쪽의뒷면에답을기술하였는지명시할것.

More information

최소비용흐름문제의선형계획모형 최소비용흐름문제는선형계획문제로표현할수있다. 예 4.1 의최소비용흐름문제는다음과같은선형계획문제가된다. min z = 5x 12 +4x 13 +7x 14 +2x x 34 +8x 35 +5x 45 sub.to x 12 +x 13 +x

최소비용흐름문제의선형계획모형 최소비용흐름문제는선형계획문제로표현할수있다. 예 4.1 의최소비용흐름문제는다음과같은선형계획문제가된다. min z = 5x 12 +4x 13 +7x 14 +2x x 34 +8x 35 +5x 45 sub.to x 12 +x 13 +x 최소비용흐름문제의선형계획모형 최소비용흐름문제는선형계획문제로표현할수있다. 예. 의최소비용흐름문제는다음과같은선형계획문제가된다. min z = 5x 2 +x +7x +2x 25 +0x +8x 5 +5x 5 sub.to x 2 +x +x = 0, x 2 +x 25 =, x +x +x 5 = -, x x +x 5 = -, x 25 x 5 x 5 = -7, x 2 apple,

More information

슬라이드 1

슬라이드 1 Data Structure & Algorithms SANGJI University KO Kwangman () 자료 (data) 1. 자료와정보 현실세계로부터의단순한관찰이나측정을통하여수집한사실이나개념의값들또는값들의집합. 정보 (information) 의사결정에도움을주기위해유용한형태로다시작성된 (= 가공 ) 자료. Data Structure & Algorithms

More information

슬라이드 1

슬라이드 1 CHAP 1: 자료구조와알고리즘 일상생활에서의사물의조직화 조직도 일상생활에서의사물의조직화 Ticket Box 일상생활과자료구조의비교 일상생활에서의예 물건을쌓아두는것 영화관매표소의줄 할일리스트 자료구조 스택 큐 리스트 a b c NULL C B A 영어사전사전, 탐색구조 Ticket Box 지도 조직도 그래프 트리 전단 (front) 후단 (rear) 자료구조와알고리즘

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x

체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x 체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x m, b m 0 F, m > 0 에대해 f(x) = g(x)q(x) + r(x) 을만족하는

More information

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에

More information

Microsoft PowerPoint - 제10장-그래프.pptx

Microsoft PowerPoint - 제10장-그래프.pptx 제 강의. 그래프개념과그래프탐색 학습목차. 그래프의개념. 그래프의표현. 그래프탐색 . 그래프의개념 graph? chart? 오래된그래프문제로다음과 Köenigsberg 다리문제가있다. 이문제는다음과같은지형이있을때임의의한곳 (A,B,C,D) 에서출발하여 a 부터 f 까지 모든다리를한번씩건널수있는가? 하는문제이다. 자료구조의그래프는이러한문제를컴퓨터에표현하고알고리즘을개발하는분야이다.

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

슬라이드 1

슬라이드 1 CHAP 1: 자료구조와알고리즘 C 로쉽게풀어쓴자료구조 생능출판사 2005 일상생활에서의사물의조직화 조직도 일상생활에서의사물의조직화 Ticket Box 일상생활과자료구조의비교 a b c N 일상생활에서의예 물건을쌓아두는것 영화관매표소의줄 할일리스트 자료구조 스택 큐 리스트 영어사전사전, 탐색구조 지도 조직도 그래프 트리 Ticket Box C B A 전단 (front)

More information

제 6 장 그래프

제 6 장 그래프 제 장 그래프 Copyright DBLAB, Seoul National University 그래프추상데이타타입 () 개요.. Koenigsberg 다리문제 차수 (degree) : 정점에연결된간선의수 오일러행로 (Eulerian walk) c C d g a A Kneiphof B e b D f c a C A B d b e g f D (a) Koenigsberg

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

예제 1.3 K 5 와 K 3,3 의결합행렬을만들고, 각꼭지점의차수를표시하여라. >> K5 = ones(5,5) - diag(diag(ones(5,5))); degree = sum(k5) degree = 4 4 4 4 4 >> K33 = [zeros(3) ones(3); ones(3) zeros(3)], degree = sum(k33) K33 = 0 0 0

More information

Microsoft PowerPoint - ch00 - Introduction to Programming Language Lecture

Microsoft PowerPoint - ch00 - Introduction to Programming Language Lecture 2014-1 프로그래밍언어 프로그래밍언어강의소개 2014. 3. 1. 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 프로그래밍언어강의개요 목적 C 프로그래밍언어를기반으로한공학문제의해결방법습득, C++

More information

서강대학교공과대학컴퓨터공학과 CSE3081 알고리즘설계와분석 (2 반 ) 기말고사 (2015 년 12 월 17 일 ) 알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2015년 12월17일 ( 목 ) 오전 9시 30분 ) 담당교수 : 서강대학교컴퓨터공학과임인성

서강대학교공과대학컴퓨터공학과 CSE3081 알고리즘설계와분석 (2 반 ) 기말고사 (2015 년 12 월 17 일 ) 알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2015년 12월17일 ( 목 ) 오전 9시 30분 ) 담당교수 : 서강대학교컴퓨터공학과임인성 알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2015년 12월17일 ( 목 ) 오전 9시 30분 ) 담당교수 : 서강대학교컴퓨터공학과임인성대상 : 2학년 2학기생 < 주의 > 문제지는총6쪽이며, 제공한답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고반드시답을쓰는칸에어느쪽의뒷면에답을기술하였는지명시할것. 연습지는수거하지않음. 1. 다음은

More information

Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레

Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레 Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레드 블랙 트리를 구현하고자 한다. 1.1 2-3트리와 동등한 레드 블랙 트리 2-3트리와 동등한

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

슬라이드 1

슬라이드 1 Recursion SANGJI University KO Kwangman () 1. 개요 재귀 (recursion) 의정의, 순환 정의하고있는개념자체에대한정의내부에자기자신이포함되어있는경우를의미 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로되어있는경우에적합한방법 예제 ) 팩토리얼값구하기 피보나치수열 이항계수 하노이의탑 이진탐색

More information

알고리즘 1장 기본개념

알고리즘 1장 기본개념 Video & Image VIPLProcessing Lab. 2013-1 Myoung-Jin Kim, Ph.D. (webzealer@ssu.ac.kr) Research Professor(Soongsil University) 컴퓨터학과이관용교수 Myoung-Jin Kim, Ph.D. (webzealer@ssu.ac.kr) 알고리즘의기본개념 알고리즘의중요성 자료구조파일처리

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

(Hyunoo Shim) 1 / 24 (Discrete-time Markov Chain) * 그림 이산시간이다연쇄 (chain) 이다왜 Markov? (See below) ➀ 이산시간연쇄 (Discrete-time chain): : Y Y 의상태공간 = {0, 1, 2,..., n} Y n Y 의 n 시점상태 {Y n = j} Y 가 n 시점에상태 j 에있는사건

More information

OR MS와 응용-03장

OR MS와 응용-03장 o R M s graphical solution algebraic method ellipsoid algorithm Karmarkar 97 George B Dantzig 979 Khachian Karmarkar 98 Karmarkar interior-point algorithm o R 08 gallon 000 000 00 60 g 0g X : : X : : Ms

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

쉽게 배우는 알고리즘 강의노트

쉽게 배우는 알고리즘 강의노트 쉽게배우는알고리즘 ( 한빛미디어 ) 2 장. 상태공간트리의탐색 State-Space Tree State-space tree ( 상태공간트리 ) 문제해결과정의중간상태를각각한노드로나타낸트리 이장에서배우는세가지상태공간탐색기법 Backtracking Branch-and-bound A * algorithm - 2 - 한빛미디어 Travelling Salesman Problem

More information

집합 집합 오른쪽 l 3. (1) 집합 X 의각원소에대응하는집합 Y 의원소가단하나만인대응을 라할때, 이대응 를 X 에서 Y 로의라고하고이것을기호로 X Y 와같이나타낸다. (2) 정의역과공역정의역 : X Y 에서집합 X, 공역 : X Y 에서집합 Y (3) 의개수 X Y

집합 집합 오른쪽 l 3. (1) 집합 X 의각원소에대응하는집합 Y 의원소가단하나만인대응을 라할때, 이대응 를 X 에서 Y 로의라고하고이것을기호로 X Y 와같이나타낸다. (2) 정의역과공역정의역 : X Y 에서집합 X, 공역 : X Y 에서집합 Y (3) 의개수 X Y 어떤 다음 X 대응 1. 대응 (1) 어떤주어진관계에의하여집합 X 의원소에집합 Y 의원소를짝지어주는것을집합 X 에서집합 Y 로의대응이라고한다. l (2) 집합 X 의원소 에집합 Y 의원소 가짝지어지면 에 가대응한다고하며이것을기호로 와같이나타낸다. 2. 일대일대응 (1) 집합 A 의모든원소와집합 B 의모든원소가하나도빠짐없이꼭한개씩서로대응되는것을집합 A 에서집합

More information

03_queue

03_queue Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,

More information

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4 Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 순환알고리즘 C 로쉽게풀어쓴자료구조 순환 (recursion) 수행이끝나기전에자기자신을다시호출하여문제해결 - 직접순환, 간접순환 문제정의가순환적으로되어있는경우에적합한방법 ( 예제 ) 팩토리얼 피보나치수열 n! 1 n * ( n 1)! n n 0 fib( n) 1 fib ( n 2) fib( n 1) 1 ` 2 if if n 0 n 1 otherwise 이항계수

More information

슬라이드 1

슬라이드 1 Data Structure Chapter 1. 자료구조와알고리즘 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 자료구조와알고리즘 일상생활에서의사물의조직화 해야할일리스트 조직도 일상생활에서의사물의조직화 사전 Ticket Box 3 일상생활과자료구조의비교 일상생활 vs 자료구조 자료구조 스택 큐 리스트 사전, 탐색구조

More information

와플-4년-2호-본문-15.ps

와플-4년-2호-본문-15.ps 1 2 1+2 + = = 1 1 1 +2 =(1+2)+& + *=+ = + 8 2 + = = =1 6 6 6 6 6 2 2 1 1 1 + =(1+)+& + *=+ =+1 = 2 6 1 21 1 + = + = = 1 1 1 + 1-1 1 1 + 6 6 0 1 + 1 + = = + 7 7 2 1 2 1 + =(+ )+& + *= + = 2-1 2 +2 9 9 2

More information

Sequences with Low Correlation

Sequences with Low Correlation 레일리페이딩채널에서의 DPC 부호의성능분석 * 김준성, * 신민호, * 송홍엽 00 년 7 월 1 일 * 연세대학교전기전자공학과부호및정보이론연구실 발표순서 서론 복호화방법 R-BP 알고리즘 UMP-BP 알고리즘 Normalied-BP 알고리즘 무상관레일리페이딩채널에서의표준화인수 모의실험결과및고찰 결론 Codig ad Iformatio Theory ab /15

More information

중간고사 (자료 구조)

중간고사 (자료 구조) Data Structures 215 중간고사 문제에서명시적으로기술하지않은부분은교재의내용에근거함. 215. 1. 27. 1 다음용어에대하여간단하게설명하시오 ( 각 3 점 *1=3 점 ) 1 abstract data type 6 Circular linked list 2 recursion 3 time complexity 4 space complexity 5 Single

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

Microsoft PowerPoint - 08_Dynamic_Prog_01.pptx

Microsoft PowerPoint - 08_Dynamic_Prog_01.pptx CSW3010 (Introduction to Computer Algorithms) 담당교수 : 임종석서강대학교컴퓨터공학과 Dynamic Programming ( 동적계획알고리즘 ) Optimization Problem 을해결하기위한알고리즘. Bottom-up Approach : 주어진 instance 에대하여 1. 크기가가장작은모든 sub-instance 들에대해해를각각구하여저장한다.

More information

Microsoft PowerPoint - 04알고리즘

Microsoft PowerPoint - 04알고리즘 이산수학 Discrete Mathematics 알고리즘 (Algorithm) 인천대학교컴퓨터공학과공학시인이숙이철호교수 Jullio@chol.com zullio@inu.ac.kr 010 3957 6683 모바일컴퓨팅연구실 07 401 호 상어가바다의절대제왕이된이유 출처 : 조영탁의행복한경영이야기 상어는물고기중유일하게부레가없다. 부레없는물고기는물속에서생존이불가능하다.

More information

05_tree

05_tree Tree Data Structures and Algorithms 목차 트리의개요 이진트리의구현 이진트리의순회 (Traversal) 수식트리 (Expression Tree) 의구현 Data Structures and Algorithms 2 트리의개요 Data Structures and Algorithms 3 트리의접근과이해 트리는계층적관계 (Hierarchical

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

제 5강 리만적분

제 5강 리만적분 제 5 강리만적분 리만적분 정의 : 두실수, 가 을만족핚다고가정하자.. 만일 P [, ] 이고 P 가두끝점, 을모두포함하는유핚집합일때, P 을 [, ] 의분핛 (prtitio) 이라고핚다. 주로 P { x x x } 로나타낸다.. 분핛 P { x x x } 의노름을다음과같이정의핚다. P x x x. 3. [, ] 의두분핛 P 와 Q 에대하여만일 P Q이면 Q

More information

歯MW-1000AP_Manual_Kor_HJS.PDF

歯MW-1000AP_Manual_Kor_HJS.PDF Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Page 13 Page 14 Page 15 Page 16 Page 17 Page 18 Page 19 Page 20 Page 21 Page 22 Page 23 Page 24 Page 25 Page 26 Page 27 Page

More information

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 Data structure: Assignment 1 Seung-Hoon Na October 1, 018 1 1.1 Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 multiline으로 구성될 수 있으며, 한 라인에는 임의의 갯수의 숫자가 순서대로 나열될

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

<33312D312D313220C0CCC7D1C1F820BFB0C3A2BCB12E687770>

<33312D312D313220C0CCC7D1C1F820BFB0C3A2BCB12E687770> Journal of the Society of Korea Industrial and Systems Engineering Vol No pp March 8 Scatter Search를 이용한 신뢰성 있는 네트워크의 경제적 설계 * ** * ** Economic Design of Reliable Networks Using Scatter Search HanJin Lee*

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

Microsoft PowerPoint - 제3장-배열.pptx

Microsoft PowerPoint - 제3장-배열.pptx 제 3 강. 배열 (Array) 자료구조 1 제 3 강. 배열자료구조 학습목차 1. 배열의개념 2. 구조체 3. 희소 (Sparce) 행렬 4. 다차원배열의저장 2 1. 배열의개념 리스트는일상생활에서가장많이쓰이는자료형태이다. 예 ) 학생의명단, 은행거래고객명단, 월별판매액등 배열 (Array) 은컴퓨터언어에서리스트를저장하는데이터타입이다. 리스트와배열은같은개념이지만다른차원의용어이다.

More information

Microsoft PowerPoint - slide06.pptx

Microsoft PowerPoint - slide06.pptx Im4u 봄방학캠프 DAY 6; Elementary Graph Theory (II) 구종만 jongman@gmail.com 오늘할이야기 최단거리 (Shortest Path) 교과서알고리즘 : Dijkstra s, Floyd s, Bellman- Ford s 그래프모델링 (modeling) 문제에서어떻게그래프를뽑아낼것인가? 최단거리의변형 : multiplicative,

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - chap-11.pptx 쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 11 장포인터 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습합니다.

More information