Trae Assistant
Initial commit with enhanced functionality
b185c87
metadata
title: Seating Chart Solver
emoji: 🪑
colorFrom: indigo
colorTo: purple
sdk: docker
app_port: 7860
short_description: 基于模拟退火算法的智能活动排座与可视化系统

Seating Chart Solver (智能排座专家)

这是一个专为大型活动(婚礼、晚宴、会议)设计的智能排座系统。它利用**模拟退火算法 (Simulated Annealing)**,在满足各种复杂约束条件(如“必须坐在一起”、“不能坐在一起”)的同时,自动优化宾客的座位安排,最大化整体满意度。

核心功能

  • 智能优化引擎: 一键自动计算最佳座位安排,解决 NP-Hard 排座问题。
  • 复杂约束管理: 支持定义“亲密关系”(权重加分)和“冲突关系”(权重扣分)。
  • 可视化布局: 直观的圆形餐桌视图,实时显示入座情况。
  • 资产导出: 支持将最终排座方案导出为高清图片 (PNG) 或 PDF 文档,直接用于打印或分享。
  • 多维度评分: 实时反馈当前方案的“和谐度”评分。

解决痛点

活动策划中最头疼的环节往往是排座位:

  • 如何让关系好的人坐在一起?
  • 如何避免死对头同桌?
  • 如何平衡每桌的人数? 本工具通过算法自动化解决这些问题,将耗时数小时的工作缩短为几秒钟。

技术栈

  • 算法: Python (Simulated Annealing), NumPy
  • 后端: Flask
  • 前端: Vue 3, Element Plus, TailwindCSS
  • 导出: html2canvas, jsPDF
  • 部署: Docker (Python 3.11 Slim)

算法原理

系统将排座问题建模为组合优化问题:

  1. 目标函数: $Score = \sum (Relation_{i,j} \times SameTable_{i,j}) - \sum (Conflict_{i,j} \times SameTable_{i,j}) + GroupBonus$
  2. 寻优策略: 使用模拟退火算法,允许以一定概率接受较差解以跳出局部最优,最终收敛到全局近似最优解。

运行方式

# 构建
docker build -t seating-solver .

# 运行
docker run -p 7860:7860 seating-solver

访问 http://localhost:7860 开始使用。