rosenbrock函数Matlab代码-ncOPT:用于非光滑、非凸约束优化的SQP-GS算法的Python实现

时间:2024-07-06 21:00:58
【文件属性】:

文件名称:rosenbrock函数Matlab代码-ncOPT:用于非光滑、非凸约束优化的SQP-GS算法的Python实现

文件大小:57KB

文件格式:ZIP

更新时间:2024-07-06 21:00:58

系统开源

Rosenbrock函数Matlab代码非手术治疗 该存储库包含 Curtis 和 Overton [1] 的 SQP-GS(顺序二次编程 - 梯度采样)算法的Python实现。 注意:这个实现是一个原型代码,它只针对一个简单的问题进行了测试,并且没有进行性能优化。 论文作者提供了一个 Matlab 实现,参见 [2]。 数学描述 该算法可以解决以下形式的问题 min f(x) s.t. g(x) <= 0 h(x) = 0 其中f 、 g和h是局部 Lipschitz 函数。 因此,该算法可以解决具有非凸和非光滑目标和约束的问题。 有关详细信息,我们参考原始论文。 例子 该代码针对 Rosenbrock 函数的 2 维非平滑版本进行了测试,受最大函数约束。 请参见 [1] 中的示例 5.1。 对于这个问题,解析解是已知的。 下图显示了SQP-GS在不同起点的轨迹。 最后的迭代用黑色加号标记,而解析解用金色星星标记。 我们可以看到该算法始终如一地找到了最小值。 要重现此实验,请参阅文件test_rosenbrock.py 。 实施细则 求解器具有三个主要参数,称为f 、 gI和gE 。


【文件预览】:
ncOPT-main
----rosenbrock.png(48KB)
----dev()
--------test_sp_class.py(550B)
----.gitignore(22B)
----ncopt()
--------torch_obj.py(1KB)
--------sqpgs.py(15KB)
--------__init__.py(2B)
--------rosenbrock.py(1KB)
----README.md(2KB)
----test_rosenbrock.py(1KB)
----train_max_fun.py(4KB)

网友评论