电梯算法及其实现


11

我想知道(真实的)电梯如何工作。但是到目前为止,我找不到关于它们使用的算法的太多材料,也找不到用于仿真的软件(如果有)。有人可以给我参考吗?


从根本上讲,这是排队论所描述的问题。
Rein Henrichs

如果您喜欢一些特定的深入知识,请观看:youtube.com/watch?
v=1Uh_N1O3E4E

Answers:


10

有趣的问题。也让我想对此做一些研究。

Wiki参考了Barney,G.(2003年1月)一本书。电梯交通手册:理论与实践。ISBN 9780415274760。

这是Wiki的一个片段(您可能已经看过):

升降机算法已作为调度硬盘请求的算法在计算机操作系统中得到了应用。现代电梯使用更复杂的启发式算法来决定接下来要处理的请求。这些算法的介绍可在以下参考文献中提供的“电梯交通手册:理论与实践”中找到。


7

当然有不同的实现,但是最普遍的是这种实现:

https://zh.wikipedia.org/wiki/Elevator#Elevator_algorithm

由于在实际建筑物中,通常比其他建筑物更频繁地使用底层,因此也有相当多的实施方式使电梯在一段时间不活动后返回到底层。

(在旁注中,有一种说法是唐纳德·努斯曾经在电梯里待过一天,只是为了绝对确保他会正确描述电梯算法,但我找不到这方面的参考。)


2
RE:您的旁注:我刚刚看到它在本文中被引用(第165页): ocw.mit.edu/courses/electrical-engineering-and-computer-science/…… 引用了《计算机编程的艺术》,DonaldE。 ,Knuth,第1卷,第295页。在Cal Tech的数学大楼的电梯系统上。首次出版于1968年
jduhls

1

最好使用Knuth的Elevator算法来描述Elevator算法

但是在简单的步骤中,算法可以表示为:

  1. 单向行驶,直到最后一个请求。
  2. 如果没有请求,请停止并朝另一个方向前进,如果有来自其他方向的任何请求。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.