可以使用神秘优化器来最小化只有整数输入的非凸混合整数非线性规划问题吗?因为目标函数在 x(输入)中是不连续的,它是离散的整数。
问问题
192 次
1 回答
0
我是mystic
作者……是的。Mystic 可以使用差分进化求解器或集成求解器之一处理非凸问题。没有特定于 MLP 的求解器,而是将整数规划作为约束解空间的空间图来处理——要么np.round
作为约束传递给求解器,要么integers
在约束上使用装饰器。
例如,请参阅:
- https://github.com/uqfoundation/mystic/blob/master/examples2/integer_programming.py
- https://github.com/uqfoundation/mystic/blob/master/examples2/eq10.py
- https://github.com/uqfoundation/mystic/blob/master/examples2/eq20.py
- https://github.com/uqfoundation/mystic/blob/master/examples2/hotel_pricing.py
更新以响应下面的评论 提供另一个约束示例...如果您想对输入的平方施加总和,您可以这样做:
>>> import mystic as my
>>> squared = lambda x: [i*i for i in x]
>>> c = lambda x: my.constraints.impose_sum(24, squared(x))
>>> c([1.,2.,3.,4.])
[0.8, 3.2, 7.199999999999999, 12.8]
>>> sum(_)
24.0
mystic
有几个模块,您可以在其中找到预构建的约束函数,但最好的起点是:一般约束、mystic.constraints
统计约束、符号约束和软约束(即惩罚)。mystic.tools
mystic.math.measures
mystic.symbolic
mystic.penalty
于 2020-03-29T20:14:19.423 回答