在这个算法中我们发现,其实可以用完全二叉树的形式来表示分割的方法,每个出度为2的结点都代表一个被划分的三角形,而其左右孩子即为划分的边。比如图中的红色三角形,左孩子A2代表结点(V1,V2),右孩子A3代表(V2,V3),V123构成一个三角形。青色三角形,左孩子A1是(V0,V1),右孩子没有编号,代表红色三角形中的剩余边(V1,V3)。
再看上图b的图形,假如要在这个图形中得到最优子结构,即权值和最小,那么如果把这个n边形分成两个子多边形+一个三角形,那么这两个子多边形各自所划分的结构也应当是最优子结构,因为整体最优那么部分一定也是最优,否则如果部分有更优结构,整体就不会是最优结构。在这之中我们运用动态规划,不断地细分直到每个子结构不再可分割。
t[i][k]代表Vi-1~Vk的图形,t[k+1][j]代表Vk~Vj的图形,w(Vi-1VkVj)代表它们分出的三角形,三者之和正好为我们所求的划分权值之和,遍历所有分割方式取其中最小值即为最优值。