當前位置:首頁 » 操作系統 » 遺傳演算法罰函數

遺傳演算法罰函數

發布時間: 2022-05-10 01:44:29

1. 遺傳演算法中在進行輪盤選擇之前按適應度函數進行排名,請問不可行解怎麼排序詳細點兒

一般來說,三種方法可以處理不可行解,一種是直接刪除,一種是修復編碼,一種是採用罰函數懲罰不可行解的適應度值。
直接刪除會導致種群規模縮減,減少種群多樣性,導致早熟,除非對小規模問題求解,否則一般不採用
修復編碼需要自己根據具體問題研究修復的方法,最好不要將所有的不可行解修復成基本一樣,這樣會減小多樣性,導致早熟,建議採用多種修復方法並用,可以擴大搜索范圍。實際上,對於多數問題,修復方法一般很難確定,所以比較難以應用。
罰函數法是處理不可行解比較好的辦法,不可行解的適應度值加以懲罰,使之變小,不僅可以使得不可行解漸漸被淘汰,還可以充分利用不可行解中的優秀基因,擴大種群多樣性。唯一問題在於需要確定懲罰方法以及懲罰強度,過高的懲罰強度導致尋優過程變成尋找可行解過程,而過低的懲罰強度會導致無法淘汰不可行解。

實際上,對多數問題,可以有很多的編碼方式,需要充分研究編碼方式及交叉和變異的操作方法。在這上面做文章可以大大改善不可行解的問題。
舉個例子,組合優化問題中一般採用0-1編碼,切點交叉,及0-1換位變異,但如果約束中要求固定數目,則經過基因操作後會產生其他數目的組合解,成為不可行解。
對此,可以採用位置編號編碼,則可固定數目。

2. 地下水管理模型求解方法研究進展

在通常情況下,無論是地下水系統的狀態方程,還是管理模型的目標函數或約束條件,圴常具有非線性、多峰性、不連續等特徵,這給求解管理模型帶來了困難;而傳統的優化方法首先要將非線性問題進行線性近似,使得其解強烈依賴於管理模型目標函數的初值和梯度[52]。當目標函數不連續或不可導時,尤其是在分布參數地下水管理模型中涉及經濟或環境因素,會使模型更為龐大而復雜,以致傳統的優化方法無法解決[53]

近年來,最優化技術有了很大的進展,一些基於試探式具有全局尋優特點的求解方法被應用於地下水管理之中,如遺傳演算法、模擬退火演算法、人工神經網路演算法、禁忌搜索演算法以及一些混合智能演算法等。

1.2.3.1 遺傳演算法(Genetic Algorithm,GA)

遺傳演算法是20世紀70年代初期由Holland等人創立,並由Goldberg發展完善起來的一種新型尋優方法[54]。遺傳演算法求解地下水管理模型時,不要求地下水系統必須是線性的,因而更適合求解復雜地下水系統的管理問題。目前,國內外已將遺傳演算法應用到地下水管理的各個領域。

McKinney等[55]用遺傳演算法求解了3個地下水管理問題:含水層最大抽水量,最低抽水費用及含水層修復的最低費用;Katsifarakis等[56,57]結合邊界元法和遺傳演算法求三類經常遇到的地下水流和溶質運移問題的最優解,即確定導水系數、最小化抽水費用及污染羽的水動力控制;Morshed等[58]綜述了遺傳演算法在地下水管理方面的應用,並提出了一些改進方法;Cai等[59]將遺傳演算法和線性規劃相結合,求解大型非線性水資源管理模型,先用遺傳演算法識別出復雜的變數,這些變數不變時,問題趨於線性化,然後用線性規劃分段求解水資源管理模型;Zheng等[60]採用遺傳演算法求解由響應矩陣法建立的地下水修復系統優化設計模型;Ines等[61]結合遙感和遺傳演算法對灌區的水管理進行優化。近年來,國內學者邵景力等[62]以山東省羊庄盆地地下水非線性管理模型為例,介紹了應用遺傳演算法求解這類問題的具體步驟;崔亞莉等[63]以山東省羊庄盆地3個水源地總抽水量最大為目標建立了地下水管理模型,採用遺傳演算法進行求解。

需要指出的是,遺傳演算法是一種近似演算法和全局優化演算法,其收斂速度和解的精度受控於該演算法的某些參數選取;對於大規模、多變數的地下水管理問題,其收斂速度較慢,計算時間長,這是遺傳演算法在求解復雜地下水管理模型的不足之處。

