Questions tagged «graph-algorithms»

图上的算法,不包括启发式算法。

6
什么时候说两种算法“相似”?
我不从事理论工作,但是我的工作需要不时阅读(和理解)理论论文。一旦理解了(一组)结果,我就会与与之共事的人讨论这些结果,其中大多数人也不是理论上的人。在其中一种讨论中,出现了以下问题: 什么时候说两个给定的算法“相似”? “相似”是什么意思?我们可以说,如果您可以在论文中提出以下任一主张而不会混淆/烦扰任何审阅者(欢迎使用更好的定义),则可以说两种算法是相似的: 声明1.“算法与算法相似,也解决了问题 ”AAABBBXXX 声明2。“我们的算法类似于算法 ”CCC 让我稍微具体一点。假设我们正在使用图算法。首先,两种算法必须相似的一些必要条件: 他们必须解决相同的问题。 他们必须具有相同的高级直观想法。 例如,谈到图遍历,广度优先和深度优先遍历满足以上两个条件;对于最短路径计算,广度优先和Dijkstra的算法满足上述两个条件(当然,在未加权图上);等等 这些条件是否也足够?更具体地,假设两种算法满足必要条件以变得相似。如果真的,您是否会称它们相似? 他们有不同的渐近表现? 对于一类特殊的图,一种算法需要时间,而另一种算法则需要时间?Ω(n)Ω(n)\Omega(n)O(n1/3)O(n1/3)O(n^{1/3}) 他们有不同的终止条件?(回想一下,他们正在解决相同的问题) 两种算法的预处理步骤是否不同? 两种算法的内存复杂度是否不同? 编辑:问题显然是非常依赖于上下文的,并且是主观的。我希望以上五种条件能够提出一些建议。如果需要获得答案,我很乐意进一步修改问题并提供更多详细信息。谢谢!

2
使用Eppstein算法找到k条最短路径
我试图找出如何路径图形P(G)P(G)P(G)在此根据Eppstein的算法纸作品,以及如何我可以重建kkk从最短路径sss到ttt与相应的堆结构H(G)H(G)H(G)。 至今: out(v)out(v)out(v)包含离去一个顶点的所有边vvv中的曲线图GGG其不是在最短路径的一部分GGG。使用此边缘而不是最短路径上的边缘时,它们由称为的“时间浪费”按堆排序δ(e)δ(e)\delta(e)。通过应用Dijkstra,我找到了从到每个顶点的最短路径ttt。 我可以通过边的长度+(头顶点的值(有向边指向的位置)-尾点的值(有向边开始的位置)来计算,如果>0>0> 0,则为不在最短路径上,如果=0=0= 0,则在最短路径上。 现在我建立一个2最小堆Hout(v)Hout(v)H_{out}(v)由heapifying边集out(v)out(v)out(v)根据它们的δ(e)δ(e)\delta(e)对于任何v∈Vv∈Vv \in V,其中,所述根outroot(v)outroot(v)outroot(v)只有一个孩子(=子树)。 为了构建 i插入ö ü 吨- [R ö ø 吨(v )在ħ Ť(Ñ Ë X 吨Ť(v ))在终端顶点开始吨。每次在插入时以某种方式触摸顶点时,都会用*标记。HT(v)HT(v)H_T(v)outroot(v)outroot(v)outroot(v)HT(nextT(v))HT(nextT(v))H_T(next_T(v))ttt∗∗* 现在我可以建立通过插入的其余部分ħ Ò ù 吨(瓦特)在ħ Ť(v )。在每个顶点ħ ģ(v )包含任一2从儿童ħ Ť(v )和1从ħ Ò ù 吨(瓦特)或0由第一和2从第二和是3堆。HG(v)HG(v)H_G(v)Hout(w)Hout(w)H_{out}(w)HT(v)HT(v)H_T(v)HG(v)HG(v)H_G(v)222HT(v)HT(v)H_T(v)111Hout(w)Hout(w)H_{out}(w)000222 借助我可以构建一个称为D (G )的DAG,其中包含一个顶点,该顶点来自H T(v )的每个带*标记的顶点,以及每个来自H o u t(v )的非根顶点。HG(v)HG(v)H_G(v)D(G)D(G)D(G)∗∗*HT(v)HT(v)H_T(v)Hout(v)Hout(v)H_{out}(v) 的根在d (ģ )被称为ħ (v )和它们连接到它们所属的顶点到根据ö …

1
使最小宽度树分解趋于多项式时间
众所周知,图的树分解由树和每个顶点的关联包,满足以下条件:GGGTTTTv⊆V(G)Tv⊆V(G)T_v \subseteq V(G)v∈V(T)v∈V(T)v \in V(T) 每个顶点都在某个包中。GGGTTT 对于每个边缘,都有一个包含边缘两个端点的袋子。GGG 对于每个顶点,包含的袋子都诱导出的连接子树。v∈V(G)v∈V(G)v \in V(G)vvvTTT 我们还可能需要从分解中获得以下条件,称为“ 稀薄度”: 对于每对袋的,的,如果和与,则a)有顶点不相交的路径,或b)树T在从节点a到节点b的路径上包含边p q,使得| V (Ť p)∩ V (Ť q)| ≤ ķ和设定VTaTaT_aTbTbT_bTTTA⊆TaA⊆TaA \subseteq T_aB⊆TbB⊆TbB \subseteq T_b|A|=|B|=k|A|=|B|=k|A| = |B| = kkkkA−BA−BA-BGGGTTTpqpqpqaaabbb|V(Tp)∩V(Tq)|≤k|V(Tp)∩V(Tq)|≤k|V(T_p) \cap V(T_q)| \leq k相交所有在路径。V(Tp)∩V(Tq)V(Tp)∩V(Tq)V(T_p) \cap V(T_q)A−BA−BA-BGGG 罗宾·托马斯(Robin Thomas)表明,总是存在最小宽度的树分解,而且这种分解也是精简的,并且由多个作者(例如Patrick Patrickenen和Reinhard Diestel)提供了对此事实的简单证明。 我感兴趣的是:给定图和最小宽度的树分解,我们可以发现一个最小宽度 瘦的树分解在多项式时间?GGGGGGGGG 提到的两个证明不能产生如此有效的建设性。在贝伦鲍姆和迪埃斯特尔的论文中,提到“在托马斯定理的另一个(更具建设性的)简短证明中,P。贝伦鲍姆,Schlanke Baumzerlegungen von Graphen,汉堡大学的Diplomarbeit,2000年”。las,我无法在线上找到该手稿,而我的德语不是那么好。

