概要
今回の記事ではこれまでより大規模なモデルを使用して人員配置の最適化(人員の割り振り)を行います。使用するモデルは中古商品のクリーニングを行うPDC(商品配送センター)を想定しており、入庫後に複数商品に分岐し、それぞれクリーニングなどを実施した後、保管、ピッキングによって商品を出庫し、バンニング後に出荷することを想定しています。完成したモデルは以下のようになります。
モデルの作成
今回は倉庫内で中古商品のクリーニング作業と入庫、発送を考えて、以下のようなプロセスを想定します。
- パレットにて入荷
- デバンニングを行い商品ごとに5つのプロセスに分岐
- 分岐先のそれぞれで処理を実行
- 5つの商品をピッキングした後、バンニングして出荷
- 人員配置の最適化は5つの処理とピッキングで実施
今回のモデルは大きいのでプロセス図の作成は以下の3つのブロックに分けて解説と設定を行います。
- 入荷ブロック
- 倉庫ブロック
- 出荷ブロック
STEP1 プロセス図の作成
トップ画面から「見える化」を選択します。プロセス図の作成画面が立ち上がるので、作成して行きます。
入荷ブロック
入荷ブロックは以下の図のようにプロセスを配置して設定します。
入荷プロセス:
プロセス名を「入荷」へ変更、
置き場プロセス:
プロセス名を「パレット置き場」へ変更
分解プロセス:
プロセス名を「デバンニング」へ変更
置き場プロセス:
プロセス名を「到着品置き場」へ変更
分岐プロセス:
プロセス名を「入庫」へ変更
分岐先として5つのプロセスを設置:
置き場プロセス:
プロセス名を「100パソコン置き場」へ変更
置き場プロセス:
プロセス名を「タブレット置き場」へ変更
置き場プロセス:
プロセス名を「鞄置き場」へ変更
置き場プロセス:
プロセス名を「ゲームソフト置き場」へ変更
置き場プロセス:
プロセス名を「本置き場」へ変更
以下は倉庫ブロックへ
倉庫ブロック
入荷ブロックの「入庫」で5つの商品に対する処理に分岐しました。倉庫ブロックでは5つの商品に対する処理を行うことを考え、下図のようにプロセスを配置して設定します。
パソコン
置き場プロセス(再掲):
プロセス名を「パソコン置き場」へ変更
加工プロセス:
プロセス名を「初期化」へ変更
置き場プロセス:
プロセス名を「初期化済パソコン置き場」へ変更
組立プロセス:
プロセス名を「ピッキング」へ変更
タブレット
置き場プロセス(再掲):
プロセス名を「タブレット置き場」へ変更
加工プロセス:
プロセス名を「初期化」へ変更
置き場プロセス:
プロセス名を「初期化済タブレット置き場」へ変更
「009ピッキング」へ接続
鞄
置き場プロセス(再掲):
プロセス名を「鞄置き場」へ変更
加工プロセス:
プロセス名を「クリーニング」へ変更
置き場プロセス:
プロセス名を「クリーニング済鞄置き場」へ変更
「009ピッキング」へ接続
ゲームソフト
置き場プロセス(再掲):
プロセス名を「ゲームソフト置き場」へ変更
加工プロセス:
プロセス名を「クリーニング」へ変更
置き場プロセス:
プロセス名を「クリーニング済ゲームソフト置き場」へ変更
「009ピッキング」へ接続
本
置き場プロセス(再掲):
プロセス名を「本置き場」へ変更
加工プロセス:
プロセス名を「クリーニング」へ変更
置き場プロセス:
プロセス名を「クリーニング済本置き場」へ変更
「009ピッキング」へ接続
出荷ブロック
出荷ブロックは以下の図のようにプロセスを配置して設定します。処理済の商品をピッキングしバンニングして出荷を行います。
組立プロセス(再掲):
プロセス名を「ピッキング」へ変更
置き場プロセス:
プロセス名を「カラコン置き場」へ変更
組立プロセス:
プロセス名を「バンニング」へ変更
出荷プロセス:
プロセス名を「出荷」へ変更
STEP2 パラメーターの設定
下図のようにプロセスカードを配置したら次へを押してパラメーターを設定して行きます。
入荷ブロック
001 入荷:
品目名を「パレット」、個数を「50個」、間隔を「10分」と設定
002 パレット置き場:
容量を「1000個」と設定
003 デバンニング:
下図のように詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「10分」、作業効率を「1」、作業人数を「30人」と設定、
対象品目を「パレット」、個数を「1個」、
出力品目を以下の5つ設定、
1つ目、品目を「中古パソコン」、個数を「5個」
2つ目、品目を「中古タブレット」、個数を「5個」
3つ目、品目を「中古鞄」、個数を「5個」
4つ目、品目を「中古ゲームソフト」、個数を「5個」
5つ目、品目を「中古本」、個数を「5個」
004 到着品置き場:
容量を「5000個」と設定
005 入庫:
下図のように詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「1分」、作業効率を「1」、作業人数を「30人」と設定
分岐条件:
条件1:
対象品目を「中古パソコン」、送り先を「006パソコン置き場」と設定
条件2:
対象品目を「中古タブレット」、送り先を「013タブレット置き場」と設定
条件3:
対象品目を「中古鞄」、送り先を「016カバン置き場」と設定
条件4:
対象品目を「中古ゲームソフト」、送り先を「019ゲームソフト置き場」と設定
条件5:
対象品目を「中古本」、送り先を「022本置き場」と設定
倉庫ブロック:パソコン
006 パソコン置き場:
容量を「1000個」と設定
007 初期化:
詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「20分」、作業効率を「1」、作業人数を「10人」と設定
対象品目を「中古パソコン」、個数を「10個」、
出力品目を「初期化済パソコン」、個数を「10個」と設定
008 初期化済パソコン置き場:
容量を「1000個」と設定
倉庫ブロック:タブレット
013 タブレット置き場:
容量を「1000個」と設定
014 初期化:
詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「20分」、作業効率を「1」、作業人数を「10人」と設定
対象品目を「中古タブレット」、個数を「10個」、
出力品目を「初期化済タブレット」、個数を「10個」と設定
015 初期化済タブレット置き場:
容量を「1000個」と設定
倉庫ブロック:鞄
016 カバン置き場:
容量を「1000個」と設定
017 初期化:
詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「20分」、作業効率を「1」、作業人数を「10人」と設定
対象品目を「中古鞄」、個数を「10個」、
出力品目を「クリーニング済鞄」、個数を「10個」と設定
018 クリーニング済鞄置き場:
容量を「1000個」と設定
倉庫ブロック:ゲームソフト
019 ゲームソフト置き場:
容量を「1000個」と設定
020 初期化:
詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「20分」、作業効率を「1」、作業人数を「10人」と設定
対象品目を「中古ゲームソフト」、個数を「10個」、
出力品目を「クリーニング済ゲームソフト」、個数を「10個」と設定
021 クリーニング済ゲームソフト置き場:
容量を「1000個」と設定
倉庫ブロック:本
022 本置き場:
容量を「1000個」と設定
023 クリーニング:
詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「20分」、作業効率を「1」、作業人数を「10人」と設定
対象品目を「中古本」、個数を「10個」、
出力品目を「クリーニング済本」、個数を「10個」と設定
024 クリーニング済本置き場:
容量を「1000個」と設定
出荷ブロック
009 ピッキング:
詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回あたりの処理時間を「1分」、作業効率を「1」、作業人数を「60人」、
対象品目を以下の5つ設定
1つ目、品目を「初期化済パソコン」、個数を「1個」
2つ目、品目を「初期化済タブレット」、個数を「1個」
3つ目、品目を「クリーニング済鞄」、個数を「1個」
4つ目、品目を「クリーニング済ゲームソフト」、個数を「1個」
5つ目、品目を「クリーニング済本」、個数を「1個」
出力品目を「カラコン」、個数を「1個」と設定
010 カラコン置き場:
容量を「1000個」と設定
011 バンニング:
詳細設定を開き、作業員のチェックボックスにチェックを入れて、1回当たりの処理時間を「10分」、作業効率を「1」、作業人数を「20人」、
対象品目を「カラコン」、個数を「20個」、
出力品目を「出荷用パレット」、個数を「2個」と設定
012 出荷:
特に設定なし、出荷データは最適化時に設定
シミュレーション
モデルの作成が終了したら、レポート名を「プロセスディストリビューションセンターでの人員配置最適化」という名前で保存し、シミュレーションを実行します。300分の設定でシミュレーションを行うと以下の図のように奪取ボードが表示されます。
左下のサマリーから「生産推移」を選択すると以下のようなグラフが表示されます。表示されない場合は再度設定を確認してください。
最適化
シミュレーションが終了したら、人員配置最適化を行ってみましょう。レポート一覧から「新しい課題を開始」をク選択し、次の画面で「人の最適化」を選択します。
次へを押すとプロセスカードの選択画面が表示されるので以下のように選択します。
今回は倉庫ブロックの初期化処理とクリーンニング処理と出荷ブロックのピッキングの6つのプロセス(「007初期化」、「014初期化」、「017クリーニング」、「020クリーニング」、「023クリーニング」、「009ピッキング」)を選択し、人員を割り振ることを考えます。
次に人の最適化の設定を行います。次へを押すと下図のように表示されるので、今回は合計人数を固定するにチェックを入れます。これで人の最適化時に一定の人数を各プロセスに割り振る設定になります。
設定が終わったら、次へを押します。パラメーターの設定画面が表示されるので、013出荷を選択し、出荷目標を設定します。今回は下図のように直接入力で60分おきに「出荷用パレット」を「25個」出荷するように設定します。
設定が終わったら保存ボタンを押して、パラメーター設定画面に戻ります。出荷目標の設定が終わったら次へを押します。
最適化対象となるプロセスカードの最適化パラメーターが表示されます。今回は全てのプロセスカードの作業員を選択し、下図のように数字を入れていきます。
「007初期化」、「014初期化」、「017クリーニング」、「020クリーニング」、「023クリーニング」の下限値は1人、上限値は20人、「009ピッキング」の下限値は1人、上限値は50人とします。そして、最後に固定合計人数に「150人」を入力します。この時、最適化範囲に含まれない、「003デバンニング」の30人、「005入庫」の30人、「011バンニング」の20人の合計80人が合計人数に含まれることに注意してください。つまり固定合計人数は150人ですが、割り振られるのはそこから80人を差し引いた70人となります。
上下限値を設定したら次へを押します。次の画面が表示されて最適化が開始されます。
最適化が終了すると、以下の図のように再度ダッシュボードが表示されます。
左下のサマリーから図を選択して結果を確認します。今回は「最適化結果」、「累積生産推移」、「生産推移」、「生産数」を表示させてみましょう。
今回の最適化では以下のような結果となりました。150人の上限をつけたところ155人が、以下の最適化結果のように割り振られました。
「007初期化」10人→12.27人
「014初期化」10人→10.85人
「017クリーニング」10人→8.69人
「020クリーニング」10人→2.88人
「023クリーニング」10人→2.10人
「009ピッキング」30人→39.14人
*上記の他に「003デバンニング」の30人、「005入庫」の30人、「011バンニング」の20人。
*最適化にはランダム変数を使っているため、最適化の結果が下図と一致しない場合があります。
最適化のやり直しと合計人数の調整
今回は合計人数を150人と設定しましたが、最適化結果をみると各加工の間の作業人数に差があります。パラメーター設定を見直すと、同じ量の業務なのに人数に差が出ています。これは必要以上に人数が多くなっていると考えられるので、上の結果を考慮して合計人数を150人から125人に減らして再度最適化を行ってみましょう。
変更した設定は下図の通りとなります。
今回の結果は以下のようになりました。
今回の最適化では以下のような結果となりました。125人の上限をつけたところ154人が、以下の最適化結果のように割り振られました。
「007初期化」10人→8.42人
「014初期化」10人→8.83人
「017クリーニング」10人→11.23人
「020クリーニング」10人→16.46人
「023クリーニング」10人→15.73人
「009ピッキング」30人→14.05人
*上記の他に「003デバンニング」の30人、「005入庫」の30人、「011バンニング」の20人。
目標は達成できているものの人数は大幅に超過しています。これは125人では目標の達成に無理があるということを示しています。
このようにassimeeを使うことで、人員配置の検討を何度でも繰りかえして決めることが出来ます。今回は行いませんでしたが、モデル内の物流を考えて人員以外のパラメーターを推定する、パラメーター推定と人の最適化を繰り返すなどを行うことで、ライン全体の最適化を行うことも可能です。
まとめ
今回は大規模なPDCモデルでの人員配置の最適化について解説しました。assimeeではシミュレーションと人やパラメーターの最適化とをPC上で繰り返し行うことが、非常に容易となっています。これまでの人員配置業務は担当者の経験や勘に頼っていた上、現場の業務負担が大きかったのですが、assimmeを使うことで誰でも同じ業務を簡単に行うことが可能となります。このことは人員配置業務の効率化に大きく貢献します。