gpt4 book ai didi

python - 仅获取 pyswarm 粒子生成的整数

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:41 26 4
gpt4 key购买 nike

我正在使用 pyswarm,我想知道是否有人知道如何更改设置以仅获取群粒子 (x1, x2) 的整数!

from pyswarm import pso
def banana(x):
x1 = x[0] # Get only integer number
x2 = x[1] # Get only integer number
return x1**4 - 2*x2*x1**2 + x2**2 + x1**2 - 2*x1 + 5
def con(x):
x1 = x[0]
x2 = x[1]
return [-(x1 + 0.25)**2 + 0.75*x2]

lb = [-3, -1]
ub = [2, 6]

xopt, fopt = pso(banana, lb, ub, f_ieqcons=con)

最佳答案

今天遇到同样的问题,稍微看了一下代码,发现根本没有处理这个行为。此外,自 2015 年以来存储库上没有任何事件......

此外,将初始实域空间映射到整数空间并不是一个好主意:两个整数之间的所有解都将使用相同的参数计算。

更改目标函数参数意味着您定义了一个为非整数参数返回的“错误”值(某种被优化问题惩罚的极值)。但是您可能会以这种方式面临局部最优。

所以最后您可能想要搜索其他实现 PSO 的库,或者甚至尝试在实际的 pyswarm 代码上实现以支持粒子的自定义域。

编辑:这是一篇关于整数规划 PSO 的论文:http://www.cs.uoi.gr/~kostasp/papers/C03.pdf

关于python - 仅获取 pyswarm 粒子生成的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com