早上被窝内外的温差导致你比平常晚起了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层用户,还是继续向上走?”
--方案4优先处理同方向请求,先处理上方20层用户请求,那3层用户的等待时长非常长。
--但总耗时最短的方法,应该是先回头把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)模糊神经网络的调度
模糊神经网络把神经网络与模糊逻辑相结合,克服了人工神经网络结构难以确定,以及模糊逻辑无自学习功能的缺点。即,有些自动学习难以结构化的,使用模糊逻辑规则学习。
优点:学习模糊规则各规则的相对重要度,来实现规则的优化。
本文介绍了单电梯调度的基本逻辑和多电梯调度的常见概念和算法,只讲到了科普皮毛,感兴趣的朋友可以继续探索~
感谢大家的阅读
更多AI资讯、技术指引,欢迎进入公众号
往期文章:
和朋友们一起,点个在看吧~