最適化ワークショップ 整数計画法の発展と応用...

67
最最最最最最最最最最 最最最最最最最最最最最 最最最最最最最最最最最最 最最最最最最最最 最最最最 最最最最最最最最最最最最最最 2013 最 5 最 22 最 最最 最最最最最最最最最最最 ()

Upload: jeb

Post on 11-Feb-2016

120 views

Category:

Documents


0 download

DESCRIPTION

最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法. 藤江哲也 兵庫県立 大学大学院経営研究科 2013 年 5 月 22 日(水)  九州 大学伊都キャンパス. 内容. 整数計画問題とは 整数 計画問題 の 例(ナップサック問題、分割問題) 整数 計画法の Short History , 分枝限定法 整数計画による定式化について おわりに. 線形計画問題. A 社では ,テーブルとチェアを製造 販売 している.それぞれ製造工程が2つあり,1個当たり所要時間、利益、および製造工程の使用可能時間が 次のよう に与えられて いる. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

最適化ワークショップ 整数計画法の発展と応用

整数計画法チュートリアル:モデリング

と解法

藤江哲也兵庫県立大学大学院経営研究科

2013 年 5 月 22 日(水) 九州大学伊都キャンパス

Page 2: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

内容

整数計画問題とは

整数計画問題の例(ナップサック問題、分割問題)

整数計画法の Short History ,分枝限定法

整数計画による定式化について

おわりに

2

Page 3: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

線形計画問題

A 社では,テーブルとチェアを製造販売している.それぞれ製造工程が2つあり,1個当たり所要時間、利益、および製造工程の使用可能時間が次のように与えられている.

テーブルとチェアはすべて売れるものとした場合,利益を最大にするにはテーブルとチェアをそれぞれ1日当たり何個製造すればよいか.

3

テーブル チェア 使用可能時間工程1 2 時間 2 時間 7 時間工程2 3 時間 5 時間 14 時間

利益 4 千円 5 千円

Page 4: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

最大化

x1

x2

O 1 2 3

1

2

線形計画問題

4

0,1453722

54

21

21

21

21

xxxxxx

xxz条件最大化

テーブル チェア 使用可能時間工程1 2 時間 2 時間 7 時間工程2 3 時間 5 時間 14 時間

利益 4 千円 5 千円

x1 x2

(x1, x2) = (7/4, 7/4)

z = 63/4 = 15.75

最適解

722 21 xx

1453 21 xx

054 21 xxz

554 21 xxz

1054 21 xxz

75.1554 21 xxz

Page 5: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

x1

x2

O 1 2 3

1

2

整数計画問題(整数線形計画問題)

5

整数

条件最大化

:,0,

1453722

54

21

21

21

21

21

xxxx

xxxx

xxz

テーブル チェア 使用可能時間工程1 2 時間 2 時間 7 時間工程2 3 時間 5 時間 14 時間

利益 4 千円 5 千円

x1 x2

最大化

(x1, x2) = (1, 2)

z = 14

最適解

Page 6: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

混合整数計画問題

MIP (Mixed Integer Programming)整数条件:一部またはすべての変数

6

整数

条件最大化

:0,

1453722

54

1

21

21

21

21

xxx

xxxx

xxz

(x1, x2) = (2, 3/2)

z = 31/2=15.5

最適解

x1

x2 最大化

O 1 2 3

1

2

Page 7: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

混合整数計画問題( MIP Problems )

7

),,1(:),,1(0

),,1(1

1

pjxnjx

mibxa

xc

j

j

i

n

jjij

n

jjj

整数

条件

最小化

線形計画問題+ 変数の整数条件」「

)( np

pnp

T

RZxx

bAxxc

0

条件最小化または

Page 8: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

線形計画と整数計画

線形計画はクラスP(多項式時間)

代表的解法

   単体法(シンプレックス法)

   内点法個人用PCでも、数万変数、数万制約以上の問題を

解くことができる

整数計画はNP困難8

Page 9: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

混合整数計画問題( MIP Problems )

0-1 変数(バイナリ変数)

より、  0-1 変数も 「整数変数+線形不等式」 で記述できる

しかし、 0-1 変数は整数変数と区別されるのが一般的

高い表現能力

0-1 の特性に基づくアルゴリズム開発

9

Page 10: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

アイテム j 1 2 3 4 5 6

価値 pj 10 3 16 2 10 3

重さ wj 3 4 7 2 4 5

例)ナップサック問題