1.2.3.2 模擬退火演算法(Simulated Annealing Algorithm,SAA)

模擬退火演算法是局部搜索演算法的擴展,它不同於局部搜索演算法之處是以一定的概率選擇鄰域中目標函數值好的狀態。理論上來說,它是一個全局優化演算法,它通過模擬金屬物質退火過程與優化問題求解過程的相似性,另闢了求解優化問題新途徑[64]。模擬退火演算法已被應用到地下水管理領域。

Wang等[65]分別用遺傳演算法和模擬退火演算法求解了地下水管理模型,並通過與線性規劃、非線性規劃和微分動態規劃方法的計算結果相對比,評價了兩種演算法的優缺點。Dougherty等[66]介紹了模擬退火演算法在地下水管理中的應用。Rizzo等[67]用模擬退火演算法求解了多時段地下水修復的管理問題,並應用了一個價值函數以加速演算法搜索速度。Cunha[68]用模擬退火演算法求解了地下水管理問題,使在滿足需求的條件下選擇供水設備,使總安裝費用和經營費用最低。Kuo等[69]提出了基於田間灌水制度和模擬退火演算法的模型進行農業水資源管理。Rao等[70,71]運用SEAWAT建立了地下水流和溶質運移模型,並採用模擬退火演算法求解地下水管理問題。

模擬退火演算法的實驗性能具有質量高、初值魯棒性強、通用易實現的優點,但為尋到最優解,模擬退火演算法往往優化時間比較長,這也是此演算法最大的缺點[72]

1.2.3.3 人工神經網路演算法(Artificial Neural Network,ANN)

人工神經網路演算法是一門新興的學科,從20世紀40年代提出基本概念以來得到了迅速的發展。人工神經網路法屬於集中參數模型,是模擬人腦工作模式的一種智能仿生模型,可以對信息進行大規模並行處理;具有自組織、自適應和自學習能力,以及具有非線性、非局域性等特點;而且善於聯想、概括、類比和推理,能夠從大量的統計資料中分析提煉實用的統計規律[73]

在地下水管理中,由於含水層性質的空間變異性所導致的數據多變性和參數的不確定性以及水文地質數據的不完備性,使得一些精確分析方法在表達地下水資源系統各部分之間的非線性關繫上具有很大的局限性。ANN技術的引入,對地下水管理模型的應用研究有著很大的促進作用。1992年,Rogers在博士論文中首先提出利用人工神經網路技術進行地下水優化管理,並在模型訓練與識別中使用了遺傳演算法。此後,陸續有些學者在這一領域進行了大量研究。Ranjithan等[74]用人工神經網路模型對滲透系數不確定性條件下的地下水回灌方案進行優化研究;Coppola等[75]成功地把人工神經網路運用到3種地下水預測問題中,求解復雜地下水管理問題;Parida等[76]用人工神經網路預測水資源管理中的徑流系數。

需要強調的是,ANN模型並不是對非線性過程的真實描述,不能反映系統的真實結構,因而不能最終完全替代系統的機理模型。ANN模型的這一本質是在建立各類地下水非線性系統管理模型時都必須首先考慮的。目前我國在地下水資源管理研究中對ANN技術的應用和研究還比較少,特別是在地下水資源管理中ANN技術的綜合應用方面,與國外相比,還有一定的差距。

1.2.3.4 禁忌搜索演算法(Tabu Search Algorithm,TSA)

禁忌搜索演算法的逐步尋優思想最早由Glover[77]提出,它是對局部鄰域搜索的一種擴展,是一種全局演算法,是對人類智力過程的一種模擬。禁忌搜索演算法通過引入一個靈活的存儲結構和相應的禁忌准則來避免迂迴搜索,並通過藐視准則來赦免一些被禁忌的優良狀態,進而保證多樣化的有效探索以最終實現全局優化。

Zheng等[78]聯合禁忌搜索演算法和線性規劃方法求解了地下水污染的修復設計問題,主要應用了禁忌搜索的優點(在優化離散井位時更有效)和線性規劃的優點(在優化連續抽水量時更有效);Zheng等[79]分別用禁忌搜索演算法和模擬退火演算法進行最優參數結構識別,並評價和比較了兩種方法的有效性和靈活性;Lee等[80]給出了八種求解非線性整數規劃問題的啟發式演算法的經驗比較,在監測網設計中的應用結果表明,模擬退火演算法和禁忌搜索演算法表現比較突出;楊蘊和吳劍鋒等[81]將禁忌搜索演算法和遺傳演算法分別應用於求解地下水管理模型,其結果表明禁忌搜索計算效率高於遺傳演算法。

