不等式の表す領域と線形計画法

同義語:線形計画法(高校数学)不等式の表す領域linear programming (high school mathematics)

概要

不等式の表す領域と線形計画法は、連立 1 次不等式の表す領域の上で 1 次式の最大・最小を求める話題である。1 次不等式 $ax+by+c\ge0$($(a,b)\ne(0,0)$)は直線の片側(半平面)を表し、その共通部分は凸である。領域が空でなく有界で、不等式が等号を含むとき、1 次式 $px+qy+r$ は最大値と最小値をとり、それらは頂点(領域の点のうち、平行でない 2 本の境界線が交わる点)での値の最大・最小に等しい。1 次式でない関数、有界でない領域、境界を含まない領域では、この主張は成り立たないことがある。条件の不等式を $0$ 以上の数倍して足すと最大値を上から抑えられ(弱双対性)、その最良の評価は最大値に一致する(線形計画法の双対定理)。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 1次不等式, 連立不等式, ベクトルの内積(高校数学)

高校での出発点:不等式の表す領域

数学 II では、$x$、$y$ についての不等式を満たす点 $(x,y)$ 全体を、座標平面の 領域 として図示する。基本は、直線 $y=mx+q$ を境界として
$$ y>mx+q\ \text{は直線の上側},\qquad y< mx+q\ \text{は直線の下側} $$
を表すという事実である。どちら側かを確かめるには、直線上にない点(原点など)を 1 つ代入してみればよい。

1 つの 1 次不等式の表す領域
  1. $y>2x-1$ は、直線 $y=2x-1$ の上側(境界を含まない)である。原点を代入すると $0>-1$ で成り立つので、原点を含む側である。
  2. $3x+4y-12\le0$ は、$y\le-\dfrac34x+3$ と書き直せるので、直線 $3x+4y=12$ の下側(境界を含む)である。原点では $-12\le0$ で成り立ち、原点を含む側である。

いくつかの不等式を同時に満たす点の集合は、それぞれの領域の共通部分である。その上で 1 次式の最大値・最小値を求めるには、1 次式の値を $k$ とおいて直線を動かす。

連立不等式の領域と $x+y$ の最大値

4 つの不等式
$$ x\ge0,\qquad y\ge0,\qquad x+2y\le6,\qquad 3x+y\le8 $$
を同時に満たす領域 $K$ を考える(図 1)。境界の直線を 2 本ずつ連立すると交点は 6 個あり、そのうち 4 つの不等式をすべて満たすのは
$$ (0,0),\quad \left(\tfrac83,\ 0\right),\quad (2,2),\quad (0,3) $$
の 4 つである。たとえば $x+2y=6$ と $y=0$ の交点 $(6,0)$ は $3\cdot6+0=18>8$ なので $K$ に入らない。$K$ はこの 4 点を頂点とする四角形である。
$x+y$ の最大値を求める。$x+y=k$ とおくと、これは傾き $-1$、$y$ 切片 $k$ の直線である。この直線が $K$ と共有点をもつような $k$ のうち最大のものを探す。$k$ を大きくすると直線は右上に平行移動し、最後に $K$ に触れるのは頂点 $(2,2)$ である。よって最大値は $2+2=4$ である。

領域 x ≥ 0、y ≥ 0、x + 2y ≤ 6、3x + y ≤ 8 と、直線 x + y = k(k = 1, 2, 3, 4)。k を増やすと直線は右上へ動き、最後に頂点 (2, 2) に触れる。赤い矢印は定理の証明で使う「値を減らさずに頂点まで進む」道すじ 領域 x ≥ 0、y ≥ 0、x + 2y ≤ 6、3x + y ≤ 8 と、直線 x + y = k(k = 1, 2, 3, 4)。k を増やすと直線は右上へ動き、最後に頂点 (2, 2) に触れる。赤い矢印は定理の証明で使う「値を減らさずに頂点まで進む」道すじ
図 1 を見ると、最大値は頂点でとりそうに見える。しかし「直線を動かして最後に触れる点」が本当に頂点なのか、いつも最大値があるのかは、図だけでは確かめられない。この記事では次の問いに答える。

  1. 1 次不等式はなぜ直線の片側を表すのか。→ prop-rlp-halfplane
  2. 有界な領域の上で、1 次式の最大値・最小値はなぜ頂点でとるのか。→ thm-rlp-vertex
  3. 1 次式でない関数や、有界でない領域ではどうなるか。→ ex-rlp-nonlinear、ex-rlp-unbounded
  4. 「頂点の値を全部調べる」以外に、最大値であることを確かめる方法はあるか。→ prop-rlp-weak-duality
    高校の計算この記事の言葉大学の言葉
    1 次不等式の表す領域(直線の片側)半平面(def-rlp-halfplane)半空間
    連立 1 次不等式の表す領域半平面の共通部分、凸な領域(prop-rlp-convex)多面体(有界なら凸多面体)
    $x+y=k$ とおいて直線を動かす値を減らさずに頂点まで進む(prf-rlp-vertex-move)単体法の考え方
    最大値・最小値は頂点でthm-rlp-vertex線形計画法の基本的な事実
    領域の点を頂点で表す凸結合(lem-rlp-convex-comb)有界な凸多面体は頂点の凸包
    不等式を何倍かして足し、上から抑える弱双対性(prop-rlp-weak-duality)線形計画法の双対定理(thm-rlp-strong-duality)

取り出す構造:半平面と凸な領域

以下、$x$、$y$ の 1 次式を $f(x,y)=ax+by+c$($(a,b)\ne(0,0)$)と書き、ベクトル $n=(a,b)$ をその 法線ベクトル と呼ぶ。点 $P=(x,y)$ と位置ベクトル $(x,y)$ を同じ記号で表し、$f(P)$ とも書く。

半平面

1 次式 $f(x,y)=ax+by+c$($(a,b)\ne(0,0)$)について、集合
$$ \{P: f(P)\ge0\} $$
を 閉半平面、$\{P: f(P)>0\}$ を 開半平面 という。直線 $f(P)=0$ をその 境界 という。

