Neo4j中的最短路径必须通过节点表示的某些服务

时间:2017-02-13 10:18:12

标签: graph neo4j cypher dijkstra shortest-path

问题如下:

我想在网络中的两个主机(Ha,Hb)之间找到最短路径,路径应该传递一些函数(f1,f2,f3,... fn),其中一些节点托管其中一些。( node1主机f1,f2 node14主机f4等,。)。

问题无法通过在子级别上运行Dijkstra(Ha到node1,node1到nodek,nodek到Hb)来解决,因为我们可能会选择第一个最短路径,这会在最后路径部分产生高成本。

如何使用Cypher进行操作?任何Graph算法都可以处理这些东西。

输入(启动主机,结束主机,列表功能,具有相应托管功能的节点列表)

请考虑通过该功能可能是有序的,可能不是。

例如: 城市A和dst中的src主机位于城市B中 功能:防火墙,负载均衡器 托管功能的节点:防火墙服务托管在Node 2,3,6,7中托管的节点1,3,4,5 Loadbalancer中。

每个边缘和流程都有自己的成本。 根据我们现在可以解决的问题,谁应该是第一个的顺序可以是开启还是关闭,其他情况可以在以后处理。

最后:路径应该看起来 CityA --- pathcost = 3 --- Node4防火墙(进程成本= 1)--- pathcost = 2 --- Node6 loadbanacer(进程成本= 2)--- pathcost = 2 --- CityB 感谢名单

0 个答案:

没有答案