共有アセットについての主要な概念
共有アセットとは
共有アセットは、トークンが処理フローの特定のポイントで要求またはリリースできる有限のリソースです。次の表に示すように、目的の異なる3種類の共有アセットがあります。
共有アセット | 説明 |
---|---|
リソース | 取得やリリースが可能な、供給に制限があるアセットを指します。商品、サービス、時間、材料、従業員などの供給をシミュレーションするために使用できます。 |
リスト | トークン、フローアイテム、タスク実行者、数値、文字列などをリストにプッシュまたはプルできます。これは、処理フロー内で、またはより動的なリソースとして、複数のトークンを同期するのに便利です。処理フローは処理フロー自体にローカルなリストを使用できます。または、シミュレーションモデルのグローバルリストに紐付けすることもできます。 |
ゾーン | 標準的なアクティビティでは利用できない統計情報を収集できます。また、特定の統計や他の基準に基づいて、処理フローのセクションへのアクセスを制限することもできます。 |
共有アセットは標準的なアクティビティによく似ていますが、いくつかの明確な違いがあります。
- トークンは、物理的に共有アセットに移動しません。その代わり、[リソースを取得]、[リストにプッシュ]、[ゾーンに入る]など、間接的に共有アクティビティとやり取りできるアクティビティを使用する必要があります。
- 共有アセットをスタックブロックに含めたり、その他のアクティビティにスナップしたりはできません。
- また、次の画像に示すように、共有アセットはアクティビティとは機能が少し違うことを示すために色も異なっています。
通常、共有アセットは、要求されたアセットが使用できない場合にトークンを待機させることでトークンに制約を課します。共有アセットを使用するための実践的なガイドについては、「処理フローチュートリアル1 - 共有アセットを使用する」を参照してください。
グローバルタイプとローカルタイプ
すべての共有アセットは、処理フロー内でグローバルまたはローカルに定義できます。一般的な処理フローの場合、共有アセットは常にグローバルに定義されます。共有アセットが[固定リソース]、[タスク実行者]、[サブフロー処理フロー]に含まれている場合、任意の時点で複数の処理フローインスタンスが存在する可能性があります。2つのタイプの動作は次のとおりです。
- グローバル - 共有アセットのタイプが[グローバル]に設定されている場合、処理フローのすべてのインスタンスのトークンは同じアセットを競合します。
- ローカル - 共有アセットのタイプが[ローカル]に設定されている場合、処理フローのインスタンスごとに異なるアセットが存在します。同じインスタンス内のトークンのみが同じアセットを競合します。
たとえば、リソースが[ローカル]として定義されていて、3Dモデルのオペレーターを参照し、処理フローのインスタンスが3つある場合、各インスタンスは異なるオペレーターに関連付けられます。つまり、3Dモデルにはインスタンスごとに3つのオペレーターが存在することになります。トークンがリソースを取得しようとした場合、取得できるのはそのインスタンスに関連付けられたオペレーターのみです。
リスト
リスト共有アセットでは、処理フロー内で内部リストを使用したり、3Dモデルに接続されているグローバルリストにアクセスしたりできます。リストを使用してフローを接続したり、他の種類のモデルロジックを作成する方法の概要については、「リストについての主要な概念」を参照してください。
処理フローでリストとやり取りするには、ライブラリから処理フローにリストをドラッグする必要があります。その後、リストのフィールドを設定するか、リストを既存のグローバルリストにリンクする必要があります。[リストにプッシュ]アクティビティと[リストからプル]アクティビティを使用して、リストにプッシュおよびプルします。
リソース
リソースは、シミュレーションモデルで供給に限りあるものを表します。たとえば、リソースを使用して、タスクを処理できる従業員を表すことができます。従業員全員がタスクの処理に忙しい場合、その処理が完了するまで従業員を追加タスクの処理に割り当てることはできません。
別の例として、リソースはビジネスシステムで使用できる一連の道具や備品を表すことができます。1人の従業員が道具または備品を使用している場合、その従業員が使い終わるまで別の従業員がそれらを使用することはできません。
処理フローでリソースとやり取りするには、ライブラリから処理フローにリソースをドラッグする必要があります。その後、必要に応じて、リソース数を決定して3Dモデル内でオブジェクトにリンクすることによって、リソースを設定します。[リソースを取得]アクティビティと[リソースをリリース]アクティビティを使用して、リソースを取得およびリリースします。リソースが取得されている場合、そのリソースがリリースされるまで別の処理フローアクティビティで取得することはできません。
ゾーン
次の2つの目的でゾーンを使用できます。
- 複数のアクティビティで統計を収集する
- その統計を使用してアクティビティへのアクセスを制限する
たとえば、セルフサービスのコピーセンターをシミュレーションしてみます。おそらく、コピーセンターにはカラーコピー機のグループと白黒コピー機のグループがあります。無制限にコピー機を所有することはできないため、同時に使用できるコピー機の数には明らかに制限があります。コピー機を使用する必要がある顧客全員が利用するのに十分なコピー機がコピーセンターにない場合、顧客は利用できるようになるまで並んで待つ必要があります。
処理フローでこの種類のロジックをシミュレーションするには、ゾーンを使用してコピー機へのアクセスを制限します。カラーコピー機用に1つのゾーンを作成し、白黒コピー機用に別のゾーンを作成します。そして、所定の時間に決まった数のトークン(顧客)だけをゾーンに入れます。
また、次のことに関するデータも収集します。
- 一定時間に使用されるカラーコピー機と白黒コピー機の平均数
- カラーコピー機または白黒コピー機を使用するために並んでいる顧客の平均待機時間
- 顧客がコピーを完了するまでにかかる平均時間
ゾーンでは、この種類の統計データも同様に収集できます。
統計を収集する
ゾーンを使用して、処理フローの領域の統計を収集できます。たとえば、次の画像に示す処理フローを作成したとします。
次の画像に示すように、処理フローの左側の部分に関する統計のみを知りたいとします。
具体的には、次の質問に対する回答が欲しいと想定します。
- 左側の最大コンテンツは何ですか。
- 左側の平均コンテンツは何ですか。
- トークンが左側を通過するのに平均してどれくらいの時間がかかりますか。
ゾーンを使用してこれらの質問に回答できます。上の画像に示された統計境界を作成するには、次の画像に示すように、ゾーンと一緒に[ゾーンに入る]アクティビティと[ゾーンから出る]アクティビティを追加します。
ゾーンでは、ゾーンを出入りするすべてのトークンの入力、出力、コンテンツ、滞在時間が自動的に記録されます。次の画像に、シミュレーション実行中の処理フローを示します。ゾーンには多くのアクティビティがあります。
次の画像に、ゾーンの統計ウィンドウを示します。最大コンテンツ、平均コンテンツ、平均滞在時間が強調表示されています。
アクセスを制限する
ゾーンを使用して、一連のアクティビティのアクセスを制限できます。たとえば、ゾーンが倉庫または輸送用コンテナを表し、トークンがアイテムを表すとします。ゾーンに入っているトークンは、ゾーン内でスペースを塞いだり、ゾーンに重みを加えたりします(または両方)。通常、スペースや重量には制限があります。ゾーンを使用して、これらの制限を施行できます。
ゾーンへのアクセスを制限する最も簡単な方法は、ゾーン内で許容するトークンの数を制限することです。前述の例を使用して、最大で7つのトークン(アイテム)をゾーンに入れることができるとします。次の画像に示すように、ゾーンにはこのルールを施行する[最大コンテンツを使用]オプションがあります。
次の図に、最大コンテンツを7に設定して実行中のスナップショットを示します。
現在、ゾーンに7つのトークンがあり、ゾーンへの入力許可を待っている[ゾーンに入る]アクティビティに3つのトークンがあることに注目してください。各トークンは、ゾーンに入る前にゾーンの空間が空くのを待つ必要があります。