计算从集合节点到所有其他节点的最短路径,其中一些节点被禁止从路径

时间:2017-03-31 12:05:44

标签: python graph shortest-path chemistry cheminformatics

我想在Python中实现以下内容但不知道从哪里开始。是否有这种类型的最短路径问题的好模块?

我正在尝试将特定原子(节点)中的最短路径定义为3D化学结构(图形)的给定xyz坐标集合中的所有其他原子(节点)。原子(节点)之间的键是允许从节点到节点的行程的边缘。

我试图根据选定中心节点向外的连接从分子(图表)中过滤掉某些原子(节点)。

**对于所考虑的路径,我想禁止某些原子(节点)交叉。如果从A到B的最短路径是通过禁止节点,则不允许这个答案。从A到B的最短路径不得包含禁用节点**

如果从所选中心原子(A)到另一个其他节点(B)的最短路径包含禁用节点,并且通过可用边(键)没有其他路径从A到B可用,那么节点B应该从要保存的最终xyz坐标(节点)集中删除。

对于结构(图形)中的所有其他原子(节点),应对A到C,A到D,A到E等重复这一过程。

提前感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:0)

确保导致禁止节点的所有边缘都具有无限成本,并且您使用的任何图形遍历算法都将自动处理它。

或者,只需删除图形遍历算法所考虑的禁用节点。

答案 1 :(得分:0)

要回答问题的第一部分,我建议networkx.这是一个通用的图表库,很容易进入(我在博士中使用过它)。