旋转功能并转移全局最小值

问题描述

我必须使用一些基准测试功能来实现本地最佳PSO。

我已经做了PSO代码。现在,我需要在python中实现或以某种方式导入CEC'13竞争中使用的功能之一。 Matlab,C ++和Java中的一些代码available,但是我仍然不知道如何旋转和移动函数。我整天试图不加任何改进地理解这些代码

我知道,当我们旋转函数时,优化过程会变得更加困难。但是我不知道该怎么做,以及在此过程中全局最小值是否发生变化。

例如,我制作了此版本的旋转和移位函数(球形函数),但结果对我来说没有任何意义。


MD10 =  [3.1911842062536983e-001,-3.5026796034077642e-002,2.2869946075488337e-001,-5.1509331368533506e-001,-1.7008045728342708e-001,-5.7237450740736251e-001,1.1845882795972437e-001,-2.0491829853532229e-001,-4.3974614726204161e-002,-4.0597325479415658e-001]

o = [-2.1984809693274691e+001,1.1554996930588054e+001,-3.6010680930410572e+001,6.9372732348913601e+001,-3.7608870747492858e+001,-4.8536292149608940e+001,5.3764766904999085e+001,1.3718568644579500e+001,6.9828587467188129e+001,-1.8627811237527567e+001]


def fobj1(x):
    global qtd_avaliacoes
    qtd_avaliacoes+=1
    f = -1400
    
    somatorio = 0
    
    somatorio = sum(x*MD10 - o)**2
    return somatorio + f

MD矩阵和o来自第二个链接中的文件

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)