ipopt自动区分

时间:2019-02-21 09:46:31

标签: ipopt automatic-differentiation

根据ipopt websiteADOL-CCppAD可以实现自动区分。我想知道我应该首选哪种工具,主要区别是什么。与ipopt一起使用时,对这两者的速度进行比较也很有趣。

CppAD似乎更加积极地开发,从其github page可以看出。 Udacity还将其用于MPC项目的自动驾驶汽车纳米级。

另一方面,ADOL-C似乎已经有4年没有更新了?

我开始使用ADOL-C是因为我正在处理的项目已经在使用它,并且正在遵循ipopts虚拟功能的结构。但是,对于此项目中未使用的某些变量,似乎有很多不必要的开销。例如上限和下限乘数(zl zu)或约束乘数lambda

用于ipopt的adol-c的examples也缺少这些变量的文档。 例如:在执行example时,变量sigobj_lamlam是什么?

我还尝试使用ADOL-C,因为它已经实现了ipopt的所有必需虚拟方法(get_starting_pointeval_f等)。 CppAD似乎有自己的方法来使用ipopt,这将需要从头开始编写整个项目。还是有另一种方法可以将CppAD与ipopt的当前结构一起使用?

0 个答案:

没有答案