導航:首頁 > 源碼編譯 > 線性整數規劃遺傳演算法

線性整數規劃遺傳演算法

發布時間:2022-07-07 15:56:50

『壹』 遺傳演算法能不能解決線性規劃順便舉個例子或者鏈接吧。

當然可以了,不過就是看你這個線性規劃的約束條件怎麼設置,一般可以在求適應度的時候設置為可行域外適應度值取一個足夠大的數

『貳』 線性規劃整數解有簡便方法嗎 線性規劃整數解除了用畫圖法還有什麼別的方法有隻用代數的方法嗎

整數線性規劃的解法總結
0-1整數線性規劃是整數線性規劃的特殊情況,在實際中有著廣泛的應用.雖然變數的取值只有兩個,但此類問題的求解卻意外的困難,下面把有關的一些解法總結一下.
1.窮舉法 把所有可能的解一一代入,然後比較滿足約束的解,使目標函數最達到最優的解是最優解.這不失為一種方法,但不是一種好方法.如果問題規模大,則無法在可接受的時間內求得最優解.這也是求解整數規劃的困難所在.
2.隱枚舉法I 是窮舉法的改進,其思路是先給出一個可行解,然後代入目標函數算出函數值得到一個上界(如果求最小值)或下界(如果是求最大值).然後一一檢驗其它的解,如果該解大於上界或小於下界,則不用檢驗可行性,因為它不可能是最優解,否則的話就要檢驗可行性,如果是可行解,則修改上界或下界,繼續檢驗其它的解,否則不用修改上界或下界,直接檢驗其它的解.這種方法通過上界或下界來控制是否需要進行可行性檢驗,提高了效率.但是,要找可行解也得花一定的時間,當約束和變數較多時,工作量異常的大,退一步來說,即使可行解比較容易找到,但其產生的上界太大,或是下界太小,則其過濾的效果也不明顯.這是這種方法的缺陷.
3.隱枚舉法II 這種方法先把問題轉化成標准型,然後按照分枝定界法的思想,盡量少的檢驗可行解來尋找最優解.這種方法比較麻煩,我在這里也描述不清楚,過幾天理解透了再來寫這一部分.
4.隱枚舉法III 這是在程冬時,張聲年在江西電力職業技術學院學報上發表的一篇文章《關於0-1型整數規劃的若干問題》中提出來的,大致的思路是:把所有可能的解都代入目標函數算出值,然後把這些目標函數值進行排序,如果是求最大值,則降序排列,如果是求最小值則升序排列.然後按這個順序一個一個的檢驗對應的解的可行性,當碰到第一個可行解時即得到最優解,因為其它的解不會優於此解了.這種方法的缺陷也是明顯的,如果變數為N個,則需求2的N次個目標函數值,然後還要進行排序,這又是項工作量很大的工作,再一個就是,如果排序結果是把可行解排在最後一個,那還是得進行2的N次方次檢驗.
4.啟發式演算法 遺傳演算法,蟻群演算法等都可歸於此類.這都是隨機演算法,說白了就是聽天由命,即使算出了最優解你也不知道是不是最優解,因為此類演算法的收斂性都只是依概率收斂的,真正在算的過程中是否已得到最優只有上帝知道.啟發式演算法是萬不得已的情況下才使用的,我們用這種方法只能保證得到的解比其它方法得到的好,但不一定就說得到了最優了.
0-1規劃的求解方法還在研究之中,也許你會發現一個有效的演算法.

『叄』 請幫忙用遺傳演算法編寫兩個求線性規劃的問題(題目見圖一和圖二)。

作!業!自!己!做!!!

『肆』 MatLab求解整數規劃

各種主流的方法不讓用,各種主流的程序也不讓用,老師到底想要你們做什麼?

MATLAB的整數規劃能力比較有限,早期主要就是0-1二值規劃的bintprog,後來遺傳演算法ga可以求解不帶等式約束的非線性規劃,再後來還有個整數線性規劃的函數intlinprog。第三方比較著名的有個個人作者編寫的分支定界法函數bnb20。

『伍』 matlab的遺傳演算法求解0-1整數規劃的程序

x = intlinprog(f,intcon,A,b,Aeq,beq)就可以了
用法舉例:
Write the objective function vector and vector of integervariables.
f = [-3;-2;-1];
intcon = 3;
Write the linear inequality constraints.
A = [1,1,1];
b = 7;
Write the linear equality constraints.
Aeq = [4,2,1];
beq = 12;
Write the bound constraints.
lb = zeros(3,1);
ub = [Inf;Inf;1]; % Enforces x(3) is binary
Call intlinprog.
x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)

