算法设计与分析变治法2021最全课件.ppt

上传人(卖家):晟晟文业 文档编号:4519421 上传时间:2022-12-16 格式:PPT 页数:60 大小:677.50KB
下载 相关 举报
算法设计与分析变治法2021最全课件.ppt_第1页
第1页 / 共60页
算法设计与分析变治法2021最全课件.ppt_第2页
第2页 / 共60页
算法设计与分析变治法2021最全课件.ppt_第3页
第3页 / 共60页
算法设计与分析变治法2021最全课件.ppt_第4页
第4页 / 共60页
算法设计与分析变治法2021最全课件.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、12(1)实例化简)实例化简同样问题同样问题 6.1 预排序预排序 6.2 高斯消去法高斯消去法 6.3 平衡查找树平衡查找树AVL树树(2)改变表现)改变表现同样实例同样实例 6.3 2-3树树 6.4 堆和堆排序堆和堆排序 6.5 霍纳法则和二进制幂霍纳法则和二进制幂(3)问题化简)问题化简另一问题另一问题 6.63 列表是列表是有序有序的话,许多关于列表的问题更容易求解。的话,许多关于列表的问题更容易求解。因此很多问题需要因此很多问题需要先排序先排序,则该问题的时间效率依赖,则该问题的时间效率依赖于排序算法的效率。于排序算法的效率。回忆前面所学的排序算法:回忆前面所学的排序算法:插入排序

2、最差插入排序最差(n2)平均平均 (n2)最优最优(n)快速排序最差快速排序最差(n2)平均平均(1.38nlog2n)最优最优(nlog2n)合并排序最差合并排序最差(nlog2n)选择排序选择排序(n2)冒泡排序冒泡排序(n2)4效率若有n个关键字,构成一棵全部由3节点构成的满树,n与h之间的关系为?5 堆中删除元素的算法3 自底向上构造法的时间效率所能想到的求模式的方法:3 最差情况是一种什么情况?高斯消去法的现代商业实现是以LU分解为基础的。1 二叉查找树的特点是?一般的线性方程组是指如下形式的方程组:考虑一种既能够保留经典二叉查找树的好特性/输入:数组A模式:指数组列表中出现次数最多

3、的值。/输出:方程组的增广矩阵等价的上三角矩阵在最差情况下查找和插入的效率属于(logn)针对随机文件的实验指出,堆排序比快速排序运行的慢,但和合并排序还是有竞争力的。7,6,5,2两种构造方法的效率对于随机键的列表构造的AVL树,得到它的平均高度的精确公式被证明是有难度的。例例1、检验数组中元素的唯一性、检验数组中元素的唯一性 蛮力法如何做?时间效率是多少?蛮力法如何做?时间效率是多少?如果先排序,则如何检查元素的唯一性?如果先排序,则如何检查元素的唯一性?只需检查相互紧挨的元素。只需检查相互紧挨的元素。PresortElementUniqueness(A0.n-1)/先对数组排序再验证唯一

4、性先对数组排序再验证唯一性 /输入:数组输入:数组A /输出:若输出:若A没有相等的元素,返回没有相等的元素,返回“true”,否则返回否则返回“false”.对数组排序;对数组排序;for i=0 to n-2 do if Ai=Ai+1 return false return true整个过程整个过程时间效率时间效率是多少?是多少?5 例例2、模式计算、模式计算 模式:模式:指数组列表中指数组列表中出现次数出现次数最多的最多的值值。如如5,1,5,7,6,5,7中中5是模式是模式 所能想到的求模式的方法:所能想到的求模式的方法:用辅助列表列出所有元素及其出现频率。用辅助列表列出所有元素及其

