【路径规划-多式联运】基于遗传算法求解多式联运运输问题(考虑碳交易)附Matlab代码

news2025/1/13 6:13:45

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

随着"一带一路"倡议的提出,中欧运输得到了迅速发展,中欧班列将中欧经贸合作扩展至城市和城市之间.中欧之间形成了复杂的国际多式联运物流网络,虽然为中欧多式联运的发展提供了巨大的机遇,但也加剧了各种运输路线的无序竞争,不利于货物运输的高效运行.与此同时,全球愈发严重的温室效应让人们越来越关注低碳交通,我国也提出了优化运输结构,建设绿色运输体系的目标,这对减少多式联运中的碳排放量,提升多式联运水平提出了更高的要求.因此对中欧多式联运及其碳排放进行研究有着重要的现实意义.

⛄ 部分代码

%%%% 遗传算法求解多式联​

clc

clear

close all

data = xlsread('data.xlsx','A2:E35');

N = 15;      % 节点数量

C = [0.526  0.497  0.361

    0.392  0.340  0.273

    0.090  0.073  0.051];                %公路、 铁路、水路运输成本

E = [0.071  0.042  0.012];               % 碳排放

V = [80  60  30];

Ct = [0  8  9; 8  0  10; 9  10  0];      % 转运成本

Et = [0  0.128 0.117;  0.128 0 0.113;  0.117  1 0.133];  % 

Tt = [0  50  50;  50 0 50;   50  50 0] / 100;     % 转运时间

q0 = 120;          % 货物量

TW = [55  65];    % 时间窗

Emax = 7000;

P = [15   30];

beta = 15;

Etol = 5000;

D = nan(N, N, 3);     % 距离矩阵

data(:,1) = data(:,1) + 1;

data(:,2) = data(:,2) + 1;

for k = 1 : size(data,1)

    D(data(k,1),data(k,2),1) = data(k,3);    D(data(k,2),data(k,1),1) = data(k,3);

    D(data(k,1),data(k,2),2) = data(k,4);    D(data(k,2),data(k,1),2) = data(k,4);

    D(data(k,1),data(k,2),3) = data(k,5);    D(data(k,2),data(k,1),3) = data(k,5);

end

big = 1e6;

D(isnan(D)) = big;

CTR = {'O', '1', '2','3','4','5','6','7','8','9','10','11','12','13','D'};

%%

tic

NP = 40;          % 种群大小

maxgen = 200;     % 最大进化代数

Pc = 0.8;         % 交叉概率

Pm = 0.2;         % 变异概率

Pe = 0.1;         % 精英比例

%% 初始化种群

X0 = InitPop(NP, N, D, big);

%% 遗传进化

gen=1;

fx0 = zeros(NP,1);

for i = 1 : NP

    fx0(i,1) = Fitness(X0(i,:), N, q0, D, C, E, V, Ct, Et, Tt, TW, P, Emax,beta, Etol,  big);  % 计算目标函数值

end

fpbest = min(fx0);

while gen <= maxgen

    % 计算适应度

    fit = max(fx0) - fx0;

    % 选择

    X1 = Select(X0, fit);

    % 交叉操作

    X1 = Cross(X1, N, Pc);

    % 变异

    X1 = Mutate(X1, N, Pm);

    % 计算目标函数值

    fx1 = zeros(NP,1);

    for i = 1 : NP

        fx1(i,1) = Fitness(X1(i,:), N, q0, D, C, E, V, Ct, Et, Tt, TW, P, Emax, beta, Etol, big);  % 计算目标函数值

    end

    % 精英保留

    [X0, fx0] = Elitism(X0, X1, fx0, fx1, Pe);

    % 记录各代最优值

    fpbest = min(fx0);

    FG(gen) = min(fx0);       % 各代最优值

    % 更新迭代次数

    gen = gen+1

end

%% 结果

[fgbest,minInd] = min(fx0);

gbest = X0(minInd(1),:);

figure

plot(FG(FG < 1e9),'r-')

