cma或ego中的不连续函数或python

时间:2018-06-05 10:02:22

标签: optimization genetic-algorithm particle-swarm

我正在尝试编写此功能

   min f(x) = {  -x   if  x  < =  1

                 x-2   if  1 < x <= 3

                 4-x   if 3 < x <= 4

                 x-4   if 3 x > 4}

在python中使用这些包cma,pso(pyswarms)和ego(pySOT)。

import numpy as np
import cma


def h(x):
     if x <= 1:
          return -x
     elif 1 < x <= 3 :
           return x-2
     elif 3 < x <= 4 :
           return 4-x
     else:
         return x-4
x0 = np.array([100])
rescma = cma.fmin(h,x0, 0.1)

我收到此错误:ValueError:不支持1-D优化(代码从未测试过)

如果我尝试使用2-D 喜欢:

x0 = np.array([100,20])

我收到此错误:ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()

你有任何想法解决这个问题吗?

由于

0 个答案:

没有答案