當前位置:首頁 » 操作系統 » 目標演算法優化

目標演算法優化

發布時間: 2022-04-21 08:11:19

1. 為什麼在多目標優化時選擇遺傳演算法,而不用其他演算法

會說不可以用其他演算法了,遺傳演算法最精華就在於fitness,要是多目標優化也是把多個目標融合在一起 變成一個目標 然後再結合實際目標意義(越大越優,越小越優)進行計算fitness。至於優點,在大多數智能搜索演算法裡面,遺傳演算法的全局最優概率最大!

2. 數學建模中的多目標優化問題該怎麼選擇方法

這很正常,復雜問題的求解往往採用先選取一個初始解,然後採用某種演算法進行迭代的方式。fgoalattain函數應該就是採用這種方式。和傳統的求解方式不同,這種方式求解並不能准確的得到最優解,而是通過演算法向最優解逼近。演算法的不同、初始解的不同以及迭代的次數都有可能影響到最終解,所以得到不同的解也是很正常的。

3. 多目標優化演算法的多目標是什麼意思

多目標優化的本質在於,大多數情況下,某目標的改善可能引起其他目標性能的降低,同時使多個目標均達到最優是不可能的,只能在各目標之間進行協調權衡和折中處理,使所有目標函數盡可能達到最優,而且問題的最優解由數量眾多,甚至無窮大的Pareto最優解組成。

4. 如何用粒子群優化(PSO)演算法實現多目標優化

粒子群演算法,也稱粒子群優化演算法(ParticleSwarmOptimization),縮寫為PSO,是近年來發展起來的一種新的進化演算法(EvolutionaryAlgorithm-EA)。PSO演算法屬於進化演算法的一種,和模擬退火演算法相似,它也是從隨機解出發,通過迭代尋找最優解,它也是通過適應度來評價解的品質,但它比遺傳演算法規則更為簡單,它沒有遺傳演算法的「交叉」(Crossover)和「變異」(Mutation)操作,它通過追隨當前搜索到的最優值來尋找全局最優。這種演算法以其實現容易、精度高、收斂快等優點引起了學術界的重視,並且在解決實際問題中展示了其優越性。粒子群演算法是一種並行演算法。

5. 學習多目標優化需要掌握哪些python知識

多目標優化

目標優化問題一般地就是指通過一定的優化演算法獲得目標函數的最優化解。當優化的目標函數為一個時稱之為單目標優化(Single-
objective Optimization Problem,
SOP)。當優化的目標函數有兩個或兩個以上時稱為多目標優化(Multi-objective Optimization Problem,
MOP)。不同於單目標優化的解為有限解,多目標優化的解通常是一組均衡解。

多目標優化演算法歸結起來有傳統優化演算法和智能優化演算法兩大類。
1. 傳統優化演算法包括加權法、約束法和線性規劃法等,實質上就是將多目標函數轉化為單目標函數,通過採用單目標優化的方法達到對多目標函數的求解。
2. 智能優化演算法包括進化演算法(Evolutionary Algorithm, 簡稱EA)、粒子群演算法(Particle Swarm Optimization, PSO)等。

Pareto最優解:

若x*∈C*,且在C中不存在比x更優越的解x,則稱x*是多目標最優化模型式的Pareto最優解,又稱為有效解。
一般來說,多目標優化問題並不存在一個最優解,所有可能的解都稱為非劣解,也稱為Pareto解。傳統優化技術一般每次能得到Pareo解集中的一個,而
用智能演算法來求解,可以得到更多的Pareto解,這些解構成了一個最優解集,稱為Pareto最優解。它是由那些任一個目標函數值的提高都必須以犧牲其
他目標函數值為代價的解組成的集合,稱為Pareto最優域,簡稱Pareto集。

Pareto有效(最優)解非劣解集是指由這樣一些解組成的集合:與集合之外的任何解相比它們至少有一個目標函數比集合之外的解好。

