<数理計画モデル>

36
数数数数数数数数 <> 数数数数数数 数数数数数数数数数数 数数数数数数数 数数数数数数数

Upload: abel-hammond

Post on 31-Dec-2015

28 views

Category:

Documents


11 download

DESCRIPTION

<数理計画モデル>. ・線形計画問題 ・ネットワーク計画問題 ・非線形計画問題 ・組合せ計画問題. <輸送問題>. A 社は2つの工場 A 1 ,A 2 で製品を生産し、3つの取引先 B 1 ,B 2 ,B 3 に納入している。. 輸送コスト. 注文量. 生産量. B 1 B 2 B 3. B 1 70. A 1 90. B 2 40. A 1 4 7 12. A 2 80. B 3 60. A 2 11 6 3. <変数>. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: <数理計画モデル>

<数理計画モデル>

・線形計画問題

・ネットワーク計画問題

・非線形計画問題

・組合せ計画問題

Page 2: <数理計画モデル>

A 社は2つの工場 A1,A2 で製品を生産し、3つの取引先 B1,B2,B3 に納入している。

B1 70

B2 40

B3 60A2 80

A1 90A1 4 7 12

A2 11 6 3

B1 B2 B3

注文量 生産量 輸送コスト

<輸送問題>

Page 3: <数理計画モデル>

<変数>xij :工場 Ai から取引先 Bj への輸送量 (i= 1,2 ; j= 1,2,3)

<制約条件>x11 + x12 + x13 = 90x21 + x22 + x23 = 80

工場 A1,A2

x11 + x21 = 70x12 + x22 = 40x13 + x23 = 60

での生産量

取引先B1,B2,B3の注文量

xij 0 ≧ (i= 1,2 ; j= 1,2,3) 輸送量の非負条件

Page 4: <数理計画モデル>

<目的関数>

4x11 + 7 x12 + 12 x13 + 11x21 + 6x22 + 3x23

輸送コストの総和が最小となるようにする

A1

A2

B1

B2

B3

x11

x12

x21

x13

x22

x23

90

80

-70

-40

-60輸送ネットワー

Page 5: <数理計画モデル>

   ネットワークモデル< グラフとネットワー

ク>

有向グラフ

点:節点,ノード矢印:枝,アーク

枝 (i,j): 節点 i から節点 j への枝

V :節点全体の集合E :枝全体の集合

V={1,2,3,4}

E={(1,2), (1,3), (2,4),

(3,2),(3,4),(4,2)}

Page 6: <数理計画モデル>

ネットワーク計画

・最小木問題

・最短路問題

・最長路問題(PERT:日程計画)・最大流問題・最小費用流問題・マッチング問題(割当問題)

線形計画問題の特別な場合

Page 7: <数理計画モデル>

 最小木問題

木:閉路を含まない連結グラフ

最小木:長さ最小の全域木ai :枝 ei の長

Page 8: <数理計画モデル>

<クラスカル法>(0) グラフ G の枝を短い順に並べ、 a1 ≦

a2 ≦・・・ ≦ am を満たすように枝 ei の番号(添字)を付けかえる.T:= {e1} , k := 2

とおく.(1) 枝集合T∪ {ek} が閉路を含まないならば、 T:=T∪ {ek} とする.

(2) Tが G の全域木になっていれば計算終了.さもなければ k := k+1 としてステッ

プ (1) へ.

J.B.Kruskal (1956)

欲張り法( Greedy Algorithm )

Page 9: <数理計画モデル>

A

B

C F

E

GD

5

48

6

22

7

4 5

3

1 2

3

2

路の例: A→C→D→E→F→G

 最短路問題

Page 10: <数理計画モデル>

<最適性の原理>

P :節点 s から t への最短路最短路 P のどの一部分を取り出しても,

その両端の節点間の最短路になっている.

aij :枝 (i , j) の長さd(i) :節点 s から節点 i への最短路の 長さの上限値p(i) :節点 s から節点 i への最短路において   節点 i の直前に位置する節点

Page 11: <数理計画モデル>

<ダイクストラ法>

(0) S := φ , S := V , d(s) := 0 ,

である節点 v S∈ を選ぶ.

(2) S := S {v}∪ , S := S - {v}) とする.

E.Dijkstra (1959)

d(i) :=∞ (i V∈ - {s}) とおく.

(1) S = V なら計算終了.そうでないなら,

d(v) = min{d(i) | i S}∈

