zoukankan      html  css  js  c++  java
  • 2019第十二届“认证杯”数学建模(第二阶段)

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

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

    论文分析

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

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

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

    敲黑板了,“造”数据,先造出符合上面第一个要求的片段,发生次数和片段个数自己控制好。接着,让第三个要求的概率为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/18 17:17 更新了三种错误解决后的处理方法。(在明天会给大家说一些这篇论文中应该着重注意的地方,大家注意关注。

    觉得博客有帮助的朋友可以给博主点个赞,对建模感兴趣的朋友可以关注一下博主,你们的支持就是我最大的动力!

  • 相关阅读:
    counter的使用
    Keras保存模型
    pytorch中F.avg_pool1d()和F.avg_pool2d()
    为什么要进行batchNormalization?
    利用Ajax完成前后端数据传输有关知识(day67)
    ORM中choice参数的设计、Ajax介绍(day66)
    聚合分组查询、F与Q查询、常用字段知识(day65)
    ORM数据库查询操作(单表,多表)(day64)
    CBV源码剖析,模板语法(day63)
    小程序加入购物车抛物线效果
  • 原文地址:https://www.cnblogs.com/Mayfly-nymph/p/10884155.html
Copyright © 2011-2022 走看看