【发布时间】:2018-10-08 10:41:10
【问题描述】:
我有一个最多包含 7 个节点的有向图。每个节点都通过有向边连接到每个其他节点(当然不包括自身),并且边可以具有正权或负权。我的目标是找到从一个给定节点到另一个节点的路径,使得路径具有特定的长度。但是,有一个问题。我不仅可以使用循环,如果我到达结束节点,路径不必立即结束。这意味着我可以有一条通往结束节点的简单路径,然后从最终节点返回到自身的循环。同时,我必须最大化这条路径访问的唯一节点的数量,这样如果有多个所需长度的路径,我就会得到其中节点最多的路径。
除了循环的问题之外,我在用其他更简单的问题(例如最短路径或旅行推销员)重新表述时遇到了麻烦。我不知道如何开始解决这个问题。我的想法是找到所有简单路径和所有循环,并递归地组合每个路径,但这会带来循环内循环的问题。有没有更有效的方法来解决这个问题?
顺便说一句,我是用python写的。
编辑:我忘记提到的另一件事是节点之间的有向边对不一定具有相同的权重。所以 A -> B 的权重可能为 -1,但 B -> A 的权重可能为 9。
编辑 2: 根据要求,这是输入和输出:我得到了图形、起始节点和退出节点以及所需的长度,然后我返回所需长度的路径访问最多的节点。
【问题讨论】:
-
您是否需要找到一个节点到所有节点之间的路径长度,权重为负数和正数。如果是,您需要找到所有路径长度还是最长的路径长度或最短的路径长度?编辑您的问题,使其包含输入和所需的输出格式。
标签: python algorithm nodes graph-theory edges