サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

flopt

flopt v0.5.6; Coordinate Descent

flopt v0.5.6で座標降下法(Coordinate Descent)の実行方法を示します。 2 x2 + y2 + xy の関数について、xとyの変数の片方のみを交互に移動させて局所最適解を目指します。 prob.solve(optimized_variables=[x[0]]) のようにoptimized_variablesに最適化対象…

flopt v0.5.6:

flopt v.0.5.6を公開しました。 ソルバ開発の目線だとJacobian, Hessian用のAPIが一番使う機会が多いですかね? ユーザー目線だとprob.solve(optimized_variables=variable_list)が最も使えそうな気がします。 Update 1. problem type estimator API 問題の…

flopt

floptに関する記事のまとめです。 floptとはユーザーが解きたい問題を表現、具現化する作業をサポートするソフトウェアです。最適化モデリングツール、と呼んでいます。 v0.5.6 flopt v0.5.6: - サブロウ丸 v0.5.5 flopt 仕様 v0.5.5: 全体構成 - サブロウ丸…

flopt 仕様 v0.5.5: Solverサイド

本稿ではfloptのSolverサイドであるソルバの話をします。 floptでは内部で実装されたアルゴリズムと外部ライブラリのソルバを用いて最適化を実行することができます。 Solver実装のキホン 解の登録 コールバック関数の実行 時間制限の確認 終了ステータス 問…

flopt 仕様 v0.5.5: Systemサイド -- 問題解析とソルバ選択

本稿ではfloptのSystemサイドである問題(Problem)の解析やソルバ選択について記載します。 問題解析とは? 本稿では問題解析をユーザーが定義した問題がどのタイプの最適化問題に属するのかを機械的に判断すること、とします。floptでは柔軟なモデリングによ…

flopt 仕様 v0.5.5: Userサイド -- モデリング

本稿ではfloptにおける柔軟で強力なモデリングを支える基盤である変数と式の設計を紹介します。 変数 (Variable) 式 (Expression) Expression 式の文字列表現とその恩恵 単項式と多項式クラス CustomExpression Sum, Prod 演算のオーバーライド まとめ 関連…

flopt 仕様 v0.5.5: 全体構成

これから数回にわたってfloptという私が開発している最適化モデリングツールの構成について紹介したいと思います。具体的な使い方というよりは、その仕様について記録を残すのがメインです。 具体的な使用方法やチュートリアルはこちら。 本稿ではfloptの構…

flopt 統合型最適化モデラーとソルバーの開発 その1

統合型最適化Pythonフレームワーク flopt をオープンソースで開発中です. floptは 最適化問題のモデリングツールであり, ソルバーであり 他ソルバーのOverwraperであり, 手法比較ベンチマーク を目標に作成しています. Github PyPI Read and Docs PuLP Pytho…