Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何在这些约束条件下优化任务分配给代理?_Algorithm_Optimization_Np - Fatal编程技术网

Algorithm 如何在这些约束条件下优化任务分配给代理?

Algorithm 如何在这些约束条件下优化任务分配给代理?,algorithm,optimization,np,Algorithm,Optimization,Np,我有一个作业问题作为我硕士论文的一部分,我正在寻找解决这个问题的总体方向 因此,有一个代理列表和一个任务列表,任务的数量大于代理的数量 代理提交他们可以/想要执行的任务的优先顺序列表。列表的长度固定为比任务总数小得多的数字 必须为每个代理分配一项任务。任务一旦分配就不能分配给其他代理 目标是找到分配任务,使分配任务的平均优先级/偏好最低。此外,如果它是一个完整的解决方案,即每个代理都分配了一个任务,那么它就更好了 我已经研究了广义指派问题和匈牙利算法,但它们不适用于任务有成本的特定情况,也不适用

我有一个作业问题作为我硕士论文的一部分,我正在寻找解决这个问题的总体方向

因此,有一个代理列表和一个任务列表,任务的数量大于代理的数量

代理提交他们可以/想要执行的任务的优先顺序列表。列表的长度固定为比任务总数小得多的数字

必须为每个代理分配一项任务。任务一旦分配就不能分配给其他代理

目标是找到分配任务,使分配任务的平均优先级/偏好最低。此外,如果它是一个完整的解决方案,即每个代理都分配了一个任务,那么它就更好了

我已经研究了广义指派问题和匈牙利算法,但它们不适用于任务有成本的特定情况,也不适用于代理无法完成某些任务的可能性


请帮忙。谢谢。

如果您想要一种通用方法,可以将问题建模为混合整数规划,引入二进制变量将任务分配给代理,并将优先级成本和非常高的非分配成本放入目标函数中。混合整数程序可以使用各种解算器程序求解,包括CPLEX或Gurobi,这些程序对于学术目的是免费的

您是否尝试过创建空的“不做任何事”任务,以便答案可以包含此代理“不做任何事”,并创建空的“外包工人”,以便答案可以包含此处不做此任务的代理?如果我们将优先级建模为“最优先的成本为1,然后为2,然后3,对于不在优先级列表中的任务,成本是无穷大的。然后可以添加虚拟代理,使代理和任务的数量相等,并使用匈牙利算法求解。