有没有办法说明我们有哪一类优化问题?例如SOCP,SDP,还是完全非凸的?
还是我们只需要尝试一群解决方案,看看他们何时失败?SNOPT是唯一支持非凸优化的吗?
发布于 2022-03-08 23:01:30
发布于 2022-03-09 00:47:56
还是我们只需要尝试一群解决方案,看看他们何时失败?
您可以使用ChooseBestSolver为程序找到最合适的解决方案。
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是可用的非线性求解器.
https://stackoverflow.com/questions/71402293
复制相似问题