工作坊分组生成器
- 部分出席为每位参与者设置参加哪些场次,而不是默认每个人每轮都在场。
- 按小组和场次设置容量为每个小组设置容量,并在房间或主持人安排变化时按场次覆盖容量。
- 按场次设置规则只在需要的场次应用同组、分开、固定分配、重复限制和属性平衡规则。
- 加权软约束添加必要时可以被违反的偏好,并调整它们相对于其他目标的权重。
- 配对见面目标设置特定两人应见面的次数目标,包括精确、至少或至多。
- 高级约束调优进一步调整重复限制、属性平衡模式、惩罚权重和其他约束细节。
- 求解器设置调整运行限制、确定性种子、求解器类型以及其他优化设置。
- 结果分析更详细地查看分数拆解、约束满足情况、惩罚和保存的结果。
工作坊分组的使用场景
适合课堂、工作坊、培训、活动和团队协作,快速创建可控的小组安排。
快速分组
粘贴任意名单,即可不用手动排序生成清晰的小组。
课堂与学习活动
为讨论、练习、实验、互评或项目快速创建小组。
工作坊与分组讨论
把参与者分配到练习、桌面讨论、活动或多轮工作坊小组中。
均衡分组
按技能、角色、部门、经验或等级等属性减少分组偏差。
多轮轮换
创建多个场次并减少重复搭配,让参与者接触更多不同的人。
规则与约束
可以设置必须同组、不能同组或固定到特定小组。
常见问题
使用 GroupMixer
将姓名粘贴到文本框中(每行一个),设置小组数量或每组人数,然后点击“Generate Groups”。你的小组会立即显示。
隐私、访问和限制
是的。GroupMixer 完全免费使用。如果你觉得它有用并想支持开发,可以通过 GitHub Sponsors 捐助。 在 GitHub Sponsors 上捐助。
没有。GroupMixer 没有使用限制。
不需要。无需账号或注册。粘贴姓名,调整设置,然后立即生成小组。
在此设备上的浏览器中处理。工作过程中,你的参与者列表以及你输入的所有其他数据都会留在你的设备上。
可以。页面加载后,你可以继续在浏览器中离线使用 GroupMixer。
控制项和高级设置
可以。打开高级选项即可添加 Keep Together(保持在一起)和 Keep Apart(保持分开)规则、多个会话以及属性平衡。
可以。为参与者添加角色、技能、性别或部门等属性,然后选择要在各组之间平衡的属性。
可以。使用高级选项中的 Pinned people(固定人员),可将特定人员在所有会话中固定到特定小组。这适用于负责人、演讲者,或任何必须留在已知小组中的人。
可以。设置会话数量并启用“Avoid repeat pairings”,即可减少各轮次之间的重复配对。
可以。使用场景编辑器处理部分出席。生成日程前,你可以设置每个会话有哪些参与者参加。
可以。使用场景编辑器设置自定义小组容量,包括为不同小组或不同会话设置不同容量。
可以。使用场景编辑器中的 Group Visits(小组访问),可为选定人员和选定小组在选定会话中设置精确、最小或最大访问次数。这适用于站点轮换、任务接触安排和访问次数上限。
当需要使用本页面未提供的控制项时,请使用场景编辑器,例如部分出席、按小组和会话自定义容量、会话特定规则、加权偏好、Pair Encounters(配对相遇)、Group Visits(小组访问)、高级调优、求解器设置、历史结果和结果分析。
自动算法
GroupMixer 使用混合优化流水线。它将场景编译为紧凑的索引表示,构建高质量且可行的初始日程,然后运行局部搜索优化器,其中包含保持分数一致的移动预览、record-to-record 接受、适应性的移动族选择、多样化,以及按运行时间缩放的停止条件。 查看 Auto 求解器架构图。
求解器会最小化加权分数。主要项包括重复相遇惩罚、属性平衡惩罚、加权软约束惩罚,以及对唯一接触的奖励。分数越低越好:重复和约束违反会提高分数,而新的唯一配对会降低分数。
GroupMixer 并不是从纯随机分组开始。它首先尝试一个有界的约束场景/oracle 引导构造器。该构造器会构建满足硬约束的脚手架,在有助于减少重复时使用纯 Social Golfer 结构,将该结构投影回真实场景,并在搜索开始前验证结果。
紧凑搜索引擎会不断对当前日程提出局部更改。每个候选更改都会在优化器决定是否保留之前,根据评分模型进行预览,因此搜索可以在保持硬约束有效的同时改进日程。
搜索和减少重复
是的。主要搜索是迭代局部搜索风格的优化器,具有 record-to-record 或 threshold accepting 行为:会接受改进移动,也可能在早期接受有界的非改进移动,使搜索能够离开局部最优。GroupMixer 还在专门的重复最小化路径中使用自适应邻域选择、多样化突发,以及受 tabu 启发的机制。它并不是单一的教科书式元启发式算法,而是围绕小组分配评分模型组合了多种搜索思路。
减少重复在局部搜索之前就开始了。GroupMixer 会尝试构建强的 social-golfer-style 接触模式,并在与场景匹配时使用精确或近似精确的零重复结构。之后,紧凑搜索会跟踪配对接触次数,奖励首次接触,惩罚过多重复,并在不破坏要求的情况下改进日程。
约束和最优性
出席、容量、Fixed Placements(固定安排)、Keep Together、Keep Apart 等要求会在日程构建过程中强制执行,并在搜索前验证。Repeat Limit(重复限制)、Balance Attributes(属性平衡)、Attribute Totals(属性总量)、Prefer Together(偏好在一起)、Prefer Apart(偏好分开)、Pair Encounters 和 Group Visits 等偏好会表示为加权惩罚或目标,因此在场景约束过多时可以进行权衡。
要求是 GroupMixer 必须满足才能返回日程的规则,包括出席、小组容量、Fixed Placements、Keep Together 和 Keep Apart。偏好是计分目标:违反它们是允许的,但会提高分数。这些包括 Repeat Limit、Balance Attributes、Attribute Totals、Prefer Together、Prefer Apart、Pair Encounters、Group Visits 以及唯一接触目标。
如果 GroupMixer 找到分数为 0 的结果,这表示对于当前评分模型已达到最优:没有剩余可改进的计分违反或重复惩罚。不过,在许多有约束的场景中,真正的最优值可能大于 0,因为要求相互冲突,或设计在数学上不可能。GroupMixer 并不是为证明正分数全局最优而设计的;对于许多复杂场景,这种证明在实践中完全不可行。
不会。要求被视为可行性规则,而不是建议。GroupMixer 首先尝试以质量为导向的构造器;如果这些构造器无法构建日程,它可以退回到基于 SAT 的可行性构造器。如果 SAT 求解器证明要求不可满足,GroupMixer 会失败,而不是放宽要求。如果找到满足要求的日程,GroupMixer 会将其作为起点,并继续优化偏好和其他质量目标。
基准和更好结果
大多数情况下,可能没有。OR-Tools 等通用优化工具可以建模此问题的一部分,但在大多数实际场景中,仅使用通用求解器要得到比 GroupMixer 更好的日程极其困难。GroupMixer 将搜索与针对问题的构造启发式结合起来,而通用约束搜索很难低成本地重新发现这些结构:循环赛式配对日程、Kirkman 和近 Kirkman 三元系、有限域仿射平面和横断设计构造、MOLS 和 MOLR 构造、准差矩阵 RTD、可分解 BIBD、自有 social-golfer 起始库、公开日程库以及递归提升。要超过 GroupMixer,通常需要另一种组合算法,而不仅仅是通用模型。
请通过功能请求页面报告。请包含场景形状、GroupMixer 结果、更好的日程,以及你如何评分。其他方法胜过 GroupMixer 的案例尤其有用,因为它们可以成为改进求解器的回归测试或基准案例。 发送功能请求。
除非提供确定性种子,否则搜索会使用随机化探索。因此,不同运行可能找到分数相同或相近但日程不同的高质量结果。在场景编辑器中,如果可复现性很重要,高级用户可以设置种子。