不等式 $ax+by+c\le0$ は、両辺に $-1$ を掛けると $(-a)x+(-b)y+(-c)\ge0$ になるので、これも閉半平面である。以下、不等式はすべて「$\ge0$」の形にそろえる。

1 次不等式は直線の片側を表す

$f(x,y)=ax+by+c$($(a,b)\ne(0,0)$)とする。

  1. $b>0$ なら、$f\ge0$ は直線 $f=0$ とその上側を表す。$b<0$ なら、直線とその下側を表す。
  2. $b=0$ なら $a\ne0$ で、$a>0$ なら $f\ge0$ は直線 $x=-\dfrac ca$ とその右側を、$a<0$ なら直線とその左側を表す。
$y$ について解く

方針:$b\ne0$ なら $y$ について、$b=0$ なら $x$ について不等式を解く。負の数で割ると不等号の向きが変わることに注意する。
段 1($b>0$)。$ax+by+c\ge0$ の両辺から $ax+c$ を引いて $by\ge-ax-c$ である。$b>0$ で割ると向きは変わらず、$y\ge-\dfrac abx-\dfrac cb$ となる。右辺は境界の直線の $y$ 座標なので、点 $(x,y)$ は直線上か、直線の真上にある。
段 2($b<0$)。同じく $by\ge-ax-c$ である。$b<0$ で割ると向きが変わり、$y\le-\dfrac abx-\dfrac cb$ となる。点は直線上か、直線の真下にある。
段 3($b=0$)。$(a,b)\ne(0,0)$ なので $a\ne0$ で、不等式は $ax\ge-c$ である。$a>0$ なら $x\ge-\dfrac ca$、$a<0$ なら $x\le-\dfrac ca$ となる。$\square$

4 つの場合をまとめると、$f\ge0$ はいつも「境界から法線ベクトル $n=(a,b)$ の向いている側」である。たとえば $b>0$ なら $n$ は上向きの成分をもち、上側が $f\ge0$ になる。この見方の証明と、$f(P)$ が点 $P$ の直線からの符号付き距離に比例することは、直線の方程式と点と直線の距離 で扱った。

半平面の向きを読む
  1. $x+2y\le6$ は $-x-2y+6\ge0$ で、$b=-2<0$ なので直線 $x+2y=6$ とその下側である。法線ベクトル $(-1,-2)$ は左下を向いている。
  2. $x\ge0$ は $a=1>0$、$b=0$ なので、$y$ 軸とその右側である。

次に、連立不等式の領域がもつ「へこみのなさ」を定義する。

図形が凸であること

平面の点の集合 $K$ が 凸 であるとは、$K$ のどの 2 点 $P$、$Q$ と、$0\le t\le1$ のどの実数 $t$ についても、点 $(1-t)P+tQ$ が $K$ に含まれることをいう。

$t$ が $0$ から $1$ まで動くと、$(1-t)P+tQ=P+t(Q-P)$ は $P$ から $Q$ まで線分の上を動く。つまり凸とは「$K$ の 2 点を結ぶ線分がいつも $K$ に含まれる」ことである。凸な集合を 凸集合 という。

連立 1 次不等式の領域は凸

1 次式 $f_1,\dots,f_m$ について、$K=\{P: f_1(P)\ge0,\ \dots,\ f_m(P)\ge0\}$ は凸である。

1 次式は線分の上で 1 次関数

方針:1 次式の値は、線分の上で端の値の重み付き平均になることを使う。
段 1(重み付き平均)。$f(x,y)=ax+by+c$、$P=(x_1,y_1)$、$Q=(x_2,y_2)$ とする。$c=(1-t)c+tc$ と書けるので
$$ f\bigl((1-t)P+tQ\bigr)=a\bigl((1-t)x_1+tx_2\bigr)+b\bigl((1-t)y_1+ty_2\bigr)+(1-t)c+tc=(1-t)f(P)+tf(Q) $$
である。
段 2(どの不等式も保たれる)。$P$、$Q$ が $K$ の点なら、各 $i$ について $f_i(P)\ge0$、$f_i(Q)\ge0$ である。$0\le t\le1$ なら $1-t\ge0$、$t\ge0$ なので、段 1 により $f_i\bigl((1-t)P+tQ\bigr)=(1-t)f_i(P)+tf_i(Q)\ge0$ である。これがすべての $i$ で成り立つので、$(1-t)P+tQ$ は $K$ に含まれる。$\square$

凸な領域と、凸でない領域
  1. ex-rlp-hs-system の領域 $K$ の 2 点 $(0,3)$、$\left(\frac83,0\right)$ の中点($t=\frac12$)は $\left(\frac43,\frac32\right)$ である。$\frac43+2\cdot\frac32=\frac{13}3\le6$、$3\cdot\frac43+\frac32=\frac{11}2\le8$ で、確かに $K$ に含まれる。
  2. 「$x\ge0$ または $y\ge0$」を満たす点の集合は凸でない。$(-2,1)$ と $(1,-2)$ はどちらも含まれるが、中点 $\left(-\frac12,-\frac12\right)$ は $x<0$ かつ $y<0$ なので含まれない。「かつ」で結んだ不等式(共通部分)は凸さを保つが、「または」で結んだもの(和集合)は保たない。

ここから扱う領域を決める。

凸多角形領域と頂点

1 次式 $f_i(x,y)=a_ix+b_iy+c_i$($i=1,\dots,m$、各 $(a_i,b_i)\ne(0,0)$)について
$$ K:=\{P: f_i(P)\ge0\ (i=1,\dots,m)\} $$
とおく。$K$ が空集合でなく、原点を中心とするある円の内部に含まれる(有界 である)とき、$K$ を 凸多角形領域 という。$n_i:=(a_i,b_i)$ を $i$ 番目の不等式の法線ベクトルとする。
点 $P\in K$ について、$f_i(P)=0$ となる $i$ を「$P$ で等号が成り立つ不等式」という。$P\in K$ が $K$ の 頂点 であるとは、$P$ で等号が成り立つ不等式の中に、法線ベクトルが平行でないものが 2 つあることをいう。

頂点は、平行でない 2 本の境界線の交点のうち、$K$ に含まれるものである。2 本の直線が平行でなければ交点はちょうど 1 つなので、頂点の個数は多くても $m$ 本から 2 本を選ぶ組の数 $\dfrac{m(m-1)}2$ である。

