AI漫谈:电梯调度运行逻辑

不懂技术怎么做产品?15天在线学习,补齐产品经理必备技术知识,再也不被开发忽悠。了解一下>

电梯到底是如何调度,来满足不同楼层的请求?

早上被窝内外的温差导致你比平常晚起了20分钟,你飞快洗脸刷牙,穿鞋的同时叫了一辆网约车。

路上堵了半天,一下车你就飞奔进入大楼,因为还有5分钟就要迟到,迟到扣工资100元。

还好有2部电梯正在从-2层上升,你舒了口气,心想3分钟后就能到你的楼层打卡。

你看着电梯按钮旁显示的数字:-2,-1,2,3 ,4… …电梯在-1层已经满了…

旱的旱死,涝的涝死,哪个**设计的电梯……

这样的场景不止一次出现过,也许电梯间有10个电梯在运行,但你就是等了10分钟也没等到。电梯无数次从你在的那一层经过,就是不停,仿佛加了黑名单。

你不禁陷入沉思,是人性的扭曲,还是电梯设计的sb。电梯到底是如何调度,来满足不同楼层的请求?

同样惨痛的经历和沉思,最终变成这篇文章:电梯是如何调度的?

电梯调度有4种最基本的逻辑,目前大多采用第四种。单电梯运行想实现效率最优,还需考虑诸多因素;而多电梯运行,则更会增加逻辑的丰富和复杂度。

下文将介绍:

  • 电梯运行的4种逻辑;
  • 一部电梯如何运行效率最高;
  • 多部电梯如何运行效率最高。

电梯运行的4种逻辑

1. 先到先得

根据乘客请求的先后顺序进行调度,即,谁先按电梯先服务谁。

优点:公平公正公开,且每个乘客的请求都能被依次处理,不会有某一乘客的请求长期得不到满足。

缺点:效率极低,遇到高峰期,全部排队,一起骂设计师。

是否可用:否。

2. 最短优先

按照最短距离服务,即,电梯离谁最近先服务谁。

优点:离谁近给谁服务,对比方案1减少了空跑。

缺点:楼层比较偏的同学,比如顶楼的小伙伴下楼吃午饭,等电梯等了1个小时,也没等到。

是否可用:否。

3. 顶层底层之间往返循环

在底层和顶层之间往返运行,响应方向相同的请求。即,上下循环往返,有顺路的就带上,走到顶层或底层再掉头。就像一辆公交车。(1->20,20->1,如此循环,顺路的都带上)

优点:一个方向的,一趟带走。

缺点:电梯必须到头才折返,和公交一样,空车也必须走到底站。

是否可用:是。

4. 顶层底层之间往返循环(按请求的顶层和底层)

是顶底折返的改进,在用户请求的最高和最低楼层之间往返。即,上下循环往返,到了用户请求的最高层,就可以掉头。(跟3相似,只是如果没有人去20层,比如这部电梯里去往楼层最高的人要到19层,没人往更高走了,那到19层就可以掉头往下了。)

优点:在顶底折返的基础上,考虑实际情况,不必须走到顶层/底层。

缺点:每次必须把一个顺序的请求走完,还是有点死板。

是否可用:是,目前电梯大多是这种逻辑。

以上是最基础的电梯运行逻辑,其实讲到这里大家已经了解了目前电梯运行的普遍逻辑,也就是上面的方案4。

但这里我们继续探讨优化点,比如以下2个场景:

  • 只有1部电梯,电梯上升至4层,乘客走出去,电梯变空,这时3层和20层用户同时按“上”,电梯应该返回带上3层用户,还是继续向上走?
  • 有两台电梯,一个从20层开始下降,一个从1层出发去2层。有用户在2层按“下”,应该把任务派给哪台电梯?

一部电梯如何运行效率最高

1. 什么方案效率最高?

首先定义“效率最高”:所有用户总耗时时长最短 & 没有人遇到极端恶劣体验,而所有用户总耗时时长=sum(每个用户的等待时长+乘坐时长)。

即,效率最高的方案是让算法选择总耗时最短的方案:choose the plan with min(sum(等待时长+乘坐时长))。只需要给乘坐电梯的每个小步骤加上对应时间,算法能够快速预估有哪些方案、各方案耗时、最优方案。

2. 目前普遍使用的方案4是效率最高吗?

前文讲到,目前电梯普遍应用的运行方案是方案4,电梯上下往返循环,每次顺路的都带上。我们来检测下方案4的效率并不是最高。

