电网最小传输的最佳图算法

Best graph algorithm for least transfer in an electric grid

本文关键字:最佳 算法 传输      更新时间:2023-10-16

给定一系列城市,每个城市产生一定数量的电力,并需要一定数量的电力。每个城市最多有8个相邻的城市,我尽量减少换乘的次数。如果A->B 10个能量,总转移成本为10。如果A->B->C 10能量(A到C通过B),总转移成本为20。我考虑过在每个需要能量的点上使用Djikstra,并在找到足够的能量时结束对该点的搜索,但想到了几个陷阱。我想知道我还能考虑什么可能有效的方法?我还考虑过研究Floyd-Warshall算法以及Hagerup(在维基百科上读了一些关于它们的内容,它们似乎是可行的)

谢谢

你的问题很容易被简化为众所周知的最小成本流问题:

最小成本流问题(MCFP)是找到最便宜的可能通过流量网络发送一定流量的方式。

这种缩减可以通过以下方式完成。在你的图中添加一个虚拟的"源"answers"汇"顶点,从源到每个原始顶点添加一条有向边,其容量等于该顶点的生产率,从每个原始顶点添加一条有向边到该顶点的容量等于消耗率的汇。根据需要在原始边缘上设置容量和成本,并在生成的网络上解决最大流量最小成本问题。

我也怀疑Dijkstra算法或任何最短路径算法将有任何用途,因为它们只关注来自特定城市的一个单位电力的路径,并且没有考虑到不同城市产生的电力的"干扰"效应。例如,如果你有两个城市(A和B)生产1单位能源,靠近A和B的另一个城市(C)消耗1单位能源,远离A和B的另一个城市(D)消耗1单位能源,那么你就必须将能源从A或B输送到D,但没有最短路径算法可以为你提供这一点。

当你有足够的能量时就结束搜索并不能保证找到最短的路径,但是让Dijkstra在每个耗电点上完全运行,这可能仍然是合理的,这取决于网络的大小。

Lookup A*算法,它使用启发式算法改进了dijkstra,这可能会消除一些缺陷。我实在想不出其他的算法了

实际上我认为A*应该可以。