凸三角形最優三角剖分

2022-08-16 23:18:21 字數 1402 閱讀 1929

(1)凸多邊形的三角剖分

:將凸多邊形分割成互不相交的三角形的弦的集合t。

(2)最優剖分

:         給定凸多邊形p,以及定義在由多邊形的邊和弦組成的三角形上的權函式w。要求確定該凸多邊形的三角剖分,使得該三角剖分中諸三角形上權之和為最小。  下圖為剖分案例。

若凸(n+1)邊形p=的最優三角剖分t包含三角形v0vkvn,1<=k<=n,則t的權為三個部分權之和:三角形v0vkvn的權,多邊形的權和多邊形的權之和。如下圖所示:

可以斷言,由t確定的這兩個子多邊形的三角剖分也是最優的。因為若有和更小權的三角剖分,將導致t不是最優三角剖分的矛盾。因此,凸多邊形的三角剖分問題具有最優子結構性質。

3、遞推關係:

設t[i][j],1<=ii-1,vi……vj}的最優三角剖分所對應的權值函式值,即其最優值。最優剖分包含三角形vi-1vkvj的權,子多邊形的權,子多邊形的權之和。

因此,可得遞推關係式:

凸(n+1)邊形p的最優權值為t[1][n]。

摘自:三角剖分的結構及其相關問題。

凸三角形的三角剖分與表示式的完全加括號之間具有十分密切的關係。 正如所看到的一樣, 矩陣連乘的最優計算次序等價於矩陣鏈的最優完全加括號方式。其實更加奇妙的地方是, 這些問題似乎都是乙個模子刻出來的! 其實本質原因就是因為它們所對應的完全二叉樹的同構性。   乙個表示式的完全加括號方式相應於一棵完全二叉樹, 稱為表示式的語法樹。 而恰恰恰好的是, 凸多邊形的剖分也可以用語法數表示。(請原諒「草灘小恪」畫圖功夫不行, 無法畫出對應的圖)

模板主要**:

//

t 記憶路徑, s 記錄最優路徑 w( , , )為權值函式

const

int maxn = 100

; void minweighttriangulation(int n, int t[100], int s[100

]) }}}

**如有疑問可參見「矩陣連乘」。

經典演算法 (三)帕斯卡三角形(楊輝三角形)

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在1654年發現這一規律的,比楊輝要遲393年,比賈憲遲600年。簡介 楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形。帕斯卡 1623 1662 是在165...

求大三角形中三角形個數

一道筆試程式設計題要求求乙個大三角形中所有小三角形的個數,大約是下面這種情況 首先想到是的將問題由求邊長為n的三角形個數 求邊長為n 1的三角形個數 求邊長為1的三角形個數 1,回溯求得所有三角形個數。但是再仔細一看因為有重疊三角形和倒置的三角形,所以這個方法不可行。接著找到三角形個數由三部分組成 ...

三角形面積

算是自己第一道正式寫的演算法幾何吧,先從簡單的開始吧,加油!描述 給你三個點,表示乙個三角形的三個頂點,現你的任務是求出該三角形的面積 輸入 每行是一組測試資料,有6個整數x1,y1,x2,y2,x3,y3分別表示三個點的橫縱座標。座標值都在0到10000之間 輸入0 0 0 0 0 0表示輸入結束...