禁忌搜索演算法對初始解有較強的依賴性,好的初始解可使禁忌搜索在解空間搜索到好的解,而較差的初始解則會降低禁忌搜索的收斂速度。禁忌搜索能否在實際問題中應用好,要充分考慮初始解對優化結果的影響,這方面還有待於進一步的研究。此外,迭代搜索過程是串列的,僅是單一狀態的移動,而非並行搜索,這就使得演算法的優化時間往往較長,為了改善尋優效率,目前的趨勢是把禁忌搜索與其他啟發式方法結合起來,比如把禁忌搜索演算法與遺傳演算法結合等[82,83]

1.2.3.5 混合智能演算法

模擬退火遺傳演算法(SAGA)是將遺傳演算法與模擬退火演算法相融合而產生的一種優化演算法。Sidiropoulos等[84]用模擬退火演算法和遺傳演算法研究了以抽水費用最小為目標的地下水管理問題,最後提出了地下水管理模型更有效的解法——模擬退火遺傳演算法;Shieh等[85]應用模擬退火遺傳演算法進行了原位生物修復系統的最優化設計研究;韓萬海等[86]用模擬退火遺傳演算法進行了石羊河流域的水資源優化配置研究;潘林[87]等應用模擬退火遺傳演算法對某灌區的灌溉水量進行了最優分配;吳劍鋒等[88]運用遺傳演算法,同時用模擬退火罰函數方法處理約束條件,求解了地下水管理模型,並將該方法成功地應用於徐州市地下水資源評價與管理模型之中,取得了較為滿意的結果。模擬退火遺傳演算法不但克服了基於梯度尋優演算法的缺點,而且通過模擬退火過程,保證能夠有效地求得問題在可行域上的最優解(或接近最優解)。然而在求解大型的多決策地下水優化管理問題時,如何減少群體規模,從而有效地提高遺傳演算法的尋優速度,還有待於進一步深入研究。

人工神經網路演算法和遺傳演算法相結合來求解地下水管理模型的研究也很多。Rogers等[89]用人工神經網路演算法和遺傳演算法進行最優地下水修復設計,用人工神經網路預測水流和溶質模擬結果;Aly等[90]提出了不確定條件下含水層凈化系統最優設計的方法——人工神經網路演算法和遺傳演算法;Brian[91]等將遺傳演算法與人工神經網路演算法相結合求解了具有線性目標函數的含水層系統水質管理問題,並將該方法與基於梯度函數的傳統演算法進行了比較。

此外,其他一些混合演算法也常應用於地下水管理問題中。Tung等[92]使用模式分類和禁忌搜索演算法相結合的方法研究了地下水開采管理問題;Hsiao等[93]應用遺傳演算法與約束微分動態規劃相結合的混合演算法求解了非承壓地下水含水層修復優化問題;Mantawy等[94]將遺傳演算法、禁忌搜索演算法和模擬退火演算法相結合求解單位運輸問題,演算法的核心是遺傳演算法,用禁忌搜索產生新種群,用模擬退火法加速收斂速度。

地下水管理模型求解的方法有很多,除文中提及的優化演算法外,近年來快速發展的智能方法,如混沌優化演算法、蟻群演算法等都為解決這一問題提供了新的思路。地下水資源系統本身是一個高度復雜的非線性系統,其功能與作用是多方面、多層次的;模型的輸入有確定的,也有隨機的。因此,為實現地下水更科學有效的管理,地下水管理模型的求解方法也必須更具有準確性和實用性。

3. ISIGHT中多島遺傳演算法配置參數問題

多島遺傳演算法是針對遺傳演算法早熟premature而提出的一個解決方法之一(把目標函數是個多極值的函數,遺傳演算法容易找到局部最優點,如果這樣就被成為「早熟」)。

多島遺傳演算法是在遺傳演算法的基礎上增加了許多個「島」,每個島上會有一些個體indivial,也就是是sub-population,並假設個體可以在每個島之間遷徙,具有遷徙能力的都是優秀的個體,也就是精英elite,這些個體具有優秀的基因,能幫助演算法跳出局部最優點,達到全局最優。想像下人類,人類在各個大陸之間遷徙,雜交,後代肯定比本地的聰明。

number of lslands就是島的數量,generations就是整個演算法的代數,crossover和mutation和經典遺傳演算法意義一樣,還有個遷徙率migration rate,遷徙率越高,那麼更多的個體會參與島和島之間的雜交,tourament就是輪盤賭法,penalty就是罰函數,用於處理邊界條件。