10

ナップサックの容量c = 14

重さの合計が容量以下という制約の下で,価値の合計が最大になる組み合わせを求めよ

重さの合計 = 4 + 7 + 2 = 13 <= 14

価値の合計 = 3 + 16 + 2 = 21

Page 11: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)ナップサック問題

11

10,,,14542743

310216310

621

654321

654321

または条件最大化

xxxxxxxxx

xxxxxx

を選ばないときアイテムを選ぶときアイテム

jj

x j 01

とすると

アイテム j 1 2 3 4 5 6

価値 pj10 3 16 2 10 3

重さ wj3 4 7 2 4 5

x1=1 のとき 3

x1=0 のとき 0

Page 12: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)ナップサック問題

12

)(10 Jjx

cxw

xp

j

Jjjj

Jjjj

または

条件

最大化

一般に

)(1,0 Jjx j と書くことも多い

Page 13: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)分割問題

13

(1,2,5,7,8,9) を,合計が等しくなるように2つの集合に分割できるか?

を,合計が等しくなるように2つの集合に分割できるか?

一般に

とするとき, Find s.t.

Page 14: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)分割問題

14

),,1(}1,0{

2/

0

1

1

njx

Axa

x

j

n

jjj

条件

最大化

)(0

)(1Ijj

Ijjx j を選ばないとき

を選ぶときとする

),,1(}1,0{

2/1

1

njx

Axa

xa

j

n

jjj

n

jjj

条件

最大化

0

),,1(}1,0{

2/1

s

njx

Asxa

s

j

n

jjj

条件

最小化

方法1

方法 2

Page 15: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)分割問題

15

(1,2,5,7,8,9) を,合計が等しくなるように3つの集合に分割することができるか?⇔  スケジューリング問題 ( P||Cmax )

1 2

5

9

7

8

機械 1機械 2機械 3

13

Page 16: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)分割問題

16

1 2

5

9

7

8

機械 1機械 2機械 3

s=12

),,1;,,1(}1,0{

),,1(1

),,1(

1

1

njmix

njx

misxa

s

j

m

iij

n

jijj

条件

最小化

),(}1,0{

)(1

max

1

1

jix

jx

xa

j

m

iij

n

jijjj

条件

最小化

Page 17: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)分割問題

17

),,1;,,1(}1,0{

),,1(1

),,1(

1

1

njmix

njx

mitxa

t

j

m

iij

n

jijj

条件

最大化

),(}1,0{

)(1

min

1

1

jix

jx

xa

j

m

iij

n

jijjj

条件

最大化

1

2

5

9

7

8

機械 1機械 2機械 3

12t=10

Page 18: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)分割問題

18

),,1;,,1(}1,0{

),,1(1

),,1(

),,1(

1

1

1

njmix

njx

mitxa

misxa

ts

j

m

iij

n

jijj

n

jijj

条件

最小化

),(}1,0{

)(1

minmax

1

11

jix

jx

xaxa

j

m

iij

n

jijjj

n

jijjj

条件

最小化

1

2

5

9

7

8

機械 1機械 2機械 3

s=12t=10

Page 19: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

例)分割問題

実行可能解を求める問題(実行可能性判定問題)

⇒ 最適化問題として考えることができる( cf. SAT とMaxSat )

※ 最適化問題 → 実行可能性判定

   の解が既知 → を満たす解が存在するか?

実問題では,制約をすべてを満たすことが困難 / 無理な場合が多く見られる

  ⇒ ハード制約とソフト制約に分類

  ⇒ ソフト制約をなるべく満たす ⇒ 最適化問題 分割問題その他の目的関数(評価基準)?

機械ごとに重みをつける?分散最小化? 19

Page 20: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

2次関数の線形化

0-1 変数の場合、2次関数を線形化することができる ・ ・

同様に多項式も線形化できる 0-1 変数を使うと,一般の非線形関数 の近似ができる

