算法设计与分析课程整体总结

【人工智能学习笔记】 2.4算法设计与分析 -20.算法设计与分析课程整体总结

【人工智能学习笔记】 2.4算法设计与分析 -20.算法设计与分析课程整体总结

序列求和

基本求和公式

等比数列
等差数列
调和数级数

• 估计和式的阶

放大,然后估计上界
用积分估计上下界

递推方程求解

• 主要的求解方法

迭代 + 进行序列求和
递归树 + 求和
主定理:注意条件验证

• 一些常见的递推方程的解

f(n)=af(nb)+d(n)f(n)=af(\frac{n}{b})+d(n)

算法设计技术

设计技术

分治策略
动态规划
贪心法
回溯和分支限界

关注问题

使用条件
主要设计步骤
时间复杂度分析方法
改进途径
典型例子

分治策略

适用条件:归约为独立求解子问题
设计步骤:归约方法, 初始子问题的计算, 子问题解的综合方法. 注意子问题划分均衡,类型相同
递归算法分析:求解递推方程
改进途径:减少子问题数, 预处理
典型问题: 二分检索,归并排序,芯片测试,幂乘,矩阵乘法,最临近点对,多项式求值

动态规划

适用条件:优化问题, 多步判断求解, 满足优化原则,子问题重叠
设计步骤:确定子问题边界, 列关于目标函数的递推方程及初值;自底向上,备忘录存储;标记函数及解的追踪方法
复杂度分析:备忘录, 递推方程
典型问题: 矩阵链相乘,投资,背包,最长公共子序列,图像压缩,最大子段和,最优二分检索树,生物信息学应用

贪心法

适用条件:组合优化问题, 多步判断求解, 有贪心选择性质
设计步骤:局部优化策略的确定及算法正确性证明 (直接证明, 数学归纳法,交换论证)
复杂度分析
典型问题: 活动选择,装载问题, 最小延迟调度, 最优前缀码,最小生成树,单源最短路

回溯和分支限界

适用条件:搜索或优化问题, 多步判断求解, 满足多米诺性质
设计步骤:确定解向量, 搜索树结构,搜索顺序,结点分支搜索的约束条件与代价函数, 路径存储
搜索树结点数估计
复杂度分析
典型问题: n后问题, 背包问题,货郎问题,装载问题, 最大团问题, 圆排列问题, 连续邮资问题

算法设计

• 设计思想:尽量选复杂度低的算法
• 算法实现依赖于数据结构,选择合适的数据结构
• 实际问题中的综合考虑:时空权衡,实现成本的权衡, …

相关文章:

  • 2021-08-05
  • 2021-11-20
  • 2021-10-11
  • 2022-12-23
  • 2021-08-06
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
猜你喜欢
  • 2021-05-11
  • 2021-12-03
  • 2021-09-30
  • 2021-06-11
  • 2021-11-05
  • 2021-05-30
  • 2021-08-10
相关资源
相似解决方案