2021年数维杯国际大学生数学建模A题新冠肺炎背景下港口资源优化配置策略求解全过程文档及程序

2021年数维杯国际大学生数学建模

A题 新冠肺炎背景下港口资源优化配置策略

原题再现:

  2020年初,新型冠状病毒(COVID-19)在全球迅速蔓延。根据世界卫生组织2021年7月31日的报告,新冠病毒疫情对人类的影响可能比原先预期的持续时间更长。在这一流行病的影响下,许多国家遭受了不同程度的经济损失,各行各业也面临着许多前所未有的困难,全球贸易的发展也迎来了许多新的挑战。
  作为贸易发展中最重要的环节之一,港口和航运业同样难逃厄运。新冠病毒疫情的爆发暴露出全球港口和航运业在运营、管理方面缺乏系统协调。特别是港口和航运的多维度防疫措施,大大降低了全球港口的运营效率,导致航运服务日益短缺,导致整个行业内发生不可预测的变化。
  COVID-19对港口的影响如下:第一,随着亚洲一些国家疫情的恢复,货物订单量持续上升,造成港口严重拥堵。然而,在一些港口极度拥堵的情况下,其他一些港口的货物量变得非常小,出现了港口闲置的现象。这使得港口交通不对称现象更加普遍。第二,新冠病毒还导致世界航运能力不足。例如,波罗的海干散货指数(BDI)在2021年8月20日飙升至4092,这也是过去11年来的最高点。此外,由于港口服务效率低下和航运市场动荡,新冠病毒也加剧了全球供应链的不确定性,导致供应链中断的风险增加。因此,在COVID-19时代,对港口运营效率提出了更高的要求。
  在COVID-19疫情持续肆虐的今天,如何降低防控带来的风险成为全球港口航运业可持续管理的关键问题。在这种情况下,我们需要重新设计一个高度灵活的系统和全球网络,以保持利益相关者之间的密切合作关系,包括航运公司、港务局、码头运营商以及物流和港口服务提供商。
  为缓解COVID-19影响下港口运营效率低下的问题,请运用数学建模方法解决以下五个问题:
  问题1:结合附件1的数据和您的合理假设,请从船公司联合对接的角度出发,提供船公司之间的合作模式,以缓解港口拥堵或过度闲置的问题。你应该深入分析每个码头在每个周期的航运公司。
  问题2:请根据附件1的数据,从码头运营商的角度设计船舶最佳时基对接方案,并提出具体的奖惩措施,以有效提高港口的对接效率。
  问题3:请从港口泊位、码头运营商和航运公司的角度提供船舶停靠策略。该方案需要在不减少防疫工作时间的前提下,最大限度地缩短船舶在港口的停靠时间。
  问题4:能否提供一个充分考虑区域内多个港口合作的策略,从而有效减少港口拥堵。
  问题5:如果港口安排1-2天的周末休息,您能否提出一个更通用的港口呼叫优化模型,并使用附件1中的数据进行演示。

整体求解过程概述(摘要)

  随着新型冠状病毒(COVID-19)在全球的传播,港口和航运业受到严重打击。主要问题是如何参考附件一给出的船舶载重数据和泊位通过能力,优化港口资源配置,尽可能提高港口运营效率。本文构建了一个异构船舶资源配置优化模型来解决该问题。
  对于问题1:首先,从航运公司的角度建立了基于航运公司的所有船舶期望值的表达函数,建立了泊位利用率最大的异质船舶资源配置优化模型,通过考虑所有航运公司的所有船舶的能力和所有泊位在一个周期内的停泊能力,建立了航运公司的最大期望值和最大公平性。并用遗传算法进行求解,结果表明,一个周期内所有泊位利用率之和为5489,各航运公司期望值为3489。
  针对问题2:考虑港口航运公司船舶交接时间因素,建立了基于软时间窗的异构船舶资源配置优化模型,设计了基于时间窗的船舶加班惩罚策略。在此基础上,提出了基于插值和聚集的优化策略。结果表明,船舶靠泊计划平均完成率为82%,泊位空置率为14.38%。
  针对问题3:在模型1和模型2的基础上,建立了以最小停靠时间为主要目标的基于停靠时间的异构船舶港口泊位资源分配模型。并采用快速非支配排序策略和淘汰策略对模型进行求解。
  对于问题4:我们将该问题的维度提升到一个区域内多个港口之间的合作,并考虑多个港口的多个泊位与不同航运公司之间的合作,以改进我们之前构建的模型。采用“三数中立”策略和“淘汰策略”策略对模型进行求解。结果表明,当各端口可用率为65%时,总体效率最大。
  对于问题5:基于问题4的模型,我们添加了端口周末休息约束。并采用“三数中立”策略和“淘汰策略”策略对模型进行求解。并进行了仿真实验,验证了基于附录1的模型。最后,我们在“Result presentation”文件夹中展示了结果。

