當前位置:首頁 » 操作系統 » 遺傳演算法規劃

遺傳演算法規劃

發布時間: 2023-03-20 20:14:44

1. 代碼!!!--基於遺傳演算法在路徑規劃優化中的應用

遺傳演算法, 是人工智慧的一種演算法的。

以前圖書館有看到, 很多相關的書肢升亮的,不要寄望於自己什麼都不笑局做,歷寬就找人家幫忙啦。

2. 遺傳演算法路徑規劃是什麼原理

遺傳演算法有相當大的引用。遺傳演算法在游戲中應用的現狀在遺傳編碼時, 一般將瓦片的坐標作為基因進行實數編碼, 染色體的第一個基因為起點坐標, 最後一個基因為終點坐標, 中間的基因為路徑經過的每一個瓦片的坐標。在生成染色體時, 由起點出發, 隨機選擇當前結點的鄰居節點中的可通過節點, 將其坐標加入染色體, 依此循環, 直到找到目標點為止, 生成了一條染色體。重復上述操作, 直到達到指定的種群規模。遺傳演算法的優點:1、遺傳演算法是以決策變數的編碼作為運算對象,可以直接對集合、序列、矩陣、樹、圖等結構對象進行操作。這樣的方式一方面有助於模擬生物的基因、染色體和遺傳進化的過程,方便遺傳操作運算元的運用。另一方面也使得遺傳演算法具有廣泛的應用領域,如函數優化、生產調度、自動控制、圖像處理、機器學習、數據挖掘等領域。2、遺傳演算法直接以目標函數值作為搜索信息。它僅僅使用適應度函數值來度量個體的優良程度,不涉及目標函數值求導求微分的過程。因為在現實中很多目標函數是很難求導的,甚至是不存在導數的,所以這一點也使得遺傳演算法顯示出高度的優越性。3、遺傳演算法具有群體搜索的特性。它的搜索過程是從一個具有多個個體的初始群體P(0)開始的,一方面可以有效地避免搜索一些不必搜索的點。另一方面由於傳統的單點搜索方法在對多峰分布的搜索空間進行搜索時很容易陷入局部某個單峰的極值點,而遺傳演算法的群體搜索特性卻可以避免這樣的問題,因而可以體現出遺傳演算法的並行化和較好的全局搜索性。4、遺傳演算法基於概率規則,而不是確定性規則。這使得搜索更為靈活,參數對其搜索效果的影響也盡可能的小。5、遺傳演算法具有可擴展性,易於與其他技術混合使用。以上幾點便是遺傳演算法作為優化演算法所具備的優點。遺傳演算法的缺點:遺傳演算法在進行編碼時容易出現不規范不準確的問題。

3. 本科運用遺傳演算法進行路勁規劃,運用改進的遺傳演算法嗎

本科運用遺傳演算法進行路勁規劃,運用改進的不是遺傳演算法。
路徑規劃的研究的笑仿目的是對線路的最佳方式選擇,以及對成本控制。它的意義是可以提高效率棚鉛達到效益最大化,和遺傳演算法沒有關系,因此本科運用遺傳演算法進行路勁規劃,運用改進的不是遺傳算碰和纖法。
遺傳演算法便基於達爾文的進化論,模擬了自然選擇,物競天擇、適者生存,通過N代的遺傳、變異、交叉、復制,進化出問題的最優解。

4. 遺傳演算法的核心是什麼!

遺傳操作的交叉運算元。

在自然界生物進化過程中起核心作用的是生物遺傳基因的重組(加上變異)。同樣,遺傳演算法中起核心作用的是遺傳操作的交叉運算元。所謂交叉是指把兩個父代個體的部分結構加以替換重組而生成新個體的操作。通過交叉,遺傳演算法的搜索能力得以飛躍提高。

交叉運算元根據交叉率將種群中的兩個個體隨機地交換某些基因,能夠產生新的基因組合,期望將有益基因組合在一起。

