供給拠点(マザープラント)と販売事業会社間のPSI計画の連携
今回は、供給拠点(マザープラント)と販売事業会社間で、PSI計画を連携させる仕組みについて考えてみたいと思います。
本稿では、前回までの記事のメインテーマであった機械学習とは異なり、グローバルSCMの計画系の仕組み、PSI計画間のデータ連携方法について、Python上での簡単な実装事例を含めてご紹介していきたいと思います。
プログラミングの観点からは、
●PSI計画間をつなぐ共通データベースの定義
●複数PSI計画間でのデータ連携(バッチ処理)
といった伝統的なIT手法での実装になります。
一方、グローバルSCMの計画系の全体をどのようにモデル化して、実装していくかは、ここからがスタートになると思います。
前回までの説明で、個々の事業会社のPSI計画からは、オペレーションコストを最適化した購入要求P、言い換えると、供給拠点への出荷リクエストSが出るようになりました。
次に考えられるのは、サプライチェーン上で前後する複数のPSI計画を連携させる仕組みが実装できるのではないかという点が気になります。この考えをさらに広げて、以下のような取り組み仮説が定義できます。
「各事業会社が持つPSI計画をサプライチェーン上でネットワーク定義することで、サプライチェーン全体の統合計画が可能になる。」というものです。
ここで、サプライチェーン全体というと、少し大げさな仮説になってしまいますが、まずは、サプライチェーン上のネットワークの1つの親子関係をPSI計画で連携させることができれば、その応用でサプライチェーン全体にPSI計画の連携処理を拡張していくことができる、SCM統合計画として実装できるのではないか、ということを想定しています。
ここでのポイントは、それぞれのPSI計画に対応する事業会社のビジネスモデルを、「週次という時間単位」と、後述する「製品の共通計画単位」でモデル化して、PSI計画間の整合性を図れるかにあると思います。
需要サイドと供給サイドの双方がPSI計画を持ち、同じサプライチェーン上の計画として同期を取るためには、計画対象となる製品の「梱包ロット」または「輸送ロット」を単位として、サプライチェーン計画全体に共通する計画ロット単位(Common Planning Unit)、例えば「図4-1. PSI計画間の同期のための共通計画単位(Common Plan Unit)」のような共通データベースを設定して、需給関係にあるPSI計画の間でデータ共有、連携する仕組みが有効と思います。
この共通計画単位(Common Plan Unit)は、前回までの機械学習で説明した、ロット積上げ方式PSIの一つのロットに相当します。
また、共通計画単位(Common Plan Unit)の属性に輸送手段modalを定義していますが、今回のPythonでの実装では海上輸送のみを想定しています。
ただ実際には、輸送コストを無視してでも、海上輸送boatから空輸airに代えて緊急搬送するケースは年に何回か発生するよくある事で、特定のロットの輸送方法をairに変更して、着荷を早めるオペレーションをPSI計画上で表現することは必要になってくると思います。
ただ、PSI計画連携シミュレーションで、年間を見通した需給バランスとバッファ在庫の設置ができていれば、サプライ側の生産物流でのトラブルなど、特殊なイベントが発生しない限り、緊急air搬送といった物流コスト増は抑制できると思います。
![](https://assets.st-note.com/img/1645771708115-v66wbveP7k.png?width=1200)
この「共通計画ロット単位」をサプライチェーン上のPSI計画間の共通単位として、仮想の3つの海外事業会社からの購入P(=出荷要求S)をデータベース共有(本稿では簡易的にCSVファイルで共有)して、実際にPythonで実装したマザープラント側のPSI計画の結果が「図4-2. グローバル供給拠点(マザープラント)のPSI」になります。
![](https://assets.st-note.com/img/1645756655588-TNbqxLLHz4.png?width=1200)
ここでの想定は、各海外事業会社(例えば、上海、ホーチミン、アムステルダムの販売事業会社)のPSIからの購入要求Pをリードタイム・オフセットして、マザープラント側の出荷販売Sポジションに集計しています。
それぞれのリードタイムには、海上輸送を前提に、日本-上海間は4週間、日本-ホーチミン間は6週間、日本-アムステルダム間は8週間を設定しています。現実のリードタイムは、もっと短いとか長いとかご指摘も多々あると思いますが、簡易デモということでお考えください。
マザープラント側のPSI計画の特徴は、生産設備の稼働率を上げること、安定した生産・出荷を行うことで、生産コストの最小化を狙います。つまり、平準化生産を基本として、生産Pを一定に保つ点で、前回までの販売事業会社のPSI計画と評価方法が大きく異なります。
そのために上図のPSIでは、前回までの説明にあったPSI計画の評価関数、販売事業会社の売上利益を志向するアプローチとは別に、平準化生産を前提条件とする「月次の総生産量Pを一定にする」という制約を与えて、マザープラント用のPSI計画を作成しています。
ロットを積み上げてPを計算するという点では、前回までのロット積上げ方式のPSI計画と同じ仕組みですが、評価関数と制約条件の与え方は大きく異なります。
なお、図4-2のPSI計画では、W18週で生産がゼロ(P=0)に落ち込んでいますが、これは5月の長期休暇を制約としてカレンダー定義した結果です。
日本の操業カレンダーでは他にも、夏季休暇、年末休暇などが想定されますが、この事例では、最終消費地での秋冬シーズン商品の生産を想定しており、夏季休暇W32週に入る直前にマザープラント側での生産を終了しているため、PSI計画上に夏季休暇の稼働休止は見えていません。
もう少し詳しく、複数のPSI計画が連携するイメージについて、見ていきたいと思います。
図4-3,、図4-4、図4-5は、サプライチェーン上のPSI計画間データ連携を表現するために、供給拠点と各販売事業会社との間で、複数のPSI計画が「共通計画ロット単位」を介して、データ連携するイメージです。
前回までの「ロット積上げ方式PSI」の説明では、一つの販売事業会社の一つの製品に注目して、販売Sを入力として、PSI計画を作成し、購入Pを生成(出力)していました。
ここでは、複数PSIからの購入Pをリードタイム分、時間をオフセットしたものが供給拠点のS出荷ポジションになります。「図4-3. 共通ロット単位によるPSI計画間のデータ連携イメージ」参照。
各PSI計画は、この共通計画ロット単位のデータベース(ここではCSVファイル)にPSI計画の結果(購入P)を順にバッチ処理で出力します。
供給拠点(マザープラント)側PSIは、この共通計画データベースから供給地(JPN)で検索・出荷ポジションで集計したS出荷を入力として、総需要を満たすまで、生産Pを置いていきます。
実務の観点から、例えばマザープラントの工場長の立場からは、ここで問題になるのは、マザープラント側で出荷待ちになっている完成品在庫が、このままでは出荷ヤードにどんどん膨れ上がってしまう点です。
そこで、先行生産で溜まった在庫をサプライチェーンのどこに置くかが問題になってきます。マザープラント側でグローバル全体の在庫を抱えるのか、域内に中間バッファとなる倉庫を設置するのか、各国の販売事業会社の物流倉庫に送り込めるのか、検討の余地があります。
![](https://assets.st-note.com/img/1645841330773-5NuK5yiVYl.png?width=1200)
![](https://assets.st-note.com/img/1645842240784-Ifjuz3nTsI.png?width=1200)
![](https://assets.st-note.com/img/1645842279484-usRCmiiKAd.png?width=1200)
以上のようなPSI計画間の連携シミュレーションを事前に行うことで、グローバルSCMのオペレーション効率を改善できるのではないかと思います。
今回は、
●サプライチェーン計画全体に共通する計画ロット単位(Common Planning Unit)を定義すること
●ロット積み上げ方式PSI(Lot Loading PSI)を使うこと
で、サプライチェーン上の親子関係 ( 需給関係 ) をPSI計画間で定義し、PSI計画間のデータ連携と同期処理を比較的容易に実装できることを簡易的なデモで検証しました。
なお、説明したPSI計画連携のサンプル中、Pythonで実装しているのは「図4-5. グローバル・サプライチェーンのためのPSI計画連携イメージ」の手順「②平準化生産」までになります。「手順③の生産配分」以降の処理は実装していません。
以上、供給拠点(マザープラント)と販売事業会社間で、PSI計画を連携させる仕組みについて説明しました。
次回は、PSI計画連携の仕組みをサプライチェーン全体に拡張していくための考慮点について、「図4-6 グローバル・サプライチェーンとPSI計画連携」のようなサプライチェーンのイメージをベースに考えてみたいと思います。
![](https://assets.st-note.com/img/1645775978590-RCxWwHVQiv.png?width=1200)
この記事が気に入ったらサポートをしてみませんか?