Q&Aサービスは終了いたしました。過去のQ&Aの閲覧のみ可能となっております。
新規に質問をする場合は上記「コミュニティ」より投稿してみましょう。


QUESTION 質問No.437

スパースモデリング

生産生産マネジメント |投稿日時:
最近IATF等オープンなカンバン方式を取り入れようとマネジメントを変えようとしております。生産管理において、JITをするには、組み合わせ最適化を検討する必要があると考えております。色々調べますと方法としては、量子コンピューティング(アニーリング)、スパースモデリング、セルオートマトン法の3つが良いのかと考えております。このうちスパースモデリングは、「無数の解の内スパースなものを選ぶ」という所が組み合わせ最適化に相当すると考えておりますが、これで良いのでしょうか?
また、各製品種/仕向け先/地域別と、区分けに応じ利益構造が見える化できる生産管理にする場合、データの仕分けが必要で、これには、サポートベクトルマシンによりある程度区分しておいてから、スパースモデリングにより最適化を検討すれば良いと考えたのですが、これで宜しいのでしょうか?

spacer
ANSWER
回答No1 | 投稿日時:

Ventureさま、ご質問ありがとうございます。とても興味深い質問内容です。カンバン方式について述べられているので、JITはジャストインタイムの事で宜しいでしょうか。スパースモデリングをジャストインタイムの最適化に用いることなど今まで考えたこともなかったので、とても斬新な発想であり、興味深く感じました。従って私にはそのような経験はないのですが、少しでも参考になればと思い、稚拙ながら私が思ったことだけを記します。

まず、カンバン方式やJITなどの生産システムは離散システム(Discrete Event System Model)です。線形モデル(Linear Model)を主な対象とするスパースモデリングで離散システムを上手く扱えるのかどうか(?)というところにまず興味を持ちました。

次に、実際の生産システムは、それを構成する各パラメータに強い依存関係(相互作用: Interaction)があります。またJITが対象とする大きな生産システムなどは複数のサブシステムが絡み合って構成されている場合が多々あります(非線形システム)。主要因だけを抽出し、線形モデルを構築しようとするスパースモデリングが相互作用のある非線形システムを上手くを扱えるのか(?)ということにも興味を惹かれました。

機械学習では、色々な方法を片っ端から試してみて、最も上手くシステムを説明できたモデルを採用します。そのためスパースモデリングを試してみるということはとても意義のあることです。スパースモデリングに限らず、「次はこれでどうだ!」と思いついた方法を次から次へと試してみたら如何でしょうか。

私が行う最適化の基本的な流れは、(1)データ取得(2)データクレンジング(3)スクリーニング(4)モデリング(5)シミュレーション(6)最適化(7)検証、という様な感じです。スパースモデリングは(3)と(4)を行う一つの方法だと私は理解しています(他にもたくさん方法があります)。スパースモデリングによって選ばれた主要因とそれらから作られた数値モデルはシミュレーションを通して評価し、さらに目的の結果が得られるよう主要因の値を調整(最適化)していく必要があると思います。後は実際の生産システムに当てはめて、モデルを検証しなくてはなりません。

サポートベクターマシン(SVM)は与えられた過去のデータを使って“分類するモデル”を作り(学習)、そのモデルを使って、新たに与えられたデータを分類するために用いる方法(Classification)の一つと理解しています。専門的なことは分かりませんが、スパースモデリングの前段階に使う必要はないと思います。

区分けに応じた利益構造の分析については、まずそれぞれの区分ごとに重回帰分析を使ってモデルを作り、それらのモデルを使ってさらに全体の利益を最大化するように多目的最適化(Multi-objective Optimization)を行う、というような方法も考えられます。回帰分析の際にステップワイズをかけていけば、要因(説明変数)数はスパースモデリングと同様に減らすことができるでしょう。(尚、サブシステムから構成されている生産システムの最適化も同様に扱えると思います)

話をJITに戻します。実際の生産システムには多くの人が携わっており、また製品を作り続けています。失敗するリスクを考えると、実際の生産システムを使って最適化したモデルを検証してみるということは容易ではありません。そこで私はMALTAB/SimulinkのライブラリであるSimEventsや、Rockwell AutomationのArena といったソフトウェアを使ってDiscrete Event System Model を作り、ソフトウェア上でシミュレーションして納得してからはじめて実際の生産システムに応用するという過程を踏んでいます。

データ分析手法は日進月歩で進んでおり、私はとても追いつけません。もし間違っていることがあれば、お許しく下さい。

以上、少しでも参考になれば幸いです。




ANSWER
回答No2 | 投稿日時:

リーンやシックスシグマを使った製品開発、業務や生産プロセスの改善等に長く携わっていますが、この業界でもプロセス(離散システム)をモデル化してシミュレーションを通して最適化(プロセスの改善)しようとする実務家はそう多くはありません。そのためVentureさまが興味を持って下さったことをとても嬉しく思います。

論文に関してですが、私もかつて論文等を探したことがあったのですが、自分にとって有益な論文を見つけることができませんでした。もっとも私は研究者ではなく、成果を上げてナンボの単なる実務家(実務屋?)なので、それほど論文には深い注意を払いませんでしたが。

正直なところ、インターネットの記事やYouTubeビデオの方が即戦力のある情報が得られると思います。

ちなみに私が最初に離散システムのシミュレーションについて勉強した時は、以下の本を参考にしました。

Business Process Modeling, Simulation and Design 2nd Edition
(by Manuel Laguna and Johan Marklund)
ISBN-13: 978-1439885253
ISBN-10: 1439885257

そして本で学んだ内容を実務(業務プロセスの改善)にすぐに活かすために、シミュレーション・ソフトウェアを準備しました。Wikiにはいくつかシミュレーション・ソフトウェアが載っていますが、私が利用しているのはSimEventsとArenaです(extendsimも少し試してみたことがあります)。

List of discrete event simulation software
https://en.wikipedia.org/wiki/List_of_discrete_event_simulation_software

どのソフトウェアも結構値段が張ります。そこで「お金をかけずに、離散システムのシミュレーションを試してみたい」という方に私が最初にお薦めするのが、お試しバージョンが無料でダウンロードできるArenaです。

お試しバージョンはブロック数が最大300個までという制限があるのですが、それ以外は正式バージョンと同機能です。ステップ数が300個までのプロセスのシミュレーションには使えます。(ちなみに正式バージョンは数百万円するのではないかと思います)

Rockwell Automation Arena
https://www.arenasimulation.com/

私にとって最も利用価値が高いのがSimEventsです。MATLAB/SimLinkとシームレスに使えるので自由自在にプログラミングもできますし、様々なライブラリと連携が図れます。データの統計処理や機械学習もMATLAB上でシームレスに行えます。ドキュメント類が豊富に揃っていることも助かります。SimEventsはMATLAB/SimLinkのライブラリの一つですが、30万円ほどで別途購入しました。

SimEvents (MATLAB/SimLink)
https://www.mathworks.com/products/simevents.html

離散システムのシミュレーションが今最も盛んなのは、コンピュータの世界(ネットワークや分散処理など)です。もし論文をお探しでしたら、こちらの世界には豊富に存在するのではないかと思います。カンバン方式やJITといった生産管理システムもコンピュータと同じと捕らえれば、離散システムのシミュレーションの応用範囲が広がっていくと思います。