關於參數,推薦使用默認參數,這些都是通過大量論文實踐出來的。遺傳演算法雖然好,但是缺點也是明顯的:參數太多!只有在積累大量的經驗後才可以靈活地調整這些參數,你現階段明白啥意思就好。

想徹底理解遺傳演算法不難,親自在Matlab裡面編寫一遍就差不多了。

4. 遺傳演算法中罰函數的應用

哈哈哈,搞笑,一樓的回答原封不動地Copy了我之前在另外一個問題的答案,詳細見參考資料:
M越大F就越大那是正常的,因為是對不滿足約束的懲罰。
如果你的個體都是可行解,那麼F就等於f了。
對了,你是不是在遺傳演算法QQ群里跟我討論了老半天那位?

5. 遺傳演算法中中約束條件怎麼處理呢

只要你的遺傳運算元選對,進化過程中上下限約束就能滿足;
若是其它連續性變數的線性或非線性約束,可採用罰函數法將這些約束加入目標函數(適應度函數)中,這樣就能保證最優解在約束范圍內。
若是存在0-1的變數(主要是在規劃中,某個東西建或不建),則進化過程就會產生較多不可行解,採用直接丟棄的方法固然可以,但是當不可行解多時,這種方法就使遺傳演算法失去它的優勢;所以就有學者提出了不可行解的修復策略,將不可行解通過某種方法轉換為可行解。那麼不同的優化問題解的修復策略都可能會不同,如果你設計了一個針對你所做問題的修復策略,那也就成了你的創新點之一了。
當然也有設計進化策略的研究,但這方面比較修復策略而言有難度。

6. 優化作用的概述

優化作用的概述
ISIGHT中存在大量的優化演算法,每種優化演算法根據不同的分類,可以解決不同類型的問題。今天我們來看看ISIGHT都提供了哪些優化演算法,主要包括:AMGA、ASA、DownhillSimplex、Evol、Hooke-Jeeves、LSGRG、MISQP、MMFD、MOST、Multi-Island GA、Multi-Objective Particle Swarm、NCGA、NLPQL、NSGA-II、Pointer、Stress Ratio等,今天先總體簡單介紹一下,後續我會對每種優化演算法一一進行詳細介紹,敬請期待。
ISIGHT中的優化技術分為三類:
1.數值型優化技術(Numerical Optimization Techniques)
2.探索型優化技術(Exploratory Techniques)
3.專家系統技術(Exper System Techniques)
下面對這些優化技術中的優化方法一一進行介紹。
數值型優化技術
數值型優化技術通常假定參數空間是單峰的、凸的和連續的,ISIGHT中使用了如下的數值型優化技術如下,而數值型優化技術又分為直接法和罰函數法:
(1)直接法,在搜索過程中直接處理約束。
ADS(Automated Design Synthesis)-based Techniques
修正可行方向法(Modified Method of Feasible Directions)
連續線性規劃(Sequential Linear Programming)
廣義既約梯度法(Generalized Reced Gradient-LSGRG2)
可行方向法-CONMIN(Method of Feasible Directions-CONMIN)
混合整型優化-MOST(Mixed Integer Optimization-MOST)
連續二次規劃法-DONLP(Sequential Quadratic Programming-DONLP)
連續二次規劃法-NLPQL(Sequential Quadratic Programming-NLPQL)
逐次逼近法(Successive Approximation Method)
(2)罰函數法,給目標函數增加懲罰項,將約束問題轉換成無約束問題。
ADS(Automated Design Synthesis)-based Techniques
外點罰函數法(Exterior Penalty)
Hooke-Jeeves直接搜索法(Hooke-Jeeves Direct Search Method)
探索型優化技術
探索型優化技術避免了集中在局部區域的搜索,這些技術遍歷整個參數空間搜索全局最優設計點。ISIGHT中的這種技術包括:
遺傳演算法(Genetic Algorithm)
批處理遺傳演算法(Genetic Algorithm with Bulk Evaluation)
模擬退火演算法(Simulated Annealing)
專家系統技術
專家系統技術使優化沿著用戶定義的方向進行改變,改變哪一項?怎麼改變?什麼時候改變?這些都有用戶自己定義。
ISIGHT中這樣的技術為指導啟發式搜索方法(Directed Heuristic Search-DHS)。如果用戶知道輸入怎樣影響輸出結果的話,可以試試這種方法,效率很高。
至此,ISIGHT中的優化演算法概述就基本介紹到這,敬請期待優化演算法詳述……