模型假设:

  1、本文忽略了泊位类型,所有泊位均为集装箱类型。从文献[1]可知,泊位的水工结构是所述泊位容量的1.5倍,即每个泊位为一艘船舶服务的容量不得超过泊位泊位容量的1.5倍。
  2、航运公司为了实现利润最大化,要求每艘船舶只有在满载状态下,即每艘船舶装载到其最大容量时,才能执行航运任务。
  3、一船只能选择一个泊位。
  4、港口计划运营周期为14天。
  5、我们没有计划船的航迹。
  6、本文忽略了船舶装卸后泊位的无效等待时间。
  7、我方按附件一计算港口泊位工作时间:8:00~18:00。

问题分析:

  数据分析
  附件1提供了1127艘船舶的代码、载客量、装运周期、平均停靠时间、最近十次停靠时间的差异、最近十次到达时间以及217个泊位的停泊能力。通过对运力数据的整理和分析,发现所有船舶的航运周期分布在1~14天之间,即周期最短的船舶每天到达港口,周期最长的船舶需要14天到达港口,我们发现港口每天早上8:00到晚上18:00接收船舶靠泊,即船舶只能在规定时间内到达港口。

  问题1分析
  解决这一问题需要从航运公司的角度考虑,既要满足所有航运公司的需要,又要考虑泊位的利用率。船舶的需求因航运公司而异,解决问题的关键是如何综合这些因素进行优化。

  问题2的分析
  这一问题的解决需要从码头运营商的角度进行充分考虑,在满足泊位利用率的前提下,对船公司的每艘船舶进行时间和泊位规划,因此不同船公司的不同船舶容量和泊位通过能力是需要重点关注的关键因素。解决问题2的关键是将问题1的模型视角转化为终端操作员的模型视角,优化时间进度的处理以满足问题2的要求,最终解决问题。

  问题3的分析
  该问题侧重于需要同时从码头运营商和航运公司的角度出发,考虑到防疫工作的前提,同时满足不同航运公司的需求,尽可能减少船舶总停靠时间,提出的策略需要将问题1和问题2一并考虑,并添加时间窗等约束条件,通过优化算法求解。

  问题4的分析
  在问题4中,问题的维度上升到一个区域内多个港口之间的合作,不再局限于单个港口的多个泊位,而是需要考虑多个港口的多个泊位与不同航运公司之间的合作调度,基于博弈论的思想,以多港口合作为关键,以船舶停靠时间为目标,优化船舶停靠时间。

  问题5的分析
  对问题5的审议将继续深入实际情况,安排港口每个周末休息1-2天。然后在问题4的基础上对模型进行改进,在不延误航运公司船舶需求的前提下,规划各港口的休息时间以满足基本要求,如何解决这一问题是问题的关键。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

clear all; 
close all; 
clc; 
A=[];
B=[];
C=[];
for gg=1:50
run question1
z=30;
c=184;
Xs1=rand*(3503-3450)+3450;
Xx1=50;
NP=z; 
L=c; 
Pc=0.8; 
Pm=0.1; 
G=100; 
f=randi([0,1],NP,L) 
for k=1:G
 %Decode binary to decimal within the domain
 for i=1:NP
 U=f(i,:);
 m=0;
 for j=1:L
 m=U(j)*2^(j-1)+m;
 end
 x(i)=Xx1+m*(Xs1-Xx1)/(2^L-1);
 Fit(i)= fitness1(x(i));
 end
 maxFit=max(Fit); 
 minFit=min(Fit); 
 rr=find(Fit==maxFit);
 fBest=f(rr(1,1),:); 
 xBest=x(rr(1,1));
 Fit=(Fit-minFit)/(maxFit-minFit); 
 sum_Fit=sum(Fit);
 fitvalue=Fit./sum_Fit;
 fitvalue=cumsum(fitvalue);
 ms=sort(rand(NP,1));
 fiti=1;
 newi=1;
 while newi<=NP
 if (ms(newi))<fitvalue(fiti)
 nf(newi,:)=f(fiti,:);
 newi=newi+1;
else
 fiti=fiti+1;
 end
 end 
 for i=1:2:NP
 p=rand;
 if p<Pc
 q=randi([0,1],1,L);
 for j=1:L
 if q(j)==1;
 temp=nf(i+1,j);
nf(i+1,j)=nf(i,j);
 nf(i,j)=temp;
 end
 end
 end
 end
 i=1;
 while i<=round(NP*Pm)
 h=randi([1,NP],1,1); 
 for j=1:round(L*Pm) 
 g=randi([1,L],1,1); 
 nf(h,g)=~nf(h,g);
 end
 i=i+1;
 end
 f=nf;
 f(1,:)=fBest; 
 trace1(k)=maxFit; 
