我正在研究解决此类问题的可能性:
我的任务,由以下描述:
例如:用电表(技能)在1到15月8日(允许的天数)之间使用万用表(仪器)固定铁2小时(任务的持续时间)。价格是10美元(利润),但如果在15月8日之后完成,将在8月15日之后每天支付1美元的罚款。
此外,我还有工作人员的资源,其描述如下:
例如:一位数米的电工,可以在8月2日工作3小时。
需要将Tasks与Worker的匹配。工人的资源必须具备任务所需的所有技能和工具。我想最大化收益(利润没收)。
不幸的是,这个问题似乎无法导致线性编程问题。 (我错了吗?)那么你会建议我用什么算法来研究解决这个问题?
答案 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小时)。