在我开始使用该库时,需要有关cytoscape的帮助,但无法在Cytoscape指南上得到解答。 我创建了具有特定权重的节点和边。 我想突出显示给定源节点和目标节点的2条最佳路径。第一个为绿色,第二个为红色突出显示。 我不在乎使用Dijkstra,star,...只要能做到。如果没有其他选择,则两条路径都可以遵循相同的路径(例如,如果源节点与其邻居只有1个连接)。为了滤除已经用于第一条路径的边缘,我在边缘中创建特定数据(isPrimary和IsDiverse),例如: 数据:{id:'1',源:'node1',目标:'node2',权重:0,isPrimary:0,isDiverse:0}。如果主路径使用此边缘,它将isPrimary标记为True。但是无法使其正常工作。
您有没有具体的例子来完成我的工作,因为我已经呆了几个星期了。 谢谢您的支持。
A。
答案 0 :(得分:0)
我假设通过最佳路径表示最短路径。
您描述的问题称为 k最短路径。 Many algorithms已被开发来解决此问题。但不幸的是,据我所知,它们都不是在Cytoscape.js中实现的。
您最好的选择是利用Cytoscape.js中的Dijkstra算法来实现Yen算法。这是pseudocode(第13页)。
答案 1 :(得分:0)
谢谢。我设法在每个边缘上添加了一个参数(数据),并在最佳路径使用时将其标记为True。然后,为了找到不应该使用第一条最佳路径的第二条最佳路径,我创建了一个条件以避免使用标记设置为True的边。