end
%Second optimization
xBest; 
z=30;
c=184;
Xs1=1.50*(rand*(3503
-3450)+3450);
Xx1=50*0.5;
NP=z; 
L=c; 
Pc=0.8; 
Pm=0.1; 
G=100; 
f=randi([0,1],NP,L) 
for kk=1:G
 for i=1:NP
 U=f(i,:);
 m=0;
 for j=1:L
 m=U(j)*2^(j
-1)+m;
 end
 x(i)=Xx1+m*(Xs1
-Xx1)/(2^L
-1);
Fit(i)= fitness1(x(i));
 end
 maxFit=max(Fit); 
 minFit=min(Fit); 
 rr=find(Fit==maxFit);
 fBest=f(rr(1,1),:); 
 xBest=x(rr(1,1));
 Fit=(Fit
-minFit)/(maxFit
-minFit);
 sum_Fit=sum(Fit);
 fitvalue=Fit./sum_Fit;
 fitvalue=cumsum(fitvalue);
 ms=sort(rand(NP,1));
 fiti=1;
 newi=1;
 while newi<=NP
 if (ms(newi))<fitvalue(fiti)
 nf(newi,:)=f(fiti,:);
 newi=newi+1;
 else
 fiti=fiti+1;
 end
 end 
 for i=1:2:NP
 p=rand;
 if p<Pc
 q=randi([0,1],1,L);
 for j=1:L
 if q(j)==1;
 temp=nf(i+1,j);
nf(i+1,j)=nf(i,j);
nf(i,j)=temp;
 end
 end
 end
 end
 i=1;
 while i<=round(NP*Pm)
 h=randi([1,NP],1,1); 
 for j=1:round(L*Pm) 
 g=randi([1,L],1,1); 
 nf(h,g)=~nf(h,g);
 end
 i=i+1;
 end
 f=nf;
 f(1,:)=fBest; 
 trace2(kk)=maxFit; 
