图论顶点权重

时间:2015-04-05 04:02:18

标签: graph-theory

是否有可以处理顶点权重的图论算法?根据我所熟悉的(BFS,Dijkstra,Floyd's),这些算法仅考虑边缘权重。类似的问题已经有回应描述将顶点权重转换为边权重。

2 个答案:

答案 0 :(得分:0)

Dijkstra的算法可以很容易地适应顶点权重。不是使用dist [u] = dist [u] + l(u,v)之类的东西更新距离,而是将其设置为dist [u] = dist [u] + l(u,v)+ cost [v]假设向量成本告诉你'遍历'顶点v的成本。在开始实际算法之前,你还必须初始化到这个成本向量的所有距离。另一种方法是改变图形,使得具有权重v的顶点v被使用权重w的边连接的顶点v1和v2替换。

答案 1 :(得分:0)

  

如果推销员在每个城市以不同的金额(顶点重量)销售他的产品,并且使用每条道路需要花费一定的金额,他可以赚取的最大利润是多少?

如果:

  • 推销员位于一个城市;
  • 可以在任何一个城市出售他的所有产品;和
  • 道路成本是固定值(与产品数量无关)

然后:

  • 建立连接城市的道路图,边缘权重作为道路成本(忽略销售价格)。
  • 运行Dijkstra的算法(在整个图表上而不是在单个目的地上),以找到到达每个城市的最低成本。
  • 最佳销售地点是所有城市Volume_of_product * Sales_price[city] - Minimum_Travel_Cost[city]最高的城市。

然而:

  • 推销员可能只能在每个城市出售他的产品的一小部分。
  • 移动产品的运输成本可能是:
    • 固定 - 即只是边缘的成本
    • 或者可能随着距离,当地税收,产品数量或许多其他因素而变化 - 即销售人员可能需要雇用不同数量的卡车来根据运输量来移动他的产品,这些可能需要支付道路通行费和燃料)。
  • 随着时间的推移,销售可能会分散,因此仓储成本可能是一个因素。

这些因素和更多因素会影响您想要应用的方法,如果不知道问题的完整规范,很难给出更好的答案。