【问题标题】:Resource allocation task资源分配任务
【发布时间】:2016-09-04 04:00:34
【问题描述】:

我正在研究解决此类问题的可能性:

我有任务,描述如下:

  1. 允许的天数(何时可以完成)
  2. 所需的技能
  3. 所需的工具
  4. 任务的持续时间(以小时为单位)
  5. 任务的利润价格
  6. 如果没有在最后允许的日期完成,则每周没收。

例如:在 8 月 1 日至 15 日(允许的天数)之间由电工(技能)用万用表(仪器)修理熨斗 2 小时(任务持续时间)。价格为 10 美元(利润),但如果在 8 月 15 日之后完成,则将在 8 月 15 日之后每天支付 1 美元的没收。

我还有 Worker 的资源,描述如下:

  1. 技能
  2. 仪器
  3. 一天的表现(可能的工作小时数)

例如:一位拥有万用表的电工,可以在 8 月 2 日工作 3 小时。

需要将Tasks与Worker's进行匹配。工人的资源必须具备任务所需的所有技能和工具。我想最大化收益(利润损失)。

不幸的是,这个问题似乎无法导致线性规划问题。 (我错了吗?)那么你会建议我研究什么算法来解决这个问题?

【问题讨论】:

  • 我猜你想最大化利润。如果是这样,我认为您应该将此添加到您的问题中。
  • 是的)谢谢。

标签: algorithm linear-programming


【解决方案1】:

抱歉,如果您确实想要最大化利润并且想要与众不同,那么您可以将问题表述为混合整数问题(线性规划的一个子集,其中一些变量是整数,可能是二进制数)。在您的示例To fix an iron by electrician (skill) with multi-meter(instrument) between 1 and 15 august (allowed days) for 2 hours (task's duration). The price is $10 (profit), but if it is done after 15 august $1 forfeit will be payed for every day after 15 august. 中,您可以为 8 月 1 日至 15 日之间分配用于修理熨斗的电工时间表的每个小时创建二进制变量,这意味着电工是否会花费该小时来修理熨斗。那么你只需要两个这样的二进制变量为一,其余为零(实际上是两小时)。

PS:我 100% 有信心这可以表述为 MIP 问题(我在该领域有 9 年以上的经验),根据您提出的问题,您正在就此提出建议。

【讨论】:

  • 我编辑了我的答案。我不知道它可以在多项式时间内解决。
【解决方案2】:

我建议你使用Metaheuristic 算法来解决这个优化问题。例如,您可以使用genetic algorithm,因为它易于理解和实现,并且可以解决此类问题。

【讨论】:

  • 我经常看到这个论点。许多有用的 MIP 模型实际上是使用非多项式方法求解的。我相信你不想暗示所有这些努力都是毫无意义的,
  • 我不是在暗示什么,我不知道它可以在多项式时间内解决。但是我很确定用元启发式方法很容易解决这类问题,因为它们的实现很简单。我对MIP一无所知。我编辑了我的答案。
猜你喜欢
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
  • 2017-04-15
  • 2018-08-28
相关资源
最近更新 更多