7. 懂罰函數的請進,有約束優化遺傳演算法的目標函數問題

很顯然,f 才是目標函數值,而F只是適應度函數值,用來評價個體優劣的。
加上罰函數,僅僅是為了懲罰那些不滿足約束條件的個體,以此來解決約束優化問題。
但真正的目標函數是f,目的是f的值越小越好。

8. 遺傳演算法優化問題中,有關線性約束(非線性約束)怎麼在程序中實現

優化問題中解決約束一般採用罰函數的方法,這樣的論文很多,找一篇看看就知道怎麼了。大致意思是,要是某個個體離約束很近,或者就在約束上(滿足某個約束條件),那演算法就「懲罰」他一下,懲罰的措施多樣,可以讓這個個體參數全部重置,也可以讓這個個體等於某個極限值。
其他的約束方法大同小異。

9. 你好 可以把你的實屬編碼遺傳演算法的程序讓我看看嘛謝謝 我的QQ:631789824、謝謝

function [solution]=NGAschaffer()%基於罰函數的小生境遺傳演算法,實數編碼,線性重組,實值變異
NIND=120; %個體數目(Number of indivials)
NVAR=2; %變數的數目
FieldDR=[-10 -10;10 10];%變數的范圍
N=NIND/2; %設置排擠因子
Chrom=crtrp(NIND,FieldDR);%採用實數制隨機生成初始種群
ObjV=schaffer(Chrom(:,1),Chrom(:,2));%求出初始種群的目標函數
MAXGEN=500;
gen=0;
Pc=0.8;
Pm=0.1;
L=0.5; %設置小生境之間的距離參數
Penalty=10^(-40);%設置懲罰函數
RememberIndivials=sortrows([Chrom,ObjV],-(NVAR+1));
RememberIndivials=RememberIndivials(1:N,1:NVAR+1);%記憶前N個個體,不參加選擇、交叉、變異運算,將優秀個體保留在群體中
while gen<MAXGEN
FitnV=ranking(-ObjV);%計算個體適應度
SelCh=select('rws',Chrom,FitnV);%選擇、復制個體
Chrom=recombin('reclin',SelCh,Pc);
Chrom=mutbga(Chrom,FieldDR,Pm);
ObjV=schaffer(Chrom(:,1),Chrom(:,2));%求出重組後種群的目標函數值
ObjV=[RememberIndivials(:,NVAR+1);ObjV];
Chrom=[RememberIndivials(:,1:NVAR);Chrom];
FitnV=ObjV-min(ObjV)+eps;
%對M+N種群個體進行海明距離計算,並運用小生境排擠機制
for i=1:NIND+N-1
for j=i+1:NIND+N
d(i,j)=sqrt(sum((Chrom(i,1:NVAR)-Chrom(j,1:NVAR)).^2));
if d(i,j)<L
if FitnV(i,1)<FitnV(j,1);%對適應度較小的個體施加一個懲罰函數
FitnV(i,1)=Penalty;
else
FitnV(j,1)=Penalty;
end
end
end
end
BigChrom=sortrows([Chrom,ObjV,FitnV],-(NVAR+2));
RememberIndivials=BigChrom(1:N,1:NVAR+1);
Chrom=BigChrom(1:NIND,1:NVAR);
ObjV=BigChrom(1:NIND,NVAR+1);
gen=gen+1;
trace(gen,1)=max(ObjV);
if trace(gen,1)>0.999
break
end
end
plot(trace(:,1));
solution=max(trace(:,1));

熱點內容
數控折彎機如何編程 發布:2024-10-08 20:34:40 瀏覽:58
pod內部修改配置如何生效 發布:2024-10-08 20:25:33 瀏覽:234
重慶伺服器託管市場低價雲主機 發布:2024-10-08 20:23:39 瀏覽:361
運維接觸源碼 發布:2024-10-08 19:55:44 瀏覽:485
python怎麼輸出換行 發布:2024-10-08 19:42:19 瀏覽:416
dhcp伺服器源碼 發布:2024-10-08 19:42:07 瀏覽:737
Sql88 發布:2024-10-08 19:01:55 瀏覽:969
汽車參數配置怎麼看乾式離合 發布:2024-10-08 18:57:47 瀏覽:796
編譯器設計圖 發布:2024-10-08 18:53:36 瀏覽:189
x7買哪個配置的比較好 發布:2024-10-08 18:48:25 瀏覽:772