2019第十二届“认证杯”数学建模(第一阶段)

选的B题

第二阶段思路:点击进入

第一阶段赛题下载:https://www.lanzous.com/i3vnsvg

 建立了两个模型,一个字典搜寻算法选择模型,一个算法优化模型。

问题假设

  • 1.假设文本随机生成
  • 2.假设构成文字的20个字母为a~t
  • 3.假设替换错误只出现片段的首尾,因此我们搜寻的片段长度就为11~21之间

 

模型准备

  1. 使用C++随机数引擎与分布类型生成文本,每段长度随机5000~8000。
  2. 调整文本(随机生成的文本找到11~21个字母相同的基本没有)

 

选择模型

  1. 使用了BF,动态规划,KMP三种方法,直接跑程序搜寻相同字符串,搜寻结果保存为txt文件,同时记录运行时间,占用内存,资源使用量,初步比较效率。
  2. 选择改变每段文本长度,再次记录上面三个记录,统计制表做附件,绘图插论文,使用MATLAB拟合数据,得到方程式,绘制方程式相关三维图像。
  3. 比较得出KMP为最优算法。

 

优化模型

  1. 优化KMP的next数组,字符不匹配时,next数组会出现character[i]=character[next[i-1]];的迭代查询,使用next[i]=next[next[i-1]];归并相同数据。
  2. 再次选择第一个模型的测试文本,测试程序的运行时间与占用内存,与传统KMP算法比较。

 

程序时间大概也就是100秒~200秒左右,占用内存好像是150MB~300MB左右。

方法很简单,思路也比较清晰,但这道题难点在于模型和相关方程式的建立,这道题附件我们给的倒是挺多,附录就给了核心代码。

 

 

关注我的公众号,发送“2019认证杯代码”,获取相关代码

有问题可以加我QQ:1024593536


作者:Hk_Mayfly 
博客园:https://www.cnblogs.com/Mayfly-nymph/ 
个人博客:hkmayfly.com
CSDN:https://blog.csdn.net/qq_39542714 
如果你觉得博客对你有帮助的话,可以给博主一个(づ ̄3 ̄)づ╭❤~赞或者关注,谢谢!
博主目前大部分写作在博客园,欢迎大家来访,( ̄︶ ̄)↗也​​​​​​​欢迎爱好写作的朋友和我交换友链。


附注:不支持转载!欢迎大家加我QQ,互相交流。Biubiubiu~顺便来关注我的公众号:Star Bottle叭!,哈哈哈!

                                      
第十四届认证数学建模竞赛的C题题目是关于飞机修理排队模型的研究。该模型考察了某修理工场收到一系列飞机维修请求的情况,探讨了如何安排飞机的维修顺序和资源分配,以最大化工场的效益和客户的满意度。 该题目提供了一系列数据,包括不同飞机的到达时间、优先级、维修时间,以及工场的资源限制。我们的目标是设计一种维修策略,使得在有限的资源情况下,尽可能地提高工场的维修效率和服务质量。 针对这个问题,我会首先分析修理工场的资源状况和维修需求的特点。通过建立数学模型和制定维修策略,可以实现对飞机维修排队和资源分配的优化。 在数学建模中,我会借鉴排队论和优先级调度的理论知识。根据输入的数据和问题的要求,我会建立一个队列模型,以时间为横轴,将每个到达的飞机按照优先级进行排列。 同时,我会考虑工场的资源限制,以确定资源的合理分配和利用。根据给出的维修时间等数据,结合飞机的优先级和到达时间,我会制定一个调度算法,来确定每个时刻应该维修哪些飞机。 在考虑维修顺序时,我会根据优先级和维修时间等因素进行权衡。对于维修时间较长的飞机,我会优先考虑排在前面维修,以减少整体维修时间。同时,对于高优先级的飞机,我会优先维修,以提高服务质量和客户满意度。 在模型的构建和优化过程中,我会不断地进行迭代和调整,使得模型更贴近实际情况。通过这些努力,我们可以最大化工场的效益,提高修理工作的效率和质量。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值