Trae Assistant
Initial commit with enhanced functionality
b185c87
---
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. **寻优策略**: 使用模拟退火算法,允许以一定概率接受较差解以跳出局部最优,最终收敛到全局近似最优解。
## 运行方式
```bash
# 构建
docker build -t seating-solver .
# 运行
docker run -p 7860:7860 seating-solver
```
访问 `http://localhost:7860` 开始使用。