【发布时间】:2014-03-03 02:07:12
【问题描述】:
假设给定一个集合 A = {1, 2, ..., m} 和一个集合 B = {1 , 2, ..., n},这样集合A中的每个元素都必须分配给B中的某个元素>。集合 A 中的每个元素 i 和集合 B 中的每个元素 j 的以下参数是已知的:
- Sij 是将元素 i 分配给大于或等于零的元素 j 的成本;
- tij是元素i对元素j大于等于0的最小偏好;
- Tij 是元素 i 对元素 j 大于或等于零的最大偏好。
对于每个固定的i,tij的所有值,Tij(对于所有 j 的)是不同的。 m 和 n 为大于 0 的整数,其他变量为非负实数。
集合 A 中的元素根据 tij 的偏好分配给 B 中的元素(或Tij)。例如,如果 tij tik (偏好 Tij 或 Tik 可以在任何情况下使用,请进一步阅读),然后元素 i 将被分配给 j 而不是 k。在 mn 个偏好中,恰好有 r 个必须使用 Tij 的值作为偏好值,剩下的 mn - r 必须使用 tij 的值(低于 Tij)。
如果将元素 i 分配给元素 j,则将成本 Sij 添加到分配给元素 j 的总成本,即 Cj = Cj + Sij。令Max为所有成本Cj中的最大值,Min为所有成本Cj。目标是选择分配元素 i 到元素 j 的哪些偏好将采用 Tij 的值,以及哪些偏好将采用 tij 的值,这样的值:
- Max 是最小的;
- Max - Min 是最小的。
我认为有一些动态规划算法,但我不确定。有人知道如何通过 DP 方法或其他方法解决这个问题吗?然而,它可能不是多项式,但我认为它是。
示例。令m = 3,n = 2,即A = {1, 2, 3} 和 B = {1, 2, 3}。令r = 2,矩阵S、t和T为
|5 9| |1 3| |10 7|
S = |7 1|, t = |4 2|, T = | 5 4|.
|8 4| |3 4| | 9 12|
Solution 等于 5 在最小化 Max 值的情况下。可以构造类似的示例来最小化 Max - Min。
【问题讨论】:
-
我在问题陈述中闻到了一些垃圾箱包装的味道。因此,不确定算法是否可以是多项式
-
您可能无法同时优化 Max 和 Max - Min。是那些不同的目标还是您仅将 Max - Min 用作具有相同 Max 的解决方案的决胜局?
-
对不起,我可能不太清楚。这是两个不同的问题。第一个是最小化 Max,第二个是最小化 Max - Min。
-
所以你说你做
m*n的任务。这意味着 A 的每个元素都分配给 B 中的 all 元素。我误解了什么?我认为一个例子会对这个问题有很大帮助。 -
另外,所有变量的范围限制是什么(
n、m、r、S_ij、t_ij、T_ij)?它们都是整数吗?大于零?它们最大可以有多大?您需要更具体地说明这些要点。
标签: algorithm dynamic-programming