组合约束优化算法

2024-06-16 14:15:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有组合约束的优化问题

我的问题是: 我有一堆数据,在这些数据的基础上我训练了一个机器学习模型,这个模型依赖于一个输入向量。x[i]都大于或等于零

我获取这个模型的输出并将其插入另一个函数g,我希望通过一些边界和约束最小化该函数。 我知道如何使用我最喜欢的优化器以数字方式解决这个问题,我目前正在研究PySarms或EGO。这没问题

我的问题是: 我不希望x的所有值都大于零。例如,我们查看前4个值x[0],x[1],x[2],x[3]。我知道我希望至少有一个大于零,但不超过3。 这意味着:

x[0], x[1], x[2], x[3], allowed
 2.1,    0,    0,    0, yes
 1.5,    0,  1.1,    0, yes
 1.5,  2.1,  2.1,  1.2, no (more than 3 values are bigger than zero)

我现在的最佳解决方案是暴力: 我接受所有允许的可能性,并对其进行优化

在本例中,我从四个第一个条目中选取了1、2和3个条目的所有组合,并为每个条目解决了一个优化问题

这种野蛮的强迫感觉并不优雅,而且在计算时间方面可以迅速爆发

你们中有谁知道如何更快地解决这个问题吗? 或者,如果允许我做梦,也许有一个python优化器可以开箱即用

我不希望有一个完整的解决方案,但可能有一些指向正确方向的指针。这个问题并不觉得如此深奥以至于以前没有人考虑过,我想我只是缺少了要搜索的正确关键字

谢谢你的帮助


Tags: 数据函数模型机器方式条目数字解决方案