サプライチェーンを繋ぐPSI計画の簡易デモ (2階層のサプライチェーン計画)

2022年6月 追記 : 本記事でご紹介したPSI計画のpythonのソース・コード一式をgitgubで公開しています。ご興味のある方は参照ください。

Yasushi-Osugi/PySI_V0R2SC_main_P: PySi is , Inventory Planning and financial analyse for Global Supply Chain (github.com)

GitHub - Yasushi-Osugi/PySI_V0R1_070P: Config files for my GitHub profile. Config files for my GitHub profile. Contribute to Yasushi-Osu github.com  


今回は、前回の記事で説明した「PSI計画連携の仕組みをサプライチェーン全体に拡張していくための考慮点」にもとづいて、Pythonで実装した「サプライチェーンを繋ぐPSI計画の簡易デモ」について、その結果を見ていきたいと思います。

図6-1. 供給拠点マザープラントのPSI
図6-2-1. 流通チャネル(部分SHA Online)のPSI
図6-2-2. 流通チャネル(部分SHA Online)のPSI (通常のPSIと累積PSI)


サプライチェーンの構成内容など、詳細な説明は後述するとして、まず最初に、PSI計画の結果をアニメーションで見ていきたいと思います。
「図6-1. 供給拠点マザープラントのPSI」と「図6-2-1. 流通チャネル(部分SHA Online)のPSI」は、グローバル3拠点(上海SHA、ホーチミンHCM、アムステルダムAMS)の最終消費地の流通チャネル(図6-2は上海SHAのOnline Channelを想定)からの需要情報がサプライチェーンの2階層を伝播して、供給拠点マザープラントで集計、生成された1年間のPSI計画シミュレーションの結果です。
なお、ここでは、PSI計画を機械学習アルゴリズムで扱う都合から、一般的なPSI計画のグラフではなく、累積されたPSI計画の状態を評価しています。
PSI計画に詳しい方は、累積PSIのイメージに違和感を感じると思いますが、これは「図6-2-2. 流通チャネル(部分SHA Online)のPSI (通常のPSIと累積PSI)」のとおり、PSI計画の見え方が異なるだけでPSIのデータは同じものです。

想定した需要のパターンは、図6-2の最終消費地では、秋冬シーズン向けの商品が販売・消費されています。これに対して、図6-1のマザープラント側の生産では、輸送リードタイム分シフトして、年初3月辺りから需要が立ち上がり先行的に生産がスタートしている様子が分かります。
今回のデモでは、個々のPSI計画のパラメータ設定が十分でないため、PSI計画の立案内容自体には不自然な部分がありますが、ここではサプライチェーンの2階層の親子(需給)関係を定義したPSI計画間で、需給情報のデータ連携ができており、それぞれのPSI計画が同期して、整合性の取れたサプライチェーン計画が作成されていることが確認できます。

以下ではサプライチェーンの構成内容について、もう少し詳しく見ていきたいと思います。
「図6-3. 2階層のサプライチェーン計画結果」は前回説明した流通チャネルの考え方でサプライチェーンの2段階のPSI計画をデータ連携させた結果で、全体イメージが分かるようにPSI計画の結果を配置したものです。

図6-3で定義したサプライチェーンの構成は、以下のとおりです。
1) 日本JPNのマザープラントが全世界に供給する。
日本JPNから、上海SHA、ホーチミンHCM、アムステルダムAMSにある販売物流拠点に供給する。
2) 上海SHA、ホーチミンHCM、アムステルダムAMSでは、
その先にある最終消費市場に、直接販売、間接販売、ネット販売の3種類の流通チャネルが存在する。
3) それぞれの流通チャネルの売上構成比率は以下のように想定する。
SHA: Online=50%, Direct=20%, Indirect=30%
HCM: Online=20%, Direct=40%, Indirect40%
AMS: Online=30%, Direct=40%, Indirect=30%

図6-3. 2階層のサプライチェーン計画結果

