【发布时间】:2011-09-14 02:37:08
【问题描述】:
这是一个现实世界的组合优化问题。
我们获得了特定产品的大量价值主张。价值主张有不同的类型,但每种类型都是独立的,并为整个产品增加了同等的利益。在构建产品时,我们可以包含每种类型的任何非负整数“单元”。然而,在添加了某种类型的第一个单元之后,该类型的额外单元的边际收益不断减少。事实上,新单元的边际收益是添加新单元后该类型单元数量的倒数。我们的产品必须至少有一个某种类型的单元,并且由于这个要求,我们必须对整体价值进行一个小的修正。
设T[] 是一个数组,表示产品的某个生产运行中每种类型的数量。那么整体值V由(伪代码)给出:
V = 1
For Each t in T
V = V * (t + 1)
Next t
V = V - 1 // correction
在成本方面,相同类型的单位具有相同的成本。但是不同类型的单位都有独特的、非理性的成本。类型的数量很大,但我们得到了一个类型成本数组C[],它从最小到最大排序。让我们进一步假设类型数量数组T[] 也按成本从小到大排序。那么总成本U就是每个单位成本的总和:
U = 0
For i = 0, i < NumOfValueTypes
U = U + T[i] * C[i]
Next i
到目前为止一切顺利。那么问题来了:给定产品P 的价值V 和成本U,找到产品Q 的成本U' 和价值V',具有最小的U' 使得@987654335 @, V'/U' > V/U.
【问题讨论】:
-
我不明白这个问题。你的意思是:给定 P 的值为 V 和成本 U。问题是找到具有最小成本 U' 的产品 Q,使得 U'>U 和V'/U' > V/U ?
-
你从不使用这句话:“但是,在添加某种类型的第一个单元后,该类型的额外单元的边际收益不断减少。实际上,一个新单元的边际收益是添加新单位后,该类型的单位数量的倒数。” T[] 真的代表每种类型的好处吗?
-
你能发布一个完整的例子并完成它吗?我不确定你在问什么。
-
@Ricky,是的,这完全正确,我已经编辑了帖子以澄清它。
-
@Ricky,关于您的第二条评论,
T[]与通过在第一个代码块中产生V的公式有关的好处。您可以将T[]视为一种特征集,但随着相同类型的特征堆积起来,它们不会产生相同的好处。是的,T[]是一个非负整数数组。
标签: algorithm optimization combinations