5、出现频率。时间效率如何分析?时间效率如何分析?采用排序的思想采用排序的思想先排序后计算相邻接次数最多的等值元素。先排序后计算相邻接次数最多的等值元素。时间效率如何分析?时间效率如何分析?6 思考:预排序还可以用在什么方面?思考:预排序还可以用在什么方面?查找查找 分析顺序查找和先排序再查找的时间效率分析顺序查找和先排序再查找的时间效率 如果要在同一个列表中进行多次查找,在排序上如果要在同一个列表中进行多次查找,在排序上花费时间是值得的。花费时间是值得的。课堂练习:课堂练习:采用合并排序为预排序,折半查找,要做多少次采用合并排序为预排序,折半查找,要做多少次查找才能使得对一个由查找才能使得对一个

6、由n个元素构成的数组所做个元素构成的数组所做的预排序是有意义的。的预排序是有意义的。7 预排序的其他应用:预排序的其他应用:对点排序,拓扑排序对点排序,拓扑排序 课堂练习:课堂练习:P153 4 8 科学计算中通常需要解多个变量的方程组,这些方程组科学计算中通常需要解多个变量的方程组,这些方程组当中最简单的是线性方程组,也就是变量的次数均为当中最简单的是线性方程组,也就是变量的次数均为1次的。次的。求解线性方程的方法求解线性方程的方法 有利用高斯有利用高斯消元消元的直接法以及的直接法以及迭代法迭代法。体现的变治的思想:体现的变治的思想:将方程组变成一个具有特殊性质的方程组将方程组变成一个具有特

7、殊性质的方程组(上三角矩阵上三角矩阵)9 一般的线性方程组是指如下形式的方程组:一般的线性方程组是指如下形式的方程组:11 112 21121 122 2221 12 2n nn nmmmn nma xa xa xba xa xa xba xa xa xb 1011121111212122222212000nnnnnnnnnnaaaaaaaaaaaaaaa 分消元过程和回代过程。消元过程将原方程组变分消元过程和回代过程。消元过程将原方程组变为上三角方程组,回代过程得到方程组的解。为上三角方程组,回代过程得到方程组的解。1105412321321321xxxxxxxxx 220033301112

8、0333011120111511411122/232121232/13122rrrrrr1 0 1 123xxx,回代后得12 GaussElimination(A1.n,b1.n)/输入:系数矩阵输入:系数矩阵A及常数项及常数项 b /输出:方程组的增广矩阵等价的上三角矩阵输出:方程组的增广矩阵等价的上三角矩阵 for i=1 to n do Ain+1=bi for i=1 to n-1 do for j=i+1 to n do for k=i to n+1 do Ajk=Ajk Aik*Aji/Aii13 高斯消元法的效率分析高斯消元法的效率分析 基本操作:乘法基本操作:乘法 执行次数:

9、易见,三重循环执行次数:易见,三重循环 C(n)(n3)14高斯消去法的高斯消去法的现代商业实现现代商业实现是以是以LU分解为基础分解为基础的。的。15 05412321321321xxxxxxxxx111114112A12121012001L200330112U系数矩阵为系数矩阵为下三角矩阵下三角矩阵L,由主对角线上的,由主对角线上的1以及在高斯消去过程中行的乘数构成以及在高斯消去过程中行的乘数构成上三角矩阵上三角矩阵U是消去的结果是消去的结果可观察出可观察出两个矩阵两个矩阵的乘积的乘积LU等于等于A16记原方程组为记原方程组为 A X=b A=LU 则原方程组为则原方程组为LUX=b其求解

10、转化为两个三角形方程组的求解:其求解转化为两个三角形方程组的求解:LY=b 下三角方程组下三角方程组 UX=Y 上三角方程组上三角方程组1705 21 3221121211yyyyyy22 333 1 2332321xxxxxx与与LY=b,UX=Y对应的方程组如下:对应的方程组如下:易得:易得:(y1,y2,y3)=(1,3,-2),(x1,x2,x3)=(1,0,-1)18 1 一旦的到矩阵一旦的到矩阵A的的LU分解,无论对于什么样的分解,无论对于什么样的右边向量右边向量b,我们都可以对方程组,我们都可以对方程组Ax=b求解,每求解,每次求一个。次求一个。2 LU分解不需要额外的存储空间分

