トップ > シミュレーションとは>シミュレーション最適化

シミュレーション最適化

シミュレーションでは、条件を変えた時のパフォーマンスを「what if」形式で分析することができますが、この方法では調べられる範囲に限りがあり、システムを最適化しようとする場合には不十分です。

この時、あらかじめ最大化もしくは最小化する対象が明らかな場合に用いられる手法がシミュレーション最適化です。

例えば、生産シミュレーションでは、機械・装置の数や、ある装置で加工した途中製品をバッファしておく場所によって生産される製品数が変わってきます。 機械・装置の数やバッファの数をコストととらえ、全体として利益が最大となるような、機械・装置の数、バッファの数を求める場合、最大化する対象となる目的関数は シミュレーションによって求まる利益、パラメータは、機械・装置の数、バッファの数になります。シミュレーション最適化では、このような目的関数が最小化もしくは最大化されるようなパラメータの決定を行います。

シミュレーション最適化では、シミュレーションが目的関数としての役割を果たしていますが、一般的には、離散イベントシミュレーションの結果は解析的な形で記述するこ とができません。また結果が確率的に求まる為、単純にシミュレーションの結果を用いる事はできません。

その為、あるパラメータにおけるシミュレーション結果に対して、何かしらの統計処理を行い、シミュレーション結果の推定値を求め、それを目的関数として最適化問題を解 く必要があります。シミュレーション結果の推定値には期待値がよく用いられています。

シミュレーションにおけるコントロールパラメータをθとし、シミュレーションの結果を Y(θ) とすると、推定値は、

 max(or min) E[Y (θ)]

ここでE は複数のシミュレーションの実行(replication)により期待値をとることをあらわし、システムの結果の期待値を最大化もしくは最小化することをあらわします。

replication 数を増やすことで疑似的に微分をとることも考えられれますが、1回のシミュレーションが目的関数の評価である為、多くの replication を行うことは現実 的ではありません。(ただし、 S-Quattro は replicationに対して、並列実行を行う事が可能な為、目的関数の評価をより多く行う事ができます。

whatif

シミュレーションを最適化する手法には多くの研究がなされていますが、S-Quattro には現在メタヒューリスティックな アルゴリズムとして粒子群最適化法(Particle Swarm Optimization:PSO)と、目的関数の解析的表現が困難な場合や目的関数の微分に関する情報を用いることが出来ない状況下で最適解を求める DFO(derivative free optimization) が組み込まれています。

【参考文献】
雪島正敏,山本晃成 「S3 Simulation Systemの開発3 シミュレーション最適化」
日本オペレーションズ・リサーチ学会 2011年秋季研究発表会アブストラクト集(2011)