AnyLogic 8.8.4: 遺伝的最適化と歩行者用エレベーター

AnyLogic 8.8.4 がダウンロードできるようになりました。新しいリリースには、組み込みの遺伝的最適化と歩行者ライブラリのエレベーターという 2 つの重要な機能があります。AnyLogic 8.8.4 でリリースされたすべての改善点とアップデートの詳細については、AnyLogic ヘルプのリリース ノートを確認してください。

遺伝的最適化(Genetic optimization)

AnyLogic 8.8.4 以降、ユーザーは、OptQuest と組み込みの遺伝的最適化エンジンの 2 種類の最適化エンジンから選択できるようになりました。これらの違いは何でしょうか?

オプション無しのAnyLogicでも、OptQuest ベースの最適化は AnyLogic に含まれていますが、使用できる変数は 7 つまで、反復は 500 回までという一定の制限があります。大規模な最適化タスクの場合は、有料オプションを選択して制限を回避できます。新しい遺伝的最適化アルゴリズム オプションも AnyLogic に同梱されていますが、プロジェクトの規模に関係なく、制限や追加料金はありません。

さらに、OptQuest ベースの最適化実験をスタンドアロン アプリケーションとしてエクスポートするには、AnyLogic Professional ユーザーが利用できる別の有料オプションが必要ですが、遺伝的最適化エンジンの場合は無料です。

実験用のエンジンを選択するには、OptimizationおよびCalibration Experimentsの [Optimization engine] プロパティに移動します。

Optimization Experiment properties in AnyLogic
Optimization Experimentプロパティで最適化エンジンを選択します

遺伝的最適化(genetic optimization)オプションを選択すると、最適値が見つかると実験が自動的に停止することにご注意ください。そのため、ここではAutomatic stopプロパティがありません。

Custom Experimentで遺伝的最適化をどのように使用できるかを調べるには、AnyLogic Example Modelsライブラリ(Welcome screenHow-To ModelsExperimentsOptimization in Custom Experiment) で対応するモデルを見つけるか、AnyLogic Cloud のOptimization in Custom Experiment サンプル モデルからソース ファイルをダウンロードします。

歩行者用エレベーター

長年にわたり、ユーザーはエレベーターをモデリングするため、さまざまな方法を試してきましたが、今後は、AnyLogic の基本エレメントとして歩行者用エレベーターを使用できます。

エレベーターの機能は、Elevator マークアップエレメントと PedElevator ブロックによって表されます。このブロックは、エレベーターを使用する歩行者の行動を記述します。どちらのエレメントも、AnyLogic の歩行者ライブラリパレットにあります。

ブロックによって表されます。このブロックは、エレベーターを使用する歩行者の行動を記述します。どちらのエレメントも、AnyLogic の歩行者ライブラリパレットにあります。
AnyLogic のPedestrian Libraryパレットの Elevator マークアップエレメントとPedElevator ブロック

Elevatorマークアップエレメント – エレベーターの動作を設定します

速度、容量、ドアの構成など、実際の物理的なエレベーターのすべての特性は、Elevator マークアップエレメントで設定できます。このエレメントは、フロア間を移動できるエレベーター キャビンを表します。したがって、同じエージェント内にあるすべてのフロア (モデル内のレベルで表される) をバインドするために必要なElevator オブジェクトは 1 つだけです (通常、これはMain エージェントです)。

特定の階の間だけを移動するためにエレベーターが必要な場合があります。それは、超高層ビルのエレベーターや地下駐車場にあるエレベーターなどです。このためには、[Stops at selected levels] オプションを選択して、必要なフロアのみを接続します。

エレベーターがドアを開けた状態でフロアに滞在する最小時間を設定することもできます(Minimum stay time プロパティ) 。エレベーターの乗客がエレベーターに出入りし続けた場合、最後の乗客の移動が完了するまで自動的に最低滞在時間が延長されます。

AnyLogic のエレベーター設定
AnyLogic のエレベーター設定

PedElevatorブロック – 歩行者の動作を設定します

マークアップエレメントに加えて、PedElevatorElevator プロパティで指定されたエレベーターに移動し、到着を待ち、エレベーターに乗り、Target level プロパティで指定された階で降りる方法を記述する歩行者ロジックが含まれています。歩行者がエレベーターを待つのをやめて別のプロセスにリダイレクトできるようになるまでのタイムアウトもこのブロックで設定できます。

 AnyLogic のPedElevator 設定
AnyLogic のPedElevator 設定

組み込みロジックは、以下からの呼び出しを自動的に収集します:

  • フロアで待機している歩行者(現在のフロアと目標方向の情報を利用)
  • すでにエレベーターに乗車済みの乗客(必要階の情報を利用します。)

これらの情報を考慮して、エレベーターはまず、行先が同方向のすべて乗客のターゲット レベル(目標階)にサービスを提供します。この動作は AnyLogic によって自動的に実行されます。

ただし、elevator.setManualMode(true) API 関数を使用してエレベーターを手動モードに切り替え、elevator.moveTo(level)elevator.pickUpPeds()、およびelevator.dropOffPeds() メソッドで制御することにより、独自のエレベーター アルゴリズムを作成することもできます。

このようなアプローチは、緊急時に最も近い階への自動移動など、通常のエレベーター動作の中断をシミュレートするためにも使用できます。

新しいエレベーターの機能について詳しく学び、手動モードを試し、ハウツー モデルを利用してエレベーター関連の情報を探索することができます。


最新情報を見逃さないように、ブログの確認と、毎月のニュースレターの購読 をおすすめします。

関連記事