我正在考虑使用 minpack软件包来解决我的优化问题(这是我面临的那种问题),但我不太清楚这个软件包的内存要求和速度是多少。
任何的想法?
我正在考虑使用 minpack软件包来解决我的优化问题(这是我面临的那种问题),但我不太清楚这个软件包的内存要求和速度是多少。
任何的想法?
不要使用MINPACK。它已有 30 多年的历史,并且存在更好、更现代的优化软件。更重要的是,我搜索了 MINPACK 源代码并仔细阅读了文档(PDF 是扫描的图像,无法搜索),我没有看到任何选项来适应您的问题中的约束。
我不清楚你的问题是凸的。但是,在考虑全局优化算法之前,我会尝试更现代的优化包。标准的开源约束非线性优化包是IPOPT,它在优化界享有盛誉。它的作者(主要是 Andreas Wächter 和 Carl Laird)根据软件的质量获得了 INFORMS 的奖项。对于您的特定问题,这可能有点过头了,但是如果您有兴趣解决更大的类似案例研究,那么使用 IPOPT 是非常值得的。
还有其他几个求解器。Arnold Neumaier 的网页列出了许多求解器;您还应该检查GAMS和AMPL使用的求解器,因为 Neumaier 教授的列表不包含其中一些求解器。由于您的问题是受约束的非线性最小二乘问题,您还应该考虑利用该结构的求解器。
GAMS 是用于优化问题的优秀建模语言;如果你只是需要解决优化问题,或者你想做一些原型设计,它是一个非常好的工具。试用许可证应该足以解决您的小问题。
鉴于您的示例的大小,任何优化包都不太可能在内存和处理能力要求方面遇到问题。内存绝对不是问题,只有在问题是非凸的并且局部最小值不为零的情况下,或者如果您的目标函数评估成本很高时,处理能力才会成为问题。鉴于您正在考虑使用MINPACK 使用此目标函数解决优化问题,我将假设目标函数的评估成本不高。
然而,对于大型示例,更现代的包(如 IPOPT)利用了稀疏性,而 MINPACK 则没有。在优化算法中利用稀疏性可以减少内存需求,并且通常会减少解决给定问题所需的时间。