基于年龄和国籍将人分为房间的算法

我正在为我工​​作的英语语言学校开设课程。 我没有得到报酬,这只是一种爱好,可以改善/自动化我的工作流程。

这是一所住宅学校,我正在考虑自动化的一个方面是我们为学生分配空间的方式,虽然我不想要一个完整的解决方案,但我希望有人能指引我朝着正确的方向发展。可能会采取这种方式或者通过建议算法来看待等等

基本上在学校里,我们有8个人从单身到宿舍的不同房间。 我们得到来自世界各地的许多不同的国籍,我们一直努力确保每个房间都有不同的国籍。 如果有多个国籍,我们会尽力平衡他们。 年龄也很重要,我们总是把同龄的学生放在一起,同时还要混合国籍,而我们不寻常的是让学生在他们之间分享两年以上。

我想更一般地说,我对如何根据两个参数对给定的一组学生进行排序,并附上一些规则来获得最佳结果感兴趣。

我希望我已经清楚地解释了我想要实现的目标......这听起来很简单,但我一直在想如何以简单的方式做到这一点,即按国籍排序,然后按年龄排序,但它只是不会削减它,我知道必须有更好的方法来处理这个问题。 当我在Excel表格上“手工”操作时,它确实感觉非常直观。

感谢任何提供帮助/建议的人。


这是一个有趣的问题,但它不容易回答。 不知何故,它与细分和包装或切割问题有关。 您可能也想要查找拓扑排序。 您可以查找Drools业务逻辑平台,让您定义这些规则。


首先你可能会发现这个有趣的东西:稳定的室友配合问题(维基百科)。 不幸的是,它不能回答你的问题。

尝试一种遗传算法。

使用遗传算法有三个主要标准:

  • 能够将解决方案表示为可变数组。 我们可以有一组整数,这样一个[i]就是第i个学生的房间。

  • 国家的变化应该产生可预见的结果。 在我们的情况下,这是事实。 突变阵列可预测房间之间的学生混乱。

  • 容易编写快速的健身功能。 写O(n)适应度函数不应该太难。

  • 这是一个有趣的问题。 我会尝试用这种方法编写一些代码,我们将看到会发生什么。


    如果你认为一个房间可以排斥它已经拥有的国籍的学生,并且吸引了已经拥有了相当年龄的学生。 年龄越接近平均年龄,其吸引力就越大,X国家的人越多,如果排斥X国家的男性就越多。

    然后,你会为每一个新学生添加,遍历每个房间,看看哪一个更吸引它。 我猜如果房间是空的,你可以设置所有的力量为0.另外,你会有两个常数乘以这两个“力”,所以你可以校准它取决于同等年龄对重要性有多重要是有不同的国籍。

    链接地址: http://www.djcxy.com/p/55835.html

    上一篇: Algorithm for sorting people into rooms based on age and nationality

    下一篇: UIDocumentInteractionController vs QLPreviewController on iOS