书签 分享 收藏 举报 版权申诉 / 66
上传文档赚钱

类型图论模型在实际中的应用课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4751952
  • 上传时间:2023-01-07
  • 格式:PPT
  • 页数:66
  • 大小:1.94MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《图论模型在实际中的应用课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    模型 实际 中的 应用 课件
    资源描述:

    1、数学建模的定义 目前还没有统一的定义 数学模型是为一种特殊目的而建立的一个抽象的、简化的结构。描述现实世界的一部分特征 表现事物之间的一部分客观联系数学模型的分类 微分方程模型 差分方程模型 层次分析模型 线性规划模型 动态规划模型 图论模型 其它模型主要内容 建模的方法和步骤 汪瑜婧 图论模型的建立 罗睿辞 图论模型的选择和关系的简化 雷涛 其它数学模型举例 王尧建模的方法和步骤 模型准备 模型假设 模型的建立 模型求解与分析 模型检验 模型应用 问题的提出 2007CUMCM B题 乘公交,看奥运 给定若干条公交线路,以及在每条公交线路中任意相邻的两站之间所花费的时间。并且给定乘客在任意站

    2、点换乘的耗时 要求给出任意两公汽站点之间线路选择问题的一般数学模型与算法,求出最佳的公交线路.模型的假设 对”最优”的理解有三个具有代表性的指标:时间最短 花费最少 最方便(换乘次数最少)不同的人群对最优的理解不同,需要根据实际定义.可以根据需要定义代价函数,三个指标的权重不同,代价值也不同。以时间最短为例模型的建立 G=(V,E)每个车站:G的顶点 每条公交线路相邻两点的连线:G的边 边的权重:耗费时间 点的权重:换乘时间 并不是一个简单图,两点间可能有多条边5937ac b(8)考虑a经过b到c的最短路径 由于有换乘的情况,只记录任意两点间的最短路径是不够的。并非一个标准的图论模型与经典最

    3、短路径问题比较567ac b(8)Min(a,b)=5Min(b,c)=3Min(a,c)=5+6=113转化成标准的图论模型 每条公交线路抽象为一层 层与层之间相连的顶点均代表同一个车站 它们之间的边(虚线)的权值为换乘花费的时间 调用M*M次Dijkstra算法才能得到最优解 M为公交线路的总数 回顾上图 导致无法使用标准算法原因:Min(a,b)和Min(b,c)之间需要计算附加耗时 不用换车的线路成为最佳路径 改进的想法:一次性地处理不用换车的情况567acMin(a,b)=5Min(b,c)=3Min(a,c)=5+6=113 b(8)模型的求解 标准算法:每次选择一个新顶点进行扩展

    4、 所有顶点扩展完毕即为最优解 修改后的算法 每次对一个顶点所能选择的所有公交线路扩展 所有不用换乘就能到达的顶点均在一次中处理 所有顶点扩展完毕即为最优解.算法描述 一次将扩展出多个顶点,用最小值堆保存 初始:起点对应的节点S入堆;并赋予标志信息Time(S)=0 取堆顶,对此定点,逐一枚举所有不用换乘就能到达的顶点,更新堆中对应点的标志信息.不断重复取堆顶的过程,直到取出的顶点为最终目标T Time(T)即为所求举例说明算法步骤3245132abcdefg1298159206119225考虑顶点考虑顶点b到顶点到顶点g的路径的路径问题重述 加入步行的因素,即任意两个车站之间人都可能通过步行到

    5、达,并给出步行的时间代价.由于每两点之间均有步行路径,每次扩展都将涉及到所有顶点,复杂度增加不少 改进的办法 预处理 找到两个相邻顶点之间路径的最小值,如果它加上两个顶点的权值之后后,仍然小于一些其它的路径,就可以将其它路径删除.这样至少可以删除不少步行路径 考虑实际情况,可设定步行时间的上限.567ac加入步行的路径加入步行的路径并给定权值并给定权值20算法的总结 关键在于如何解决换乘的耗时 扩展节点的策略与经典算法不同 算法实际用到了分支界限法的思想 类似于回溯法,但是求解的目标不同。目标:找到使目标函数取极值的解。分支界限法思想 以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空

    6、间树 从一个点开始,每次以一定的策略扩展一些结点。每一个活结点一旦成为扩展结点,就一次性产生其所有子结点,并从活节点中移除。在产生 的子结点中,导致不可行解或导致非最优解的子结点被舍弃,其余的加入活结点表中。选择扩展的节点 从活结点表中选择下一扩展结点可能有不同的方式 队列式分支限界法:先入先出的原则 优先队列式分支限界法:选择优先级最高的节点进行扩展 最大效益问题:最大值堆 最小耗费问题:最小值堆一个简单的例子 印刷电路板将布线区域划分为nm个方格阵列 精确的电路板布线问题要求确定连接方格a的中点到方格b的中点的最短布线方案。布线时电路只能沿直线或直角布线。为避免线路相交,已布线方格做上封闭

    7、标记,其他线路布线不允许穿过封闭区域。ab11a11b2211a12212b232211a12212b2332211a12212b23432211a12212b234532211a12212b23456632211a12212b2345676732211a12212b23485678678建模步骤的总结 模型的准备 提出问题,搜集数据。模型的假设 根据实际情况,提出合理的假设简化问题。模型的建立 根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量间的等式关系或其它数学结构。建模步骤的总结 模型的分析与求解 已建立的模型是否有标准解法 转化成标准模型 对已有的标准解

    8、法修改,以适应模型的求解 模型的检验 灵敏性,鲁棒性 模型的应用图论模型的引入引例 现有6个人,任意两人之间或者相互认识,或者相互不认识,证明这6个人中,或者有3个人彼此都认识,或者有3个人彼此不认识思路一只有6个人,人数非常少,可以枚举任意两人之间的关系,然后判断每一种情况是否符合题意。如果所有情况都满足,则命题成立。虽然只有6个人,但是这样做的时间复杂度可不低,枚举次数为215 只能借助计算机了。有没有人可以直接证明的办法呢?思路二有了图论这个强大的工具我们还是像往常一样,以人为顶点,关系为边,建图但是为了以后的直观,这里图的建立有一点小小的不同:如果两个人之间相互认识,则在这两个人(顶点

    9、)间连一条红色边,如果两个人不认识,则在这两个人(顶点)间连一条蓝色边(下面会看到这样做的好处)那么这样我们就得到了一个由红边和蓝边组成的6阶完全图我们实际上要证明的就是这个图中或者存在一个红三角形(认识),或者存在一个蓝三角形(不认识)任取一个顶点v0,由它连出5条边到其它的顶点,这五条边只有红色和蓝色两种根据抽屉原理,肯定有一种颜色的边有3条或3条以上,不妨设为红色viv0vjvk如果vi,vj,vk之间的边都是蓝边,则图中存在一个蓝三角形如果至少有1条为红边,那么它总会与v0发出的两条红边组成一个红三角形。这样就证明了这个命题现有n根长度不同的小木棍,每根木棍数量无限,取出一些小木棍可以

    10、拼出一根长度为这些小木棍长度之和的木棍。现在要求最小的整数k,使得长度大于等于k的木棍都能够被给出的n根小木棍拼出。例如,现在有3根小木棍,长度分别3,5,7它们可以拼出长度为3,5,6,7,8,9,10,11,12,13的木棍,看上去5就是答案,怎么证明呢?可以考虑把能够拼出来的木棍长度x根据模3的结果分成3类(0,1,2)对于x mod 3=0,3能够拼出来,那么6,9,12等等模3为0的数都可以被拼出来对于x mod 3=1,7能被拼出来,那么7,10,13等等都能被拼出来对于x mod 3=2,5能被拼出来,那么8,11,14等等都能被拼出来 也就是说,5确实是我们要求的答案这个题看上

    11、去似乎毫无头绪,那就先看看简单的情况吧!根据上面的证明,可以发现一种思路,不妨把上述结果推广一下:设n根木棍的长度为L1,L2,Ln,不妨设L1为所有木棍中最短的现在把能够拼出的木棍长度根据模L1的结果分为L1类(0,1L1-1),若某一类中的数模L1的结果为i,则它们组成的集合为Si显然,如果存在一个集合Si为空,则问题无解现在考虑所有集合都不为空的情况:设每个集合的最小元为b0,b1bl1-1(集合不为空,肯定存在最小元)那么如何去求题目要求的k呢?考虑这样一个值:k=max bn-L1,1=n0.k不属于任何Si集合,否则与k是某个S中最小元。即k不能被小木棍拼出。对任意Lk,设L Sp

    12、,L+L1maxbn=bp 故Lbp-L1而L bp(mod p)所以 L=bp,所以L一定能够被拼出由以上两点可知,k一定是不能被拼出的木棍长度中的最大值那么k+1就是我们要求的答案!还剩下最后一步:求b0,b1,b2bl1-1,也就是每个集合中的最小元事实上,每一个能被拼出来的木棍长度x,都是从0开始,用已有的小木棍拼出来的。那么就可以把集合的编号看做顶点,小木棍的长度看边的长度,建立一个图。对于每个点i(集合i),都连出n条边,长度为L1,L2Ln。对于长度为Lk的边,连向编号为(i+Lk)mod L1的顶点。对于从顶点i到j的一条长度为L的路径,表示集合i中的一个数加上L后得到的数属于

    13、集合j。对于任意一个能拼出来的数x(设x mod L1=p),根据上面的建图规则,x一定是点0到p的一条路径的长度。反过来,0到p的所有路径长度都属于Sp。所以,可以得出结论:Sp中的最小元其实就是顶点0到顶点p的最短路径长度。有了这个结论,我们就可以很容易的求出序列bn了至此,这个问题也就被完美的解决数学建模模型的选择、关系的简化 很多问题都是通过建立图论模型解决的 图论中常见的模型有序列、树、各种图 如何有效选择数学模型,简化原问题中元素之间的关系是数学建模的关键题目 坐船问题(改编自湖南省信息学省队选拔赛试题)北大有n个学生去公园划船:一只船最多坐2个人;出于娱乐目的,大家决定同船的2个

    14、人要么同姓要么同名;每个人都必须上船,且不能有脚踏多只船的情况 问最少需要几只船。例子 6个同学:姚金宇,李金宇,姚峰宏,陈峰宏姚金宇 姚峰宏陈峰宏李金宇姚金宇 李金宇陈峰宏 姚峰宏例子 4个同学:陈峰宏,囧峰宏,罗睿辞,廖叶子 罗睿辞同学想和廖叶子同学坐同一船是不行的,因为他们不同名也不同姓陈峰宏 囧峰宏罗睿辞廖叶子陈峰宏 囧峰宏罗睿辞 廖叶子 将每一同学视为一元素,元素之间的关系为同名或者同姓 构图是很自然的思路:2名同学同名或者同姓就连一条边 一条边就代表了一种坐船的搭配方式 用最少的边覆盖图中的点一般图的最小边覆盖问题 一般图最大匹配问题,算法复杂,实现麻烦。建模姚金宇李金宇姚峰宏陈峰

    15、宏陈峰宏囧峰宏罗睿辞廖叶子建模 图是本题信息最充分、最自然的模型,但其中数据关系存在很多冗余,没有充分利用原题的条件 单独看同名、同姓这2种关系,它们都是等价关系,具有传递性 那么换一种模型构造如何?把图转换成树来考虑建模 对于原图中的每一个连通分量,一定可以转换成一棵二叉树树中一个结点的左孩子跟其同姓;一个结点的右孩子跟其同名。证明用反证法罗睿辞罗贯中罗纳尔多廖睿辞罗睿辞罗贯中罗纳尔多廖睿辞问题的解决 含有n个点的连通分量,至少需要(n+1)div 2只船 使用贪心法,一定可以构造出一个只需(n+1)div 2只船的解罗睿辞罗贯中罗纳尔多廖睿辞罗纳尔多是罗贯中的独生子,去掉他们2个,树依然连

    16、通罗睿辞廖睿辞廖睿辞依然是罗睿辞的独生子,将它们分成一组罗贯中罗纳尔多罗睿辞廖睿辞得到了一个最优解贪心构造 1、若叶子结点是父亲的独生子,则删去它们2个,树依然保持性质 2、若父亲结点有2个孩子重复以上步骤直至树为空或者只剩一个结点为止贪心举例陈峰宏贾 由陈 云王 云贾宝玉贾 云贪心举例陈峰宏贾 由陈 云王 云贾宝玉贾 云贪心举例陈峰宏贾 由陈 云王 云贾宝玉贾 云陈峰宏贾 由陈 云王 云贾宝玉贾 云贪心举例贪心举例陈峰宏贾 由陈 云王 云贾宝玉贾 云贪心举例陈峰宏贾 由陈 云王 云贾宝玉贾 云小结 通过无向图到二叉树的转化,将一个复杂的匹配问题用简单贪心解决了 建模是一个去粗取精的过程,要尽

    17、可能利用对我们有利的信息,而忽略那些与我们目标无关的信息 LCA与RMQ问题之间相互转化,就是树形模型与序列模型相互辅助的经典例子 希望本例会对同学们今后的解题有所帮助!数学建模看起来,总会让人觉得是一种很抽象的概念 如果把概念简单一点,再通俗一点,大概就是把一些实际中碰到的问题抽象化,化简成类似的数学问题,然后就可以用我们已经知道的方法和工具来求解 但是其实数学建模还有很多更深刻的含义和价值,不过已经超出我可以讲述的很清楚的范围了其它数学模型举例其它数学模型举例 而且,其实计算机实现的问题建模不见得就一定局限于图论或者其他离散数学问题的这些方面 还有很多方面都是可以利用数学建模思想和方法的

    18、而有些时候,其实都是我们不经意间已经在数学建模了,只是自己没有在意而已。比如说数论中有关于素数筛选和测试,因式分解算法,一些特殊的进位制问题,快速幂取模等问题其实都可以用数学建模的方式来求解。下面我要讨论的是关于组合计数问题的一些讨论。组合数学的问题随处可见,他的历史渊源扎根于古老的数学娱乐和游戏之中,而在当今社会中同样发挥着重要的作用。简单的说,组合数学研究一个集合的物体进行满足一些规则的排列。具体的说来,组合数学往往研究的是这些排列的存在性,计数和分类。有时候还需要构造出满足条件的一个或者多个最优的排列。排列组合,容斥原理等都是这一方面的理论。其中很多时候都会广泛的运用到递推和生成函数,这

    19、也是建立数学模型并用计算机求解的优势所在之一。E1E2E3 一个国际象棋棋盘,若两个主教互相不攻击,则当且仅当他们不处于同一条斜线上。我们可以讨论在一个nn的棋盘上放k个互相不攻击的主教有多少种方法?例如,当n=8,k=6时,即在88的棋盘上放6个主教有5599888种方法问题简述布棋方案数Rk(C)设C是一个棋盘,Rk(C)表示把k个相同的棋子布到C中,且任意两个棋子不能处于同一行或者同一列的方案数(把斜线换成行和列),并规定对于任意的棋盘C有 R0(C)=1。棋盘多项式 设C是棋盘,则R(C)=Rk(C)xk叫做他的棋盘多项式可以证明步棋方案数可以证明步棋方案数R Rk k(C)(C)具有

    20、下面的性质具有下面的性质:1)对于任意的棋盘C和正整数k,如果k大于C中方格的总数,则Rk(C)=0;2)R1(C)等于 C中的方格数 3)设C1和C2是2个棋盘,如果C1经过旋转或者翻转变成了C2,则Rk(C1)=Rk(C2)4)设Ci是从棋盘C中去掉指定的方格所在的行和列以后剩下的棋盘,C1是从棋盘C中去掉指定的方格以后剩下的棋盘,则有Rk(C)=Rk-1(Ci)+Rk(C1)(k=1)5)设棋盘C由两个子棋盘C1和C2组成,如果C1和C2的步棋方案是互相独立的,则有Rk(C)=Ri(C1)*Rk-i(C2)显然,在上述定义中当k大于棋盘的格子数时Rk(C)=0,所以R(C)一般只有有限项

    21、。例如对于R(AT)=R0(AT)+R1(AT)x+R2(AT)x2=1+2x+x2根据 Rk(C)的性质不难得到R(C)的性质 R(C)=xR(Ci)+R(C1)R(C)=R(C1)*R(C2)此后我们就用这两条性质计算棋盘多项式另外,我们回到刚才的问题我们可以注意到白格主教和黑格主教是不会互相攻击的所以问题可以化简为白格放i(i=k)个棋子和黑格放k-i个棋子分别处理而且处理方法是一样的。为了直观,我们把白格从棋盘中抽出小方格和棋盘都顺时针旋转45度,再压缩,黑格同样最后都可以化建成左图情况我们希望知道的,就是在这样的一个棋盘上放置i(or k-i)各两两不同行不同列的象有多少种放法由于行列关系是相对的,所以行列顺序不重要,所以把宽度小的行放在宽度大的行之上,将图转换成这样的情况。然后,我们就可以继续编写算法来把这种有序的图形递归化简,然后利用棋盘多项式的规则化简最后我们可以从第x的k次方项的系数得知放置k个互不攻击的象的方法数有多少了

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:图论模型在实际中的应用课件.ppt
    链接地址:https://www.163wenku.com/p-4751952.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库