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

3.最小費用フロー問題

N/A
N/A
Protected

Academic year: 2021

シェア "3.最小費用フロー問題"

Copied!
30
0
0

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

全文

(1)

数理計画法 第 10

ネットワーク計画

3.最小費用フロー問題

担当: 塩浦昭義

(

情報科学研究科 准教授

)

[email protected]

(2)

復習:最大フロー問題

目的:供給点

s

から需要点

t

にフローをたくさん流したい 条件1(容量条件):

0

≦ 各枝を流れるフローの量 ≦ 枝の容量 条件

2

(流量保存条件):

頂点から流れ出すフローの量= 流れ込むフローの量

3 4 5

2 1

s

b a

t

問題例と定式化

(3)

応用:供給・需要を満たすフローを求める

3 4 1

3

6 2

d 9

b

c a

g

入力:有向グラフ

G = (V, E)

各枝

(i, j)

E

の容量

uij

0

各頂点

i

V

の供給・需要量

bi

(ただし

bi

の和は0)

(bi >0 i

は供給点,

bi<0 i

は需要点

) 3

4 -2

0

-5

出力:次の条件を満たすフロー

各頂点

i

V

での供給・需要条件

i

から流出するフロー量)

ー(

i

に流入するフロー量)=

bi

各枝

(i, j)

の容量条件

0

xij

uij

3 3 1

3 0 1

4

(4)

応用:供給・需要を満たすフローを求める

3 4 1

3

6 2

d 9

b

c a

g

3

4 -2

0

-5

最大フロー問題に帰着する

s

t (1)新たな頂点 s(供給点), t(需要点) を追加

(2)bi > 0 ならば枝(s, i)を追加,容量はbi (3)bi < 0 ならば枝(i, t)を追加,容量は - bi (4)最大フローを求める.

(5)各枝(s, i)に対し xsi = bi 供給・需要を満たすフローが得られる それ以外供給・需要を

満たすフローは存在しない

3

4

2 3 5

3 1

3 0 1

4 3

4

2 5

需要・供給を 満たすフローが

存在

(5)

応用:上下限制約を満たすフローを求める

[3, 4]

[1,4]

[1, 5]

[2,6]

[1, 4]

b d a c

入力:有向グラフ

G = (V, E)

各枝

(i, j)

E

フローの上限値

uij,

下限値

lij (0

lij

uij)

出力:次の条件を満たすフロー

各頂点

i

V

での流量保存条件

i

から流出するフロー量)

ー(

i

に流入するフロー量)=0

各枝

(i, j)

の上下限条件

lij

xij

uij

4 3

4

3 1

(6)

応用:上下限制約を満たすフローを求める

[3, 4]

[1,4]

[1, 5]

[2,6]

[1, 4]

b d a c

供給・需要を満たすフロー(

lij=0

)を求める問題に帰着する

流量保存条件を無視して, xij = lij というフローを流す

流量保存条件が成り立っているOK

流量保存条件が成り立っていない

各枝のフローを増加させることにより,

流量保存条件を満たすようにする

3 1

1 2

1 b d

a c

どのようにして フローを増加

させるか?

(7)

応用:上下限制約を満たすフローを求める

[3, 4]

[1,4]

[1, 5]

[2,6]

[1, 4]

b d a c

3 1

1 2

1 b d

a c

