0

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

我试图在给定的 xyz 坐标集合中为 3D 化学结构(图表)定义从特定原子(节点)到所有其他原子(节点)的最短路径。原子(节点)之间的键是允许从一个节点到另一个节点的移动的边。

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

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

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

对于结构(图)中的所有其他原子(节点),应该对 A 到 C、A 到 D、A 到 E 等重复此操作。

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

4

2 回答 2

0

确保所有会导致被禁止节点的边都具有无限的成本,并且无论您使用哪种图遍历算法都会自动处理它。

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

于 2017-03-31T12:08:34.330 回答
0

要回答您问题的第一部分,我推荐networkx。这是一个很容易进入的通用图形库(我在博士期间使用过)。

于 2017-06-26T13:15:11.207 回答