頂点を探す

ex-rlp-hs-system の $K$ を $f_1=x$、$f_2=y$、$f_3=6-x-2y$、$f_4=8-3x-y$ で表す(すべて $\ge0$)。
(1) $(2,2)$ では $f_3=f_4=0$ で、法線ベクトル $n_3=(-1,-2)$、$n_4=(-3,-1)$ は $(-1)(-1)-(-2)(-3)=-5\ne0$ なので平行でない。よって $(2,2)$ は頂点である。
(2) $(1,0)$ では等号が成り立つのは $f_2$ だけなので、頂点ではない(辺の途中の点である)。$(1,1)$ では $f_1,\dots,f_4$ の値が $1,1,3,4$ で、等号が成り立つ不等式はない(内部の点である)。
(3) 4 本から 2 本を選ぶ $6$ 組の交点のうち、$K$ に含まれるのは ex-rlp-hs-system の 4 点だけなので、頂点はこの 4 つである。

主定理:最大値・最小値は頂点でとる

この節の目標は、「凸多角形領域の上では、1 次式 $px+qy+r$ の最大値・最小値は頂点でとる」ことを示すことである(下の thm-rlp-vertex)。証明の前に、図 1 の赤い矢印の動きを補題にしておく。頂点でない点からは、境界に沿って(または内部をまっすぐ)進むことができ、進める限り進むと新しい境界にぶつかる。

頂点でない点から境界まで進む

$K$ を凸多角形領域、$P\in K$ を頂点でない点とする。このとき $0$ でないベクトル $u$ で、$P$ で等号が成り立つすべての $i$ について $n_i\cdot u=0$ を満たすものがある。さらに、このような $u$ について、次を満たす正の数 $T$ と番号 $j$ がある。

  1. $0\le t\le T$ のすべての $t$ について $P+tu\in K$ である。
  2. $f_j(P+Tu)=0$ かつ $n_j\cdot u<0$ である。
    $u$ を $-u$ に替えても同じ条件を満たすので、1・2 は $-u$ についても成り立つ($T$、$j$ は変わりうる)。
1 次式の値は $t$ の 1 次関数

方針:$u$ を具体的に作り、直線 $P+tu$ の上で各 $f_i$ の値が $t$ の 1 次関数になることを使う。進めなくなる $t$ を最小値で決める。
段 1($u$ を作る)。$P$ で等号が成り立つ不等式がなければ、$u=(1,0)$ とすれば条件は何も課されない。等号が成り立つ不等式があるとき、その 1 つの法線ベクトルを $n=(a,b)$ とし、$u:=(-b,a)$ とおく。$u\ne0$ で $n\cdot u=-ab+ab=0$ である。$P$ は頂点でないので、等号が成り立つほかの不等式の法線ベクトル $n_i$ はどれも $n$ に平行で、$n_i=\lambda_in$ と書ける。よって $n_i\cdot u=\lambda_i(n\cdot u)=0$ である。
段 2(直線の上での値)。$f_i(P)=a_ix_0+b_iy_0+c_i$($P=(x_0,y_0)$)、$u=(u_1,u_2)$ とすると
$$ f_i(P+tu)=a_i(x_0+tu_1)+b_i(y_0+tu_2)+c_i=f_i(P)+t\,(n_i\cdot u) $$
である。
段 3(値が減る不等式がある)。$J:=\{i: n_i\cdot u<0\}$ とおく。もし $J$ が空なら、すべての $i$ と $t\ge0$ について段 2 から $f_i(P+tu)\ge f_i(P)\ge0$ となり、半直線 $\{P+tu: t\ge0\}$ 全体が $K$ に含まれる。しかし三角不等式により $|P+tu|\ge t|u|-|P|$ であり、右辺は $t$ を大きくするといくらでも大きくなるので、$K$ が円の内部に含まれることに反する。よって $J$ は空でない。$i\in J$ なら $n_i\cdot u\ne0$ なので、$P$ で等号が成り立つ不等式ではなく(段 1)、$f_i(P)>0$ である。
段 4($T$ を決める)。
$$ T:=\min_{i\in J}\frac{f_i(P)}{-\,n_i\cdot u} $$
とおく。分子・分母とも正なので $T>0$ である。最小値をとる番号の 1 つを $j$ とする。$0\le t\le T$ とする。$i\notin J$ なら $n_i\cdot u\ge0$ なので $f_i(P+tu)\ge f_i(P)\ge0$ である。$i\in J$ なら、$T$ の決め方から $t\,(-n_i\cdot u)\le T\,(-n_i\cdot u)\le f_i(P)$ なので $f_i(P+tu)=f_i(P)-t\,(-n_i\cdot u)\ge0$ である。よって $P+tu\in K$ で、1 が成り立つ。また $f_j(P+Tu)=f_j(P)-T(-n_j\cdot u)=0$、$n_j\cdot u<0$ で、2 が成り立つ。
段 5($-u$)。$n_i\cdot(-u)=-(n_i\cdot u)=0$ なので、$-u$ も段 1 の条件を満たし、段 2〜4 がそのまま使える。$\square$

補題で進んだ先の点 $P+Tu$ では、$P$ で等号が成り立っていた不等式(段 2 により値は $0$ のまま)に加えて、$f_j$ の等号が成り立つ。$P$ で等号が成り立っていた不等式の法線ベクトルはどれも $u$ と垂直だが、$n_j\cdot u\ne0$ なので、$n_j$ はそのどれとも平行でない。つまり、進むたびに「等号が成り立つ不等式の法線の向き」が少なくとも 1 種類増える(1 歩で平行でない 2 本の境界線に同時にぶつかり、いきなり頂点に着くこともある)。平面では向きが 2 種類そろえば頂点なので、多くても 2 回進めば頂点に着く。このことが次の 2 つの証明の鍵になる。

図 1 の道すじを計算する

