无法导入PyOpt包

1 投票
2 回答
1621 浏览
提问于 2025-04-18 02:20

我决定从我现在的商业优化程序转到PyOpt。

在导入某些优化器时遇到了一些困难,我找不到关于PyOpt的信息,除了PyOpt官网上的内容。

无法导入的优化器有:

from pyOpt import MMFD   #Modified Method of Feasible Directions                                             
from pyOpt import MMA    #Method of Moving Asymptotes                                                                                              
from pyOpt import GCMMA  #Globally Convergent Method of Moving Asymptotes                                                                 
from pyOpt import NLPQL  #Non-Linear Programming by Quadratic Lagrangian                                                           
from pyOpt import NLPQLP #Non-Linear Programming with Non-Monotone and Distributed Search            
from pyOpt import FSQP   #Feasible Sequential Quadratic Programming                        

其他的优化器都能正常导入。运行下面的帮助文件时,包似乎已经安装好了,但特定的优化器却无法导入。

_________________________________

关于pyOpt包的帮助:

名称 pyOpt

文件 /usr/lib64/python2.7/site-packages/pyOpt/init.py

包的内容

pyALGENCAN (package)
pyALHSO (package)
pyALPSO (package)
pyCOBYLA (package)
pyCONMIN (package)
pyFILTERSD (package)
pyFSQP (package)
pyGCMMA (package)
pyKSOPT (package)
pyMIDACO (package)
pyMMA (package)
pyMMFD (package)
pyNLPQL (package)
pyNLPQLP (package)
pyNSGA2 (package)
pyOpt_constraint
pyOpt_gradient
pyOpt_history
pyOpt_objective
pyOpt_optimization
pyOpt_optimizer
pyOpt_parameter
pyOpt_variable
pyPSQP (package)
pySDPEN (package)
pySLSQP (package)
pySNOPT (package)
pySOLVOPT (package)
setup

___________________________

我怀疑在这些包中使用的ADS(自动设计合成优化程序)没有安装,但找不到相关的信息(从包的源代码中看到的)。

这个软件在不同的机器上反复安装,结果都是一样,因此我怀疑安装程序中缺少某些包。

任何关于PyOpt的用户指导都将不胜感激。

2 个回答

0

在主文件夹的LICENCE文件中提到:

一些优化器是有许可证的,它们的源代码没有包含在这个分发包里。要使用这些优化器,请按照优化器中的说明向作者请求源代码,并在安装包之前把它们放到各自的源代码文件夹里。

我查看了一下,MMA、GCMMA和NLPQL确实是这样的。其他的我没有检查。我知道,想要获得MMA和GCMMA的代码,需要和开发者签署一个协议。

2

我们不使用 pyOpt,而是用 NLPQLP,这个在你提到的没有导入的包列表里。

NLPQLP 不是免费的,至少我们用的这个版本不是。

对于 MMA 也是这样,我认为它指的是 Svanberg 在 KTH 开发的代码。

根据这些情况,可能 pyOpt 只是包含了那些不免费的包的接口。

希望这对你有帮助。

撰写回答