如何解决通过添加中间节点来减少有向图的边总数+顶点总数
假设存在一些未加权的有向图(循环或非循环)
G = (V,E)
另外假设一个成本函数:
C(V',E') = V' + E'
鉴于仅可以添加中间顶点以保留原始图的路径,那么如何导出具有最小成本函数的图?在我看来,添加中间顶点将类似于添加依赖项注入。
例如,假设下面ABCD -> PQRS,PQRS -> WXYZ,E -> S,P -> V
处的黄色图。总成本为顶点数(14)+边数(34)= 48
可以将其简化为上面的蓝色图,其中ABCD -> F,F -> PQRS,PQRS -> G,G -> WXYZ,P -> V
的总成本为顶点数(14 + 2)+边数(18)=34。这里,F
和G
代表中间顶点。
我不确定是否有这样一种算法可以果断地将成本降到最低。
我目前的解决方案是找到每个顶点相对于每个其他顶点的共享边数。如果共享边的数量大于2,则创建一个中间顶点。我认为这不是最佳方案,也不是实际解决方案。
我考虑过的另一种解决方案是(假定它是非循环的)执行拓扑排序,并在每层之间引入中间顶点。与此类问题有关的信息将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。