资源分配任务

时间:2016-09-03 16:10:08

标签: algorithm linear-programming

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

我的任务,由以下描述:

  1. 允许的天数(可以完成时)
  2. 必要的技能
  3. 必要的工具
  4. 任务的持续时间(以小时为单位)
  5. 任务的利润价格
  6. 如果在最后一个允许的日子没有完成,则每周没收。
  7. 例如:用电表(技能)在1到15月8日(允许的天数)之间使用万用表(仪器)固定铁2小时(任务的持续时间)。价格是10美元(利润),但如果在15月8日之后完成,将在8月15日之后每天支付1美元的罚款。

    此外,我还有工作人员的资源,其描述如下:

    1. 技能
    2. 仪器
    3. 当天的表现(可能的工作时数)
    4. 例如:一位数米的电工,可以在8月2日工作3小时。

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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日期间修理熨斗,这意味着电工是否将花费该小时来固定熨斗。那么你只需要两个这样的二进制变量为1,其余为零(实际上是2小时)。

PS:我完全有信心这可以表达为MIP问题(我在这方面有9年以上的exp),根据你的问题,你要求就此提出建议。