【问题标题】:Graph theory vertex weights图论顶点权重
【发布时间】:2015-04-05 04:02:17
【问题描述】:

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

【问题讨论】:

  • 我认为,如果你给出一个具体的场景,那会很好。 :)
  • @MukitChowdhury 如果推销员在每个城市以不同的数量(顶点权重)销售他的产品,并且使用每条道路需要一定的金钱,那么他可以赚取的最大利润是多少
  • 节点的权重实际上取决于上下文和要解决的问题。
  • 似乎是一个动态规划问题。那是树还是图?您必须访问所有边缘吗?可以给我问题链接吗?

标签: graph-theory


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    如果:

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

    然后:

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

    但是:

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

    这些因素以及更多因素会影响您要应用的方法,并且在不了解问题的完整说明的情况下很难给出更好的答案。

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 2012-05-14
      • 2013-12-18
      • 1970-01-01
      • 2015-02-15
      • 2012-04-20
      • 1970-01-01
      • 2016-04-08
      • 2015-01-23
      相关资源
      最近更新 更多