matlab 非支配排序,带精英策略的非支配排序的遗传算法改方法与流程
本發明涉及遺傳算法領域,尤其涉及一種帶精英策略的非支配排序的遺傳算法改方法。
背景技術:
NSGA2算法是Srinivas和Deb于2000年在NSGA算法的基礎上提出的,它比NSGA算法更加優越:它采用了快速非支配排序算法,計算復雜度比NSGA算法大大的降低;采用了擁擠度和擁擠度比較算子,代替了需要指定的共享半徑share Q,并在快速排序后的同級比較中作為勝出標準,使準Pareto域中的個體能擴展到整個Pareto域,并均勻分布,保持了種群的多樣性;引入了精英策略,擴大了采樣空間,防止最佳個體丟失。
但NSGA2采用的SBX(Simulated Binary Crossover)交叉算子和多項式變異的變異算子,搜索功能上相對較弱,收斂性不足,不能保持種群多樣性,容易出現局部最優和進化過程不穩定的情況。
技術實現要素:
針對上述現有技術中的不足,本發明提供一種帶精英策略的非支配排序的遺傳算法改方法,可改善NSGA2算法的搜索功能較弱,收斂性不足,容易出現局部最優和進化過程不穩定的情況。
為了實現上述目的,本發明提供一種帶精英策略的非支配排序的遺傳算法改方法,包括步驟:
S1:利用Matlab軟件將一算數交叉算子替代一NSGA2遺傳算法的SBX交叉算子;
S2:利用Matlab軟件將一基于質心的變異算子替代所述NSGA2遺傳算法的多項式變異形式的變異算子;
S3:利用Matlab軟件對所述NSGA2遺傳算法的一擾動向量權重λ進行改進。
優選地,所述算數交叉算子的表達式為:
其中,α表示第一算數交叉算子參數,β表示第二算數交叉算子參數,且α+β=1;α,β∈[-1,2];表示選中的父代種群中的個體;表示父代種群中的個體;t表示迭代次數。
優選地,所述基于質心的變異算子的表達式為:
其中,γ表示最佳個體的影響權重,γ∈[0,1];Xbest(t)表示父代的最佳個體;λ表示擾動向量權重;M表示擾動向量空間的大小,M等于種群中除了i這個個體以外的其他個體總數之和;表示從父代隨機選取的除了Xbest(t)以外的剩余個體;i表示種群中的一個體;Xnew(t+1)表示變異后新的第t+1子代個體;Xi(t)表示第t代種群中的個體;j表示種群中除了i這個個體以外的個體;a表示種群中除了i這個個體以外的一第一個體;b表示種群中除了i這個個體以外的一第二個體。
優選地,所述父代的最佳個體Xbest(t)滿足公式:
其中,N表示從第t代種群中隨機抽取的變異個體總數;fi(t)表示為對應的Xi個體的適應度值;Xi(t)表示第t代種群的第i個體。
優選地,所述S3步驟中,通過一公式(4)對所述擾動向量權重λ進行改進:
其中,k表示擾動隨機數,k=rand(0,1)。
本發明由于采用了以上技術方案,使其具有以下有益效果:
本發明在原有的NSGA2算法基礎上,在通過Matlab引入改進的算數交叉算子、基于質心的變異算子和改進的擾動向量權重,改善了現有NSGA2算法的搜索功能較弱,收斂性不足,以及容易出現局部最優和進化過程不穩定的情況。
附圖說明
圖1為本發明實施例的帶精英策略的非支配排序的遺傳算法改方法的流程圖;
圖2為NSGA2遺傳算法在ZDT1測試算法上的曲線圖;
圖3為通過本發明實施例的帶精英策略的非支配排序的遺傳算法改方法改進后的遺傳算法在ZDT1測試算法上的曲線圖;
圖4為NSGA2遺傳算法在ZDT2測試算法上的曲線圖;
圖5為通過本發明實施例的帶精英策略的非支配排序的遺傳算法改方法改進后的遺傳算法在ZDT2測試算法上的曲線圖;
圖6為NSGA2遺傳算法在ZDT3測試算法上的曲線圖;
圖7為通過本發明實施例的帶精英策略的非支配排序的遺傳算法改方法改進后的遺傳算法在ZDT3測試算法上的曲線圖。
具體實施方式
下面根據附圖1,給出本發明的較佳實施例,并予以詳細描述,使能更好地理解本發明的功能、特點。
請參閱圖1,本發明實施例的一種帶精英策略的非支配排序的遺傳算法改方法,包括步驟:
S1:利用Matlab軟件將一算數交叉算子替代一NSGA2遺傳算法的SBX交叉算子;
其中,算數交叉算子的表達式為:
其中,α表示第一算數交叉算子參數,β表示第二算數交叉算子參數,且α+β=1;α,β∈[-1,2];表示選中的父代種群中的個體;表示父代種群中的個體;t表示迭代次數。
NSGA2中采用的是SBX(Simulated Binary Crossover)交叉算子。SBX交叉算子模擬二進制交叉的過程,對實數編碼的父代個體進行交叉操作,即交換兩個父代個體位于給定隨機交叉點兩側的部份。但是使用SBX交叉過程中搜索能力較弱,無法保證種群的多樣性。本發明的一種帶精英策略的非支配排序的遺傳算法改方法,將算術交叉算子代入到Matlab軟件中替換原有算子,并增加約束范圍。
S2:利用Matlab軟件將一基于質心的變異算子替代NSGA2遺傳算法的多項式變異形式的變異算子;
優選地,基于質心的變異算子的表達式為:
其中,γ表示最佳個體的影響權重,γ∈[0,1],例如可取γ=0.5;Xbest(t)表示父代的最佳個體;λ表示擾動向量權重;M表示擾動向量空間的大小,M等于種群中除了i這個個體以外的其他個體總數之和;表示從父代隨機選取的除了Xbest(t)以外的剩余個體;i表示種群中的一個體;Xnew(t+1)表示變異后新的第t+1子代個體;Xi(t)表示第t代種群中的個體;j表示種群中除了i這個個體以外的個體;a表示種群中除了i這個個體以外的一第一個體;b表示種群中除了i這個個體以外的一第二個體。
公式(2)的等式右邊的第一項和第二項構成了差分向量,第三項為差分進化算法的擾動向量。擾動向量的作用是使種群發生隨機變異。
本實施例中,Xbest(t)的選擇引入質心理論的思想,父代的最佳個體Xbest(t)滿足公式:
其中,N表示從第t代種群中隨機抽取的變異個體總數;fi(t)表示為對應的Xi個體的適應度值;Xi(t)表示第t代種群的第i個體。
在遺傳算法中,變異算子是作為背景算子提出。在算法中引入變異算子,其局部隨機搜索性能會有所增強,向最優解收斂的速度會加快并可以保證解群的多樣性。所以進化算法的收斂性、穩定性、全局搜索能力等在很大的程度上要依賴于變異環節的性能。差分進化算法(Differential Evolution,DE)是一種全局優化算法,基于群體的啟發式搜索,它是由Storn等人在1995年提出,具有記憶個體最優解以及受控參數少的特點。差分進化算法與傳統的進化算法相比,前者引入一種特殊的變異算子,能對被選中個體的進化方向產生擾動,對尋找最優解有一定優勢。在NSGA2算法中,其采取多項式變異形式的變異算子,在變異程序過程中時有一定概率的情況下得到的解會超出約束條件。發生這種情況時,多項式變異操作會采用取端點值的方法來進行數據處理,但弊端是會減小種群的多樣性,收斂早熟。
S3:利用Matlab軟件對NSGA2遺傳算法的一擾動向量權重λ進行改進。
本實施例中,λ的選取具有一定隨機性,本發明中隨機擾動借鑒多項式變異,具體通過一公式(4)對擾動向量權重λ進行改進:
其中,k表示擾動隨機數,k=rand(0,1)。
本發明實施例的一種帶精英策略的非支配排序的遺傳算法改方法,引入了一種基于質心理論的變異算子,同時改進了算法的交叉算子和擾動向量權重。
請參閱圖2~圖7,圖中f1表示的是選取的函數值X1,f2表示的是適應度函數Y;同時將本發明實施例的一種帶精英策略的非支配排序的遺傳算法改方法標記為INSGA2,與現有的NSGA2算法在ZDT1、ZDT2以及ZDT3測試函數上進行實驗比對,對比結果請參閱表1,試驗結果表明改進的算法具有更好的收斂性能和分布性能,同時具有更快的收斂速度。
表1、INSGA2與NSGA2在ZDT1、ZDT2以及ZDT3測試函數上的測試對比表
以上結合附圖實施例對本發明進行了詳細說明,本領域中普通技術人員可根據上述說明對本發明做出種種變化例。因而,實施例中的某些細節不應構成對本發明的限定,本發明將以所附權利要求書界定的范圍作為本發明的保護范圍。
總結
以上是生活随笔為你收集整理的matlab 非支配排序,带精英策略的非支配排序的遗传算法改方法与流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LVGL开发|lv_lib_100ask
- 下一篇: VeryCD关闭音乐视频下载视频网站的正