d(j) > d(v) + avj ならば d(j) := d(v) + avj ( (v,j)

E∈ , j S∈ )p(j) := v とし,ステップ (1) へ.

Page 12: <数理計画モデル>

<計算の複雑さ>

計算量:アルゴリズムは停止するまでに実行     される演算の総数大きさNの問題を f(N) 回の演算で解くことができる     計算量O(f(N))f(N) が N のべき乗で表される

多項式時間アルゴリズムf(N) が2 N や N !指数時間アルゴリズム

Page 13: <数理計画モデル>

<多項式時間アルゴリズム>

大規模な問題に対しても効率的である

<指数時間アルゴリズム>

計算量が爆発的に増加

多項式時間アルゴリズムが存在する問題

クラス P に属する 多項式時間( polynomial time )

NP 困難な問題:多項式時間アルゴリズムの存在が知られ                                           ていない非決定計算による多項式時間( nondeterministic polynomial

time )

Page 14: <数理計画モデル>

<ダイクストラ法の計算量>

アルゴリズムの反復回数:節点数 n

ステップ (1) : O(n2)

ステップ (2) : O(m)    (m :枝数 )

アルゴリズム全体の計算量: O(n2 + m) = O(n2) m ≦n2

Page 15: <数理計画モデル>

A

B

C F

E

GD

5

48

6

2

7

4 5

3

1

3

2

アサイクリックグラフ:閉路を含まない有向グラフ

計算量: O( | V |+| E| )

 最長路問題

Page 16: <数理計画モデル>

<PERT:日程計画>PERT(program evaluation and review technique)

プロジェクトなどの工程管理

アメリカ海軍のポラリス潜水艦開発計画

D.G.Malcolm ら (1950 年代後半 )

作業名  先行作業  所要日数

ABCDEFGHIJK

--AACBFEHH

D, ,G

I, J

11132117121

Page 17: <数理計画モデル>

0

1 2 3

6 7 9 10

4 5 8B,1

A,1

C,1 E,2

D,3

F,1

G,1

H,7 J,2 K,1

I,1

<プロジェクト・ネットワーク>

Page 18: <数理計画モデル>

0

1 2 3

6 7 9 10

4 5 81

1

1 2

3

1

1

7 2 1

1

1

1

0

0

1

2

2

3

2

2

4

4

4

4

11

11

12

13

13

13

14

14

クリティカルパス

最早時刻最遅時刻

(臨界路)

点0からの最長路の長さ

最早時刻=

Page 19: <数理計画モデル>

A

B

C F

E

GD

5

48

6

2

7

4 5

3

1

3

2

7

5 18

13

19

21

Page 20: <数理計画モデル>

<最大流問題と最小費用流問題>

A

B

C E

D

F

120

80

80

100

3020

60

10 30 50

100

130

A :ソース(フローを送り出す節点)

70

90

40

F :シンク(フローが流入する節点)

Page 21: <数理計画モデル>

 最大流問題

目的関数:   f     最大

   Σ    xsj -  Σ    xjs   =  f {j|(s,j) E}∈ {j|(j,s) E}∈

Σ    xij -  Σ    xji   =  0{j|(i,j) E}∈ {j|(j,i) E}∈

Σ    xtj -  Σ    xjt   =  - f {j|(t,j) E}∈ {j|(j,t) E}∈

(i V∈ - {s,t})

s :ソース

t :シンク制約条件:

0 ≦ xij ≦ uij ((i,j) E)∈

流出量

流入量

流れ保存則

容量制約条件

Page 22: <数理計画モデル>

x=(xij) :フロー

f :フロー xの流量

i j

uxij

uxji

uxij= uij - xij

uxji= xij

あるフロー xが与えられているとする

uxij , ux

ji :フロー xに対する枝 (i,j) の残余容量Gx=(V,Ex) :フロー xに対する残余ネット

ワークフロー増加路:残余ネットワークにおける         ソースからシンクへの路

Page 23: <数理計画モデル>

2

3

4

1 53(2) 5(0)

1(1)

3(1)

4(4)

5(3)

8(6) フローの例2

3

4

1 52 5

1

2

4

2

6

残余ネットワーク

3 1

2

1

Page 24: <数理計画モデル>

<フロー増加法>

(0) 適当な初期フロー xを定める ( 例えば xij=0)(1) フロー増加路を見つける.存在しなければ計算終了.

(2) フロー増加路に沿って可能な限りフローを追 加し,新しいフロー xを得る.ステップ(1) に戻る.

