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

第 2 章 離散凸解析の基礎 5

3.3 スケーリング

離散関数の最小解を求めるアルゴリズムを高速化する手法の1つに、スケーリング法があ る。ここでは、まずスケーリングの基本的な考え方を述べ、次に離散L凸/L凸関数にどのよ うに適用されるかを述べる。離散L凸/L凸関数にはこの手法が効率的に働き、容易に多項式 時間の最小化アルゴリズムが実現される。

3.3.1 スケーリングの考え方

スケーリングの基本的なアイデアは、離散格子点の格子を間引くことにある。格子を間引く と精密さはなくなるが、関数の実効定義域が実質的に小さくなるので、最小化が高速に行える ことが期待される。最小解の位置は、間引く前後で近いところにあることが多い。離散関数の 性質によっては近さを理論的に解析できる場合があり、この距離を保証するのがスケーリング の近接定理である。

例えば、与えられた離散関数を最小化することを考える。同時に、偶数格子点だけに間引い た関数も考える。つまり、f :Zn Rが与えられたとして、偶数格子点上のf を取り出した

0 1 2 3 4 5 6

x

f(x) f2(x2)

3.1.離散変数のスケーリング

関数f2

f2(x) =f(2x) として作る。

domZf2はdomZf に比べると、その要素の個数は1/2n ほどの大きさである。argminZf2

とargminZf に単純な関係性があれば、比較的容易に求められるargminZf2(に含まれる解)

を利用することで、argminZf(に含まれる解)を効率的に求めることができる。

このことを1変数の場合に描いたのが図3.1である。f :Z Rの最小化を次のようにし て行う。まずf2(x)の最小化を行う。f2(42)で最小となることがわかるので、次にx= 4から f(x)の最小化を行う。すると容易にf(3)で最小化が完了する。更に再帰的に、最初のf2(x) の最小化にも、

f4(x) =f2(2x) と定義したf4の最小化の結果を利用することもできる。

一般に,離散変数の関数f :ZnR∪ {+∞}と正の整数αおよびbZnに対して,

fα(x) =f(αx+b) (xZn) (3.6)

で定義される関数fα:Zn R∪ {+∞}はスケーリングと呼ばれる。スケーリングを再帰的 に適用するアルゴリズムは,スケーリング法と呼ばれる。

関数f :Zn R∪ {+∞}をスケーリングした関数fα の最小点(あるいは極小点)をyα とするとき,yαを用いて計算したf の近似最小点

xα=αyα+b (3.7)

に関して,真の最小点xとの距離の近さを保証する定理は、近接定理と呼ばれる。1変数の 場合は、f が離散凸であれば容易に

xα1)≤x≤xα+ (α1) (3.8)

が成り立つことがわかる。多変数の場合にも,後述するように、L 凸/L凸関数とM 凸/M 凸関数に対して近接定理が成り立つ.

3.3.2 L 凸関数に対するスケーリング

関数g:ZnR∪ {+∞}と正の整数αおよびbZnに対して,gのスケーリング(3.6)を gα(p) =g(αp+b)

とする.

L凸/L凸関数は、スケーリングを行ってもL凸/L凸性を保持し続ける。これは(後述す る)M凸/M凸関数とは異なる、重要な性質である。

命題 3.3 ([62,定理 7.11(1),定理 7.10(2)]).

(1)関数g:Zn R∪ {+∞}がL凸関数ならば,gαもL凸関数である.

(2)関数g:Zn R∪ {+∞}がL凸関数ならば,gαもL凸関数である.

L 凸/L凸集合についても、同様にスケーリングの関係がある。集合S と集合Sαに関し て、ある正の整数αおよびbZnが存在して

Sα={pZn|αp+b∈S}

を満たすとする。このとき、それぞれの標示関数δS : Zn R∪ {+∞} δSα : Zn R∪ {+∞}の間には、

δSα(p) =δS(αp+b) の関係が成り立つので、次の命題の成り立つことがわかる。

命題 3.4.

(1)集合SがL凸集合ならば,集合SαもL 凸集合である.

(2)集合SがL凸集合ならば,集合SαもL凸集合である.

3.3.3 スケーリングの近接定理

L 凸/L凸関数に対する近接定理は,スケーリングされた関数gαの極小点qαから、(3.7) に従って

pα=αqα+b

として計算した点pαの近くに,gの最小点pが存在することを保証する.なお,命題3.3, 定理3.1により,gαの極小点はgαの最小点である.

定理 3.5 ([62,定理 7.18][36]). αを正整数とする.

(1)g:Zn R∪ {+∞}をL凸関数とし,pαdomZgとする.任意のq∈ {0,1}nに対 して

g(pα)min{g(pα−αq), g(pα+αq)}

ならば,argminZ=であって,

pα−n(α−1)1ppα+n(α−1)1 を満たすpargminZgが存在する.

(2) g : Zn R∪ {+∞} g(p) = g(p+1) (p Zn) を満たす L 凸関数とし,

pαdomZg とする.任意のq∈ {0,1}nに対して g(pα)≤g(pα+αq) ならば,argminZ=であって,

pαppα+ (n1)(α1)1 を満たすpargminZgが存在する.

3.3.4 スケーリング法

上の近接定理を利用してL凸関数gを最小化するアルゴリズム[62, 第10.3.2節]を示す.

L凸関数の最小化アルゴリズム(スケーリング法): SCALING(g,p) Input: 離散L凸関数gと初期解pdomZg

Output: gの一つの最小解

Step 0: k:=log2K,qk+1:=0とおく.

Step 1: αk:= 2k とおく。

gk(q) :=g(p+αkq), domZgk:={qZn|2qk+1−n1≤q2qk+1+n1} として最急降下法SD(gk, 2qk+1)を呼び出し、得られた最小解をqkとする。

Step 2: k= 0ならばp+q0を返す(p+q0gの最小解の一つ). Step 3: k:=k−1としてStep 1に戻る.

手順Step 1で呼び出す最急降下法SD(gk, 2qk+1)では、関数の定義域が小さいので、必要 な計算量はO(nSTfunc)ですむ。手順Step 1からStep 3の反復は、ちょうど(log2K+ 1) 回であるので、全体の計算量はO(nSTfunclog2K) となり、スケーリング法は多項式時間 で終了することがわかる [62, 第10.3.2節].