わかりました、誰かが私にこれを説明してくれることを願っています。決勝に向けて勉強しているのですが、何かがよくわかりません。
問題は動的計画法です。最適な二分探索木 (OBST) を構築します。私は一般的に動的計画法を理解し、特にこの問題の概念を理解していますが、この問題の再帰的な形式は理解していません。
これらのノードのサブセットの増加に合わせて最適なバイナリ検索ツリーを構築し、再計算を避けるために、テーブルに答えを保持していることがわかります。また、a_{k} でツリーをルート化すると、a_{1} から a_{k-1} までの成功したすべてのノードと、それに対応する架空の失敗したノード (つまり、ツリーの葉) が左のサブツリー、右のサブツリーのサブツリーは a_{k+1} から a_{n} までです。
私が理解していない方程式の再帰的な形は次のとおりです。
c(i, j) = min (i < k <= j) {c(i, k-1) + c(k, j) + p(k) + w(i, k-1) + w(k +j)}
ここで、w(i, j) = q(i) + i+1 から j までの合計 (q(l) + p(l))。
したがって、c(i,j) では、左から右に、左のサブツリーのコスト + 右のサブツリーのコスト + ルートの検索が成功する確率 + w(i, k-1) + w(k +j) になります。
私の混乱は、c(i、k-1)がw(i、k-1)とどのように異なるかです。
テキストは Horowitz、Sahni、および Rajasekeran による Computer Algorithms ですが、OBST で CLRS を読んだり、オンラインで検索したりしましたが、方程式のこれらの部分の違いをうまく説明するものは見つかりませんでした。