『陸』 遺傳演算法的主要步驟

為了使用遺傳演算法來解決優化問題,准備工作分為以下四步[56,57,61]

7.4.1 確定問題的潛在解的遺傳表示方案

在基本的遺傳演算法中,表示方案是把問題的搜索空間中每個可能的點表示為確定長度的特徵串(通常是二進制串)。表示方案的確定需要選擇串長l和字母表規模k。在染色體串和問題的搜索空間中的點之間選擇映射有時容易實現,有時又非常困難。選擇一個便於遺傳演算法求解問題的表示方案經常需要對問題有深入的了解。

7.4.2 確定適應值的度量

適應值度量為群體中每個可能的確定長度的特徵串指定一個適應值,它經常是問題本身所具有的。適應值度量必須有能力計算搜索空間中每個確定長度的特徵串的適應值。

7.4.3 確定控制該演算法的參數和變數

控制遺傳演算法的主要參數有群體規模Pop-Size、演算法執行的最大代數N-Gen、交叉概率Pc、變異概率Pm和選擇策略R等參數。

(1)群體規模Pop-Size。群體規模影響到遺傳演算法的最終性能和效率。當規模太小時,由於群體對大部分超平面只給出了不充分的樣本量,所以得到的結果一般不佳。大的群體更有希望包含出自大量超平面的代表,從而可以阻止過早收斂到局部最優解;然而群體越大,每一代需要的計算量也就越多,這有可能導致一個無法接受的慢收斂率。

(2)交叉率Pc。交叉率控制交叉運算元應用的頻率,在每代新的群體中,有Pc·Pop-Size個串實行交叉。交叉率越高,群體中串的更新就越快。如果交叉率過高,相對選擇能夠產生的改進而言,高性能的串被破壞得更快。如果交叉率過低,搜索會由於太小的探查率而可能停滯不前。

(3)變異率Pm。變異是增加群體多樣性的搜索運算元,每次選擇之後,新的群體中的每個串的每一位以相等的變異率進行隨機改變。對於M進制串,就是相應的位從1變為0或0變為1。從而每代大約發生Pm·Pop-Size·L次變異,其中L為串長。一個低水平的變異率足以防止整個群體中任一給定位保持永遠收斂到單一的值。高水平的變異率產生的實質是隨機搜索。

比起選擇和交叉,變異在遺傳演算法中是次要的,它在恢復群體中失去的多樣性方面具有潛在的作用。例如,在遺傳演算法執行的開始階段,串中一個特定位上的值1可能與好的性能緊密聯系,也就是說從搜索空間中某些初始隨機點開始,在那個位上的值1可能一致地產生適應性度量好的值。因為越好的適應值與串中那個位上的值1相聯系,復製作用就越會使群體的遺傳多樣性損失。當達到一定程度時,值0會從整個群體中的那個位上消失,然而全局最優解可能在串中那個位上是0。一旦搜索范圍縮小到實際包含全局最優解的那部分搜索空間,在那個位上的值0就可能正好是達到全局最優解所需的。這僅僅是一種說明搜索空間是非線性的方式,這種情形不是假定的,因為實際上所有我們感興趣的問題都是非線性的。變異作用提供了一個恢復遺傳多樣性的損失的方法。

(4)選擇策略R。有兩種選擇策略。一是利用純選擇,即當前群體中每個點復制的次數比與點的性能值成比例。二是利用最優選擇,即首先執行純選擇,且具有最好性能的點總是保留到下一代。在缺少最優選擇的情況下,由於采樣誤差、交叉和變異,最好性能的點可能會丟失。

通過指定各個參數Pop-Size、Pc、Pm和R的值,可以表示一個特定的遺傳演算法。

7.4.4 確定指定結果的方法和停止運行的准則

當遺傳的代數達到最大允許代數時,就可以停止演算法的執行,並指定執行中得到的最好結果作為演算法的結果。

基本的遺傳演算法

1)隨機產生一個由固定長度字元串組成的初始群體。

2)對於字元串群體,迭代地執行下述步驟,直到選擇標准被滿足為止。

①計算群體中的每個個體字元串的適應值;

②實施下列三種操作(至少前兩種)來產生新的群體,操作對象的選取基於與適應度成比例的概率。

選擇:把現有的個體串按適應值復制到新的群體中。

