python中带约束的Nelder-Mead优化
目前,我正在寻找python中的Nelder Mead优化器,它也接受变量的边界和约束。 Scipy有一个Nelder Mead优化器,但它不允许任何约束 在我的搜索过程中,我发现了这个包,这应该使这成为可能 下面是一个如何使用constrNMPy的示例:python中带约束的Nelder-Mead优化,python,optimization,scipy-optimize,scipy-optimize-minimize,Python,Optimization,Scipy Optimize,Scipy Optimize Minimize,目前,我正在寻找python中的Nelder Mead优化器,它也接受变量的边界和约束。 Scipy有一个Nelder Mead优化器,但它不允许任何约束 在我的搜索过程中,我发现了这个包,这应该使这成为可能 下面是一个如何使用constrNMPy的示例: # Define initial guess x0=[2.5,2.5] # Define lower and upper bounds (None indicates no bound) LB=[2,2] UB=[None,3] # Ca
# Define initial guess
x0=[2.5,2.5]
# Define lower and upper bounds (None indicates no bound)
LB=[2,2]
UB=[None,3]
# Call optimizer
import constrNMPy as cNM
res=cNM.constrNM(cNM.test_funcs.rosenbrock,x0,LB,UB,full_output=True)
# Print results
cNM.printDict(res)
但是,此示例仅说明如何定义边界,而不能定义约束。在上面的示例中,我希望有以下约束,以便变量只接受总和为5的值:
cons = {'type':'eq', 'fun':lambda x0: 5 - sum(x0)}
如何将此约束传递给constrNM
调用
或者是否有其他带有约束的Nelder-Mead优化器软件包?我不知道有任何Nelder-Mead算法可以处理一般约束。您可能想看看其他算法,如SLSQP或COBYLA。我想你会处理一些小问题。