Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 生成图中路径的高效鲁棒算法_Algorithm_Graph Theory - Fatal编程技术网

Algorithm 生成图中路径的高效鲁棒算法

Algorithm 生成图中路径的高效鲁棒算法,algorithm,graph-theory,Algorithm,Graph Theory,我想写一个大分子中键的可视化。这些连接以连接列表的形式给出,例如: [[1,2],[2,3],[3,4],[5,6],[8,9]] 到目前为止,我只需一次调用我的可视化工具包,就可以单独绘制每一个键。但是,这非常缓慢,绘制更少但更长的连接线要快得多 因此,我希望在绘制所有连接的图中找到尽可能少的连接路径。在我的示例中,我希望转换连接输入,例如: [[1,2],[2,3],[3,4],[5,6],[8,9],[6,8],[4,10]] 到 是否有一个有效的算法和实现?我是用python写的,但

我想写一个大分子中键的可视化。这些连接以连接列表的形式给出,例如:

[[1,2],[2,3],[3,4],[5,6],[8,9]]
到目前为止,我只需一次调用我的可视化工具包,就可以单独绘制每一个键。但是,这非常缓慢,绘制更少但更长的连接线要快得多

因此,我希望在绘制所有连接的图中找到尽可能少的连接路径。在我的示例中,我希望转换连接输入,例如:

[[1,2],[2,3],[3,4],[5,6],[8,9],[6,8],[4,10]]


是否有一个有效的算法和实现?我是用python写的,但是一个算法配方就足够了(如果不是太复杂的话)。

只是很难理解重组是如何进行的。[1,2]、[2,3]、[3,4]由于相交而被分组。但是其他人呢?7在下一个中丢失,那么为什么要重新组合5、6、8和9?为什么解不是[1,2,3,4],[5,6],[8,9],[4,10]。一旦我明白了,找到一个算法就不成问题了。在你的例子中,每个起点只有一个可能的目的地。在您更一般的情况下,[[1,2][2,3][2,4]]会发生吗?如果是这样的话,这将如何影响预期的结果?看起来你只需要减少线的数量,而不是找到尽可能少的线。这是2D还是3D?除非键是共线的,否则可以用[[1,2,3]]替换[[1,2,3]],这似乎很奇怪。在任何情况下,听起来好像你想要连接的组件?如果该组件是树,会发生什么?例如:[[1,2]、[2,3]、[2,4]?为什么解决方案是[[1,2,3,4]、[5,6,8,9]、[4,10]、而不是[[1,2,3,4,10]、[5,6,8,9]?@Jannick看看这里-唯一的区别可能是禁用结果路径中的边重复(如果您愿意的话)。不管怎么说,这看起来像NP难问题,所以在实践中,你应该以启发式结束。只是很难理解重组是如何进行的。[1,2]、[2,3]、[3,4]由于相交而被分组。但是其他人呢?7在下一个中丢失,那么为什么要重新组合5、6、8和9?为什么解不是[1,2,3,4],[5,6],[8,9],[4,10]。一旦我明白了,找到一个算法就不成问题了。在你的例子中,每个起点只有一个可能的目的地。在您更一般的情况下,[[1,2][2,3][2,4]]会发生吗?如果是这样的话,这将如何影响预期的结果?看起来你只需要减少线的数量,而不是找到尽可能少的线。这是2D还是3D?除非键是共线的,否则可以用[[1,2,3]]替换[[1,2,3]],这似乎很奇怪。在任何情况下,听起来好像你想要连接的组件?如果该组件是树,会发生什么?例如:[[1,2]、[2,3]、[2,4]?为什么解决方案是[[1,2,3,4]、[5,6,8,9]、[4,10]、而不是[[1,2,3,4,10]、[5,6,8,9]?@Jannick看看这里-唯一的区别可能是禁用结果路径中的边重复(如果您愿意的话)。无论如何,它看起来像NP难问题,所以在实践中,你们应该以启发式结束。
[[1,2,3,4],[5,6,8,9],[4,10]]