图形行进算法以递归方式找到最大值

时间:2015-02-19 05:03:30

标签: algorithm graph graph-algorithm datomic

我有一个稀疏的有向图。图是树,但可能有周期,它不是很深,整个图总是适合于ram。图中的每个节点都有一个整数值。

对于起始节点,如何找到最大的可达值:

  1. 表示起始节点,
  2. 表示所有可到达的节点(已经访问过以确定#1)
  3. (不是作业。我有一个数据组实体图,我想以递归方式确定从起始点可到达的每个节点的last-modified-tx。)

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用pull API' recursive specifications

doc示例非常简单,适用于您描述的案例(具有您域名的相应属性):

[:person/firstName :person/lastName {:person/friends ...}]

假设整个图形适合内存(这种方法的主要问题)。 pull中的递归容忍循环,并且不会将拉模式应用于先前访问的实体。这可以适用于,例如:

[:node/value {:node/next ...}]