時間帯別人員配置最適化の方法の解説

assimeeを使ったプロセス最適化についてより深く理解するため、この記事をご覧いただく前に以下の記事を先にご覧いただくことをことをお勧めします。

また、時間帯別人員計画最適化の方法の解説は今回の記事と直接的なつながりがあるので、先にご覧ください。

ー概要ー

今回の記事では前回の時間帯別人員計画最適化に引き続き、assimeeを使って時間帯別に人員の上限に制限を掛けて各時間帯に最適な人員の割り振りを行う方法について解説します。assimeeでの時間帯別人員配置最適化とは、シミュレーション時間を60分単位に区切り、それぞれの時間帯別に人数の上限を決めた上でその範囲内で最適な人員計画をもとめることを指しています。

ーモデルの作成ー

時間帯別人員配置最適化の説明の為、小規模な物流倉庫や工場を想定したモデルを使用しますが、今回使用するモデルは前回の時間帯別人員計画最適化と全く同じモデルとなっています。
*前回の記事を元にモデルを作成済の方は以下のプロセスの配置とシミュレーションの部分を読み飛ばして最適化の項目から操作を行ってください。

分岐などを想定していない1本道で入荷→置き場→作業→置き場→加工→置き場→作業→運搬→出荷の9つのプロセスからなります。下図が完成したモデルとなります。

それではモデル作成画面から以下のようにプロセスの配置と設定をおこないます。

入荷プロセス:
プロセス名を「000入荷」へ変更、入荷パーツ名を「部品」、間隔を「1分」、個数を「20個」と設定

置き場プロセス:
プロセス名を「001入荷品置き場」へ変更、置き場容量を「1000個」と設定

作業プロセス:
プロセス名を「002開梱作業」へ変更、処理時間を「10分」、作業人数を「2人」と設定

置き場プロセス:
プロセス名を「003部品置き場」へ変更、置き場容量を「1000個」と設定

加工プロセス:
プロセス名を「004加工」へ変更、処理時間を「10分」、作業人数を「2人」と設定
対象パーツ名称を「部品」、個数を「1個」と設定、
出力パーツ名称を「製品」、個数を「1個」と設定

置き場プロセス:
プロセス名を「005加工後置き場」へ変更、置き場容量を「1000個」と設定

作業プロセス:
プロセス名を「006梱包作業」へ変更、処理時間を「10分」、作業人数を「2人」と設定

運搬(ローラーコンベア)プロセス:
プロセス名を「007運搬(ローラーコンベア)」へ変更、積荷容量を「10個」、処理時間を「1分」と設定

出荷プロセス:
プロセス名を「008出荷」へ変更

ーシミュレーション結果ー

以上の設定を行ったら、モデル名を「時間帯別人員計画最適化」として保存を行い、シミュレーション時間を480分に設定してシミュレーションを行います。上記の設定が問題なく行われていれば、下図のような結果が表示されます。シミュレーションが上手く行ったら最適化の準備を行います。

ー最適化の準備ー

出荷目標(データ)の設定

最適化を行う前に最適化の目標となる出荷目標のデータを設定します。

timeitemcount
60製品20
120製品20
180製品30
240製品30
300製品40
360製品40
420製品30
480製品30

今回は上表のように出荷目標を設定します。この目標を出荷プロセスに設定します。以下のようにモデル編集画面から「出荷データを直接入力」ボタンをクリックし手動で入力を行ってください(上表をcsvファイルにして読み込ませることも可能です)。

「出荷データを直接入力」ボタンを押すと下図のように入力画面が立ち上がります。

今回は製品のみにデータを設定して行きます。なお製品以外(部品)はポップアップ左側のボタンをクリックして、「設定の削除」で削除してください。下図は製品に出荷データを入力中の画面です。今回は480分の設定なので、+を押すことでデータを60分単位で480分まで増やしながら設定を行います。

入力後に「保存する」ボタンを押して出荷目標が設定されると下図のようにシミュレーション結果に出荷目標(データ)のグラフが追加されます。次に時間帯別の作業人数の設定を行います。

時間帯別の作業人数の設定

「002開梱作業」、「004加工」、「006梱包作業」それぞれの作業人数を時間帯別に設定して行きます。まず、編集画面から「002開梱作業」をクリックし詳細設定から「作業グループ」をクリックすると以下の画面となります。

