首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索优化问题类

如何检索优化问题类
EN

Stack Overflow用户
提问于 2022-03-08 22:40:04
回答 2查看 37关注 0票数 0

有没有办法说明我们有哪一类优化问题?例如SOCP,SDP,还是完全非凸的?

还是我们只需要尝试一群解决方案,看看他们何时失败?SNOPT是唯一支持非凸优化的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-08 23:01:30

您可以参考GetProgramType,如果程序是LP、QP、SDP等,则返回。

SNOPT是唯一支持非凸优化的吗?

不,我们也有非凸非线性优化的IPOPT和NLOpt .

票数 1
EN

Stack Overflow用户

发布于 2022-03-09 00:47:56

还是我们只需要尝试一群解决方案,看看他们何时失败?

您可以使用ChooseBestSolver为程序找到最合适的解决方案。

代码语言:javascript
复制
from pydrake.solvers import mathematicalprogram as mp

# Make a program.
prog = mp.MathematicalProgram()
x = prog.NewContinuousVariables(2, "x")
prog.AddLinearConstraint(x[0] + x[1] == 0)
prog.AddLinearConstraint(2*x[0] - x[1] == 1)

# Find the best solver.
solver_id = mp.ChooseBestSolver(prog)
solver = mp.MakeSolver(solver_id)
assert solver.solver_id().name() == "Linear system"

# Solve.
result = solver.Solve(prog)

还有一个mp.Solve函数可以同时完成所有这些工作。

SNOPT是唯一支持非凸优化的吗?

文档有完整的求解者列表。目前,SNOPT,Ipopt,NLopt是可用的非线性求解器.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71402293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档