ex-rlp-vertices の $K$ と $g=x+y$ で、内部の点 $P=(1,1)$($g=2$)から出発する。
1 回目。等号が成り立つ不等式はないので、$u=(1,0)$ とする。$g$ の係数ベクトル $(1,1)$ との内積は $1\ge0$ で、この向きに進むと $g$ は減らない。$n_i\cdot u$ は $n_1=(1,0)$ で $1$、$n_2=(0,1)$ で $0$、$n_3=(-1,-2)$ で $-1$、$n_4=(-3,-1)$ で $-3$ なので、$J=\{3,4\}$ である。
$$ T=\min\left(\frac{f_3(P)}{1},\ \frac{f_4(P)}{3}\right)=\min\left(3,\ \frac43\right)=\frac43 $$
で、着く点は $\left(\frac73,1\right)$、$g=\frac{10}3$ である。ここでは $f_4=8-7-1=0$ の等号が成り立つ。
2 回目。$n_4=(-3,-1)$ に垂直な $u=(1,-3)$ か $-u=(-1,3)$ のうち、$(1,1)$ との内積が $0$ 以上なのは $(-1,3)$(内積 $2$)である。$n_1\cdot(-1,3)=-1$、$n_3\cdot(-1,3)=1-6=-5$ はどちらも負で、
$$ T=\min\left(\frac{f_1}{1},\ \frac{f_3}{5}\right)=\min\left(\frac73,\ \frac{5/3}{5}\right)=\frac13 $$
である($f_1=\frac73$、$f_3=6-\frac73-2=\frac53$)。着く点は $\left(\frac73-\frac13,\ 1+1\right)=(2,2)$ で、$g=4$ である。ここでは $f_3=f_4=0$ で、頂点に着いた。値は $2\to\frac{10}3\to4$ と増えている(図 1 の赤い矢印)。

補題をもう 1 つ用意する。領域のどの点も、頂点の「重み付き平均」で表せるという主張である。$\lambda_1,\dots,\lambda_k\ge0$、$\lambda_1+\dots+\lambda_k=1$ のとき、$\lambda_1V_1+\dots+\lambda_kV_k$ を点 $V_1,\dots,V_k$ の 凸結合 という。$k=2$ の凸結合 $(1-t)V_1+tV_2$ は線分 $V_1V_2$ の点である。

領域の点は頂点の凸結合

$K$ を凸多角形領域とすると、$K$ のどの点も、$K$ の頂点(4 個以下)の凸結合で表せる。

両向きに進んで内分する

方針:頂点でない点 $P$ から lem-rlp-move で両向きに進み、$P$ を 2 つの到着点を結ぶ線分の内分点として表す。到着点は $P$ より頂点に近いので、これを繰り返す。
段 1(1 回の分解)。$P\in K$ が頂点でないとし、lem-rlp-move の $u$ をとる。$u$ の向きに進んだ到着点を $P_+:=P+T_1u$、$-u$ の向きに進んだ到着点を $P_-:=P-T_2u$ とする($T_1,T_2>0$)。
$$ T_2P_++T_1P_-=T_2P+T_1T_2u+T_1P-T_1T_2u=(T_1+T_2)P $$
なので、
$$ P=\frac{T_2}{T_1+T_2}\,P_++\frac{T_1}{T_1+T_2}\,P_- $$
である。2 つの係数は正で、和は $1$ である。
段 2(到着点は頂点に近づく)。lem-rlp-move の後で述べたとおり、$P_\pm$ では $P$ より「等号が成り立つ不等式の法線の向き」が少なくとも 1 種類多い。$P$ で等号が成り立つ不等式がなければ、$P_\pm$ は辺の点か頂点である。$P$ が辺の点(向きが 1 種類)なら、$P_\pm$ は頂点である。
段 3(まとめる)。$P$ が頂点なら $P=1\cdot P$ でよい。$P$ が辺の点なら、段 1・2 により $P$ は 2 つの頂点の凸結合である。$P$ が内部の点なら、段 1 で $P=\alpha A+(1-\alpha)B$($0<\alpha<1$)と書け、$A$、$B$ は頂点か辺の点なので、それぞれ 2 つ以下の頂点の凸結合である。$A=\beta V_1+(1-\beta)V_2$、$B=\gamma V_3+(1-\gamma)V_4$($0\le\beta,\gamma\le1$。$A$ が頂点なら $\beta=1$、$V_2=V_1$ とする。$B$ も同様)とすると
$$ P=\alpha\beta V_1+\alpha(1-\beta)V_2+(1-\alpha)\gamma V_3+(1-\alpha)(1-\gamma)V_4 $$
で、4 つの係数は $0$ 以上、和は $\alpha\bigl(\beta+(1-\beta)\bigr)+(1-\alpha)\bigl(\gamma+(1-\gamma)\bigr)=1$ である。$\square$

点 (1, 1) を頂点で表す

ex-rlp-vertices の $K$ で $P=(1,1)$、$u=(1,0)$ とする。$u$ の向きには $T_1=\frac43$ で $P_+=\left(\frac73,1\right)$ に着く(ex-rlp-move)。$-u=(-1,0)$ の向きには、$x\ge0$ で止まり $T_2=1$、$P_-=(0,1)$ である。段 1 の式で
$$ (1,1)=\frac{1}{7/3}\left(\frac73,1\right)+\frac{4/3}{7/3}(0,1)=\frac37\left(\frac73,1\right)+\frac47(0,1) $$
である。さらに $\left(\frac73,1\right)=\frac12\left(\frac83,0\right)+\frac12(2,2)$(辺 $3x+y=8$ の中点)、$(0,1)=\frac23(0,0)+\frac13(0,3)$ なので
$$ (1,1)=\frac3{14}\left(\frac83,0\right)+\frac3{14}(2,2)+\frac8{21}(0,0)+\frac4{21}(0,3) $$
である。係数の和は $\frac3{14}+\frac3{14}+\frac8{21}+\frac4{21}=\frac37+\frac47=1$、$x$ 座標は $\frac47+\frac37=1$、$y$ 座標は $\frac37+\frac47=1$ で一致する。

準備ができたので、主定理を述べて証明する。

1 次式の最大・最小は頂点でとる

