冷めたコーヒー

Weniger, aber besser

最適化

混合整数計画問題のソルバー scipy.optimize.milp と Python-MIP でのデフォルトのソルバー CBC の簡単な比較

scipy.optimize.milp と Python-MIP (CBC) の簡単な比較をします.

SciPy==1.9.0 で使用可能になった混合整数計画問題のソルバー scipy.optimize.milp に関する備忘録

この記事では SciPy==1.9.0 で新たに導入された `scipy.optimize.milp` を用いて混合整数計画問題を解く方法について解説します.

リーマン多様体上の最適化―特異値分解の例を通して―

リーマン多様体上で最適化を行う Python パッケージ Pymanopt を使って特異値分解を行う方法について解説.

双対問題の作り方―LP の例―

双対問題の作り方 以下の最小化問題を考える: \begin{align} (\text{P})\qquad\min_{x} &\quad f(x) \\ \text{subject to} &\quad g_i(x) \le 0 \quad (i=1,2,\dots,m). \end{align} 関数 $f,\,g_i$ に対する連続性や微分可能性は適当に性質の良いものを考え…

Gurobi: HostID mismatch の対処法

本記事の内容は正確ではありません.後日修正をします. What system changes can invalidate a license file? にある通り,WSL2 では reboot の度に MAC アドレスが更新されるそうです.対処法としては,Windows 機に gurobi ライセンスを入れることで解決…

非負制約を含む最適化問題に対する KKT 条件

表題の通りです.以下にまとめました.

Augmented Lagrangians method(拡張ラグランジュ法)

tl;dr Dual ascent method を振り返る Augmented Lagrangians method の概要について述べる toy problem に対して Augmented Lagrangians method を適用した結果について述べる モチベ 前回の記事では,等式制約付き最適化問題に対するラグランジュ双対問題…

共役関数と双対問題

tl;dr 共役関数を定義した後,等式制約付き最適化問題に対するラグランジュ双対問題を導出する 双対問題を解く "dual ascent method" について概説する toy problem に対して dual ascent method を適用した結果について述べる 共役関数 定義 真凸関数 $f\co…

$\sum_{i=1}^{n}\min \{x_i, (Ax+b)_i\}$ の凹性について

tl;dr この記事では,以下の関数 $$ f(\mathbf{x}) = \sum_{i=1}^{n}\min \left\{x_i, (A\mathbf{x}+\mathbf{b})_i\right\} $$ が凹関数(Wikipedia)であることを見ていく.ここで,$A$ は適当な大きさの実行列であり,$\mathbf{b}$ は適当な大きさの実ベク…

二次関数の凸性

二次関数の凸性と係数行列の半正定値性の関係について

非線型一変数関数の最小化(SciPy 使用)

これは何? 一変数関数 $f\colon\mathbb{R}\to\mathbb{R}$ を与えられた閉区間 $\Omega \subseteq \mathbb{R}$ 上で最小化する $x^\star$ を求める方法について扱う 最適化問題として記述すると以下のように表される: \begin{align} \min \quad &f(x) \\ \ma…

CVXPY を用いた等式制約付き最適化問題の求解

CVXPY による制約付き最適化問題を求解

劣微分の表現(定理2.50)

『非線形最適化の基礎』の pp.67 定理 2.50 に対する証明の補足です. ご指摘等ございましたら,@mirucaaura までご連絡ください. 参考文献 非線形最適化の基礎作者:福島 雅夫朝倉書店Amazon

関数の凸性とヘッセ行列の半正定値性の関係(定理 2.30)

『非線形最適化の基礎』の pp.47 定理 2.30 に対する証明の補足です. ご指摘等ございましたら,@mirucaaura までご連絡ください. 参考文献 非線形最適化の基礎作者:福島 雅夫朝倉書店Amazon

近接勾配法概説

はじめに 問題設定 勾配降下法 近接勾配法 近接作用素 おわりに Refference 更新ログ この記事は「数理最適化 Advent Calendar 2020」の24日目の記事です. 23 日目は @Atsushi_twi さんによる 数理最適化初心者のための(線形)割当問題の概要とscipy.optimiz…

SpeakerDeck のスライドの埋め込み

SpeakerDeck の埋め込み

リーマン多様体上の最適化の初歩と Pymanopt による数値実験

リーマン多様体上の最適化問題を,PythonのPymanoptソルバーを用いて実装する.

相補性問題の初歩と Python による数値解法

はじめに 相補性問題の定式化 相補性問題の再定式化 相補性問題に対するアルゴリズム アルゴリズム実装における注意点 B 劣微分 $V \in \partial_B \Phi(x)$ の導出 勾配ベクトル $\nabla\Psi(x)$ の導出 Python による実装 実装: 関数の定義 実装: 相補性問…

Python による数理最適化モデリングツール CVXPY の初歩

はじめに 数理最適化とは CVXPY 導入 数値実験 例1:線形計画問題(Linear Programming Problem; LP) Python によるサンプルコード 例2:最小二乗問題(制約付き) Python によるサンプルコード 例3:半正定値計画問題(Semidefinite Programming Problem; SDP) …