For a graph G which is not strongly connected, let us generalize the a的简体中文翻译

For a graph G which is not strongly

For a graph G which is not strongly connected, let us generalize the above bound to the following bound BSC C (G) for neg(G), which can be computed by a linear time preprocessing. We begin with computing DAG GSC C of the strongly connected components (SCCs) of G (e.g., by the Kosaraju–Sharir algorithm); the edge between two SCCs is called negative if there exists a negative edge between their vertices in G . We give to each SCC C weight #neg(G(C )), where G(C) is the sub-graph induced by C . We define the weight of a path in GSC C to be the sum of the weights of its vertices plus the number of negative edges in it. We compute the maximal weight of a path from the SCC of s in GSC C (it is well known how to do this using a topological sort). We denote that weight by BSC C (G). It is easy to see that neg(G) BSC C (G), thus implying:Corollary 3.8. For any graph G, the value of BSC C (G) can be computed in a linear time. Then, the stopping condition < i = |V | − 1 >of BFD may be replaced by < i = BSC C (G) + 2 >.Comment: The results of this subsection are slightly improved in part 2 of Section 5.4.Robustness of BFD to implementations of BF1.In practice, it may be reasonable to check the existence of a negative cycle during the BF run, and stop if one is detected. One such checking method is “subtree disassembly” [17] (see also [3]). Any time when Relax(u, v) decreases the value of d(v), subtree disassembly traverses the subtree of the back-pointers tree rooted at v , looking for u. During this traversal, it removes all vertices x v in this subtree, by setting π(x) nil, as if x has not been reached yet. Note that any such removed vertex x currently has a non-optimal value of d(x) > opt(x).Let us show that the basic version of subtree disassembly may be incorporated into BFD as it is. Removal of back-pointers is safe for BFD, since Dijkstra_scan does not depend on back-pointers. Removal of certain vertices from the consideration (which fastens BF in practice) might be unsafe for the correctness of BFD, in general. Pay attention that the correctness of all results of Section 3 is based on Lemma 3.2. The proof of that lemma deals with scanning of vertices x with the optimal values of d(x) opt(x) only. Therefore, removal of vertices with non-optimal values of d(x) made by subtree disassembly does not contradict the correctness of Lemma 3.2, and thus of all the results of Section 3.The additional property of the advanced versions of subtree disassembly and of other negative cycle detecting methods considered in [3] is that they change the order of scanning vertices “on-fly”, using concrete states of the execution of the used negative cycle detecting method. Since the arising scanning order ought not to be by non-decreasing values of d, thus contradicting Dijkstra_scan, they are incompatible with BFD.2.The following basic speedup modification is widely used in practical implementations of BF. It groups Relax(u, v) executions to bunches with the same vertex u, called “scanning u”. When scanning u, it stores the value of d(u). At each round of BF, not all vertices are scanned. Scanning of vertex u is skipped if its current d value equals its d value stored at the last time (in such a case, scanning u is useless). Although the worst case bound of this modification is the same as that of the basic BF, it is known that in practice, this modification significantly decreases the running time.Since grouping Relax’s as above is built-in in Dijkstra_ scan, it is straightforward to modify Dijkstra_scan and BFD accord- ingly. Since each skipped vertex scanning causes no change in the data, each round of the BFD modified as above produces the same result as that of the basic BFD. Therefore, all the correctness and running time statements proved for BFD remain valid for this modified version. However, the advanced versions of the considered modification changing the order of scanning vertices (see e.g., [3]) are incompatible with BFD, in general, by the reason as in part 1 of this section.5.Adjusting BFD to variants of DijkstraLet us study how certain implementations and variants of Dijkstra may be used for implementing a BFD round in order to accelerate it. Accordingly, the factor E V log V in the time bound of Theorem 3.5 could be changed to the time bounds of those implementations/variants.1.Note that some implementations of Dijkstra rely on non-negativity of edge costs, either explicitly or implicitly, and hence might work improperly if there are negative edges in G . In particular, those are implementations using monotone priority queues (see, e.g., [4]). For example, consider the basic Dial’s implementation [7] (see also [20,8], reinventing it). It uses
0/5000
源语言: -
目标语言: -
结果 (简体中文) 1: [复制]
复制成功!
对于图G,其非强连接,让我们概括上述结合到以下结合BSC C(G)为负(G),这可以通过线性时的预处理进行计算。我们首先计算强连通分量的G(SCCS)(例如,由Kosaraju-Sharir算法)的DAG GSC℃; 如果存在其在G中的顶点之间的负边缘上的两个的SCC之间的边缘被称为负。我们给每个SCC C重量#neg(G(C)),其中G(C)是子图中箭头C诱导。我们去科幻NE在GSC℃的路径的权重是其顶点的权重之和加上它负的边数。我们计算路径的最大重量从s在GSC C的SCC(这是众所周知如何使用拓扑排序做到这一点)。我们通过BSC C(G)表示的是重量。这是很容易看到,NEG(G)BSC C(G),因此暗示:<br><br>推论3.8。对任意一个图G,BSC C(G)的值可以在一个线性时间来计算。然后,停止条件<I = | V | - 1> <br><I = BSC C(G)+ 2> BFD可以被替换。<br>评论:本款的结果在第5节的第2部分被稍微改善<br><br>BFD的4.Robustness到BF的实现<br><br>1.In实践中,它可能是合理的,如果检测到一个高炉运行期间检查的负周期的存在,和停止。一种这样的检查方法是“子树拆卸” [17](也参见[3])。当放松任何时候(U,V)下降d(V)的值,子树拆卸穿越回球树在V扎根,寻找u的子树。在此穿越,它会删除所有顶点中xiv在这个子树,通过设置π(x)的零,因为如果x还尚未达到。需要注意的是任何这样的去除顶点目前X具有d(x)的>选择(X)的非最佳值。<br>让我们表明,子树的基本版本拆卸可以并入BFD,因为它是。回球的去除是BFD安全的,因为Dijkstra_scan不依赖于回球。从考虑(它固定BF在实践中)的某些顶点的去除可能是不安全的BFD的正确性,一般。要注意的是第3节的所有结果的正确性是基于引理3.2。的该引理涉及顶点的扫描证明X具有(x)的选择(X)只d的最佳值。因此,去除与由子树拆卸由d(X)的非最优值顶点并不矛盾引理3.2的正确性,因此,所有第3节的结果。<br>子树的高级版本的拆卸和在考虑的其他负周期检测方法的附加属性[3]是它们改变扫描顶点“导通FL Y”的顺序,使用所使用的负循环检测方法的执行的具体状态。由于所产生的扫描顺序不应该是由非递减d的值,从而违背Dijkstra_scan,它们与BFD不相容。<br>2.下列基本加速MODI网络阳离子被广泛应用于高炉的实际实现。这组放松(U,V)的执行与同顶点u,所谓的“扫描U”束。当扫描U,它存储d(U)的值。在每一轮BF的,不是所有的顶点扫描。扫描的,如果其当前d值等于存储在上次的d值(在这种情况下,扫描u为无用)顶点u被跳过。虽然束缚,这MODI网络阳离子的最坏情况是一样的,基本BF的,众所周知,在实践中,这种作案科幻阳离子显着地降低了运行时间。<br>由于分组放松的如上内置在Dijkstra_扫描功能,可以直接修改Dijkstra_scan和BFD ingly accord-。由于每个跳过顶点扫描引起数据没有变化时,BFD MODI音响版的每一轮如上产生相同的结果作为基本BFD的。因此,所有的证明了BFD的正确性和运行时间报告有效期为这个作案网络版版本。然而,所考虑的MODI音响阳离子改变扫描顶点的顺序的高级版本(参见例如,[3])是不相容的与BFD,一般来说,由原因如本节中的第1部分。<br><br>5.Adjusting BFD与Dijkstra的变种<br><br>让我们来研究如何某些实现和Dijkstra算法的变体可用于以加速其实现BFD轮。因此,在结合的定理3.5的时间因素EV日志V可以改变这些实施方式的时间界限/变体。<br>1.注意的是Dijkstra算法的一些实现依靠的边缘成本非负,或隐或显,如果有在G中负边缘,因此可能无法正常运行。特别地,这些是使用单调优先级队列的实现(参见,例如,[4])。例如,考虑基本的拨号的实现[7](也[20,8]看,重塑它)。它用
正在翻译中..
结果 (简体中文) 2:[复制]
复制成功!
对于未强连接的图形 G,让我们将上述绑定到以下绑定 BSC C (G) 的 neg(G),该约束可以通过线性时间预处理计算。我们首先计算G的强连接组件(SSC)的DAG GSC C(例如,通过Kosaraju_Sharir算法);如果两个 SCC 之间的边在 G 中的顶点之间存在负边,则称为负边。我们给每个SCC C权重#neg(G(C)),其中G(C)是由C诱导的子图。我们在 GSC C 中定义路径的权重是其顶点权重加上其中负边数的总和。我们计算 GSC C 中 SCC 中路径的最大权重(众所周知如何使用拓扑排序执行此操作)。我们用 BSC C (G) 表示该重量。很容易看到,否定(G)BSC C(G),从而暗示:<br><br>推论3.8。对于任何图形 G,BSC C (G) 的值都可以在线性时间内计算。然后,停止条件 [ i ]V |[ 1]<br>BFD 的可替换为 * i = BSC C (G) = 2 =。<br>评论:本小节的结果在第 5 节的第 2 部分略有改进。<br><br>4.BFD对BF实现的稳健性<br><br>1.In练习中,检查 BF 运行期间是否存在负循环可能是合理的,如果检测到负循环,则停止。其中一种检查方法是"子树拆解"[17](另见[3])。任何时候,当Relax(u,v)减小d(v)的值时,子树拆解遍历了背指针树的子树,根植于v,寻找你。在此遍历期间,它会通过设置 +(x) nil 来删除此子树中的所有顶点 x v,就像尚未到达 x 一样。请注意,任何此类删除的顶点 x 当前具有非最佳值 d(x) = 选择(x)。<br>让我们表明子树拆解的基本版本可以合并到 BFD 中。删除回指针对 BFD 是安全的,因为Dijkstra_scan不依赖于回指针。从考虑中去除某些顶点(这在实践中固定 BF)对于 BFD 的正确性一般来说可能是不安全的。请注意,第 3 节所有结果的正确性均基于 Lemma 3.2。lemma 的证明只涉及对顶点 x 的扫描,其最佳值为 d(x) opt(x)。因此,通过子树拆解去除具有非理想值 d(x) 的顶点与 Lemma 3.2 的正确性并不矛盾,因此与第 3 节的所有结果不矛盾。<br>在 [3] 中考虑的子树拆解和其他负循环检测方法的高级版本的附加属性是,它们使用使用负循环检测方法执行的具体状态更改"动态"扫描顶点的顺序。由于产生的扫描顺序不应由 d 的非递减值,从而与Dijkstra_scan相矛盾,因此它们与 BFD 不兼容。<br>2.以下基本提速修改在BF的实际实现中得到了广泛的应用。它将"放松(u,v)"执行分组到具有相同顶点 u(称为"扫描 u")的串。扫描 u 时,它会存储 d(u) 的值。在每一轮 BF 中,并非所有顶点都会被扫描。如果顶点 u 的当前 d 值等于上次存储的 d 值(在这种情况下,扫描 u 是无用的),则跳过顶点 u 扫描。尽管此修改的最坏情况与基本 BF 相同,但众所周知,在实践中,此修改会显著缩短运行时间。<br>由于上述分组的"放松"是内置Dijkstra_扫描,因此直接修改Dijkstra_scan和 BFD 协议。由于每次跳过的顶点扫描不会导致数据更改,因此与上述修改的每一轮 BFD 的结果与基本 BFD 的结果相同。因此,为 BFD 证明的所有正确性和运行时间语句对于此修改版本仍然有效。但是,根据本节第 1 部分的原因,更改扫描顶点顺序的考虑修改的高级版本(例如 [3])与 BFD 不兼容。<br><br>5. 根据迪克斯特拉的变体调整 BFD<br><br>让我们研究一下 Dijkstra 的某些实现和变体如何用于实现 BFD 轮,以加速它。因此,定理3.5的时限中的因子E V日志V可以更改为这些实现/变体的时限。<br>1.请注意,Dijkstra 的某些实现依赖于边缘成本的非负性(显式或隐式),因此,如果 G 中存在负边,则可能工作不当。特别是,这些是使用单调优先级队列的实现(例如,参见 {4})。例如,考虑基本拨号的实现 [7](另请参阅 [20,8],重新发明它)。它使用
正在翻译中..
结果 (简体中文) 3:[复制]
复制成功!
对于一个非强连通图G,我们将上述上界推广到neg(G)的下界BSC(G),它可以通过线性时间预处理来计算。我们首先计算G的强连通分量(scc)的DAG-GSC(例如,用Kosaraju-Sharir算法);如果G中两个scc的顶点之间存在负边,则称之为负边。我们给出了每个SCC的权重#neg(G(C)),其中G(C)是由C诱导的子图。我们将GSC中路径的权重定义为其顶点权重加上负边数之和。我们从GSC中的s的s C C计算路径的最大权重(使用拓扑排序是众所周知的)。我们用平衡记分卡C(G)表示这个重量。很容易看出,neg(G)BSC(G),这意味着:<br>推论3.8。对于任意图G,BSC(G)的值可以在线性时间内计算。然后,停止条件<br>BFD可以用代替。<br>注释:本小节的结果在第5节第2部分中略有改进。<br>4.BFD对BF实现的健壮性<br>1.在实践中,检查高炉运行过程中是否存在负循环是合理的,如果发现负循环,则停止。其中一种检查方法是“子树反汇编”[17](另见[3])。当Relax(u,v)降低d(v)的值时,子树反汇编将遍历根在v上的后指针树的子树,查找u。在遍历过程中,它通过设置π(x)nil删除该子树中的所有顶点xv,就好像x尚未到达一样。注意,任何这样移除的顶点x当前都有一个非最优值d(x)>opt(x)。<br>让我们展示一下,子树反汇编的基本版本可以按原样合并到BFD中。移除后指针对BFD是安全的,因为Dijkstra_扫描不依赖于后指针。通常,从考虑中移除某些顶点(在实践中固定BF)可能对BFD的正确性不安全。注意,第3节的所有结果的正确性都是基于引理3.2。引理的证明只涉及d(x)opt(x)最优值的顶点x的扫描。因此,用子树分解法去除具有d(x)非最优值的顶点并不违背引理3.2的正确性,因此也不违背第3节的所有结果。<br>[3]中所考虑的子树分解和其他负循环检测方法的高级版本的另一个特性是,它们使用所使用的负循环检测方法的具体执行状态来改变扫描顶点的顺序。由于产生的扫描顺序不应该是d的非递减值,从而与Dijkstra_扫描相矛盾,因此它们与BFD不相容。<br>2.以下基本加速修改广泛应用于高炉的实际实现中。它将Relax(u,v)执行分组成具有相同顶点u的簇,称为“扫描u”。当扫描u时,它存储d(u)的值。在BF的每一轮中,并不是所有的顶点都被扫描。如果顶点u的当前d值等于上次存储的d值,则跳过对顶点u的扫描(在这种情况下,扫描u是无用的)。尽管此修改的最坏情况范围与基本高炉相同,但众所周知,在实践中,此修改显著减少了运行时间。<br>由于上述分组Relax是Dijkstra_uscan中内置的,因此可以直接一致地修改Dijkstra_uscan和BFD。由于每次跳过的顶点扫描不会导致数据的变化,因此如上所述修改的每一轮BFD产生与基本BFD相同的结果。因此,所有证明的正确性和运行时间语句对于这个修改版本仍然有效。然而,由于本节第1部分所述的原因,所考虑的改变扫描顶点顺序的修改的高级版本(如[3])通常与BFD不兼容。<br>5.根据Dijkstra的变体调整BFD<br>让我们来研究如何使用Dijkstra的某些实现和变体来实现BFD循环,以便加速它。因此,定理3.5的时间界中的因子E V logv可以改变为这些实现/变体的时间界。<br>1.注意,Dijkstra的一些实现依赖于边缘成本的非负性,无论是显式的还是隐式的,因此如果G中存在负边缘,则可能无法正常工作。特别是,这些是使用单调优先级队列的实现(参见,例如,[4])。例如,考虑基本拨号的实现[7](另请参见[20,8],重新设计它)。它使用
正在翻译中..
 
