陈玉福算法设计与分析期末考试题-简答部分

        陈述算法在最坏时间下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么意义?陈述算法在最坏时间下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么意义?陈述算法在最坏时间下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么意义?

        算法在最坏情况下的时间复杂度称之为最坏时间复杂度,一般不特别说明,所指的时间复杂度均是最坏时间复杂度。这样做的原因是:最坏时间复杂度保证了任何问题输入实例运行时间的上界,保证了算法的运行时间不会比最坏时间复杂度情况下的运行时间更长。

        平均时间复杂度是指所有可能的输入实例均以同等概率出现的情况下,算法的期望运行时间。

阐述动态规划算法与贪心算法的区别,他们都有哪些优势和劣势?

        贪心算法,顾名思义,在决策中总是做出在当前看来是最好的选择,并不从整体最优上加以考虑,它所做的选择只是某种意义上局部最优解。

        基本要素:最优子结构性质和贪心选择性质。

        动态规划算法是处理分段过程最优化问题的一类有效方法,将待求解的问题分解成若干个子问题,先求解子问题,然后再从子问题的解中求出原问题的解。

        基本要素:最优子结构性质和重叠子问题性质。

        相同点:动态规划算法和贪心算法都是一种递推算法,均由局部最优解来推导全局最优解,都要求具有最优子结构性质。

        区别:1)动态规划算法中,每步做出的选择往往依赖于相关子问题的解,因而只有在解出相关子问题时才能做出选择,利用子问题重叠性质,对每一个子问题只计算一次,将其解保存在一个表格中。当再次要解决子问题时,只是简单地调用一下已有的结果。而贪心算法则是仅在当前状态下做出最好的选择,即局部最优选择,然后再去解这个选择后产生的相应的子问题。

                  2)动态规划算法通常以自底向上的方式解各子问题,而贪心算法通常自顶向下的方式进行。

阐述回溯算法与分支限界算法的共同点和不同点,提高算法效率的关键是什么?

        共同点:回溯算法和分支限界算法都是在解空间树中搜索问题的可行解或最优解。

        不同点

        (1)求解目标不同:回溯算法的求解目标是找出解空间树中满足约束条件的所有解;分支限界法的求解目标是找出满足约束条件的一个解。

        (2)搜索方式不同:回溯法采用深度优先的搜索方式,直到达到问题的一个可行解或经判断沿此路径不会达到问题的可行解或最优解时,停止向前搜索,并沿原路返回到该路径上最后一个还可扩展的节点。然后,从该节点出发朝新的方向纵深搜索。分支限界法采用宽度优先的搜索方式,它将活结点存放在一个特殊的表中,在扩展节点处,首先生成其所有的儿子节点,将那些导致不可行解或非最优解的儿子节点舍弃,其余儿子节点加入活结点表中。然后从活结点表中取出一个节点作为当前扩展节点,重复上述节点扩展过程。

分支界限的约束函数、限界函数、优先级函数分别起到什么作用

        约束函数在扩展节点处剪去不满足约束的子树;限界函数剪去不能达到最优解的子树;

贪心算法设计的关键是什么?应该注意哪些问题?

        所谓贪心算法是指,在问题求解时,总是做出在当前看来最好的选择,贪心算法并未考虑整体最优,而是某种意义上的局部最优贪心算法没有固定的算法框架,贪心算法设计的关键是贪心策略的选择。需要注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备后无效性(即某个状态以后的过程不会影响以前的状态,只与当前状态有关)。

        贪心算法的基本思路:

                1.建立数学模型来描述问题;

                2.把求解的问题分解成若干个子问题;

                3.对每个子问题求解,得到子问题的局部最优解;

                4.把子问题的局部最优解合成原问题的一个解。

动态规划算法依据什么原理?设计算法主要有哪几步?需要注意什么?

        动态规划算法是处理分段过程最优化的基本方法。基于最优化原则:无论初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的状态构成一个最优决策序列。最优子结构性质和子问题重叠性质是计算模型采用动态规划算法求解的两个基本要素。

        设计算法主要步骤:

        1.分析最优解的结构;

        2.建立递归关系,有必要验证递归关系式是否保持最优化原则;

        3.计算最优值:要根据递归关系式自底向上的方式进行计算,在计算的过程中保存已解决的子问题的答案。每个子问题只计算一次,而在后面需要的时候只是简单的查一下,从而避免大量的重复计算;

        4.构造最优解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值