辺容量付き電力需給ネットワーク *
丸田 真平
†a)西関 隆夫
†b)Parametric Power Supply Networks with Edge-Capacities
∗Shimpei MARUTA
†a)and Takao NISHIZEKI
†b)あらまし 辺容量付き電力需給ネットワークはグラフGで表現できる.Gの各点は供給点あるいは需要点で あり,供給量あるいは需要量が割当てられており,各辺には辺容量が割当てられている.パラメトリックネット ワークでは,供給量,需要量及び辺容量は変数λの関数である.各需要点は,丁度一つの供給点からグラフG の辺を通してその需要量だけの“電力”を受け取りたい.一方,各供給点は,幾つかの需要点へGの辺を通して
“電力”を送ることができるが,送る電力の合計はその供給量以下である.無論各辺を流れる電力フローはその辺 の容量以下でなければならない.このようなことが可能かどうか調べたい.また不可能ならば,全ての需要量を 一様にr(0≤r <1)倍に減少させて,そのようなことを可能にしたい.このようなrの最大値r∗を求めたい.
本論文では,木であるグラフGに対してこれらの問題を解くアルゴリズムを与える.
キーワード アルゴリズム,木,最大供給率問題,パラメトリックネットワーク,分割問題
1.
ま え が き辺容量付き電力需給ネットワークはグラフ
G
で表 現できる.G
の各点は供給点あるいは需要点であり,供給量あるいは需要量が割当てられており,各辺には 容量が割当てられている.(
G
に供給点が複数ありえる ことが,通常のネットワークフロー問題と大きく異な る.)供給点v
の供給量をs
vと表し,需要点v
の需要 量をd
vと表し,辺e
の容量をc
eと表す.定常ネット ワークでは,供給量,需要量及び辺容量が全て非負の 整定数である.一方,パラメトリックネットワークで は,供給量,需要量及び辺容量は,時刻,気温,原油 価格などを変数λ
とする関数である[1]
〜[6]
.このと き供給点v
の供給量をs
v(λ)
と表し,需要点v
の需要 量をd
v(λ)
と表し,辺e
の容量をc
e(λ)
と表す.グラ フG
が木である定常ネットワーク及びパラメトリック ネットワークを,それぞれ定常木ネットワーク及び パラメトリック木ネットワークと呼ぶ.図1
の定常木 ネットワークにおいて,供給点は正方形で,需要点は†関西学院大学理工学部情報科学科,三田市
Kwansei Gakuin University, 2–1 Gakuen, Sanda-shi, 669–
1337 Japan
a) E-mail: [email protected] b) E-mail: [email protected]
*本論文は学生論文特集秀逸論文である.
円で描かれており,供給量や需要量はその内側に書か れており,辺は直線分で描かれており,辺にその容量 が付けられている.図
2(a)
はパラメトリック木ネット ワークを表しており,そのλ
とともに変動する需要量d
v3(λ), d
v4(λ)
及び辺e = (v
3, v
5)
の容量c
e(λ)
は図2(b)
に描かれている.各需要点
v
は,丁度d
vだけの“
電力”
を一つの供給 点からグラフG
の辺を通して受け取りたい.一方,各 供給点v
はG
の辺を通して幾つかの需要点へ“
電力”
を送ることができるが,送る電力の合計はその供給量s
v以下でなければならない.このとき,グラフG
か ら何本か辺を除去してG
を幾つかの連結成分に分割し て,各成分には供給点が丁度一つ含まれ,その供給点 からその成分内の各需要点へその需要量だけの電力フ ローを流し,しかも各辺を流れるフローはその容量以 下であるようにしたい.(除去された辺にはフローは流 れない.)このような分割はグラフG
の許容分割と呼 ばれている[4], [7]
.定常ネットワークの分割問題は与 えられたグラフG
に許容分割があるかどうかを問う.パラメトリックネットワークの分割問題では,許容分 割をもつ変数値
λ
の全てを見つけたい.もし定常ネッ トワークG
に許容分割がないならば,0 ≤ r < 1
なる 実数r
を用い,全ての需要量d
vを一様にr
倍に減少 させて,新しい需要量をd
v= r · d
vとしたときに,G
図1 (a)許容分割のない辺容量付き木ネットワークT,
(b)最大供給率r∗ = 3/7に対する新しいネット ワークとその許容分割
Fig. 1 (a) Steady tree network T with no feasible partition, and (b) new network constructed from T for the maximum supply rate r∗ = 3/7.
に許容分割があるようにしたい.このような
r
の最大 値r
∗を見つけたい.このr
∗を最大供給率と呼び,r
∗ を計算する問題を最大供給率問題と呼ぶ[4]
.図
1(a)
の木T
には許容分割がなく,T
の最大供給率r
∗は3/7
である.T
の各需要量を新たにd
v= (3/7) · d
v にした新しい木を図1(b)
に示す.新しい木の許容分割 は図1(b)
で点線で表されている.各辺に付けられた 括弧の中の数字は,その辺を流れるフローの値である.分割問題は定常直並列ネットワークに対してすら
NP
完全であるので[8]
,最大供給率問題はNP
困難で ある.したがって,どちらの問題も,定常直並列ネット ワークに対してすら多項式時間では解くことができそ うもない.定常木ネットワークに限定すれば,分割問 題は線形時間で解くことができる[8], [9]
.一方,辺容 量がないならば,定常木ネットワークの最大供給率問 題が多項式時間で解け,パラメトリック木ネットワー クの分割問題が擬多項式時間で解けることが知られて いる[4]
.しかし,辺容量がある場合のアルゴリズムは 知られていなかった.本文では,まず文献
[4]
のアルゴリズムを拡張して,辺容量があっても定常木ネットワーク
T
の最大供給率 問題が多項式時間で解けることを示す.T
の点数をn
とし,T
の対数サイズ(すなわちT
の供給量や需要量 である整数を二進数表現したときのビット数の総和)を
L
とすると,そのアルゴリズムの計算時間はO(nL)
である.次に,辺容量付きパラメトリック木ネットワー クに対する分割問題を解くアルゴリズムを与える.供 給量,需要量及び辺容量が整数係数をもつ区分的線形 関数であるとき,そのアルゴリズムの計算時間は擬多 項式である.より正確にいうと,全ての需要量,供給 量及び辺容量の整数係数の絶対値の合計をW
とする と,そのアルゴリズムの計算時間はO(nW
2)
である.2.
定常木ネットワークの最大供給率問題 この節では,辺容量付き定常木ネットワークの最大 供給率問題が多項式時間で解けることを示す.T = (V, E)
を辺容量付き定常木ネットワークとする.V
は木T
の点集合であり,E
はT
の辺集合である.全ての供給点からなる集合を
V
sとし,全ての需要点か らなる集合をV
dとする.無論,V = V
s∪ V
dであり,V
s∩ V
d= ∅
である.n = |V |
,n
s= |V
s|
とする.定 常木ネットワークT
の許容分割π = (V
1, V
2, · · · , V
ns)
とは,集合V
のn
s個の部分集合V
1, V
2, · · · , V
nsへ の分割であり,1 ≤ i ≤ n
sなる各i
について次の(a)
及び(b)
を満足するものである.(a) V
i はT
の連結部分グラフ,すなわち部分木T
i を 誘 導 し ,V
i は 丁 度 一 つ の 供 給 点u
を 含 み ,v∈Vi/{u}
d
v≤ s
uである.(b)
部分木T
iの各辺e = (v, w)
を流れるフローの値ψ
eはe
の容量c
e以下である.すなわちψ
e≤ c
e である.なお,ψ
e=
x∈Des(w)
d
xである.ただ し,部分木T
iを供給点u
を根とする根付き木と みなしたときに辺e
の端点v
が端点w
の親である とき,点w
及びw
の全ての子孫からなる集合をDes( w )
とする.分割問題は,与えられた木
T
の許容分割を見つけ る問題である.辺容量付き定常木ネットワークに対す る分割問題をO(n)
時間で解くアルゴリズムは既に知 られている[9]
.そのアルゴリズムをPartition
と呼ぶ.
Partition
を繰り返し用いて,最大供給率問題を解く.
木
T
の最大供給率問題は,全ての需要点v
の需要 量d
vを新しい需要量d
v= r · d
vに置き換えたとき,T
に許容分割があるようなr
の最大値r
∗を求める問題である.
r
∗はT
の最大供給率と呼ばれる.r
∗は1
よりも大きいかもしれない.明らかに次の補題が成り立つ.
補題
1. r
は非負実数とし,木T
の全ての需要量d
vをd
v= r · d
vに置き換えたとき,T
に許容分割が存在す るとする.このとき0 ≤ r
≤ r
なる任意の実数r
に 対して,全ての需要量d
vをd
v= r
· d
vに置き換えた とき,T
に許容分割が存在する.したがって,アルゴリズム
Partition
を用い,二分 探索でr
∗が計算できる.しかし,全ての非負実数集 合上の二分探索で,最大供給率r
∗を計算しようとす ると,r
∗は正確に求まらないか,あるいは多項式時間 で計算が終了しない.提案手法のアイディアは,r
∗が 有理数であることに注意することである.補題
2. T = (V, E)
は定常木ネットワークであるとし,
S =
v∈Vs
s
v,D =
v∈Vd
d
v,C =
e∈E
c
e とすると,T
の最大供給率r
∗はr
∗∈ { C · S/z | z
は整数であり,C · D · S ≥ z ≥ 0 }
である.
証明
r
∗ はT
の 最 大 供 給 率 で あ る と す る .こ の と き点集合V
は部分集合V
1, V
2, · · · , V
ns に分割でき,1 ≤ i ≤ n
s なる各i
についてV
iは木T
の部分木T
i を 誘 導 し ,V
i に は 丁 度 一 つ の 供 給 点u
が あ り,v∈Vi/{u}
r
∗· d
v≤ s
uであり,部分木T
iの各辺e
に対してψ
e≤ c
e である.r
∗は最大供給率なので,1 ≤ i ≤ n
sなるあるi
について次の条件(i)
あるいは(ii)
が成立する.(i)
不等式v∈Vi/{u}
r
∗· d
v≤ s
uが等号で成立する.すなわち
v∈Vi/{u}
r
∗· d
v= s
uである.(ii) T
iのある辺e
= (v, w)
について,不等式ψ
e≤ c
e が等号で成立する.すなわちψ
e= c
eである.こ こでψ
e=
x∈Des(w)
r
∗· d
xである.なぜならば,どの
i
についても条件(i)
も(ii)
も成立 しないとすると,r
∗は最大供給率ではないことになっ てしまうからである.z
∗をz
∗= C · S/r
∗とおく.条件(i)
が成立する ときz
∗=
e∈E
c
e·
⎛
⎝
v∈Vi/{u}
d
v⎞
⎠ ·
v∈Vss
vs
uであり,
z
∗は整数であり,0 ≤ z
∗≤ C · D · S
である.条件
(ii)
が成立するときz
∗=
e∈Ec
ec
e·
⎛
⎝
x∈Des(w)
d
x⎞
⎠ ·
v∈Vs
s
vであり,
z
∗は整数であり,0 ≤ z
∗≤ C · D · S
である.このように,どちらの場合にも,
0 ≤ z ≤ C · D · S
な るある整数z
に対し,r
∗= C · S/z
である.2
有理数の集合{C · S/z | C · D · S ≥ z ≥ 0}
の要素 数はC · D · S + 1
である.(辺容量がない場合の集合 の要素数はD · S + 1
であった[4]
.)辺容量付きの定 常木ネットワークT = (V, E)
の最大供給率r
∗は,こ の有限集合上の二分探索と線形時間判定アルゴリズムPartition
を用いて,O(n log
2(C · D · S))
時間で計 算することができる.辺容量付き定常木ネットワークT
の対数サイズL
は,L =
e∈E
log
2(c
e+ 2) +
v∈Vd
log
2(d
v+ 2)
+
v∈Vs
log
2(s
v+ 2)
であるので,明らかに,
log
2(C · D · S) ≤ L
であり,次の定理を得る.
定理
1 T
は辺容量付きの定常木ネットワークとし,n
をT
の点数とし,L
をT
の対数サイズとすると,T
に対する最大供給率問題はO(nL)
時間で解くことが できる.3.
パラメトリック木ネットワークの分割 問題この節では,辺容量付きのパラメトリック木ネット ワーク
T
に対する分割問題を解くアルゴリズムを与 える.3. 1
定 義一般性を失わずに,与えられた木
T
は任意に選んだ 点v
rootを根とする根付き木であるとしてよい.更に,T
の各点v
の供給量s
v(λ)
,需要量d
v(λ)
及び各辺e
の容量c
e(λ)
は,非負実数の変数λ( ≥ 0)
の関数であ るとする.また,T
には供給点がn
s個あるとする.根付き木ネットワーク
T = (V, E)
の変数値λ
に対 する許容分割π
λ= (V
1, V
2, · · · , V
ns)
は,V
のn
s個 の部分集合V
1, V
2, · · · , V
nsへの分割であり,次の条件(a)
−(c)
を満足するものである.(a) T
の根v
rootはV
1に含まれる.すなわちv
root∈ V
1である.
(b) 1 ≤ i ≤ n
sなる各添字i
について,V
iは丁度一つ の供給点u
を含み,V
iはT
の部分木T
iを誘導し,v∈Vi/{u}
d
v(λ) ≤ s
u(λ)
である.(c)
各部分木T
iの各辺e
を流れるフローの値ψ
e(λ)
はψ
e(λ) ≤ c
e(λ)
である.パラメトリック木ネットワーク
T
の分割問題とは,T
が許容分割をもつ変数値λ
の全てを見つける問題で ある.そのような変数値λ
の集合は幾つかの実数区間 からなるので,実際にはそのような全ての区間からな る集合を見つける.図
2(a)
のパラメトリック木ネットワークT
では,v
5= v
rootであり,s
v1(λ) = 8, s
v2(λ) = 7, d
v5(λ) = 2
であり,辺(v
1, v
3)
,(v
2, v
4)
,(v
4, v
5)
の容量は定数 であり,それぞれ11
,7
,10
である.変動する需要 量d
v3(λ)
,d
v4(λ)
及び辺e = (v
3, v
5)
の容量c
e(λ)
は 図2(b)
に描かれている.図2(a)
で点線で示した分割π
λ= ( { v
1, v
3} , { v
2, v
4, v
5} )
は,0 ≤ λ ≤ 5
なるλ
に 対するT
の許容分割である.T
に対する分割問題の解 は[0,7]
と[10,∞)
の二つの区間からなる集合である.値
λ
に 対 す るT
の 許 容 分 割 をπ
λ= (V
1, V
2, · · · , V
ns)
とする.1 ≤ i ≤ n
s なる各i
に ついてV
iには丁度一つの供給点が含まれている.u
をV
1に含まれる供給点としたとき,許容分割π
λの余裕surp(π
λ)
をsurp(π
λ) = s
u(λ) −
v∈V1/{u}
d
v(λ)
と定義する.パラメトリック木
T
の余裕f
T(λ)
をf
T(λ) = max
πλ
surp(π
λ)
と定義する.ただし,値
λ
に対するT
の全ての許容 分割π
λにわたってsurp(π
λ)
の最大値をとるものと する.値λ
に対してT
が許容分割をもたないならば,f
T(λ) = −∞
とする.直感的には,辺容量条件を満足させながら
T
の全ての需要点に電力を供給したとき,根
v
root∈ V
1からT
の外へ出力できる電力量の最大 値が,T
の余裕f
T(λ)
である.(図2(a)
のT
に対するf
T(λ)
を図2(c)
に示す.)f
T(λ) ≥ 0
なるλ
の区間全 てからなる集合が分割問題の解である.根付き木
T
に基づく動的計画法を用いてT
の許容 分割を見つける.より詳しくは,許容分割とその拡張 である“
根許容分割”
を小さい部分木から大きい部分図2 (a)v5を根とする辺容量付きパラメトリック木ネッ トワークT,(b)変動する需要量dv3(λ),dv4(λ) 及び辺容量ce(λ),(c)Tの余裕fT(λ),(d)T の 不足gT(λ)
Fig. 2 (a) Parametric tree networkT rooted atv5, (b) variable demandsdv3(λ),dv4(λ) and ca- pacityce(λ), (c) surplusfT(λ), and (d) deficit gT(λ) ofT.
図3 木T にダミーの供給点と辺を付加して得られる木 Tdum
Fig. 3 Tree Tdum obtained from T by adding a dummy supply vertex and a dummy edge.
木へと繰り返し求めていく.
図
3
のように,木T
の根v
rootの新しい子として ダミーの供給点u
dumを付け加え,その供給量を∞
とし,u
dumとv
rootをダミーの辺で結び,その辺の 容量を∞
とする.こうして得られた木をT
dumとす る.T
dumには供給点がn
s+ 1
個ある.T
dumの許容 分割π
λ= (V
1, V
2, · · · , V
ns+1)
で,v
root, u
dum∈ V
1なる
π
λを,T
の根許容分割と呼ぶ.したがって,T
に根許容分割があるならば,v
rootは需要点である.ま た,v
rootが供給点ならば,T
は根許容分割をもたな い.(図2(a)
の木T
に対して,π
λ= ({v
root, u
dum}
,{ v
1, v
3}
,{ v
2, v
4} )
は0 ≤ λ ≤ 7
なるλ
に対する根許 容分割である.)根 許 容 分 割
π
λ= (V
1, V
2, · · · , V
ns+1)
の 不 足def(π
λ)
をdef(π
λ) =
v∈V1/{udum}
d
v(λ)
と定義する.パラメトリック木
T
の不足g
T(λ)
をg
T(λ) = min
πλ
def(π
λ)
と定義する.ただし,値
λ
に対するT
の全ての根許容 分割π
λにわたってdef(π
λ)
の最小値をとるものとす る.値λ
に対してT
が根許容分割をもたないならば,g
T(λ) = + ∞
とする.このようにして,v
rootが供給 点であるとき,任意の値λ
に対してT
は根許容分割 をもたないので,g
T(λ) = + ∞
である.直感的には,v
rootを含む幾つかの需要点が木T
の外から電力を供図4 根付き部分木 Fig. 4 Rooted subtrees.
給されるときに
v
rootを通してT
に入力されなければ ならない電力量の最小値が,T
の不足g
T(λ)
である.(図
2(a)
のT
に対する不足g
T(λ)
を図2(d)
に示す.)T
の根付き部分木T
に対しても余裕f
T(λ)
と不足g
T(λ)
を同様に定義する.T
の点v
を根とするT
の最大部分木をT
vと表す.点
v
の子をv
1, v
2, · · · , v
lとし,1 ≤ i ≤ l
なる各i
に 対し,v
とv
iを結ぶ辺をe
iとし,v
iを根とするT
の 最大部分木をT
vi とする.点v
と,辺e
1, e
2, · · · , e
i と,部分木T
v1, T
v2, · · · , T
viからなるT
vの部分木をT
viと書く.図4
でT
vとT
viは点線で囲まれている.明らかに
T
v= T
vlである.点v
だけからなる部分木 を特にT
v0と書く.3. 2
アルゴリズム以下の
(i)
−(iii)
で示すように,本文のアルゴリズ ムは動的計画法を用いて,T
の各点v
に対し,葉から 根に向かって,T
vの余裕f
Tv(λ)
と不足g
Tv(λ)
を計 算する.T = T
vrootの余裕f
T(λ)
から,f
T(λ) ≥ 0
で あるような非負実数λ
の区間全てを容易に見つけるこ とができる.パラメトリック木ネットワークの分割問 題の解として,これら全ての区間からなる集合を出力 する.例えば図2(a)
のパラメトリック木T
に対して は,集合{ [0,7],[10, ∞ ) }
を出力する.(i)
まず次のように,T
の各点v
に対してT
v0の余裕 と不足を計算する.T
v0は点v
だけからなる.v
が供給 点ならば,全てのλ
に対してf
T0v
(λ) = s
v(λ)
であり,g
T0v
(λ) = + ∞
である.v
が需要点ならば,全てのλ
に対してf
Tv0(λ) = −∞
であり,g
Tv0(λ) = d
v(λ)
で ある.T
の全ての葉v
に対してT
v= T
v0なので,こ のようにして葉v
に対するf
Tvとg
Tv は計算できる.(ii)
次にT
の各内点v
に対して,部分木T
vi(1 ≤
i ≤ l)
の余裕と不足を,T
viの部分木T
vi−1とT
viの余 裕と不足から計算する.ここでl
は点v
の子の個数で あり,T
v= T
vlである.図5
のように,T
vi−1の根v
図5 Tviの許容分割πλ. Fig. 5 Feasible partitionsπλofTvi.
と
T
vi の根v
iを辺e = (v, v
i)
で結んでT
viから得ら れる.(ii-1)
まず,T
viの余裕f
Tiv の計算法を説明する.
n
i をT
viの供給点の個数とする.f
Tvi(λ) = −∞
とする.すなわち値
λ
に対してT
viは許容分割をもつとする.f
Tiv
(λ) = surp(π
λ)
であるようなT
viの許容分割をπ
λ= (V
1, V
2, · · · , V
ni)
とする.このとき図5
のよう に,V
1はT
viの根v
を含んでいる.同図でπ
λは点線 で示され,供給点は正方形で表されている.次の三つ の場合がある.場合
(a)
:v
i∈ / V
1であるとき.この場合
f
Tvi(λ) ≥ 0
であり,T
viの許容分割π
λはT
vi−1とT
viの許容分割を誘導する.すなわちT
viの点 集合の分割π
λを,T
vi−1の点集合及びT
vi の点集合 へそれぞれ(数学的意味で)“
制約”
したものは,T
vi−1 とT
viの許容分割である.(図5(a)
を参照.)この場合 に対してf
Ti−1v と
f
Tvi から次の関数f
Taivを計算する.
f
Tai v(λ) =
⎧ ⎨
⎩ f
Ti−1v
(λ) (f
Tvi(λ) ≥ 0
のとき)
−∞ (
それ以外のとき)
辺
e = (v, v
i)
にはフローが流れていなく,ψ
e(λ) = 0
である.場合
(b)
:v
i∈ V
1であり,V
1の供給点u
がT
vi−1に 入っているとき.こ の と き ,
f
Ti−1v
(λ) ≥ g
Tvi(λ)
か つψ
e(λ) =
g
Tvi(λ) ≤ c
e(λ)
であり,v
iは需要点である.π
λはT
vi−1の許容分割とT
vi の根許容分割を誘導する.(図5(b)
で辺e = (v, v
i)
に付けられた矢印はe
を流れる フローの向きを表している.)この場合に対して次の関 数f
Tbivを計算する.
f
Tbi v(λ) =
⎧ ⎪
⎪ ⎪
⎪ ⎪
⎪ ⎨
⎪ ⎪
⎪ ⎪
⎪ ⎪
⎩ f
Ti−1v
(λ) − g
Tvi(λ)
(f
Tvi−1(λ) ≥ g
Tvi(λ)
かつg
Tvi(λ) ≤ c
e(λ)
のとき)
−∞ (
それ以外のとき)
場合
(c)
:v
i∈ V
1であり,V
1の供給点u
がT
viに 入っているとき.こ の と き ,
g
Ti−1v
(λ) ≤ f
Tvi(λ)
か つψ
e(λ) = g
Ti−1v
(λ) ≤ c
e(λ)
であり,v
は需要点である.π
λはT
vi−1の根許容分割とT
vi の許容分割を誘導する.(図5(c)
を参照.)この場合に対して次の関数f
Tciv を計算
する.
f
Tci v(λ) =
⎧ ⎪
⎪ ⎪
⎪ ⎪
⎪ ⎨
⎪ ⎪
⎪ ⎪
⎪ ⎪
⎩
− g
Ti−1v
(λ) + f
Tvi(λ) (g
Ti−1v
(λ) ≤ f
Tvi(λ)
かつg
Ti−1v
(λ) ≤ c
e(λ)
のとき)
−∞ (
それ以外のとき)
上の三つの関数f
Taiv
(λ), f
Tbiv
(λ), f
Tciv
(λ)
から,f
Ti v(λ)
は次のように計算できる.f
Tvi(λ) = max { f
Tai v(λ), f
Tbiv
(λ), f
Tci v(λ) } . (ii-2)
次 にT
vi の 不 足g
Tiv の 計 算 法 を 説 明 す る .
g
Tiv
(λ) = +∞
とする.すなわち値λ
に対してT
vi は根許容分割をもつとする.T
viにある供給点の個数をn
iとする.T
viにダミーの供給点u
dumを付け加えると,供給点の総数は
n
i+ 1
になる.g
Tiv
(λ) = def(π
λ)
であ るようなT
viの根許容分割をπ
λ= (V
1, V
2, · · · , V
ni+1)
とする.このとき図6
のようにV
1はu
dumとT
viの根v
を含む.次の二つの場合がある.場合
(a)
:v
i∈ / V
1であるとき.この場合,
v
は需要点であり,f
Tvi(λ) ≥ 0
でなけ ればならず,π
λはT
vi−1の根許容分割と,T
viの許容 分割を誘導する.(図6(a)
参照.)この場合に対して次 の関数g
aTiv を計算する.
g
Tavi(λ) =
⎧ ⎨
⎩ g
Ti−1v
(λ) (f
Tvi(λ) ≥ 0
のとき)
+ ∞ (
それ以外のとき)
図6 Tviの根許容分割πλ Fig. 6 Root-feasible partitionsπλofTvi.
辺
e = (v, v
i)
にフローは流れていない.場合
(b)
:v
i∈ V
1であるとき.この場合,
v
及びv
iは需要点であり,g
Tvi(λ) = + ∞
でなければならず,ψ
e(λ) = g
Tvi(λ) ≤ c
e(λ)
であり,π
λはT
vi−1及びT
viの根許容分割を誘導する.(図6(b)
参照.)この場合に対して次の関数g
Tbiv を計算する.
g
Tbi v(λ) =
⎧ ⎪
⎪ ⎪
⎨
⎪ ⎪
⎪ ⎩ g
Ti−1v
(λ) + g
Tvi(λ)
(g
Tvi(λ) ≤ c
e(λ)
のとき) +∞ (
それ以外のとき)
上の二つの関数g
Taiv
, g
bTiv から
g
Tiv は次のように計 算できる.
g
Tvi(λ) = min{g
aTvi(λ), g
bTvi(λ)}.
(iii) T
に含まれるn − 1
本の辺e = (v, v
i)
の各々 に対して(ii)
の計算を繰り返してf
T(λ)
とg
T(λ)
を 計算する.3. 3
計 算 時 間この節では全ての供給量,需要量及び辺容量が非負 実数変数
λ
の区分的線形関数であるとして,アルゴリ ズムの計算時間を解析する.区分的線形関数
f
の折れ点とは,f
を表す折れ線の 傾きが変わるλ
の値と定義する.関数f
の折れ点の 個数をp(f )
と表す.便宜上λ = 0
はf
の折れ点であ るとする.(例えば図2
のc
e(λ)
とf
T(λ)
については,p(c
e(λ)) = 3
であり,p(f
T(λ)) = 5
である.)このと きパラメトリック木ネットワークT = (V, E)
のサイ ズN
はN =
v∈Vs
p(s
v(λ)) +
v∈Vd
p(d
v(λ)) +
e∈E
p(c
e(λ))
である.
P
を次式で定義する.P = max{max
T
p(f
T(λ)), max
T
p(g
T(λ))}.
ただし,
T
の全ての根付き部分木T
に渡り最大値をと るものとする.f
T(λ)
とg
T(λ)
が区分的線形関数で あることに注意しよう.T
の余裕f
T(λ)
と不足g
T(λ)
を解として出力する必要があるならば,そのサイズはP
であることが多いので,そのときはP
が出力サイ ズである.点
v
だけからなる木T
v0の余裕f
T0v
(λ)
と不足g
T0 v(λ)
は3.2
の(i)
のようにして求まる.明らかにT
の全て の点v ∈ V
に対するf
T0v
(λ)
とg
T0v
(λ)
はO(N )
時間 で求まる.木
T
viの余裕f
Tvi と不足g
Tvi は,3.2
の(ii)
のよう にして木T
vi−1とT
vi の余裕と不足及び辺e = (v, v
i)
の容量c
e(λ)
からO(p(c
e(λ)) + P )
時間で計算できる.T
にはn −1
本の辺があるので,(ii)
の計算はn −1
回 実行される.またe∈E
p(c
e(λ)) ≤ N
である.した がって木T
の余裕f
T(λ)
と不足g
T(λ)
はO(N + nP )
時間で計算できる.f
T(λ) ≥ 0
なるλ
の区間全ては,f
T(λ)
からO(P )
時間で求まる.このように分割問題 はO(N + nP )
時間で解くことができる.P
はN
よりも大きいかもしれない.(例えば,図2
に お い てf
T(λ)
の 折 れ 点λ = 2.5, λ = 5
及 びλ = 7
は,どの供給量,需要量,辺容量の折れ点 でもない.)しかし,P
はN
の多項式以下であること が多い.特に,T = (V, E)
が定常ネットワークなら ば,N = | V | + | E | = 2n − 1, P = 1
であり,本文の アルゴリズムの計算時間はO(n)
である.もし全ての 供給量,需要量,辺容量が階段関数ならばP ≤ N
で あり,計算時間はO(nN )
である.3. 4 P
の 上 界供給量,需要量及び辺容量の折れ点は重複している かもしれない.重複を除いた折れ点の総数を
B
とし,これらの折れ点を
p
1, p
2, · · · , p
Bとする.無論B ≤ N
である.(例えば,図2(a)
のT
に対してB = 5
であ り,図2(b)
において折れ点は黒点で描かれている.)0 = p
1< p
2< · · · < p
Bとし,p
B+1= ∞
であると する.次の(a)
−(c)
を仮定する.(a) v
が供給点であり,p
i< λ < p
i+1, 1 ≤ i ≤ B
な らば,ある整数a
vi, b
viに対してs
v(λ) = a
viλ + b
viである.