11、解不需要额外的存储空间19111211112121222212221212100010001nnnnnnnnnnnnaaaxxxaaaxxxaaaxxx 逆矩阵的定义:求矩阵求矩阵 A 的逆矩阵,如何转换的逆矩阵,如何转换20求矩阵求矩阵 A 的逆矩阵,转化为求解的逆矩阵,转化为求解n个方程组个方程组 A Xj=bj 其中,其中,bj是单位矩阵是单位矩阵的第的第j列,而列,而Xj 则是逆矩阵的第则是逆矩阵的第j列。列。10001000121n阶矩阵的行列式的计算由递归公式定义:阶矩阵的行列式的计算由递归公式定义:其中,其中,n=1时,时,det A=a11,若,若j为奇数,为奇数,sj=1,若

12、若j为偶数,为偶数,sj=-1例如例如n=3的情形如下:的情形如下:11121322232123212221222311121332333133313231323311 22 3312 23 3121 32 1331 22 1321 12 3332 23 11aaaaaaaaaaaaaaaaaaaaaaaaaa aaa aa a aaa aa aaa a anjjjAsA1detdet22 按照定义计算高阶行列式是不可能的。按照定义计算高阶行列式是不可能的。可利用高斯消元法:可利用高斯消元法:矩阵矩阵A的行列式的行列式=消元后上三角矩阵的行列式消元后上三角矩阵的行列式 =对角线上元素之乘积。对

13、角线上元素之乘积。例如,上式中例如,上式中 det A=2 3 2=1220033011211111411223 课堂练习:课堂练习:考虑高斯消去法的反向替换的运行时间效率类型考虑高斯消去法的反向替换的运行时间效率类型是多少?是多少?24二叉查找树是一种重要的数据结构二叉查找树是一种重要的数据结构看书看书p162-163,思考下列问题:,思考下列问题:1 二叉查找树的特点是?二叉查找树的特点是?2 在平均情况下,查找,插入,删除的效率是?在平均情况下,查找,插入,删除的效率是?3 最差情况是一种什么情况?最差情况是一种什么情况?4 最差情况效率是多少?最差情况效率是多少?25把一个集合变换成一

14、棵二叉查找树是把一个集合变换成一棵二叉查找树是改变表现技改变表现技术术的一个实例的一个实例好处是:好处是:在平均情况下,查找,插入,删除的效率是在平均情况下,查找,插入,删除的效率是(logn)最差情况下,最差情况下,(n),退化成线性的情况,退化成线性的情况26 考虑一种既能够保留经典二叉查找树的好特性考虑一种既能够保留经典二叉查找树的好特性 又能够避免它退化到最差情况的数据结构又能够避免它退化到最差情况的数据结构 两种方法:两种方法:实例化简:实例化简:不平衡二叉查找树变为平衡的形式不平衡二叉查找树变为平衡的形式 改变表现:改变表现:允许一棵查找树的单个节点中不止包允许一棵查找树的单个节点

15、中不止包含一个元素。含一个元素。27 看书看书p163,p166回忆及思考下面问题回忆及思考下面问题 1 AVL树的概念树的概念 2 AVL树查找效率与什么相关?树查找效率与什么相关?3 最差情况最差情况28 n个节点的个节点的AVL树的高度树的高度h 对于随机键的列表构造的对于随机键的列表构造的AVL树,得到它的平均高度的树,得到它的平均高度的精确公式被证明是有难度的。精确公式被证明是有难度的。实验表明,这个高度大约是实验表明,这个高度大约是1.01log2n+0.1 在平均情况下,查找一棵在平均情况下,查找一棵AVL树需要的比较次数和用折树需要的比较次数和用折半查找一个有序数组是几乎相同的

