동적 프로그래밍(dynamic programming) 방법으로 최소의 원소단위 곱셈 횟수를 갖도록 연쇄 행렬곱셈(matrix-chain multiplication)의 순서를 정하려 한다. c i , j c_{i,j} c i , j 를 행렬 M i M_i M i 부터 M j M_j M j 까지의 연쇄 행렬곱셈의 최소 비용이라고 할 때, c i , j c_{i,j} c i , j 에 대한 관계식으로 옳은 것은? (단, i < j i \lt j i < j 이고, 각 행렬의 차원이 p 0 , p 1 , … , p n p_0, p_1, \ldots ,p_n p 0 , p 1 , … , p n 일 때, 행렬 M i M_i M i 의 크기는 p i − 1 × p i p_{i-1} \times p_i p i − 1 × p i 이다) 1 c i , j = { 0 if i = j min i ≤ k ≤ j − 1 { c i , k + c k + 1 , j + p i − 1 p k p j } if i < j c_{i,j} = \begin{cases} 0 & \text{if } i = j \\ \min_{i \le k \le j-1}\{c_{i,k}+c_{k+1,j}+p_{i-1}p_kp_j\} & \text{if } i \lt j \end{cases} c i , j = { 0 min i ≤ k ≤ j − 1 { c i , k + c k + 1 , j + p i − 1 p k p j } if i = j if i < j 2 c i , j = { 0 if i = j min i ≤ k ≤ j − 1 { c i , k + c k , j + p i − 1 p k − 1 p j } if i < j c_{i,j} = \begin{cases} 0 & \text{if } i = j \\ \min_{i \le k \le j-1}\{c_{i,k}+c_{k,j}+p_{i-1}p_{k-1}p_j\} & \text{if } i \lt j \end{cases} c i , j = { 0 min i ≤ k ≤ j − 1 { c i , k + c k , j + p i − 1 p k − 1 p j } if i = j if i < j 3 c i , j = { 0 if i = j min i ≤ k ≤ j − 1 { c i , k − 1 + c k , j + p i − 1 p k − 1 p j } if i < j c_{i,j} = \begin{cases} 0 & \text{if } i = j \\ \min_{i \le k \le j-1}\{c_{i,k-1}+c_{k,j}+p_{i-1}p_{k-1}p_j\} & \text{if } i \lt j \end{cases} c i , j = { 0 min i ≤ k ≤ j − 1 { c i , k − 1 + c k , j + p i − 1 p k − 1 p j } if i = j if i < j 4 c i , j = { 0 if i = j min i ≤ k ≤ j − 1 { c i , k + c k , j + p i − 1 p k p j } if i < j c_{i,j} = \begin{cases} 0 & \text{if } i = j \\ \min_{i \le k \le j-1}\{c_{i,k}+c_{k,j}+p_{i-1}p_kp_j\} & \text{if } i \lt j \end{cases} c i , j = { 0 min i ≤ k ≤ j − 1 { c i , k + c k , j + p i − 1 p k p j } if i = j if i < j 해설
올바른 관계식은 c i , j = min i ≤ k ≤ j − 1 { c i , k + c k + 1 , j + p i − 1 p k p j } c_{i,j}=\min_{i \le k \le j-1}\{c_{i,k}+c_{k+1,j}+p_{i-1}p_kp_j\} c i , j = min i ≤ k ≤ j − 1 { c i , k + c k + 1 , j + p i − 1 p k p j } 이다.
분할점 k에서 M i ⋯ M k M_i \cdots M_k M i ⋯ M k 와 M k + 1 ⋯ M j M_{k+1} \cdots M_j M k + 1 ⋯ M j 로 나누면 두 결과 행렬의 크기는 p i − 1 × p k p_{i-1} \times p_k p i − 1 × p k 와 p k × p j p_k \times p_j p k × p j 이고, 이를 곱하는 비용이 p i − 1 p k p j p_{i-1}p_kp_j p i − 1 p k p j 이다.
c i , k + c k , j + p i − 1 p k − 1 p j c_{i,k}+c_{k,j}+p_{i-1}p_{k-1}p_j c i , k + c k , j + p i − 1 p k − 1 p j 식은 행렬 M k M_k M k 를 두 부분에 중복 포함하고 곱셈 비용의 차원도 맞지 않는다.c i , k − 1 + c k , j c_{i,k-1}+c_{k,j} c i , k − 1 + c k , j 식은 k의 범위가 i ≤ k ≤ j − 1 i \le k \le j-1 i ≤ k ≤ j − 1 이므로 k=i일 때 정의되지 않는 c i , i − 1 c_{i,i-1} c i , i − 1 가 나오고 마지막 분할도 빠진다.c i , k + c k , j + p i − 1 p k p j c_{i,k}+c_{k,j}+p_{i-1}p_kp_j c i , k + c k , j + p i − 1 p k p j 식은 M k M_k M k 를 양쪽 부분에 중복 포함한다.오류나 개정된 내용이 보이면 알려주세요
오류 제보