求解具有组合约束的非线性优化问题

计算科学 优化 非线性规划 约束优化
2021-12-01 11:44:47

我必须最小化非线性目标函数f(x0,x1,x2,x3,x4,x5)有 6 个变量。

控制这些变量的约束是非线性不等式约束和一些组合约束的混合。

对于非线性不等式约束和目标函数,只要所有变量 (x0x5) 被指定。如果需要,我也可以获取 Hessian 值,但我担心这些值可能不准确。

此外,目标函数和非线性不等式约束始终是连续的,只能在感兴趣区域上分段可微

通过组合约束,我的意思是x3,x4,x5 只能将离散值的列表一起取,如{3,4,5}、{8,7,18}等。

是否有任何现有的科学软件包(或数学算法,我可以自己编程求解器)来满足我的需要?

注意:不等式约束是高度非线性的,只能通过数值方法进行评估。

1个回答

充其量,您的问题是混合整数非线性程序(MINLP)。

假设您可以将问题分解为子区域,以便在每个区域中,您的目标函数和所有约束都是两次连续可微的,您可能可以使用 BARON、Couenne 或 Bonmin。我假设一个体面的局部最优解决方案是令人满意的;如果需要全局最优解,BARON 可能是您的最佳选择,但需要您的目标函数和约束条件的解析表达式。

如果你不能这样做,那么你可能不得不找到一个非光滑的混合整数非线性规划求解器。我用粗略的谷歌搜索找不到一个,但也许存在一个。如果您愿意,我想您可以将非平滑求解器包装在分支定界算法中。

除非您计划将此类求解器的实现作为您研究的主要目标,否则我强烈建议您避免尝试自己编写求解器。许多最好的优化求解器是数十年工作的产物,简单的实现通常只能实现最先进实现的一小部分性能。(作为我研究的一部分,我目前正在实现一个混合整数编程求解器,并期望编程一个可敬的实现将是多年的努力。)