通过添加中间节点来减少有向图的边总数+顶点总数

问题描述

假设存在一些未加权的有向图(循环或非循环)

G = (V,E)

另外假设一个成本函数

C(V',E') = V' + E'

鉴于仅可以添加中间顶点以保留原始图的路径,那么如何导出具有最小成本函数的图?在我看来,添加中间顶点将类似于添加依赖项注入。

例如,假设下面ABCD -> PQRS,PQRS -> WXYZ,E -> S,P -> V处的黄色图。总成本为顶点数(14)+边数(34)= 48

graph picture

可以将其简化为上面的蓝色图,其中ABCD -> F,F -> PQRS,PQRS -> G,G -> WXYZ,P -> V的总成本为顶点数(14 + 2)+边数(18)=34。这里,FG代表中间顶点。

我不确定是否有这样一种算法可以果断地将成本降到最低。

我目前的解决方案是找到每个顶点相对于每个其他顶点的共享边数。如果共享边的数量大于2,则创建一个中间顶点。我认为这不是最佳方案,也不是实际解决方案。

我考虑过的另一种解决方案是(假定它是非循环的)执行拓扑排序,并在每层之间引入中间顶点。与此类问题有关的信息将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)