是否有一种算法可以匹配两组共享共同类别/标准的数据?

问题描述

我目前正在进行的项目涉及将具有明确专业领域的评委与类别与其专业领域相匹配的项目进行匹配。匹配两者时有两个限制条件 - 一个是为了确保每个项目在活动期间被评判​​的次数最少,而评判员必须评判的项目数量最多。

给定:

  1. 具有定义类别的项目列表
  2. 具有与项目类别相匹配的专业领域的评委名单

目标:

  1. 将评委与具有共同类别的项目进行匹配
  2. 确保每个项目至少被评判 min_judges_per_project
  3. 确保分配给每位评委的项目不超过 max_project_per_judge
  4. 制定一个评审时间表,以便每个项目在任何给定时间都有最少数量的评审。 (目前的评审时间大约是 10 分钟,然后轮流。类似速配的想法)

我目前的解决方案:

  1. 生成一个 Project 对象数组,其中 Project 包含一个名为 project_categories属性
  2. 生成一个 Judges 对象数组,其中 Judges 包含一个名为 judge_categories属性
  3. 我创建了一个二部图,它匹配所有共享公共类别的 ProjectJudge
  4. 我运行最大流量算法来最大化两者之间的联系,以满足每个项目的最小评审和分配给每个评审的最大项目这两个标准。
  5. 运行回溯递归函数,用判断任务填充时间表“网格”

我的问题:

到目前为止,这是有效的,但是,我现在陷入了需要为评委分配特定“评审顺序”的阶段,因此他们不会在给定的“时间段”内分配给两个项目。此外,我们还希望在任何给定时间尽量减少项目表上的评委人数 - 以最大限度地增加参与者谈论他们项目的机会。我一直在使用回溯、递归算法从最大流量算法的输出生成一个可能的“时间表”,但截至目前,有超过 50 种可能性可以“查看”。

对于这个我不知道的问题,有没有更好的算法/解决方案?我不太确定这是什么类型的问题,因为我已经查找了解决分配问题、工作车间问题、轮班分配、路由等的算法,但还没有找到可以解决这个问题的算法。提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)