1
1

ラグランジュ緩和と双対問題

Last updated at Posted at 2024-06-23

ラグランジュ緩和について、具体的な例を見たうえで、一般の定式化についてまとめる。

※『最適輸送の理論とアルゴリズム』(佐藤竜馬, 2023)の2章の解説記事となっています

具体的な問題から出発する

最小化問題として次の問題 [問題1] を定義する。
$$
\begin{align}
\underset{[x,y] \in \mathbb{R}^2}{\text{minimize}} &\quad x+y \\
(f(x,y) &= x+y とおく) \\
-x-3y+1 &≤ 0 \\
-2x-y+1 &≤0 \\
x, y &≥0 \tag{1}
\end{align}
$$

$x+y=a$と置いたときに、aをどこまで小さくできるかがこの問題の解になる。
幾何的には、数の赤い領域の中で、緑の線をどこまで下に下げられるかという問題になる。
$a=0.6$の時に、直線$y=-x+a$ が領域の縁に来るのでこれが最小値になる。

image.png

$λ_1, λ_2 ≥ 0$ を制約条件2つそれぞれにかけて、$x+y$と一緒に和を取ったラグランジュ関数を次のようにとる。

$$
\begin{align}
L(x,y,λ_1,λ_2) &= (x+y) + λ_1 (-x-3y+1) + λ_2 (-2x-y+1) \tag{2-1行目}\\
&= x (1 - λ_1 - 2λ_2)
+y (1 + 3λ_1 + λ_2)
+λ_1+λ_2 \tag{2-2行目}
\end{align}
$$

式(2)の1行目から、$λ_1, λ_2$ は0以上で、制約条件の2つの式は0以下なので、$λ$と制約条件の積は0以下。この$L$は、もとの問題の $f(x,y) = x+y$ 以下になる。

  • 元の[問題1]:$\underset{x,y}{\text{minimize}} \quad f(x,y)$
  • Lについての問題:$\underset{x,y}{\text{minimize}} \quad L(x,y,λ_1,λ_2) \quad (最小値を~ g(λ_1, λ_2) ~とおく)$

Lについての問題は、[問題1]とは一致しない。Lについての問題の最小値 $g(λ_1, λ_2)$ は、必ず[問題1]の最小値以下になる。

「以下」ということは、元の[問題1]と一致させるためには、$g(λ_1, λ_2)$ が最も大きくなるような$λ_1,λ_2$を見つけてくる必要がある。

雑な言い方をすると、

「$L$の$x,y$についての最小値 $g$ を、最も最大化させる$λ_1$,$λ_2$を見つける」
という問いになる。

よって問題はこのように定式化される。

$$\underset{λ_1,λ_2 ≥ 0}{\text{maximize}} \quad g(λ_1,λ_2)$$

具体的に考えてみる。

(式(2)再掲)
$$
\begin{align}
L(x,y,λ_1,λ_2) &= x (1 - λ_1 - 2λ_2)
+y (1 + 3λ_1 + λ_2)
+λ_1+λ_2 \tag{2-2行目}
\end{align}
$$

式(2)の2行目から、$x,y$についての$L$が最小値を持つためには、
$x,y$の係数が非負でなくてはならない。
もし$x,y$の係数が負の場合、$x,y$を無限に大きくすることで、$L$の値を無限に小さくできてしまうから、$L$の最小値が存在しなくなってしまう(有界でなくなってしまう)。
したがって、係数が非負という条件

  • $\begin{equation} 1 - λ_1 - 2λ_2 ≥0 \tag{3} \end{equation}$
  • $\begin{equation} 1 + 3λ_1 + λ_2≥0 \tag{4} \end{equation}$

のもとで、最小値は式(2)の2行目の第1,2項が$0$になるときであり、
最小値 $g(λ_1,λ_2) = λ_1 + λ_2$
を得る。
この$g$の最大値を求めればいい。
$$
\begin{align}
&\underset{λ_1,λ_2 ≥ 0}{\text{maximize}} \quad g(λ_1,λ_2) \\
&=\underset{λ_1,λ_2 ≥ 0}{\text{maximize}} \quad λ_1 + λ_2 \tag{5}
\end{align}
$$

式(3),(4),(5)をまとめた最大化問題[問題2]の最大値は、元の[問題1]と一致する。
(↑ 一致することは「強双対定理」によって示されるが、証明略。)

$λ_1+λ_2=b$の最大値は、幾何的には、直線$λ_2=-λ_1+b$を上に上げていったときにこの領域の縁に来るときの$b$の値である。
$b=0.6$の時に最大値となる。確かに[問題1]の最適値 $a=0.6$ と一致する。

image.png

このようにして導出した問題は、元の問題「主問題」に対する「双対問題」と呼ばれる。
[問題2]は[問題1]の双対問題になっている。

image.png

一般の場合

下記の最適化問題を考える。
今度は、等式が制約条件にも入っていていいことにする。
不等式で書かれている制約条件を、$i=1,...,n$番目とし、
等式で書かれている制約条件を、$i=n+1,...,n+m$番目とする。
$$
\begin{align}
\underset{λ_1,λ_2 ≥ 0}{\text{minimize}} \quad
&f(\boldsymbol{x}) \\
\text{subject to} \quad
&h_i(\boldsymbol{x})≤0 (∀i∈ \lbrace 1,...,n \rbrace ) \\
&h_i(\boldsymbol{x})=0 (∀i∈ \lbrace n+1,...,n+m \rbrace)
\end{align}
$$