Page 25: <数理計画モデル>

 最大流最小カット定理

カット (S,T) :節点集合 V をソースsを含む集合 S と シンクtを含む集合 T に分割したものC(S,T) :カット (S,T) の容量 C(S,T) =   Σ uij

(i,j) (S,T)∈

f = Σ xij -  Σ xji ≦C(S,T)    

(i,j) (S,T)∈ (j,i) (T,S)∈

f * = C(S*,T*)

    フロー増加法の終了時点

Page 26: <数理計画モデル>

 最大流問題の計算量

フロー増加法 (Ford, Fulkerson(1956)) :O(mfmax)=O(m2U) , U=max{uij|(i,j) ∈E}

Edmonds, Karp (1969) : O(m2n)

Dinic (1970) : O(mn2)

プリフロープッシュ法 (Goldberg, Tarjan) :O(mn2)改良版: O(n2m1/2)

多項式時間アルゴリズムではない

Page 27: <数理計画モデル>

 最小費用流問題

目的関数:   cijxij     最小

Σ    xij -  Σ    xji   =  bi

{j|(i,j) E}∈ {j|(j,i) E}∈(i V)∈

制約条件:

0 ≦ xij ≦ uij ((i,j) E)∈

需要・供給量

容量制約条件

cij :枝 (i,j) の1単位の流れに対するコストΣ   bi = 0

i V∈

Page 28: <数理計画モデル>

<負閉路除去法>

(0) 適当な初期フロー xを定める

(1)残余ネットワーク Gx=(V,Ex) において負閉路 を見つける.存在しなければ計算終了.(2) 負閉路に沿って可能な限りフローを追加し, 新しいフロー xを得る.ステップ (1) に戻る.

Page 29: <数理計画モデル>

1

2 4

3

s t3,5

8,15

4,7

2,10 5,15

0,15

0,10

0,25

f = 25 =Σ   bi

bi>0 (i V)∈

usi=bi

uit= - bi

csi=cit =0

Page 30: <数理計画モデル>

 最小費用流問題

目的関数:   cijxij      最小

   Σ    xsj -  Σ    xjs   =  f {j|(s,j) E}∈ {j|(j,s) E}∈

Σ    xij -  Σ    xji   =  0{j|(i,j) E}∈ {j|(j,i) E}∈

Σ    xtj -  Σ    xjt   =  - f {j|(t,j) E}∈ {j|(j,t) E}∈

(i V∈ - {s,t})

s :ソース

t :シンク制約条件:

0 ≦ xij ≦ uij ((i,j) E)∈

流出量

流入量

流れ保存則

容量制約条件

Page 31: <数理計画モデル>

<フロー増加法>

(0) 適当な初期フロー xを定める ( 例えば xij=0)(1)残余ネットワーク Gx=(V,Ex) においてソース  からシンクへの最短路を求める .存在しなければ計算終了.

(2) 最短路に沿って可能な限りフローを追加し, 新しいフロー xを得る.流量= f になれば計算 終了.そうでなければステップ (1) に戻る.

Page 32: <数理計画モデル>

 最小費用流問題の計算量

負閉路除去法:反復回数 =O(mCU)

C=max{c ij|(i,j) ∈E}, U=max{uij|(i,j) ∈E}

フロー増加法: O(n2f)

Goldberg, Tarjan(1988) : O(nm2 log2 n)

多項式時間アルゴリズムではない改良版: O(n2m3log n)

Page 33: <数理計画モデル>

 最小費用循環流問題

目的関数:   cijxij      最小

Σ    xij -  Σ    xji   =  0{j|(i,j) E}∈ {j|(j,i) E}∈

(i V)∈

制約条件:

lij ≦ xij ≦ uij ((i,j) E)∈

流れ保存則

容量制約条件

Page 34: <数理計画モデル>

1

2 4

3

s t3,5

8,15

4,7

2,10 5,15

0,15

0,10

0,25

0,(25,25)

Page 35: <数理計画モデル>

 マッチング問題

マッチング M ( M E⊂ ):どの相異なる2つの枝            k,l M∈ も端点を共有しない

A

B

C E

D

F

最大マッチング問題の計算量: O(n3)最適 k- マッチング問題の計算量:O(kn2)

Page 36: <数理計画モデル>

 割当問題

2部グラフ 2部グラフの最大マッチ

ング 計算量:O(n2.5)最大流問題

2部グラフの最適 k- 割当

計算量:O(kn2)最小費用流問題