电子科技大学-高级算法设计与分析课程复习总提纲

电子科技大学-高级算法设计与分析课程复习总提纲

判断题 10个 20分

简单计算题

渐进表达式 1题
贪心算法 1-2题、分治法 1-2题、动态规划法 1-2题
最大流最小割 1题
NP相关 归约与复杂度证明题 2-3题
近似算法 1-2题
其他算法设计题 1题

Chapter1 Introduction

掌握什么是算法,算法的特征,算法和程序的差别;

理解什么是判断问题、搜索问题和优化问题。

1.1 Course Information

在这里插入图片描述
在这里插入图片描述

1.2 Introducion

Three Kinds of Problems

  • Decision Problem (with yes-no answers)
    e.g. Is there a solution better than some given bound?
  • Optimal Value/Optimal Solution
    e.g. What is the value of a best possible solution?
  • Numerical Calculation
    e.g. accurateness, Π

在这里插入图片描述

程序可以不满足算法的有穷性

Different Classes of Problems

  • P: a solution can be solved in polynomial time.
  • NP: a solution can be checked in polynomial time.
  • NPC: problems that may not have polynomial-time algorithms.
    在这里插入图片描述

1.3 Some Representative Problems

  • Interval Scheduling : n log n, greedy algorithm.
  • Weighted Interval Scheduling:n log n, dynamic programming algorithm.
  • Independent Set: NP-complete.
  • Competitive Facility Location: PSPACE-complete.

Chapter2 Basics of algorithm design & analysis

1.理解指数增长的规模;理解算法分析里为什么常数倍的差别可以被忽略
2.掌握渐近符号O、W、Ω 的含义,能判断一个函数属于哪个渐近增长阶;
能对给定函数按照渐进增长率进行排序,典型例题:作业1的第一题
理解贪心算法的思想;能判断一个算法是否贪心算法;掌握工作安排 Interval scheduling 问题的贪心算法及其正确性证明;

2.1 Analysis

Polynomial and exponential(多项式和指数)、渐进表达式

一个需要指数级操作次数的算法只能用来解决规模非常小的问题

算法A: 运行时间为100n,时间复杂度为O(n)。
算法B: 运行时间为nlogn,时间复杂度为O(nlogn)。

在这种情况下,可以看到算法 A 的时间复杂度更低。因为 O(n) 增长的速度比 O(nlogn) 慢,所以算法 A 在大多数情况下会更为高效。然而,需要注意的是,常数因子也很重要,因为在某些情况下,较高的常数因子可能导致实际运行时间上算法 B 更快。

注: 小规模问题: 当输入规模较小的时候,常数因子可能对算法性能产生显著影响。在这种情况下,一个具有较大时间复杂度但较小常数因子的算法可能比另一个具有较小时间复杂度但较大常数因子的算法更为优越。

2.2 Asymptotic Order of Growth

Asymptotic Order of Growth

2.3 Three Techniques for Designing Algorithms

在这里插入图片描述

Chaper1 Greed

Algorithmic Paradigms-Greed

Chapter2 Divide and Conquer

Algorithmic Paradigms-Divide and Conquer

Chapter3 Dynamic Programming

Algorithmic Paradigms-Dynamic Porgramming

理解贪心算法,会用贪心算法解工作安排问题(Interval scheduling);能证明贪心算法的正确性;

理解分治算法的思想;典型例题:作业1的第三题;掌握Master method(主方法)来求解递归关系式;

理解动态规划算法的思想,对动态规划类型的问题能建立起基本的递归关系式并能用从底至上的方法来求解,在求解过程中知道如何建立数据储存的表格。经典问题包括:背包问题和带权重的工作安排问题等。理解背包问题动态规划算法的运行时间是伪多项式时间。

Chapter3 MaxFlow

⭐理解最大流、任意流、最小割、任意割之间的关系;

⭐掌握网络最大流问题和最小割问题及其求解算法,给出一个网络能求出其最大流或最小割;

⭐掌握Δ-剩余网络构造方法,及求解网络最大流的capacity-scaling算法;

MaxFlow

Chapter4 Stable Matching

⭐Gale-Shapley算法 O(n^2)

  • Correctness
  • Stability

Suppose A-Z is an unstable pair

Case1: Z never proposed to A → Z prefers his GS partner to A → A-Z is stable

Case2: Z proposed to A → A rejected Z → A prefer someone else → A-Z is stable

An instance with two stable matchings.

Chapter5 NP and Computational Intractability

NP and Computational Intractability

(1)理解什么是多项式归约 (polynomial-time reduction)
(2)知道怎样从一个问题多项式归约到另一个问题,需要熟悉的归约包括:从点覆盖问题到独立集问题,从3-SAT问题到独立集问题等基本归约。
(3)要求掌握同一个问题的最优化问题如何多项时间归约到该问题的判断问题(自身归约);典型考题:作业2第三题
(4)熟悉NP和NPC的概念;
(5)记住证明一个问题属于NPC的基本步骤

Chapter7 Approximation Algorithms

Approximation Algorithms

(1)理解什么是近似算法;
(2)熟悉load balancing问题的近似算法;
(3)理解点覆盖问题的定价算法(Pricing method),证明该方法能得到2倍近似解
(4)理解点覆盖问题的整数规划模型如何建立的,理解松弛求解方法;
(5)要求会对一个图问题建立整数规划模型(以点覆盖问题为例)

Homework1

Assig 1.pdf

Homework2

Assig 2.pdf

①在当前网络中选择s-t可达路径

②最大流-计算残余网络,并记录当前网络流量,即the computation steps

③重复①②直到s-t不可达,得到the size of the cut

Homework34

Assig 34.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值