【问题标题】:Need a algorithm to find the minimum cost in a subset of elements需要一种算法来找到元素子集中的最小成本
【发布时间】:2013-06-26 05:36:01
【问题描述】:

我正在尝试找到一种最佳算法,该算法可以在覆盖所有元素的同时找到元素总和最低的最大子集。

eg :- 假设 A B C 是零售商,W X Y Z 是产品,目标是尽量减少访问量并降低价格。

    A    B    C
W   4    9    2  
X   1    3    4 
Y   9    3    9
Z   7    1    1 

So it appears my top two choices are 
a) B:{XYZ} - 7   C:{W} - 2
b) C:{WXZ} - 7   B:{Y} - 3 

So a) is picked because since it has a lower cost, i.e 9. 

这个问题似乎与顶点覆盖和其他线性规划算法相似,但我无法找出正确的问题。

更新:

看来我需要添加一个额外的变量。介绍 t。如果访问最少零售商的成本和下一个最少的零售商的成本 > t,则选择下一个前者。

Continuing with the example.

say t = 5,

The largest subset containing all elements would be B:{WXYZ} with a cost of 16. 
The next largest subset(s) is B:{XYZ} - 7   C:{W} - 2 with a cost of 9. 

t = 16 - 9 > 5. So we pick B:{XYZ} - 7   C:{W} - 2 

but if we did A:{X}, B:{Y}, C:{WZ} - 5, t = 9 - 5 < 5. 

So B:{XYZ} - 7   C:{W} - 2 is picked

真的,我只是对是否已经有适合这种模式的算法感兴趣。我不能成为第一个需要这种优化的人。

【问题讨论】:

  • 嗯,考虑过使用树和深度优先搜索?自从我做这种事情以来已经有一段时间了,但似乎它可以工作。
  • 最小化价格和最小化访问之间的权衡是什么。您想以最低的价格找到满足此要求的最少访问次数吗?
  • 我不明白这个问题,这个例子让我很困惑。请解释为什么不能选择C:{WXYZ}(访问量较少)或A:{X}, B:{Y}, C:{WZ}(成本较低)而不是B:{XYZ}, C:{W}
  • 也许他想要帕累托边界? (一组解决方案使得在这两个标准中都不存在更好的解决方案。)但看起来不像。

标签: algorithm dynamic-programming linear-programming


【解决方案1】:

您的两个目标存在问题 - 1. 最大限度地降低产品的总成本以及 2. 最大限度地减少访问的商店数量。 (@btilly 的评论正确地展示了两种相互竞争的解决方案。)

在这些类型的整数规划问题中,多个目标相当普遍。 See MCDM。 要解决此问题,您需要有 两种 类型的成本(您目前只有一种。)

  1. 从零售商 r(您已指定)购买产品 p 的成本C_rp
  2. 拜访零售商的费用:C_r

直觉:如果 C_r 非常高,那么我们将从一家零售商处购买所有产品。如果 C_r 很小,那么我们会去多个零售商处,从最便宜的人那里购买。

您的问题可以建模为“Assignment Problem”的变体。此外,如果您需要更多参考资料,请阅读所谓的fixed-charge transportation problems (FCTP)。 (访问零售商一次需要支付固定费用。)

继续整数规划公式:

决策变量

  Binary
  X_rp = if product p is purchased from retailer r, 0 otherwise 
  Y_r = 1 if retailer r is visited, 0 otherwise 

目标函数

 Min C_rp X_rp + C_r Y_r

约束

(Sum over r) X_rp = 1 for all p (Every product must be bought from some retailer)

接下来,我们需要确保 Y_r 为 1,即使对于该零售商而言,即使 X_rp 之一为 1。通常情况下,我们会使用大 M 方法,但在这个问题上更容易。

X_rp <= Y_r  for all p, for all r. 

如果任何 X 变量变为 1,则强制 Y_r 变为 1。模型将支付 C_r 的价格。

要求解,您可以使用任何 LP 求解器。好消息是该问题具有完整性属性,这意味着即使使用线性规划求解技术,整数解也自然会出现。

希望对您有所帮助。

【讨论】:

  • 非常感谢。很有帮助。
  • 分配问题确实有一个完全单模的 LP,但是具有新约束的 LP 不是 TU,考虑到集合覆盖的目标保持减少,这并不奇怪。
  • 我将此问题称为非公制设施位置。我同意您选择整数规划作为解决方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 2018-03-08
相关资源
最近更新 更多