PSI計画のコスト評価方法について
2022年6月 追記 : 本記事でご紹介したPSI計画のpythonのソース・コード一式をGitHubに公開しました。ご興味のある方は参照ください。
なお、ライセンスはMIT Licenseです。
前回の「PSI計画に機械学習の機能を組み込むための考え方」に続いて、今回は、PSI計画のコスト評価方法について説明します。
PSI計画のコスト評価、コスト・パラメータの検討を始めた当初の問題意識は、「製品のコスト構造を、PSI計画の機械学習の評価関数に設定することで、発注サイクルを自動で調整して、コスト最適化する発注計画を作成してくれるはずだ。」というものでした。
その結果はどうなったか、以下で見ていきたいと思います。
まず最初に、今回のPSI計画コスト評価で使用した利益コスト計算式は「図3-1. 利益コスト計算式」に示すとおりです。
この計算式を機械学習の評価関数に組み込んでいます。
コスト評価の計算式を検討する上での留意点として、実務担当者に馴染みのある分かり易い評価方法であること、コスト・データの整備、設定に時間をかけない方法であることを意識して、比較的ざっくりした「製品コスト構成比率」という考え方で、コスト・パラメータとコスト評価の計算式を定義しました。
したがって、この利益コスト計算式にはまだまだ改良の余地があると思います。
例えば、コスト関連データが整備されていて、負荷をかけずにデータ入手可能であれば、在庫保管コストや物流コストのデータ精度の高いコスト・パラメータを取込みたいところです。
あるいは、製品ライフサイクル後半で販売価格に値引率が適用される場合など、売上・利益に影響する時系列変化をパラメータ化することも課題になると思います。
利益コスト計算式で使うコスト関連パラメータのサンプルは、「表3.製品コストテーブルの例」のとおりで、計画対象となる製品のコスト構造をコスト・テーブルとして事前に設定しておきます。
表3のコストテーブルには、製品のコスト構成の他に、在庫管理に必要なLTリードタイム、ロットサイズを設定しています。
このコスト・テーブルは、図3-1. 利益コスト計算式のパラメータと対応しています。
このコスト・テーブルは、特定の業界のものではなく、筆者の経験から平均的なコスト構造を想定して仮に定義しています。
「図3-2. 年間PSI計画に対応する利益コスト構成」は、一年間分のPSI計画を作成した結果から、製品購入P、出荷販売Sの数量を金額換算して得られる特定の製品の利益コスト構成グラフです。
次に、機械学習の報酬(reward)との関係ついて、報酬(reward)には利益率を使うのが一般的と思います。ただ、事業会社のビジネススタイル、事業方針によっては、利益率ではなく売上(出荷)の最大化を重視するなど、供給方針は一律ではなく、報酬(reward)に適用する評価パラメータ(利益、売上など)を事業方針、発注スタイルに合わせて調整する必要が出てくると思います。
PSI計画の機械学習で報酬(reward)に利益率、利益、売上を指定した場合、どのようなPSI計画を生成するのかは、図3-2にそれぞれの結果を比較しています。
報酬(reward)に「利益率」、「図3-1. 利益コスト計算式」を指定した場合の結果は、ほぼ定期発注を繰り返しており、最も自然な購入計画Pを作成しているように見えます。
報酬(reward)に「利益」、「図3-1. 利益コスト計算式」の分子、を指定すると、ほとんど購入Pを発注しなくなり、これは前々回の記事で述べた「八百屋さん、あるいはアパレルZARAの売り切り商売」のような「仕入コストの増加を抑えて売り切って利益を出す」という方針になっているように見えます。
報酬(reward)に「売上」、「図3-1. 利益コスト計算式」の分母、を指定すると、売上(出荷)を最大限にあげる方向にあるため、仕入コストを無視して発注サイクルを縮めて、毎週発注をかけています。なお、年間の後半で発注がストップする原因は、需給バランスの総量を規制する制約条件が定義されているのが原因ではないか思います。
本稿の最初にお話しした、コスト・パラメータの検討を始めた当初の問題意識、「製品のコスト構造を、PSI計画の機械学習の評価関数に設定することで、発注サイクルを自動で調整して、コスト最適化する発注計画を作成してくれるはずだ。」という点について、
実際に機械学習でPSI計画を作ってみると、当初の想定に近い動きをしていることが分かります。
例えば、図3-3のreward=利益率の場合で見ると、月に2回〜5回の発注間隔を自動生成しています。
発注サイクルは月1回、月2回、月4回、週次といった型にはまった発注サイクルにはならず、利益率を重視して、その都度伸び縮みしている様子が分かります。
なお、発注サイクルが変動する主な要因として、取り扱う製品のコスト構造の他にも、各国の長期休暇で出荷週、着荷週がブロックされる制約があります。
グローバル需給では一般的ですが、各国の長期休暇、例えば、日本の5月ゴールデンウィークや夏季休暇、中国の旧正月などの期間はほぼ一週間、工場や販売会社の入出荷がストップしています。一方、前線の小売店はフル稼働していると思います。
このような長期休暇の制約は、このPSI計画の中では、出荷着荷できない(ロットを置くことができない)スキップ週という制約として定義して、機械学習の評価でマイナス点(例えばー1)を与えています。
また、このPSI計画ではスキップ週を先読みして在庫を積み増しているので、結果、発注間隔にも変化が出ています。
以上、PSI計画のコスト評価方法について説明させていただきました。
次回は「供給拠点(マザープラント)と販売事業会社間のPSI計画の連携」というテーマについて考えたいと思います。