其它语言
本翻译工具支持: 世界语, 丹麦语, 乌克兰语, 乌兹别克语, 乌尔都语, 亚美尼亚语, 伊博语, 俄语, 保加利亚语, 信德语, 修纳语, 僧伽罗语, 克林贡语, 克罗地亚语, 冰岛语, 加利西亚语, 加泰罗尼亚语, 匈牙利语, 南非祖鲁语, 南非科萨语, 卡纳达语, 卢旺达语, 卢森堡语, 印地语, 印尼巽他语, 印尼爪哇语, 印尼语, 古吉拉特语, 吉尔吉斯语, 哈萨克语, 土库曼语, 土耳其语, 塔吉克语, 塞尔维亚语, 塞索托语, 夏威夷语, 奥利亚语, 威尔士语, 孟加拉语, 宿务语, 尼泊尔语, 巴斯克语, 布尔语(南非荷兰语), 希伯来语, 希腊语, 库尔德语, 弗里西语, 德语, 意大利语, 意第绪语, 拉丁语, 拉脱维亚语, 挪威语, 捷克语, 斯洛伐克语, 斯洛文尼亚语, 斯瓦希里语, 旁遮普语, 日语, 普什图语, 格鲁吉亚语, 毛利语, 法语, 波兰语, 波斯尼亚语, 波斯语, 泰卢固语, 泰米尔语, 泰语, 海地克里奥尔语, 爱尔兰语, 爱沙尼亚语, 瑞典语, 白俄罗斯语, 科西嘉语, 立陶宛语, 简体中文, 索马里语, 繁体中文, 约鲁巴语, 维吾尔语, 缅甸语, 罗马尼亚语, 老挝语, 自动识别, 芬兰语, 苏格兰盖尔语, 苗语, 英语, 荷兰语, 菲律宾语, 萨摩亚语, 葡萄牙语, 蒙古语, 西班牙语, 豪萨语, 越南语, 阿塞拜疆语, 阿姆哈拉语, 阿尔巴尼亚语, 阿拉伯语, 鞑靼语, 韩语, 马其顿语, 马尔加什语, 马拉地语, 马拉雅拉姆语, 马来语, 马耳他语, 高棉语, 齐切瓦语, 等语言的翻译.

Copyright ©2024 I Love Translation. All reserved.

E-mail: