algorithm - 根据申请人的技能将申请人组合与工作职位相匹配

标签 algorithm

<分区>

基本上我有一份职位数量固定的工作,比如 3 或 6 名申请人。

这项工作需要多种技能,比如技能 a、b、c、...z。

求职者具备工作所需的一些技能,但可能不是所有技能。

我正在努力做的是构建一个算法来匹配 3 或 6 名申请人,以便他们的综合技能能够满足工作在所有情况下所需的尽可能多的技能。乐观地实现所有这些,但在最坏的情况下尽可能多地实现它们

如果这与任何类型的算法相似或相同,请告诉我我不知道如何研究它。

我试过想一个解决方案,比如添加工作所需技能最多的人,然后尝试找到工作所需技能最多的人 1 不具备工作所需的技能。但是,如果解决方案是由具有“中等”技能的人组成的组合,那就不可行了。

我还想过将每个申请者的技能转换为二进制 1 或 0 以表示他们是否具备,但我正在努力将其转换为有用的东西。我认为这样做可能是正确的。

最佳答案

这不是特定的算法,但解决此类问题的一种方法是使用约束求解器/优化器。例如,在 Java 中,您可以使用 OptaPlanner .

这些基本上是声明式系统,因此您不必对算法进行解释,而是对问题所在进行编程。基本上描述了状态空间,以及什么是或不是解决方案的约束。然后你运行它,它会告诉你它是否找到了解决方案以及它找到了什么解决方案。

关于algorithm - 根据申请人的技能将申请人组合与工作职位相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24460417/

相关文章:

algorithm - 如何使用堆排序先打印奇数顺序,然后再打印偶数而不是较小的数字?

c - 具有全局值的回溯的递归差异?

algorithm - 如何测试一个pop命令是否合法?

javascript - 在函数中拒绝不返回错误

python - 在 Python 中使用多线程计算阶乘

algorithm - 如何用代码描述这个系列?

JavaScript 作用域(递归)——参数值在没有显式声明的情况下被返回值覆盖

string - 在多个查询中按字典顺序比较字符串

javascript - 为什么这个对象没有被正确解析?

java - Hashtable 与 HashMap 中的哈希函数?