Simio とは
Simioの概要
Simioはモデリングを簡潔にするためのオブジェクト指向のグラフィカルなアプローチを採用したシミュレーションソフトウェアです。
Simioは比較的新しく開発されたソフトウェアですが、従来のいくつかのパッケージの開発に携わり、豊富な経験を培ってきたメンバーによって開発され、現在ではパフォーマンスを予測したり変更に対する影響を理解したりするために、幅広く用いられるシミュレーションモデリングのツールとなりました。これは、生産・物流・輸送・ビジネスプロセス・通信などの多様なシステムに応用され、多大な成果を収めています。
大学では、米国内でおよそ600、世界では800の大学*(2022年4月現在)で教育・研究に活用されており、企業・政府機関や教育機関でも最も広く活用されているシミュレーションソフトウェアのひとつとなっています。(*テキスト採用大学の詳細はSimio LLCのホームページにて紹介されています https://www.simio.com/academics/simio-academic-program-participating-institutions.php)
オブジェクト指向型シミュレーションのソフトウェア
Simio は SIMAN および Arena と同じ主要チームにより開発されているため、これまで培われた豊富な経験が生かされています。知的オブジェクトを中心に据え、オブジェクトの構築および利用方法に画期的な変化をもたらし、新しいオブジェクト指向のパラダイムを提供しています。Simio オブジェクトは、プログラミングを必要としない、簡単でグラフィカルなプロセスフローを用いて作成されます。これにより、より簡潔に、独自のモデリングオブジェクトや目的に特化したライブラリを構築することができます。また、Simio の柔軟性とリアルタイムデータとの広範な統合は、インダストリー4.0 に必要なデジタルツインの作成に適しています。
Simioのオブジェクトアプローチ
Simioはモデリングにオブジェクトアプローチを採用しており、モデルはシステムの物理的な構成要素を表すオブジェクトを組み合わせて構築されます。オブジェクトは自己完結型のモデリング要素であり、その要素の特性、データ、ふるまい、ユーザインタフェース、アニメーションを定義します。オブジェクトは、モデル構築に使用されるもっとも一般的な構成要素です。Standard Library(Simioに標準で備わっている汎用オブジェクトのセット)を用いてモデルを作成した際に、すでにオブジェクトを利用しています。
オブジェクトは、システム内のイベントに応答する独自のふるまいを保有し、それはオブジェクトの内部モデルによって定義されます。たとえば、生産ラインのモデルは、機械、コンベヤ、フォークリフト、通路などを表すオブジェクトを設置することにより構築されます。他方、病院のモデルは、医療従事者、病室、病床、治療機器、手術室などを表すオブジェクトを用いてモデル化されます。Standard Object Libraryのオブジェクトを用いてモデルを構築することに加え、特定の応用分野向けにカスタマイズした独自のオブジェクトライブラリを作ることもできます。また、Standard Libraryにあるオブジェクトのふるまいは、プロセスロジックを用いることにより、変更したり、拡張したりすることができます。
オブジェクト定義は、オブジェクトの見た目やふるまい、そして他オブジェクトとの相互作用を定義するものです。それは、プロパティ、状態変数、イベント、外観、ロジックから構成されます。オブジェクトインスタンスは、モデルにオブジェクトをドラッグ(つまりインスタンス化)する際に作成されます。オブジェクトのインスタンスには、プロパティ値が含まれており、1つ以上のシンボルが定義される場合もあります。オブジェクト実行空間(あるいはオブジェクトの実現とも呼ばれる)は、オブジェクトの状態変数について現在値を保持するオブジェクトの第3層です。それぞれが固有のIDを持っており、可変のシンボルを参照することもできます。
エンティティ(Entity)オブジェクトの3つの層を、下図に示します。1つのエンティティ定義(図中では人)があるとします。エンティティのインスタンス(図中では、大人(Adult)と子供(Child))がモデルに配置されます。そして、モデルが実行されると、多くの大人と子供の実行空間が作成され、各々は動的なエンティティの状態変数を保持します。
エンティティオブジェクトの3つの層
Simioチュートリアル
本サイトでは米国Simio LLC社によって刊行されましたSimioの日本語テキスト、『Simioとシミュレーション -モデリング・解析・応用-』【第6版】とセミナー教材のサンプルを用いてSimioの基礎的なモデルを構築するチュートリアルをご体験いただけます。このチュートリアルを通して、上記の概念の理解を深めることもできます。
下記リンクよりご体験いただけますので、是非ご一覧ください。
Simioシミュレーションソフトウェアの特長
複雑で大規模なシステムのモデリング
Simioは、大規模システムを含むシステムを対象として、動的シミュレーションに関するロジックやデータ構造、その他、広範なのニーズに対応したシミュレーションシステムです。具体的な応用事例としては空港や病院などにおける人流・物流のシミュレーションから広範囲におけるロジスティクス、サプライチェーンのシミュレーション、大規模工場や大規模マテリアルハンドリングシステムのシミュレーションまで非常に多岐にわたります。本ページではワクチン接種会場と通学バスのシミュレーション例を動画で紹介いたします。
通学バスのシミュレーションモデル
ワクチン接種会場のシミュレーションモデル
プログラミング不要の柔軟性の高いモデリング
Simioオブジェクトは、プログラミングを必要としない、簡潔でグラフィカルなプロセスフローを用いて構築されます。Simioではオブジェクト化された各コンテンツを操作・配置し、各パラメータを調整することによりシミュレーションモデルを作成することができます。これにはコードを書くといった具体的なプログラミングは不要です。
単一サーバ待ち行列システムのモデル
複雑なモデリングのためのProcessesによるモデリング
Simio Processesを用いることにより、例えば取得する統計量を増やしたり、再利用回数の設定といったようにオブジェクトの機能を拡張したり、オブジェクトのみでの表現が難しい詳細なモデリングを行うことが可能です。また、この機能を用いることにより、より早く実行が終わるようにすることなどもできます。この設定にもプロセス内で用いられるモジュールを使用するため、コーディングなどを行う必要はございません。図は上記の単一サーバーのモデルをProcessに分解したものになっております。これらの各モジュールをオブジェクトとしてまとめることでより直感的にモデルを構築することが可能になっています。
単一サーバ待ち行列システムのモデルのProcesses
3Dのオブジェクト指向モデリング
Simioでは、Standardライブラリのオブジェクトを用いてモデルを構築すると同時に、アニメーションも自動的に構築されます。モデル構築中、通常は2D (2次元)ビューが利用されますが、同時に3Dのアニメーションも自動的に作成されます。3Dのアニメーションはレンダリングなどを通すことなく、キーボードの2あるいは3のキーを押して2Dと3Dのビューモードを切り替えることで簡単に確認することができます。3Dモードではマウスボタンによる操作で3Dビューの移動・ズーム・回転など、様々な角度からアニメーションの確認やブラッシュアップができます。
単一サーバ待ち行列システムのモデルの3Dビュー
「インテリジェント」オブジェクトによるモデリング
Simioはインテリジェントオブジェクトを用いるというコンセプトに基づいており、オブジェクトの知能は決定ロジックを使って作成されます。この機能をエンティティオブジェクト(つまり、エージェント)に適用すると、エージェントベースモデリング(ABM)の基礎が形成されます。エージェントがシステムおよびお互いにインテリジェントに相互作用するようにすることで、システム自体に期待される振る舞いに関してハードコーディングすることを避けることができます。システムの挙動は、自律的な知的オブジェクト(スタジアムの人々、マーケットの企業、あるいは伝染病の感染者など)の相互作用から生まれることになります。
オブジェクトの解剖図
シミュレーション実行後の統計量の図式表示(Simio MORE(SMORE)プロット)
SMOREプロットは、出力パフォーマンス尺度(応答)サマリのための実行結果のグラフ表示です。応答(レスポンス)には、複数の反復実行後で、平均システム内時間、待ち行列の最大数、またはリソース稼働率など様々な統計量が存在します。デフォルト設定における四角のプロットに加えて、最小と最大の観測値、標本平均、標本中央、そして「下限」と「上限」のパーセント値を表示します。特に、シナリオ間のパフォーマンス評価に有効です。
5つのシナリオに関するSMOREプロット
Optquestによるシミュレーション最適化
シミュレーションは、基本的に“What if?”分析ツールです。OptQuestはアドインすることで、利用することができます。目標関数がシミュレーションから得られる出力レスポンスであり、かつ確率的であるため、たとえ数理計画的手法(線形計画法や非線形計画法、整数計画法など)では実際に解くこと困難な問題であっても、最適化問題としてこれらの条件を定式化することにより、意思決定の支援に役に立てることができます。
OptQuest実行の結果(抜粋)
シミュレーションによる計画とスケジューリング
Simioシミュレーションシステムには、動的シミュレーションを実施する機能を追加することができます。ガントチャートは、リソース(工程)別ならびにエンティティ(注文別ワーク)別の2種類の表示があります。リスクに基づく計画とスケジューリングへの応用のために、特別に設計された機能を備えています。この機能によって、シミュレーションの結果から工程に関する検討を容易に行うことが可能になります。なお、この機能を備えたSimio RPS Editionは、Simioの拡張版です。
オーダーの遅延に関する制約条件の検討
AI・ニューラルネットワークを用いたシミュレーション、データ駆動型・データ生成モデリング
Simioデジタルツインは、現実のシステムのバーチャルなレプリカを提供します。大量のトレーニングデータを生成することにより、デジタルツインのシミュレーションを実行します。シミュレーションモデルから生成された大量のデータについて、整理編集プロセスを加えずAIのトレーニングデータとして活用できます。Simioの埋め込みニューラルネットワークトレーナーから複雑な意思決定ロジックを表現することができます。SimioはAI実験やAIモデルの有効性をバーチャル上で試すプラットフォーム(AI gym)として利用可能です。
SimioとAIシミュレーション
離散型イベントシミュレーション、連続型シミュレーション
離散型シミュレーションでは、状態変数は離散的な時点でのみ変化することができます。連続型シミュレーションでは、状態変数は時間に対して連続的に変化します。Simioではどちらのタイプのシミュレーションも行うことが可能で、より現実に即したシミュレーションを行うことができます。
連続型シミュレーションの例
必要要件
OS : Windows 10 以降
最小要件 | 推奨要件 | 大規模プロジェクト向け要件 | |
CPU | Pentium class 以上 | Core i7 以上 | Core i7 以上 |
OS | 32 bit | 64 bit | 64 bit |
RAM | 4GB | 16GB 以上 | 32GB 以上 |
HDD空き容量 | 1.6GB 以上 | 1.6GB以上 | 1TB |
GPU | 128MB以上のDirectX 11搭載モデル | 128MB以上のDirectX 11搭載モデル | 1GB以上のDirectX 11搭載モデル |
モニター | Full HD | Full HD以上 | Full HD以上 |
Macの場合、Windows用アプリケーションインストール用の設定が別途必要になります。Simio社が提供している下記の資料を参考にご設定ください。
ダウンロードページのご案内
Simio Parsonal Edition(試用版)を下記ページから無料でダウンロードしてご使用いただけます。なお、試用版には使用用途やプロジェクトのサイズに制限がございますので、Simio社ホームページで詳細をご確認の上、ご使用ください。
また、インストールの手順は以下をご参考に進めてください。