全部に$λ_i$という係数を付けたラグランジュ関数を定義する。
$$
L(\boldsymbol{x},λ_1,...,λ_{n+m})=
f(x)+\sum_{i=1}^{n} λ_i h_i(\boldsymbol{x}) +
\sum_{i=n+1}^{n+m} λ_i h_i(\boldsymbol{x})
$$

$λ$ の条件は、
$λ_1,...,λ_n ≥ 0, ~ λ_{n+1,...λ_{n+m}∈\mathbb{R}}$
となる。
このように定義することによって、

$L$の$\boldsymbol{x}$についての最小値は、必ず元の問題の最小値「以下」になる。

具体例の場合に見たのと同じ方法をたどる。
まずこの$L$の$\boldsymbol{x}$についての最小値$g(λ_1,...,λ_{n+m})$を考えたうえで、
その$g$が最大値を取るような$λ_1,...,λ_{n+m}$を求めればよい。
問題はこのように書き換えられる。

$$
\begin{align}
\underset{λ_1,...,λ_n ≥ 0, ~ λ_{n+1,...λ_{n+m}∈\mathbb{R}}}{\text{maximize}} \quad
\min_{x∈\mathbb{R}^d} \quad L(\boldsymbol{x},λ_1,...,λ_{n+m})
\end{align}
$$

実際には、$L$ が最小値を持つ(有界である)ための条件が入ってくる。
$L$の式を$\boldsymbol{x}$の各成分$x_1, x_2,...$について整理した時に、
係数が負であった場合、$\boldsymbol{x}$の各値を限りなく大きくすることで、無限に$L$を小さくすることができてしまう。
そのため、係数が非負であることが必要になる。

最適輸送問題に関する双対問題

最適輸送問題の定式化から変形する。
本節では、式番号を引用文献と一致させる。

$$
\begin{align}
\underset{ \boldsymbol{P} ∈\mathbb{R}^{n×m}}{\text{minimize}} \quad
& \sum_{i=1}^{n} \sum_{j=1}^{m} C(x_i,y_j) \boldsymbol{P}_{ij}
\end{align}
$$

制約条件は次の3つ。
$$
\begin{align}
-P_{ij} \leq 0 \tag{2.66} \\
a_i - \sum_{j} P_{ij} = 0 \tag{2.67} \\
b_j - \sum_{i} P_{ij} = 0 \tag{2.68} \\
\end{align}
$$

制約条件に係数をかけて、目的関数と一緒に和を取る。この時に1つ目の制約条件は緩和せず、2,3つ目の条件を緩和する。

$$
\begin{align}
\underset{ \boldsymbol{P} ∈\mathbb{R}^{n×m}}{\text{minimize}} \quad
& \sum_{ij} C_{ij} P_{ij} + \sum_{i} f_i \left( a_i - \sum_{j} P_{ij} \right) + \sum_{j} g_j \left( b_j - \sum_{i} P_{ij} \right) \tag{2.69} \\
\text{subject to} \quad & P_{ij} \geq 0 \quad (\forall i \in [n], \forall j \in [m])
\end{align}
$$

minimizeの後に書かれているのがラグランジュ関数 $L$。
具体例のときと同じように、項を$a_i$と$b_j$で整理する。
$$
\begin{align}
L(P, f, g) &= \sum_{ij} C_{ij} P_{ij} + \sum_{i} f_i \left( a_i - \sum_{j} P_{ij} \right) + \sum_{j} g_j \left( b_j - \sum_{i} P_{ij} \right) \\
&= \sum_{ij} P_{ij} (C_{ij} - f_i - g_j) + \sum_{i} a_i f_i + \sum_{j} b_j g_j \tag{2.70}
\end{align}
$$

この式の$a_i, b_j$についての最小値$G(f,g)$を考えた時に、$P_{ij}$の係数が負だと、$P_{ij}$に無限に大きい値を入れることで、無限に小さい値を取ることが可能になってしまう。
(※$g$を使うと文字が被るので、一般の場合で$g$と置いていたものを$G$に変えた)
そのため、
$$C_{ij} - f_i - g_j ≥ 0$$
となる場合のもとで、最小値 $G(f,g)$は、

$$
G(f,g)
= \sum_{i} a_i f_i + \sum_{j} b_j g_j
$$
となる。
よって、双対問題は、

$$
\begin{align}
\underset{f \in \mathbb{R}^n, g \in \mathbb{R}^m}{\text{maximize}} \quad
& \sum_{i=1}^{n} a_i f_i + \sum_{j=1}^{m} b_j g_j \tag{2.72} \\
\text{subject to} \quad
& f_i + g_j \leq C_{ij} \quad (\forall i \in [n], \forall j \in [m])
\end{align}
$$

Reference

佐藤 竜馬 (2023) 最適輸送の理論とアルゴリズム (機械学習プロフェッショナルシリーズ)
https://www.amazon.co.jp/dp/4065305144

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1