(4)遺傳演算法規劃擴展閱讀

評估編碼策略常採用以下3個規范:

a)完備性(completeness):問題空間中的所有點(候選解)都能作為GA空間中的點(染色體)表現。

b)健全性(soundness): GA空間中的染色體能對應所有問題空間中的候選解。

c)非冗餘性(nonrendancy):染色體和候選解一一對應。

目前的幾種常用的編碼技術有二進制編碼,浮點數編碼,字元編碼,變成編碼等。

而二進制編碼是目前遺傳演算法中最常用的編碼方法。即是由二進制字元集{0,1}產生通常的0,1字元串來表示問題空間的候選解。

5. 求助大神 利用遺傳演算法解決非線性規劃問題,最好有MATLAB代碼

%%%%%%%%%%%
無聊到專門幫你寫了個程序。不想全部寫完,自己補完。PS:這題怎麼看都是線性規劃
&&&&&&&&&&&&&&
%%%%%%%%%%%%%%利用遺傳演算法計算最優化問題%%%%%%%
%遺傳演算法參數設置
popsize=200; %種群個數
generation=500;%種群迭代次數,繁殖後代數
pc=0.4; %兩個體之間交叉概率
pm=0.05; %個體變異的概率
yueshu=0; %約束成立的標志為1
%初始化群體
for i=1:popsize
while(yuesu==0) %當約束成立時,不再變異。約束不成立時變異。
x(i,1)=randint(1,1,[0,35]); %隨機生成(0-35)的整數
x(i,2)=randint(1,1,[0,60]);
x(i,3)=randint(1,1,[0,40]);
x(i,4)=randint(1,1,[0,40]);
x(i,5)=randint(1,1,[0,30]);
x(i,6)=randint(1,1,[0,30]);
x(i,7)=randint(1,1,[0,35]);
x(i,8)=randint(1,1,[0,20]);
%這里自己寫幾行程序就好
if
%這里判斷約束條件,若符合,yueshu=1;
end
end
end
for n=1:generation
%計算適應度
[row col]=size(x);
for i=1:row
fitness(i)=(x(i,1)+x(i,2)+x(i,3)+x(i,5)+x(i,6)+x(i,7)+x(i,8))/20;
end
%輪盤賭選擇
zong=sum(fitness);
xt=x;
for i=1:row
temp=rand(1);
for j=1:row
if temp< fitness(j)/zong
break;
end
end
x(i,:)=xt(j,:);
end
%兩個個體交叉變異
x2=x;
[row col]=size(x);
for i=1:2:row
temp=rand(1);
if temp<pc
%%%%%%%%%%%%%這里還要自己寫個程序判斷是否符合約束,不符合一直交叉,直到交叉到符合約束
point=randint(1,1,[1,8]);
x(i,point:8)=x2(i+1,point:8);
x(i+1,1:point)=x2(i,1:point);
end
end
%單個點變異
x3=x;
[row col]=size(x);
for i=1:row
for j=1:8
temp=rand(1);
if(temp<pm)
yueshu=0;
while(yueshu==0) %當約束成立時,不再變異。約束不成立時變異。
if j==1 x(i,1)=randint(1,1,[0,35]);end
if j==2 x(i,2)=randint(1,1,[0,60]);end
if j==3 x(i,3)=randint(1,1,[0,40]);end
if j==4 x(i,4)=randint(1,1,[0,40]);end
if j==5 x(i,5)=randint(1,1,[0,30]);end
if j==6 x(i,6)=randint(1,1,[0,30]);end
if j==7 x(i,7)=randint(1,1,[0,35]);end
if j==8 x(i,8)=randint(1,1,[0,20]);end
%這里自己寫程序啊
if
%這里判斷約束條件,若符合,yueshu=1;
end
end
end
end
end
end
[row col]=size(x);
for i=1:row
fitness(i)=(x(i,1)+x(i,2)+x(i,3)+x(i,5)+x(i,6)+x(i,7)+x(i,8))/20;
end
maxx=find(fitness==max(fitness));
x(maxx,:)