end
xBest; 
for h=1:100
trace(h)=trace1(h)*trace2(h)*variance_sum;
end
figure
plot(trace)
xlabel('Number of iterations')
ylabel('Objective function value')
title('Evolution curve of fitness value of objective function')
A=[A,trace(100)];
% saveas(gcf,['Code\Question1\','fig',num2str(gg)])
end
B=sort(A);
figure
plot(B)
[~,a]=find(A == min(A))
[~,b]=find(A == max(A))
c=sum(A)/50;
plot(B)

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

动手学深度学习-自然语言处理-预训练

词嵌入模型 将单词映射到实向量的技术称为词嵌入。 为什么独热向量不能表达词之间的相似性&#xff1f; 自监督的word2vec。 word2vec将每个词映射到一个固定长度的向量&#xff0c;这些向量能更好的表达不同词之间的相似性和类比关系。 word2vec分为两类&#xff0c;两类…

RT-DETR 图片目标计数 | 特定目标进行计数

全类别计数特定类别计数如何使用 RT-DETR 进行对象计数 有很多同学留言说想学 RT-DETR 目标计数。那么今天这篇博客,我将教大家如何使用 RT-DETR 进行对象计数。RT-DETR 是一种非常强大的对象检测模型,它可以识别图像中的各种对象。我们将学习如何利用这个模型对特定对象进行…

JAVA 异常分类及处理

JAVA 异常分类及处理 概念 如果某个方法不能按照正常的途径完成任务&#xff0c;就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时&#xff0c;这个方法会立刻退出同时不返回任何值。另外&#xff0c;调用这个方法的其他代码也无法继续执行&…

如何查看Linux中glibc的Version

用ldd --version ldd --version 运行libc.so 你没有看错&#xff0c;libc.so是一个可执行程序。 但前提是你要找到它。因为它并不在PATH所包含的目录下。 ppdell:~$ ldd which cat | grep libclibc.so.6 > /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0e6fb34000)ppdell:~…

【单调栈]LeetCode84: 柱状图中最大的矩形

作者推荐 【动态规划】【广度优先搜索】LeetCode:2617 网格图中最少访问的格子数 本文涉及的知识点 单调栈 题目 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形…

【JVM从入门到实战】(七)运行时数据区的组成

运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域&#xff0c;称之为运行时数据区。 《Java虚拟机规范》中规定了每一部分的作用 线程不共享&#xff1a;程序计数器、虚拟机栈、本地方法栈 线程共享&#xff1a;方法区&#xff0c;堆 1. 程序计数器(Program Count…

代码随想录刷题题Day14

刷题的第十四天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C Day14 任务 ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和 1 平衡二叉树 二叉树节点的深度&#xff1a;指从根节…

​LeetCode解法汇总1631. 最小体力消耗路径

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 你准备参…

spring 笔记八 SpringMVC异常处理和SpringMVC拦截器

文章目录 SpringMVC拦截器拦截器&#xff08;interceptor&#xff09;的作用拦截器和过滤器区别拦截器是快速入门拦截器方法说明 SpringMVC拦截器拦截器&#xff08;interceptor&#xff09;的作用拦截器和过滤器区别拦截器是快速入门拦截器方法说明 SpringMVC异常处理异常处理…

JMeter安装RabbitMQ测试插件

整体流程如下&#xff1a;先下载AMQP插件源码&#xff0c;可以通过antivy在本地编译成jar包&#xff0c;再将jar包导入JMeter目录下&#xff0c;重启JMeter生效。 Apache Ant 是一个基于 Java 的构建工具。Ant 可用于自动化构建和部署 Java 应用程序&#xff0c;使开发人员更轻…

MATLAB 计算点云坐标的最大最小值 (38)

MATLAB 计算点云坐标的最大最小值 (38) 一、算法介绍二、算法实现1.代码一、算法介绍 沿着X Y Z三个坐标轴方向,点云坐标存在对应的最大最小值,这在计算点云体积或者其他方面有使用,这里使用MATLAB快速获取xmax xmin ymax ymin zmax zmin6个最大最小值 二、算法实现 1.代…

jmeter,断言:响应断言、Json断言

一、响应断言 接口A请求正常返回值如下&#xff1a; {"status": 10013, "message": "user sign timeout"} 在该接口下创建【响应断言】元件&#xff0c;配置如下&#xff1a; 若断言成功&#xff0c;则查看结果树的接口显示绿色&#xff0c;若…

nodejs+vue+微信小程序+python+PHP的微博网络舆情分析系统-计算机毕业设计推荐

2.3.1 功能性分析 按照微博网络舆情分析系统的角色&#xff0c;我划分为了微博用户管理模块和管理员管理模块这三大部分。 微博用户管理模块&#xff1a;&#xff08;1&#xff09;用户登录&#xff1a;用户登录微博网络舆情分析系统 &#xff1b;用户对个人信息的增删改查&…

python每日学11:xpath的使用与调试

背景&#xff1a;最近在使用selenium 模拟浏览器作一些常规操作&#xff0c;在使用selenium的过程中接触到的一种定位方法&#xff0c;叫xpath, 这里说一下使用心得。 首先&#xff0c;我觉得如果只是简单使用的话是不用详细了解具体的语法规则的。 一、xpath怎么用&#xff1…

Linux 内存池源码剖析

1 传统的分配与释放内存的函数缺点: void *malloc(size_t size); void *calloc(size_t nmemb,size_t size);void *realloc(void *ptr, size_t size);void free(void *ptr);缺点1: 高并发时较小内存块使用导致系统调用频繁,降低了系统的执行效率 缺点2: 频繁使用时增加了系统…

【Unity】简单实现生成式电子围栏

【Unity】简单实现生成式电子围栏 三维电子围栏是一种通过使用三维技术和电子设备来建立虚拟围栏&#xff0c;用于监控和控制特定区域的系统。它可以通过使用传感器和摄像头来检测任何越界行为&#xff0c;并及时发出警报。这种技术可以应用于安防领域以及其他需要对特定区域进…

Repo代码仓库搭建

使用rockchip sdk二次开发&#xff0c;代码十几个G&#xff0c;都放在一个git仓库的话&#xff0c;每次git status要等好久&#xff0c;决定拆分一下&#xff0c;官方是用repo做代码管理的&#xff0c;我打算也搭建个类似开发环境。 1.首先在git服务器上创建一个manifest仓库&…

【深度学习目标检测】六、基于深度学习的路标识别(python,目标检测,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…

【Docker】ES、Kibana及IK安装配置

目录 一.单节点安装部署 1.版本选择 2.推荐及总结 ​3.官网下载地址 4.创建网络 5.拉取镜像 6.创建文件夹 7.运行docker命令 二、安装kibana 1.安装kibana 2.浏览器访问 3.国际化 三、Elasticsearch查询 1.数据插入&#xff1a;POST或PUT 2.数据查询GET 3.分词…

最新Redis7主从复制(保姆级教程)

前提准备&#xff1a;三台云服务器&#xff08;吐血消费&#xff0c;点赞回血&#xff09;也可以使用虚拟机创建三台&#xff0c;但是我搞了一天也连接不上&#xff0c;要是又可以连接上的大家可以教我一下&#xff0c;也可以参考一下或者大家可以参考一下这个大佬的配置&#…