算法设计与分析选择题、简答题、证明题整理

一、选择题

  1. 排序问题不适合用动态规划的方法解决
  2. 计算过程与算法相比,缺少有穷性
  3. 对回溯法描述正确的是
    A 解必须表示成2n-元组的形式(x1,x1,…,xn,xn)
    B 回溯法的解必须满足一组综合的约束条件,称为解函数
    C 满足显式约束条件的所有元组不能确定一个可能的解空间
    D 隐式约束描述于元组中元素xi必须被此相关的情况
D
A n-元组
B 解空间
C 能
  1. 以比较为基础的分类算法在最坏情况下的时间下届是oumiga(nlogn)

二、简答题

  1. 以比较为基础的检索算法的时间下界
O(logn)
FIND(n)不大于树中的根到一个叶子结点的最长路径的距离,在所有的树中都必定有n个内结点与X在A中可能的n中情况相对应,所有内结点所在的级数小于等于k,最多有2^k-1个内结点,因此n<=2^k-1,FIND(n)=k>=log(n+1)(取上)
  1. 算法的重要特性
确定性、可行性、输入、输出、有穷性
  1. 分治法的三个主要步骤
- 将n个输入分成k个不同的可独立求解的子问题
- 求出这些子问题的解
- 通过适当方法将子问题合并成整个问题的解
  1. 什么是最优性原理?举一个最优性原理不成立的例子
无论过程的初始状态和初始决策是什么,其余的决策都必须相对于初始决策所产生的状态构成一个最优决策序列。
多段图问题:路径和改成路径乘积并允许出现负数
(成立问题:流水线调度问题、货郎担问题)
  1. 举例说明贪心算法中将目标函数直接作为度量标准不一定能得到最优解
背包问题:
M=6;
(p1,p2,p3)=(6,4,3);
(w1,w2,w3)=(6,2,1);
取效益值最大的选了p1,此时背包已经无法再继续装载,(1,0,0)不是最优解,最优解是(0.5,1,1)
  1. 简述回溯法中问题状态、解状态和答案状态的定义
问题状态:树中的每一个节点确定所求解的一个问题状态
解状态:解状态是这样一些状态s,对于这些问题状态,由根到S的这条路径确定了这个解空间中的一个元组
答案状态:答案状态是这样一些状态s,对于这些解状态而言,由根到s的这条路径确定了问题的一个解
元组大小可变的树中,所有的结点都是解状态;在元组大小不变的树中,只有叶结点是解状态。
解状态的树结构称为状态空间树
  1. 贪心方法设计求解的核心问题是什么?给出贪心方法解决背包问题的形式化描述,包括约束条件、可行解、目标函数和最优解
核心问题是选择能产生问题最优解的最优度量标准
形式化描述:
极大化:sigma(PiXi)
约束条件:sigma(WiXi)<=M
0<=Xi<=1,Pi>0,Wi>0,1<=i<=n
满足约束条件的任一集合(X1,...,Xn)是一个可行解,使目标函数取得最大值的可行解是最优解

  1. 采用Merge算法进行一次归并,两个待归并序列的元素数均为m,试问Merge最好和最坏情况下的执行时间分别是多少?简要解释。
最好情况下是O(n),最坏情况下是O(n^2)
  1. 贪心方法对于0/1背包问题能否得到最优解?简述理由
不一定,按物品效益值的非递增次序装包不能得到最优解
  1. 简述回溯法与分支限界法的主要区别
回溯法用限界函数去杀死还没有全部生成其儿子节点的那些活节点,而分支限界法E-结点一直保持到死为止。
  1. 分支限界算法中,c🎩和c是什么关系》给出一种求解15谜问题的c🎩定义
c🎩是c的下界,c🎩=f(x)+g🎩(x)
f是由根到结点x路径的长度,g🎩是以x为根的子树中由x到目标状态的一条最短路径长度的估计值
  1. NP难问题和NP完全问题有什么区别?
NP完全问题一定是NP难问题,NP难问题不一定是NP完全问题
NP问题:能在多项式时间内验证得出一个正确解的问题
NP完全问题:存在这样一个NP问题,所有的NP问题哦度可以约化到它
NP难问题:所有的NP问题都可以约化到它,但它不一定是一个NP问题
COOK定理:可满足在P内,当且仅当P=NP
可满足性问题:对于变量的任意一组真值指派确定的公式表示为真
  1. LC检索算法的思想
选取成本函数估计值最小的活节点作为下一个E-结点
  1. 求解最优二分检索树算法OBST中,在计算C(i,j)时,Knuth通过吧检索限制在什么范围内得到最优的K,使算法的时间复杂度由O(n3)降到O(n2)
使C(i,j)去最小值的k可以在区间R(i,j-1)<=k<=R(i+1,j)中求出,而不必在i<=k<=j这个相对较大的范围内求出
  1. LC算法是否每次都能选择出具有最小结点成本函数的结点作为下一个E结点?简述理由
不一定。
如果满足以下两点:
- 对于每一个结点X,有c🎩<=c且对于答案结点X有c🎩=c
- 采用改进后的算法LC1:从活节点表中删除元素时判断是否为答案结点
  1. 给出活节点、死节点、E-结点的定义,由此说明回溯法与分支限界法的联系和区别
活节点:自己已经生成而其所有儿子节点还没有全部生成的结点,表示已经开始处理但是还没有处理完的结点集合。
死节点:不需要再进一步扩展或者儿子结点已经全部生成的结点,表示已处理完毕的结点
E-结点:当前正在生成其儿子结点的结点,即正在处理的结点
  1. 给出LC分支限界检索中活节点表使用的数据结构,并阐述LC分支限界检索的检索策略
队列(FIFO)、堆栈(LIFO)
  1. 给出回溯法求解问题的思想及步骤
  1. 回溯法运行过程中,状态空间树的所有节点没有完全遍历到,但为什么没有丢解?
不满足条件的节点被杀死,所以后面的节点即使没有遍历到也不会影响最终的结果。

三、证明题

  1. 证明对于带有期限的作业排序问题用贪心方法总是得到一个最优解
定理5.2
  1. 证明如果n mod (k-1)=1,则对于所有的(q1,q2,…,qn)利用贪心方法可以生成一棵最优的n元归并树
pass
  1. 证明对于背包问题,算法GREEDY KNAPASACK对于给定的背包问题实例生成一个最优解

  1. 证明定理5.3

  1. 设I使在两台设备上做流水调度的任一实例,证明对于同一个I,每种POFT调度的长度和每种OFT调度的长度相同。因此6.8节的算法也生成一种POFT调度。

  • 15
    点赞
  • 279
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值