hold on

xlabel('迭代次数')

ylabel('最优成本')

title('GA迭代曲线')

yuancode(gbest, N, q0, D, C, E, V, Ct, Et, Tt, TW, P, Emax, beta, Etol,  big, CTR)

toc

⛄ 运行结果

⛄ 参考文献

[1]刘畅. 考虑碳排放的中欧多式联运路径选择优化[D]. 大连海事大学, 2020.

❤️ 关注我领取海量matlab电子书和数学建模资料

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

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

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

相关文章

字符串和编码那些事

一、字符编码 1. ASCII字符编码 因为计算机只能处理数字&#xff0c;如果要处理文本&#xff0c;就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特&#xff08;bit&#xff09;作为一个字节&#xff08;byte&#xff09; 由于计算机是美国人发明的&#…

【Apache Spark 】第 11 章使用 Apache Spark 管理、部署和扩展机器学习管道

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

编程神器Copilot逐字抄袭他人代码?

自面世后就饱受争议的 GitHub Copilot 编程神器最近又遭遇舆论风暴。 日前,德州农工大学的一位计算机科学教授 Tim Davis 在推特上发文称, GitHub Copilot 在没有标注来源也没有 LGPL 许可的情况下,输出了大量应该受版权保护的代码。 Tim Davis 还发了自己和 GitHub Copil…

90后汕头返种水稻 国稻种芯·中国水稻会:广东新农人田保姆

90后汕头返种水稻 国稻种芯中国水稻会&#xff1a;广东新农人田保姆 南方日报 张伟炜 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会报道&#xff1a;“5月稻谷病虫害防护非常…

机器学习(周志华)课后习题

第1章 绪论 1.1 表1.1若只包含编号1和4的两个样例&#xff0c;试给出相应的版本空间。 版本空间&#xff1a;与训练及一致的假设集合。 色泽青绿&#xff0c;根蒂*&#xff0c;敲声*&#xff1b; 色泽*&#xff0c;根蒂蜷缩&#xff0c;敲声*&#xff1b; 色泽*&#xff0c;根…

nuxt.js 进行项目重构-首页

nuxt.js 也是基于vue 的 那么就离不开组件化开发 我们按照组件结构来进行分析 navTop 页面的头部 通用组件 分隔了三个位置 适用于大多数头部 且预留插槽 <template><div class"nav-top"><div class"left"><slot name"left…

Spring5入门到实战------10、操作术语解释--Aspectj注解开发实例。AOP切面编程的实际应用

1、操作术语 1.1、连接点 类里面哪些方法可以被增强、这些方法被称为连接点。比如&#xff1a;用户控制层有登录、注册、修改密码、修改信息等方法。假如只有登录类和注册类可以被增强&#xff0c;登录和注册方法就称为连接点 1.2、切入点 实际被真正增强的方法&#xff0c…

C++ 【UVA488】Triangle Wave

&#x1f4cb; 个人简介 &#x1f496;大家好&#xff0c;我是2022年3月份新人榜排名第三的 ༺Blog༒Hacker༻ &#x1f389;支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4ac;格言&#xff1a;༺永做优质༒programmer༻ &#x1f4e3; 系列专栏&am…

Unity技术手册-编辑器基础入门万字大总结

往期文章分享点击跳转>《导航贴》- Unity手册&#xff0c;系统实战学习点击跳转>《导航贴》- Android手册&#xff0c;重温移动开发 本文约8千字&#xff0c;新手阅读需要20分钟&#xff0c;复习需要12分钟 【收藏随时查阅不再迷路】 &#x1f449;关于作者 众所周知&…

【C/C++】程序环境,探索程序的执行过程(习得无上内功《易筋经》的第一步)

目录1.程序的翻译环境和执行环境2.详解编译链接2.1翻译环境2.2编译本身也分为几个阶段预编译&#xff08;预处理&#xff09;编译汇编详解符号表形成符号表2.3.链接合并段表符号表的合并和重定位3.运行环境总结&#xff1a;1.程序的翻译环境和执行环境 在ANSIC&#xff08;标准…

