关于java:群控制电梯算法加薪必备神器

4次阅读

共计 3049 个字符,预计需要花费 8 分钟才能阅读完成。

本文章转自:乐字节文章
次要解说:群管制电梯算法
获取更多 Java 相干常识能够关注公众号《乐字节》发送:999

1. 传统电梯调度算法

1.1 先来先服务算法(FCFS)

先来先服务 (FCFS-First Come First Serve) 算法,是一种随即服务算法,它不仅仅没有对寻找楼层进行优化,也没有实时性的特色,它是一种最简略的电梯调度算法。

它依据乘客申请乘坐电梯的先后秩序进行调度。此算法的长处是偏心、简略,且每个乘客的申请都能顺次地失去解决,不会呈现某一乘客的申请长期得不到满足的状况[12]。

这种办法在载荷较轻松的环境下,性能尚可承受,然而在载荷较大的状况下,这种算法的性能就会重大降落,甚至好转。

人们之所以钻研这种在载荷较大的状况下简直不可用的算法,有两个起因:

  1. 任何调度算法在申请队列长度为 1 时,申请速率极低或相邻申请的距离为无穷大时应用先来先服务算法既对调度效率不会产生影响,而且实现这种算法极其简略。
  2. 先来先服务算法能够作为掂量其余算法的规范。

1.2 最短寻找楼层工夫优先算法(SSTF)

最短寻找楼层工夫优先 (SSTF-Shortest Seek Time First) [14] 算法,它重视电梯寻找楼层的优化。

最短寻找楼层工夫优先算法抉择下一个服务对象的准则是最短寻找楼层的工夫。这样申请队列中距以后可能最先达到的楼层的申请信号就是下一个服务对象。关注公众号 [Java 面试] 获取更多面试材料

在重载荷的状况下,最短寻找楼层工夫优先算法的均匀响应工夫较短,但响应工夫的方差较大,起因是队列中的某些申请可能长时间得不到响应,呈现所谓的“饿死”景象。

1.3 扫描算法(SCAN)

扫描算法 (SCAN) 是一种依照楼层程序顺次服务申请,它让电梯在最底层和最顶层之间间断往返运行,在运行过程中响应处在于电梯运行方向雷同的各楼层上的申请。

它进行寻找楼层的优化,效率比拟高,但它是一个非实时算法。扫描算法较好地解决了电梯挪动的问题,在这个算法中,每个电梯响应乘客申请使乘客取得服务的秩序是由其发出请求的乘客的地位与以后电梯地位之间的间隔来决定的,所有的与电梯运行方向雷同的乘客的申请在一次电向上运行或向下运行的过程中实现,免去了电梯频繁的来回挪动。

扫描算法的均匀响应工夫比最短寻找楼层工夫优先算法长,然而响应工夫方差比最短寻找楼层工夫优先算法小,从统计学角度来讲,扫描算法要比最短寻找楼层工夫优先算法稳固。

1.4 LOOK 算法

LOOK 算法 [18] 是扫描算法的一种改良。对 LOOK 算法而言,电梯同样在最底层和最顶层之间运行。

但当 LOOK 算法发现电梯所挪动的方向上不再有申请时立刻扭转运行方向,而扫描算法则须要挪动到最底层或者最顶层时才扭转运行方向。

1.5 SAFT 算法

SATF(Shortest Access Time First)[15,19]算法与 SSTF 算法的思维相似,惟一的区别就是 SATF 算法将 SSTF 算法中的寻找楼层工夫改成了拜访工夫。

这是因为电梯技术倒退到明天,寻找楼层的工夫曾经有了很大的改良,然而电梯的运行当中期待乘客上梯工夫却不是人为能够管制。

SATF 算法思考到了电梯运行过程中乘客上梯工夫的影响。

2 实时电梯调度算法

2.1 最早截止期优先调度算法

最早截止期优先 (EDF-Earliest Deadline First) 调度算法是最简略的实时电梯调度算法,它的毛病就是造成电梯任意地寻找楼层,导致极低的电梯吞吐率。

它与 FCFS 调度算法相似,EDF 算法是电梯实时调度算法中最简略的调度算法。

它响应申请队列中时限最早的申请,是其它实时电梯调度算法性能掂量的基准和特例。

2.2 SCAN-EDF 算法

SCAN-EDF 算法是 SCAN 算法和 EDF 算法相结合的产物。

