シミュレーターを使って信号機を最適制御する

こんにちは、AI技術部の岩水です。

交差点でこう感じたことはありませんか?
「この信号、すぐになっちゃうんだよなー。早すぎじゃない??ちゃんと最適化されてるの?」

こんな不満に対して簡単に検証できるのがシミュレーターです。
今回、誰でも簡単に”かっこいい”シミュレーターを作成できるソフトウェアをご紹介します!

シミュレーターを動かしてみよう

本記事が対象とするシミュレーターは、「AnyLogic」というシミュレーションモデリングツールで作成したものになります。
まずは、シミュレーターを動かしているデモ動画をご覧ください。

このデモは倉庫内の入出荷作業を可視化したデモです。
3Dや2Dで動きを可視化できる他、リアルタイムの統計情報も閲覧できます。
また、パラメータ(フォークリフトの数など)を変化させて、動きの変化を見ることも可能です。

その他のデモは下記URLから体験できるので是非ご覧ください。(再生ボタン▶で動きます)
https://cloud.anylogic.com/models

シミュレーションによるメリット

上記のような、グラフィカルなシミュレーターを使うとどんなメリットがあるでしょうか?

例えば、以下のような問題に対し、様々なパラメータを設定して検証することができます。

  • 信号機の切り替え間隔は何秒にしたらいい?
  • コールセンターのオペレーターは何人にしたらいい?
  • 施設のレイアウトはどう配置したら、動線がスムーズになる?

また、3Dや2Dの動画で動きを可視化することで、定性的な判断が出来たり、潜在的なリスクを発見しやすくなります。

そして、バーチャル環境という特性上、シミュレーションの倍速実行ができる上、現実の環境で試行錯誤せずに済むため、コスト減やリスク回避にも繋がります。

まとめると、グラフィカルなシミュレーターには以下のメリットが挙げられます。

  1. 様々なパラメータを試すことで、最適なシステムを設計しやすい。
  2. 動きが可視化されるため、説得力がある。
  3. 現実の環境で実験するよりも、低コスト、低リスクで実験しやすい。

様々な分野で使用されているシミュレーションモデリングツール「AnyLogic」

AnyLogicの概要と特徴的な機能を以下に記載します。

AnyLogicの概要

20年近くの歴史を持つ企業向けシミュレーションモデリングツール。ユーザ数もグローバルでトップシェア。
物理エンジンではなく、物流、人流、情報の流れにフォーカスしたシミュレーター。
適用分野は、製造、サプライチェーン、マーケティング、資産・プロジェクト管理など多岐。
使用企業は、NASA、Google、P&G、トヨタ、パナソニックなど。

AnyLogicの特徴的な機能

ログ出力、データ集計機能。
作成したシミュレーションモデルを専用クラウドにアップロード可能。高負荷なシミュレーション実行を可能にしたり、モデル共有の利便性が向上。
現実世界のデータをDBやCSVを介してシミュレーターに入力することで、再現シミュレーションが可能。
オブジェクトの発生頻度は、一様分布、正規分布、ポアソン分布等、多種多様な確率分布を選択可能。
Javaによるオブジェクトの独自定義や、Blender等のソフトウェアで作成した3Dオブジェクトの追加が可能。

[実験1]信号機で交通量を制御するシミュレーターを作成する

AnyLogicのサンプルモデルを使って作成フローを解説します。
ここではAnyLogic Professional(30日試用版)を使用します。無償版でもベーシックな開発は可能です。

画面は以下の様な構成となっており、Eclipseベースのソフトウェアになっています。
基本的な操作は、左側のパレットからアイテムをドラッグ&ドロップし、プロパティに値を設定するのみで、コーディング知識が無くても作成可能です。

作成手順

主に以下のフローでシミュレーターを作成します。

1.マップレイアウト作成

下絵となる画像やCADデータを基に、実際の縮尺に合うように道や信号を配置します。他にも工場用ライブラリには、ベルトコンベヤや工作ロボット等も用意されています。
動くオブジェクトを扱う場合は、その発生地点や目的地点も定義します。

2.オブジェクト定義

動かす対象の特徴を定義します。通常、既存のオブジェクトをそのまま使えますが、必要に応じてカスタマイズ可能です。人はもちろん、自動車や製造部品等のオブジェクトが用意されており、大きさや見た目を変更できます。

3.オブジェクト動きやIF-THENルールの定義

オブジェクトの発生から消滅までの動きをフローチャートのように定義します。

      • 発生頻度(確率分布)や動く速さの定義
      • 経由地や条件分岐の定義
      • 目的地到達時の動きの定義

今回の交通シミュレーターでは、以下のようなプロパティ設定になっています。

  • 車の発生頻度:1時間あたり500台(手前の道路)
  • 信号機のの時間:15秒
  • 信号機のの時間:10秒

それでは動かしてみましょう。

上記は開始10分後の様子です。
手前の道の渋滞が約150mまで伸びています。頻繁に信号機が切り替わると効率が悪いのかもしれません。

[実験2]パラメータを調整して、交通量を最大化する

最適化用のオブジェクトを追加し、下記条件を設定します。

  • 最適化対象:信号機の青・赤の時間(10~40秒の間で最適解を探索させる)
  • 最小化するもの:シミュレーター内の自動車の平均通過時間

パラメータ最適化を実行すると下記の結果になりました。

青信号が32秒、赤信号が38秒の時が最適のようです。このパラメータで再シミュレーションしてみます。

手前の道の渋滞が150mから約40mにまで短くなりました!
また、統計情報を確認すると、車の平均通過時間は190秒から112秒まで短縮していました。

おわりに

様々なビジネス用途で使用されているシミュレータモデリングツール「AnyLogic」をご紹介しました。

IoTやAI、シミュレーターの技術の発展により、実空間のデータをサイバー空間で再現・分析し、実空間で活用する仕組みが使われ始めており、これはデジタルツイン(Digital Twin)等と呼ばれています。

また、ロボットの自律学習やAIのアルファ碁に使われている技術「強化学習」も、シミュレーターを使うことで高速に分散学習を行うことができるようになります。

こうした利点から、シミュレーター関連技術はますます向上し、身近な物になっていくのではと考えています。

最後までお読み頂きありがとうございます。

PAGE TOP