改进遗传算法在TSP问题中的应用(Matlab代码实现)

news2024/11/15 10:52:29

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码实现

🎉4 参考文献


💥1 概述

物流业作为国家经济体系的重要组成部分,费用居高不下,特别是运输费用达到物流费用的一半以上,是导致物流成本过高的重要因素。旅行商问题是车辆路径问题的特例,是实现车辆路径优化的关键。

📚2 运行结果

 部分代码:

clc
clear
close all

Fixedcosts = 150;                   %固定成本
nuitTransCost =2.4;                 %单位运输成本
coldRate=1.3;                       %制冷率
congesteRate=1.5;                   %拥堵率
goodLossRate = 0.39;                %货损率
openDoorCost = 30;                  %一次开门费用
openDoorCostRate = 0.26;            %开门费率
MaxDistributeRidus = 15;            %最大费送半径
veichleSpeed = 60;                  %车辆速度
veichleMaxW = 200;                  %车辆最大装载量
Popsize=500;                        %染色体数量
Iteration=100;                      %迭代次数
Pc=0.75;                            %交叉率 0-1之间
Pm=0.7;                             %变异率 0-1之间
step = 0;                           % 初始化阶段
start = [40 50];                    %中心点坐标
pos =load('坐标.txt');
demandArr = load('需求量.txt');
timeWindows = load('时间窗.txt');
server = load('卸货时间.txt');
posInfo = [];
[totalIn,disTribtePoint] = gaMain(Fixedcosts,nuitTransCost,coldRate,congesteRate,goodLossRate,start,openDoorCost,openDoorCostRate,MaxDistributeRidus,veichleSpeed,veichleMaxW,Popsize,Iteration,Pc,Pm,pos,demandArr,timeWindows,server,step,posInfo);
[totalIn,~]=sortrows(totalIn,3);
op = 1;
    while totalIn(op,3)<0
        totalIn(op,3) = totalIn(op,3)*(-1);
        op = op +1;
    end
[totalIn,I]=sortrows(totalIn,3);
inPutNew = totalIn;
distributePos = [];
for n=1:max(inPutNew(:,3))
    distributePos = [distributePos ;inPutNew(find(inPutNew(:,3) == n,1),:)];
end
save('distributePos','distributePos');
[inSize,ii] = size(inPutNew);
jPos = 1;
save('jPos','jPos');
save('inSize','inSize');
save('inPutNew','inPutNew');
% for i =1:disTribtePoint -1
for i =1:disTribtePoint
    save('i','i');save('disTribtePoint','disTribtePoint');save('jPos','jPos');
    clear;
    load('jPos','jPos');load('inSize','inSize');load('inPutNew','inPutNew');load('i','i');load('disTribtePoint','disTribtePoint');
    step = i;
    ho = 0;
    for j = jPos:inSize
        if inPutNew(j,3) == i
            ho = ho +1;
        end
    end
    jPos = jPos + ho;
    realIn = inPutNew(jPos-ho:(jPos-1),:);
Fixedcosts = 80;                   %固定成本
nuitTransCost =1;                  %单位运输成本
coldRate=0;                        %制冷率
congesteRate=0;                    %拥堵率
goodLossRate = 0.5;                %货损率
openDoorCost = 0;                  %一次开门费用
openDoorCostRate = 0;              %开门费率
MaxDistributeRidus = 9999;         %最大配送半径
veichleSpeed = 25;                 %车辆速度
veichleMaxW = 70;                  %车辆最大装载量
Popsize=100;                       %染色体数量
Iteration=100;                     %迭代次数
Pc=0.75;                           %交叉率 0-1之间
Pm=0.7;                            %变异率 0-1之间
demandArr = load('需求量.txt');
timeWindows = load('时间窗.txt');
server = load('卸货时间.txt');
[demandArr,timeWindows,server] = dealExat(demandArr,timeWindows,server,realIn);
[realInSize,~] =  size(realIn);
oneRowp = [1:realInSize-1]';
realInp = [realIn(2:end,:) oneRowp];
posInfo = realInp(:,4:5);