6. 在matlab中如何用遺傳演算法求二元目標規劃

遺傳演算法俺不會,用多目標優化也可以求出最優解。
function zFgoalattain
% 多目標最優化
clear all; clc
% 給定目標,權重差租亮按目標比例確定,給出初值
goal = [-0.3 0.9]; % -0.2794 0.9313
weight = [0.1 0.1];
x0 = [0.6 0.6 0.6 0.6 0.6];
% 給出約束條件的系數虛寬
A=[-1 0 -1 0 0;0 -1 0 0 -1]
B=[-0.4; -0.4]
Aeq = [1 1 1 1 1]
Beq = [1]
lb = ones(1,5)*0.05
ub = ones(1,5)
% 求解
[x,fval,attainfactor,exitflag] = fgoalattain(@ObjFun,x0,goal,weight,A,B,Aeq,Beq,lb,ub)
% ------------------------------------------------------------------
function f = ObjFun(x)
f1 = -(0.371*x(1)+0.274*x(2)+0.581*x(3)+0.164*x(4)+0.327*x(5));
f2 = 1.1828*x(1)+0.8415*x(2)+0.9324*x(3)+0.8474*x(4)+0.894*x(5);
f=[f1;f2];

運行結果型舉:
x =

0.0500 0.5000 0.3500 0.0500 0.0500

fval =

-0.3834
0.8933

attainfactor =

-0.0670

exitflag =

4

7. 線性規劃和遺傳演算法哪個好學

線性規劃好毀租學。線性規劃簡單,遺傳演算法解纖鍵兆決多目標問題,有多個目標函數,而線性規劃只有一個。標準的遺傳演算法存在局部搜索能力差和早熟等亮稿缺陷,不能保證演算法收斂。經典的非線性規劃演算法大多採用梯度下降的方法求解,局部搜索能力強。

8. 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)

9. 遺傳演算法和遺傳規劃的區別是什麼

遺傳演算法是以基因型為目標,如一串01字元組成。遺傳規劃是以一段程序為目標,如一個樹形結構,表達的是一個公式,用於擬合目標函數,實例比如天氣與食物產量卜頃的關系曲線,曲線就是要型察陸計算的函數,擬合的適合度就是算曲線與實際采樣沒空中的方差。淺薄理解不一定很准確。其餘操作如交叉,變異等兩者相似。

10. 遺傳演算法1——ga與fmincon求解非線性規劃模型的對比

題目:

一、ga求解模型

[x,fval]=ga(@fitnessfun,nvars,A,b,Aeq,beq,lb,ub,@nonlcon,options)

二、fmincon求解模型

x = fmincon(@fitnessfun,x0,A,b,Aeq,beq,lb,ub,@nonlcon,options)

ga函數中包含nvars(適應度函數的獨立變數個數),而 fmincon 函數 中需要變數初值x0,這是二者的不同之處。

三、結果對比

總之,遺傳演算法適用於求解非標准演算法無法求解的問題,即目標函數不連續、不可微、隨機或高度非線性的問題。 當然, 用 遺傳 演算法去求解相 對簡單的問題 有助於 理解 其具體原理,相對於研究復雜問題,較簡單的問題同樣可以用於學習遺傳演算法。

熱點內容
國產高配置有哪些 發布:2024-04-27 09:18:26 瀏覽:947
建行手機app忘記密碼如何修改 發布:2024-04-27 08:58:59 瀏覽:393
蟻群演算法的數學模型 發布:2024-04-27 08:58:39 瀏覽:994
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:84
win2008伺服器搭建網站 發布:2024-04-27 07:26:51 瀏覽:640
java的vector 發布:2024-04-27 07:05:00 瀏覽:204
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236