1 制約付き最適化の基本
1.1 問題の定式化
1.1.1 目的関数と変数
制約付き最適化では、未知量をまとめた変数 \(x\) を用いて、ある指標 \(f(x)\) を最大化または最小化する。変数は設計パラメータ、割当量、状態量、制御入力など、対象領域に応じて定義される。目的関数の選択は、性能(例:コスト、遅延、誤差、エネルギー)をどのように測るかに直結し、後続の理論(最適性条件の妥当性)や計算(アルゴリズムの収束性)にも影響する。
1.1.2 等式制約・不等式制約・領域
制約は、解が満たすべき条件として与えられる。代表的には等式制約 \(h(x)=0\) と不等式制約 \(g(x)\le 0\) がある。加えて、変数が属する許容領域(ボックス制約や一般の集合制約)を \(x\in \mathcal{X}\) の形で記述することが多い。不等式は余裕の概念を持ち、境界上では条件が“効いている”状態として扱われるため、理論上の分岐(どの乗数がゼロになるか等)に関わる。
1.1.3 実行可能解と実行不可能性
制約のすべてを同時に満たす \(x\) を実行可能解と呼ぶ。逆に、条件の少なくとも一つを破る場合は実行不可能であり、目的関数値自体は定義されても“候補解”として採用できない。現実の設計では、要件の整合性が崩れて実行可能解が存在しないことがあり、その場合は問題設定の見直し(緩和、優先順位付け、モデル化の調整)が必要になる。
1.2 代表的な分類
1.2.1 線形計画法(LP)
線形計画法では、目的関数と制約のすべてが変数に関して線形で表される。一般形は \( \min c^\top x \) もしくは \( \max c^\top x \) とし、制約は \(Ax\le b\) や \(Ax=b\) などになる。許容領域は多面体となり、最適解は頂点(あるいは稜線の上)に現れやすい。この幾何学的性質が、探索戦略や理論(双対性など)の中心となる。
1.2.2 二次計画法(QP)
二次計画法では、目的関数が二次式で、制約は線形である場合が典型である。たとえば \( \min \tfrac12 x^\top Q x + c^\top x \) のように書かれる。行列 \(Q\) の性質により凸性が決まり、凸なら局所解が大域最適に一致する方向へ理論が整う。機械学習の最適化や制御の設計など、滑らかな目的を扱う場面で利用される。
1.2.3 非線形計画法(NLP)
一般の非線形計画法では、目的や制約の少なくとも一方が非線形となる。非凸性が含まれると、局所最適と大域最適が一致しない可能性が生じ、初期値依存の問題が表面化する。さらに、微分可能性の有無(あるいは制約の滑らかさ)により、成立する最適性条件や適用可能なアルゴリズムが変化するため、問題の“形”の理解が重要になる。
1.3 凸性と構造
1.3.1 凸目的・凸制約の意味
凸性は、最適化が扱いやすくなるための中心概念である。目的関数が凸であり、最小化する場合は“谷”が単一方向に広がる性質を持つ。凸制約とは、許容集合が凸であることを意味し、制約を満たす点の線分がすべて許容領域内に入る。これにより、局所解が大域最適であることが期待でき、最適性条件の解釈も明確になる。
1.3.2 強凸性・滑らかさ
強凸性は凸性をさらに強めた条件で、目的関数に曲率の最低保証がある状態を指す。強い曲率があると最適解が一意になりやすく、数値的にも安定な挙動が得られやすい。滑らかさ(微分可能性やリプシッツ連続な勾配・ヘッセなど)も計算面で重要であり、勾配法や二次近似に基づく手法の妥当性や収束速度に関係する。
2 最適性条件と理論
2.1 最適性条件(必要条件)
2.1.1 KKT条件(一般化されたラグランジュ乗数)
KKT条件(Karush–Kuhn–Tucker条件)は、制約付き最適化における最適性の“必要条件”として広く用いられる。等式制約と不等式制約が混在する状況に対し、ラグランジュ乗数を導入して、勾配が釣り合うような条件を与える。不等式制約については、乗数が非負で、さらに制約が等号で満たされる場合にのみ有効になるという相補性の形で表れる。微分可能性や制約資格条件が満たされていることが、前提として要求される。
2.1.1.1 制約資格条件
制約資格条件は、KKT条件の適用に必要な“制約の独立性や整合性”に関する前提である。たとえば等式制約の勾配が線形独立であること、不等式制約が適切に活動していることなどが典型となる。これらが欠けると、乗数が適切に定義できない、またはKKTが最適性と結び付かない場合があるため、理論の成立範囲を確定する役割を担う。
2.1.2 ラグランジュ関数と停留性
ラグランジュ関数は、目的関数と制約を乗数で結合した式であり、最適解では停留点(方向微分が消える点)になることが理論上の要点となる。具体的には、ラグランジュ関数の勾配がゼロとなる条件(不等式部分は乗数の制約付きで解釈)を含む。停留性は、制約によって許される方向のみを考えたときに、目的の増減が釣り合う状態を意味する。
2.2 双対性
2.2.1 双対問題の導出
双対性では、主問題(原問題)から対応する双対問題を構成する。双対問題は、乗数を変数として最小化/最大化する形に整理され、主問題の目的に対する下界(または上界)として解釈できることが多い。双対問題の導出にはラグランジュ関数の極値(上限・下限)が用いられることが一般的であり、数値計算では、双対ギャップが品質指標になる場合がある。
2.2.2 弱双対性・強双対性
弱双対性は、主問題と双対問題の目的値の間に常に成立する大小関係を述べる。強双対性は、ある条件が満たされると両者の最適値が一致することを保証する。強双対性が成立すると、双対変数(乗数)の意味がより鮮明になり、最適性の検証や感度解析が行いやすくなる。凸問題や適切な正則性が成り立つと強双対性が期待される。
2.2.3 補完スラックネスの解釈
相補スラックネスは、不等式制約 \(g_i(x)\le 0\) と対応する乗数 \(\lambda_i\) の相互関係を定める。直観的には、制約が余裕を持っている(厳密には満たしていない)なら、その乗数はゼロになり、逆に制約が境界上で“効いている”なら乗数が非ゼロになり得る。これにより、どの制約が最適解の決定に実質的な影響を与えたかを読み取れる。
2.3 存在性と一意性
2.3.1 解の存在(前提・条件)
最適解が存在するためには、許容領域の非空性に加え、目的関数が極端に発散しないことなどの性質が必要になる。実務では、変数の範囲を明示する(たとえば上限制約)ことで許容集合が有界になり、存在性を補強できる場合がある。理論面では閉性やコンパクト性、下半連続性といった条件が、存在主張を支える。
2.3.2 多解性と局所解
最適解が複数存在する場合、目的関数や制約の幾何学的形状が原因となる。線形計画法で稜線上に最適値が並ぶような状況が典型である。非凸問題では局所解の概念が重要になり、ある近傍では改善できない点が大域最適である保証は一般にない。そのため、実装では探索戦略や初期値選定の影響が大きくなる。
3 解法アプローチ
3.1 直接法(ペナルティ・罰則)
3.1.1 ペナルティ関数法
ペナルティ関数法は、制約違反を目的関数に“罰”として加え、制約付き問題を制約なし(あるいは緩和された)問題に変換する方法である。たとえば \(g(x)\le 0\) の違反量に比例して罰を与えると、制約を満たす方向に探索が誘導される。罰則を強くすると制約違反は減るが、同時に目的のスケールが変わって数値条件が悪化することもあるため、調整が必要になる。
3.1.2 罰則パラメータの選び方
罰則係数(ペナルティパラメータ)は、違反をどれだけ強く抑えるかを決める。過小だと制約違反が残り、過大だと数値的に不安定になりやすい。実務では段階的に係数を増やす逐次増強戦略や、制約残差の推移を見ながら調整する手法が用いられる。選定は問題のスケーリング、許容誤差、計算資源に依存し、経験則と理論の折り合いを取る作業になる。
3.2 ラグランジュ法・双対法
3.2.1 降下法とサブグラディエント
双対変数を更新する降下法(あるいは上昇法)は、双対目的の性質に合わせて適用される。目的が滑らかでない場合、勾配ではなくサブグラディエントを用いることで方向づけが可能になる。双対法の利点は、制約違反を乗数の推定として反映し、主問題と双対問題のギャップを監視しながら改善できる点にある。収束挙動はステップサイズ設計に強く左右される。
3.2.2 逐次二次計画(SQP)の位置づけ
SQP(Sequential Quadratic Programming)は、非線形制約付き問題を、各反復で二次近似と線形化した制約に置き換え、QPを解くことで次の更新を得る枠組みである。ラグランジュ乗数も同時に推定しやすく、局所的には高い精度が期待できる。計算コストはヘッセ行列や近似行列の更新に依存し、さらに制約の活性集合の変化に対処する設計が必要になる。
3.3 内点法
3.3.1 バリア関数の考え方
内点法は、許容領域の内部から始めて境界へ近づく流れを作る手法である。バリア関数は、不等式制約が境界に近づくほど目的側で急激に大きくなる項を追加し、領域外への飛び出しを抑制する。結果として、更新は許容内部のまま進みやすい。バリアパラメータを段階的に変えることで、制約境界に整合する解へ近づける設計が一般的である。
3.3.2 残差・停止基準
内点法の停止判定では、主変数に関する残差(制約違反の程度)だけでなく、双対的な残差や補完性の度合いも確認することが多い。加えて、バリアのパラメータが十分小さい(あるいは更新の変化が無視できる)ことを基準にする場合がある。実装では、許容誤差の設定が性能と計算量の両方に影響し、目的の精度要求に合わせて調整される。
3.4 分解と特化手法
3.4.1 ブロック構造の利用
分解手法では、変数や制約をブロックに分け、部分問題を反復的に解くことで全体の計算を軽くする。ブロック間の結合が弱い場合、あるいは特定の更新順序により効率が上がる場合に効果が出る。構造の利用は、メモリ使用量の削減や大規模問題の扱いやすさにつながりやすい。
3.4.2 制約の階層性への対応
制約が複数の優先度やカテゴリに分かれる場合、階層構造を反映した解法が有効になる。たとえば厳密に守るべき条件と、誤差許容できる条件を分けると、最適化の設計が現実に適合しやすい。階層性は、ペナルティ重みの設計、更新の順番、あるいは制約の緩和範囲に現れるため、問題の運用要件を明確にすることが鍵となる。
4 応用と実務上の論点
4.1 工学・計算科学での使われ方
4.1.1 目標追従と安全制約
制御系では、追従性能を高める一方で、安全領域を外れないようにする制約付き最適化が頻繁に現れる。制約は速度、加速度、入力飽和、状態の範囲、衝突回避などとして定式化される。実時間計算では、解の計算時間が限られるため、問題の縮約や近似、初期値の工夫が実装上の焦点になる。
4.1.2 形状最適化と設計変数
形状最適化では、幾何形状を表すパラメータやメッシュに相当する変数が最適化の対象となる。目的は剛性や応力低減、流体抵抗などに設定され、制約として体積、応力上限、製造可能範囲などが課されることが多い。形状の変化に伴って解析(有限要素など)を繰り返すため、制約付き最適化の“理論”というより“計算の段取り”が成果を左右する。
4.2 データ駆動領域での適用
4.2.1 正則化と制約の関係
データ駆動の推定では、過学習を抑えるために正則化が用いられるが、制約付き最適化として書き換えることで理解が整理される場合がある。たとえば係数の大きさを上限内に収めるといった形は、制約として扱えば解の形が解釈しやすくなる。正則化と制約の使い分けは、目的の設計思想、必要な解の性質(疎性など)、計算手段との適合で決まる。
4.2.2 制約付き回帰・推定
回帰や分類で、推定値に対して単調性、非負性、合計が1であることなどの条件を課すと、制約付き推定になる。これにより、モデルが満たすべき構造をデータ外の知識として注入できる。学習アルゴリズムとしてはQPや一般のNLPに落とし込み、KKTに基づく活性集合推定を利用することもあるが、最終的には計算量とデータ量のバランスで選択が行われる。
4.3 数値計算の実装課題
4.3.1 スケーリングと数値安定性
変数や目的、制約のスケールが極端だと、計算が不安定になったり収束が遅くなったりする。そこで、変数の単位や典型値に応じてスケーリングを行い、勾配やヤコビ行列の大きさを均す工夫が行われる。内点法ではバリア項の大きさも同様に管理が必要であり、適切な正規化は実務上の成否を左右することが多い。
4.3.2 収束判定とパラメータ調整
収束判定は、目的値の変化量、変数更新の大きさ、制約残差の大きさ、双対残差など複数指標を組み合わせて決められる。どれを主に採用するかは、要求される精度の種類に依存する。さらに、ステップサイズ、信頼領域半径、ペナルティ係数、バリアパラメータなどの調整は、問題ごとの難しさを反映するため、ロバストな初期設定と自動調整の仕組みが重要になる。
4.3.3 実装選定(目的・制約の形状から)
解法の選定は、目的関数と制約の構造に強く依存する。例えば線形・二次で整っているならLPやQPが計算効率の面で有利になる。凸性が保証されるなら、理論的に一貫した収束が見込める設計を選びやすい。非凸で微分可能性が弱い場合は、勾配情報の扱い、サブ問題の精度、局所探索の制限などを考慮したアルゴリズムを選ぶ必要がある。結果として、最適化の“数学モデル”と“計算資源”の整合が判断軸になる。