pos =realIn(:,1:2);
start = pos(1, :);
pos(1,:) = [];
gaMain(Fixedcosts,nuitTransCost,coldRate,congesteRate,goodLossRate,start,openDoorCost,openDoorCostRate,MaxDistributeRidus,veichleSpeed,veichleMaxW,Popsize,Iteration,Pc,Pm,pos,demandArr,timeWindows,server,step,posInfo);
end

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]蒋然.改进遗传算法在TSP问题中的应用[J].软件导刊,2016,15(12):127-129. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

玩转Python图片处理(OpenCV)

OpenCV是一个基于BSD许可&#xff08;开源&#xff09;发行的跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ruby、MATLAB等语言的接口&#xff0c;…

Qt扫盲-QLabel使用总结

QLabel使用总结一、QLabel 显示内容二、注意事项1. 格式注意2. 不保留先前状态3. 格式对齐4. 伙伴焦点三、信号和槽函数使用1. 信号2. 槽函数总结&#xff1a;QLabel 其实就是一个用来只读显示的简易控件。适合数据量很小的内容显示。QLabel用于显示 文本或图像。 不提供用户交…

深度学习之目标检测通用技巧

深度学习之目标检测通用技巧深度学习之目标检测通用技巧深度学习之目标检测通用技巧 一 数据增强 1.离线增强 离线增强:对数据集进行处理&#xff0c;数据的数目会变成增强因子原数据集的数目 2.在线增强 对输入模型的batch的数据进行增强&#xff0c;如旋转、平移、翻折等…

今天给大家介绍一篇基于SSM的教材管理系統的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【Tensorflow学习三】神经网络搭建八股“六步法”编写手写数字识别训练模型

神经网络搭建八股“六步法”编写手写数字识别训练模型Sequential用法model.compile(optimizer优化器,loss损失函数,metrics["准确率"])model.fitmodel.summery六步法搭建鸢尾花分类网络class搭建具有非顺序网络结构MNIST数据集Fashion MNIST数据集用Tensorflow API:t…

java计算机毕业设计基于安卓Android的掌上酒店预订APP

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把掌上酒店预订与现在网络相结合,利用java技术建设掌上酒店预订APP,实现掌上酒店预订的信息化。则对于进一步提高掌上酒店预订发展,丰富掌上酒店预订经验能起到不少的促进作用。 掌上酒店预订APP能够通过互联网得到广泛的…