LeetCode每日一题——1235. 规划兼职工作

LeetCode每日一题系列 题目&#xff1a;1235. 规划兼职工作 难度&#xff1a;困难 文章目录LeetCode每日一题系列题目示例思路题解题目 你打算利用空闲时间来做兼职工作赚些零花钱。 这里有 n 份兼职工作&#xff0c;每份工作预计从 startTime[i] 开始到 endTime[i] 结束&a…

1024程序员节|基于Springboot实现爱心捐赠管理系统

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 文末获取源码 项目编号&#xff1a;BS-XX-…

Mybatis-plus学习(基于版本3.0.5)

文章目录一.概念1.1 简介1.2 特性二.快速入门三.CRUD扩展3.1 Insert插入3.2 主键生成策略3.3 Update更新3.4 自动填充3.5 乐观锁3.6 查询操作3.7 删除操作3.8 性能分析插件&#xff08;新版本的Mybatis-plus已将此插件移除&#xff09;3.9 条件构造器3.10 代码生成器一.概念 1…

Transformer合集3

太多了 我都累了 这都第4了 这次先是关于他的小样本目标检测 , 用很少的训练示例检测新目标 小样本目标检测 论文地址&#xff1a; https://openaccess.thecvf.com/content/CVPR2022/papers/Han_Few-Shot_Object_Detection_With_Fully_Cross-Transformer_CVPR_2022_paper.…

docker安装influxdb及备份恢复

influxdb安装influxdb1&#xff0c;拉取镜像2&#xff0c;创建目录并进入到目录内3&#xff0c;创建influxdb容器服务4&#xff0c;访问&#xff1a;ip8086备份恢复influxdb数据准备1.1 创建用户&#xff0c;填入组织&#xff0c;桶信息1.2&#xff0c;给桶添加点数据1&#xf…

ansible部署lnmp架构

环境准备&#xff1a; 主机名IP服务系统ansible192.168.160.131ansibleCentOS-8.5nginx192.168.160.132nginxCentOS-8.5mysql192.168.160.137mysqlCentOS-8.5php192.168.160.139phpCentOS-8.5 1、生成私钥&#xff0c;对另外三台主机进行免密登入 [rootansible ~]# ssh-keyge…

【单片机毕业设计】【mcuclub-jj-007】基于单片机的门铃的设计

最近设计了一个项目基于单片机的门铃&#xff0c;与大家分享一下&#xff1a; 一、基本介绍 项目名&#xff1a;门铃 项目编号&#xff1a;mcuclub-jj-007 单片机类型&#xff1a;STC89C52、STM32F103C8T6 具体功能&#xff1a; 1、通过人体热释电检测是否有人&#xff0c;当…

Java --- 创建SpringMVC项目

目录 一、什么是MVC 二、什么是SpringMVC 三、SpringMVC的特点 四、创建SpringMVC项目 4.1、开发环境 4.2、创建maven工程 4.3、配置web.xml文件 4.4、创建请求控制器 4.5、配置springMVC.xml文件 4.5、访问首页面 4.6、访问指定页面 一、什么是MVC MVC是一种软件架…

C++:C++的IO流

while (scanf("%s", buff) ! EOF)如何终止&#xff1f; 答&#xff1a;ctrl z换行 是规定&#xff0c;ctrl c 是发送信号杀死进程&#xff08;一般不建议ctrl c&#xff09;。 int main() {string str;while (cin >> str) // operator>>(cin, str){cou…

K_A01_001 基于单片机驱动WS2812 点灯流水灯 0-9显示

目录 一、资源说明 二、基本参数 三、通信协议说明 WS2812时序: 代码: 四、部分代码说明 1、接线说明 2、主函数 五、相关资料链接 六、数字提取格式 七、视频效果展示与资料获取 八、项目所有材料清单 九、注意事项 十、接线表格 一、资源说明 单片机型号 测试条件 模…