【问题标题】:Calculating shortest path from set node to all other nodes, with some nodes forbidden from path计算从集合节点到所有其他节点的最短路径,其中一些节点被禁止进入路径
【发布时间】:2017-03-31 12:05:44
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: python graph shortest-path chemistry cheminformatics


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。你会推荐什么文件格式和 Python 模块?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-11-14
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多