web-dev-qa-db-ja.com

エレベーターディスパッチアルゴリズムの選択

8階建ての住宅用建物にサービスを提供する単一のエレベーターがあります。ユーザーエクスペリエンス(主に待機時間)を最適化するための最適なエレベーター配置アルゴリズムは何でしょうか?

私はこれらの線に沿って考えていました:

  1. ほとんどの通話は、地上レベルから発信される可能性があります。したがって、すべてのコールを処理した後、エレベーターは地上に戻ります。

  2. オプション#1は、たとえば7レベルから召喚する人々に過度に高いペナルティを課す可能性があります。では、たとえば、平均応答時間を最小化する4番目のレベルに戻るために戻るのでしょうか。

  3. それが最後に行ったところだけ待ってください! (これが現在のデフォルトです)

人々はどう思いますか? (エレベーターのスケジュールに関する記事を見てきましたが、ほとんどが商業ビルのテストケースに対応する複数のエレベーターに取り組んでいます)

もちろん、より複雑な状況では、一部のフロアでの使用率が他のフロアよりも高くなる可能性もあります。これを「学習」するアルゴリズムはさらに賢明かもしれませんが、これをどのように悪用するかはわかりません。

PS。 8レベルの建物にサービスを提供する単一のエレベーターは奇妙です。おそらくコード違反になるでしょう。しかし、これは古い建物であるため、祖父がいます。

PPS。エネルギー使用量を最適化することが基準である場合、アルゴリズム#3が自然に最良でしょうか?それとも、もっとうまくできるだろうか?

13
curious_cat

このような問題には、解決策を得る前に決定する必要があるprioritiesのマトリックスが含まれます。たとえば、他のどのフロアよりも1階で待っている人のことをもっと気にしますか?エネルギー消費を気にしていますか?他よりも重要な特定のフロアはありますか?

これらを決定したら、単純な離散モデルを作成する(アリーナのようなもの)でさまざまなアルゴリズムをテストできます。

私は大学でこのような問題をモデル化して解決するのに非常に苦労しました。各階で同じ使用量の分布を仮定した(1階以外、最初はアメリカ人が2階と呼ぶものである);また、エレベータのエネルギー消費と消耗コストを要因として含めました。

次に、エレベーターには複数の静止状態があることを覚えておく必要があります。ドアが開いて待っている状態と、ドアが閉じて待っている状態です。エレベーターがドアを閉じたまま待機している場合、最初にドアを閉じる必要がある場合よりもはるかに速く応答できます。

私たちの最終結果は、エレベーターが最上階と1階の間の半分未満の任意の階で停止した場合、次の呼び出しまで(ドアを閉じた状態で)待機するのが最善であったということです。フロアの上半分のどこかに止まった場合は、下の階に移動し、ドアを閉めたまま待ちます。

結局のところ、これは私が住んでいた9階建ての建物で使用されているアルゴリズムでもあります。

11
JohnGB

人々は、エレベーターを使用して1階(0)の階と1階より高い階の間を移動します。上向きと下向きの2つの方向があります。すべての人々がエレベーターを使用しなければならない状況では、上向きと下向きのカテゴリー統計が通常に分布するため、呼び出しの約50%はフロアレベルからのものでなければなりません。

人々は、次のような状況で階段を使用する傾向があります。

  • 彼らが降りたいとき、特にそれが1〜3階を意味するとき
  • 1〜2階上がりたいとき

その理由は経済的な背景があります-階段を待つことと使用することの両方が彼らにとって代替的なコストです。上がるコストは、たとえば、移動するフロアの数に比例して増加します。このコストが非常に低い場合、待機に時間を費やすのではなく、筋肉のパワーに投資することを選択する人もいます(フロア数が少ない場合は、比較的低い要件です)。

ここで番号を付けることは少し難しいですが、これは間違いなくエレベーターを呼び出す傾向を地上からの呼び出しにシフトします。通話の60%が1階から来ていると仮定します。

この場合、アイドル時にエレベータを1階に置くことが最善の解決策のようです。建物に2つのエレベーターがある場合は、アイドル時に1つを1階に引き下げ、もう1つを中間階の1つに送ることを検討できます。ここでは4階は妥当ではありません。低層階の一部の人々は階段を使用するため、床の数に応じてエレベーターの必要性が高まるためです。なので、2人目はアイドル時は6階くらいで待つべきだと思います。

とにかく、必要に応じてアルゴリズムを微調整するために使用統計を収集するか、それを証明または概念として扱うのが良いと思います。

7
Dominik Oslizlo

次のようなヒューリスティックを考慮に入れるかもしれません

  • 朝に入るよりも多くの人が出るでしょう
  • 夕方に出るよりも入る人の方が多い

もちろん、観察されたパターン(つまり、学習)は、上記のようなヒューリスティックな推測よりも重要です。一定期間のイベントを記録し、単純な視覚化ソフトウェアを使用して自分で分析し、ディスパッチアルゴリズムの動作を調整するだけで、学習アルゴリズムなしで意味のある最適化を行います。この手法が有効であれば、あなたが学習アルゴリズムになります。さまざまなディスパッチアルゴリズムをプラグインし、収集されたデータに対してplayを使用して、どのディスパッチアルゴリズムが目的の特性を与えるかを確認できるシミュレータを作成すると、さらに効果的です。

2
obelia