1 / 51

계 량 분 석

계 량 분 석. 이 승 재. 2011. 00. 00. 계량 분석 13 주차. Dynamic Programming. Dynamic Programming. contents. Recursive nature of computations in DP (Shortest-Route Problem) Forward and Backward Recursion Selected DP Applications a. Knapsack/fly-away/cargo-Loading Model

jonah
Download Presentation

계 량 분 석

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 계 량 분 석 이 승 재 2011. 00. 00

  2. 계량 분석 13 주차 Dynamic Programming

  3. Dynamic Programming contents • Recursive nature of computations in DP (Shortest-Route Problem) • Forward and Backward Recursion • Selected DP Applications • a. Knapsack/fly-away/cargo-Loading Model • b. Work-Force size Model • c. Equipment Replacement Model • d. Investment Model

  4. Dynamic Programming Dynamic Programing정의 • =Optimum Solution of multivariable Problem • 최적성의 원리를 이용하여 다단계의 과정을 걸쳐 최대이익을 가져오는 결정을 하는 방법. • 부분문제들의 해를 모아서 전제문제의 해를 구하는 방법으로 최적화 문제를 해결하는 알고리즘 방식. • - 장점 : 프로그램을 구현 시에 필요한 모든 가능성을 구현하게 되므로 항상 최적의 결과를 얻을 수 있다. • - 단점 : 모든 가능성에 대한 고려가 불충분 할 경우 최적의 결과 보장 어려움.다른 방법에 비해 많은 과정(표)를 이용하므로 용량이 커지며 시간이 오래 걸린다. • - 이용: 수송계획, 자원배분계획 등에 유용하게 쓰임.

  5. Dynamic Programming 예 제 Recursive nature of computations in DP (Shortest-Route Problem) Node 1 에서 Node 7 로의 Shortest-Route 2 10 5 4 6 13 1 7 9 3 9 7 5 11 6 15 4

  6. Dynamic Programming f1 f1 6 6 f2 f2 Solution 2 2 16 16 10 5 5 f3 f0 6 0 9 9 4 20 13 9 1 3 3 7 18 18 9 5 11 7 7 7 6 6 15 4 4 Stage 1 Stage 2 Stage 3

  7. Dynamic Programming Solution Shortest distance node 1 to node 2 =6 node 1 to node 3 =9 node 1 to node 4 =7 Node 5까지의 최단거리=min{(node i까지의 최소거리)+(node i에서 node5까지의 최소거리)}

  8. Dynamic Programming f1 f1 6 6 f2 f2 Solution 2 2 16 16 10 5 5 f3 f0 6 0 9 9 4 20 13 Shortest distance node 1 to node 5 =16 node 1 to node 6 =18 node 1 to node 7 = 20 9 1 3 3 7 18 18 9 5 11 7 7 7 6 6 15 4 4 Stage 1 Stage 2 Stage 3

  9. Dynamic Programming 6 6 f2 f2 2 2 16 16 16 10 5 5 f3 f0 6 0 9 9 4 20 13 9 1 3 3 7 18 18 9 5 11 7 7 7 6 6 15 4 4 Stage 1 Stage 2 Stage 3

  10. Dynamic Programming Solution Recursive Equation 까지의 최소거리 까지의 최소거리 node 에서 node 까지의 거리 이 식에서 stage i에 있는 는 반드시 다음 node인 에 관한 식으로 나타내져야한다. DP에서 는 stage 1 체계의 state라 불린다. Stage i에서의 state란 모든 stage를 이어주는 정보로써 앞으로 남아있는 stage에서의 optimal decision들은 전단계의 stage들을 다시 검토할 필요없이 바로 현단계의 stage에서 결정된다는 것이다. Stage i에서 state는 이고 이 node는 그 전단계까지의 모든 정보를 포함하고 있다. Stage i에서는 stage i-1까지의 결과를 다시 검토할 필요없이 Stage i에서 optimal solution을 결정할 수 있다.

  11. Dynamic Programming Forward example Stage i-1까지 누적된 최소거리 i-1에서 i까지의 거리 Stage 1

  12. Dynamic Programming Solution Stage 2. Stage 3. 따라서 Optimum solution는 이며 20mile.

  13. Dynamic Programming f1 f1 6 6 f2 f2 Solution 2 2 16 16 10 5 5 f3 f0 6 0 9 9 4 20 13 9 1 3 3 7 18 18 9 5 11 7 7 7 6 6 15 4 4 Stage 1 Stage 2 Stage 3

  14. Dynamic Programming BackWard example i에서 i+1까지의 거리 Stage i+1까지 누적된 최소거리 Stage 3.

  15. Dynamic Programming Solution Stage 2. Stage 1. 따라서 Optimum solution는 이며 20mile.

  16. Dynamic Programming f2 f3 14 14 f1 f1 Solution 2 2 4 4 10 5 5 f0 f4 6 20 14 14 4 0 13 9 1 3 3 7 5 5 9 5 11 7 15 15 6 6 15 4 4 Stage 1 Stage 2 Stage 3

  17. Dynamic Programming Solution Selected DP Applications a. Knapsack/fly-away/cargo-Loading Model To LP-Equation item n 의 소득 item n 의 개수 item n 의 무게 -item i의 소득과 개수의 곱을 더한 것은 총 소득이며 이를 최대화 시키는 과정이다. -item i의 무게와 개수의 곱을 더한 것은 배낭의 총 용량 W보다 작아야한다. -item i의 개수를 나타내는 는 양수이어야 하며 정수이다.

  18. Dynamic Programming Solution The three elements of the model 1. Stage i는 item i를 나타낸다. 2.Stage i 에 있는 alternatives는 로 나타내지고 이는 kanpsack에 들어있는 item i 의 갯수이다. 합해진 수익(link)은 이다. [ ]가 이보다 작거나 같은 가장 큰 정수라 할때 mi=0,1,...,[ ]가 된다. 3.stage i의 state는 에 의해 나타내지고, 이는 stage(item) i, i+1, …, n까지의 총 합해진(누적된) 무게를 나타낸다. 이는 무게가 모든 stage들을 이어주는 유일한 제약조건이라는 것을 말한다.

  19. Dynamic Programming Solution 를 stages i, i+1, n과 주어진 state 에대한 최대이익이라 정의한다. STEP 1. 를 에 대한 식으로 나타낸다. STEP 2. 를 가 만의 식이 되도록 바꿔준다 정의에 의해 이고 이는 stage i에서의 무게를 나타 냄 따라서 이고 식은 다음과 같이 나타난다.

  20. Dynamic Programming 예 제 4 톤 짜리 Vessel에 하나 또는 세개의 도구를 넣을 수 있다. 아래 Table에 각 도구 1, 2, 3 에 대한 무게와 가치가 표시되어 있다. 어떤 방식으로 구성하면 최대의 효율을 낼 수 있는가? 세가지 종류의 물품이 있으므로 stage를 세 군데로 나눈다. Backward recursion을 사용하면 stage 3부터 시작한다.

  21. Dynamic Programming Solution 채워진 Vessel 용량 Link의 Data크기를 생각하지 않고 경로만을 생각할때, 위 예제를 Network으로 나타내면 왼쪽 그림과 같다. 도구의 종류

  22. Dynamic Programming Solution Stage 3. 우선 Stage 3에서는 item3을 담는다.item3의 무게가 1이므로 item3의 갯수는 0에서 4까지 될 수 있다. (vessel의 최대 무게 W가 4이므로) 주어진 (개당)이므로 최대 갯수는 4/1=4개가 된다. 즉, 가능한 값은 0, 1, 2, 3, 4가 된다. 는 에서만 feasible하다. 따라서 infeasible alternatives 일때는 제외가 된다. 의 식으로 stage3의 alternative를 비교 분석할 수 있다.

  23. Dynamic Programming Solution Stage 2.

  24. Dynamic Programming Solution Stage 1.

  25. Dynamic Programming Solution 최적해는 다음과 같은 방법으로 구해진다. 주어진 W=4 tons에서 stage1으로부터 가 최적의 alternative 를 가진다. 즉, item1이 2개 있다는 말이다. 이 계산은 이 되며 stage 2에서 이므로 이 되며 식은 이 된다. Stage3에서도 마찬가지로이 되며 결국 최적해는 이며 f1(4)=$62,000이 된다.

  26. Dynamic Programming 예 제 - Work-Force size Model 한 공정에서 Project를 실시하는데 5주동안 근로자가 필요하게 되었다. 각 주 별로 최소 5,7,8,4,6명의 근로자가 있어야 Project진행이 가능하다. 특정 i 주에서 근로자를 고용할 때, $400 에 추가적으로 사람당 $200 이 필요하다. 또 i 주에 근무하는 근로자가 최소 필요한 근로자의 수보다 많을경우 초과되는 사람당 $300이 필요하다. 이 때, 근로자에 의한 금전적 손해를 최소화 하는 최적해를 구하여라. DP Recursive equation 이전 Node까지 거리 = 이전 주까지 지출된 금액 이번 주 근로자 수 변동에 따른 지출 금액

  27. Dynamic Programming Solution 근로자수 Project Week

  28. Dynamic Programming Solution DP Recursive equation b = 주당 필요한 worker수 C_1 (x-b) = 강제 유지비 (필요한 worker와 실제 worker의 차이만큼의 유지) C_2(x-x’) = 고용비 범위 외의 모든 cost의 값은 0이 된다. 프로젝트의 실행에 있어 각 기간에 필요한 worker의 수를 유지하면서 최적의 비용을 창출 사원유지비, 고용비용에 대한 함수식을 세워 Backward로 최소비용을 찾아간다.

  29. Dynamic Programming Solution DP Recursive equation Recursive Equation에서 이전 node까지의 누적거리 주어진 조건을 이용하여 Backward Recursive Equation을 푼다.

  30. Dynamic Programming Solution x의 값의 선택에 있어 항상 각 stage에서 임을 명심한다. 또한 각 주에 필요한 worker의 최대가 8명이므로 x가 8보다 크면 최적일 수 없다. 따라서 각 Stage에서 x의 범위는 이 된다. stage4 stage3

  31. Dynamic Programming Solution stage2 stage1

  32. Dynamic Programming Solution Forward 방향

  33. Dynamic Programming Solution

  34. Dynamic Programming 예 제 - Equipment Replacement Model 도구 교체에 따른 총 손익의 계산 도구를 이용하여 service하는데 에 있어 이 도구를 계속 이용 할 수록 도구 자체의 경제적 가치, 도구를 이용한 이득 유지비용 등이 달라 지게 된다. 이 변화하는 가치의 값을 이용하여 최대의 이윤을 창출하기 위한 도구 교체 시기를 알아본다. DP Recursive Equation 앞에서의 Application과는 달리 도구를 교체하는가 하지 않는가에 따른 Recursive Equation이 달라진다. r(t) – c(t) + if KEEP (유지) = max r(0) – s(t) – I –c(0) + if REPLACE(교체) r(t) t기간 동안 사용된 도구로부터의 이윤 c(t) t기간 동안 사용된 도구의 유지비 s(t) t기간 동안 사용된 도구의 가치 I 새 도구의 가격 (새 도구로의 교체비용)

  35. Dynamic Programming 예 제 한 회사에서 현재 3년된 기계를 향후 4년동안 교체, 유지를 하여 사용한다 한다. 단, 기계의 나이가 6년이 될 경우 반드시 교체하며, 기계 교체시 비용은 $100000이다. 기계의 나이별로 소득, 기계의 가치, 유지비가 아래와 같을 때, 4년후 최대 이익을 창출할 최적해를 구하자 조 건 기계를 새것(Age=0 yr)으로 교체시 =$100000

  36. Dynamic Programming Solution 6 K = Keep R = Replace S = Salvage 6 K R 5 5 K R 4 Machine age 4 4 K S K R End 3 S Start 3 3 3 K R R K S 2 2 3 2 2 R K R S K K R R R 1 1 1 1 1 1 2 3 4 5 I=$100000 Decision year

  37. Dynamic Programming Solution • Start – 3년 사용한 machine으로 시작 • R(Replace) 시 새 machine으로 교체됨으로 Machine age는 1년이 됨 • K(Keep)시 1년 더 사용하므로 전 년도보다 1년 더 age가 올라감 • 4년째 6년 사용된 Machine이 나오므로 반드시 새것으로 교체한다. 이제 DP Equation 를 이용하여 Solution을 구한다. r(t) – c(t) + if KEEP = max r(0) – s(t) – I –c(0) + if REPLACE

  38. Dynamic Programming Solution 마지막 해 교체시 그 다음해에 무조건 1년된 기계를 팔게 된다. Stage 4 Stage 3

  39. Dynamic Programming Solution Stage 2 Stage 1 따라서 Optimal Solution은 $55,300 가된다. 이제 교체시기를 알아보기 위해 Stage를 거슬러 올라가본다.

  40. Dynamic Programming Solution Stage 1 Stage 2 Stage 2

  41. Dynamic Programming Stage 3 Stage 4

  42. Dynamic Programming 따라서 아래 최적의 비용을 위해 아래 도표와 같이 교체시기를 정하면 된다. 1년2년 3년 4년 따라서 위와 같이 교체 시기를 정할때, 최소비용은 $55,300 이다.

  43. Dynamic Programming 예 제 - Investment Model 각 은행마다 이율, 투자에 따른 소득이 다르다. 기간마다 어떠한 곳에 투자해야 최대의 이익을 보는지 DP를 이용하여 구해본다. Investment Model의 목적함수는 아래 식과 같다. n년에 투자로 인한 소득의 합 그 때의 소득은 투자한 금액(I)에 이윤 alpha를 곱한 값과 같다. (여기서 x는 그 해에 투자할 수 있는 금액 )

  44. Dynamic Programming 투자할 수 있는 금액은 은행 1,2에 투자할 금액의 합과 같으며 전년도에 각 은행에 투자한 돈에대한 Bonus금과 그 해 투자할 P의 합과 같다. q_1, q_2  은행 1,2에 투자한 비용에 대한 Bonus 비율 DP Recursive Equation

  45. Dynamic Programming 예 제 올해 $4000를 투자하고 그 다음 3해를 $2000을 각 년마다 투자하고 싶다. 첫 번째 은행에서 제안한 이자율은 연간 8%이고 후 4년간의 보너스는 1.8%, 1.7%, 2.1%, 2.5%가 된다. 두 번째 은행에서 제안한 연 이자율은 첫 번째 은행보다 0.2%낮지만 보너스는 .5%더 높다. 4년 뒤 축적된 금액의 최대값을 구하여라. 문제에서 주어진 조건 각 해의 투자금액 은행1 연이율 은행2 연이율 은행1 에서 각 연별 Bonus 율 은행2 에서 각 연별 Bonus 율 구한 조건을 이용하여 Equation을 푼다.

  46. Dynamic Programming Stage 4. 함수 는 에서 선형이고 의 범위를 가지므로 의계수가 음인 상황에서 0일때 최대값을 갖는다. 따라서 Stage 5의 해는 다음과 같이 정리된다.

  47. Dynamic Programming Stage 3.

  48. Dynamic Programming Stage 2.

  49. Dynamic Programming where Thus

  50. Dynamic Programming 일때, 최적해를 구할 수 있다 최적 일 때, x 값을 구하면투자 결과는 아래 Table과 같이 나타난다.

More Related