(次ページ)

20

xi

xj

yij

1 1

1

Page 21: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

非線形関数 の区分線形近似

 

  

  

  

21

x

y

(𝑥1 , 𝑓 (𝑥1 ))

(𝑥2, 𝑓 (𝑥2))

(𝑥𝐾 , 𝑓 (𝑥𝐾 ))

Page 22: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

非凸集合の表現

離接( disjunctive )制約

22

}1,0{

22

)1(22

21

21

y

Myxx

yMxx

big-M(十分大きい数)

x1

x2

1 2

1

2

O

Page 23: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

その他 0-1 変数を用いた表現

0-1 変数 : 「採用 / 不採用」 「 Yes/No 」 「 true/false 」 ...

例1)

例 2 ) a, b のうち高々1つを採用

例 3 ) のうち高々個を採用

例 4 ) a を採用 → b を採用

23

Page 24: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

その他 0-1 変数を用いた表現

固定費付き

施設配置 

24

𝑥

𝑧 𝑧=𝑑𝑥+ 𝑓

∑𝑥 𝑗

openornot

big-M

big-M

Page 25: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

整数計画問題による定式化

“ 文章題”による例題では適用範囲が狭い印象を与える

しかし、実際には幅広い適用可能性がある0-1 変数非線形、非凸の問題をカバー実行可能解を求める問題(実行可能性判定)を最適化問題とし

て捉える

定式化はいろいろ問題の捉え方による表現の違い同じ問題でも...(→ 後述)

25

Page 26: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

整数計画について

① 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い

    巡回セールスマン問題、スケジューリング問題、...

 ⇒ 整数計画問題が解けることはインパクトが大きい

② ただ、整数計画問題は解くのが困難であった 組合せ最適化問題のように、問題固有の構造を持たない 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い

整数計画問題   :実行可能性判定も一般にNP完全

⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった

③ しかし、 1990年代以降、整数計画ソルバーが目覚ましく進展

④ それに伴い、整数計画が利用しやすくなっている26

問題によっては現在も必要

Page 27: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

整数計画について

① 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い

    巡回セールスマン問題、スケジューリング問題、...

 ⇒ 整数計画問題が解けることはインパクトが大きい

② ただ、整数計画問題は解くのが困難であった 組合せ最適化問題のように、問題固有の構造を持たない 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い

整数計画問題   :実行可能解を求めることも一般にNP完全

⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった

③ しかし、 1990年代以降、整数計画ソルバーが目覚ましく進展

④ それに伴い、整数計画が利用しやすくなっている27

Page 28: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

整数計画について

① 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い

    巡回セールスマン問題、スケジューリング問題、...

 ⇒ 整数計画問題が解けることはインパクトが大きい

② ただ、整数計画問題は解くのが困難であった 組合せ最適化問題のように、問題固有の構造を持たない 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い

整数計画問題   :実行可能解を求めることも一般にNP完全

⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった

③ しかし、 1990年代以降、整数計画ソルバーが目覚ましく進展

④ それに伴い、整数計画が利用しやすくなっている28

Page 29: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

② Short History

1958年 R. E. Gomory"Outline of an Algorithm for Integer Solutions to Linear Programs", Bulletin of the American Mathematical Society

全整数計画問題小数カットに基づく切除平面法

( cutting plane algorithm )有限回の繰り返しで最適解が得られる

29

最小化

LP 解LP 解

LP 解=最適解!

Page 30: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

② Short History

1960年 R. E. Gomory“An algorithm for the mixed integer problem”, Technical Report RM-2597, The Rand Corporation

混合整数計画問題 (MIP)カットの提案 (Gomory Mixed Integer cut : GMI cut)

1960年 A. Land and A. Doig"An Automatic Method for Solving Discrete Programming Problems", Econometoricaなど

分枝限定法の提案

30

Page 31: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

31

分枝限定法

緩和法の原理

pnp

T

RZxx

bAxxc

0

(MIP)

条件最小化

LP緩和問題

n

T

Rxx

bAxxc

0

(LP)

条件最小化

元問題

Page 32: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

32

分枝限定法

