Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python';s fmin“u cobyla”;ValueError:使用序列设置数组元素。";_Python_Optimization_Scipy - Fatal编程技术网

Python';s fmin“u cobyla”;ValueError:使用序列设置数组元素。";

Python';s fmin“u cobyla”;ValueError:使用序列设置数组元素。";,python,optimization,scipy,Python,Optimization,Scipy,我的fmin\u cobyla有点问题。我的约束函数就是问题所在,因为它会产生错误。我收到以下错误消息: File "C:/Users/daniel/Documents/Python Scripts/GST_physics\ML_GST.py", line 85, in ML_GST x_opt=scipy.optimize.fmin_cobyla(objectiveFunction,parameters,ConstrainFunction) File "C:\Users\daniel\

我的
fmin\u cobyla
有点问题。我的约束函数就是问题所在,因为它会产生错误。我收到以下错误消息:

File "C:/Users/daniel/Documents/Python Scripts/GST_physics\ML_GST.py", line 85, in ML_GST
   x_opt=scipy.optimize.fmin_cobyla(objectiveFunction,parameters,ConstrainFunction)

File "C:\Users\daniel\Anaconda\lib\site-packages\scipy\optimize\cobyla.py", line 171, in fmin_cobyla **opts)

File "C:\Users\daniel\Anaconda\lib\site-packages\scipy\optimize\cobyla.py", line 246, in _minimize_cobyla
    dinfo=info)

File "C:\Users\daniel\Anaconda\lib\site-packages\scipy\optimize\cobyla.py", line 240, in calcfc con[k] = c['fun'](x, *c['args'])

ValueError: setting an array element with a sequence.
下面是约束函数的代码。我没有发布所有的代码,因为有很多用户定义的函数没有意义。大部分代码涉及量子计算工作的
qutip

此函数中出现问题
G
是矩阵列表,
rho
E
是数组,
pauli_基
Qobjs
的列表

def ConstrainFunction(x):

    [G_chol,r,E]=ParamToGate(x,parameterSizes)

    G=[qptInv(np.transpose(np.conj(g))*g,op_basis) for g in G_chol]
    G=[np.transpose(np.conj(g))*g for g in G]
    c=[]

    ceq=np.zeros((len(pauli_basis),len(G)))

    for ii in range(len(G)):
        for rr in range(len(pauli_basis)):
            for mm in range(len(G)):
                for nn in range(len(G)):
                    ceq[rr,ii]=ceq[rr,ii]+G[ii][mm,nn]*(pauli_basis[mm]*pauli_basis[rr]*pauli_basis[nn]).tr()
            ceq[rr,ii]=ceq[rr,ii]-kroneckerDelta(0,rr)*(2**(num_qubits*2))

    ceq=np.matrix(ceq)
    ceq=np.array(mat2vec(ceq))
    lengthCEQ=len(ceq)
    rho=np.transpose(np.conj(r))*r
    traceerror=np.trace(rho)-1.0
    ceq=np.vstack([np.array(ceq),np.array([[traceerror.real]])])
    return ceq
x_opt=scipy.optimize.fmin_cobyla(objectiveFunction,parameters,ConstrainFunction)

文档中说
cons
关键字包含一个函数或一系列函数:
约束函数;必须全部>=0(如果只有1个约束,则为单个函数)。每个函数都将参数x作为其第一个参数。
-您确定您所做的实际上是符合api的吗?如果我正确解释了您的代码,那么您返回的函数具有多维输出,从文档字符串判断,这可能不受支持。