求解多目標優化問題最有名的就是NSGA-II了,是多目標遺傳演算法,但其對解的選擇過程可以用在其他優化演算法上,例如粒子群,蜂群等等。這里簡單介紹一下NSGA-II的選擇演算法。主要包含三個部分:
1. 快速非支配排序
要先講一下支配的概念,對於解X1和X2,如果X1對應的所有目標函數都不比X2大(最小問題),且存在一個目標值比X2小,則X2被X1支配。
快速非支配排序是一個循環分級過程:首先找出群體中的非支配解集,記為第一非支配層,irank=1(irank是個體i的非支配值),將其從群體中除去,繼續尋找群體中的非支配解集,然後irank=2。
2. 個體擁擠距離
為了使計算結果在目標空間比較均勻的分布,維持種群多樣性,對每個個體計算擁擠距離,選擇擁擠距離大的個體,擁擠距離的定義為:
L[i]d=L[i]d+(L[i+1]m−L[i−1]m)/(fmaxm−fminm)
L[i+1]m是第i+1個個體的第m目標函數值,fmaxm 和 fminm是集合中第m個目標函數的最大和最小值。
3. 精英策略選擇
精英策略就是保留父代中的優良個體直接進入子代,防止獲得的Pareto最優解丟失。將第t次產生的子代種群和父代種群合並,然後對合並後的新種群進行非支配排序,然後按照非支配順序添加到規模為N的種群中作為新的父代。

6. 優化演算法有哪些

你好,優化演算法有很多,關鍵是針對不同的優化問題,例如可行解變數的取值(連續還是離散)、目標函數和約束條件的復雜程度(線性還是非線性)等,應用不同的演算法。

對於連續和線性等較簡單的問題,可以選擇一些經典演算法,例如梯度、Hessian 矩陣、拉格朗日乘數、單純形法、梯度下降法等;而對於更復雜的問題,則可考慮用一些智能優化演算法,例如你所提到的遺傳演算法和蟻群演算法,此外還包括模擬退火、禁忌搜索、粒子群演算法等。

這是我對優化演算法的初步認識,供你參考。有興趣的話,可以看一下維基網路。

7. 經濟最優單目標遺傳優化演算法怎麼實現

我給你一個標准遺傳演算法程序供你參考:
該程序是遺傳演算法優化BP神經網路函數極值尋優:
%% 該代碼為基於神經網路遺傳演算法的系統極值尋優
%% 清空環境變數
clc
clear

%% 初始化遺傳演算法參數
%初始化參數
maxgen=100; %進化代數,即迭代次數
sizepop=20; %種群規模
pcross=[0.4]; %交叉概率選擇,0和1之間
pmutation=[0.2]; %變異概率選擇,0和1之間

lenchrom=[1 1]; %每個變數的字串長度,如果是浮點變數,則長度都為1
bound=[-5 5;-5 5]; %數據范圍

indivials=struct('fitness',zeros(1,sizepop), 'chrom',[]); %將種群信息定義為一個結構體
avgfitness=[]; %每一代種群的平均適應度
bestfitness=[]; %每一代種群的最佳適應度
bestchrom=[]; %適應度最好的染色體

%% 初始化種群計算適應度值
% 初始化種群
for i=1:sizepop
%隨機產生一個種群
indivials.chrom(i,:)=Code(lenchrom,bound);
x=indivials.chrom(i,:);
%計算適應度
indivials.fitness(i)=fun(x); %染色體的適應度
end
%找最好的染色體
[bestfitness bestindex]=min(indivials.fitness);
bestchrom=indivials.chrom(bestindex,:); %最好的染色體
avgfitness=sum(indivials.fitness)/sizepop; %染色體的平均適應度
% 記錄每一代進化中最好的適應度和平均適應度
trace=[avgfitness bestfitness];

%% 迭代尋優
% 進化開始
for i=1:maxgen
i
% 選擇
indivials=Select(indivials,sizepop);
avgfitness=sum(indivials.fitness)/sizepop;
%交叉
indivials.chrom=Cross(pcross,lenchrom,indivials.chrom,sizepop,bound);
% 變異
indivials.chrom=Mutation(pmutation,lenchrom,indivials.chrom,sizepop,[i maxgen],bound);

% 計算適應度
for j=1:sizepop
x=indivials.chrom(j,:); %解碼
indivials.fitness(j)=fun(x);
end

