细胞景观。根据约束突出显示多个最佳路径

时间:2018-10-24 14:09:46

标签: path cytoscape.js

在我开始使用该库时,需要有关cytoscape的帮助,但无法在Cytoscape指南上得到解答。 我创建了具有特定权重的节点和边。 我想突出显示给定源节点和目标节点的2条最佳路径。第一个为绿色,第二个为红色突出显示。 我不在乎使用Dijkstra,star,...只要能做到。如果没有其他选择,则两条路径都可以遵循相同的路径(例如,如果源节点与其邻居只有1个连接)。为了滤除已经用于第一条路径的边缘,我在边缘中创建特定数据(isPrimary和IsDiverse),例如: 数据:{id:'1',源:'node1',目标:'node2',权重:0,isPrimary:0,isDiverse:0}。如果主路径使用此边缘,它将isPrimary标记为True。但是无法使其正常工作。

您有没有具体的例子来完成我的工作,因为我已经呆了几个星期了。 谢谢您的支持。

A。

2 个答案:

答案 0 :(得分:0)

我假设通过最佳路径表示最短路径。

您描述的问题称为 k最短路径Many algorithms已被开发来解决此问题。但不幸的是,据我所知,它们都不是在Cytoscape.js中实现的。

您最好的选择是利用Cytoscape.js中的Dijkstra算法来实现Yen算法。这是pseudocode(第13页)。

答案 1 :(得分:0)

谢谢。我设法在每个边缘上添加了一个参数(数据),并在最佳路径使用时将其标记为True。然后,为了找到不应该使用第一条最佳路径的第二条最佳路径,我创建了一个条件以避免使用标记设置为True的边。