经典算法汇总-第一章

    xiaoxiao2021-03-25  54

    1.    最小生成树(Minimum Spanning Trees):在加权连通图中找最小生成树连通所有点且权值最小

    算法1:prim算法:任选一个起始点为蓝点集合,其余点为红点集合,找蓝点集合中与红点集合距离最小的点,加入到蓝点集合中,直到红点集合为空。

    算法2:kruskal:将边权值由大到小进行排序,选择最小的边加入,且边的两点要分别在两个集合中,直到将所有的点连通。

    若将该问题改成连接所有点,但不许有分支(NP问题)

    2.    可满足问题

    合取范式:(xVyVz)(xVy)…(pVq) 中能找到一组值使式子成立,

    如每个子句少于等于2句:2-SAT问题    P问题  多项式时间可解

    每个子句少于等于3句:3-SAT 问题     NP问题 指数时间

    3.    Search problem/Decisionproblem:给一个问题的解,能在多项式时间段内判断是否正确

    4.    如果每个子句中至少有一个正的,该子句称为霍恩公式,如果只有一个,则可以通过贪心算法找到解

    5.    旅行商问题:有n个顶点,n(n-1)/2个边和一个限制b,能否找到一个圆,经过每个顶点1次,且花费少于或等于b。旅行商问题可以被认为是最小生成树的转化,不允许树有分支。

    6.    将搜索问题或判定问题转成优化问题容易,优化问题转搜索问题,用二分搜索法。优化问题会多一个边界

    7.    欧拉路径:若图G中存在这样一条路径使得它恰通过G中每条边一次,则称该路径为欧拉路径,若该路径是一个圈则成为欧拉回路或欧拉环。具有欧拉回路的图成为欧拉图。

    8.    一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图是连通图。一个有向图存在欧拉回路,所有顶点的入度等于出度且该图是连通图。欧拉路径:无项图中有两个顶点度数为奇数,其它为偶数,则存在欧拉路径。

    9.    哈密顿回路Hamilton cycle/Rudrata cycle:从指定的起点到指定的终点,途中经过所有其他节点且只经过一次。平面图可以转成欧拉图来求解。

    10. 在一个图G(V,E)中V是点集,E是边集。在E中去掉一个边集C使得G(V,E-C)不连通,C就是图G(V,E)的一个割;最小割:在G(V,E)的所有割中,边权总和最小的割就是最小割。

    11. 平衡割(Balancedcut):给定n个订单和限制b,将顶点分割成两个集合S和T,且两个集合的顶点数大于三分之一,使得S和T之间存在至多b个边

    12. 整数线性规划(ILP):有一个集合的变量,给一组真实值让它们满足一些线性等式或者线性不等式,最大或者最小化目标函数,使满足条件的变量取值最多。ILP是一个搜索问题

    13. ZOE:线性规划问题的一种,但是变量只能取0或者1

    14. 3D Matching:集合x,y,z,找到x*y*z的集合使彼此相连,且每个顶点只能出现一次。它是一个搜索问题,也是npc问题。如图所示:

                        

    右图中连线代表关联,如果选p0,则一定要选p2.如果选p1,则一定要选p3。所以p0和p2要一起出现,p1和p3要一起出现。所以右图可以等同于一个布尔变量,有两种取值。因此3D matching问题和3-SAT问题互相转换,因为3SAT问题一个子句最多3个,代表任一一点只能连少于3条边。

    15. 独立集(Independentset)问题:给一个图G和一个整数g,找到g的顶点,让g的顶点之间互不相连。

    16. 顶点覆盖问题(Vertexcover):给定一个N个点M条边的无项图G(点的编号从1至N),问是否存在一个不超过K个点的集合S,使得G中的每条边都至少有一个点在集合S中。

     

    17. 团问题(Clique):

    给一个图和一个整数g,找到g个顶点,使这g个点中每对顶点之间都有边。

    18. 独立集和团问题互为补问题,顶点覆盖和独立集问题互为补问题,可以互相转换

    19. 最长路径问题是指在给定的图中找出长度最长的道路。一条不具有任何重复顶点的路径被称为简单路径,无权图中路径的长度就是边的数量,而有权图中路径长度是边权重之和,最长路径问题是NP问题

    20. 背包问题(Knapsack):给出每个物品的重量w1,w2…,wn和物品的价值v1,v2….Vn,背包的最大容量是W,希望获得的最小价值是g。动态规划解决,时间复杂度为:O(nw). 0-1背包问题有多项式时间解

    21. 背包问题的特殊情况:物品重量和价值相等,目标价值和背包的容量相同,这样的话,该问题等同于子集合问题

    22. 子集和问题:找到一个集合中的某个子集,让子集的和正好为W。该问题也是整数线性规划的子集ZOE。

    23. 图同构问题(Graphisomorphism):两个图中对应点的连线相同

    24. hard problems和easy problems

     

     25. 补问题complementation:两个问题的解正好相反。原问题是多项式时间,补问题是多项式时间,则原问题在多项式时间内封闭。

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-37819.html

    最新回复(0)