情報科学 › 研究のための計算の実務 › NumPy で書く配列計算

行列の鎖の最小の乗算回数

定理 5.2(「NumPy で書く配列計算」§5) ・ ✓公理まで証明済み

AiA_i を pi−1×pip_{i-1}\times p_i 行列(i=1,…,ni=1,\ldots,n。p0,…,pnp_0,\ldots,p_n は正の整数)とする。Ai⋯AjA_i\cdots A_j(i≤ji\le j)の括弧づけを、i=ji=j のときは AiA_i そのもの、i<ji\lt j のときはある kk(i≤k<ji\le k\lt j)と Ai⋯AkA_i\cdots A_k の括弧づけ L\mathcal{L}、Ak+1⋯AjA_{k+1}\cdots A_j の括弧づけ R\mathcal{R} の組 (L R)(\mathcal{L}\,\mathcal{R}) と再帰的に定め、その費用を

cost(Ai)=0,cost((L R))=cost(L)+cost(R)+pi−1pkpj\mathrm{cost}(A_i)=0,\qquad\mathrm{cost}\bigl((\mathcal{L}\,\mathcal{R})\bigr)=\mathrm{cost}(\mathcal{L})+\mathrm{cost}(\mathcal{R})+p_{i-1}p_kp_j

と定める。Ai⋯AjA_i\cdots A_j の括弧づけの費用の最小値を m(i,j)m(i,j) とする。

  1. m(i,i)=0m(i,i)=0 であり、i<ji\lt j のとき m(i,j)=min⁡i≤k<j{m(i,k)+m(k+1,j)+pi−1pkpj}.m(i,j)=\min_{i\le k\lt j}\bigl\{m(i,k)+m(k+1,j)+p_{i-1}p_kp_j\bigr\}.
  2. すべての m(i,j)m(i,j) と、費用 m(1,n)m(1,n) を達成する括弧づけは、O(n3)O(n^3) 時間・O(n2)O(n^2) 領域で求まる。

本文で読む(証明と前後の説明)→

閉包の状態

✓ 公理まで証明済み

証明が使う定理を 前提 としてたどると、Rikai の中の証明だけで定義・公理(物理では基本仮定)までつながっています(前提の定理類 2 件、定義なども含めて 4 件)。

印の意味: ✓公理まで証明済み ・ △証明あり(閉包未完)・ ※主張のみ。テーマごとの集計は 閉包の状況。

前提をたどる 証明が使う定理・定義(直接 4 件)

▸ を開くと、その項目の証明が使う前提が出ます。深い先は各項目のページでたどれます。

これを使っている定理

証明で明示的に参照している定理は、まだありません。

関連するノック 1 問