$K$ を凸多角形領域とし、$g(x,y)=px+qy+r$($p,q,r$ は実数)とする。

  1. $K$ には頂点が少なくとも 1 つあり、頂点の個数は有限である。
  2. $g$ は $K$ の上で最大値と最小値をとる。最大値は頂点での $g$ の値のうち最大のもの、最小値は頂点での $g$ の値のうち最小のものに等しい。
高校数学で解く:値を減らさずに頂点まで進む

方針:$K$ のどの点 $P$ についても、$g(V)\ge g(P)$ となる頂点 $V$ があることを示す。lem-rlp-move の向き $u$ を、$g$ が減らない側に選んで進む。これは、$g=k$ の直線を $k$ が増える向きに動かす高校の方法を、1 歩ずつ確かめられる形にしたものである。
段 1(1 歩で $g$ は減らない)。$P\in K$ が頂点でないとし、lem-rlp-move の $u$ をとる。$w:=(p,q)$ とする。$w\cdot u<0$ なら $u$ を $-u$ に取り替えて、$w\cdot u\ge0$ とする(lem-rlp-move は $-u$ でも成り立つ)。到着点 $P':=P+Tu$ では
$$ g(P')=p(x_0+Tu_1)+q(y_0+Tu_2)+r=g(P)+T\,(w\cdot u)\ge g(P) $$
である($P=(x_0,y_0)$、$u=(u_1,u_2)$)。
段 2(2 歩以内で頂点)。lem-rlp-move の後で述べたとおり、1 歩ごとに等号の成り立つ不等式の法線の向きが少なくとも 1 種類増える。$P$ が内部の点なら 1 歩で辺の点か頂点に、辺の点なら 1 歩で頂点に着く。よって段 1 を多くても 2 回くり返すと、$g(V)\ge g(P)$ を満たす頂点 $V$ に着く。
段 3(1 の証明)。$K$ は空でないので点 $P$ があり、段 2 により頂点がある。頂点は平行でない 2 本の境界線の交点で、交点は 2 本の組ごとに 1 つなので、頂点は $\frac{m(m-1)}2$ 個以下である。
段 4(最大値)。頂点は有限個なので、頂点での $g$ の値の最大値 $M$ があり、ある頂点 $V_0$ で $g(V_0)=M$ となる。$K$ のどの点 $P$ についても、段 2 の頂点 $V$ をとると $g(P)\le g(V)\le M$ である。$V_0\in K$ なので、$M$ が $K$ での最大値である。
段 5(最小値)。$-g=(-p)x+(-q)y+(-r)$ も 1 次式なので、段 4 を $-g$ に使うと、$-g$ の最大値は頂点での $-g$ の値の最大値 $-m'$ である($m'$ は頂点での $g$ の値の最小値)。つまり $K$ のすべての点で $-g(P)\le-m'$、すなわち $g(P)\ge m'$ で、等号はある頂点で成り立つ。$m'$ が $K$ での最小値である。$\square$

大学数学で見る:凸結合で平均する

方針:lem-rlp-convex-comb で点を頂点の凸結合に書き、1 次式の値が係数と同じ重みの平均になることを使う。
段 1(頂点)。$K$ は空でないので点 $P$ があり、lem-rlp-convex-comb により $P$ は頂点の凸結合なので、頂点は少なくとも 1 つある。個数が有限であることは prf-rlp-vertex-move の段 3 と同じである。
段 2(1 次式は凸結合を保つ)。$P=\sum_k\lambda_kV_k$($\lambda_k\ge0$、$\sum_k\lambda_k=1$、$V_k=(x_k,y_k)$)とすると、$r=\sum_k\lambda_kr$ と書けるので
$$ g(P)=p\sum_k\lambda_kx_k+q\sum_k\lambda_ky_k+\sum_k\lambda_kr=\sum_k\lambda_k\,g(V_k) $$
である。
段 3(平均は最大を超えない)。$M$ を頂点での $g$ の値の最大値とすると、各 $k$ で $g(V_k)\le M$、$\lambda_k\ge0$ なので
$$ g(P)=\sum_k\lambda_kg(V_k)\le\sum_k\lambda_kM=M $$
である。$M$ はある頂点での値なので、$K$ での最大値である。最小値も、不等号の向きを逆にした同じ計算で示せる。$\square$

2 つの証明は、見方が違う。1 つ目は「$g$ を増やしながら頂点まで歩く」方法で、変数が多い場合に頂点から頂点へ値を増やしながら移る計算法(単体法)の考え方につながる。2 つ目は「領域の点は頂点の平均だから、平均は最大を超えない」という見方で、変数が 1 つの場合の「1 次関数の最大値・最小値は区間の端でとる」と同じ形をしている。2次関数の最大・最小 の命題「凸関数の最大値は端点でとる」も、同じ「平均は最大を超えない」の考えで示されている。

生産計画

ある工場は 2 種類の製品 A、B を作る。A を 1 トン作るには原料 P を 2 トン、原料 Q を 1 トン使い、B を 1 トン作るには P を 1 トン、Q を 3 トン使う。原料は P が 10 トン、Q が 15 トンある。利益は A が 1 トンあたり 4 万円、B が 7 万円である。A を $x$ トン、B を $y$ トン作るとして、利益 $4x+7y$ の最大値を求める。
条件は $x\ge0$、$y\ge0$、$2x+y\le10$、$x+3y\le15$ である。境界線を 2 本ずつ連立して、4 つの不等式を満たすものを残すと、頂点は次の 4 つである($2x+y=10$ と $x+3y=15$ の交点は、1 つ目を 3 倍して 2 つ目を引くと $5x=15$ から $x=3$、$y=4$)。

頂点$(0,0)$$(5,0)$$(3,4)$$(0,5)$
$4x+7y$$0$$20$$40$$35$

thm-rlp-vertex により、最大値は $(3,4)$ での $40$(万円)である(図 2)。$2x+y=10$ と $y=0$ の交点 $(5,0)$ は $x+3y=5\le15$ を満たすので頂点だが、$x+3y=15$ と $y=0$ の交点 $(15,0)$ は $2\cdot15=30>10$ なので頂点ではない。

最大値をとる点が辺全体になる場合

