我是优化领域的新手。虽然有些项目使用fmincon,现在正在寻找可在OpenSource中使用的替代方案,但最好在Python中以某种方式使用。因此我找到了IPopt。还有其他与fmincon同样好的建议吗?
我尝试通过编译来安装IPopt。我必须说,这似乎是一团糟。我尝试了所有版本,最终得到了手册中最有前途的一个“使用MSVC ++编译器安装Cygwin”。因此我必须安装CYGwin并更改make.exe。完成。将Visual Studio中的cl.exe(在我的案例中为Visual Studio 1)添加到Apth环境中。完成。将“call”调用“C:\ Program Files(x86)\ Microsoft Visual Studio 14 \ VC \ vcvarsall.bat”添加到cygwin.bat。完成。
现在有两件事。当我使用下载的IPopt源执行“./configure”时,我得到:“configure:error:/ bin / sh'./configure'Ipopt失败”
同样在手册中建议调用“./configure -enable-doscompile = msvc”告诉cygwin使用windows编译器给我“configure:error:--enable-doscompile = mscv不再支持。”
所以。基本上我无法安装Ipopt。使用它似乎是不可能的,因为构建它的所有其他方法也在我的Win10 64bit上失败了。似乎手册已经过时或者我没有找到完成它的核心方法,希望你们中的一些人可能会提供帮助。编译是一个相当新的东西,我很乐意学习。 Tahnks提前。
确保您在Cygwin中安装了以下软件包。
假设您正在构建64位,请在Cygwin.bat中添加cl.exe路径(位于安装Cygwin的位置的根目录中),以便可以从Cygwin中使用msvc - call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat"
(vcvarsall需要您指定架构版本)
您将需要英特尔Fortran编译器。它与Parallel Studio一起提供。免费为学生,教师,开源贡献者。
在.bash_profile
(位于pathto/cygwin64/home/username/
)添加此行,以便ifort识别msvc链接器(上面给出的路径应该是msvc的link.exe) -
alias ifort='ifort -Qlocation,link,"C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/amd64"'
英特尔Fortran集成到visual studio shell中。运行这个shell。从这个shell执行cygwin.bat。检查链接的版本(link --version
)。如果它不是Microsoft链接器,您可能必须从Cygwin文件夹中删除Cygwin link.exe
文件。
请注意,任何其他bash终端(例如Git Bash)可能会干扰。只有在运行configure
脚本时才会知道。它试图从那些bash终端访问包。你可能不得不暂时把它们放在别处,所以cygwin找不到它们。
我知道您已经阅读了本手册,因此您必须已经下载了Ipopt所需的第三方工具(asl,lapck,blas和一个线性求解器)。
你现在可以运行(在Ipopt根文件夹中):
mkdir build
cd build
../configure --enable-msvc=MD
make
make install