1
这种有向图问题的名称是什么?
取一个有向图,其中的边用自然数装饰。我们想要两个顶点v 1和v 2之间的所有路径P的集合,以使路径中的每个连续边都用自然数装饰,该自然数大于装饰前一条边的自然数。GGGPPPv1v1v_1v2v2v_2 一个应用程序是公交车或火车时刻表。如果您要根据车站之间的交通路线来确定两个城市之间的不同路线。(您不能在第一趟火车到达之前乘坐第二趟预定出发的火车。) 我非正式地将其称为“计划图”。但是我不知道文献中的名字是什么。 对与此相关的算法的任何引用也很有趣。

2
给定一个有4个周期的自由图,我们可以确定它在二次时间内是否有一个3个周期?
所述 -cycle问题如下:kkk 实例:一个无向图具有个顶点,最多n个\选择2条边。Ñ ( ÑGGGnnn(n2)(n2)n \choose 2 问题:G中是否存在一个(适当的)kkk周期?GGG 背景:对于任何固定的kkk,我们可以在O(n ^ 2)时间内求解2k2k2k周期。O(n2)O(n2)O(n^2) 拉斐尔·尤斯特(Raphael Yuster),乌里·茨维克(Uri Zwick):更快地找到偶数周期。SIAM J. 离散数学。10(2):209-222(1997) 但是,还不知道我们是否可以在不到矩阵乘法时间的情况下求解3个周期(即3个周期)。 我的问题:假设GGG包含4个周期,我们能否在O(n2)O(n2)O(n^2)时间内解决3个周期的问题? David建议了一种在时间内解决3周期问题变体的方法。O(n2.111)O(n2.111)O(n^{2.111})

1
k-Clique的2FA状态复杂度?
简单形式: 双向有限自动机可以识别包含状态的三角形的顶点图吗?vvvo (v 3)o(v3)o(v^3) 细节 这里有趣的是使用一系列边编码的顶点图,每个边是一对来自的不同顶点。v { 0 ,1 ,... ,v - 1 }vv{0,1,…,v−1}\{0,1,\dots,v-1\} 假设是双向的有限自动机的一个序列(确定性或不确定性),使得识别 -Clique上 -点输入的图形和具有状态。问题的一般形式是:吗?(M v)M v k v s (v )s (v )= Ω (v k)(Mv)(M_v)MvM_vkkvvs(v)s(v)s(v)=Ω(vk)s(v) = \Omega(v^k) 如果对于无限多个,且,则NL≠NP。因此,我不太那么雄心勃勃地规定是固定的,并且情况是第一个平凡的情况。ķ = ķ (v )= ω (1 )小号(v )≥ v ķ (v ) v ķ ķ = 3k=k(v)=ω(1)k = …

1
Kruskal算法的密集版本是否众所周知?
大约一年前,我和一个朋友想出了一种方法,可以比通常的Ø (米日志m )Ø(米日志⁡米)O(m \log m)边界(不假设预先排序的边缘)更好地实现Kruskal算法用于密集图。具体来说,我们在所有情况下都实现,与使用邻接矩阵实现时的Prim相似。Θ (n2)Θ(ñ2)\Theta(n^2) 我已经发布了一些关于该算法在我的博客,包括C ++代码和基准,但这里的总体思路: 为每个连接的组件维护一个代表性节点。最初,所有节点都代表自己。 保持向量dist[i],以使每个分量的i入射角最轻i。 找到跨分区的最轻的边缘时,只需找到在线性时间内i使的权重最小的方法即可dist[i]。 连接两个组件和,修改邻接矩阵,使所有组件k的并标记i不再代表其连接的组件(现在仅保留j)。C一世C一世c_iCĴCĴc_j一种一种A一种我,ķ= 分钟{ A我,ķ,一Ĵ ,ķ}一种一世,ķ=分{一种一世,ķ,一种Ĵ,ķ}A_{i, k} = \min \{A_{i, k}, A_{j, k}\}ķķk一世一世iĴĴj 因此,最轻的边缘的收缩和所述边缘的发现都可以在线性时间内完成。我们执行n − 1ñ-1个n - 1次以找到MST。需要一点记账才能真正找到我们要添加到MST的哪个边,但不会增加复杂性。因此,运行时为Θ (n2)Θ(ñ2)\Theta(n^2)。该实现只是几个for循环。 此版本的Kruskal在文学中是否广为人知?

1
模块化分解和集团宽度
我正在尝试了解有关模块化分解和Clique宽度图的一些概念。 在本文中(“在P4-整洁图上”),有一个证明如何使用模数分解解决诸如团数或色数之类的优化问题。当您知道G1和G2的答案时,通过组成两个图G1,G2来解决这些问题很容易。由于P4整洁图分解时的素数图是有界图(即C5,P5等),因此对于这些“基本情况”很容易求解,然后对构图求解。因此,通过使用分解树,可以在线性时间内解决这些问题。 但似乎该技术可与任何图类一起使用,从而使图素有界。然后我发现了这篇论文《有界集团宽度图上的线性时间可解优化问题》,它似乎使我一直在寻找一般性的东西,但是我不太理解。 我的问题是: 1-等于说分解树的素图是有界的(就像在P4整洁图的情况下一样),而图的属性是“ Clique-Width”? 2-如果1的答案为否,那么:是否存在关于以图素为界的图类的任何结果(例如在P4整洁图中),因此所有这些类的优化问题(如线性时间可求解的集团数)是否存在?


3
NP中的超级马里奥流?
最大流量问题的一个经典扩展是“随时间的最大流量”问题:您将得到一个有向图,将其两个节点分别作为源和汇,其中每个弧具有两个参数,每容量-单位时间和延迟。同时,也给出一个时间跨度TŤT。目的是计算随时间变化的流量,该流量在时间从源到接收器获得最大数量的物料。可以通过多项式时间中的最小经典最大流量的巧妙经典归约来计算最大值的流量。TŤT 我对此模型的扩展感兴趣,该模型的边缘具有第三个“寿命”参数。如果电弧的寿命为,并且是最早的正向电弧通过的时间,那么我们在时间处销毁电弧。您可以将其视为“超级马里奥兄弟”中的平台,踩到平台后不久就会掉落或被破坏,或者可以将它们视为为边缘供电所需的电池,在开启后无法关闭。(编辑:)决策问题是,当还给定流量值下限,是否可以调度同时满足时间范围上限和流量值下限的流量。ℓℓ\elltŤtt+ℓŤ+ℓt+\ellB乙B 到目前为止,我可以看到此问题对NP来说非常困难(通过3分区)。但是,我实际上并不知道它是否包含在NP中:是否可以保证有一种紧凑表达解决方案的方法?在经典版本中,使用某些特殊类型的最优流来规避此问题。 注意:由于您可能允许或不允许在节点上存储流量,因此上述模型的指定有点不足,并且您可能具有离散时间模型或连续模型。解决这些模型中的任何一个问题都是非常好的。

1
图分解以结合顶点标记的“局部”功能
假设我们要找到 或 最大X Π 我Ĵ ∈ È ˚F(X我,XĴ)∑X∏我Ĵ ∈ ËF(x一世,XĴ)∑X∏一世Ĵ∈ËF(X一世,XĴ)\sum_x \prod_{ij \in E} f(x_i,x_j)最大值X∏我Ĵ ∈ ËF(x一世,XĴ)最大值X∏一世Ĵ∈ËF(X一世,XĴ)\max_x \prod_{ij \in E} f(x_i,x_j) 如果对V的所有标记取max或sum VVV,则对图G = \ {V,E \}的所有边E取乘积,并且f是任意函数。对于有界树宽图,容易找到此数量;对于平面图,通常很难找到此数量。适当着色的数量,最大独立集和欧拉子图的数量是上述问题的特殊情况。我对此类问题的多项式时间逼近方案感兴趣,尤其是对于平面图。哪些图分解会有用?ËËEG = { V,E}G={V,Ë}G=\{V,E\}FFf 编辑11/1:作为示例,我想知道分解可能类似于统计物理学的聚类扩展(即Mayer扩展)。当FFf表示弱相互作用时,此类展开收敛,这意味着您可以使用ķķk项来达到给定的精度,而不管图形的大小。这是否意味着该数量存在PTAS? 更新02/11/2011 高温膨胀将分区函数Z重写žžZ为项的总和,其中高阶项依赖于高阶相互作用。当“相关性衰减”时,高阶项衰减得足够快,因此几乎所有žžZ的质量都包含在有限数量的低阶项中。 例如,对于Ising模型,请考虑其分区函数的以下表达式 ž= ∑X ∈ X经验值Ĵ∑我Ĵ ∈ ËX一世XĴ= c ∑一∈ Ç(谭Ĵ)| A |ž=∑X∈X经验值⁡Ĵ∑一世Ĵ∈ËX一世XĴ=C∑一种∈C(谭⁡Ĵ)|一种|Z=\sum_\mathbf{x\in \mathcal{X}} \exp J \sum_{ij \in E} …

2
向汉密尔顿路径添加匹配项以减少给定顶点对之间的最大距离
以下问题的复杂性是什么? 输入: 一个汉弥尔顿路径在 ķ ÑHHHKnKnK_n 顶点对的子集R⊆[n]2R⊆[n]2R \subseteq [n]^2 正整数kkk 查询:是否有一个匹配 ,使得对于每一个(v ,Û )∈ [R ,d G ^(v ,Û )≤ ķ? (其中,G ^ = ([ Ñ ] ,中号∪ ħ ))MMM(v,u)∈R(v,u)∈R(v,u) \in RdG(v,u)≤kdG(v,u)≤kd_G(v,u) \leq kG=([n],M∪H)G=([n],M∪H)G = ([n], M\cup H) 我一直在和朋友讨论这个问题。我的朋友认为问题出在多项式时间内。我认为它是NP完整的。

1
最长路径问题比最长路径问题容易吗?
最长的路径问题是NP困难的。(典型的?)证明依赖于哈密顿路径问题(NP完全)的减少。请注意,此处的路径被认为是(节点简单的)。也就是说,在路径中,没有一个顶点可以出现多次。显然,它也是边缘简单的(在路径中不会出现多次边缘)。 那么,如果我们放弃寻找(节点)简单路径的要求,而坚持寻找边缘简单路径(尾迹)的方式该怎么办呢?乍一看,由于找到欧拉路径比找到汉密尔顿路径容易得多,因此人们可能希望找到最长的路径比找到最长的路径容易。但是,我找不到任何证明这一点的参考,更不用说提供算法的参考了。 请注意,我知道此处提出的论点:https : //stackoverflow.com/questions/8368547/how-to-find-the-longest-heaviest-trail-in-an-undirected-weighted-graph 但是,该论点它目前的形式似乎有缺陷,因为它基本上表明您可以通过解决另一张图上的节点简单问题来解决边缘简单问题(因此,归约是错误的方法)。尚不清楚减少量是否可以容易地更改为以其他方式起作用。(不过,它的确表明,至少最长的路径问题并不比最长的路径问题难。) 那么,找到最长的踪迹(边缘简单路径)是否有任何已知结果?复杂度(类)?(高效)算法?


5
有界树宽图上r控制集的精确算法
给定一个图,我想找到G的最优r支配。也就是说,我想一个子集小号的V,使得在所有顶点摹都是以最多的距离[R从一些顶点小号,同时最大限度地减少大小小号。G=(V,E)G=(V,E)G = (V, E)rrrGGGSSSVVVGGGrrrSSSSSS 从到目前为止的检查中,我得到以下信息:在图形中找到一个是一个相关的问题,该图形最多是大小为k的子集S,从而图形中的所有顶点都是在atmost的距离- [R从一些顶点在小号(这里既|小号| ≤ ķ和- [R是输入的部件),用于其Demaine等。对平面图有FPT算法。否则,即使r = 1,问题也是W [ 2 ] -hard 。(k,r)(k,r)(k,r)SSSkkkrrrSSS|S|≤k|S|≤k|S| \leq krrrW[2]W[2]W[2]r=1r=1r = 1 是否知道关于有界树宽图甚至树的控制问题的确切复杂性?(r支配的MSO是可定义的吗?通常的k支配集的问题是MSO的可定义的-然后它可以使人们使用Courcelle定理得出该问题存在线性时间算法的结论)。是否有关于此问题的条件硬度结果已知?rrrrrrkkk

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.