約束生成演算法
⑴ 7. 大規模線性規劃:行生成和Benders分解
行生成就是指的不斷添加約束的演算法。
因為在求解矩陣中,一個約束條件對應一行,因此添加約束條件的方法自然叫做行生成演算法。相對應的,添加變數的方法就叫做列生成演算法。
這一節先看行生成演算法,用在求解變數不多,但是約束條件特別多的情況下。
Benders分解(Benders Decomposition,BD)的基本思路是:使用 子問題(primal problem) 來尋找合適的約束不斷添加到 鬆弛主問題(relaxed master problem) 中。子問題可以給上界(UB),鬆弛主問題可以給下界(LB),不斷迭代就可以逐步找到最優解。具體可以參考論文: http://www.ie.boun.e.tr/~taskin/pdf/taskin_benders.pdf ,這里做一下簡單的概述:
問題模型是:
Benders分解將上述模型拆分為只包含x變數的子問題和只包含y變數的主問題。
子問題(SP)為:
min cx
s.t. Ax = b - By
使用對偶法求解子問題(DSP):
max α(b-By』)
s.t. Aα ≤ c
α無限制
這是個線性規劃問題,枚舉可行域{α : Aα≤c}的極點(I)和極方向(J)便可以求解了,上面DSP等價於:
min q
s.t. α i (b-By) ≤ q
α j (b-By) ≤ 0
q無限制
定義q(y)為SP問題的最優解,則原問題可以重新寫為如下主問題的形式:
min q(y)+fy
s.t. y∈Y
等價於下面的主問題(MP):
min q+fy
s.t. α i (b-By) ≤ q
α j (b-By) ≤ 0
y∈Y,q無限制
由於約束條件較多,因此α也是非常多的,直接上所有約束條件求解MP比較困難。因此從少量約束條件的鬆弛主問題開始,逐步把約束條件加上。
在下面的問題中,y∈{0,1}屬於復雜約束,因此將原問題按如圖的顏色拆分開。
一輪迭代後,UB = 23,LB = 8,還需要繼續迭代。後面的求解過程省略。
Benders分解法要求子問題必須為線性,而廣義Benders分解法(Generalized Benders Decomposition,GBD)針對這個問題作了改進。廣義Benders分解的問題模型是:
由於涉及到了非線性規劃,因此要用到拉格朗日法。求解的步驟是:
⑵ 列和生成約束演算法在雙層模型中的運用
一般建模軟體在平面層和三維層都有相控參數這一模塊,應用沉積相控制物性參數,最好粗化成輸出模型。比如在DIRECT裡面步驟是這樣的:1)提取單井相:按照優勢相的比例提取;按照優勢相門限值提取
⑶ 如何在遺傳演算法中設置變數約束條件
1、一般有兩種方法,一種是在生成初始種群時只生成滿足約束的個體;另一種是隨機產生個體,並且在隨後的操作中判斷個體是否滿足約束條件。
2、這是遺傳演算法的特點決定的;遺傳演算法是一種隨機搜索演算法,每次都因種群規模的不同、參數的不同而得到不同的結果。即便參數都相同,每次運算得到的近似最優解也不一定相同。一般取n次運算中的最好結果來作為最終的最優解。當然,如果你的約束條件設置不妥,或者參數設置不適當,那麼也會造成每次運算的近似最優解相差過大,且質量不高。這些都要注意。
3、我用MATLAB自己編寫遺傳演算法來解決問題,因為其自帶的工具箱比較固定,只能解決簡單、典型的問題。但你的問題稍加復雜時,工具箱的作用就發揮不出來。
⑷ 劉少華的代表性論著
主要著作:
1.《計算機地圖制圖原理與方法》,2006中國礦業大學出版社,共54.5萬字,本人為第二副主編,約撰寫12萬字。書號:ISBN 7-81107-214-9/P.6。
主要論文:
共發表學術論文30餘篇,其中第一作者文章20餘篇。
1 一種帶島嶼約束數據域的三角網剖分演算法研究. 第一作者. 計算機應用. [中文核心期刊]. 2003.4 ISSN 1001-9081/CN51-1307/TP
2 基於最小內角動態判定的簡單多邊形三角剖分. 第一作者. 計算機應用研究. [中文核心期刊] 2004.4 ISSN 1001-3695/CN51-1196/TP
3.約束Delaunay三角網生成演算法研究.. 第一作者.測繪通報. [中文核心期刊] 2004.3 ISSN 0494-0911/CN11-2246/P
4.約束數據域的Delaunay三角剖分演算法研究及應用 第一作者.計算機應用研究 [中文核心期刊] 2004.3 ISSN 1001-3695/CN51-1196/TP
5.TIN構建演算法的研究及OpenGL三維可視化 第一作者.計算機工程與應用 [中文核心期刊] 2003.6 ISSN 11002-8331/CN11-2127/TP
6.一種基於似三稜柱的三維地學空間建模及應用. 第一作者.工程勘察 [中文核心期刊] 2003.4 ISSN 1000-1433/CN11-2025/TU
7.三維地質建模及可視化研究. 第一作者. 桂林工學院學報. 2003.4 ISSN 1006-544X/ CN45-1214/PT
8.Delaunay三角網內插特徵點演算法研究. 第一作者.華東地質學院學報. 2002.9 ISSN 1000-2251/CN36-1034/P
9.Delaunay三角網嵌入約束線段演算法的研究及三維可視化.第一作者 華東地質學院學報 2003.3 ISSN 1000-2251/CN36-1034/P
10 Delaunay三角網中點目標快速定位演算法研究 第一作者 測繪科學 [中文核心] 2007.3 ISSN 1009-2307/CN11-4415/P
11 地層三維建模及OpenGL下三維可視化研究 第一作者 礦業研究與開發[中文核心] 2006.8 ISSN 1005-2763/CN43-1215/TD
12 地礦三維建模及可視化的研究 第一作者 中國礦業 [中文核心] 2005.10 ISSN 1004-4051/ CN11-3033/TD
13 GIS組件技術在測井曲線生成中的應用 第一作者 石油天然氣學報[中文核心] 2006.6 ISSN 1007-3817/CN42-1415/P
14 復雜地質體的三維建模與可視化的研究 第一作者 礦業研究與開發[中文核心] 2007.4 ISSN 1005-2763/CN43-1215/TD
15 Delaunay三角網內插多邊形演算法研究 第一作者 測繪科學技術學報[中文核心] 2007.8 ISSN 1673-6338 /CN41-1385/P
16 三維GIS數據模型在地層建模中的應用及可視化 第一作者 測繪信息與工程 2007.4 ISSN 1007-3817/CN42-1415/P
17 一種簡單多邊形Delaunay三角剖分的約束生長演算法 第一作者 長江大學學報(自然科學版) 2006.3 ISSN 1673-1409/CN42-1741/N
18 基於搜索范圍動態確定的TIN的一種構建演算法 第一作者 測繪與空間信息 2007.6 ISSN 1672-5867/CN 23-1520/P
19 基於Delauany三角網的泰森多邊形生成演算法研究 第一作者 長江大學學報(自然科學版) 2007.3 ISSN 1673-1409/CN42-1741/N
20 VC環境下多層次DEM的演算法實現 第一作者 城市勘測 2007.8 ISSN 1672-8262 /CN 42-1309/TU
21 測量數據採集傳輸中的串列通訊 第三作者 地礦測繪 2006.9 ISSN 1007-9394/CN53-1124/TD
22 塔里木盆地輪古西潛山油氣運聚及分布機理 第三作者 石油學報 [EI收錄] 2006.9 ISSN 0253-2697/CN11-2128/TE
23 隱蔽油氣藏勘探的信息集成系統 第二作者 石油學報 EI:05028786322(05年EI收錄) 2004.12 ISSN 0253-2697/CN11-2128/TE
24 基於GIS的油氣藏多學科綜合研究 第三作者 石油勘探與開發 EI:05469481489 2005.10 ISSN 1006-544X/CN45-1214/PT
⑸ 如何對dijkstra演算法添加約束
去年學通信網時候學了D演算法。 D演算法(Dijkstra演算法)是典型最短路演算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。Dijkstra演算法能得出最短路徑的最優解,但由於它遍歷計算的節點很多,所以效率低。 上面是書上說的。我的理解是,D演算法要指定某點為指定節點1,然後找其他點到該點的距離,然後再找這些距離中最短的一條,指定那條路線的那點為新的指定節點2,再找其他點(除指定節點1外)到指定節點2的距離,找出最短的,最短的那條的節點置為指定節點3,。。。。以此類推到最後一個節點。
⑹ 用matlab解決約束優化問題 急
對於類似a+b+c+d+e=1的約束,只能是盡量隨機又均勻地生成若干點,作為初始,來探索這個五維空間。對於a至d採用隨機生成的方式,e的值用1去減,如此可保證約束成立。同時生成a至d的方式要盡量合理,以保證e的期望值和分布狀態合理。
⑺ 如何隨機生成300個數,三個條件約束。
1。你可以生成6個隨機數,最後以各是 固定值減去前6位的和就可以了。生成的隨機數是0~1的,你在隨機數的後面再乘以定數就可以了。如7個數的和是186.5 ,你只要把前六個整數的和小於186.5 就可以了。
2.第二個應該同第一個一樣做法的。
3。生成一個只有一位小數的隨機數,再產生一個.05 或0的用隨機數兩個相加就可以了。
⑻ 有關遺傳演算法約束和演算法的問題
最後一個,肯定的
⑼ 如何在遺傳演算法中設置變數約束條件
1、首先打開matlab軟體,在「APP(應用)」選項卡中選擇「Optimization(優化)」工具箱。
⑽ 遺傳演算法中中約束條件怎麼處理呢
只要你的遺傳運算元選對,進化過程中上下限約束就能滿足;
若是其它連續性變數的線性或非線性約束,可採用罰函數法將這些約束加入目標函數(適應度函數)中,這樣就能保證最優解在約束范圍內。
若是存在0-1的變數(主要是在規劃中,某個東西建或不建),則進化過程就會產生較多不可行解,採用直接丟棄的方法固然可以,但是當不可行解多時,這種方法就使遺傳演算法失去它的優勢;所以就有學者提出了不可行解的修復策略,將不可行解通過某種方法轉換為可行解。那麼不同的優化問題解的修復策略都可能會不同,如果你設計了一個針對你所做問題的修復策略,那也就成了你的創新點之一了。
當然也有設計進化策略的研究,但這方面比較修復策略而言有難度。