交叉:通過遺傳重組隨機選擇兩個現有的子串進行遺傳重組,產生兩個新的串。

變異:將現有串中某一位的字元隨機變異產生一個新串。

3)把在後代中出現的最好適應值的個體串指定為遺傳演算法運行的結果。這一結果可以是問題的解(或近似解)。

基本的遺傳演算法流程圖如圖7-1所示。

『柒』 數學建模常用模型及其作用

1、蒙特卡羅演算法(該演算法又稱隨機性模擬演算法,是通過計算機模擬來解決問題的算
法,同時可以通過模擬可以來檢驗自己模型的正確性,是比賽時必用的方法)

2、數據擬合、參數估計、插值等數據處理演算法(比賽中通常會遇到大量的數據需要
處理,而處理數據的關鍵就在於這些演算法,通常使用Matlab作為工具)

3、線性規劃、整數規劃、多元規劃、二次規劃等規劃類問題(建模競賽大多數問題
屬於最優化問題,很多時候這些問題可以用數學規劃演算法來描述,通常使用Lindo、
Lingo軟體實現)

4、圖論演算法(這類演算法可以分為很多種,包括最短路、網路流、二分圖等演算法,涉
及到圖論的問題可以用這些方法解決,需要認真准備)

5、動態規劃、回溯搜索、分治演算法、分支定界等計算機演算法(這些演算法是演算法設計
中比較常用的方法,很多場合可以用到競賽中)

6、最優化理論的三大非經典演算法:模擬退火法、神經網路、遺傳演算法(這些問題是
用來解決一些較困難的最優化問題的演算法,對於有些問題非常有幫助,但是演算法的實
現比較困難,需慎重使用)
7、網格演算法和窮舉法(網格演算法和窮舉法都是暴力搜索最優點的演算法,在很多競賽
題中有應用,當重點討論模型本身而輕視演算法的時候,可以使用這種暴力方案,最好
使用一些高級語言作為編程工具)
8、一些連續離散化方法(很多問題都是實際來的,數據可以是連續的,而計算機只
認的是離散的數據,因此將其離散化後進行差分代替微分、求和代替積分等思想是非
常重要的)
9、數值分析演算法(如果在比賽中採用高級語言進行編程的話,那一些數值分析中常
用的演算法比如方程組求解、矩陣運算、函數積分等演算法就需要額外編寫庫函數進行調
用)
10、圖象處理演算法(賽題中有一類問題與圖形有關,即使與圖形無關,論文中也應該
要不乏圖片的,這些圖形如何展示以及如何處理就是需要解決的問題,通常使用Matlab
進行處理)

作用:
應用數學去解決各類實際問題時,建立數學模型是十分關鍵的一步,同時也是十分困難的一步。建立教學模型的過程,是把錯綜復雜的實際問題簡化、抽象為合理的數學結構的過程。要通過調查、收集數據資料,觀察和研究實際對象的固有特徵和內在規律,抓住問題的主要矛盾,建立起反映實際問題的數量關系,然後利用數學的理論和方法去分析和解決問題。這就需要深厚扎實的數學基礎,敏銳的洞察力和想像力,對實際問題的濃厚興趣和廣博的知識面。數學建模是聯系數學與實際問題的橋梁,是數學在各個領械廣泛應用的媒介,是數學科學技術轉化的主要途徑,數學建模在科學技術發展中的重要作用越來越受到數學界和工程界的普遍重視,它已成為現代科技工作者必備的重要能力之。

閱讀全文

與線性整數規劃遺傳演算法相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:579
python員工信息登記表 瀏覽:377
高中美術pdf 瀏覽:161
java實現排列 瀏覽:513
javavector的用法 瀏覽:982
osi實現加密的三層 瀏覽:233
大眾寶來原廠中控如何安裝app 瀏覽:916
linux內核根文件系統 瀏覽:243
3d的命令面板不見了 瀏覽:526
武漢理工大學伺服器ip地址 瀏覽:149
亞馬遜雲伺服器登錄 瀏覽:525
安卓手機如何進行文件處理 瀏覽:71
mysql執行系統命令 瀏覽:930
php支持curlhttps 瀏覽:143
新預演算法責任 瀏覽:444
伺服器如何處理5萬人同時在線 瀏覽:251
哈夫曼編碼數據壓縮 瀏覽:426
鎖定伺服器是什麼意思 瀏覽:385
場景檢測演算法 瀏覽:617
解壓手機軟體觸屏 瀏覽:350