51
2 © 2014 The MathWorks, Inc. 最適化入門 MathWorks Japan アプリケーションエンジニアリング部 アプリケーションエンジニア 中川 慶子

最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

2© 2014 The MathWorks, Inc.

最適化入門

MathWorks Japan

アプリケーションエンジニアリング部

アプリケーションエンジニア

中川 慶子

Page 2: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

3

Page 3: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

4

最適なトロリーの加速は?

荷物の揺れが最小になる三変数の組を決める。

– 加速時間 t1

– 減速時間 t2

– 全移動時間 tf

204

151

151

:

2

1

21

f

p

p

ppf

t

t

t

ttt

制約条件

Page 4: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

5

)t,ttf( f ],[ 21

ft

t

t

2

1

入力

どの時間の組( t1, t2, tf )が

面積を最小にするか?

出力

最適化問題とは…

青い部分の面積

Page 5: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

6

)x,xf( n ],[ 1

nx

x

1

どの入力(x1,…,xn)が、

出力 y を最小にするか?

y

一般に、最適化問題とは…

入力出力

目的関数Objective Function

変数Variables

Parameters

Page 6: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

7

最適化関数がやること

目的関数と

入力の初期値

目的関数の評価

入力値の変更

最適解判定基準を満たしますか

?

No

Yes

Page 7: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

8

最適なトロリーの加速は?

荷物の揺れが最小になる 三変数の組を決める。

– 加速時間 t1

– 減速時間 t2

– 全移動時間 tf

204

151

151

2.0

:

2

1

21

f

f

t

t

t

ttt

制約条件

Page 8: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

9

制約条件の表現1

線形不等式制約

𝐴 𝑥 ≤ 𝑏 の形で表現(𝐴:行列、𝑏:ベクトル)

1 1 −1

𝑡1𝑡2𝑡𝑓

≤ 0.2𝑡1 + 𝑡2 − 𝑡𝑓 ≤ 0.2

A b

Page 9: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

10

制約条件の表現2

範囲制約変数の最大値・最小値が決まっているとき

114

𝑡1𝑡2𝑡𝑓

≤151520

1 ≤ 𝑡1 ≤ 15

1 ≤ 𝑡2 ≤ 15

4 ≤ 𝑡𝑓 ≤ 20

𝑙𝑏 ≤ 𝑥 ≤ 𝑢𝑏 の形で表現(𝑙𝑏, 𝑢𝑏:ベクトル)

lb ub

Page 10: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

11

1.最適化UIの起動

2.アルゴリズム選択

3.目的関数を指定

4. 初期値設定

5. スタート

答え!

Page 11: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

12

準備:関数ハンドル (@)

「@」によって

– 無名関数の作成

– MATLAB関数を変数としてワークスペースへ保存

などといったことができる

特に最適化ソルバーなどのように「関数を入力引数」とするような場合には必須のテクニック

ex)

>> integral( @sin, 0, pi )

Page 12: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

13

Optimization ToolboxTM

Page 13: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

14

大域的最適化問題Grobal Optimization ToolboxTM

複数の極小値/極大値を持つ関数の最小値/最大値を見つけたい

⇒ 局所探索ソルバーは初期値依存性が強く、大域的な最適解の探索が困難

大域的最適解

局所解

Page 14: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

15

PATTERN SEARCH

DIRECT SEARCH

パターン探索

Page 15: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

16

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search – Iteration 反復1与えられた初期値 x0から出発します。

x

y

3

Page 16: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

17

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search – Iteration 反復1pattern vectorの方向に移動して目的関数を評価(poll)

x

y

3

Mesh size = 1

Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]

0_*_ xvectorpatternsizemeshPnew

0]0,1[*1 x1.6

0.4

4.6

2.8

First poll successful

Complete Poll (not default)

Page 17: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

18

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search – Iteration 反復2

x

y

3

Mesh size = 2

Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]

1.6

0.4

4.6

2.8

-4

0.3-2.8

Complete Poll

Page 18: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

19

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search – Iteration 反復3

x

y

3

Mesh size = 4

Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]

1.6

0.4

4.6

2.8

-4

0.3-2.8

Page 19: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

20

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search – Iteration 反復4

x

y

3

Mesh size = 4*0.5 = 2

Pattern vectors = [1,0], [0,1], [-1,0], [0,-1]

1.6

0.4