基于风能转换系统的非线性优化跟踪控制(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

一、CDD在诊断开发中的作用

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CDD在诊断开发中的作用,欢迎各位朋友订阅、评论,可以提…

如何评价模型的好坏?

回归&#xff1a; MSE&#xff08;均方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;真实值-预测值&#xff0c;平方之后求和平均&#xff09;RMSE&#xff08;均根方误差&#xff09;—— 判定方法&#xff1a;值越小越好&#xff08;MSE开根号&#xff…

Dijkstra最短路径算法

参考&#xff1a;(3条消息) Dijkstra算法图文详解_一叶执念的博客-CSDN博客_迪杰斯特拉算法 如图&#xff0c;假设图中共有n条路径&#xff08;如D-C-E&#xff09;&#xff0c;根据路径长度进行小到大排序。 1、起点到达某终点的距离是无穷符号&#xff0c;表示该起点还需要借…

27岁到来之际,我在阿里实现了年薪40W+的小目标

顺着大佬的思路&#xff0c;我分析了自己的实际水平和状况&#xff1a; 1、技术不精不成体系&#xff1a;技术能力浮于表面&#xff0c;对底层逻辑和架构不了解&#xff0c;也不知道如何系统化进行学习; 2、遇到职场瓶颈期&#xff1a;站在3年职场的分水岭上&#xff0c;没有…

Linux网络原理及编程(8)——第十八节 数据链路层

目录 1、MAC地址 2、MAC帧 3、MAC帧协议 4、MTU 5、ARP请求和应答 各位好&#xff0c;博主新建了个公众号《自学编程村》&#xff0c;拉到底部即可看到&#xff0c;有情趣可以关注看看哈哈&#xff0c;关注后还可以加博主wx呦~~~&#xff08;公众号拉到底部就能看到呦~~&a…

基于java+springmvc+mybatis+jsp+mysql的新冠肺炎疫苗接种管理系统

项目介绍 新冠疫苗接种管理系统&#xff0c;在网站首页可以查看首页&#xff0c;疫苗信息&#xff0c;疫苗资讯 &#xff0c;个人中心&#xff0c;后台管理&#xff0c;在线客服等内容&#xff0c;并进行详细操作。管理员登录进入系统可以查看首页&#xff0c;个人中心&#x…

vue自定义keepalive组件的问题解析

前一阵来了一个新的需求&#xff0c;要在vue项目中实现一个多开tab页面的功能&#xff0c;本来心想&#xff0c;这不简单嘛就是一个增加按钮重定向吗&#xff1f;&#xff08;当然如果这么简单我就不写这个文章了&#xff09;。很快写完&#xff0c;提交测试。测试大哥很快就提…

一份奇奇怪怪的地图设计书

地图设计书 地图设计是通过研究实验制定新编地图的内容、表现形式及其生产工艺程序的工作&#xff0c;是地图制图学各种活动的中心&#xff0c;贯穿整个地图制图过程。本设计选择了福建省龙岩市作为研究区域&#xff0c;并结合相应区域的土地利用类型、水系、道路等数据&#…

儿童剧本杀行业是好生意吗?剧本杀门店管理系统

红楼梦、西游记、水浒传、三国演义是中国四大名著&#xff0c;几乎每个中国人上到70岁老人&#xff0c;下到十岁小学生都知道&#xff0c;同时还有花木兰、包青天、八仙过海等故事也都耳濡目染&#xff0c;小说描述的淋漓尽致&#xff0c;影视剧老戏骨们将每个角色刻画的深入人…

spring-aop源码分析(3)完结_执行流程分析

本文详细介绍Spring AOP的执行阶段流程。 Cglib代理的代理拦截逻辑在DynamicAdvisedInterceptor中&#xff0c;JDK代理的拦截逻辑在JdkDynamicAopProxy中&#xff0c;本文将从这两个类入手分析Spring AOP的执行阶段流程。 DynamicAdvisedInterceptor private static class D…

Modbus数据采集方案

目录 目标 Modbus协议简介 配置界面以及实例 概述 modbus协议应该是工业行业应用最广泛的协议&#xff0c;由于其协议简单、通讯标准、扩展性强的特点&#xff0c;被各个行业大量的应用。作为通讯网关机来说&#xff0c;设计一个便捷易懂的配置方式显得尤其重要。本方案基于…

多模态中的指令控制(InstructPix2Pix,SayCan)

InstructPix2Pix: Learning to Follow Image Editing Instructions 图像的语言指令生成。目的是遵循人工指令去编辑图像&#xff0c;即给定输入图像和一个如何编辑它的文本指令&#xff0c;模型尝试遵循这些指令来编辑图像。 这份论文与现有基于文本的图像编辑工作们最大的不同…

【JVM】方法区与永久代、元空间之间的关系

方法区与永久代、元空间之间的关系 方法区是JVM规范中定义的一块内存区域&#xff0c;用来存储类元数据、方法字节码、即时编译器需要的信息等 永久代是Hotspot虚拟机对JVM规范的实现(1.8之前) 元空间是Hotspot虚拟机对JVM规范的实现(1.8以后&#xff09;&#xff0c;使用本地…