Elevators
交互式电梯调度算法模拟器
电梯是每个人每天都离不开的设备,但背后的调度算法却鲜有人知。Elevators 是作者 John Herrick(@theJohnHerrick)推出的一款交互式网络文章与模拟器,将电梯调度算法的奥秘用通俗易懂的方式呈现给读者,任何人都可以动手操作模拟器,亲眼看到不同算法在实际场景中的表现差异。
核心功能
1. 多算法对比模拟
模拟器内置了四种经典电梯调度算法,用户可以随时切换对比:SCAN 算法(电梯从底层出发,一路向上运行到顶后再反向向下,1961年专利算法)、LOOK 算法(电梯只运行到沿途最高请求楼层即反向,是大多数现代电梯采用的基础逻辑)、RSR 算法(Otis 电梯公司的相对系统响应算法,综合考虑预计到达时间、车厢负载、同向防扎堆奖励、附近待电梯奖励等因素,动态为每次呼叫分配最优车厢)、目的地调度(Destination Dispatch,在每层楼设置自助终端提前输入目标楼层,系统统一规划分配车位)。
2. 可视化电梯运行状态
每个模拟场景都配有实时 SVG 电梯井道动画,用户可以直观看到多部电梯车厢在不同楼层的运行轨迹、载客状态和呼叫分配过程。动画支持 1 倍速、5 倍速、25 倍速、100 倍速、500 倍速多档切换,方便快速观察长期统计规律。
3. 实时统计数据
模拟器提供等电梯时间分布直方图(Histogram),并实时更新 P50(半数情况下等电梯耗时)和 P90(九成情况下等电梯耗时)两个核心指标。用户可以直观看到不同算法、不同交通模式下这些指标的差异,例如早高峰场景中 RSR 相比 LOOK 的优势有多显著。
4. 交通场景切换
内置四种典型交通模式:早高峰(上行客流为主,从大堂向高层集中)、午间混行(上下行混杂)、晚高峰(下行客流为主)和层间交通(楼层之间横向流动)。不同场景下各种算法的表现差异很大,切换场景后系统会自动重置统计数据。
5. 可调节参数
用户可以调节每小时客流量(flow rate)、电梯数量(2~8部)、建筑层数等参数,观察参数变化对等电梯体验的影响。参数调节后点击重置按钮即可重新开始统计。
6. 深层算法解析
文章不仅展示模拟结果,还深入解析了每种算法的设计思路。例如 RSR 算法每 5 秒重新优化一次分配方案——如果 A 电梯原本要去接某位乘客,但中途遇到延误,系统会自动将这名乘客重新分配给更合适的 B 电梯,这种动态重优化是 RSR 表现优于传统固定分配方案的关键。
7. 反直觉结论
作者通过数据揭示了一些反直觉的结论:看似更先进的目的地调度(提前输入楼层、提前分配电梯)在大多数建筑中实际上比传统的上下按钮更差——因为它牺牲了灵活性来换取信息量,而 5 秒重优化窗口内的路况变化足以让提前分配失效。相比之下,简单可靠的 LOOK 算法在小规模建筑中反而经常优于复杂的 RSR。
特色优势
专业性与趣味性兼备: 既有严谨的算法论文级别的分析,又有随手可玩的交互模拟,非工科背景读者也能从中获得乐趣和洞见。完全免费无需注册: 打开网页即可使用,无广告、无付费墙、无需登录。跨平台响应式设计: 适配桌面端和移动端,手指滑动即可调节参数。代码开源: 作者在 GitHub 上公开了相关实现,供技术读者参考。
应用场景
建筑设计师和物业管理者可以用它来理解不同调度策略的实际效果,为新楼选型或旧楼改造提供参考。计算机科学学生可以将它作为算法学习辅助工具,直观看到排序算法思想在现实系统中的应用。对日常现象好奇的普通读者会发现,等电梯这件事背后竟然藏着这么多有趣的工程权衡。自媒体创作者可以引用其中的动画和数据,用可视化方式解释日常生活中的技术原理。
适用人群
对算法和数据可视化感兴趣的普通读者;建筑设备、物业管理相关从业者;计算机科学学生和编程爱好者;喜欢用交互式内容讲解复杂概念的创作者。
出品方
作者 John Herrick(@theJohnHerrick),个人开发者站点 john.fun,专注用交互式网络文章讲解日常生活背后的技术原理。
更新动态
2026年7月31日首发于 Hacker News Show HN,当日获得 1680 票,是当日 Show HN 人气最高的产品之一。
评论与建议
登录 后参与评论或提建议