• 検索結果がありません。

<数理計画モデル>

N/A
N/A
Protected

Academic year: 2021

シェア "<数理計画モデル>"

Copied!
49
0
0

読み込み中.... (全文を見る)

全文

(1)

<数理計画モデル>

・線形計画問題

・ネットワーク計画問題

・非線形計画問題

・組合せ計画問題

(2)

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

B1 70 B2 40

B3 60 A2 80

A1 90

A1 4 7 12 A2 11 6 3

B1 B2 B3 注文量 生産量 輸送コスト

<輸送問題>

(3)

<変数>

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

<制約条件>

x11 + x12 + x13 = 90 x21 + x22 + x23 = 80

工場A1,A2

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

での生産量

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

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

(4)

<目的関数>

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

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

A1 A1

B1

B2 B3 x11

x12

x21 x13

x22

x23 90

80

70

-40

-60 輸送ネットワーク

(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)}

(6)

ネットワーク計画

・最小木問題

・最短路問題

・最長路問題(PERT:日程計画)

・最大流問題

・最小費用流問題

・マッチング問題(割当問題)

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

(7)

最小木問題

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

最小木:長さ最小の全域木

ai

:枝

ei

の長さ

(8)

3

8

10

15

9 11

12

3

8

10

15

9 11

12

(9)

<クラスカル法>

