交互式小程序:TSP(旅行商问题)求解 + 知识库问答智能体(离线单文件版)

本小程序围绕数学建模经典问题 TSP 旅行商问题:你可以点击画布放置城市点,一键运行最近邻启发式2-opt 局部搜索, 观察路线长度变化;同时内置一个“小型RAG风格”知识库问答智能体:你可以把自己的笔记/论文摘要粘贴进知识库, 让智能体基于相似度检索返回“引用+总结”的回答。

无需联网 单文件 HTML 支持本地保存(localStorage) 适合课程作业提交

画布(点击添加城市,拖动可移动,双击删除)

控制面板

城市数
0
路线长度
-
起点(最近邻)
auto
2-opt 迭代
-
点击展开:数学模型与算法说明(作业可直接引用)
1) 数学建模:TSP(Traveling Salesman Problem)
给定 n 个城市,求一条闭合回路,使每个城市恰好访问一次且总路程最短。常见整数规划形式:
令 xij ∈ {0,1} 表示是否从城市 i 到城市 j;dij 为距离。目标:最小化 ΣᵢΣⱼ dijxij
约束(每个城市一进一出):Σⱼ xij=1, Σᵢ xij=1;并需加入“消除子回路”的约束(MTZ 或 cut)。

2) 最近邻(Nearest Neighbor, NN)启发式
从起点出发,每一步选择“最近的未访问城市”,直到访问完,再回到起点。优点:极快;缺点:容易陷入局部最优。

3) 2-opt 局部搜索
在当前路径中选两条边 (a-b, c-d),尝试交换为 (a-c, b-d)(等价于反转一段路径),若总长度变短则接受。重复直到无改进。
直观解释:2-opt 能快速消除“路径自交”,常作为 NN 的后处理。

4) 复杂度(可写在报告里)
NN:O(n²);2-opt:最坏 O(n³)(但中小规模通常很快)。

5) 你可以做的消融实验(报告加分)
(i) NN vs NN+2-opt 的长度对比;(ii) 不同随机种子/点数的统计;(iii) 起点不同对 NN 的影响。
建议截图点:
(a) 随机生成城市 + 初始路径;(b) 运行 NN 后长度;(c) 运行 2-opt 后长度改善;(d) 导出 JSON 的弹窗/结果。
📊 已访问