中科院陈玉福计算机算法设计与分析期末简答题答案
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( B )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4、在下列算法中有时找不到问题解的是( B )。
A、蒙特卡罗算法
B、拉斯维加斯算法
C、舍伍德算法
D、数值概率算法
5. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
7、衡量一个算法好坏的标准是(C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
8、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
9. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
10、下列随机算法中运行时有时候成功有时候失败的是(C )
A 数值概率算法
B 舍伍德算法
C 拉斯维加斯算法
D 蒙特卡罗算法
11.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先(回溯法)12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
13.备忘录方法是那种算法的变形。( B )
A、分治法
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4、在下列算法中有时找不到问题解的是( B )。
A、蒙特卡罗算法
B、拉斯维加斯算法
C、舍伍德算法
D、数值概率算法
5. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
7、衡量一个算法好坏的标准是(C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
8、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
9. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
10、下列随机算法中运行时有时候成功有时候失败的是(C )
A 数值概率算法
B 舍伍德算法
C 拉斯维加斯算法
D 蒙特卡罗算法
11.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
13.备忘录方法是那种算法的变形。( B )
A、分治法
B、动态规划法
中科院陈玉福计算机算法设计与分析期末简答题答案
1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势?
共通点:动态规划和贪心算法都是一种递推算法,均有局部最优解来推导全局最优解
区别:贪心算法中,作出的每步贪心决策都无法改变,每一步的最优解一定包含上一步的
最优解,而上一部之前的最优解则不作保留。
动态优化算法,全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解
动态规划算法利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。不同的子问题个数随着输入问题的规模呈多项式增长,因此,动态规划算法通常只需要多项式时间,从而获得较高的解题效率。但它需要计算之前所有情况花费,更加耗费空间。
贪心算法所作的选择依赖于以往所作过的选择,但决不依赖于将来的选择,这使得算法在编
码和执行过程中都有一定的速度优势。贪心算法是只是找局部最优解,不一定是全局最优解。
2. 试比较回溯法与分枝限界算法,分别谈谈这两个算法比较适合的问题?
二者都是在解空间树里搜索问题的可靠解或最优解,但是搜索的方式不同,回溯法采用深
度优先的方式,直到达到问题的一个可行解,或经判断沿此路径不会达到问题的可行解或最优解时,停止向前搜索,并沿原路返回到该路径上最后一个还可扩展的节点,然后,从该节点出发朝新的方向纵深搜索。分枝限界法采用的是宽度优先的方式,它将活节点存放在一个特殊的表中,其策略是,在扩展节点处,首先生成其所有的儿子节点,将那些导致不可行解或导致非最优解的儿子节点舍弃,其余儿子节点加入活节点表中,然后,从活节点中取出一个节点作为当前扩展节点,重复上述节点中扩展过程。可以看出,回溯法一般用于求问题的一个可行解,而分枝限界可以用于求出问题的所有可行解。
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4、在下列算法中有时找不到问题解的是( B )。
A、蒙特卡罗算法
B、拉斯维加斯算法
C、舍伍德算法
D、数值概率算法
5. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
7、衡量一个算法好坏的标准是(C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
8、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
9. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
10、下列随机算法中运行时有时候成功有时候失败的是(C )
A 数值概率算法
B 舍伍德算法
C 拉斯维加斯算法
D 蒙特卡罗算法
11.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
13.备忘录方法是那种算法的变形。( B )
A、分治法
B、动态规划法
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4、在下列算法中有时找不到问题解的是( B )。
A、蒙特卡罗算法
B、拉斯维加斯算法
C、舍伍德算法
D、数值概率算法
5. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
7、衡量一个算法好坏的标准是(C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
8、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
9. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
10、下列随机算法中运行时有时候成功有时候失败的是(C )
A 数值概率算法
B 舍伍德算法
C 拉斯维加斯算法
D 蒙特卡罗算法
11.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
13.备忘录方法是那种算法的变形。( B )
A、分治法
B、动态规划法
最新计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( B )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4、在下列算法中有时找不到问题解的是( B )。
A、蒙特卡罗算法
B、拉斯维加斯算法
C、舍伍德算法
D、数值概率算法
5. 回溯法解旅行售货员问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
7、衡量一个算法好坏的标准是(C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
8、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
9. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
10、下列随机算法中运行时有时候成功有时候失败的是(C )
A 数值概率算法
B 舍伍德算法
C 拉斯维加斯算法
D 蒙特卡罗算法
11.下面不是分支界限法搜索方式的是( D )。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先(回溯法)12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
13.备忘录方法是那种算法的变形。( B )
A、分治法
算法题__计算机算法设计与分析期末试题4套(含答案)
(1)用计算机求解问题的步骤:
1、问题分析
2、数学模型建立
3、算法设计与选择
4、算法指标
5、算法分析
6、算法实现
7、程序调试
8、结果整理文档编制
(2)算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程
(3)算法的三要素
1、操作
2、控制结构
3、数据结构
算法具有以下5个属性:
有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。不存在二义性。只有一个入口和一个出口
可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:
正确性:算法应满足具体问题的需求;
可读性:算法应该好读,以有利于读者对程序的理解;
健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般这两者与问题的规模有关。
经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法
迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。
利用迭代算法解决问题,需要做好以下三个方面的工作:
一、确定迭代模型。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
计算机算法设计与分析期末考试复习题
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用()实现的算法。 [单选题] *
A、分治策略(正确答案)
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是()。 [单选题] *
A、找出最优解的性质(正确答案)
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是()的一搜索方式。 [单选题] *
A、分支界限法(正确答案)
B、动态规划法
C、贪心法
D、回溯法
4、最长公共子序列算法利用的算法是()。 [单选题] *
A、分支界限法
B、动态规划法(正确答案)
C、贪心法
D、回溯法
5. 回溯法解TSP问题时的解空间树是()。 [单选题] *
A、子集树(正确答案)
B、排列树
C、深度优先生成树
D、广度优先生成树
6.下列算法中通常以自底向上的方式求解最优解的是()。 [单选题] *
A、备忘录法
B、动态规划法(正确答案)
C、贪心法
D、回溯法
7、衡量一个算法好坏的标准是()。 [单选题] *
A 运行速度快
B 占用空间少
C 时间复杂度低(正确答案)
D 代码短
8、以下不可以使用分治法求解的是()。 [单选题] *
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题(正确答案)
9. 实现循环赛日程表利用的算法是()。 [单选题] *
A、分治策略(正确答案)
B、动态规划法
C、贪心法
D、回溯法
10、实现最长公共子序列利用的算法是()。 [单选题] *
A、分治策略
B、动态规划法(正确答案)
C、贪心法
D、回溯法
11.下面不是分支界限法搜索方式的是()。 [单选题] *
A、广度优先
计算机算法设计与分析期末试题4套(含答案)
(1)用计算机求解问题的步骤:
1、问题分析
2、数学模型建立
3、算法设计与选择
4、算法指标
5、算法分析
6、算法实现
7、程序调试
8、结果整理文档编制
(2)算法定义:
算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程
(3)算法的三要素
1、操作
2、控制结构
3、数据结构
算法具有以下5个属性:
有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。不存在二义性。只有一个入口和一个出口
可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
算法设计的质量指标:
正确性:算法应满足具体问题的需求;
可读性:算法应该好读,以有利于读者对程序的理解;
健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。
效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般这两者与问题的规模有关。
经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法
迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。
利用迭代算法解决问题,需要做好以下三个方面的工作:
一、确定迭代模型。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
《算法分析与设计》期末试题及参考答案
《算法分析与设计》期末试题及参考答案
一、简要回答下列问题:
1.算法重要特性是什么?
1. 确定性、可行性、输入、输出、有穷性
2.
2.算法分析的目的是什么?
2. 分析算法占用计算机资源的情况,对算法做出比较和评价,设计出额更好的算法。
3.
3.算法的时间复杂性与问题的什么因素相关?
3. 算法的时间复杂性与问题的规模相关,是问题大小n的函数。
4.算法的渐进时间复杂性的含义?
4.当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用T(n)的数量级(阶)评价算法。时间复杂度T(n)的数量级(阶)称为渐进时间复杂性。
5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?
5. 最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不同输入实例下的
算法所耗时间。最坏情况下的时间复杂性取的输入实例中最大的时间复杂度:
W(n) = max{ T(n,I) } , I∈Dn
平均时间复杂性是所有输入实例的处理时间与各自概率的乘积和:
A(n) =∑P(I)T(n,I) I∈Dn
6.简述二分检索(折半查找)算法的基本过程。
6. 设输入是一个按非降次序排列的元素表A[i:j] 和x,选取A[(i+j)/2]与x比较,
如果A[(i+j)/2]=x,则返回(i+j)/2,如果A[(i+j)/2]<x,则A[i:(i+j)/2-1]找x,否则在A[ (i+j)/2+1:j] 找x。上述过程被反复递归调用。
7.背包问题的目标函数和贪心算法最优化量度相同吗?
计算机算法设计与分析期末考试复习题
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用(A)实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是(A)。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解3、最大效益优先是(A)的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法4、最长公共子序列算法利用的算法是(B)。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法5.回溯法解TSP问题时的解空间树是(A)。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是(B)。A、备忘录法B、动态规划法C、贪心法D、回溯法
7、衡量一个算法好坏的标准是(C)。
A运行速度快B占用空间少C时间复杂度低D代码短
8、以下不可以使用分治法求解的是(D)。
9.实现循环赛日程表利用的算法是(A)。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法10、实现最长公共子序列利用的算法是(B)。
A、分治策略
B、动态计划法
C、贪心法
D、回溯法11.下面不是分支界限法搜索方式的是(D)。
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
12.下列算法中通常以深度优先方式系统搜索问题解的是(D)。A、备忘录法B、动态规划法C、贪心法D、回溯法
13.一个问题可用动态规划算法或贪心算法求解的关键特征是问题的(B)。
A、重叠子问题
B、最优子结构性质
C、贪心选择性质
D、定义最优解14.广度优先是(A)的一搜索方式。
A、分支界限法
B、动态规划法
计算机算法设计与分析期末考试复习题
1、二分搜索算法是利用( A )实现的算法。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
2、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的性质
B、构造最优解
C、算出最优解
D、定义最优解
3、最大效益优先是( A )的一搜索方式。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法
4、最长公共子序列算法利用的算法是( B )。
A、分支界限法
B、动态规划法
C、贪心法
D、回溯法5。回溯法解TSP问题时的解空间树是( A )。
A、子集树
B、排列树
C、深度优先生成树
D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
7、衡量一个算法好坏的标准是(C )。
A 运行速度快
B 占用空间少
C 时间复杂度低
D 代码短
8、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题
B 选择问题
C 归并排序
D 0/1背包问题
9. 实现循环赛日程表利用的算法是( A )。
A、分治策略
B、动态规划法
C、贪心法
D、回溯法
10、实现最长公共子序列利用的算法是( B ).
A、分治策略
B、动态规划法
C、贪心法
D、回溯法11.下面不是分支界限法搜索方式的是( D ).
A、广度优先
B、最小耗费优先
C、最大效益优先
D、深度优先
12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法
B、动态规划法
C、贪心法
D、回溯法
13. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B ).
A、重叠子问题
B、最优子结构性质
C、贪心选择性质
计算机算法设计与分析期末考试复习题
9、 以深度优先方式系统搜索问题解的算法称为
回溯法 。
10、 任何可用计算机求解的问题所需的时间都与其
规模 有关。
11、 计算一个算法时间复杂度通常可以计算 循环次数、基本操作的频率
或计算步。
12、 回溯法搜索解空间树时,常用的两种剪枝函数为
约束函数 和 限界函数
14、 解决 0/1 背包问题可以使用动态规划、 回溯法和分支限界法,其中不需要排序的是 _动
原问题和子问题使
用相同的方法解
30、下面问题(B )不能使用贪心法解决。
A 单源最短路径问题
BN 皇后问题 C 最小花费生成树问题
31、下列算法中不能解决 0/1 背包问题的是(A )
D 背包问题
A 贪心法 B 动态规划 C 回溯法 D 分支限界法
32、回溯法搜索状态空间树是按照( C )的顺序。
1、二分搜索算法是利用(
)实现的算法。
分治策略
B、动态规划法
C、贪心法
D、回溯法
2 F 列不是动态规划算法基本步骤的是 、(
找出最优解的性质
B、构造最优解
C、算出最优解
定义最优解
3 最大效益优先是( 、
分支界限法
B、动态规划法
)的一搜索方 式。
贪心法
回溯法
4 最长公共子序列算法利用的算法是( 、
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 贪心算法和动态规划算法有什么共同点和区别?它们都有那些优势和劣势?
共通点:动态规划和贪心算法都是一种递推算法,均有局部最优解来推导全局最优解
区别:贪心算法中,作出的每步贪心决策都无法改变,每一步的最优解一定包含上一步的
最优解,而上一部之前的最优解则不作保留。
动态优化算法,全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解
动态规划算法利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。不同的子问题个数随着输入问题的规模呈多项式增长,因此,动态规划算法通常只需要多项式时间,从而获得较高的解题效率。但它需要计算之前所有情况花费,更加耗费空间。
贪心算法所作的选择依赖于以往所作过的选择,但决不依赖于将来的选择,这使得算法在编
码和执行过程中都有一定的速度优势。贪心算法是只是找局部最优解,不一定是全局最优解。
2. 试比较回溯法与分枝限界算法,分别谈谈这两个算法比较适合的问题?
二者都是在解空间树里搜索问题的可靠解或最优解,但是搜索的方式不同,回溯法采用深
度优先的方式,直到达到问题的一个可行解,或经判断沿此路径不会达到问题的可行解或最优解时,停止向前搜索,并沿原路返回到该路径上最后一个还可扩展的节点,然后,从该节点出发朝新的方向纵深搜索。分枝限界法采用的是宽度优先的方式,它将活节点存放在一个特殊的表中,其策略是,在扩展节点处,首先生成其所有的儿子节点,将那些导致不可行解或导致非最优解的儿子节点舍弃,其余儿子节点加入活节点表中,然后,从活节点中取出一个节点作为当前扩展节点,重复上述节点中扩展过程。可以看出,回溯法一般用于求问题的一个可行解,而分枝限界可以用于求出问题的所有可行解。
3. 何谓最优化原理?采用动态规划算法必须满足的条件是什么?动态规划算法是通过什
么问题的什么特性提高效率的?
一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质。最优子结构性质,子问题重叠性质是计算模型采用动态规划算法求解的两个基本要素。
动态规划算法利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。不同的子问题个数随着输入问题的规模呈多项式增长,因此,动态规划算法通常只需要多项式时间,从而获得较高的解题效率
4. 什么是多项式时间算法?
若存在一个常数C,使得对于所有n>=0,都有|f(n)| <= C*|g(n)|,则称函数f(n)是O(g(n))。时间复杂度是O(p(n))的算法称为多项式时间算法,这里p(n)是关于n的多项式。
时间复杂度为O(nlog(n))、O(n^3)的算法都是多项式时间算法,时间复杂度为O(n^log(n))、O(n!)、O(2^n)的算法是指数时间算法。
一个优化问题如果已经找到了多项式时间算法,则称该问题为多项式时间可解问题,并
将这类问题的集合记为P,因此多项式时间可解问题就称为P类问题。。
5. 多项式时间确定性算法与多项式时间非确定性算法的主要区别是什么?
在算法计算复杂性的研究中,一个算法如果存在图灵机可计算的多项式时间计算复杂性算法,就将这个算法归入P类,如果存在非确定性图灵机可计算的多项式时间计算复杂性算法,就将其归入NP类
6. 陈述算法在最坏情况下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么实际意义?
最坏时间复杂度式算法在最差情况下的时间复杂度,也就是花费时间最多的情况。平均时间复杂度是因为它是期望的运行时间。它更有意义,现实中,平均运行时间很难通过分析得到,一般都是通过运行一定数量的实验数据后估算而来的。而最坏运行时间是一种保证,那就是运行时间不会再坏了。在应用中,这是最重要的需求,通常我们提到的运行时间都是最坏情况下的运行时间,时间复杂度是最坏情况下的时间复杂度。
7. 在对算法进行复杂性分析时,强调渐进复杂性的意义是什么?
当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍。使用渐进表达式可以略去低阶项所留下的主项,更加简单。P11
8. 在对算法进行复杂性分析时,时间复杂度用什么量反映的?其间做了什么假定?复杂性函数的渐进上界反映了复杂性函数的什么性质?
通常我们提到的运行时间都是最坏情况下的运行时间,时间复杂度是最坏情况下的时间复杂度
我们假定N充分大,渐近上界也反映了复杂性函数在N充分大的情况下复杂性的上界
9. 什么是NPC问题?证明一个问题是NPC问题一般采用哪几个步骤?
第一,证明该问题是NP问题
第二,选取一个已知的NPC问题
第三,构造一个从二中的问题到题目中问题的变换
第四,证明这个变换是多项式变换
10. 已知求解问题的两个算法的时间复杂性函数分别为和。现在有两台计算机,它们的速度比为64。如果采用算法,计算机求解问题的一个实例所用的时间为,那么,采用算法时,计算机能够在时间内求解问题的多大输入规模的实例?
解决这类问题,只要列出式子即可
11.在连通图无向图的宽度优先搜索树和深度优先搜索树中,哪棵树的最长路径可能会更长些?试说明你的理由。
宽度优先搜索树可能会长些
12.确定性图灵机模型与非确定性图灵机模型的主要区别在那里?确定性图灵机模型下算法的时间复杂度和空间复杂度指的是什么?
二者的区别就在于,确定性的每一步只有一种选择,而非有多种选择,由些可见,非的计算能力比确定性强得多。
时间复杂性即从开妈直至进入停机状态所运行的步数,同理空间复杂度
13.归并排序算法和快速排序算法各自强调了那个方面?各自提高效率的策略是什么?
归并由分解与合并两部分组成。提高的话一个是当元素比较少时,可以直接进行排序,比如插入排序。这比分解合并要快得多。二是尽量采用链表结构,因链表结构的移动要快于数组
快排也是利用分治法排序。主要过程为划分。一些改进的方法在确定第K小元素时,就是将r个元素分为一段这种方法复杂性可达到O(n)
二.(20分)试用Prim算法求解下面无向赋权图的最小生成树,指出最小生成树及该树中各边被选中的先后次序;写出算法的基本步骤。
解:根据Prim算法,从V1开始,选择10 V1和V4加入集合
找出集合中顶点相邻的最小权值点V7加入集合
依次为V 1 V4 V7 V8 V3V5 V2 V6
基本步骤:从第一个结点开始,加入集合A
每次选择A中顶点与A外的顶点权值最小的顶点,加入集合A
直到集合A包含所有顶点
三.(20分)用LC-分枝限界算法求解0/1背包问题:,物品重量和价值分别是:
w=(2,3,4,6,9) p=(8,9,10,12,18)
1.画出由算法生成的状态空间树,并标明各节点的优先级的值;
2.给出各节点被选作当前扩展节点的先后次序;
3.给出最优解。