http://www.geeksforgeeks.org/dynamic-programming-set-2-optimal-substructure-property/


 Dynamic Programming - Set 2. Optimal Substructure Property

 Set 1에서 설명했 듯, Dynamic Programming으로 풀 수 있는 문제는 다음 두 주요 특성을 가진다.

 1) Overlapping Subproblems
 2) Optimal Substructure

 Set 1에서 이미 Overlapping Subproblem에 대해 설명했으며, 여기서는 Optimal Substructure에 대해 설명한다.


 2) Optimal Substructure: Optimal Substructure의 특징을 가진 문제는 그 subproblem들의 최적화된 솔루션으로 문제의 최적화된 솔루션을 구할 수 있다. 예를 들어 최단경로 문제는 다음과 같은 Optimal Substrucure 특징을 갖는다: 만약 노드 x가 원시노드 u와 목적지노드 v 사이의 최단 경로에 놓여진다면  u에서 v까지의 최단경로는 u에서 x까지의 최단경로와 x에서 v까지의 최단경로의 조합이 될 것이다. 플로이드-워셜 알고리즘벨먼-포드 알고리즘같은 일반적인 전체-쌍 최단경로 문제의 알고리즘이 Dynamic Programming의 전형적인 예이다.

 반면에 최장경로 문제는 Optimal Substructure 특징을 갖지 않는다. 다음 그래프의 두 노드간의  최장단순경로를 살펴보자.


 q에서 t로 가는 두 최장경로가 있다: q -> r ->t 와 q ->s->t. 최단경로와는 다르게, 이 최장경로들은 Optimal Substructure 특징을 갖지 않는다. 예를 들어, 최장경로 q->r->t은 q에서 r, r에서 t까지의 최장경로들의 조합이 아니다. 왜냐하면 q에서 r까지의 최장경로는 q->s->t->r이기 때문이다.



'Dynamic Programming' 카테고리의 다른 글

01. Overlapping Subproblems Property  (0) 2015.07.17

+ Recent posts