算法分析与设计复习小结

算法分析与设计 复习大纲


p5-6:
P类问题:如果对某个判定问题?,存在着一个非负整数k,对输入规模为n的实例,能够以O(nk)的时间运行一个确定性的算法,得到yes或no的答案,则该判定问题?是一个P类判定问题。
P类问题:多项式时间,可以用多项式时间的确定性算法来进行判定或求解,是NP问题的一个子集合
NP类问题:非确定的多项式时间,可以用多项式时间的确定性算法来检查和验证在推测阶段产生的答案
存在以多项式时间运行的非确定性算法,其中非确定性算法包括
1、非确定(猜测)阶段
2、确定(验证)阶段:首先判断猜测阶段所产生的输出是否具有正确形式。若具有正确形式,则继续检查是否是问题的解。


p23:
x^k-a1*x^k-1-a2*x^k-2-…-ak=0
如果递归关系的k个特征根q1,q2,…,qk互不相等,则 T(n) =A1*q1^n+ A2*q2^n +…+Ak*qk^n是递归关系的通解。其中A1,A2,…Ak为任意常数


p29:贪心(活动安排问题)
有n个活动集E={1,2,…,n}使用同一资源,而同一时间内同一资源只能由一个活动使用。每个活动的使用时间为[si, fi) i=1,…,n,si为开始时间,fi为结束时间,若[si, fi) 与[sj,fj)不相交称活动i和活动j是相容的。
问题:选出最大的相容活动子集合
求解:贪心策略   将各活动按结束时间排序f1≤f2≤…≤fn,先选出活动1,然后按活动编好从小到大的次序依次选择与当前活动相容的活动,这种策略使剩余的可安排时间极大化,以便于安排尽可能多的相容活动 T(n)=O(nlogn)
void ActivitySelection(int n,s[],f[], bool a[])
{//f[]已排序,a[]记录选择的活动,即a[i]=true表示活动i已选择
    a[1]=true;  
    int j=1;
    for(int i=2; i<=n; i++)   {
        if(s[i]>=f[j])  {
            a[i]=true; 
            j=i;}
        else  a[i]=false;
     }
 }


 p42:
问题:两台机器、n个零件的排序
目的:使得完成全部工作的总时间最短。
说明:针对一台机器按照加工时间进行排序即可,那针对两台机器就要进行综合考虑


p50:
主定理:其中n= c^k, k为某个非负常数
 T(n)=d (n=2)
 =aT(n/c)+b*n^x (n>2)
 
p55
求第二小元素:一般情况下2n-3次比较,第二小元素一定存在于同最小元素比较过的元素之中
其中logn个元素同最小元素比较过,找第二小元素共需比较次数n-1+logn-1


p66
动态规划法使用条件:两个重要性质
最优子结构:当问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。
重叠子问题:在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只解一次,而后将其解保存在一个表格中,在以后尽可能多地利用这些子问题的解 


p85
回溯法思想:
搜索从开始结点(根结点)出发,以DFS搜索整个解空间。
开始结点成为一个活结点,同时也成为当前的扩展结点。在当前的扩展结点处向纵深方向移至一个新结点,并成为一个新的活结点,也成为当前扩展结点
如果在当前的扩展结点处不能再向纵深方向扩展,则当前扩展结点就成为死结点
此时,应往回移动(回溯)至最近的一个活结点处,并使这个活结点成为当前的扩展结点;直至找到一个解或全部解


p91
子集和问题:按照回溯法思想,从状态树的根结点出发,做深度优先搜索;
为便于计算,将W中的正数按从小到大排序;
当在某一状态A下,依次尝试加入和不加入正数wi,若∑A+wi>M,则可停止对该结点的搜索;若∑A+ ∑(wi…wn)<M,则也可停止对该结点的搜索;


p98
分支界限法与回溯法区别
求解目标不同 :
一般而言,回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解; 
搜索方法不同:
回溯算法使用深度优先方法搜索,而分枝限界一般用宽度优先或最小耗费方法来搜索; 
对扩展结点的扩展方式不同:
分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点;
存储空间的要求不同:
相对而言,分枝限界法的存储空间比回溯法大得多,因此当内存容量有限时,回溯法成功的可能性更大; 


p105
二分图:
定理:
最大独立集点数=顶点总数-最大匹配数
            也=顶点总数-最小覆盖数

你可能感兴趣的:(工作,算法,活动,存储,扩展,n2)