(入ってくるフロー量: 1

< (出て行くフロー量: 3

入ってくるフローを2だけ増やしたい 現在のフロー量は xij = lij

増加できる量は 最大で uij – lij

(入ってくるフロー量: 2

> (出て行くフロー量: 1

出て行くフローを1だけ増やしたい

(8)

応用:上下限制約を満たすフローを求める

[3, 4]

[1,4]

[1, 5]

[2,6]

[1, 4]

b d a c

供給・需要を満たすフローを求める問題に帰着される

1 3

4 4

3 b d

a c 1

-2

-1

2

この問題のフロー

xij

が得られた

xij + lij

は元の問題のフロー

(許容解)

1 2

3

1 0

4 3

4

3 1

(9)

最小費用フロー問題の定義

需要点

3,7

1,8 5,3

2,7

4,2

3,1

6,1 2,9

9,4

s

d b

c a

t

枝の容量

入力:有向グラフ

G = (V, E)

供給点

s

V,

需要点

t

V,

需要(供給)量α

> 0

各枝

(i, j)

V

の容量

uij

0,

費用

cij

出力:需要供給を満たすフローで総費用が最小のもの

供給点 枝の費用

供給点から 需要点へ

α

= 6

だけ流す

(10)

最小費用フロー問題の定式化

{xsj | (s,j)

s

から出る

}

- ∑

{xis | (i,s)

s

に入る

} =

α

{xtj | (t,j)

t

から出る

}

- ∑

{xit | (i,t)

t

に入る

} =

-α

{xkj | (k,j)

k

から出る

}

- ∑

{xik | (i,k)

k

に入る

} = 0 (k

V

– {s, t}) 最小化 ∑

{ cij xij | (i,j)

∈E

}

条件

0

xij

uij ( (i,j)

E )

各枝の費用

×フロー量 の和 各枝の容量条件

各頂点での

流量保存条件 需要供給量に

関する条件

(11)

需要供給を満たすフローの求め方

3,7

1,8 5,3

2,7

4,2

3,1

6,1 2,9

9,4

s

d b

c a

t

(1)人工問題として最大フロー問題を作る

(2)人工問題の最大フローにおいて

f =

α ⇒ 現在のフローは需要供給を満たす

f <

α ⇒ 需要供給を満たすフローは存在しない

s’ t

容量α 容量α

各枝の費用は無視

(12)

フローの最適性判定

2,2 4,1

3,8 2,5

s

b a

t

どうやって最小費用フローであることを判定するか?

--- 残余ネットワークの利用 問題例

3,3

供給量

4

需要量

4 0

3

1 1

s

b a

t

3

フローの費用=

25

最小か?

フローの例

(13)

残余ネットワークの作り方(その1)

最大フローのときとほとんど同じ作り方

x = (xij | (i,j)

E):

現在のフロー

フロー

x

に関する残余ネットワーク

Gx= (V, Ex) Ex = Fx

Rx

順向きの枝集合

Fx = { (i, j) | (i, j)

E, xij < uij}

容量

uxij = uij – xij,

費用

cij

i j

xij < uij

i j

容量

uij - xij

逆向きの枝集合

Rx = { (j, i) | (i, j)

E, xij > 0}

容量

uxji = xij,

費用

- cij

i j

xij > 0

i j

容量

xij

費用

- cij

費用

cij

(14)

残余ネットワークの作り方(その2)

2,2 4,1

3,8 2,5

s

b a

t

問題例

3,3

0 3

1 1

s

b a

t

3

フローの例

1,5

s

b a

t

3,-3

1,-8 2,8 3,-1 1,1

残余ネットワーク

2,2

1,-5

(15)

残余ネットワークの性質(その1)

残余ネットワークの閉路に注目

閉路の容量α

=閉路に含まれる枝の容量の最小値

=1

閉路の費用γ

=閉路に含まれる枝の費用の和

=-5

1,5

s

b a

t

3,-3

1,-8 2,8 3,-1 1,1

2,2

1,-5

(16)

残余ネットワークの性質(その2)

0 3

1 1

s

b a

t

フローの例

3

残余ネットワーク

残余ネットワークの閉路を用いてフローを更新

閉路の容量α

=1

閉路の費用γ

=-5

閉路の枝と

同じ向き⇒フロー値に+α 逆の向き⇒フロー値にーα 無関係⇒フロー値は不変

+1

+1 -1

1,5

s

b a

t

3,-3

1,-8 2,8 3,-1 1,1

2,2

1,-5

この更新により、フローの

費用はαγ(=-

5

)増加

(17)

残余ネットワークの性質(その3)

定理1:残余ネットワークに費用が負の閉路が存在

⇒ フローの費用を減少させることが可能

⇒ 現在のフローは費用最小でない 以上の議論より、以下が成り立つ

実は、逆も成り立つ(証明は後で)

定理2:現在のフローは費用最小でない

⇒ 残余ネットワークに費用が負の閉路が存在

(18)

残余ネットワークの性質(その4)

1 4

0 1

s

b a

t

3

修正後のフロー 残余ネットワーク

費用が負の閉路がない

⇒ 現在のフローは費用最小

1,5

s

b a

t

3,-3

2,8 4,-1

1,2

1,-5 1,-2

費用5

費用4

(19)

負閉路消去法

最小費用フローを求めるためのアルゴリズム

ステップ0:人工問題を解いて、需要供給量を満たす フローを求める

ステップ1:現在のフローに関する残余ネットワークを作る ステップ2:残余ネットワークに費用が負の閉路が

存在しない⇒ 現在のフローは費用最小(終了)

ステップ3:残余ネットワークの費用が負の閉路を求め、

それを用いて現在のフローを更新する

ステップ4:ステップ1へ戻る

(20)

レポート問題

問1: 以下のようなネットワークを考える.

[a, b]は各枝のフロー量xの上下限(a: 下限値, b: 上限値)を表す.

このネットワークにおいて,枝のフロー量の上下限制約を満たし,

かつ全ての頂点において流量保存条件を満たすフローを求めたい.

(1)この問題を,需要・供給を満たすフローを求める問題に 帰着しなさい.

(2)帰着して得られた問題の解を1つ求めなさい.

(3) (2)の結果を使い,元の問題の解を1つ求めなさい.

[3, 8]

[2,5]

[4, 5]

[3,6]

[2, 7]

b d a c

(21)

レポート問題

問2: 次の最小費用フロー問題に対して、

(1)定式化せよ

(2)与えられた初期フローに対して負閉路消去法を適用し,

最小費用フローを求めよ(途中の計算過程も省略せず書くこと)

(a)

2,2 4,1

3,8 2,5

s

b a

t

3,3

需要供給量4

0 3

1 1

s

b a

t

3

初期フロー

(22)

レポート問題

問3: 次の最小費用フロー問題に対して、

(1)定式化せよ

(2)与えられた初期フローに対して負閉路消去法を適用し,

最小費用フローを求めよ(途中の計算過程も省略せず書くこと)

(b)

s

z c

a 1

3

t b

y

(y, t), (z, t) の容量は3,それ以外の枝の容量は1

s から出る枝と t に入る枝の費用は0,それ以外は各枝の数値を参照

2

2 3

需要供給量=3 初期フロー

1 s

z c

a 1

0

t b

y 3

1 1

1

1 0 0

0 1

(23)

応用:プロ野球リーグの優勝可能性 判定と最大フロー問題

アメリカ ナショナルリーグ東地区の順位表

エクス ポス メッツ

フィ リーズ ブレー

ブス

0 2

1 82

エクス 77

ポス

0 0

6 78

メッツ 78

2 0

1 79

フィ 80

リーズ

1 6

1 71

ブレー 83

ブス

残り試合数 負け

勝ち

各チームの優勝可能性を判定したい

× 残り全勝して

80

勝止まり エクスポスの

優勝可能性

(24)

プロ野球リーグの優勝可能性判定 と最大フロー問題

アメリカ ナショナルリーグ東地区の順位表

エクス ポス メッツ

フィ リーズ ブレー

ブス

0 2

1 82

エクス 77

ポス

0 0

6 78

メッツ 78

2 0

1 79

フィ 80

リーズ

1 6

1 71

ブレー 83

ブス

残り試合数 負け

勝ち

メッツが

84

0 0 0

フィリーズの 優勝可能性

1 2

×

残り試合全勝で

83

勝 ブレーブスが全敗で 同じ勝ち数に

6

(25)

プロ野球リーグの優勝可能性判定 と最大フロー問題

アメリカ ナショナルリーグ東地区の順位表

エクス ポス メッツ

フィ リーズ ブレー

ブス

0 2

1 82

エクス 77

ポス

0 0

6 78

メッツ 78

2 0

1 79

フィ 80

リーズ

1 6

1 71

ブレー 83

ブス

残り試合数 負け

勝ち

各チームの優勝可能性を判定したい

83 81 84 80

全ての試合で 下位チームが 上位チームに 勝った場合

優勝の可能性は

ゼロではない

(26)

プロ野球リーグの優勝可能性判定 と最大フロー問題

では,次の場合は?(アメリカンリーグ東地区)

20 13 17 15 7

タイガー その他 ブルー

ジェイズ レッドソッ

クス オリオー

ルズ ヤンキー

0 0

4 3

86 49

タイガース

0 0

7 7

72 63

ブルージェイズ

0 0

2 8

66 69

レッドソックス

4 7

2 3

63 71

オリオールズ

3 7

8 3

59 75

ヤンキース

残り試合数

敗 勝

タイガースは残り試合全勝すると

76

ヤンキースの勝ち数以上

優勝の可能性?

最大フロー問題を使って判定ができる

他の地区所 属のチーム

との試合

(27)

プロ野球リーグの優勝可能性判定 と最大フロー問題

タイガースにとって都合の良いケースのみ考える

タイガースは残り全勝

東地区の他チームは他地区との試合において全敗 東地区の他チーム同士の試合結果のみ考えれば良い

どのようなケースにおいても77勝以上のチームが現れる

優勝の可能性なし

あるケースにおいては,他チームは全て76勝以下

優勝の可能性あり

需要供給を満たすフローを求める問題に帰着

需要供給を満たすフローが存在する 需要供給を満たすフローが存在しない

(28)

プロ野球リーグの優勝可能性判定 と最大フロー問題

ネットワーク の作り方

チームを表す頂点

対戦カードを表す 頂点(供給点)

Y O

R B

Y-O Y-R Y-B O-R O-B R-B t

需要点

3 8 7 2 7

容量=∞

0

容量=76

-(該当チーム

の現在の勝数)

供給量=残り 試 合数

需要量=27 残り試合数の

合計

1

5 7 13

需要供給を満たすフローが存在

優勝可能性が存在

(29)

プロ野球リーグの優勝可能性判定 と最大フロー問題

Y O

R B

Y-O Y-R Y-B O-R O-B R-B t

3 8 7 2 7 0

容量=76

-(該当チーム の現在の勝数)

供給量=残り 試 合数

需要量=27 残り試合数の

合計

1

5 7 13

YOの対戦カード から

合計3の勝数を YOに供給 Yは各対戦カー

ドから

勝数を受け取る Yの勝数はタイガー

スの最大勝ち数76 を超えてはいけない

(30)

演習問題(レポート提出の必要なし)

問題:ブルージェイズの優勝可能性を判定してみよ

参照

関連したドキュメント

学識経験者 小玉 祐一郎 神戸芸術工科大学 教授 学識経験者 小玉 祐 郎   神戸芸術工科大学  教授. 東京都

講師:首都大学東京 システムデザイン学部 知能機械システムコース 准教授 三好 洋美先生 芝浦工業大学 システム理工学部 生命科学科 助教 中村

一高 龍司 主な担当科目 現 職 税法.

乗次 章子 非常勤講師 社会学部 春学期 English Communication A11 乗次 章子 非常勤講師 社会学部 春学期 English Communication A23 乗次 章子

関谷 直也 東京大学大学院情報学環総合防災情報研究センター准教授 小宮山 庄一 危機管理室⻑. 岩田 直子

江口 文子 主な担当科目 現 職 消費者法 弁護士 現代人権論. 太田 健義

エドワーズ コナー 英語常勤講師(I.E.F.L.) 工学部 秋学期 英語コミュニケーションIB19 エドワーズ コナー

乗次 章子 非常勤講師 社会学部 春学期 English Communication A 11 乗次 章子 非常勤講師 社会学部 春学期 English Communication A 18 乗次 章子