(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

(10)

A

B

C F

E D G

5

4

8 6

2 2

7

4 5

3

1 2

3

2

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

最短路問題

(11)

<最適性の原理>

P

:節点

s

から

t

への最短路

最短路Pのどの一部分を取り出しても,その 両端の節点間の最短路になっている.

aij

:枝

(ij)

の長さ

d(i)

:節点

s

から節点

i

への最短路の 長さの上限値

p(i)

:節点

s

から節点

i

への最短路において

節点

i

の直前に位置する節点

(12)

50

80

15

20 10

30

15

50

80

15

20 10

30

15 0

(50)

(80)

(13)

50

80

15

20 10

30

15 50

(80)

50

80

15

20 10

30

15 (70)

(65)

0

50

0

(14)

50

80

15

20 10

30

15 (70)

65

50

0

50

80

15

20 10

30

15 (70)

65

50

0 (95)

(15)

50

80

15

20 10

30

15 70

65

50

0 (95)

50

80

15

20 10

30

15 70

65

50

0 85

(16)

<ダイクストラ法>

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

である節点v Sを選ぶ.

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

E.Dijkstra (1959)

d(i):=∞ (iV{s})とおく.

(1) SVなら計算終了.そうでないなら,

d(v)min{d(i)i S}

d(j)d(v)avj ならば d(j) := d(v) avj

(v,j) EjSp(j):= v とし,ステップ(1)へ.

(17)

<計算の複雑さ>

計算量:アルゴリズムが停止するまでに実行 される演算の総数

大きさNの問題をf(N)回の演算で解くこと

ができる 計算量O(f(N))

f(N)Nのべき乗で表される

多項式時間アルゴリズム f(N)が2 NN

指数時間アルゴリズム

(18)

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

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

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

計算量が爆発的に増加

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

クラスPに属する 多項式時間(polynomial time NP困難な問題:多項式時間アルゴリズムの存在が知られ

ていない

非決定計算による多項式時間(nondeterministic polynomial time

(19)

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

アルゴリズムの反復回数:節点数 n ステップ(1)O(n2)

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

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

(20)

A

B

C F

E

G D

5

4

8 6

2

7

4 5

3

1

3

2

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

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

最長路問題

(21)

<PERT:日程計画>

PERT(program evaluation and review technique)

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

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

D.G.Malcolm (1950年代後半) 作業名 先行作業 所要日数

A B C D E F G H I J K

A A C B F E H H D, ,G

I, J

1 1 1 3 2 1 1 7 1 2 1

(22)

0

1 2 3

6 7 9 10

4 5 8

B,1

A,1

C,1 E,2

D,3 F,1

G,1

H,7 J,2 K,1

I,1

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

(23)

0

1 2 3

6 7 9 10

4 5 8

1

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からの最長路の長さ 最早時刻=

(24)

A

B

C F

E D G

5

4

8 6

2

7

4 5

3

1

3

2 7

5 18

13

19

21

(25)

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

A

B

C E

D

F

120

80

80 100 20 30

60

10 30 50

100

130

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

70

90

40

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

(26)

最大流問題

目的関数: 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}

(iV{s,t})

s:ソース t:シンク 制約条件:

0 xij uij ((i,j)E)

流出量

流入量

流れ保存則

容量制約条件

(27)

5

4

1

3 5

3

ソース 8 シンク

5

4

1

3 5

3

ソース 8 シンク

1フロー

4フロー

(28)

x=(xij) :フロー f:フローxの流量

i j

uxij uxji

uxij= uij xij uxji= xij

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

uxij uxji :フローxに対する枝(i,j)の残余容量 Gx=(V,Ex) :フローxに対する残余ネットワーク フロー増加路:残余ネットワークにおける

ソースからシンクへの路

(29)

2

3

4

1 3(2) 5(0) 5

1(1)

3(1)

4(4) 5(3)

8(6) フローの例 2

3

4

1 2 5 5

1

2

4 2

6

残余ネットワーク

3 1

2

1

(30)

5(1)

4(4)

1(1)

3 5

3(1)

ソース 8(4) シンク

1フロー

4フロー

2

3

4

1 5 5

1

2

4 4

4

残余ネットワーク

1 3

4

1

(31)

2

3

4

1 5 5

1

2

4 4(3)

4 1 3(3)

4(3) 1

3フロー

2

3

4

1 5 5

1

2

4 1

7

残余ネットワーク

4 3

1

1

(32)

2

3

4

1 5 5

1

2

4 1

7

残余ネットワーク

4 3

1

1

5(4)

4(4)

1(1)

3(3) 5

3(1)

ソース 8(7) シンク

最大流

8フロー

(33)

<フロー増加法>

(0) 適当な初期フローxを定める (例えば xij=0) (1)フロー増加路を見つける.

存在しなければ計算終了.

(2)フロー増加路に沿って可能な限りフローを追

加し,新しいフローxを得る.ステップ(1)に戻る.

(34)

最大流最小カット定理

カット(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*) フロー増加法の終了時点

(35)

5(4)

4(4)

1(1)

3(3) 5

3(1)

ソース 8(7) シンク

最大流

8フロー

5(4)

4(4)

1(1)

3(3) 5

3(1)

ソース 8(7) シンク

最小カット

容量8

(36)

最大流問題の計算量

フロー増加法(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)

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

(37)

最小費用流問題

目的関数: cijxij 最小

Σ xij Σ xji bi

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

(iV)

制約条件:

0 xij uij ((i,j)E)

需要・供給量 容量制約条件

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

Σ bi 0

iV

(38)

1

2 4

3

3,5

8,15 4,7

2,10 5,15

10

15 25

0

<最小費用流問題>

(39)

1

2 4

3

3,5(5)

8,15(10) 4,7(5) 2,10(10)

5,15(15) 10

15 25

0

1

2 4

3

-3,5

8,5 4,2

-2,10 -5,15

10

15 25

0 -4,5

-8,10

残余ネットワーク 負閉路

コスト:423= 1 2フロー

(40)

<負閉路除去法>

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

(1)残余ネットワークGx=(V,Ex)において負閉路 を見つける.存在しなければ計算終了.

(2)負閉路に沿って可能な限りフローを追加し,

新しいフローxを得る.ステップ(1)に戻る.

(41)

1

2 4

3

s 3,5 t

8,15 4,7

2,10 5,15

0,15 0,10

0,25

f25 Σ bi

bi>0 (iV)

usi=bi uit=bi

csi=cit =0

(42)

最小費用流問題

目的関数: 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}

(iV{s,t})

s:ソース t:シンク 制約条件:

0 xij uij ((i,j)E)

流出量

流入量

流れ保存則

容量制約条件

(43)

<フロー増加法>

(0) 適当な初期フローxを定める (例えば xij=0) (1)残余ネットワークGx=(V,Ex)においてソース

からシンクへの最短路を求める . 存在しなければ計算終了.

(2)最短路に沿って可能な限りフローを追加し,

新しいフローxを得る.流量= f になれば計算 終了.そうでなければステップ(1)に戻る.

(44)

最小費用流問題の計算量

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

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

フロー増加法:O(n2f)

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

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

改良版:O(n2m3log n)

(45)

最小費用循環流問題

目的関数: cijxij 最小

Σ xij Σ xji 0

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

(iV)

制約条件:

lij xij uij ((i,j)E)

流れ保存則 容量制約条件

(46)

1

2 4

3

s 3,5 t

8,15 4,7

2,10 5,15

0,15 0,10

0,25

0,(25,25)

(47)

マッチング問題

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

A

B

C E

D

F

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

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

(48)

割当問題

2部グラフ

2部グラフの最大マッチング 計算量:O(n2.5)

最大流問題

2部グラフの最適k-割当 計算量:O(kn2) 最小費用流問題

(49)

ソース シンク

1 1

1 1 1

1 1 1 1 1

参照

関連したドキュメント

Jones

情報理工学研究科 情報・通信工学専攻. 2012/7/12

Tomonari KITAHARA and Shinji MIZUNO (TIT) 単体法と強多項式アルゴリズム July 21–23, 2015 5 / 53..

22年度 23年度 24年度 25年度 配置時間数(小) 2,559 日間 2,652 日間 2,657 日間 2,648.5 日間 配置時間数(中) 3,411 時間 3,672 時間

19年度 20年度 21年度 22年度 配置時間数(小) 1,672 日間 1,672 日間 2,629 日間 2,559 日間 配置時間数(中) 3,576 時間 2,786 時間

年度 2013 2014 2015 2016 2017 2018 2019.

モノづくり,特に機械を設計して製作するためには時

【留意事項】 手続きに時間がかかる場合がある