Questions tagged «directed-acyclic-graph»

这是一种数学结构,由一组点或顶点以及一组连接器或边组成。边连接顶点,并且那些顶点是定向的。同样,也不允许循环或将顶点连接到顶点的有向边。


1
图形什么时候可以接受最多只有一次步行的方向?
考虑以下问题: 输入:简单(无向)图 G=(V,E)G=(V,E)G=(V,E)。 问题:是否有一个方向 GGG 满足每个人的特性 s,t∈Vs,t∈Vs,t \in V 最多有一个(定向的) sss--ttt 步行? 这可以等效地表述为: 输入:简单(无向)图 G=(V,E)G=(V,E)G=(V,E)。 问题:是否存在非循环取向 GGG 满足每个人的特性 小号,吨∈ Vs,Ť∈Vs,t \in V 最多有一个(定向的) sss--ŤŤt 路径? 答案为“是”的图的类别是什么?这个问题可以在多项式时间内解决吗? 一些观察: 如果该图是二部图,则答案为“是”。 如果图形具有三角形,则答案为“否”。 第一个观察结果是将边缘从一个分区定向到另一个分区。第二个观察很容易检查。这导致了我两个错误的猜测: 当且仅当图为二部图时,答案为“是”。(反例:5个周期) 当且仅当图形没有三角形时,答案为“是”(反例:具有5个循环的边的笛卡尔积)


1
从一般加权无向图中找到最佳并行化
我正在解决“融合”重叠图像集的问题。这些集合可以由无向加权图表示,例如: 每个节点代表一个图像。重叠的图像通过边缘连接。边缘权重代表重叠区域的大小(更快混合更大的重叠会导致更好的整体质量)。 该算法通常去除边缘。它可以顺序执行或并行执行。但是,发生混合时,节点会合并,并且图形结构也会更改。因此,只有在自身不重叠的连接组件上才可以并行化! 这样的不重叠组件是DB和FEG。我们可以在这些组件上并行安全地运行混合算法。结果如下图(合并的节点以绿色显示): 现在,没有任何进一步的并行化可能,因为任何两个连接的组件都是重叠的(它们之间直接有一条边)。 该算法的并行版本如下所示: 1. Find connected components (no two are connected directly) and create task for each. 2. Run the tasks in parallel. 3. Update graph. 4. Until single node remains, continue with 1. 棘手的部分是第一步:如何找到最佳的连接组件集? 一种方法是贪婪算法,该算法仅在给定迭代中找到最大数量的组件。贪婪算法将在开始时最大程度地提高并行化速度,但会以后来的许多迭代为代价。 最佳解决方案可能是在每次迭代中引入大量的连接组件,以最大程度地并行化并同时最小化迭代次数(因此,优化中有两个变量)。 除了回溯,我没有想到任何优化算法,即搜索所有可能演化的空间并选择具有最大并行度的算法。 可以忽略边缘权重,但是算法的改进版本可能会考虑到它,因为较大的区域需要花费更多的时间进行混合(例如,大小为200的区域要比两个大小为100的区域花费大约两倍的时间进行混合)。考虑权重可能会导致选择组件时采用更好的策略(算法的整体运行时间更快)。 对于这种优化算法,您是否有任何线索,可以找到选择图的各个部分的最佳策略,以便最大程度地实现并行化并减少迭代次数?
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.