タスク1.1 - 3Dモデルを構築する
タスクの概要
FlexSimの独自性の1つは、ビジネスモデルの3D描写を作成できることです。他のシミュレーションソフトウェアでも理論モデルを構築できますが、FlexSimを使用すると、わかりやすく使いやすく、より具体的な方法でビジネスシステムを表示できます。3Dモデリングの利点の詳細については、「3Dオブジェクトを使用する理由」を参照してください。
このチュートリアルタスクでは、FlexSimユーザーインターフェイス内の操作の基本について、3Dモデルを構築しながら学習します。次の画像に示すような3Dモデルインターフェイスの最も重要な要素を実践的に体験します。
ステップ1 3Dモデルにオブジェクトを追加する
3Dモデルを構築する第一歩は、シミュレーションするビジネスシステムの基本レイアウトの構築です。モデリングするカスタマーサービスセンターには、少なくとも1人のカスタマーサービス担当者がいるサービスデスクがあります。到着した顧客は、通常、従業員が対応できるまで窓の近くに並びます。このシミュレーションモデルでは、待機時間が長すぎる場合に途中で去る顧客もシミュレートします。
これらのさまざまな要素をすべてシミュレーションするためにオブジェクトを3Dモデルに追加します。オブジェクトは3Dシミュレーションモデルの基本的な構成要素です。異なるタイプのオブジェクトには、シミュレーションモデル内で異なる目的と機能があります。最も一般的なオブジェクトには次のようなものがあります。
- フローアイテム - 通常、あるステーション(一般的には固定リソース)から別の下流のステーションにシミュレーションモデルを移動(または「フロー」)するオブジェクト。このシミュレーションモデルでは、フローアイテムはカスタマーサービスセンターの顧客を表します。
- 固定リソース - 3Dモデル内で固定され、フローアイテムと相互に作用するオブジェクト。各固定リソースは特定の機能を実行します。このシミュレーションモデルでは、顧客と相互に作用するさまざまな固定リソースを使用します。
- タスク実行者 - 3Dモデル内を移動して、フローアイテムの輸送や機械の操作などのタスクを実行するオブジェクト。現時点では、シミュレーションモデルでタスク実行者は使用しません。チュートリアルの後半でタスク実行者を追加します。
より詳しい説明については、「3Dオブジェクトのタイプ」を参照してください。
このステップでは、シミュレーションモデルにいくつかの固定リソースを追加することから始めます。
オブジェクト | 説明 |
---|---|
ソース | ソースはフローアイテムを作成します。ソースを使用して顧客を作成することで、カスタマーサービスセンターに顧客が到着したことを表します。 |
キュー | キューはフローアイテムを、別のオブジェクトに送られるまでの間、保持します。キューはカスタマーサービスセンターの順番待ち列を表します。 |
プロセッサ | プロセッサはフローアイテムを処理します。これは通常、時間遅延としてシミュレートされます。プロセッサは顧客に対応する従業員を表します。 |
シンク | シンクはシミュレーションモデルからフローアイテムを削除します。シンクはカスタマーサービスセンターを去る顧客を表すために使用されます。このモデルでは、実際には2つのシンクを使用します。1つは満足したお客様を表し、もう1つは不満のあるお客様(途中で去る顧客)を表します。 |
3Dモデルレイアウトを構築するには:
- 新しいシミュレーションモデルを開始します。FlexSimの中央ペインにある3Dモデル領域を確認します。FlexSimの左ペインにあるライブラリも確認してください。
- 次のオブジェクトをライブラリから3Dモデルにドラッグします。
- 1つの[ソース]
- 1つの[キュー]
- 1つの[プロセッサ]
- 2つの[シンク]
- 必要に応じて、上の画像と同じような配置になるようにオブジェクトを移動します。
- [ソース]をクリックして選択します。右ペインがこのオブジェクトのプロパティの表示に変わります。[プロパティ]の見出しの下に、オブジェクトの名前が確認できるフィールドが表示されます。ここで、オブジェクト名を編集または入力できます。先に進んで、名前を「Source1」から「顧客の到着」に変更します。
- 上の手順を繰り返して、すべてのオブジェクトの名前を次のように変更します。
オブジェクト | 新しい名前 |
---|---|
キュー | 待機列 |
プロセッサ | Service Desk |
シンク (プロセッサのそば) |
Happy Customers |
シンク (キューのそば) |
Unhappy Customers |
作業が完了すると、3Dモデルは次の画像のようになります。
ステップ2 3Dオブジェクトを接続する
このステップでは、顧客が1つのオブジェクトから次のオブジェクトに適切な順番で移動するように3Dオブジェクトを接続します。つまり、アイテムをある固定リソースから別の固定リソースに流すロジックを作成します。FlexSimにはこれを行ういくつかの方法があります(詳細については、「3Dフローの接続」を参照してください)。このステップでは、ポート接続を使用してオブジェクトを接続する方法を学習します。なぜならこれが最も簡単かつ単純な方法であるためです。
FlexSimでは、ポートはフローアイテムをあるオブジェクトから別のオブジェクトに転送するオブジェクト上のポイントです。ポート接続は、2つの異なるオブジェクト上にあるポート間の接続です。ポートは相互に通信してフローアイテムを交換できるオブジェクト間の関係を作成します。詳細については、「ポートについての主要な概念」を参照してください。
このモデルでは、「Customers Arrive」ソースから[順番待ち列]へ、そして[サービスデスク]から[Happy Customers]シンクへの入出力ポート接続を作成します。他のオブジェクトはチュートリアルの後半で別のツールを使用して接続するため、現時点では切断されたままにしておきます。
これらのオブジェクト間のポート接続を作成するには:
- ツールバーの[オブジェクトを接続]ボタン をクリックして、メニューを開きます。[オブジェクトを接続]を選択して、接続モードに入ります。
- 接続モードになると、マウスポインターはチェーン記号が横に付いたプラス記号に変わります()。
- 接続モードになると、2つのオブジェクトを接続できます。[Customers Arrive]ソースオブジェクトをクリックします(マウスを動かすと、クリックしたオブジェクトとカーソルの間に黄色の線が表示されます)。
- [順番待ち列]キューオブジェクトをクリックして、2つのオブジェクト間のポート接続を作成します。
- これらの2つのオブジェクトを接続した後も接続モードは継続します。別のオブジェクトをキューに接続する場合は、接続モードを維持したままにします。今回はキューとオブジェクトの接続が完了したので、Escキーを押して接続モードを終了します。
- もう一度接続モードをオンにしますが、今回はショートカットを使用します。Aキーを押したまま、[サービスデスク]プロセッサをクリックし、[Happy Customers]シンクをクリックして別の接続を作成します。
- 接続モードを終了するには、Aキーを離します。
作業が完了すると、3Dモデルは次の画像のようになります。
ステップ3 初めてモデルを実行する
このステップでは、ここまでのモデルを実行して動作を確認します。現時点では単に初めてモデルを実行するだけですが、このチュートリアルの後半のステップでモデルをより詳細に実行する方法と理由について説明します。モデルを実行するには:
- メインツールバーのすぐ下にあるシミュレーションコントロールバーの[リセット]ボタン を押します。([リセット]を押すと、シミュレーションモデルがクリアされ、開始値に戻ります)
- [実行]ボタン を押してシミュレーションを開始し、[停止]ボタン を押してシミュレーションを停止します。
この時点で、ソース([Customers Arrive])がフローアイテム(この時点では箱のように見えます)を作成し、それらを[Waiting Line]に配置するのが確認できます。これらのフローアイテムを移動するロジックを作成していないため、シミュレーションを停止するまでキュー内にフローアイテムが積み上げられていきます。
ステップ4 顧客を追跡するためのリストを作成する
前のステップでは、ポート接続を使用してオブジェクトのフローを接続する方法を学習しました。このステップでは、「グローバルリスト」と呼ばれるツールを使用して、固定リソース間のより複雑なフローを作成する方法を学習します。
このモデルでは、フローアイテムは顧客を表します。順番待ち列に入った顧客は、待機中の顧客のリストに追加されて待ち時間を追跡されます。サービスデスクは待ち時間が最長の顧客に対応します。ただし、200秒以上待った顧客は不満を抱き、[Unhappy Customers]シンクを通じて去っていきます。この機能を作成するには、高度な条件セットを使用してフローアイテムをフィルタリングして優先順位を付けるグローバルリストを使用します(詳細については、「リストについての主要な概念」を参照してください)。
このステップでは、フローアイテムリストを設定し、「WaitingCustomers」という名前を付けます。このリストは、FlexSimのほぼすべてのツールにアクセスできる[ツールボックス]を使用して作成します(詳細については、「ツールボックスを使用する」を参照してください)。
リストを作成するときは、まずフィールドを設定する必要があります。フィールドはリストが追跡する情報を決定します。デフォルトでは、アイテムリストには4つのデフォルトフィールドがあり、それぞれが事前にプログラムされたロジックを備えています。これらのフィールドはフローアイテムリストにどのようなフィールドが必要かを示唆するものに過ぎません。これらのフィールドを削除するか、必要に応じて他のプログラム済みフィールドまたはカスタムフィールドを追加できます。
デフォルトのフィールドの1つは[age]フィールドです。これは、フローアイテムがソースによって作成されてから経過した時間を追跡します。このフィールドはおそらくこのリストの論理的なニーズには役立ちますが、より正確にするために[ageInQueue]フィールドを追加します。[ageInQueue]フィールドは、アイテムがリストに滞在する時間の長さを追跡します。つまり、顧客が順番待ち列に入ってから経過した時間を追跡します。このステップでこのフィールドを追加します。
グローバルリストを作成するには:
- 左ペインでライブラリがある場所を確認します。このペインの上部には、[ツールボックス]というタブがあります。このタブをクリックして[ツールボックス]を開きます。
- [ツールボックス]で[追加]ボタン をクリックして、メニューを開きます。[グローバルリスト]をポイントし、[アイテムリスト]を選択します。新しいリストのプロパティウィンドウが自動で開きます。
- 一番上のボックスで、リストの名前を「WaitingCustomers」に変更します。
- [フィールド]タブを開いた状態で[追加]ボタン をクリックして、メニューを開きます。[ageInQueue]を選択します。新しいフィールドがフィールドの下部に表示されます。
- その他のフィールドの横にある[削除]ボタン を押してこれらの不要なフィールドを削除します。
- [ageInQueue]フィールドの名前をよりわかりやすいものに変更します。[式フィールド]ボックスをクリックして現在のテキストを削除し、名前を「WaitTime」に変更します。
- [バックオーダー]タブで[プッシュですべての値を再評価]チェックボックスをオンにします。
- [OK]ボタンを押して変更を保存します。
新しい[WaitingCustomers]リストが[ツールボックス]の[グローバルリスト]グループの下に表示されます。
ステップ5 モデルのロジックを編集する
このステップでは、3Dオブジェクトのプロパティを編集して、シミュレーションモデルの基本ロジックを作成します。編集するオブジェクトとこれらの変更を行う理由の説明を次に示します。
オブジェクト | 説明 |
---|---|
Customers Arrive(ソース) | ほとんどの3Dモデルは、3Dモデル内を移動してオブジェクトと相互に作用するフローアイテムを作成するソースオブジェクトで始まります。このモデルでは、フローアイテムはカスタマーサービスセンターに来る顧客を表します。 ソースは顧客が到着する頻度を決定します。このモデルでは、顧客が約1分ごとに到着するように顧客の到着率を変更します。指数分布と呼ばれる統計分布を使用して、平均が約60秒となる時間の範囲内で到着率をランダムに計算します。 デフォルトでは、ソースは箱のように見えるフローアイテムを作成します。このモデルのフローアイテムは顧客を表しているため、フローアイテムのクラスを変更して人物に見えるようにします。 |
順番待ち列(キュー) | 顧客(フローアイテム)が順番待ち列に入るとすぐに[WaitingCustomers]リストに追加されるようにこのオブジェクトを設定します。 また、キュー内に積み上げられるのではなく、顧客が列を形成するようにキューを変更します。 |
サービスデスク(プロセッサ) | このオブジェクトは従業員が顧客の対応にかける時間を表します。そのため、次の顧客に対応する準備ができたときに先頭の顧客を[WaitingCustomers]リストからプルするようにこのオブジェクトを設定します。 また、従業員が顧客の対応にかける時間を設定します。[対数正規2]の統計分布を使用して、顧客の対応時間が約92秒となるようにします。 |
Unhappy Customers(シンク) | シンクはモデルからフローアイテムを削除します。[WaitingCustomers]リストで200秒を超えて待機している顧客を検索するようにこのシンクを設定します。この基準を満たす顧客をプルしてモデルから削除することで、顧客が不満を抱いて去ることを表します。 |
Happy Customers(シンク) | このオブジェクトはデフォルト設定を使用するため、変更は加えません。 |
このロジックを3Dオブジェクトに追加するには:
- [顧客の到着]ソースをクリックして、右側でそのプロパティを開きます。
- [ソース]セクションで、[FlowItemクラス]メニューをクリックし、[男性]を選択します。
- モデルの実行開始と同時に顧客が到着するように[時刻0に到達]のチェックボックスをオンにします。
- [到着時間間隔]はすでに指数統計分布を使用するように設定されており、顧客は平均約10秒のペースでランダムに到着します。[プロパティを編集]ボタン をクリックして、分布セレクターを開き、この分布のプロパティを編集します。[スケール]ボックスで、数値を「
60
」に変更します。 - [待機中の列]キューをクリックして、右側でそのプロパティを開きます。
- [キュー]セクションで、[アイテムの配置]メニューをクリックして、[水平線]を選択します。
- [出力]セクションで、[ポートに送信]ボックスの横にある矢印をクリックして、メニューを開きます。[リストを使用]をポイントし、[アイテムリストにプッシュ]を選択します。適切なアイテムリストを選択するためのボックスが表示されます。[WaitingCustomers]リストが選択されていることを確認します。
- [サービスデスク]プロセッサをクリックして、右側でそのプロパティを開きます。
- [プロセッサ]セクションで、[アイテムをアニメーション化]チェックボックスをオフにします。
- [処理時間]ボックスの横にある矢印をクリックして、メニューを開きます。[統計分布]をポイントし、[対数正規2]を選択して分布セレクターを開きます。
- 分布セレクターで、次のパラメータを設定します。
- 場所:
90
- スケール:
3.1
- 形状:
0.5
- 場所:
- [入力]セクションで、[プル]チェックボックスをオンにします。
- [プル方法]ボックスの横にある矢印をクリックして、メニューを開きます。[リストを使用]をポイントし、[アイテムリストからプル]を選択します。
- [WaitingCustomers]リストが選択されていることを確認します。[クエリ]ボックスの横にある[追加]ボタン をクリックして、メニューを開きます。[ORDER BY (Sort)]をポイントし、[WaitTime]を選択します。
- クエリを編集して[ASC](昇順)から[DESC](降順)に変更します。これは一番長く待機している顧客をプルするためです。
- [Unhappy Customers]シンクをクリックして、右側でそのプロパティを開きます。
- [入力]セクションで、[プル]チェックボックスをオンにします。
- [プル方法]ボックスの横にある矢印をクリックして、メニューを開きます。[リストを使用]をポイントし、[アイテムリストからプル]を選択します。
- [WaitingCustomers]リストが選択されていることを確認します。[クエリ]ボックスの横にある[追加]ボタン をクリックして、メニューを開きます。[WHERE]をポイントし、[WaitTime]を選択します。
- クエリを編集して、「
> 200
」に変更します。
3Dオブジェクトのプロパティの編集が完了したのでモデルを保存します。
ステップ6 シミュレーションモデルを実行してテストする
このステップでは、シミュレーションモデルを再度実行します。シミュレーションモデルの実行は、シミュレーションモデル構築プロセスの重要なステップです。これは、モデル構築の初期段階においてモデルをテストしてトラブルシューティングすることで、モデルを正しく構築するのに役立ちます。詳細については、「シミュレーションモデルを実行する」を参照してください。
モデルを実行するには、シミュレーションコントロールバーの[リセット]ボタン を押します。[実行]ボタン を押してシミュレーションを開始し、[停止]ボタン を押してシミュレーションを停止します。
初めてモデルを実行するときは、顧客がただちにサービスデスクに現れます。次第により多くの顧客が出現し、[順番待ち列]キューに列を形成します。
シミュレーションモデルが同じように動作しない場合、またはエラーメッセージが表示される場合は、前の手順をすべて正しく実行したことを再度確認してください。
また、現時点ではおそらく3Dビジュアルがやや奇妙で不自然に見えます。モデル構築の初期段階では、現実的に見せることよりも基本モデルを構築して正しく動作させることを優先します。この後のチュートリアルタスクで3Dモデルのビジュアルをより自然に見せるように改善する方法を学習します。
チュートリアルの次のステップで作業するときには、シミュレーションモデルをデフォルトの速度よりも高速で実行することをおすすめします。また、モデルから代表的なデータを得るためにシミュレーションモデルを1日フル稼働させることも役立ちます。カスタマーサービスセンターは通常12時間稼働することから、シミュレーションを43,200秒(12時間に相当)実行するように設定します。
シミュレーション実行の速度と停止時間を変更するには:
- シミュレーションコントロールバーの[実行時間]ボックスの横にある矢印をクリックしてメニューを開きます。
- 1つ目の[停止時間]チェックボックスをオンにして、その下のボックスに「43200」と入力します。
- シミュレーションコントロールバーの[実行速度]ボックスの横にある矢印をクリックします。
- [カスタム]ボックスに「1000」と入力して[設定]ボタンをクリックします。
再度モデルを実行して、これがシミュレーションにどのように影響するかを確認してください。
結論
次のチュートリアルタスクでは、FlexSimのさまざまなツールを使用してシミュレーションモデルからデータを取得する方法を学習します。「チュートリアルタスク1.2 - 3Dモデルからデータを取得する」に進んでください。