算法合集之《数学归纳法和解题之道》.pptVIP

算法合集之《数学归纳法和解题之道》.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法合集之《数学归纳法和解题之道》.ppt

IOI2009国家集训队论文演示 张昆玮 数学归纳法与解题之道 山西省实验中学  张昆玮 引言 概览 【例5】Set Cover ——数据结构的恢复性构造    子集覆盖问题定义为选出尽量少的子集,使已知集合中的每个元素至少属于其中的一个。 线段覆盖问题定义为选出尽量少的整点,使给定的每条线段上都至少有其中的一个。 以整点为子集,所有包含这个整点的线段为子集中的元素,可以把一个线段覆盖问题归约到子集覆盖问题。如果给定一个由线段覆盖问题归约成的子集覆盖问题,该怎么解决呢? 线段覆盖问题 在数轴上选出尽量少的整点 给定的每条线段上必须至少有其中的一个 按左端点排序后有简单的贪心算法 转化成子集覆盖问题 整点作为集合(实际上只需每线段的右端点) 所有包含此整点的线段为其元素 一般的子集覆盖问题→NP完全 怎么办? 定义线段的位置 线段的位置即为其中点的位置 两线段距离即为其中点的距离 两线段距离可以使用对应集合运算求出 问题:如何拓展连通分量? 我们把问题分为连通分量来处理 两个连通分量之间线段距离可以任意,不影响结论 每个连通分量的第一条线段位置任意 调整归纳假设 只有一条线段时方向无关紧要 初始时刻选择不同的方向只会使最终的结果互为轴对称而已。 其他情形中为了判断方向,我们需要调整归纳假设 同侧?异侧? 同侧?异侧? 线段的右端点 小结 以上解题过程用庖丁解牛的方法步步推进,将问题分为多个部分,逐一化解 数学归纳法灵活的归纳假设为主要问题的求解提供了不少便利 算法实现中我们不断克服困难的过程正是归纳假设不断完善的过程 谢谢 欢迎大家提问 解题之道 故弄玄虚 简单自然 神来之笔 直剖核心 数学归纳法 从简单情形做起 从不同角度观察 与 * * (click)老师同学们大家好,我是来自山西省实验中学的张昆玮,今天为大家带来的论文题目是《数学归纳法与解题之道》(click) 这里是一些我们司空见惯的算法,但是大家可以看到,他们往往各行其是,也就是说我们缺乏一个有机的思维方法来把他们融会贯通起来。在学习这些算法的时候,我想大家和我一样,都曾有着这样那样的疑惑:如此之多的算法,是怎样想到的?这些巧夺天工的算法,为什么是正确的呢?其实林林总总的算法背后,无不隐藏着真正的解题之道。(click)解题之道博大精深,该从何谈起?上面的疑惑又该如何解决?(click)两千五百多年前,著名的哲学家和思想家老子对道之本质参透得可谓淋漓尽致。他给我们的答案是:参悟解题之道,从(click)数学归纳法开始。既然数学归纳法在许多算术、逻辑问题中都有广泛应用,我们有理由相信,数学归纳法这类构造性证明方法在信息学的算法设计中,同样会有其用武之地。(click) 下面我们简单了解一下论文的主要内容。(click)在论文的第一部分,我们从历史以及应用多个方面了解了数学归纳法,同时也重新认识了数学归纳法在猜想与探索方面的优势 。(click)第二部分中我们回顾了数学归纳法的传统用途,也就是用来证明贪心算法和其他一些算法的正确性。(click)既然数学归纳法有着鲜明的构造性色彩,第三部分,我们把数学归纳法的思维方式应用在构造性算法中,用来帮助我们打开突破口,找到解题之道。 (click)第四部分,我们从数学归纳法的四个不同环节入手,举例讨论了数学归纳法的思想在优化算法时给我们的启示。(click)最后是全文中涉及到的思想方法以及依然存在的一些问题及其解决方法。(click)今天由于时间关系,这里只展示了论文中的一道例题(click wait).有关构造性算法的其他例题以及其余几个方面的内容,论文中给出了更加深入的讨论。(click) 在各种程序设计方法中,构造性算法令我们最头疼:它往往缺乏固定套路,需要更多的创造性。而且构造性算法往往依赖于具体的数据结构,因此考察的综合性较大,难度也随之提升了。(click)而数学归纳法正是解决这些问题的利器。(click)既然数学归纳法有着鲜明的构造性色彩,把数学归纳法的思维方式应用在构造性算法中,就一定可以帮助我们打开突破口,找到解题之道。(click) 让我们先看一道例题,这里是简短的题目描述。子集覆盖问题和线段覆盖问题大家都已经非常熟悉了,如果给定一个由线段覆盖问题归约成的子集覆盖问题,该怎么解决呢?(click) 我们先来回顾一下线段覆盖问题的解法。(click wait)首先,互相包含的线段我们只要满足里面的,外面的就满足了,因此可以删掉外面的。(click wait)我们把这些线段按左端点排序处理,如果某条线段还没有被覆盖,就选择它的右端点。(click wait)这是一个简单的贪心算法。(click) 按照题目描述,我们看看线段覆盖问题是怎样转化为子集覆盖问题的。(c

您可能关注的文档

文档评论(0)

youyang99 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档