【问题标题】:Distribution algorithm according to weighted parameters (with a min-max constraint)根据加权参数的分布算法(具有最小-最大约束)
【发布时间】:2013-10-10 16:33:31
【问题描述】:

我正在尝试解决以下与分发有关的问题-

我有一个按重要性排序的项目列表 L (I1, I2,....In),I1 是最重要的。每个项目都有多个标签分配给它,每个项目上这些标签的组合可能不同,因此 I1 可能有标签 T1 和 T2,I2 可以有标签 t2、t3 和 t4,而 I3 可以有标签 T1,依此类推.

现在,我必须从这个列表 L 中进行批量分配,项目的分布(根据标签)受以下约束-

  1. 每个批次都有一个固定的大小 B
  2. 每个标签在批次分布中都有一系列项目,范围从最小值到最大值。所以,B 应该包含最少 x1 个标签为 t1 的项目,x2 个标签为 t2 的项目,最多 y1 个标签为 t1 的项目,y2 个项目为 t2 等等。
  3. 我们从 L 的顶部开始挑选项目并继续填充批次,直到达到满足约束的最终分布。例如,如果 L 有 300 个项目,并且我们必须将批次大小设为 50,我们可以一直到列表中的任意数量的项目,然后选择这些项目以进行所需的分布。
  4. 请记住,如果从列表中选择一个项目,分配给它的所有标签的计数都会增加 1。

我正在考虑一种解决方案,首先,我列出与每个特定标签对应的项目列表。我从其列表中为特定标签选择最少的所需项目。因此,我会从带有标签 t1 的项目列表中选择带有标签 t1 的 x1 个项目,而不管这些项目是否包含任何其他标签。这样,我将确保满足所有标签的“最低”标准。但是对于最大部分,每个标签肯定会过火。如何递归地用 L 中的剩余项目替换批次中的项目以进行最终所需的分布?

任何其他解决方案都会很棒。或者任何可以让我找到解决这个问题的正确方向的现有算法。

我知道这个问题有点冗长,而且可能有点令人困惑,但我已尽力解释它,当然,我想这个问题可能很有趣。

【问题讨论】:

    标签: algorithm distribution


    【解决方案1】:

    这是一个 NP 难题。例如,您可以像这样减少图形着色。每个顶点对应于列表 L 中的一个元素,每个批次对应一种颜色,每条边对应一个标签,该标签仅出现在两个入射顶点上。如果您设置约束,使每个批次最多只能有一个标签,这相当于为每个顶点分配一种颜色,使得没有两个相邻顶点具有相同的颜色。

    在这种情况下,你基本上有两种选择:

    1. 想出一个看似合理的启发式方法,该启发式方法已针对您认为将遇到的输入类型进行了调整。
    2. 将问题转化为整数规划问题并使用可用的求解器,例如 lpsolve http://lpsolve.sourceforge.net/5.5/

    【讨论】:

    • 谢谢@mrip ..我认为这种图形着色方法可能只是工作,但真的不知道如何提出一个看似合理的启发式方法。有点困惑。你能分享一个可以帮助我做到这一点的例子或类比吗?
    • 图形着色并不是一种真正的方法,但更多地表明这对于一般输入来说可能是一个非常难以解决的问题。我不建议尝试将其变成图形着色问题。要提出一个好的启发式方法,你必须看看你可以对你的输入做出哪些其他类型的假设。
    猜你喜欢
    • 2015-07-18
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多