最適化問題の定式化

目的関数、制約条件、実行可能領域

入門(大学初年級レベル)

最適化とは何か

最適化とは、「与えられた条件の下で、ある量を最大または最小にする」ことである。私たちは日常的に最適化を行っている。

  • 通勤時間を最小にするルートを選ぶ
  • 予算内で最も満足度の高い買い物をする
  • 決められた時間で最大の勉強効果を得る

これらを数学的に扱うために、問題を定式化(formulation)する必要がある。

目的関数

定義:目的関数

目的関数(objective function)とは、最大化または最小化したい対象を表す関数である。変数 $x$(または複数の変数 $x_1, x_2, \ldots, x_n$)を入力として、実数値を出力する。

$$f: \mathbb{R}^n \to \mathbb{R}$$

例1:面積の最大化

周の長さが $20$ の長方形で、面積を最大にしたいとする。

長方形の2辺の長さを $x$, $y$ とすると:

  • 周の長さの条件:$2x + 2y = 20$、つまり $y = 10 - x$
  • 面積(目的関数):$f(x) = x \cdot y = x(10 - x) = 10x - x^2$

この $f(x) = 10x - x^2$ を最大化することが目標である。

例2:コストの最小化

ある工場で製品Aを $x$ 個、製品Bを $y$ 個生産するとき、総コストが

$$C(x, y) = 100x + 150y + 2000$$

で表されるとする。このコスト関数 $C(x, y)$ を最小化することが目標である。

制約条件

定義:制約条件

制約条件(constraint)とは、変数が満たすべき条件である。制約条件には主に2種類ある。

  • 等式制約:$g(x) = 0$ の形
  • 不等式制約:$h(x) \leq 0$ または $h(x) \geq 0$ の形

例3:生産計画の制約

工場の生産計画で、以下のような制約があるとする。

  • 原材料の制限:$2x + 3y \leq 100$(不等式制約)
  • 労働時間の制限:$x + 2y \leq 50$(不等式制約)
  • 生産量は非負:$x \geq 0$, $y \geq 0$(非負制約)

制約なし最適化と制約付き最適化

制約条件がない場合を制約なし最適化(unconstrained optimization)、制約条件がある場合を制約付き最適化(constrained optimization)と呼ぶ。

まずは制約なしの場合から学び、後の章で制約付きの場合(ラグランジュの未定乗数法など)を扱う。

実行可能領域

定義:実行可能領域

実行可能領域(feasible region)または実行可能集合とは、すべての制約条件を満たす点の集合である。

$$\mathcal{F} = \{x \in \mathbb{R}^n : \text{すべての制約条件を満たす}\}$$

実行可能領域内の点を実行可能解(feasible solution)と呼ぶ。

例4:2変数の実行可能領域

制約条件が

$$x + y \leq 4, \quad x \geq 0, \quad y \geq 0$$

のとき、実行可能領域は下図の三角形の内部と境界である。

x y 4 4 実行可能領域 x + y = 4
図1: 制約条件 x+y≤4, x≥0, y≥0 が定める実行可能領域(緑の三角形)。斜辺は直線 x+y=4。

最大化と最小化

最適化問題は最大化問題最小化問題の2種類がある。

標準形

最小化問題の標準形:

$$\begin{aligned} \min_{x} \quad & f(x) \\ \text{subject to} \quad & g_i(x) = 0, \quad i = 1, \ldots, m \\ & h_j(x) \leq 0, \quad j = 1, \ldots, p \end{aligned}$$

ここで「subject to」は「〜を満たすとき」という意味で、s.t. と略記されることもある。

最大化と最小化の変換

最大化問題と最小化問題は、目的関数の符号を変えることで互いに変換できる。

$$\max_x f(x) = -\min_x (-f(x))$$

したがって、最小化問題だけを考えれば十分である。ただし、問題の文脈に応じて最大化・最小化の両方を使う。

具体例

例5:箱の容積最大化

1辺 $a$ の正方形の板の四隅から、1辺 $x$ の正方形を切り取り、折り曲げて蓋のない箱を作る。容積を最大にするには $x$ をどう選べばよいだろうか?

定式化:

  • 箱の底面:$(a - 2x) \times (a - 2x)$
  • 箱の高さ:$x$
  • 容積(目的関数):$V(x) = x(a - 2x)^2$

制約条件:

$$0 < x < \dfrac{a}{2}$$

($x$ は正で、かつ $a - 2x > 0$ でなければならない)

この問題は次章で微分を使って解く。

例6:最短距離問題

点 $(3, 0)$ から、放物線 $y = x^2$ 上の点への最短距離を求める。

定式化:

放物線上の点を $(x, x^2)$ とすると、$(3, 0)$ からの距離の2乗は

$$D(x) = (x - 3)^2 + (x^2)^2 = (x - 3)^2 + x^4$$

距離を最小にすることと、距離の2乗を最小にすることは同じなので、$D(x)$ を最小化する。

制約条件:

$x$ は任意の実数(制約なし最適化)

例7:機械学習の損失関数

機械学習では、モデルの予測と実際の値の誤差を最小化する。例えば、線形回帰では

$$L(w) = \displaystyle\sum_{i=1}^{n} (y_i - w^T x_i)^2$$

という損失関数(loss function)を最小化する。ここで $w$ はモデルのパラメータ、$(x_i, y_i)$ はデータである。

局所最適と大域最適

定義:局所最小点と大域最小点

点 $x^*$ が局所最小点(local minimum)であるとは、$x^*$ のある近傍内で $f(x^*) \leq f(x)$ が成り立つことである。

点 $x^*$ が大域最小点(global minimum)であるとは、実行可能領域全体で $f(x^*) \leq f(x)$ が成り立つことである。

注意

一般の最適化問題では、局所最小点が大域最小点とは限らない。複数の局所最小点が存在することもある。

しかし、目的関数が凸関数(凸集合と凸関数で学習)の場合は、局所最小点は必ず大域最小点になる。これが凸最適化が重要な理由の一つである。

f(x) x 局所最小 大域最小 局所最小
図2: 局所最小点と大域最小点。大域最小点は実行可能領域全体で関数値が最小の点。

まとめ

  • 目的関数:最大化または最小化したい関数
  • 制約条件:変数が満たすべき条件(等式制約・不等式制約)
  • 実行可能領域:すべての制約を満たす点の集合
  • 最大化問題と最小化問題は符号の変換で互いに変換可能
  • 局所最適大域最適は一般には異なる

よくある質問

最適化問題とはどのようなものですか?

目的関数 $f(x)$ を制約条件 $g_i(x) \leq 0$、$h_j(x) = 0$ のもとで最小(または最大)化する問題です。生産コストの最小化、利益の最大化、ルートの最短化など、工学・経済・機械学習の多くの問題が最適化問題として定式化できます。

局所最適解と大域最適解の違いは何ですか?

局所最適解は近傍の点より良い解で、大域最適解は全体の中で最良の解です。凸最適化では局所最適解=大域最適解ですが、非凸問題では複数の局所最適解が存在します。実問題では大域最適解の探索が困難な場合が多く、近似や発見的手法を使います。

無制約最適化と制約付き最適化の違いは何ですか?

無制約最適化 $\min f(x)$ は探索空間に制限がなく、微分条件 $\nabla f = 0$ で解の候補を求めます。制約付き最適化 $\min f(x)$ s.t. $g(x) \leq 0$ では等号制約にラグランジュ乗数法、不等号制約にKKT条件を使います。制約があると解空間が絞られ、最適性条件が複雑になります。