4.6

2.8

-4

0.3-2.8

Page 20: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

21

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Pattern Search – Iteration 反復N停止条件を満たすまで探索範囲の伸縮expansion/contractionを繰り返す

x

y

31.6

0.4

4.6

2.8

-4

0.3-2.8

-6.5

Page 21: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

22

Pattern Search パターン探索とは?

現在地から決まった方向に対して最適解を探します。

より良い解が見つからないときは、探索の範囲を拡張・収縮します。

勾配に依存しません。微分可能 smooth な問題と微分不可能 nonsmooth な問題の両方に適応できます。

Page 22: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

23

パターン探索:山の標高データから最高峰を探す

Page 23: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

24

では、様々なソルバーから適したものを選ぶには…

Page 24: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

25

目的関数と制約によるソルバーの選択Optimization Toolbox

線形 二次 最小二乗法 滑らかな非線形 滑らかでない

なし なし quadprog ¥,

lsqcurvefit,

lsqnonlin

fminsearch,

fminunc

fminsearch,

*

範囲 linprog quadprog lsqcurvefit,

lsqlin,

lsqnonlin,

lsqnonneg

fminbnd,

fmincon,

fseminf

fminbnd, *

線形 linprog quadprog lsqlin fmincon,

fseminf

*

一般的な滑らか

fmincon fmincon fmincon fmincon,

fseminf

*

制約条件

目的関数

Page 25: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

26

目的関数と制約によるソルバーの選択Optimization Toolbox

+ Global Optimization Toolbox

線形 二次 最小二乗法 滑らかな非線形

滑らかでない

なし なし Quadpro

g

¥,

lsqcurvefit,

lsqnonlin

fminsearc

h,

fminunc

fminsearch,

simulatedannealbnd,

patternsearch, ga,

Particleswarm

範囲 linprog quadpro

g

lsqcurvefit,

lsqlin,

lsqnonlin,

lsqnonneg

fminbnd,

fmincon,

fseminf

fminbnd,

simulatedannealbnd,

patternsearch, ga,

Particleswarm

線形 linprog quadpro

g

lsqlin fmincon,

fseminf

patternsearch, ga

一般的な滑らか

fmincon fmincon fmincon fmincon,

fseminf

patternsearch, ga

離散 Linintprog,

ga

ga ga ga ga

目的関数

Page 26: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

27

Global Optimization Toolboxソルバ一覧

ソルバ 特徴 勾配依存

並列計算

マルチスタートMultistart

• 複数の開始点の全ての点の最適解を計算• 勾配ベースの局所探索ソルバを利用

O ✓

グローバルサーチGlobal Search

• 複数の開始点から優良点を選択し最適解を計算• 勾配ベースの局所探索ソルバを利用

O

焼きなまし法Simulated Annealing

• 単一の開始点から最適解を探索• 乱数/温度変化により解の収束性/多様性を表現

X

パターンサーチPattern Search

• 単一の開始点から勾配を使用せず、メッシュ上の点で評価することにより最適解を探索

• メッシュの伸縮により最適解を探索

X ✓

遺伝的アルゴリズムGeneric Algorithm

• 複数の開始点で最適解を探索• 交差、突然変異などの遺伝的操作により解の収束性/

多様性を表現• 多目的最適化に対応

X ✓

粒子群最適化Particle Swarm

(R2014b-)

• 複数の開始点で最適解を探索• 各粒子/近隣の粒子の履歴より速度を決定• 多目的最適化に対応

X ✓

Page 27: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

46

GENETIC ALGORITHM遺伝的アルゴリズム

Page 28: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

47

Genetic Algorithm 遺伝的アルゴリズムとは?

遺伝生物学の考えに基づいています。

第一世代と呼ばれる複数の変数のセットから評価を始めます。

第二世代以降は、選択selection、交叉 crossover、突然変異 mutationにより、次世代の変数セットが決められていきます。

Page 29: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

48

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Generation 1第一世代の目的関数を評価

x

y

Page 30: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

49

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Generation 1次世代に継承するための良い個体を選択

x

y

Page 31: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

50

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Generation 2次世代の生成と目的関数の評価

x

y

Page 32: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

51

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Generation 2

x

y

Page 33: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

52

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Generation 3

x

y

Page 34: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

53

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Generation 3

x

y

Page 35: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

54

