📝 DAA
95篇技术文档📅  最后修改于: 2020-12-10 06:55:55        🧑  作者: Mango
单一来源最短路径介绍:在最短路径问题中,我们得到了一个加权有向图G =(V,E),权重函数w:E→R将边映射到实值权重。路径p的权重=(v0,v1,….. vk)是其组成边的权重的总和:如果存在从u到v的路径,并且δ(u,v)=∞,我们定义最短的-从u到v的路径权重为δ(u,v)= min(w(p):u→v) , 除此以外。然后将从顶点s到顶点t的最短路径定义为权重w(p)=δ(s,t)的任何路径...
📅  最后修改于: 2020-12-10 06:56:48        🧑  作者: Mango
负重量边它是一张加权图,其中边缘的总权重为负。如果图具有负边缘,则它会产生一条链。在执行链之后,如果输出为负,则它将给出-∞权重,并且条件将被丢弃。如果权重小于负数且–∞,那么我们就不可能有最短路径。简而言之,如果输出为-ve,则两个条件都将被丢弃。-∞不小于0。而且我们不可能有最短的路径。例:假设我们要从s→c计算路径。所以我们有2条路径/权重假设我们要计算从s→e的路径。所以我们又有两条路该图...
📅  最后修改于: 2020-12-10 06:57:42        🧑  作者: Mango
代表:最短路径给定一个图G =(V,E),我们为每个顶点v∈V维持一个前驱体π[v],它可以是另一个顶点或NIL。但是,在执行最短路径算法期间,π值不必表示最短路径。像在广度优先搜索中一样,我们将对值π引起的前一子图Gn=(Vn,En)感兴趣。再一次,我们将顶点集Vπ定义为具有非NIL前身的G顶点集,再加上源s:的有向边集EΠ是该组由以VΠ顶点Π值引起的边缘的:根于s的最短路径树是有向子图G =(...
📅  最后修改于: 2020-12-10 06:58:34        🧑  作者: Mango
松弛单源最短路径基于称为松弛的技术,该方法会反复减小每个顶点的实际最短路径权重的上限,直到上限等于最短路径权重。对于每个顶点v∈V,我们维护一个属性d [v],它是从源s到v的最短路径权重的上限。我们将d [v]称为最短路径估计。初始化后,对于所有v∈V,π[v] = NIL,对于v = s d [v] = 0,对于v∈V-{s} d [v] =∞。放宽边缘(u,v)的过程包括测试是否可以通过遍历...
📅  最后修改于: 2020-12-10 06:59:32        🧑  作者: Mango
Dijkstra的算法它是一种贪心算法,可以解决有向图G =(V,E)且边沿权重为非负的有向图的单源最短路径问题,即每个边(u,v)∈E的w(u,v)≥0 。Dijkstra的算法维护一组顶点S,这些顶点的最终最短路径权重已确定。对于所有顶点v∈S;我们有d [v] =δ(s,v)。该算法反复选择具有最小最短路径估计的顶点u∈V-S,将u插入S并放宽所有留下u的边。因为它总是选择V-S中“最轻”或...
📅  最后修改于: 2020-12-10 07:00:27        🧑  作者: Mango
Bellman-Ford算法解决单个最短路径问题,其中边权重可能为负,但不存在负循环。当有向图G的某些边缘可能具有负权重时,此算法正确运行。当没有负重量的循环时,我们可以找出源与目标之间的最短路径。它比Dijkstra的算法慢,但功能更多,因为它能够处理一些负重量边缘。该算法检测图中的负循环并报告其存在。基于“松弛原理”,其中更精确的值逐渐将近似值恢复到适当的距离,直到最终达到最佳解。给定具有源s...
📅  最后修改于: 2020-12-10 07:01:21        🧑  作者: Mango
有向无环图中的单源最短路径通过根据其顶点的拓扑排序放宽加权DAG(有向无环图)G =(V,E)的边缘,我们可以找出∅(V + E)时间中来自单个源的最短路径。最短的路径总是被很好地描述,因为即使存在负权重的边,也不会存在负权重循环。该数据的运行时间由第1行和第3-5行的for循环确定。拓扑排序可以在∅(V + E)时间中实现。在第3-5行的for循环中,就像Dijkstra的算法一样,每个顶点有一...
📅  最后修改于: 2020-12-10 07:02:17        🧑  作者: Mango
全对最短路径介绍它旨在找出从每个顶点v到每个u的最短路径。显式存储所有路径的确确实会占用大量内存,因为每个顶点都需要一个生成树。对于内存消耗,这通常是不切实际的,因此通常将这些问题视为所有对-最短距离问题,其目的是仅找到每个节点到每个节点到另一个节点的距离。我们通常希望以表格形式输出:u行和v列中的条目应该是从u到v的最短路径的权重。三种改进方法:AlgorithmCostMatrix Multi...
📅  最后修改于: 2020-12-10 07:03:19        🧑  作者: Mango
Floyd-Warshall算法令G的顶点为V = {1,2 …. n},并考虑某个k的顶点的子集{1,2 …. k}。对于任意一对顶点i,j∈V,考虑从i到j的所有路径,这些路径的中间顶点都从{1,2 ….. k}得出,其中p是其中的最小权重路径。 Floyd-Warshall算法利用路径p和从i到j的最短路径之间的链接,其中所有中间顶点都在{1,2 ….. k-1}中。链接取决于k是否为路径p...
📅  最后修改于: 2020-12-10 07:04:15        🧑  作者: Mango
约翰逊算法问题是要在给定的加权有向图中找到每对顶点之间的最短路径,并且权重可能为负。使用约翰逊算法,我们可以找到所有对以O(V2log?V + VE)时间最短的路径。约翰逊算法同时使用Dijkstra算法和Bellman-Ford算法。约翰逊算法使用“重新加权”技术。如果图中G =(V,E)的所有边缘权重w为非负值,则可以通过从每个顶点运行一次Dijkstra算法来找到所有顶点对之间的最短路径。如...
📅  最后修改于: 2020-12-10 07:05:07        🧑  作者: Mango
流网络和流流网络是用于对物料流进行建模的有向图。有两个不同的顶点。一个是以一定的稳定速率生产物料的源,另一个是以相同的恒定速度消耗物料的水槽。材料在系统中任何标记处的流动是元件移动的速率。可以使用流动网络对一些现实生活中的问题进行建模,例如液体通过管道的流动,通过电线的电流和货物的输送。定义:流网络是有向图G =(V,E),使得对于每个边(u,v)∈E,我们将一个非负权重容量c(u,v)≥0关联;...
📅  最后修改于: 2020-12-10 07:06:01        🧑  作者: Mango
网络流量问题最明显的流网络问题如下:问题1:给定一个流量网络G =(V,E),最大流量问题是找到一个最大值的流量。问题2:多源和汇的最大流量问题与最大流量问题相似,不同之处在于,有一组{s1,s2,s3…… sn}和一组{t1,t2,t3….. tn}。幸运的是,这个问题比常规的最大流量还难。给定多个源和汇流网络G,我们通过添加定义新的流网络G'超级来源超级沉对于每个si,加上容量为∞的边(s,s...
📅  最后修改于: 2020-12-10 07:06:53        🧑  作者: Mango
福特-福克森算法最初,值的流为0。找到一些扩充路径p,并通过剩余容量cf(p)在p的每个边缘上增加流f。当不存在增加路径时,流量f为最大流量。示例:每个定向边都标记有容量。使用Ford-Fulkerson算法查找最大流量。解决方案:每个部分的左侧显示带有阴影扩展路径p的残差网络G f,每个部分的右侧显示净流量f。...
📅  最后修改于: 2020-12-10 07:07:47        🧑  作者: Mango
最大二分匹配二分图是其顶点可以分为两个独立的集合L和R的图,这样每个边(u,v)要么连接从L到R的顶点,要么连接从R到L的顶点。换句话说,对于每个边(u,v)u∈L和v∈L。我们也可以说不存在连接相同集合的顶点的边。匹配是二分图(Bipartite Graph)是一组边的选择,其选择方式是没有两个边共享端点。给定无向图G =(V,E),“匹配”是边M⊆E的子集,使得对于所有顶点v∈V,M的最多一个...
📅  最后修改于: 2020-12-10 07:08:39        🧑  作者: Mango
比较网络比较网络由电线和比较器组成。比较器是具有两个输入x和y以及两个输出x'和y'的设备,其中x'=分钟(x,y)在“比较网络”中,输入出现在左侧,输出出现在右侧,最小的输入值出现在顶部的输出中,最大的输入值出现在底部的输出。每个比较器以O(1)时间运行。换句话说,我们认为输入值x和y的出现与输出值x'和y'的产生之间的时间是恒定的。电线从一个地方传送一个值。比较网络包含n条输入线a1,a2,…...