ex-rlp-vertices の $K$ で $x+2y$ の最大値を求める。頂点での値は $(0,0)$ で $0$、$\left(\frac83,0\right)$ で $\frac83$、$(2,2)$ で $6$、$(0,3)$ で $6$ である。最大値は $6$ で、2 つの頂点 $(2,2)$、$(0,3)$ でとる。このとき、2 頂点を結ぶ辺(直線 $x+2y=6$ の一部)の点はすべて値 $6$ をとる。目的の 1 次式 $x+2y$ の直線 $x+2y=k$ が辺と平行だからである。thm-rlp-vertex は「頂点で最大値をとる」と言っているが、「頂点だけで最大値をとる」とは言っていない。

生産計画の領域と直線 4x + 7y = k。k = 40 の直線は頂点 (3, 4) で領域に触れる。そこでは目的の向き (4, 7) が、等号の成り立つ 2 つの不等式の外向きの法線 (2, 1)、(1, 3) の間にある 生産計画の領域と直線 4x + 7y = k。k = 40 の直線は頂点 (3, 4) で領域に触れる。そこでは目的の向き (4, 7) が、等号の成り立つ 2 つの不等式の外向きの法線 (2, 1)、(1, 3) の間にある

例と反例

外した仮定崩れる主張ボックス
目的の関数が 1 次式であること最小値(最大値)は頂点でとるex-rlp-nonlinear
領域が有界であること最大値がある/頂点があるex-rlp-unbounded
不等式が等号を含む($\ge$)こと最大値があるex-rlp-strict

なお、最大値をとる点は頂点だけとは限らない(ex-rlp-edge)。これは仮定を外した反例ではなく、thm-rlp-vertex が「頂点だけで」とは言っていないことの例である。

反例:2 次式の最小値は頂点でとるとは限らない

$K$:$x\ge0$、$y\ge0$、$x+y\ge2$、$x\le3$、$y\le3$ とする。頂点は $(2,0)$、$(3,0)$、$(3,3)$、$(0,3)$、$(0,2)$ で、$x^2+y^2$ の値はそれぞれ $4$、$9$、$18$、$9$、$4$ である(図 3)。
最小値。$K$ の点では
$$ x^2+y^2-\frac{(x+y)^2}2=\frac{x^2-2xy+y^2}2=\frac{(x-y)^2}2\ge0 $$
と $x+y\ge2$ から、$x^2+y^2\ge\dfrac{(x+y)^2}2\ge\dfrac{2^2}2=2$ である。$(1,1)$ は $K$ の点で($1+1=2$)、値は $2$ なので、最小値は $2$ である。$(1,1)$ は辺 $x+y=2$ の途中の点で、頂点ではない。頂点での最小値 $4$ は、$K$ での最小値ではない。
最大値。$0\le x\le3$、$0\le y\le3$ から $x^2\le9$、$y^2\le9$ なので $x^2+y^2\le18$ で、頂点 $(3,3)$ で $18$ になる。最大値は頂点でとる。
満たす性質:$K$ は凸多角形領域である。満たさない性質:$x^2+y^2$ は 1 次式でない。破る主張:「最小値は頂点でとる」。最大値のほうは頂点でとれたが、これは $x^2+y^2$ が下に凸な関数だからで、1 変数の 2次関数の最大・最小 で「最大値は区間の端でとる」が成り立ったのと同じ理由による。上の不等式 $x^2+y^2\ge\frac{(x+y)^2}2$ は 2 数の平均についての不等式で、相加平均・相乗平均と凸関数 と同じ仲間である。

領域 x ≥ 0、y ≥ 0、x + y ≥ 2、x ≤ 3、y ≤ 3 と円 x² + y² = k。最小値 2 は辺の途中の点 (1, 1) でとり、最大値 18 は頂点 (3, 3) でとる 領域 x ≥ 0、y ≥ 0、x + y ≥ 2、x ≤ 3、y ≤ 3 と円 x² + y² = k。最小値 2 は辺の途中の点 (1, 1) でとり、最大値 18 は頂点 (3, 3) でとる
図 3 の点 $(1,1)$ は、原点から直線 $x+y=2$ に下ろした垂線の足である。$x^2+y^2$ は原点からの距離の 2 乗なので、最小値 $2$ は原点と直線の距離 $\sqrt2$ の 2 乗になっている(直線の方程式と点と直線の距離)。最も近い点を垂線の足として求める考え方は、正射影と射影行列 で一般の部分空間に広げられる。

反例:有界でない領域
  1. $K$:$x\ge0$、$y\ge0$、$x+y\ge1$ は有界でない。$x+y$ は点 $(t,0)$($t\ge1$)で値 $t$ をとり、$t$ はいくらでも大きくできるので、最大値はない。最小値は $1$ で、頂点 $(1,0)$、$(0,1)$ とそれを結ぶ辺でとる。
  2. $K$:$y\ge0$(上半平面)で $-y$ を考える。最大値は $0$ で、$x$ 軸上のすべての点でとる。しかし境界線は $x$ 軸 1 本だけなので、$K$ には頂点が 1 つもない。
    満たさない性質:有界であること。破る主張:thm-rlp-vertex の「最大値がある」((1))と「頂点がある」((2))。証明では、lem-rlp-move の段 3 で有界性を使い、進み続けると必ず境界にぶつかることを示していた。(1) の $u=(1,0)$ の向きには、いくら進んでも境界にぶつからない。
反例:境界を含まない領域

$K$:$x>0$、$y>0$、$x+y<1$ とし、$x+y$ を考える。$K$ の点では $x+y<1$ である。一方、$0<\varepsilon<1$ として点 $\left(\frac{1-\varepsilon}2,\frac{1-\varepsilon}2\right)$ は $K$ に含まれ、値は $1-\varepsilon$ である。$\varepsilon$ をいくらでも小さくできるので、$1$ より小さいどんな数よりも大きい値がある。よって $K$ での最大値はない。
満たさない性質:不等式が等号を含むこと(境界を含むこと)。破る主張:「最大値がある」。値が近づいていく $1$ は、除かれた辺 $x+y=1$ の上での値である。

大学数学で見る:端点と双対性

頂点は「へこみの角」:端点

