AnyLogic
AnyLogicはThe AnyLogic Companyによって開発されたマルチメソッドシミュレーションモデリングツールである。
1990年代の初頭は、並列プロセスのモデリングおよびシミュレーションに関する数学的なアプローチに大きな興味がもたれていた。このアプローチは、並列で作成されたプログラムの正確さの解析に適用された。サンクトペテルブルクテクニカル大学 (Saint Petersburg Technical University) の分散コンピュータネットワーク (DCN) 研究グループは、プログラムの正確さの解析にソフトウェアシステムを開発した。
新しいツールはCOVERS (Concurrent Verification and Simulation) と命名された。このシステムは、システム構造と挙動 (behavior) 向けのグラフィカルなモデリング表記を可能にした。このツールはヒューレット・パッカードに依頼された研究のために使用された。
1998年には、この研究の成功が、DCN研究室が新しい時代のシミュレーションソフトウェアを開発するミッションを持つ会社を設立することを促した。開発で力点が置かれた方法論は、シミュレーション、機能解析、確率系の挙動、最適化およびビジュアル化。2000年にリリースされた新しいソフトウェアは、最新の情報技術に基づいたオブジェクト指向のアプローチ、UML規格採用、Javaの採用、最新のGUI環境など。
それが3つのよく知られたモデル化アプローチをすべてサポートしたので、ツールはAnyLogicと命名された:
+ AnyLogicは一つのモデルの内で、これらのアプローチを組合せてモデリングできる。
最初のAnyLogicバージョンはAnyLogic 4であった。これはCOVERS 3.0の後継として番号を継承したためである。
2003年にAnyLogic 5がリリースされた時、大きな一歩踏み出しました。それは次の領域のビジネス・シミュレーションにフォーカスした:
市場と競争,
ヘルスケア,
製造,
サプライチェーン,
ロジスティクス,
小売,
ビジネスプロセス,
社会 と エコシステム ダイナミックス
最新のメジャーバージョンのAnyLogic7は2014年にリリースされた。AnyLogic 7モデル開発環境用のプラットフォームはEclipseです。AnyLogic 7 はクロスプラットフォーム シミュレーションソフトウェアのため Windows, Mac OS さらにLinuxシステム上で動作する。
AnyLogicはグラフィカルなモデル化言語を含んでおり、ユーザがJavaコードでシミュレーションモデルを拡張することを可能にする。AnyLogicはJavaのコーディングによりカスタム・モデル拡張に適しているとともに、シミュレーション結果を、いかなる標準ブラウザでも開くことができるJavaアプレットを簡単に自動生成することが可能である。これらのアプレットはAnyLogicモデルをウェブサイト上に配置し、共有することができる。Javaアプレットに加えて、プロフェショナルのバージョンは、ユーザに配布することができるJavaランタイム・アプリケーションの生成を可能にする。この純粋なJavaアプリケーションは意思決定サポート・ツールのベースとなりえる。.
AnyLogicモデルは主なシミュレーションモデリングに対応することができる:ディスクリートイベント、またはプロセスセントリック (DE)。システムダイナミックス (SD)、及びエージェントベース(AB)。
システムダイナミックスとディスクリートイベントは伝統的なシミュレーションアプローチであり、エージェントベースは新しい方法論である。通常、連続工程を有する場合はシステムダイナミックスアプローチであり、ディスクリートイベントは、プロセス中心のシミュレーションアプローチとして知られているGPSSの子孫であることを意味する。また、エージェントベースモデルは、通常は離散時間型で、あるイベントから別のイベントにジャンプして動作する。
システムダイナミックスおよびディスクリートイベントシミュレーションは、大学では、マネジメント、経済あるいは産業とオペレーション研究等の非常に分野の異なるグループに分かれて歴史上教えられてきた。その結果、互いにグループには別個の二つの従事者コミュニティーが存在する。
最近までエージェントベースモデリングは主として純粋に学術的なトピックであった。しかし、グローバル企業の業務最適化要求の増にともない、複数のアプローチを注視するモデル作成者は、非常に異なる性質の複雑な相互依存のプロセスに対するより深い洞察力を獲得する必要が生じた。
モデル化するアプローチは、どのように抽象化レベルに一致するか。システムダイナミックスは、最も高い抽象化レベルに明らかに使用される。ディスクリートイベントモデリングは、低から中の抽象化に使用される。エージェントベースモデリングに関しては、この技術がすべての抽象化レベルを通して使用される。また、エージェントは、多様な自然および規模のオブジェクトをモデル化できる:
物理的レベルエージェント、例えば歩行者、自動車。中レベル-顧客。最高レベル-競合会社.
AnyLogicは、モデル製作者が同じモデル内で、これらの異なるシミュレーションアプローチを組み合わせることを可能にする。固定された階層はない。例として、宅配便のモデルをあげると、ここで宅配便業者は独立して行動し、エージェントとしてモデル化される。そして、ディスクリートイベントシミュレーションでそれらの輸送とインフラストラクチャーのネットワークの内部の作用をモデル化する。同様に、その集合の振る舞いが収入またはコストのような流れをキャプチャーするモデルを、システムダイナミックスに与えるエージェントとして消費者をモデル化することができる。妥協して、1つの任意のアプローチによってモデル化されるかもしれない複雑なモデルでも、AnyLogicの複合アプローチは、種々様々の複雑なモデル化問題に直接適用可能である。
AnyLogicシミュレーション言語は下記アイテムで構成されている::
ストック&フローチャート (Stock & Flow Diagrams ) はシステムダイナミックスモデリングに使用される。
ステートチャート(Statecharts)は、エージェントの振る舞いを定義するために、主にエージェントベースモデリングで使用される。さらに、それらは、例えば、機械故障をシミュレートするためにディスクリートイベントモデリングでもしばしば使用される。
アクションチャート (Action charts ) はアルゴリズムを定義するために使用される。それらはディスクリートイベントモデリングで使用されることもある。例えば、電話のルーティングや、あるいはエージェントベースモデリングでは、エージェントの判定ロジック等である。
プロセスのフローチャート (Process flowcharts ) はディスクリートイベントモデリングにプロセスを定義するために使用される基礎的な構造である。このフローチャートを見て、なぜディスクリートイベントスタイルがしばしばプロセス中心 (Process Centric) と呼ばれるか分かるかもしれない。言語はさらに次のものを含んでいる:
低レベルモデル構造(変数、方程式、パラメーター、イベント等)、プレゼンテーションシェープ(直線、polylines、楕円形等)、分析機能(データセット、ヒストグラム、プロット)、接続ツール、各種イメージ、エクスペリメンツ・フレームワーク他。
AnyLogicは下記標準ライブラリを含んでいる::
エンタープライズライブラリ (Process Modeling Library) は、生産、サプライチェーン、ロジスティックス及びヘルスケアの分野でディスクリートイベント (DE) シミュレーションを支援するように設計されている。エンタープライズライブラリの使用により、実際の世界システムを要素(entities:処理、顧客、製品、部品、乗り物等)、プロセス(典型的にはキュー、遅れ、リソース活用に関するオペレーションのシーケンス)および資源の点でモデル化することができる。そのプロセスは、フローチャートの形で指定される。
歩行者ライブラリ(The Pedestrian Library)は物理的な環境で歩行者の移動(フロー)をシミュレートするために使用される。それは、あなたが集中的な徒歩者の流れがある建物(地下鉄駅、空港のセキュリティ・チェック等)や、多くの人通りがある通りの歩行者の流れをモデル化することを可能にする。モデルは、異なるエリアで歩行者密度の統計収集をサポートする。これは、ある地点の仮説負荷(通行量)、特定のエリアの滞在時間を推測し、潜在的な問題の検出を保証する。また、歩行者ライブラリーで作成されたモデルでは、歩行者は、他の歩行者と同様に異なる種類の障害物(壁, 異なるエリア)に反応して、連続的なスペースを移動する。歩行者は複雑な振る舞いを持った対話するエージェントとしてシミュレートされる。AnyLogic歩行者ライブラリは、フローチャートにおいて歩行者モデルの速い生成により、高いレベルのインターフェースを供給する。
レールライブラリ(The Rail Library)は、任意の複雑さおよび規模の車両基地のオペレーションをモデル化し、シミュレートし、視覚化することを支援する。車両基地モデルはディスクリートイベントまたはエージェントベースのモデルと結合することができる:荷物の積み下ろし、資源配分、メンテナンス、ビジネスプロセスおよび他の輸送活動。
これらの標準ライブラリに、ユーザは自分のライブラリを作り、それらを利用(分配)することができる。