SCAN-EDF 算法先依照 EDF 算法抉择申请列队中哪一个是下一个服务对象,而对于具备雷同时限的申请,则依照 SCAN 算法服务每一个申请。

它的效率取决于有雷同 deadline 的数目,因此效率是无限的。

2.3 PI 算法

PI(Priority Inversion)算法将申请队列中的申请分成两个优先级,它首先保障高优先级队列中的申请失去及时响应,再搞优先级队列为空的状况下在相应的优先级队列中的申请。

2.4 FD-SCAN 算法

FD-SCAN(Feasible Deadline SCAN)[17]算法首先从申请队列中找出时限最早、从以后地位开始挪动又能够满足其时限要求的申请,作为下一次 SCAN 的方向。关注公众号 [Java 面试] 获取更多面试材料

并在电梯所在楼层向该申请信号运行的过程中响应处在与电梯运行方向雷同且电梯能够通过的申请信号。

这种算法疏忽了用 SCAN 算法相应其它申请的开销,因而并不能确保服务对象时限最终失去满足。

3 电梯调度的高水平钻研

以上两个小结介绍了几种在目前自己的能力上能进行钻研的、简略的电梯调度算法。然而并不是说目前电梯调度只倒退到这个档次。

目前电梯的控制技术曾经进入了电梯群控的时代。

随着微机在电梯零碎中的利用和人工智能技术的倒退,智能群控技术得以迅速倒退起来。

由此,电梯的群控方面陆续倒退出了一批新办法,包含:基于专家系统的电梯群控办法、基于含糊逻辑的电梯群控办法、基于遗产算法的电梯群控办法、基于胜景网络的电梯群控办法和基于含糊神经网络的电梯群控办法。

4 电梯问题的需要剖析

4.1 电梯的初始状态

自己设置的电梯的初始状态,是对住宅楼的电梯的设置。

  1. 修建共有 21 层,其中含有公开一层(公开一层为停车场及货物运送场合)。
  2. 修建外部设有两部电梯,编号别离为 A 梯、B 梯。
  3. 电梯外部有 23 个按钮,其中包含开门按钮、关门按钮和楼层按钮,编号为 -1,1,2,3,4……20。
  4. 电梯内部含有两个按钮,即向上运行按钮和向下运行按钮。修建顶层与公开一层例外,修建顶层只设置有向下运行按钮,公开一层只设置有向上运行按钮。
  5. 电梯开关门实现工夫设定为 1 秒。电梯达到每层后高低人的工夫设定为 8 秒。电梯从静止开始运行到下一层的工夫设置为 2 秒,而运行中通过一层的工夫为 1 秒。
  6. 在凌晨 2:00——4:30 之间,如若没有申请信号,A 梯主动停在 14 层,B 梯主动停在 6 层。
  7. 当电梯下到 - 1 层后,如果没有申请信号,电梯主动回到 1 层。

4.2 电梯按钮性能

电梯外部的楼层按钮:电梯外部对应每一个楼层的按钮成为楼层按钮,即本章第一节提到的编号为 -1,1,2,3,4……20 的按钮。

当乘客进入电梯后按下楼层按钮,此按钮显示灰色,代表不能够用。这样就示意乘客将要去往此层,电梯将开往相应层。当电梯达到该层后,按钮复原能够应用状态。

电梯外部开门按钮:当电梯达到乘客想要去往的某楼层后,乘客须要筹备来到电梯,当电梯停稳后,乘客能够按下开门按钮,电梯门将关上,让用户来到。

如若电梯到了乘客已经按下的楼层,然而无乘客按开门按钮,电梯将主动在停稳后 1 秒后主动开门。

电梯外部关门按钮:当所有想要乘坐电梯的乘客都进入电梯当前,筹备让电梯开始运行的时候,乘客须要按下关门按钮,让电梯门敞开,使电梯进入运行状态。设置电梯的主动关门工夫为 8 秒。

电梯内部向上按钮:此按钮示意上楼申请,当按下此按钮时,如果电梯达到按下此按钮的楼层,且电梯运行方向是向上的,那么电梯响将停下,并在电梯停稳之后主动开门,此申请被响应后,勾销此申请信号。

电梯内部向下按钮:此按钮示意下楼申请,当按下此按钮时,如果电梯达到按下此按钮的楼层,且电梯运行方向是向下的,那么电梯响将停下,并在电梯停稳之后主动开门,此申请被响应后,勾销此申请信号。

感激大家的认同与反对,小编会继续转发《乐字节》优质文章

正文完
 0