-3 -2 -1 0 1 2 3-3

-2

-1

0

1

2

3

Genetic Algorithm – Generation N停止条件を満たすまで世代交代を繰り返す

x

y

Solution found

Page 36: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

55

用語

局所解/大域解 Local solution / Global solution

線形/非線形 linear/nonlinear

目的関数-適応度関数 Objective Function - Fitness

Function

等式制約/不等式制約 Equality Constrain / Inequality

Constrain

計画法 Programing

微分可能/微分不可能 Smooth/ Non-smooth

決定論的/確率論的 Deterministic / Stochastic

Page 37: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

56

1.曲線近似(最小二乗法)lsqcurvefit

teccty 21

)(

),ccf( ][ 21

2

1

c

cy

係数

残差

Page 38: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

57

),x,,xxf( n ][ 21

nx

x

x

2

1方程式の右辺

出力y

未知数

2.連立方程式の求解 fsolve

0][

0][

0][

213

212

211

),x,,xx(f

),x,,xx(f

),x,,xx(f

n

n

n

Page 39: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

58

)y,x,,yxf( ],[ 151511

15

15

1

1

y

x

y

x

白の面積

y

円の

中心座標

3.携帯基地局の最適配置 fmincon

Page 40: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

59

4.多目的最適化 fgoalattain

ガントリークレーンのゆれ角θ

移動中のゆれ角が小さい! 移動後のゆれがない!

Page 41: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

60

)t,tt(f f ],[ 211

ft

t

t

2

1

入力 出力

青い部分の面積

最大

ゆれ角

4.多目的最適化 fgoalattain

)t,tt(f f ],[ 212

𝑤1

𝑤2

Page 42: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

61

4.多目的最適化 fgoalattain

パレート図

青い部分の面積

最大

ゆれ角

Page 43: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

62

Item Nuts Bolts

Gadget 5 2 3.00$

Widget 3 8 10.00$

Requirements Revenue

per Item

5. 変数が整数の問題

仕様

問題– 現在の在庫 29 nuts / 34 bolts

– Gadgets と widgets を何個づつ作れば利益最大?

Page 44: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

63

最適化問題として考えられます

fmincon

3.8235 gadgets

3.2941 widgets

– 四捨五入で整数にしてみる

4 gadgets

3 widgets

linintprog 混合整数計画問題 (MILP) のソルバ(R2014aより)

1 gadgets

4 widgets

$44.11(実現不可能)

$42.00

$43.00

Page 45: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

64

5. 変数が整数の問題

発電機起動停止問題

現在ある燃料で利益を最大化する稼動スケジュールは?

– 条件

起動レベル三段階

OFF/MED/MAX

起動時にコストがかかる

使用燃料に上限あり

過去48時間の

電力価格データを利用

0 0 0 0 1 0 0 1 0 0

0 0 0 0 0 1 1 0 1 0

MED

MAX

Page 46: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

65

),x,,xxf( ][ 3021

30

2

1

x

x

x

電気の売却益

y

目的関数として表現

各時刻の

起動レベル

Page 47: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

66

6. 金融商品の自動取引戦略 ga

一定期間の価格データと経済指標のデータがあります。

0と1の列で、戦略の組み合わせを表現します。

Signal 1 Signal 2 Signal 3AND OR

1 0 0 1 0 1 1 1 1 1

Sig

nal 1

Sig

nal 2

Sig

nal 3

AND ORSignals

Active?

Page 48: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

67

),b,,bbf( ][ 1021

10

2

1

b

b

b

-1×利益

y

目的関数として表現

売買シグナル

の選び方

過去の価格データに対し戦略を適応して売買をした

として利益を計算。

Page 49: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

68

MATLABによる最適化

並列化による高速計算

MATLAB環境の活用

GUIによるアプリ化

豊富なアルゴリズム

解の質と計算時間

Page 50: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

69

Training Services

MATLAB トレーニング

MATLAB & Simulink を

もっと活用しませんか?

EXPO 展示コーナーでトレーニングテキストを閲覧可能です!

Page 51: 最適化入門 - MathWorks...–Gadgets とwidgets を何個づつ作れば利益最大? 63 最適化問題として考えられます fmincon 3.8235 gadgets 3.2941 widgets –四捨五入で整数にしてみる

70

MathWorks展示部分

Drone

Nao

TurtleBot

Mars Rover