【路径规划】基于遗传算法求解仓库拣货路径规划问题附matlab代码

1 内容介绍

针对复杂的多约束条件下的机械手抓取几何体问题,通过分析将实际问题转换成旅行商问题求解.阐述了旅行商问题,遗传算法及其算法实现的过程,在充分考虑遗传算法和约束条件特点的情况下,提出将多约束条件变成约束矩阵的新方法,从而将多约束条件的路径规划问题转化成常规旅行商问题,有效简化了问题的复杂程度,充分利用遗传算法的搜索能力规划出最优抓取路径.软件仿真及实验结果表明,该算法能够取得比较理想的效果.

2 部分代码

clear

clc

close all

i_o = [0,0,0,0];

pickid=[10,1,19,1.5

    2,1,8,2.3

    4,0,7,0.7

    1,0,20,0.2

    1,1,15,1.3

    5,0,11,1

    7,1,20,1.5

    4,1,1,0.9

    3,1,7,2.8

    2,0,13,0.2

    3,1,17,2.5

    1,1,14,1.8

    4,1,5,0.5

    6,0,15,1.2

    9,1,2,0.4

    2,1,20,0.1

    5,0,3,1.4

    10,0,12,0.7

    6,0,11,3.1

    8,1,9,3.5

    2,1,17,0.6

    6,0,10,0.9

    5,1,20,1.9

    5,0,7,1.1

    8,1,20,0.8

    7,1,5,0.3

    8,1,3,1.3

    1,0,1,0.6

    8,1,2,1.5

    10,0,17,2];%%input('待拣选货位号和质量');

X=[i_o;pickid];

NIND=300; %初始种群数

MAXGEN=500; %最大进化代数

Pc=0.9; %交叉概率

Pm=0.05;  %变异概率

GGAP=0.9;  %代沟

d1=1;

d2=2;

d3=3;

d4=4;

D=Distanse(X,d1,d2,d3,d4);

N=size(D,1);

%%初始化种群

Chrom = InitPop(NIND,N);

%%在二维图上画出所有坐标点

%figure

%plot(X(:,1),X(:,3),'o');

%%画出随机解的路线图

DrawPath(Chrom(1,:),X)

pause(0.0001)

disp('初始种群的一个随机值:')

OutputPath(Chrom(1,:));

Rlength = PathLength(D,Chrom(1,:));

disp(['初始值',num2str(Rlength)]);

disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')

%%优化

gen = 0;

figure;

hold on;box on 

xlim([0,MAXGEN])

%ylim([0,500])

title('优化过程')

xlabel('代数')

ylabel('最优值')

ObjV = PathLength(D,Chrom);%计算路线长度

preObjV = min(ObjV);

while gen < MAXGEN

    %%计算适应度

    ObjV = PathLength(D,Chrom);

    %fprintf('%d    %1.10f\n',gen,min(ObjV))

    line([gen-1,gen],[preObjV,min(ObjV)]);pause(0.001)

    preObjV = min (ObjV);

    FitnV = Fitness(ObjV);

    SelCh = Select(Chrom,FitnV,GGAP);

    SelCh = Recombin(SelCh,Pc);

    SelCh = Mutate(SelCh,Pm);

    SelCh = Reverse(SelCh,D);

    Chrom = Reins(Chrom,SelCh,ObjV);

    gen = gen +1;

end

ObjV=PathLength(D,Chrom);

[minObjV,minInd] = min(ObjV);

DrawPath(Chrom(minInd(1),:),X)

disp('最优解:')

p = OutputPath(Chrom(minInd(1),:));

disp(['最终值',num2str(ObjV(minInd(1)))]);

disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')

3 运行结果

da18db87c1e3a675ca2e9b38e7e24e01.png4 参考文献

[1]蒲晶, 谭代伦, 郭潇. 基于小生境遗传算法的仓库拣货-复核路径规划[J]. 四川轻化工大学学报:自然科学版, 2022, 35(1):9.

[2]文生平, 陈端平. 基于遗传算法的分拣机器人最优路径规划[J]. 自动化与仪表, 2015, 30(11):4.

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天Matlab科研工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值