《算法分析与设计》课程任务
内容包括以下8个部分,建议将任务按以下方式分解:其中1-6的每个部分的简介、适用条件、基本思想、基本步骤、复杂度分析等由1人讲解,实例分析由1人讲解(注:至少一个实例),实例实现代码(注:至少一个实例)由1人讲解,找一篇使用了该算法设计策略的论文(最好是英文)讲解;另外,1人讲解随机算法基本知识、1人将随机算法实例,1人讲NP完全性知识,1人讲NP完全问题实例。具体分工由龙虎负责完成,时间从国庆后的第2周或第3周开始。
  1. 递归技术
  2. 分治法
    1. 简介(定义与发展)
    2. 分治法的基本思想
    3. 分治法的适用条件
    4. 分治法的基本步骤
    5. 分治法的复杂性分析
    6. 分治法的实例分析
      1. 例1:二分查找
      2. 例2:快速排序
      3. 例3:大整数乘法
      4. 例4:Strassen矩阵乘法
      5. 例5:最接近点对问题
      6. 例6:导线和开关
  3. 动态规划
    1. 简介(定义与发展)
    2. 动态规划的适用条件
    3. 动态规划的基本思想
    4. 动态规划的基本步骤
    5. 动态规划的复杂性分析
    6. 动态规划的实例分析
      1. 例1:最短路径问题
      2. 例2:生产计划问题
      3. 例3:Bitonic旅行路线问题
      4. 例4:计算矩阵连乘积
      5. 例5:最长公共子序列
      6. 例6:凸多边形的最优三角剖分问题
      7. 例7:多边形计算
      8. 例8:字符识别
  4. 贪心算法
    1. 简介(定义与发展)
    2. 贪心算法的适用条件
    3. 贪心算法的基本思想
    4. 贪心算法的基本步骤
    5. 贪心算法的复杂性分析
    6. 贪心算法的实例分析
      1. 例1:活动安排问题;
      2. 例2:最优装载问题;
      3. 例3:哈夫曼编码;
      4. 例4:单源最短路径;
      5. 例5:最小生成树;
      6. 例6:多机调度问题。
  5. 回溯法
    1. 简介
    2. 回溯法的适用条件
    3. 回溯法的基本思想
    4. 回溯法的基本步骤
    5. 回溯法的复杂度分析
    6. 回溯法的实例分析
      1. 例1:装载问题;
      2. 例2:批处理作业调度;
      3. 例3:符号三角形问题
      4. 例4:n后问题;
      5. 例5:0-1背包问题;
      6. 例6:最大团问题;
      7. 例7:图的m着色问题
      8. 例8:旅行售货员问题
      9. 例9:圆排列问题
      10. 例10:电路板排列问题
      11. 例11:连续邮资问题
  6. 分支界限法
    1. 简介
    2. 分支界限法的适用条件
    3. 分支界限法的基本思想
    4. 分支界限法的基本步骤
    5. 分支界限法的复杂度分析
      1. 例1:单源最短路径问题
      2. 例2:装载问题;
      3. 例3:布线问题
      4. 例4:0-1背包问题;
      5. 例5:最大团问题;
      6. 例6:旅行售货员问题
      7. 例7:电路板排列问题
      8. 例8:批处理作业调度问题
  7. 随机算法
  8. NP完全性