問題文:
カーネル正方行列の集合 = {K1, K2, .., Kn} があるとします。行列 A が与えられたとき、行列の掛け算の最小量を含む積を見つけます。これにより、A = Ki * Kj * ... * Kz が得られます。
例:
Say we have these two matrices in the set of Kernel matrices:
K1 = (1 2) K2 = (5 6)
(3 4) (7 8)
Then we have a solution for A=K1*K2=(19 22) and also for B=K1*K1*K2=(105 122)
(43 50) (229 266)
解決策を見つけるために使用できる既存の C または C++ ライブラリはありますか? そうでない場合、既知のアルゴリズム/ヒューリスティックはありますか?
PSこれは宿題の質問でも、理論的な質問でも、その他のトロッコ的なものでもありません。これは、私が本業で取り組んでいるサイド プロジェクトで解決しなければならない実際の問題です。