我确实有一个图(〜250个节点)。要连接到节点,我必须用点 - >加权图购买它。 有总是被采取的节点(“被要求的节点”),并且那些我能开始连接到其他节点。此外,我确实拥有有限的积分。所有节点可以连接在一起。图中有多个“必须有”节点的最短路径
有什么方法可以得到一个图,所有必须有节点连接在一起,用最少的点?如果可能的话给定最大点数。
2nd)有没有办法不需要一个完全连接的Graph?例如:一个“必须拥有节点”的节点直接连接到一个“被声明的节点”,因此获得它的最便宜的方法就是获得必须拥有的节点,而不是将其与剩余的图形连接起来。
编辑(关于前三个问题):我必须购买节点本身,而不是连接。所以,我不计算行程距离,而是计算节点成本。例如:如果我有一个从A到B的图形,B到C和A到C和B是一个“必须有节点”,我可以从A到B然后从B到A和从A到C(如果它比B到C短),因为从B到A没有额外的成本,因为B已经被要求。
我想出了这个算法: 我做了一个表,所有的“必须有节点”,并从其中一个开始。我使用呼吸优先搜索或深度优先搜索(什么会更好?),并让它分支,只要它没有找到“必须有节点”,并且将在必要时更新最短距离。当它找到“必须有节点”时,它结束该分支并存储它的路径。距离将被登记在表中。它会运行,只要它发现没有“必须有节点”。完成后,我将在表格中继续前进,并采取下一个“必须有节点”,执行相同的操作并构建表格。
当我完成所有的节点时,我将在表格上运行最小生成树算法,并且应该得到我的最优图。
任何人都会发现此问题?
你发现并尝试了哪些算法? –
我不太了解这个问题的描述......但我猜它与Minimun Spanning Trees有关,因为它存在快速算法。 – WhatsUp
这听起来并不像你试图找到*路径*。 – user2357112