この際に作業グループの下にあるチェックボックスにチェックを入れると、次の画面が立ち上がり、時間帯別に効率と作業人数を設定することができます。

今回はシミュレーション時間を480分に設定しているので、入力欄を+ボタンを使って拡張しつつ入力して行きます。効率は「1」とし、全ての時間で作業人数を「2人」と入力します。

設定が終わったら、「保存する」ボタンを押し保存します。保存後はプロセスカードの作業人数が、2人から時間帯別設定へ変わります。「004加工」、「006梱包作業」も同様に時間帯別の作業人数の設定を行います。

ー最適化ー

以上の設定を行ったうえで「人員最適化」タブをクリックすると以下の画面が表示されます。

「新規人員最適化を実施」ボタンを押して設定画面を開きます。*出荷目標(データ)が入力されていない場合、自動で編集画面に遷移します。

今回は「002開梱作業」、「004加工」、「006梱包作業」のそれぞれの時間帯別の作業人数とその合計人数をパラメーターとして人員配置の最適化を行います。プロセスの作業人数を時間帯別に設定している場合、以下の表示となります。「時間帯別スケジュールで入力」チェックボックスにチェックを入れると次の画面が立ち上がります。

時間帯別に最適化の下限値と上限値と合計人数を以下のように設定していきます。今回は240分から360分の区間で生産目標が上凸になっているので、240分から360分の区間では他の区間より人数の上限値を大きくしています。この設定作業を「002開梱作業」、「004加工」、「006梱包作業」の作業人数の全てで行ってください。

002開梱作業の作業人数:
下限をすべての時間で「2」
上限を240分まで「6」、240分から360分まで「8」、360分から480分まで「6」

004加工の作業人数:
下限をすべての時間で「2」
上限を240分まで「6」、240分から360分まで「8」、360分から480分まで「6」

006梱包作業の作業人数:
下限をすべての時間で「2」
上限を240分まで「6」、240分から360分まで「8」、360分から480分まで「6」

また、今回は合計人数にもチェックをいれパラメーターとして使用します。合計人数は「002開梱作業」、「004加工」、「006梱包作業」の作業人数の合計をパラメーターとするものです。今回は以下の様な設定としました。

合計人数(人数制限):240分まで18人、240分から360分まで24人、360分から480分まで18人

下図のように設定が終わったら「モデルチューニング実行」ボタンを押してモデルチューニングを行います。

モデルチューニングが終了すると以下の図のように結果が表示されます。*最適化にはランダム変数を使っているため、同じモデルでも数字が変動し図と一致しない可能性や計算の度に結果が変わる可能性があります。
試行した最適化の結果は時間の右側にリストの形で表示されます。今回は最適化に合計人数に制限を入れているため、表示される解は入力した合計人数の値との差(Constraint)が最も小さい解を表示しています。Constraintが小さい解は必ずしも出荷目標と最適化結果の差(誤差)を最小にしないため、表示されている解は誤差が262と誤差の最小値である163とは差があります。Constraintと誤差のどちらを優先するかで、リストの中の複数の解の中から任意の解を選ぶことができます。

最適化結果の確認

この時、シミュレーション結果は以下のように表示されます。生産目標とシミュレーション結果の間の差が比較的大きくなります。これは、人員数を最適化する場合には整数単位で変更されますが、処理時間の最適化では小数を利用可能でより細かい変更が出来るためです。

グラフの左下に「リストで値を確認」ボタンが表示されるのでこれを押し、「002開梱作業」、「004加工」、「006梱包作業」をクリックすると、次の画面が立ち上がり変更されたパラメーターを確認することができます。

また、合計人数の横のボタンをクリックすると次の画面が立ち上がり、入力した値と最適化後の合計人数(最適値)を確認することもできます。

ーまとめー

今回はassimeeで時間帯別人員配置最適化を行う方法についての解説をしました。時間帯別人員配置最適化は工場や物流センターで限られた人員を最大限に効率的に割り振るための人員配置計画の作成に役立つ機能です。日ごとの人数の変動が大きいアルバイトや派遣社員が多い現場で人員配置計画を作成する際に、毎日手軽にシミュレーションを行い、結果を元に計画を作成することが可能となっています。

関連記事