如何解决当我尝试使用相同的初始猜测在 Drake 中解决非线性程序时,无法从 SNOPT 获得相同的解决方案
我正在尝试使用 drake 中的直接搭配来解决非线性程序。我想在SNOPT成功解决程序时重新获得解决方案。首先我将每个变量的初始猜测保存在一个 .txt 文件中,然后我读取了初始猜测并通过 SetInitialGuess() 设置决策变量,并没有改变其他任何东西,但我没有得到相同的解决方案, 为什么?
此外,当我运行更多次时,后面的解决方案是相同的。
例如
solution1 != solution2; solution2 == solution3; solution3 == solution4;.....
我检查了每个初始猜测以确保它们相同。是否应该在决策变量的初始猜测旁边设置 SNOPT 中的选项或 NP 中的初始设置以获得相同的解决方案?
解决方法
在不了解您的程序的情况下,一个可能的原因是当您将初始猜测保存到 a.txt
时,浮点数在打印到 txt 文件时会被截断。所以在第二次运行中,初始猜测与第一次运行并不完全相同。初始猜测中的这种微小差异导致 SNOPT 找到不同的解决方案。对于解决方案 2、3、4,它们是否都加载了来自 a.txt
的初始猜测?
为了将浮点数打印到txt文件,您可以使用setprecision命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。