(MIP) の実行可能領域 (LP) の実行可能領域

[ 定理(緩和法の原理) ]

( R1 ) (MIP) の最適値    (LP) の最適値

( R2) (LP) の最適解 x* が整数条件を満たす ⇒ x* は (MIP) の最適解

( R3 ) (LP) が実行不能 ⇒ (MIP) も実行不能

目的関数値(最小化)

(MIP) の最適値

(LP) の最適値

(MIP) の実行可能解

下界値

暫定値(上界値)下げたい

上げたい

Page 33: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

33

分枝限定法

(LP) を解く. (LP) の最適解 x* が整数条件を満たせば終了

( R2 より).

さもなければ変数 xt を選び,    に固定した問題

(MIP1) と

に固定した問題 (MIP2) を生成する(分枝操作)

*tt xx

*tt xx

例) x3 に関する分枝操作

MIP

MIP1 MIP2

23 x 33 x

pnp

T

RZxx

bAxxc

0

(MIP)

条件最小化

pnp

T

RZxxx

bAxxc

20

)(MIP

3

1

条件最小化

pnp

T

RZxxx

bAxxc

30

)(MIP

3

2

条件最小化

Page 34: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

34

分枝限定法

限定操作 子問題 (MIPk) に対する限定操作

(LPk) が実行不能 ⇒ (MIPk) は実行不能 ( R3 より)1

(LPk) の最適解 xk ,最適値 zk  とする

2-1 xk が整数 ⇒  xk は (MIPk) の最適解 ( R2 より)よって, zk < z* (暫定値) ならば, z* = zk と更新する zk ≥ z* (暫定値) ならば, (MIPk) の中に最適解はない( R1 より)

(MIPk) の緩和問題 (LPk) を解く

2

3 1 でも 2 でもなければ分枝操作を行う

2-2

Page 35: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

35

分枝限定法

整数

条件最小化

:,0,04063

10232)MIP(

21

21

21

21

21

xxxxxx

xxxx

Ox1

x2 最小化

0,04063

10232)LP(

21

21

21

21

xxxx

xxxx

条件最小化

x2

下界値

Ox1

例題

Page 36: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

36

分枝限定木(列挙木)

分枝限定法

P

P2

x1 ≤ 2 x1 ≥ 3

P1

P3 P4

P5 P6

P7 P8

z = -190/9(20/9,50/9) z*=+∞

z1 = -21(2,17/3)

x2 ≤ 5 x2 ≥ 6

z3 = -19(2,5)

z*=-19

z4 = -62/3(4/3,6)

z5 = -41/2(1,37/6)

z6 = -20(1,6)z*=-20 実行不能

実行不能

z2 = -18(3,4)

x1 ≤ 1 x1 ≥ 2

x2 ≤ 6 x2 ≥ 7

最適解 (1,6)最適値 -20

Page 37: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

37

分枝限定法

目的関数値

時間

暫定値(上界値)

下界値

Page 38: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

38

分枝限定法

MIP

MIP1 MIP2

23 x 33 x z下界値

zz 1

分枝前の

zz 2 zzz 21,min下界値

分枝後の

の下界値ノード下界値グローバルな min

)(i

i

一般に・・・

Page 39: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

分枝限定法

近年は分枝カット法(分枝限定法+カット)が主流 分枝限定法 / 分枝カット法の実装にあたって

子問題の選択 ( Node selection ) 下界値優先 (Best Bound) :下界値の良い(小さい)子問

題を優先 評価値優先 (Best Estimate ):評価値の良い子問題を優先深さ優先 ( Depth First ) :分枝されたばかりの子問題

を優先する

分枝変数の選択 ( Variable selection )前処理 ( Preprocessing )による定式化の強化カット (Cutting plane)ヒューリスティック ( Heuristic )

・・・39

Page 40: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

② Short History

ともに線形計画をベースとする解法 実用的には分枝限定法切除平面法 : 最適解への収束が遅い、数値誤差がたまる、解法途中で実行

可能解が得られない

組合せ最適化問題ごとに解法を開発※巡回セールスマン問題

・ 1954年 G. Dantzig, R. Fulkerson and S. M. Johnson, “Solution of a Large-scale Traveling-salesman", Operations Research・ 1990年 M. Padberg and G. Rinaldi, “A Branch-and-cut algorithm for the Resolution of Large-scale Symmetric

Traveling Salesman Problems", SIAM Review・ 1997年 D. L. Applegate, R. E. Bixby, V. Chvátal and W. J. Cook,

“The Traveling Salesman Problem: A Computational Study”, Princeton University Press

40

Page 41: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

整数計画について

① 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い

    巡回セールスマン問題、スケジューリング問題、...

 ⇒ 整数計画問題が解けることはインパクトが大きい

② ただ、整数計画問題は解くのが困難であった 組合せ最適化問題のように、問題固有の構造を持たない 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い

整数計画問題   :実行可能解を求めることも一般にNP完全

⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった

③ しかし、 1990年代以降、整数計画ソルバーが目覚ましく進展

④ それに伴い、整数計画が利用しやすくなっている41

Page 42: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

③ 1990年代に整数計画ソルバーが急速に進展

計算機パワーの増大

高速でロバストな線形計画ソルバーの開発

分枝カット法=分枝限定法+切除平面法1990年 M. Padberg and G. Rinaldi (巡回セールスマン問題 )

Gomory カット( GMI cut )の適用1996年 E. Balas, S. Ceria, G. Cornuejols and N. Natraj, “Gomory Cuts Revisited", Operations Research Letters

42

Page 43: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

③ ソルバーの進展(分枝限定法の効率化)

子問題の選択分枝変数の選択前処理による定式化の強化カットヒューリスティクス

Constraint Programming との融合

対称性

優越テスト

並列化(マルチスレッド)

※ロバストな線形計画ソルバーが必要

43

Page 44: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

整数計画について

① 整数条件による高い表現能力 ⇒ 整数計画問題は様々な組合せ最適化問題を含み、応用例も多い

    巡回セールスマン問題、スケジューリング問題、...

 ⇒ 整数計画問題が解けることはインパクトが大きい

② ただ、整数計画問題は解くのが困難であった 組合せ最適化問題のように、問題固有の構造を持たない 組合せ最適化問題:実行可能解を求めるのは容易な場合が多い

整数計画問題   :実行可能解を求めることも一般にNP完全

⇒ 組合せ最適化問題ごとに解法を開発するのが一般的であった

③ しかし、 1990年代以降、整数計画ソルバーが目覚ましく進展

④ それに伴い、整数計画が利用しやすくなっている44

Page 45: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

④ 整数計画ソルバーを使用する

商用 FICO Xpress (Fair Isaac Corporation) Gurobi Optimizer (Gurobi Optimization) IBM ILOG CPLEX (IBM) LINDO (LINDO Systems) NUOPT ( 数理システム ) SOPT (Saitech, Inc.) Excel Solver (Frontline Systems) ・・・・・

フリー COIN/CBC GNU GLPK lp_solve SCIP ・・・・・

45

     

       

: H. Mittelmann による

      ベンチマー

ク比較  

Page 46: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化について

定式化とは?  ⇒ 実行可能解集合を正しく表現する「不等式系+整数条件」

46

Page 47: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化について

定式化は複数ありうる変数の定義の仕方によっても(大きく)異なる

(復習)現在の整数計画ソルバー : 線形計画ベースの分枝カット法

  ⇒ 緩和の強い定式化が望ましい

現在では、緩和を強化する機能を備えた整数計画ソルバーも多い前処理( Presolve, Preprocessing )緩和の強化に加え、不要な変数・制約式の除去なども行う

47

Page 48: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化について

とは言え、緩和の強い定式化が望ましい

  ※その意味で、 big-M を含む定式化は慎重に

また、変数・制約式が少ない定式化が望ましい

どちらを優先的に考えるかはケースバイケース

48

次のスライド

Page 49: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

x1

x2

1 2

1

2

O

Big-M を含む問題例

49

最大 化∧𝑧=2𝑥1+3 𝑥2

条 件∧𝑥1+2𝑥2≤ 2または2𝑥1+𝑥2 ≤ 2¿ 𝑥1 ,𝑥2 ≥ 0

最大 化∧𝑧=2 𝑥1+3 𝑥2

条 件∧𝑥1+2𝑥2− 2≤𝑀 (1− 𝑦)2𝑥1+𝑥2− 2 ≤𝑀𝑦𝑥1 , 𝑥2 ≥ 0 , 𝑦∈ {0,1 }

MIP の最適解

LP の最適解 の場合

Page 50: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化の例1:数独

7 5 49 3 1

6 3 8 4 73 6 9 2

5 9 1 38 2 5 7

4 3 1 7 59 6

9 1 2 7 4

7 2 1 9 5 8 6 4 34 5 9 7 6 3 1 2 86 3 8 4 1 2 5 7 91 7 3 6 8 4 9 5 25 9 4 1 2 7 3 8 68 6 2 3 9 5 4 1 72 4 6 8 3 1 7 9 53 8 7 5 4 9 2 6 19 1 5 2 7 6 8 3 4

•  あいているマスに 1-9 までのどれかの数字を入れる。 •  縦・横の各列及び、太線で囲まれた 3×3 のブロックに同じ数字が入ってはいけない。

Wikipedia の「数独」より

50

Page 51: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

数独の定式化

方法1

方法2

)りマスに入る数字(つま 91),(: ijij xjix

そうでないとき

のときマスに入る数字が0

),(1 kjixijk

T. Koch, "Rapid Mathematical Programming or How to Solve Sudoku Puzzles in a Few Seconds", Operations Research Proceedings 2005

51

Page 52: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化:方法1

njix

kx

njixkjikjixx

kinkjixx

jnjixxyarbitraril

ij

ij

ij

ckrjcir

kjij

iij

kji

,1,:

),,1,(9133;3,2,1,,,1

;,,1,,1

;,,1,,1

),(

)1(3,)1(3)1(3,)1(3

整数

条件最小化

のときマスが初期配置で

n = 9

)りマスに入る数字(つま 91),(: ijij xjix

52

Page 53: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化:方法1

10,

1

8

8

1

またはbb

bb

bxb

bxb

xxxx

xx

iij

iij

注1

注2),,(entall_differ 1 ini xx

constraint programming の分野では

という表現をする53

Page 54: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化:方法2

nkjix

x

nkcrx

nkjx

nkix

njix

yarbitraril

ijk

ijk

r

ri

c

cjijk

n

iijk

n

jijk

n

kijk

kji

,1,,101

,1;3,2,1,1

,,1,1

,,1,1

,,1,1

),(

3

1)1(3

3

1)1(3

1

1

1

またはのときマスが初期配置で

条件

最小化

そうでないとき

のときマスに入る数字が0

),(1 kjixijk

54

Page 55: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化の比較

定式化1変数 3970 (一般整数変数 2025 、 0-1 変数 1944 )制約 4860 +固定制約数計算時間 41.5秒( Intel Core2 Duo [email protected], メモ

リ 2.0GB, CPLEX 12.5 )※ Koch の論文によると、 CPLEX9.03 では 6 時間経っても解けなかった

定式化2変数 729 ( 0-1 変数 729 )制約 346 +固定制約数計算時間 0.02秒

55

Page 56: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

巡回セールスマン問題( TSP )

Traveling Salesman Problem

56

各都市をちょうど1回ずつ訪問し、出発地点に戻ってくる閉路(巡回路)の中で、ウェイト(距離、時間等)の合計が最小となるものを求めよ

兵庫県 TSP

Page 57: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

(非対称)巡回セールスマン問題

12

34

5

6

12

34

5

6

含まれないとき

きが巡回路に含まれると:0

),(:1 jixij

巡回路

として定式化

都市数: n

都市 i から j への移動距離: cij

i j

cij

cji

cij = cji を仮定しない

Asymmetric Traveling Salesman Problem(ATSP)

57

Page 58: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化( Dantzig-Fulkerson-Johnson, 1954 )

),,1,(10

)1,1,(1

),,1(1

),,1(1

,

1

1

1 1

njix

SSVSSx

njx

nix

xc

ij

Sjiij

n

iij

n

jij

n

i

n

jijij

または

条件

最小化

(ATSP-DFJ)

部分巡回路除去制約

出る辺は1本

入る辺は1本

i

j

58

Page 59: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

部分巡回路除去制約

Dantzig-Fulkerson-Johnson (1954)  再掲

)1||,1,(1||,

SSVSSxSji

ij

部分巡回路( subtour )

12

3

4

5

6 1

}2,1{

2112

xx

S

3

}6,5,4,3{

6556354334

xxxxx

S

59

Page 60: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

部分巡回路除去制約の表現

Miller-Tucker-Zemlin (1960)

),,2,()1)(1(1),,2(2

11

njixnuuninu

u

ijji

i

(ATSP-MTZ)

iu ・・・ノード i を訪れる順番示す変数変数の数は n 増加したが,制約式の数が大幅に減少

60

Page 61: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

部分巡回路除去制約の表現

実際は変数の数も制約式の数も増えている

Sherali-Driscoll (2002)

),,2()1()3()1(

)3()1(1

),,2,()1(

)1)(1()2(

),,2,()2(

),,2(1

),,2()1(

11

11

1

11

njxxnnu

xnx

njixuyy

xnxnu

njixnyx

njuy

niuxny

jjj

jj

jiijiij

ijijj

ijijij

ji

ij

iij

ij

(ATSP-SD)

ijiij xuy

・・・ (ATSP-MTZ) の強化

61

Page 62: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

部分巡回路除去制約の表現

Gouveia-Pires (1999, 2001)

),,2,(10

),,2,,(1

),,2,(1

),,2,(1

),,2,(

njiy

nkjiyyx

njiyx

njiyy

njiyx

ij

kjkiij

jiij

jiij

ijij

または

先行しないとき

に先行するときが:0:1 ji

yij

(ATSP-GP)

(ATSP-GP1)

(ATSP-GP2)(ATSP-GP3)

(☆)

(☆)の強化

62

Page 63: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

部分巡回路除去制約の表現

Wong (1980)

),,1,(0

),,2,(0

),,2(0

),,2(1

),,2(0

),,2(1

),,2;,,1,(

21

1

1

21

21

njiy

nkjyy

nky

nky

nky

nky

nknjixy

ij

n

k

kji

n

i

kij

n

j

kkj

n

i

kik

n

i

ki

n

i

ki

ijkij

unit)th -(kflow: 量kijy

(ATSP-FL)

63

Page 64: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

定式化の比較( att48 : 48都市)

変数 制約式初期LP IP最終解

目的関数値 時間(秒) 上界値 下界値 誤差 時間

(秒)MTZ 2304 2258 8490.11 0.01 10628 10377.77 2.35% >1800

SD 4465 8932 10070.29 1.43 10628 10523.99 0.98% >1800

GP 4418 101710 9954.50 0.27 11042 10136.65 8.20% >1800

GP1 4418 101757 10041.50 0.49 10685 10313.33 3.48% >1800

GP2 4418 101757 10053.50 0.47 10719 10308.47 3.83% >1800

GP3 4418 199047 10053.50 1.75 11072 10204.43 7.84% >1800

FL 112848 108384 10604.00 236.95 10628 10628.00 0.00% 628.00

Intel Core2 Duo [email protected], メモリ 2.0GB, CPLEX 12.2

64

Page 65: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

余談

Excel Solver の「 all different 」を使った解法 (att48の例 )

65

Page 66: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

余談

巡回セールスマン問題は「 Concorde 」が有名

66

Page 67: 最適化ワークショップ 整数計画法の発展と応用 整数計画法チュートリアル:モデリングと解法

おわりに

まとめ1 整数計画問題:「解けない」から「解ける」へ   MIP :汎用的 → インパクトが大きい 現在の MIP ソルバー = LPベースの分枝カット法  ⇒ 苦手な問題の種類もある( big-M を含む問題など)

まとめ2 問題の捉え方によって定式化が異なる 変数の設定方法によって定式化が異なる  ⇒「悪い定式化」になる可能性も しかし、まずは定式化をしてみる

安心のため...強引な定式化でも、今のソルバーなら解けてしまうかも

67