%找到最小和最大適應度的染色體及它們在種群中的位置
[newbestfitness,newbestindex]=min(indivials.fitness);
[worestfitness,worestindex]=max(indivials.fitness);
% 代替上一次進化中最好的染色體
if bestfitness>newbestfitness
bestfitness=newbestfitness;
bestchrom=indivials.chrom(newbestindex,:);
end
indivials.chrom(worestindex,:)=bestchrom;
indivials.fitness(worestindex)=bestfitness;

avgfitness=sum(indivials.fitness)/sizepop;

trace=[trace;avgfitness bestfitness]; %記錄每一代進化中最好的適應度和平均適應度
end
%進化結束

%% 結果分析
[r c]=size(trace);
plot([1:r]',trace(:,2),'r-');
title('適應度曲線','fontsize',12);
xlabel('進化代數','fontsize',12);ylabel('適應度','fontsize',12);
axis([0,100,0,1])
disp('適應度 變數');
x=bestchrom;
% 窗口顯示
disp([bestfitness x]);

8. 請推薦幾本多目標優化演算法的書

《基於微粒群演算法的堆石壩壩料參數反演分析》 ·《基於演化演算法的多目標優化方法及其應用研究》 ·《粒子群優化演算法的理論分析與應用研究》 ·《多目標遺傳演算法及其在發動機控制系統設計中的應用》

9. 關於粒子群演算法的目標函數優化,優化函數如下圖

粒子群演算法的目標函數極小點程序
( ) 2 用牛頓法求 f ( X ) ? x12 ? 2 x2 ? ln(x1 x2 ? 1) 的極小點,分別設 X 0 =[2,1.5]T

和 X(0)=[1.5,2]T,終止條件為 g ? 10?5 。
解:先求得 f(x)的梯度? 和海瑟矩陣?2 , 根據牛頓法的迭代公式 +1 = ? ?2 ?1 ? ( = 0,1,2 … … ) ?6 經過反復迭代直至||? ||≤ 10 ,得到極小值。 牛頓法的 M 文件如下:
syms x1 x2 f=x1^2+2*x2^2-log(x1*x2-1); v=[x1,x2]; x01=2; x02=1.5; g=jacobian(f,v); G=jacobian(g,v); g1=subs(subs(g,x01),x02); disp(g1); G1=subs(subs(G,x01),x02); dd=norm(g1); dd=vpa(dd,7); x1=x01;x2=x02; x=[x1,x2]; n=0; while(dd>0.000001) G1=inv(G1); x=x-g1*G1; g1=subs(subs(g,x(1)),x(2)); G1=subs(subs(G,x(1)),x(2)); x=x; dd=norm(g1); dd=vpa(dd,7); n=n+1; end x1=x(1);x2=x(2); f=x1^2+2*x2^2-log(x1*x2-1); f=vpa(f,7); disp('f='); disp(f); x=vpa(x,7); disp('x='); disp(x); disp('n=')

10. 多目標優化演算法有哪些

主要內容包括:多目標進化演算法、多目標粒子群演算法、其他多目標智能優化演算法、人工神經網路優化、交通與物流系統優化、多目標生產調度和電力系統優化及其他。

熱點內容
廣饒編程 發布:2024-04-29 20:39:07 瀏覽:120
長城伺服器管理口ip 發布:2024-04-29 20:15:24 瀏覽:375
java靜態成員變數 發布:2024-04-29 20:04:52 瀏覽:874
現代伊蘭特女生選哪個配置 發布:2024-04-29 19:59:44 瀏覽:508
d盤不能訪問許可權 發布:2024-04-29 19:41:56 瀏覽:415
考試版腳本 發布:2024-04-29 19:33:43 瀏覽:64
html編譯成JavaScript 發布:2024-04-29 00:00:15 瀏覽:367
html編譯器手機 發布:2024-04-28 23:59:22 瀏覽:518
大宇精雕機的密碼是多少 發布:2024-04-28 23:50:02 瀏覽:457
androidapi查詢 發布:2024-04-28 23:44:06 瀏覽:58