web-dev-qa-db-ja.com

エレベーターのアルゴリズムと実装

(実際の)エレベーターの仕組みを知りたかった。しかし、これまでのところ、それらが使用するアルゴリズムについての資料や、シミュレーション用のソフトウェア(存在する場合)を見つけることはできませんでした。誰か私にその参考文献を教えてもらえますか?

11
Banana

興味深い質問です。これについても調査したいと思います。

Wikiには、Barney、G.(2003年1月)という本への参照があります。 エレベーター交通ハンドブック:理論と実践 。 ISBN 9780415274760。

Wikiのスニペットを次に示します(すでに見たかもしれません)。

エレベーターアルゴリズムは、ハードディスクのリクエストをスケジュールするためのアルゴリズムとして、コンピューターのオペレーティングシステムに適用されています。最新のエレベーターは、より複雑なヒューリスティックアルゴリズムを使用して、次に処理する要求を決定します。これらのアルゴリズムの概要は、以下の参考資料にある「エレベータートラフィックハンドブック:理論と実践」に記載されています。

10
hangar18

もちろん、さまざまな実装がありますが、最も一般的なのはこれです。

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

実際の建物では通常、1階が他の建物よりも頻繁に使用されるため、一定時間操作しないとエレベーターが1階に戻る実装もかなりあります。

(余談ですが、ドナルドクヌースがエレベーターのアルゴリズムを正確に説明していることを確実にするために、エレベーターで1日に1度過ごしたとの情報がありますが、そのリファレンスは見つかりません。)

7
blubb

エレベーターアルゴリズムは Knuthのエレベーターアルゴリズム を使用して最もよく説明されます。

ただし、簡単な手順では、アルゴリズムは次のように表すことができます。

  1. その方向の最後の要求まで単一方向に移動します。
  2. 要求がない場合は、停止して他の方向に進みます。他の方向からの要求がある場合は続行します。
1
GIRI