1

我正在构建 Web 应用程序,我在其中尝试根据用户的偏好将用户分配到组。在我的应用程序中,我有 1 个存储用户信息的表,以及 1 个存储用户选择的表。

用户必须从 10 个选项中至少选择一个。

我正在尝试编写满足这些规则的算法:
1. 组中必须有 4 到 8 个用户
2. 每个用户最多只能在一个组中
3. 组中的每个用户,至少有一个首选共同选择
4. 最好每个用户都属于该组/尽可能多

但还没有运气。有人知道如何找到这样的解决方案吗?也将非常感谢能够找到好的解决方案(不是最好的)的算法。

4

2 回答 2

1

这个问题类似于Drools Planner的Miss Manners 2009示例,它是关于将客人(= 用户)分配到桌子(= 组)并确保彼此相邻的客人具有相同的偏好。

于 2011-03-08T14:03:26.693 回答
0

我不明白为什么你需要一个算法来执行这个。

用户必须从 10 个选项中至少选择一个。

这应该在 UI 上强制执行。您可能只想给用户一个有效选项的列表框,如果它是一个自由文本框,请在用户提交值后立即验证它。

我正在尝试编写满足这些规则的算法: 1. 一个组中必须有 4 到 8 个用户 2. 每个用户最多只能在一个组中 3. 组中的每个用户,至少有一个首选共同选择 4. 最好每个用户都属于该组/尽可能多

我会将每条规则写成一条 SQL 语句,并根据需求,在每次更新数据库后触发这些 SQL 语句。如果您有执行意识,请安排在存储过程中将所有这些规则作为夜间批处理作业运行。

于 2011-03-07T22:42:39.660 回答