电梯算法--为什么总是等不到电梯

48 阅读3分钟

一、小剧场

地点:总高8层的商务大楼,5层电梯口
时间:工作日晚高峰18:15

剧情展开
作为996上班族的你,终于结束了一天紧张的工作。电脑关机的那一刻,你像离弦的箭一般冲向电梯间。此时电梯显示正从8层下降,你迅速按下下行按钮,开始做各种准备:

  • 整理西装领带(尽管已经皱巴巴)
  • 检查手机电量(还剩12%) 调整站姿为"冲刺模式"

电梯数字变化:8→7→6...你的肌肉已经绷紧,就像百米起跑线上的运动员。然而电梯毫无停顿地继续下降:>5→4→3...

心理变化

  1. 困惑阶段:"是不是按钮没按到?"
  2. 自我怀疑:"难道我今天存在感这么低?"
  3. 哲学思考:"人类在机械面前的无力感..."

技术真相
实际上,电梯可能处于:

  • 高峰时段"直达模式"(优先处理底层大客流)
  • 已被其他楼层"长按"锁定
  • 正在执行节能运行程序

二、算法分类

1、传统电梯调度算法(规则固定

算法工作原理优点缺点适用场景
FCFS (先来先服务)严格按照请求顺序响应实现简单,绝对公平平均等待时间长低流量住宅楼
SSTF (最短寻道时间)选择物理距离最近的请求平均响应时间最优可能产生"饥饿"现象中低流量办公楼
SCAN (电梯算法)单向运行到底后反向可预测性强非极端楼层等待长均衡负载场景
SATF (最短访问时间)综合距离和等待人数整体效率高计算开销大高峰时段商场

2、实时电梯调度算法(动态调整

算法核心思想技术特点典型应用
EDF (最早截止期优先)优先处理紧急请求实时性保障医院急诊电梯
SCAN-EDF结合时间约束的扫描混合调度策略智能办公楼
PI (预测干预)机器学习预测需求动态调整参数超高层建筑
FD-SCAN (模糊决策)多目标优化模糊逻辑控制地铁站电梯

三、重点算法讲解

1、SATF(办公楼)

SATF 是 "Shortest Access Time First" 的缩写,中文可以翻译为「最短访问时间优先」

  • 距离近的 ➝ 优先送(省时间⏳)
  • 单子多的 ➝ 也优先送(比如5个人等电梯 vs 1个人等,先去5人那边👥)
  • 电梯太满 ➝ 直接跳过(避免超载🚫)

2、EDF算法(医院)

EDF算法本质是 “按截止时间排队” ,而电梯系统中的“截止时间”通过以下方式确定:

  • 人工标记(紧急按键、长按)
  •  等待超时(客观计时)
  •  特殊规则(医院/消防优先)

四、tips

下次被电梯「无视」时,可以安慰自己,它不是在犯傻,而是在用更聪明的方式服务整栋楼呢~