标签: graph-theory

什么是Splay树,红黑树,AVL树,B树和T树?

什么是Splay树,红黑树,AVL树,B树和T树?

我正在寻找好的实施方案.

algorithm tree graph-theory data-structures

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

如何构建DAG的biadjacency矩阵?

对于二分图,您可以将邻接矩阵替换为所谓的biadjacency矩阵:

二部图的邻接矩阵A,其部分具有r和s顶点,具有形式

    A =  O  B
         BT O

其中B是r×s矩阵,O是全零矩阵.显然,矩阵B唯一地表示二分图,它通常被称为它的双邻性矩阵.

现在,DAG是一个二分图,例如,您可以在拓扑上对其进行排序,并使U和V集合分别是奇数或偶数拓扑级别的节点.

这意味着,对于具有n个节点的DAG,我只需要(n/2)2矩阵(平均)而不是2矩阵.问题是,我不知道如何构建它.任何提示?

graph-theory matrix

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

用于检测图中循环的最快算法

给定一个无向图,检测它是否包含循环的最佳算法是什么?

在跟踪被访问节点的同时进行广度优先或深度优先搜索是一种方法,但它是O(n ^ 2).有什么更快的吗?

algorithm graph-theory cycle

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

Perl的六度凯文培根

首先是的,这是我的Perl课程的家庭作业项目.我不是在寻找答案(尽管那会很好).据我了解,我需要使用BFS和正则表达式来组织我的数据以供使用.我需要一些方向.我如何使用BFS?我是否使用大量堆栈并浏览堆栈中的每个项目?我应该使用巨型哈希表吗?有没有人解决过这个问题?你是怎么做的?我只是需要一些方向.这类似于BST吗?这可能不使用图形模块吗?这是否可以使用哈希值?

perl graph-theory graph-traversal data-structures

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

在Excel中通过VBA的第一层先前单元格的地址

在调试工具栏上,您可以单击一个按钮,该按钮显示由所选单元格直接调用的单元格的有向箭头(我将这些直接先例称为"第一层").但是,当您Precedents在单元格上使用该属性时,它将返回单元格所依赖的工作表上的所有单元格.

例如,我有DT836以下公式的单元格:

=DP836+DR836+DS836
Run Code Online (Sandbox Code Playgroud)

"Trace Precedents"调试工具栏显示将这三个单元格连接到单元格的漂亮蓝色箭头DT836.

Range("DT836").Precedents 包含70,000+细胞范围(据我所知)无法区分依赖者与其先例的距离.

有没有办法用VBA识别这个?

excel vba graph-theory

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

如何从一组不等式比较中在Perl中创建有序列表?

我正在玩Perl的历史股市分析.一个方面涉及分析过去股票评级的研究公司的准确性.最基本的评级量表是买入,持有,卖出.然而,这些公司中有许多使用不同的术语,有些术语的规模超过3分.

我所拥有的是数百个不同公司(来自雅虎财经)发布的数千个升级/降级列表,如下所示:

Action      From      To
==================================================
Upgrade     Add           Buy
Downgrade   Add           Hold
Upgrade     Hold          Add
Downgrade   Buy           Outperform
Upgrade     Hold          Outperform
Downgrade   Hold          Reduce
Upgrade     Add           Outperform
Run Code Online (Sandbox Code Playgroud)

所以基本上它是一个比较列表,如A> B,D <C,B> C,D <A

我需要为每个研究公司提供一长串的这些比较,这是一个有序列表,如下所示:

A> B> C> D> E.

我已经考虑了很多这个问题并且无法提出解决方案.如果每次升级/降级只跳过一个增量,我想我可以做到但我无法绕过如何插入比较像C <A,它跳过两个增量.

有人有什么想法吗?




更新:

谢谢@ikegami.我用原始数据测试过,你是对的.

我还通过Graph :: Easy运行了一些数据,这些数据呈现图形.

码:

use Graph::Easy;
my $graph = Graph::Easy->new( );

# Note that these are all in 'Upgrade' direction
$graph->add_edge ('Hold', 'Add');
$graph->add_edge ('Hold', 'Buy');
$graph->add_edge ('Hold', 'Outperform');
$graph->add_edge ('Buy', 'Outperform');
$graph->add_edge ('Reduce', 'Hold');
$graph->add_edge ('Add', …
Run Code Online (Sandbox Code Playgroud)

perl graph-theory stocks list

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

N阶直接非循环图的可能拓扑排序的最大数量是多少?

我需要在N阶直接无环图上找到拓扑排序的最大数量.我通过在各种直接非循环图上运行深度优先搜索算法进行检查,看起来它是在图上运行DFS后创建的深度优先搜索算法林的大小.或许我完全错了或错过了什么.我还需要证明一下.任何帮助将不胜感激.谢谢.

math graph-theory combinatorics topological-sort directed-acyclic-graphs

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

在R中查找所有闭合节点集

我有一个边缘列表如下(简单示例):

DT <- data.frame(x = c(letters[1:7],"a","b","c","a","d","e","f"), y = c(letters[1:7],"b","a","a","c","f","f","d"))
> DT
   x y
1  a a
2  b b
3  c c
4  d d
5  e e
6  f f
7  g g
8  a b
9  b a
10 c a
11 a c
12 d f
13 e f
14 f d
Run Code Online (Sandbox Code Playgroud)

然后我使用以下代码绘制了这个图:

require(igraph)
myadj <- get.adjacency(graph.edgelist(as.matrix(DT), directed=FALSE))
my_graph <- graph.adjacency(myadj)
layout <- layout.fruchterman.reingold(my_graph,niter=500,area=vcount(my_graph)^2.3,repulserad=vcount(my_graph)^2.8)
plot(my_graph, vertex.size=10, 
     vertex.label.cex=1,
     edge.arrow.size=0, edge.curved=TRUE,layout=layout)
Run Code Online (Sandbox Code Playgroud)

网络图

我现在想要的是提取所有封闭节点的集合.我不确定一个典型的符号会是什么样子,但我可以想象:

  node set
1    a   1
2    b …
Run Code Online (Sandbox Code Playgroud)

r graph-theory

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

从非常大的边缘列表快速计算单向,双向链路的数量

我有一个4 GB的文件,其中有大约20亿个有向边,格式为User1 FOLLOWS User 2,如下所示.

User1       User2
7           37
5           24
7           8383932
24          1
3           8538
37          7

DF = structure(list(User1 = c(7L, 5L, 7L, 24L, 3L, 37L), User2 = c(37L, 
24L, 8383932L, 1L, 8538L, 7L)), .Names = c("User1", "User2"), row.names = c(NA, 
-6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

等等.我希望能够有效地获得以下结果

User        NumberFollowers        NumberFriends
1           1                      0
7           1                      1
24          1                      0
37          1                      1
8383932     1                      0
8538        1                      0
5           0                      0
3           0                      0
Run Code Online (Sandbox Code Playgroud)

等等,其中NumberFollowers是带有链接的"User1"的数量,NumberFriends是他们也相互关注的追随者的数量.

我目前正在尝试使用

aggregate()
Run Code Online (Sandbox Code Playgroud)

然而,它似乎忽略了用户5和用户3没有朋友或关注者的情况,但他们自己跟随人. …

r graph-theory

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

有向无环图可以是零边缘吗?

假设图G是有向无环图,其中'n'没有顶点.如果我从图表中删除所有边缘并使其完全断开,这会是DAG吗?

algorithm graph-theory directed-graph topological-sort directed-acyclic-graphs

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