标签: graph-algorithm

通过有向图比较有向路径相似度的算法

我有一个有向图,其中有两条有向路径。

我想要一种算法来确定两条路径之间的相似性。

这篇文章提到使用编辑距离来确定近似相似度。我还意识到汉明距离使用类似的度量。

我的问题是:

如何处理两条路径彼此平行的情况。也就是说,如果两条路径没有相似的节点,但仍将被视为“相似”,因为它们的路径在相同方向上行进且彼此非常接近。

谢谢

compare directed-graph path similarity graph-algorithm

3
推荐指数
1
解决办法
4925
查看次数

图算法:邻接图的可达性

我有一个依赖图,我将其表示为 a Map<Node, Collection<Node>>(用 Java 来说,或者f(Node n) -> Collection[Node]作为函数;这是从给定节点n到依赖于 的节点集合的映射n)。该图可能是循环的*。

给定一个badlist节点列表,我想解决一个可达性问题:即生成一个Map<Node, Set<Node>> badmap表示从列表中的每个节点 Nbadlist到一组节点的映射,该组节点包括 N 或传递依赖于它的其他节点。

例子:

(x -> y means node y depends on node x)
n1 -> n2
n2 -> n3
n3 -> n1
n3 -> n5
n4 -> n2
n4 -> n5
n6 -> n1
n7 -> n1
Run Code Online (Sandbox Code Playgroud)

这可以表示为邻接图{n1: [n2], n2: [n3], n3: [n1, n5], n4: [n2, n5], n6: [n1], n7: …

algorithm graph-algorithm

3
推荐指数
1
解决办法
5916
查看次数

带有加权边的二分匹配

我正在开发一个程序,将对象分为两组,并且测量每个对象与其他对象的相似程度,并且我想找到将它们匹配在一起的最佳方法。

如果集合是由编辑距离定义的单词和距离,则集合“this”、“is”、“a”、“test”与“and”、“this”、“is”的最佳匹配, “最好”,那么我会将“this”与“this”(得分为0)匹配,“is”与“is”(得分为0),“a”与“and”(得分为0) 2)、“最佳”和“测试”(得分为 1)。

我已将问题简化为寻找最大二分匹配问题。这是一个描述:

给定一个边具有整数权重的二分图,找到一组边,使得 (a) 每个顶点在该组中只有一条边,并且 (b) 该组中的权重总和具有最大大小。

我不相信这个问题是 NP 完全的(或者,即使不是,但如果算法可能非常慢),是否有某种方法可以在一定程度上近似答案?

目前,我选择最小权重边,删除它及其连接的节点,然后重复,但这似乎不是最佳的。我考虑过将其简化为某种流程问题(就像处理正常的二分匹配一样),但在这种情况下它不起作用。

algorithm graph-theory graph-algorithm

3
推荐指数
1
解决办法
4603
查看次数

检查 DAG 的两个节点是否在恒定时间内位于同一条路径上

我有一个 DAG(有向无环图),它由边列表表示,例如

edges = [('a','b'),('a','c'),('b','d')]
Run Code Online (Sandbox Code Playgroud)

将给出图表

a - > b -> d
|
v
c
Run Code Online (Sandbox Code Playgroud)

我正在执行许多操作,我必须检查两个节点是否位于同一路径上(b并且d位于同一路径上,b而 和c不是来自上面的示例),这反过来又减慢了我的程序。我希望我能以某种方式遍历该图一次并保存所有路径,这样我就可以在恒定的时间内检查它。

这种加速可能吗?我将如何在 python 中实现它?

编辑:请注意,我需要检查两个方向,因此如果我有一对节点,(a,b)我需要检查atobbto a

python algorithm graph-traversal directed-acyclic-graphs graph-algorithm

3
推荐指数
1
解决办法
744
查看次数

如何证明MST上总存在完全极小极大路径

无向图中的极小极大路径是两个顶点v、w之间的路径 ,其最小化路径上边的最大权重。

T为给定图G=(V,E)的最小生成树。我如何证明,对于V中的任何一对顶点v, w ,在vw之间始终存在一条完全在T上的极小极大路径。

我试图假设T上完全没有极小极大路径,但我不知道如何得出矛盾。

algorithm minimum-spanning-tree graph-algorithm data-structures

3
推荐指数
1
解决办法
5246
查看次数

具有锁定和未锁定边的无向图中的最小路径

给定具有正权重的无向图,有两种边:锁定边和未锁定边.确定给定边缘是锁定边缘还是解锁边缘需要O(1).

  1. 对于给定的两个顶点s,t和正数k = O(1),如何找到st之间最短路径,其中包含最多 k个锁定边缘?

  2. 对于给定的两个顶点s,t和一个正数k = O(1),如何找到包含正好k个锁定边的st之间最短路径?

我不知道我怎么能在这个图运行Dijkstra算法找出给定顶点之间的最短路径,以及如何改造无向图,为指导之一.

algorithm graph-theory graph graph-algorithm data-structures

2
推荐指数
1
解决办法
364
查看次数

计算任何一种树的直径?

如何设计一种算法,在线性时间内计算(图理论)无向,全边有重量1树的直径?树的直径由两个顶点之间的最长路径的长度给出.

知道如何解决这个问题吗?

algorithm pseudocode graph-algorithm

2
推荐指数
1
解决办法
1566
查看次数

Floyd-Warshall算法适用于负循环

如何修改Floyd-Warshall算法以找到维持O(V ^ 3)时间复杂度的有向图的任何负成本周期的最短路径?

algorithm shortest-path graph-algorithm floyd-warshall

2
推荐指数
1
解决办法
575
查看次数

所有可能的Tic Tac Toe获胜组合

我接受了一次采访,我被问到一个看似简单的算法问题:"编写一个算法,将所有可能的获胜组合归还给我." 我仍然无法找到一种有效的方法来处理这个问题.是否有一个标准算法或常见的应用于我不知道的类似问题?

algorithm combinations graph-algorithm

2
推荐指数
1
解决办法
2万
查看次数

是什么使数据结构递归?

我正在阅读有关递归数据类型的信息 ,该数据类型具有以下引号:

在计算机编程语言中,递归数据类型(也称为递归定义,归纳定义或归纳数据类型)是值的数据类型,该值可能包含相同类型的其他值

我知道,链表和树可以是递归数据类型,因为它包含相同数据结构的较小版本,例如树可以具有子树。

但是,这让我真的很困惑,因为固定大小的数组还不包含子数组吗?哪个仍然是同一类型?

有人可以举例说明什么使数据结构递归吗?

tree recursion linked-list graph-algorithm

2
推荐指数
1
解决办法
934
查看次数