<aside> 🧸 a python-embedded modeling language for convex optimization problems.
</aside>
<aside>
DSL domain specific language 域特定语言
https://opensource.com/article/20/2/domain-specific-languages| 中文
与通用语言(如 C# 或 UML)不同,域特定语言 (DSL) 旨在表达特定问题空间或域中的语句。
https://learn.microsoft.com/zh-cn/visualstudio/modeling/about-domain-specific-languages?view=vs-2022
<aside>
Convex.jl https://jump.dev/Convex.jl/stable/
YALMIP
CVX
CVXPY
CVXR </aside>
安装
Install from source https://www.cvxpy.org/install/
pip install -e .
running test suite
pytest
输入cvxpy风格优化问题→ 可微映射到锥规划问题→ 求解锥规划问题 → 可微映射到原问题
https://zhuanlan.zhihu.com/p/15134986176
https://docs.mosek.com/modeling-cookbook/index.html
问题建模:使用DSL 而非自定义语言变量→ 常用凸约束构成模型模块(原子库)+ 凸性规则集(DCP的保持凸性的变换规则)⇒ 约束是基本锥的交并集 ⇒ 求解器设计者支持基础锥作为标准输入。
https://docs.mosek.com/latest/pythonfusion/modeling.html
https://docs.mosek.com/latest/pythonfusion/list-of-domains.html#doc-shared-listdomains
检查函数凸性
Verifying convexity is NP-hard!
https://docs.mosek.com/slides/2022/kth/tutorial.html#:~:text=Verifying convexity is NP-hard!
原问题转换成(凸锥)求解器 的标准模型