Show HN:Better Seater——婚礼座位图优化器

为婚礼座位图做优化竟然是个出人意料地困难的问题,它既涉及 NP-hard 的约束求解,也牵涉到诸如矛盾、朋友群、无障碍、预算限制等复杂的社交现实。评论者讨论了 Better Seater 以及 OptaPlanner/Timefold 等库如何用启发式和遗传算法生成“足够好”的安排,同时强调人类仍需根据无法量化的偏好进行调整。大家也在讨论产品方向和可行性:是否应面向婚礼策划人和场地方,如何支持复杂约束(桌子大小、位置、优先级、标签),以及在变得过于复杂、失去实用性之前,简单的拖拽式界面究竟能走多远。

整体反响

  • 许多人觉得这个想法很有趣,也很有技术性,尤其是使用优化/约束求解。
  • 不少人表示自己曾尝试构建类似工具(用于婚礼、犬舍、教室、营地等),这也验证了这个问题确实真实且棘手。
  • 也有人说,最终还是回到了手动规划,因为存在复杂的“软”约束和人的判断。

优化与算法

  • 多条评论指出,在约束下让人保持在一起或分开这一问题是 NP-hard。
  • 共识是:不必追求精确最优;“足够好”的启发式解就可以。
  • 该工具底层使用 OptaPlanner;有人建议使用 Timefold(一个分支)作为更快的继任者。
  • 还提到的其他求解器包括:MILP 求解器、SAT 编码、遗传算法、Google OR-Tools;性能和易用性各不相同。

使用场景与约束

  • 典型场景包括:100–600 位宾客、可变桌子大小、必须坐在一起的情侣/群组、必须分开的“仇家”、语言聚类、靠近舞台、洗手间、吧台或舞池。
  • 人们希望能够编码优先级:谁应该靠近新人、兴趣如何混合、避免社交冲突、鼓励建立新联系,但又不过度优化。
  • 有些人只想要桌位分配,而不是具体到每个座位。

UX 和功能反馈

  • 需求包括:
    • 更好的上手引导和文档。
    • 灵活的桌数/桌型和容差设置。
    • 锁定手动放置并围绕其进行优化。
    • 用于兴趣、饮食、语言等的标签/属性。
    • 处理情侣/群组和多群组成员关系。
    • 版本比较、重复检测、从电子表格导入。
    • 可选随机化以及多个不同的“好”解。
  • 有些人认为可打印的座位图和适合手机的查座工具(例如二维码查询)很有价值。

商业模式与目标用户

  • 有人强烈建议将目标对准婚礼策划人和场地方(可重复使用、较低流失),而不只是单个新人。
  • 思路包括:用免费/基础工具做获客,再为保存数据和高级功能提供付费层级。

关于分配座位的文化观点

  • 一些文化/活动很少分配座位,认为这没必要。
  • 另一些人则认为座位安排能提供安心感、结构,并帮助单独来宾和彼此陌生的朋友群。