16、。半查找一个有序数组是几乎相同的。在最差情况下查找和插入的效率属于在最差情况下查找和插入的效率属于(logn)缺点:缺点:频繁的旋转,维护平衡以及总体上的复杂性频繁的旋转,维护平衡以及总体上的复杂性3277.1)2(log4405.1log22nhn29 2-3树是一种树是一种特殊特殊的高度平衡树,允许结点的高度平衡树,允许结点最多最多包含包含两两个个关键字。两类结点:关键字。两类结点:2-node、3-node。树中所有叶子必须位于树中所有叶子必须位于同一层同一层。k k k2k1,k22-node3-node30 看书理解看书理解 1 搜索算法搜索算法p167 2 插入算法插入算法p168

17、31 搜索算法搜索算法 如果待搜索树的根是如果待搜索树的根是2-node型结点,搜索操作型结点,搜索操作与二叉搜索树搜索操作相同;与二叉搜索树搜索操作相同;如果待搜索树的根是如果待搜索树的根是3-node型结点,最多只需型结点,最多只需要比较两次就可以知道是搜索成功还是需要向要比较两次就可以知道是搜索成功还是需要向3棵子树继续递归搜索。棵子树继续递归搜索。32 插入算法:插入算法:当一个结点当一个结点x需要插入到需要插入到2-3树中的时候,总是根据它树中的时候,总是根据它的大小关系,把其插入到叶结点中。的大小关系,把其插入到叶结点中。插入前首先调用搜索算法找到待插入的叶结点,如插入前首先调用搜

18、索算法找到待插入的叶结点,如果该叶结点是果该叶结点是2-node型的,则直接插入即可;型的,则直接插入即可;如果该叶结点是如果该叶结点是3-node型的,在按序插入到叶结点后,型的,在按序插入到叶结点后,需要把叶结点拆分(因为插入后使得叶结点的关键需要把叶结点拆分(因为插入后使得叶结点的关键字个数为字个数为3,不满足,不满足2-3树的要求)。树的要求)。拆分过程首先在三个关键字挑选值在中间的关键字,拆分过程首先在三个关键字挑选值在中间的关键字,提到上一层,或者作为新结点,或者插入原来的内提到上一层,或者作为新结点,或者插入原来的内结点中;关键字最小的作为左子树,关键字最大的结点中;关键字最小的

19、作为左子树,关键字最大的作为右子树。如果内结点的插入导致结点过大,按作为右子树。如果内结点的插入导致结点过大,按照上述规则继续拆分。照上述规则继续拆分。33 操作效率与什么相关?操作效率与什么相关?树高树高h 若有若有n个关键字,构成一棵全部由个关键字,构成一棵全部由2节点构成的满树,节点构成的满树,n与与h之间之间的关系为?的关系为?若有若有n个关键字,构成一棵全部由个关键字,构成一棵全部由3节点构成的满树,节点构成的满树,n与与h之间之间的关系为?的关系为?所以高度的范围是:所以高度的范围是:无论在最差还是平均,查找,插入和删除时间效率都是对数类型无论在最差还是平均,查找,插入和删除时间效

20、率都是对数类型1=124221hhn1)1(log1)1(log23nhn1=2 12 3.2 32(13.3)31hhhn 34 看书看书p170-p173回忆及理解回忆及理解 1 堆的定义堆的定义 2 堆的构建方法堆的构建方法 3 自底向上构造法的时间效率自底向上构造法的时间效率 4 自顶向下构造法的时间效率自顶向下构造法的时间效率 5 堆中删除元素的算法堆中删除元素的算法35 1 堆的定义堆的定义 堆是一棵二叉树,树中节点包含键,满足下堆是一棵二叉树,树中节点包含键,满足下面两个条件:面两个条件:树的形状:二叉树树的形状:二叉树 父母:每个节点的键都要大于或等于它子女父母:每个节点的键都

21、要大于或等于它子女的键。的键。36首先把数组按序填充到堆中各个结点首先把数组按序填充到堆中各个结点然后按照自下而上,从右至左的顺序,从最后的父然后按照自下而上,从右至左的顺序,从最后的父母节点开始,到根为止,检查这些节点的值是否母节点开始,到根为止,检查这些节点的值是否都满足子结点比父结点小的约束条件。都满足子结点比父结点小的约束条件。如果不满足则调换父子结点的位置,然后再检查在如果不满足则调换父子结点的位置,然后再检查在新的位置上,是不是满足父母优势要求。新的位置上,是不是满足父母优势要求。用自底向上法为用自底向上法为1,8,6,5,3,7,4构造一个堆构造一个堆37 最坏情况最坏情况 每个

22、位于树的第每个位于树的第i层的键都会移动到叶子层层的键都会移动到叶子层h中中 移动到下一层需要进行几次比较?移动到下一层需要进行几次比较?两次。位于第两次。位于第i层的键移到叶子层层的键移到叶子层h需要几次比较?需要几次比较?需要需要2(h-i)次键值比较。次键值比较。因此有下式:因此有下式:结论结论:一个规模为一个规模为n的堆只需不到的堆只需不到2n次比较就能构造完次比较就能构造完成成 10210i)1(log(22)(2)(2)(hiihiworstnnihihnC层的键第38 将包含新键将包含新键K附加在当前堆的最后一个叶子后面附加在当前堆的最后一个叶子后面 将新键和父母比较交换将新键和

23、父母比较交换 这个键向上走,直到它不大于它的父母为止这个键向上走,直到它不大于它的父母为止用自顶向下法为用自顶向下法为1,8,6,5,3,7,4构造一个堆构造一个堆 思考一个新键插入思考一个新键插入i个元素构成的堆的比较次数个元素构成的堆的比较次数 N个规模问题的比较次数个规模问题的比较次数39 只考虑删除根中的键只考虑删除根中的键 把待删除结点与堆中最后一个键把待删除结点与堆中最后一个键K对调。对调。执行删除操作并把堆的大小减一。执行删除操作并把堆的大小减一。对删除后的堆进行调整直到满足堆的约束条件。对删除后的堆进行调整直到满足堆的约束条件。删除的效率分析:删除的效率分析:取决于交换和规模减

24、一后,树的取决于交换和规模减一后,树的堆化堆化所需的键值所需的键值比较次数。比较次数。因为键值比较次数不可能超过堆的高度的两倍,因为键值比较次数不可能超过堆的高度的两倍,删除的时间也是属于对数类型的。删除的时间也是属于对数类型的。40 堆排序主要包括两个步骤:堆排序主要包括两个步骤:(1)对于给定的数组构造相应的堆。对于给定的数组构造相应的堆。(2)对所构造的堆执行对所构造的堆执行n-1次删除堆的根结点的操次删除堆的根结点的操作,把删除得到的结点保存在给定数组中。作,把删除得到的结点保存在给定数组中。41 用堆排序对数组用堆排序对数组2,9,7,6,5,8排序排序 步骤步骤1:构造堆:构造堆

25、2,9,7,6,5,8 2,9,8,6,5,7 2,9,8,6,5,7 9,2,8,6,5,7 9,6,8,2,5,742 步骤步骤2:删除根结点:删除根结点 9,6,8,2,5,7 7,6,8,2,5 8,6,7,2,5 5,6,7,2 7,6,5,2 2,6,5 6,5,2 5,2 2 43 1 构造堆的效率是多少?构造堆的效率是多少?O(n)2 删除最大键及后续的效率删除最大键及后续的效率 O(nlogn)评价:评价:堆排序不需任何额外的存储空间堆排序不需任何额外的存储空间 针对随机文件的实验指出,堆排序比快速排序运针对随机文件的实验指出,堆排序比快速排序运行的慢,但和合并排序还是有竞争

26、力的。行的慢,但和合并排序还是有竞争力的。44 实例化简实例化简-AVL树树 查找效率最坏查找效率最坏 平均平均 改变表现改变表现-2-3树树 查找效率最坏,平均查找效率最坏,平均 堆堆 两种构造方法的效率两种构造方法的效率 删除的效率删除的效率 堆排序堆排序 效率效率45法则法则 计算计算n次多项式的值的算法。次多项式的值的算法。例如,例如,n=4,直接计算,需要多少次乘法?直接计算,需要多少次乘法?4+3+2+1=10=n(n-1)/2次乘法,次乘法,用如下用如下Horner/秦九韶算法只需要秦九韶算法只需要4=n次乘法:次乘法:5)1)3)12(532)(234xxxxxxxxxp465

27、)1)3)12(532)(234xxxxxxxxxp当当x=3时,计算时,计算p(x)系数系数2-131-5X=3223+(-1)=553+3=18518+1=55553+(-5)=160霍纳法则的有趣特性霍纳法则的有趣特性该算法在计算该算法在计算p(x)在某些点在某些点x0上的值所产生的上的值所产生的中间数字中间数字恰好可以恰好可以作为作为p(x)除以除以x-x0的商的系数的商的系数,而算法的最后结果,除了等于,而算法的最后结果,除了等于p(x0)以外,还等于这个除法的余数。以外,还等于这个除法的余数。即,当即,当x0=3时时 p(x)=2x4-x3-3x2+x-5 除以除以x-3为为2x3

28、+5x2+18x+55 和和 16047 二进制幂二进制幂 计算计算an的算法,有两种方法:的算法,有两种方法:n的二进制中间结果1101aa2*a=a3(a6)2*a=a13(a2)2=a6n的二进制中间结果1101aaa*a4=a5a5*a8=a13a8a4a2a2i的值48问题化简是一个重要的解题策略问题化简是一个重要的解题策略如解析几何的根本思想是把几何问题化为代数问如解析几何的根本思想是把几何问题化为代数问题题49原问题:原问题:求能够被求能够被m和和n整除的最小整数记为整除的最小整数记为lcm(m,n)常用算法:常用算法:m和和n所有公共质因数乘以所有公共质因数乘以m的不在的不在n

29、中的质因数,中的质因数,再乘以再乘以n不在不在m中的质因数中的质因数 24=2223 60=2235 lcm(24,60)=(223)25=120缺陷:缺陷:需要连续素数的表需要连续素数的表50关联关联 m和和n的的最大公约数最大公约数gcd(m,n)是是m和和n所有公共质所有公共质因子的积。因子的积。并且并且lcm(m,n)=mn/gcd(m,n)问题化简问题化简 转换为求最大公约数转换为求最大公约数gcd(m,n)的高效的欧几里德的高效的欧几里德算法算法51原问题:原问题:计算图中两个顶点之间的路径数量计算图中两个顶点之间的路径数量问题化简:问题化简:可利用邻接矩阵,可以证明:可利用邻接矩

30、阵,可以证明:图图G中顶点中顶点vi到顶点到顶点vj之间长度为之间长度为k的路径数的路径数量等于量等于AK的第的第(i,j)个元素个元素,其中,其中A是图是图G的的邻接矩阵。邻接矩阵。52原问题:原问题:求函数的最大值或最小值求函数的最大值或最小值 问题化简:问题化简:已知函数的最大值的算法已知函数的最大值的算法 求其最小值求其最小值 min f(x)=-max-f(x)函数最优化:函数最优化:把最优化问题转化为函数极值问题,再由把最优化问题转化为函数极值问题,再由 f(x)=0求临界点。求临界点。53许多许多决策优化问题决策优化问题可以转化为可以转化为线性规划线性规划问题。问题。例子:进行例

31、子:进行1亿美元的投资。该笔钱分成亿美元的投资。该笔钱分成3种类型种类型的投资:股票、债券和现金。预期收益各是的投资:股票、债券和现金。预期收益各是10%,7%,3%。并且投资在股票上的资金不能超过债。并且投资在股票上的资金不能超过债券的券的1/3,现金投资至少相当于股票和债券投资,现金投资至少相当于股票和债券投资总额的总额的25%。这笔投资如何才能最大化收益?。这笔投资如何才能最大化收益?54线性规划问题是一个线性规划问题是一个多变量线性函数多变量线性函数的最优化问的最优化问题。题。这些变量要满足的约束是以这些变量要满足的约束是以线性等式线性等式或或线性不等线性不等式式的形式出现。的形式出现

32、。可以为各种应用建模,如排班,交通和通信网络可以为各种应用建模,如排班,交通和通信网络规划,石油勘探和提纯。规划,石油勘探和提纯。解线性规划问题的算法:解线性规划问题的算法:单纯形法单纯形法 Karmarkar算法算法55 整数线性规划问题:把变量的值限定在整数。整数线性规划问题:把变量的值限定在整数。目前还没有一个已知的多项式级的求解算法。目前还没有一个已知的多项式级的求解算法。56 许多问题用图表示后,求解很容易。通常用图的许多问题用图表示后,求解很容易。通常用图的顶顶点点表示问题的表示问题的状态状态,边边表示状态之间的可能表示状态之间的可能转变转变。表。表示问题的图称为示问题的图称为状态

33、空间图状态空间图。例如例如过河问题过河问题:一个农夫希望用一条小船把一只一个农夫希望用一条小船把一只狼狼,一头,一头羊羊,一篮,一篮白菜白菜从河的北岸渡到河的南岸,由于船小只能够容纳从河的北岸渡到河的南岸,由于船小只能够容纳人狼羊菜中的人狼羊菜中的两个两个。需要考虑的约束条件是:在没有。需要考虑的约束条件是:在没有人的情况下,狼和羊不能在一起,羊和白菜不能单独人的情况下,狼和羊不能在一起,羊和白菜不能单独在一起。求解一个渡船的方案,把狼、羊、白菜都运在一起。求解一个渡船的方案,把狼、羊、白菜都运过去。过去。57 对过河问题,画出人、狼、羊、菜的状态对过河问题,画出人、狼、羊、菜的状态空间图后即

34、可以发现有两条路径,这两条空间图后即可以发现有两条路径,这两条路径就是问题的两个解。路径就是问题的两个解。58解:用四维用四维0-1向量表示向量表示(人人,狼狼,羊羊,菜菜)在河西岸的状态在河西岸的状态(在河西岸则分量取在河西岸则分量取1,否则取否则取0),共有共有24=16 种状态种状态.在河东岸的状态类似记作在河东岸的状态类似记作.由题设由题设,状态状态(0,1,1,0),(0,0,1,1),(0,1,1,1)是不允许是不允许的的,从而对应状态从而对应状态(1,0,0,1),(1,1,0,0),(1,0,0,0)也是也是不允许的不允许的.以可允许的以可允许的10个状态向量作为顶点个状态向量

35、作为顶点,将可能互相将可能互相转移的状态用线段连接起来构成一个图转移的状态用线段连接起来构成一个图.根据此图便可找到渡河方法根据此图便可找到渡河方法.59(1,1,1,1)(1,1,1,0)(1,1,0,1)(1,0,1,1)(1,0,1,0)(0,0,0,0)(0,0,0,1)(0,0,1,0)(0,1,0,0)(0,1,0,1)(0,1,0,1)(0,1,0,0)(0,0,1,0)(0,0,0,1)(0,0,0,0)(1,0,1,0)(1,0,1,1)(1,1,0,1)(1,1,1,0)(1,1,1,1)河西=(人,狼,羊,菜)河东=(人,狼,羊,菜)将10个顶点分别记为A1,A2,A10,则渡河问题化为在该图中求一条从A1到A10的路.从图中易得到两条路:A1 A6 A3 A7 A2 A8 A5 A10;A1 A6 A3 A9 A4 A8 A5 A10.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(算法设计与分析变治法2021最全课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

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


163文库-Www.163Wenku.Com |网站地图|