計画処理の全体の流れは、末端市場の川下(注:図6-1では上)から、川上の供給拠点マザープラント(図6-1では一番下)へ向かって、需給情報を伝播させるイメージでPSI計画を順にバッチ処理で流して、PSI計画をデータ連携しています。入力となる需要情報は、最終消費地の実需のみを与えることで供給サイドに伝播していきます。非常に簡単なサプライチェーンのモデルですが、PSI計画間の需給情報が市場から供給拠点へ伝播して、データ連携している様子が分かります。この仕組みは非常にシンプルですが、サプライチェーンの階層を3階層、4階層と拡張していくことは比較的容易です。
留意点としては、PSI計画の処理モジュール名や入出力ファイル名などの命名ルール、naming conventionを工夫して、モデル定義を行う際の見通しを良くすること、サプライチェーンの階層のどこのモジュール定義を行っているのか、名称から判断できるようにしておくことがポイントになると思います。( 2022年7月17日時点のgithub最新版V0R2では、モジュールの命名ルールを意識する必要はなく、PSI計画パラメータや拠点間の親子定義をマスターファイルとして外出しして、サプライチェーン全体を一つのPSI計画パラメータ・ファイルで一括定義できるように修正しました。)

再度、「図6-3. 2階層のサプライチェーン計画」に戻って全体を俯瞰すると、色々な課題が浮かび上がってきます。
例えば、
●マザープラント日本JPNのPSI計画の生産平準化がうまくできていない。
ホーチミンHCMの直接販売DirectチャネルのPSI計画の購入Pの生成、購入ロットの積上げがうまく処理されていない。
等々の課題が見えてきます。
このように不自然なPSI計画の課題を見つけて、それぞれのPSI計画の設定パラメータをチューニングしていく作業は、机上のシミュレーションであれば、それほど難しくないと思います。

ただ実際には、グローバル・サプライチェーンの実態に合わせて、PSI計画のパラメータ設定を見直していく場合、個々のチューニング作業の精度と、管理する拠点数、製品数に応じた作業量の多さが問題になります。

サプライチェーン全体を俯瞰しながら、それぞれのPSI計画を定期的に見直す、なんらかの自動チューニングの機能がほしいところです。
今回の記事の一番最初にご紹介した機械学習の機能も、その一つではないかと思います。
例えば、前述の「ホーチミンHCMの直接販売DirectチャネルのPSI計画がおかしい」という場合に、「図6-4. 機械学習の学習回数(episode=10)とPSI計画」のように、機械学習の学習回数(episodeの数)を変化させてPSI計画の結果を見ることが考えられます。

図6-4. 機械学習の学習回数(episode=10)とPSI計画

なお、サプライチェーン上の個々のモデル定義については、ご紹介してきたPSIモデルの管理単位は、「週次」の時間単位、製品を取り扱う単位は「梱包ロット」といった非常に荒い粒度で管理されています。
これは、生産、物流、販売のそれぞれの現場でよりきめ細かく管理されている(ERP等の)在庫計画の管理単位(日・時分、製品一個単位)の特性を、(週次、梱包ロットといった)荒い管理粒度の方向に、グローバルPSIの仕組みとしてマッピングする作業となるので、比較的容易にモデル定義できるのではないかと思います。

グローバル・サプライチェーン上で、特定の製品軸で串刺しすることで、グローバル需給バランスの全体を可視化することができ、利益コスト評価ができる機能は、グローバルレベルでのオペレーション効率の向上に役立ちます。

今回は、あくまで簡易デモですので、「PSI計画間のデータ連携ができているという確認」に留めていますが、この先にある取り組みとして、以下のような取り組みが考えられます。
●事業計画を策定する際のグローバル・サプライチェーンのシミュレーション
●特定の製品軸でのサプライチェーン連携の可視化
サプライチェーン全体の売上利益管理
 これは、以前の記事「PSI計画のコスト評価方法について」でご紹介した「図6-5. 特定の製品の年間PSI計画に対応する利益コスト構成」のように、サプライチェーン上のすべての事業単位(登場人物)のコスト構成を集計することで、特定の製品軸での売上利益を可視化できるようになると思います。

図6-5. 特定の製品の年間PSI計画に対応する利益コスト構成

このような取り組みテーマが、グローバル・オペレーションの経営効率を大きく向上させる取り組みとして、注目されてくるのではないかと思います。

以上、ステイホームの2年間、機械学習への興味から始まり、試行錯誤しながら、Pythonで実装したグローバルサプライチェーンのPSI計画連携の仕組みについて、ご紹介させていただきました。

2022年3月 
桜の開花を待つ早春の自宅にて

大杉 泰司