動態規劃 凸多邊形最優三角形剖分

2021-10-04 22:59:44 字數 1346 閱讀 4508

①通常,用多邊形頂點的逆時針序列表示凸多邊形,即p=表示具有n條v0v1、 v1v2、 … vn-1vn的凸多邊形。其中,約定v0=vn。

②多邊形的三角剖分是指將多邊形分割成互不相交的三角形的弦的集合t。

凸多邊形最優三角剖分問題:給定凸多邊形p=,以及定義在由凸多邊形的邊和弦組成的三角形上的權函式w,要求確定該凸多邊形的三角剖分,使得該三角剖分所對應的權,即三角剖分中諸三角形上權之和為最小。

1.分析:這個問題類似於矩陣連乘的最小乘積次數的問題。1.矩陣連乘:

①對於矩陣 1~n 陣列元素a[i] 表示第i+1個矩陣的行,其中a[n] 表示第n個矩陣的列。

②每每將乙個連乘的式子劃分成兩個部分a[i:k] a[k+1:j],產生的「權值」(乘法計算次數)是a[i-1] a[k] a[j]

2.凸多邊形剖分:

①對於每個多邊形v[i:j],i表示第乙個頂點,j表示最後乙個頂點。

②每每劃一條弦vivk,將多邊形分成兩個子多邊形v[i:k] v[k:j]產生的權值是w(i,k,j)

可以用下面的樹結構表示這個過程:

2.最優子結構:

假設 v0 vn vk 是包含在最優解中, 那麼劃分出來的兩個子多邊形的最優解也是包含在最優解中的。

在這個問題中k的選取範圍:[1:n+1]

3.狀態轉移方程:

首先,定義t[i][i] (1≤i

template

<

class

type

>

void

minweighttriangulation

(int n, type *

*t,int

**s)}}

}}

凸多邊形最優三角剖分 動態規劃

解答 題目中頂點座標編號從1開始,為了方便程式設計,將頂點從0開始,頂點的編號變為0到7。定義t i j 0 由於退化的兩點多邊形的權值為0,t i i 0。最優子結構的性質,t i j 的值是t i k 的值加上t k j 的值,再加上三角形vivkvj的權值,其中,it i j t i k t ...

凸多邊形最優三角剖分 動態規劃

凸多邊形最優分割是典型的動態規劃問題 凸多邊形最優剖分 給定凸多邊形,以及定義在由多邊形的邊和弦上的權函式,使得該多邊形三角剖分後所有三角形權值之和最小。思路 先將多邊形三角剖分 2 三角剖分 最優子結構性質 若n 1邊形的最優三角剖分包含三角形v0vkvn 1 k n 則t的權為三個部分權之和 三...

動態規劃 凸多邊形最優三角剖分

在這裡,權值可以是任何和弦長,邊長有關的權函式,一般來說,我們使用三角形的邊長作為權值。在這個問題中,是具有最優子結構的。設一共有n邊的凸多邊形點的集合為,在以v0和vn 1為底的情況下,求k 0,n 1 使v0,vn 1,vk組成的三角形權值最小。這樣,剩下的兩個點集和就可以組成新的凸多邊形。在其...