凸な集合の点で、集合の中の異なる 2 点の中点として表せないものを 端点(端点)という。凸集合では、「異なる 2 点を結ぶ線分の、端以外の点として表せない点」と言っても同じである。実際、$V=(1-t)A+tB$($A\ne B$、$0< t<1$)なら、$s:=\min(t,1-t)>0$ として $V-s(B-A)$、$V+s(B-A)$ は線分 $AB$ 上の異なる 2 点で($t-s$、$t+s$ が $0$ 以上 $1$ 以下。凸なので線分 $AB$ は集合に含まれ、この 2 点も集合の点である)、その中点が $V$ である。逆に、中点は $t=\frac12$ の場合である。

頂点と端点は同じ

$K$ を凸多角形領域とする。$V\in K$ が $K$ の頂点であることと、$V$ が $K$ の異なる 2 点の中点として表せないことは同値である。

等号の成り立つ不等式を調べる

方針:頂点なら、中点に表す 2 点は頂点を通る 2 本の境界線の両方に乗るので、頂点と一致する。頂点でなければ、lem-rlp-move で両向きに同じ距離だけ進んだ 2 点の中点になる。
段 1(頂点なら中点に表せない)。$V$ を頂点とし、$V=\frac12(A+B)$、$A,B\in K$ とする。$V$ で等号が成り立つ不等式 $f_i$ について、prf-rlp-convex の段 1 で $t=\frac12$ とすると
$$ 0=f_i(V)=\frac12f_i(A)+\frac12f_i(B) $$
である。$f_i(A)\ge0$、$f_i(B)\ge0$ なので、$f_i(A)=f_i(B)=0$ である。頂点の定義から、法線ベクトルが平行でない 2 つの $f_i$、$f_{i'}$ が $V$ で等号になるので、$A$ も $B$ も 2 本の平行でない直線 $f_i=0$、$f_{i'}=0$ の交点である。交点はただ 1 つなので $A=B=V$ となり、「異なる 2 点」の中点ではない。
段 2(頂点でなければ中点に表せる)。$V$ が頂点でないとき、lem-rlp-move により $u\ne0$ と $T_1,T_2>0$ があって、$0\le t\le T_1$ で $V+tu\in K$、$0\le t\le T_2$ で $V-tu\in K$ である。$T:=\min(T_1,T_2)>0$ とすると、$V+Tu$ と $V-Tu$ は $K$ の異なる 2 点で、中点は $V$ である。$\square$

端点という言い方は、式で表された領域にも、式を使わない一般の凸集合にも使える。lem-rlp-convex-comb は「凸多角形領域は、頂点の凸結合全体(頂点の凸包)に等しい」と言い換えられる。変数が $n$ 個の連立 1 次不等式(と 1 次の等式)の表す領域は多面体(polyhedron)と呼ばれ、有界とは限らない。有界なものは polytope(凸多面体)と呼ばれることがある(BV04 の §2.2.4。呼び方を逆にする本もあると注意されている)。連立 1 次不等式(と 1 次の等式)の条件のもとで $n$ 個の変数の 1 次式の最大・最小を求める問題を線形計画問題といい、それを扱う分野を線形計画法という(BV04 の §4.3)。空でなく有界な多面体(凸多面体)なら、証明の段の数が増えるだけで、最大・最小が頂点でとられることは同じ考え方で示せる(この記事では詳しく述べない)。

不等式を足して上から抑える:双対性

thm-rlp-vertex で最大値を求めるには頂点をすべて調べた。頂点の数が多いと大変である。ところが、次の計算を見せられると、頂点を調べなくても最大値が $40$ だと分かる。

不等式を何倍かして足す

ex-rlp-production の条件 $2x+y\le10$ を $1$ 倍、$x+3y\le15$ を $2$ 倍して足すと、
$$ 4x+7y=1\cdot(2x+y)+2\cdot(x+3y)\le1\cdot10+2\cdot15=40 $$
である。係数 $1$、$2$ が $0$ 以上なので、不等号の向きは変わらない。よって条件を満たすすべての $(x,y)$ で利益は $40$ 以下である。$(3,4)$ で利益はちょうど $40$ なので、最大値は $40$ である。
成り立つ不等式を $0$ 以上の数倍して足し合わせ、目的の式を上から抑える方法は、不等式の証明の技法 でもよく使う。

係数 $1$、$2$ は、どうやって見つければよいのか。係数を $u$、$v$($0$ 以上)として同じ計算をすると、$u(2x+y)+v(x+3y)=(2u+v)x+(u+3v)y$ が $4x+7y$ 以上であれば($x,y\ge0$ なので)上からの評価に使える。その評価 $10u+15v$ をできるだけ小さくする問題が、次の 双対問題 である。

弱双対性

実数 $p,q$ と $a_i,b_i,c_i$($i=1,\dots,m$)について、次の 2 つの問題を考える。

  • 主問題:$x\ge0$、$y\ge0$、$a_ix+b_iy\le c_i$($i=1,\dots,m$)のもとで $px+qy$ を最大にする。
  • 双対問題:$u_1,\dots,u_m\ge0$、$\sum_ia_iu_i\ge p$、$\sum_ib_iu_i\ge q$ のもとで $\sum_ic_iu_i$ を最小にする。
    $(x,y)$ が主問題の条件を、$(u_1,\dots,u_m)$ が双対問題の条件を満たすならば、
    $$ px+qy\le\sum_{i=1}^mc_iu_i $$
    である。特に、等号が成り立つ組があれば、その $(x,y)$ は主問題の最大値を、$(u_i)$ は双対問題の最小値を与える。
2 回の比較

