mathworksjapan–ga は並列計算オプションが使用可能 >> numlines_gaopt parallel...

24
1 © 2015 The MathWorks, Inc. 最適化による課題解決とパフォーマンス向上 MathWorks Japan アプリケーションエンジニアリング部 テクニカルコンピューティング 井原 瑞希

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

1© 2015 The MathWorks, Inc.

最適化による課題解決とパフォーマンス向上

MathWorks Japan

アプリケーションエンジニアリング部 テクニカルコンピューティング

井原瑞希

Page 2: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

2

身近な最適化問題

Page 3: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

3

最適化とは

(ある条件を満たした)目的に合うような状況を求めること

利益の最大化

コスト / リスクの最小化

Page 4: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

4

Agenda

最適化の流れ– 目的関数の定義

– 制約条件の設定

MATLAB® における最適化– ソルバの選び方

– 大域的ソルバの使用

– 例: 生産プロセスの最適化

– 計算時間のかかる問題について

最適化に関連した最新機能

Page 5: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

5

例: スーツケース選び目的関数の定義

最大化したい関数f = x1 * x2 * x3

機内持ち込みの手荷物の体積を最大化するような鞄を選びたい 目的関数

Page 6: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

6

最適化とは

出力を最小化 / 最大化する入力パラメタの組み合わせを見つける

f ([x1, x2, … , xn])

nx

x

x

2

1

入力

y

出力目的関数

Page 7: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

7

例: スーツケース選び制約条件の設定

最大化したい関数f (x1, x2, x3) = x1 * x2 * x3

制約条件– 3 ≦ x1 + x2 + x3≦ 115

– 1 ≦ x1≦ 55

– 1 ≦ x2≦ 40

– 1 ≦ x3≦ 25

機内持ち込みの手荷物の体積を最大化するような鞄を選びたい

サイズの制約– 3辺の合計が115cm以内

– 幅: 55cm

– 高さ: 40cm

– 奥行: 25cm

目的関数

>> volume_UI

Page 8: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

8

最適化の流れ

目的関数の評価

最適解判定基準を満たす?

パラメタ値の変更

No

Yes初期パラメタの設定

Page 9: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

9

最適化の流れ手荷物最適化課題に MATLAB を使用した場合

目的関数の評価

最適解判定基準を満たす?

パラメタ値の変更

No

Yes初期パラメタの設定

f (x1, x2, x3)x1, x2, x3

Optimization Toolbox™

経験と勘で決めていたパラメタを自動で決定容器設計なども同じ問題

Page 10: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

10

例: スーツケース選びMATLAB コード

目的関数f = x1 * x2 * x3

制約条件– 3≦ x1 + x2 + x3≦ 115

– 1 ≦ x1≦ 55

– 1 ≦ x2≦ 40

– 1 ≦ x3≦ 25

MATLAB の最適化は最小化– 最大化したい場合は目的関数に

マイナスをつける

数式から行列に変換– - (x1 + x2 + x3)≦ -3

– x1 + x2 + x3 ≦ 115

1変数の制約は上限、下限に設定

>> opt_volume

Page 11: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

11

最適化ツールボックスで扱うことのできる問題

Optimization Toolbox, Global Optimization Toolbox

Page 12: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

12

Optimization Toolbox と Global Optimization Toolbox

OptimizationToolbox

GlobalOptimization

Toolbox

高速な解の探索 ✓

さまざまな目的関数、制約条件に対応

✓ ✓

大域的最適解の探索 ✓

特殊な目的関数に対応例: 微分不可能な関数

並列計算対応 ✓ ✓課題によって

ソルバを変える必要あり

Page 13: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

13

最適化問題局所解に陥ってしまう場合

Optimization Toolbox のソルバは解が初期値に強く依存

>> pso_main

粒子群最適化を使用した大域的最適化Global Optimization Toolbox

大域的最小値局所最小値

Page 14: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

14

最適化の流れ粒子群最適化を使用した場合

目的関数の評価

最適解判定基準を満たす?

パラメタ値の変更

No

Yes初期パラメタの設定

初期値を定めずに大域的な解を探索

Page 15: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

15

最適化問題整数が関わる場合

仕様

問題– 現在の在庫

ナット: 29個

ボルト: 34個

– 製品1 と製品2 を何個ずつ作れば利益が最大になるか

Page 16: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

16

最適化問題整数が関わる場合

44.11 ドル

42.00 ドル

43.00 ドル

四捨五入で整数化

小数は実現不可能

fmincon (制約付き非線形最適化関数) による最適化

– 製品1: 3.8235個

– 製品2: 3.2941個

– 製品1: 4個

– 製品2: 3個

intlinprog/ga を使った混合整数線形計画法 (MILP)

– 製品1: 1個

– 製品2: 4個

Page 17: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

17

例: 工場の生産ラインのスケジューリング背景

待ち 設備

1個 / 0.85秒1個 / 1秒

Page 18: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

18

例: 工場の生産ラインのスケジューリング背景

SimEvents™

Page 19: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

19

補足: Simulink®と SimEvents の違い

s1

s2

s3

s4

tt2

e2

x(t)

t3 t4 t5

e3 e4 e5

t1

e1

SimEvents

イベント

状態

イベント駆動型システム

t

x(t)

Simulink

時間

状態

時間駆動型システム

SimEvents はイベント駆動型のシミュレーションを扱うことが可能

Page 20: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

20

例: 工場の生産ラインのスケジューリング課題

1個/5秒

1個/7秒

製造設備1

修正

出荷A製造設備2

検査

出荷B

不良品

20%

μ=10, σ=3 μ=5, σ=1 μ=5, σ=3

μ=60, σ=30

必要な各製造設備数、検査ライン数、修正ライン数は?

10%

>> ProcessLines_opVisualization

生産計画

処理時間

Page 21: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

21

例: 工場の生産ラインのスケジューリング遺伝的アルゴリズムを使った混合整数線形計画法

制約条件の設定

– 解の下限

– 解の上限

– 整数制約のある設備の番号

目的関数の指定

– 各設備のコスト

– 計画未達コスト

ga 関数による最適化

補足

– intlinprog は使用が簡単

– ga は並列計算オプションが使用可能

>> numlines_gaopt

Parallel Computing Toolbox™

ハードウェアリソースを活用して計算時間短縮

Page 22: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

22

例: 工場の生産ラインのスケジューリング結果

最適化

製造設備1: 4製造設備2: 2検査ライン数: 5修正ライン数: 2

最適化の結果

Page 23: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

23

最新機能~最適化編~

グラフ&ネットワークアルゴリズム MATLAB

京都駅

東山三条

施設配置、ネットワーク解析などにも応用可能

Page 24: MathWorksJapan–ga は並列計算オプションが使用可能 >> numlines_gaopt Parallel Computing Toolbox ... Presentation Title Author Mizuki Ihara Keywords Version 15.2 …

24

まとめ

最適化に関連したツールボックス

その他便利なツールボックス

関連ツールボックス 課題

Optimization Toolbox基本的な最適化計算

- 混合整数線形計画法 (intlinprog)

Global Optimization Toolbox

特殊な目的関数の最適化計算

- 遺伝的アルゴリズム (ga)- 粒子群最適化 (particleswarm)

MATLAB グラフアルゴリズム

SimEvents 離散イベントシステムモデリング

Parallel Computing Toolbox マルチコアマシンやGPUによる並列計算