【路徑規(guī)劃】基于遺傳算法解決藥店路徑優(yōu)化問(wèn)題附matlab代碼
1 簡(jiǎn)介
隨著近年來(lái)移動(dòng)機(jī)器人應(yīng)用領(lǐng)域的廣泛性以及應(yīng)用環(huán)境的多樣性,移動(dòng)機(jī)器人的路徑規(guī)劃成為研究的熱門(mén)問(wèn)題,路徑規(guī)劃是引導(dǎo)機(jī)器人如何選擇最優(yōu)路線(xiàn),控制機(jī)器人從起點(diǎn)到目標(biāo)點(diǎn)進(jìn)行運(yùn)動(dòng),目的是在機(jī)器人整個(gè)運(yùn)行過(guò)程中,滿(mǎn)足某種優(yōu)化指標(biāo)如花費(fèi)時(shí)間最少、路徑最短或者能量消耗最低。在移動(dòng)機(jī)器人研究領(lǐng)域,通常以羅盤(pán)為基礎(chǔ)的導(dǎo)向定位、以工業(yè)CCD為基礎(chǔ)的機(jī)器人立體視覺(jué)和以環(huán)境信息為基礎(chǔ)的路徑規(guī)劃是移動(dòng)機(jī)器人研究的三大領(lǐng)域,其中以環(huán)境信息為基礎(chǔ)的路徑規(guī)劃是前兩者的基礎(chǔ)。隨著智能化的發(fā)展,基于搜索式的機(jī)器人路徑規(guī)劃算法成為了研究的熱門(mén)方向,如基于免疫算法的機(jī)器人路徑規(guī)劃,基于遺傳算法和人工魚(yú)群算法的機(jī)器人路徑規(guī)劃。合理的路徑規(guī)劃是移動(dòng)機(jī)器人研究的基礎(chǔ)性問(wèn)題,不僅是研究的核心,更是制約移動(dòng)式機(jī)器人發(fā)展的瓶頸血刃。目前,移動(dòng)機(jī)器人在抗震救災(zāi)、生命探測(cè)、航空航天等領(lǐng)域得到廣泛應(yīng)用,在這些領(lǐng)域的應(yīng)用前景也是十分遼闊,因此如何求解機(jī)器人路徑規(guī)劃問(wèn)題越來(lái)越受到科研工作者的廣泛關(guān)注與研究。
前言在現(xiàn)實(shí)生活中,我們經(jīng)常遇到最短路問(wèn)題,例如尋找兩點(diǎn)之間總長(zhǎng)度最短或者費(fèi)用最低的路徑.在運(yùn)輸,物流,設(shè)施選址以及人員調(diào)度問(wèn)題中,最短路徑是很常見(jiàn)的問(wèn)題.解決最短路問(wèn)題的方法有很多,例如迪杰斯特拉算法,福特算法.在這里我們介紹基于遺傳算法的藥店路徑優(yōu)化問(wèn)題的解決方案.
2 部分代碼
function [f1,f1_1,f1_2,f1_3,shilujing]=fit_all(lujing)%目標(biāo)函數(shù)計(jì)算
global ?jiedian
global maxche
%%根據(jù)隨機(jī)產(chǎn)生的路由來(lái)確定實(shí)際行走
lent=size(jiedian,1);
jiajie=jiedian(:,4:6);%狀態(tài)欄
chuzuobiao=[28 45];%配送中心
zuobiao=[jiedian(:,2:3);chuzuobiao];
n=0;%車(chē)輛數(shù)目
f=20;%發(fā)車(chē)成本
c=2;%運(yùn)輸成本
v=30;
t=0.1;
rr=[1 2];
for ii=1:floor(lent/2)
? ?shilimit(ii,:)=[0,6];
end
for ii=floor(lent/2)+1:lent
? ?shilimit(ii,:)=[7,12];
end ?%時(shí)間窗
for ii=1:maxche
? ?paixu=lujing(lent*(ii-1)+1:lent*ii);%該車(chē)的目標(biāo)順序
? ?[luji,jiajie,mimi]=panjue(jiajie,paixu);
? ?if size(luji,2)>0
? ? ? ?n=n+1;
? ? ? ?shilujing(n,:)=zeros(1,lent+1);
? ? ? ?shilujing(n,1:size(luji,2))=luji;
? ?end
end ?
%%%目標(biāo)
f1_2=0;
f1_3=0;
f1_1=size(shilujing,1)*f;
for ii=1:size(shilujing,1)
? ?mop=shilujing(ii,:);
? ?iji=find(mop==0);
? ?mop=[lent+1,mop(1:iji-1),lent+1];
? ?time=0;
? ?for jj=2:size(mop,2)
? ? ? ?f1_2=f1_2+sqrt((zuobiao(mop(jj),1)-zuobiao(mop(jj-1),1))^2+(zuobiao(mop(jj),2)-zuobiao(mop(jj-1),2))^2)*c;
? ?end
? ?for jj=2:size(mop,2)-1
? ? ? ?time=time+sqrt((zuobiao(mop(jj),1)-zuobiao(mop(jj-1),1))^2+(zuobiao(mop(jj),2)-zuobiao(mop(jj-1),2))^2)/v;
? ? ? ?f1_3=f1_3+max([shilimit(mop(jj),1)-time,0])*rr(1)+max([time-shilimit(mop(jj),2),0])*rr(2);
? ?end
end
f1=f1_1+f1_2+f1_3;
3 仿真結(jié)果


4 參考文獻(xiàn)
[1]張書(shū)源, 郭聰. 基于遺傳算法的最短路徑問(wèn)題及其MATLAB實(shí)現(xiàn)[J]. 交通世界, 2009(12):2.
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問(wèn)題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