以前面说到的情况为例:

“只有1部电梯,电梯上升至4层,乘客走出去,电梯变空,这时3层和20层用户同时按“上”,电梯应该返回带上3层用户,还是继续向上走?”

  1. 方案4优先处理同方向请求,先处理上方20层用户请求,那3层用户的等待时长非常长。
  2. 但总耗时最短的方法,应该是先回头把3带上,然后往上走。这样20层用户增加了一点点等待时间,3层用户缩短了大量等待时间,总耗时大大缩短。

可见方案4并不是最高,最高的方案是总耗时最短的方案:choose the plan with min(sum(等待时长+乘坐时长))

3. 为什么没有使用最高效率方案呢?

因为这个方案,电梯会经常回头接人,而电梯回头会导致乘坐人的体验很怪异。比如我从1楼乘坐电梯去30楼,电梯到10楼时收到9楼有人请求上行,电梯回到9楼接了个人继续上升。我的体验是1->10->9->30,是不是很怪异?

而且电梯频繁换方向,会使乘坐人难以预估电梯行为,对于电梯秩序和安全都有干扰。

因此目前电梯普遍应用的并不是效率最优,而是效率和体验整体最优的方案:电梯每次运行一个方向,顺路的都带上,到达用户请求的最高层之后,才可以掉头。

多部电梯如何运行效率最高

首先,逻辑基础相似,电梯每次运行一个方向,顺路的带上,到达用户请求的最高层之后,可以掉头。不同的是,顺路的不一定都要自己带上,因为是多部电梯一起工作,有些事情不一定需要自己动手,可以交给兄弟们团结合作。

多部电梯调控,业内称之为“群控电梯调度”。群控电梯调度,受更丰富的因素影响,因此也有更复杂的逻辑。

接下来的内容,本文做更基础的科普简介,大家如有兴趣可以自行深入查询相关资料。

1. 群控电梯调度的主要目标

减小乘客平均候梯时间、减少乘客平均乘梯时间、降低系统运行能耗。

2. 常见人流量模式概念

  • 上行高峰交通模式:主要人流方向是上行,比如早高峰的公司电梯。
  • 下行高峰交通模式:主要人流方向是下行,比如晚高峰的公司电梯。
  • 二路交通模式:主要人流方向是去某一层/从某一层离开,比如:全体大会会议室在4层,开会时人流涌入4层,散会时4层人流流向各层。
  • 四路交通模式:主要人流方向是去某2层/从某2层离开,例如:午饭时,人流流向一层和二层的餐厅。
  • 平衡的层间交通模式:上行和下行乘客数量相当,各层之间的交通相当。
  • 空闲交通模式:大量电梯处于空虚,比如节假日、深夜等。

3. 常见调度算法

(1)基于专家系统的电梯群控调度

用专家的经验知识建立规则,利用规则比较各种可能的调度途径,从中选出最佳路线。即,听专家的。

  • 优点:合理利用基于经验的、尚未形成科学体系的知识。
  • 缺点:依赖专家。

(2)模糊逻辑电梯群控调度

把模糊不清的边界对象和问题总结成一系列以“IF(条件)THEN(作用)”产生式形式表示的控制规则。即,听专家的,但这个是专家也感觉模糊的规则。

  • 优点:帮助计算机模仿人脑的推理能力,简化复杂问题。
  • 缺点:不具有学习功能,依赖专家。

(3)基于神经网络的群控调度

引入人工神经网络,使系统具有自学习能力。利用非线性和学习方法建立 适合的模型,进行高速推理,对电梯交通可进行短、长期预测。即,算法可以根据实际情况学习进化。

优点:学习能力,能更好适合实际情况。

缺点:有些逻辑模糊学不到。

(4)模糊神经网络的调度

模糊神经网络把神经网络与模糊逻辑相结合,克服了人工神经网络结构难以确定,以及模糊逻辑无自学习功能的缺点。即,有些自动学习难以结构化的,使用模糊逻辑规则学习。

优点:学习模糊规则各规则的相对重要度,来实现规则的优化。

本文介绍了单电梯调度的基本逻辑和多电梯调度的常见概念和算法,只讲到了科普皮毛,感兴趣的朋友可以继续探索~

 

作者:图灵的猫,公众号:图灵的猫

本文由 @图灵的猫 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

给作者打赏,鼓励TA抓紧创作!
评论
欢迎留言讨论~!
  1. 老实说,你说的电梯运行的4种逻辑,为什么我都没有体验过呢。。。