アルゴリズムは「何らかの問題を解決する手順」を指し、アルゴリズムの良しあしでソフトウエアの性能が決まると言っても過言ではない。私たちの生活は、高度なアルゴリズムで実装されたソフトウエアに支えられている。エレベーターや信号機の制御ソフトを例に、身近なアルゴリズムの一端を見ていく。今回は、エレベーターのアルゴリズムの基本編だ。

 朝はいつもエレベーター前が大渋滞、ボタンを押してもなかなか来ない――。こんな経験は誰しもあるだろう。どうすればエレベーターにスムーズに乗れるのか。この答えはエレベーターのアルゴリズムを理解できれば、おのずと見えてくる。

 アルゴリズムとは、「何らかの問題を解決する手順」を指し、この手順をコンピュータが理解できるように記述したものがプログラムだ。エレベーターは、高度なアルゴリズムによって実装されたプログラムで動いている。ボタンを押してもなかなか来ないエレベーターは実在するものの、イライラ解消に向けたアルゴリズムの改良は進んでいる。今回は、三菱電機製のエレベーターを例に、搭載されている最先端のアルゴリズムを解説する。

近い階のカゴが来るわけではない

 エレベーターのアルゴリズムは、各階に設置された呼び出しボタンが押されると、どのカゴを呼び出せばよいかを瞬時に判断するようになっている。

 ただし、エレベーターに1つのカゴしかない場合は、アルゴリズムを工夫する余地はあまりない。利用していない時に、止まっておく停止階を指定するぐらいだ。例えば、「呼び出される確率が高いロビー階などに、あらかじめカゴを停止させておく」(三菱電機の鈴木直彦 開発部 管理システム開発課長)といったアルゴリズムが考えられる。

 高度なアルゴリズムが必要になるのは、エレベーターのカゴが複数台ある場合だ。大きなオフィスビルやデパートなどでは、3~8台のカゴが配置されていることもある。このような場合は、最適な配車(エレベーター業界では、エレベーターのカゴを人が乗り込む車に見立てて「配車」と呼ぶ)を実現するアルゴリズムが重要になる。

 三菱電機のエレベーターの場合、アルゴリズムの良しあしを決定する重要な要素が「長待ち率」と「平均待ち時間」だ。長待ち率とは、エレベーターを待っている人の中で60秒以上待っている人の割合を指す。様々な研究の結果から「人はエレベーターを待っている時間が60秒以上になるとイライラ度が急激に増す」(鈴木直彦課長)という。そこで、カゴを60秒以上待っている人を減らすことが重要となる。

 これに対して平均待ち時間は、エレベーターを呼んだ人が平均して何秒待っているかという時間のことだ。もちろん、平均待ち時間は短いほうが良い。

 三菱電機製エレベーターのアルゴリズムは、これら2つの時間をポイント(値)として算出し、一番小さいポイントのカゴを配車する(ポイントの詳しい算出方法は後述)。ポイントが小さいほど、長くエレベーターを待っている人が少なくなり、平均待ち時間も短くなるカゴになるからだ。例えば、A号機を配車するとポイントが2000、B号機を配車するとポイントが1000になる場合、B号機のカゴを配車するという具合だ。

カゴを呼び出すイメージ
[画像のクリックで拡大表示]

 このように最近のエレベーターは全体の最適化が優先されるため、必ずしも近くの階にいるカゴがやって来るとは限らない。他の階で長い待ち時間が発生していれば、その階に優先して配車される。

 最適化のためには、時として呼び出しがあった階を通過しなければならないこともある。乗り場にカゴが何階にいるのかを知らせるインジケーターのないエレベーターが増えているのは、これが理由だ。インジケーターがあると、利用者にカゴの通過が分かってしまう。待っているのに通過されてしまうと、利用者は余計にイライラするだろう。

 逆に言えば、インジケーターがあると「最適化できることが限られてしまう」(三菱電機の開発部 管理システム開発課 山下桜子 専任)。つまり、インジケーターがないエレベーターのほうが頭の良いエレベーターといえる。

この先は日経 xTECH Active会員の登録が必要です

日経xTECH Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。