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

刚开始第二阶段了吧,因为一些事情没去参加第二阶段。这里就给大家提供一些思路吧。

这道题看着像是在第一阶段上的深入,实际上方法都一样的。我们先分析一遍论文吧。

论文分析

首先第一句话的文本获取,不用多说,编程直接和第一阶段一样,随机生成(C/C++,MATLAB等等百度随机数生成,个人用的分布引擎,然后写入文档,30段随机文本就生成了)。

OK,后面的我们提取一下要求:

  1. 片段长度15
  2. 错误发生概率1/5
  3. 插入,替换,删失
  4. 每个错误只涉及一个字符

敲黑板了,“造”数据(因为我们随机生成的文本有个弊端,要满足符合题目要求的片段长度可能很短,我测试时长度最长6个字符长度,所以需要人为的修正),先造出符合上面第一个要求的片段,发生次数和片段个数自己控制好。接着,让第三个要求的概率为1/5左右,涉及一个字符。这里,我们结果就出来了。

 

首先每个字符的错误为1/5左右,那么长度为15的片段,每个错误出现的长度为3左右。我们可以将错误分成插入错误,替换错误,删失错误分别进行处理,再进行对比,找出的相同字符串就是我们需要的字符串。

在进行对比时,我们可以引入一个“标记m”,记录两个字符片段进行对比时。当字符不同时,m++,下一个在不同m++,在此期间,我们需要进行判断m是否大于我们设定的一个数n(3左右),可以称为容错数n,若大于,我们进行下一个字符串比较,若小于继续进行这个字符串下一个字符的比较,当字符再次相同时,m=0重新记录。

 

至于下面说的,不知道长度怎么办?那长度未知,首先我们要进行分析,尽量的缩短长度的范围,再者对算法的遍历方法进行改进,具体方法是使用某个算法,自己选择,减少遍历次数,你们组的编程肯定知道的。

 

模型介绍

 

第一个模型(算法模型)

找到几种算法,进行分析+比较搜索效率,找到当前最优算法

在对于三种错误进行筛选时,我们需要对每种错误进行调整,使得我们的结果更加准确,假设下面的错误都发生在子串当中。我举例错误只举了一次错误,实际不止,方法相同。

1.删失错误

这时候,子串和预期答案,必定少了一个,当我们进行字符对比时,遇到删失错误的位置,我们的子串比较字符位置不变,母串比较字符向后移动一位,再进行对比,且m++,因为子串少了一位,所以子串最后一位实际没有参加对比,这一位的不同我们不计入m。

 

2.替换错误

发生这种错误时,子串和母串的长度是不变的,因此我们只需要记录标记m,进行判断就行。

 

3.插入错误

这种错误相当于,子串多了一位,这时候,在遇到发生插入错位位置的时候,我们将子串比较字符向后移动一位,m++。这种错误,以子串为主,相当于子串少了一位,因此我们可以将母串的最后一位arr[i]和子串的brr[i+1],子串相当于增加了一位进行比较,需要计入m。

 

把这个问题分成三个部分解决,每个“错误”筛选出的片段,总的实际上就是我们所需要的片段。也就是,已知三个集合,求这三个集合的并集,但这中间肯定存在误差,搜索的字符串比我们实际的要多,这个问题可以放到优化模型中提出。

 

第二个模型(优化模型)

 实际上我们需要优化的地方就是,我们在分别筛选时,筛选的字符串肯定比实际的多,就算比较之后选出相同的,实际筛选出的也会多,这里优化的就是提高我们三种方法搜索准确率或者对比时如何处理。在这里如果会的话,可以加入一个筛选的模型。

 

至于具体如何填充论文,还有代码,就要靠各位自己加油了。有问题的话评论留言,这几天我都会看。

后面有补充的话,我都会放到这篇博客上。

注意:如果大家写不出代码,那就一定流程图写好,写清楚,算法别搞花里胡哨,能解决问题就行。

2019/5/18 14:17 更新几种错误的处理方法和第二问的未知长度的方法等

2019/5/19 17:17 更新了三种错误解决后的处理方法。(在明天会给大家说一些这篇论文中应该着重注意的地方,大家注意关注。

2019/5/20 10:34 最后一天:这道题按照自己的理解,给大家说下值得关注和补充的地方

  • 如果写不出代码的,去搜相关算法的代码作为附件,然后将算法流程图写好,在下面对算法细节(比如错误处理的细节)进行简明的描述。
  • 摘要一定要简明扼要,结构清晰,针对题中的问题,都有自己的解决办法。

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


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

                                       


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值