모두CBT

동적 프로그래밍(dynamic programming) 방법으로 최소의 … | [7급 국가직 알고리즘] 25년 1회차 기출문제 상세 페이지

1[7급 국가직 알고리즘] 25년 1회차
동적 프로그래밍(dynamic programming) 방법으로 최소의 원소단위 곱셈 횟수를 갖도록 연쇄 행렬곱셈(matrix-chain multiplication)의 순서를 정하려 한다. ci,jc_{i,j}를 행렬 MiM_i부터 MjM_j까지의 연쇄 행렬곱셈의 최소 비용이라고 할 때, ci,jc_{i,j}에 대한 관계식으로 옳은 것은? (단, i<ji \lt j이고, 각 행렬의 차원이 p0,p1,…,pnp_0, p_1, \ldots ,p_n일 때, 행렬 MiM_i의 크기는 pi−1×pip_{i-1} \times p_i이다)
1
ci,j={0if i=jmin⁡i≤k≤j−1{ci,k+ck+1,j+pi−1pkpj}if i<jc_{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}
2
ci,j={0if i=jmin⁡i≤k≤j−1{ci,k+ck,j+pi−1pk−1pj}if i<jc_{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}
3
ci,j={0if i=jmin⁡i≤k≤j−1{ci,k−1+ck,j+pi−1pk−1pj}if i<jc_{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}
4
ci,j={0if i=jmin⁡i≤k≤j−1{ci,k+ck,j+pi−1pkpj}if i<jc_{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}
해설

올바른 관계식은 ci,j=min⁡i≤k≤j−1{ci,k+ck+1,j+pi−1pkpj}c_{i,j}=\min_{i \le k \le j-1}\{c_{i,k}+c_{k+1,j}+p_{i-1}p_kp_j\}이다.

분할점 k에서 Mi⋯MkM_i \cdots M_k와 Mk+1⋯MjM_{k+1} \cdots M_j로 나누면 두 결과 행렬의 크기는 pi−1×pkp_{i-1} \times p_k와 pk×pjp_k \times p_j이고, 이를 곱하는 비용이 pi−1pkpjp_{i-1}p_kp_j이다.

  • ci,k+ck,j+pi−1pk−1pjc_{i,k}+c_{k,j}+p_{i-1}p_{k-1}p_j 식은 행렬 MkM_k를 두 부분에 중복 포함하고 곱셈 비용의 차원도 맞지 않는다.
  • ci,k−1+ck,jc_{i,k-1}+c_{k,j} 식은 k의 범위가 i≤k≤j−1i \le k \le j-1이므로 k=i일 때 정의되지 않는 ci,i−1c_{i,i-1}가 나오고 마지막 분할도 빠진다.
  • ci,k+ck,j+pi−1pkpjc_{i,k}+c_{k,j}+p_{i-1}p_kp_j 식은 MkM_k를 양쪽 부분에 중복 포함한다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 알고리즘] 25년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 알고리즘 기출문제 암기장 전체 보기