如何解决Pydrake:访问额外的 SNOPT 求解器输出 (iter)
根据 SNOPT docs(第 57 页),退出时 SNOPT 的输出之一是 iter
,即执行的主要迭代次数。我想知道在 pydrake 中使用 SnoptSolver
时是否有任何方法可以访问此输出。谢谢!
解决方法
iter
在 SNOPT 的 npOpt
接口中可用,不幸的是我们在 Drake 的包装类 snoptA
中使用了 SnoptSolver
接口(SNOPT doc https://web.stanford.edu/group/SOL/guides/sndoc7.pdf 的第 3 章),我不认为这个 snoptA
接口在退出时返回 iter
。
如果你想知道迭代次数,你可以打印snopt进度。一个例子是
# Print out the progress to my_output.txt
prog.SetSolverOption(SnoptSolver.solver_id(),"Print file","my_output.txt")
result = snopt_solver.Solve(prog)
在 my_output.txt
中,您将看到迭代次数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。