方針:ex-rlp-certificate と同じ計算を文字で行う。不等号を 2 回使い、それぞれでどの条件を使うかを確かめる。
段 1(係数の比較)。$x\ge0$ と $p\le\sum_ia_iu_i$ から $px\le\left(\sum_ia_iu_i\right)x$ である。同じく $y\ge0$ と $q\le\sum_ib_iu_i$ から $qy\le\left(\sum_ib_iu_i\right)y$ である。足して並べ替えると
$$ px+qy\le\sum_i(a_ix+b_iy)\,u_i $$
である。
段 2(条件の比較)。各 $i$ で $a_ix+b_iy\le c_i$、$u_i\ge0$ なので $(a_ix+b_iy)u_i\le c_iu_i$ である。足して $\sum_i(a_ix+b_iy)u_i\le\sum_ic_iu_i$ で、段 1 と合わせて主張の不等式を得る。
段 3(等号の場合)。主問題の条件を満たすどの $(x',y')$ についても、段 1・2 から $px'+qy'\le\sum_ic_iu_i=px+qy$ なので、$px+qy$ は主問題の最大値である。同様に、双対問題の条件を満たすどの $(u_i')$ についても $\sum_ic_iu_i'\ge px+qy=\sum_ic_iu_i$ なので、$\sum_ic_iu_i$ は双対問題の最小値である。$\square$

生産計画の双対問題を解く

ex-rlp-production の双対問題は、$u\ge0$、$v\ge0$、$2u+v\ge4$、$u+3v\ge7$ のもとで $10u+15v$ を最小にすることである。この領域は有界でないので凸多角形領域ではないが、境界線の交点で条件をすべて満たすものは $(0,4)$、$(1,2)$、$(7,0)$ の 3 つで、値は $60$、$40$、$70$ である。$(1,2)$ で $10u+15v=40$ となり、これは主問題の最大値 $40$ と等しい。prop-rlp-weak-duality の等号の場合にあたるので、$40$ は双対問題の最小値でもある。

ex-rlp-dual では双対問題の領域が有界でないので、thm-rlp-vertex はそのままでは使えない。それでも最小値が $40$ だと言えるのは、prop-rlp-weak-duality により主問題のどの点の値も双対問題の値の下にあるからである。主問題と双対問題の最適な値がいつも一致することは、次の定理で保証される。

主問題と双対問題の最適値は等しい

prop-rlp-weak-duality の主問題に最大値があるならば、双対問題にも最小値があり、2 つは等しい。

双対定理の出典

この記事ではこの定理を証明しない。一般の変数の個数で、線形計画問題の双対問題の作り方は BV04 の §5.2.1(不等式形の線形計画問題の双対、p. 225)に、主問題が条件を満たす点をもてば最適値が一致し(強双対性)、双対問題の最適値もとられることは §5.2.3–5.2.4(pp. 226–227)にある。そこでは最小化問題を主問題とする形で書かれているが、$px+qy$ の最大化を $-(px+qy)$ の最小化と読みかえれば同じ内容になる。

双対問題の答えの意味:原料 1 トンの値打ち

双対問題の答え $u=1$、$v=2$ は、原料 P、Q の 1 トンあたりの「値打ち」を表す。実際、原料 P を 11 トンに増やすと、最適な頂点は $2x+y=11$ と $x+3y=15$ の交点 $\left(\frac{18}5,\frac{19}5\right)$ に移り、利益は $4\cdot\frac{18}5+7\cdot\frac{19}5=\frac{72+133}5=41$ で、ちょうど $u=1$ だけ増える。$\left(\frac{18}5,\frac{19}5\right)$ は $x,y\ge0$ を満たし、条件を満たすどの点でも prop-rlp-weak-duality の $u=1$、$v=2$ により $4x+7y\le1\cdot11+2\cdot15=41$ と上から抑えられるので、$41$ が最大値である。原料 Q を 16 トンに増やすと、交点は $\left(\frac{14}5,\frac{22}5\right)$、利益は $\frac{56+154}5=42$ で、$v=2$ だけ増える。こちらも $\left(\frac{14}5,\frac{22}5\right)$ は $x,y\ge0$ を満たし、$u=1$、$v=2$ により $4x+7y\le1\cdot10+2\cdot16=42$ なので、$42$ が最大値である(双対問題の条件 $2u+v\ge4$、$u+3v\ge7$ は原料の量によらないので、$u=1$、$v=2$ はどちらの場合にも使える)。

最適な頂点での法線の向き

ここでは不等式 $2x+y\le10$、$x+3y\le15$ を $\le$ の形のまま読み、その係数ベクトル $(2,1)$、$(1,3)$ を使う。これは領域の外を向く法線(外向きの法線)で、def-rlp-halfplane の形 $f\ge0$ にそろえたときの法線ベクトル $n$ の $-1$ 倍である。ex-rlp-certificate の等式 $(4,7)=1\cdot(2,1)+2\cdot(1,3)$ は、図 2 のように、最適な頂点 $(3,4)$ で目的の向き $(4,7)$ が、等号の成り立つ 2 つの不等式の外向きの法線 $(2,1)$、$(1,3)$ に $0$ 以上の係数を掛けた和になっていることを表す。$(3,4)$ から $K$ の中へ向かうどの向き $d$ についても、2 つの不等式を破らないために $(2,1)\cdot d\le0$、$(1,3)\cdot d\le0$ でなければならない。したがって $(4,7)\cdot d=1\cdot(2,1)\cdot d+2\cdot(1,3)\cdot d\le0$ で、どちらへ動いても利益は増えない。この「目的の向きが、効いている条件の外向きの法線の組合せになる」という形は、曲線の条件のもとでの最大・最小を扱う Lagrangeの未定乗数法 でも現れる。

さらに先へ

  • 3 変数への一般化:$x,y,z$ の連立 1 次不等式の領域は、平面で囲まれた立体(有界なら凸多面体)になる。目的の 1 次式 $px+qy+rz$ の値が一定になる点の集合は法線ベクトル $(p,q,r)$ の平面で(空間の平面と法線ベクトル)、領域が空でなく有界なら、その平面を平行に動かして最後に触れる点が最適な頂点である。BV04 の §4.3 の図 4.4 は、平面の場合の同じ図を最小化の向きで描いたものである(目的の 1 次式 $c^Tx$ の等高線が $c$ に垂直な直線で、$-c$ の向きに最も遠い点が最適)。
  • 円や放物線で囲まれた領域での 1 次式の最大・最小は、直線が曲線に接する条件で求める(領域を使った最大・最小)。
  • 答えが整数でなければならない問題は整数計画問題と呼ばれ、頂点が整数とは限らない(ex-rlp-vertices の $\left(\frac83,0\right)$)ので、この記事の方法だけでは解けない。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する