当前位置: 首页 > article >正文

【NLP优化】Ubuntu 20.04 下 源码安装 CasADi + Ipopt / acados

20241114 记录一下 Ubuntu 20.04 下安装 MPC 中两种常用开源 NLP 优化器 CasADi + Ipopt / acados

可以新建一个文件夹,保存所有源码安装下载的代码

mkdir ~/mpc_dep

1. 安装依赖

# **IPOPT**
sudo apt-get install gcc g++ gfortran git patch wget pkg-config libmetis-dev

# IPOPT - BLAS 和 LAPACK
sudo apt install libblas-dev  liblapack-dev

# Casadi - Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR)
sudo apt-get install swig

# Mumps
sudo apt install libmumps-seq-dev

2. 安装 Ipopt

参考官网

Ipopt: Installing Ipopt

Ipopt 使用一些外部包,这些包不包括在 Ipopt 源代码分发中,例如 ASL(如果您想编译 Ipopt AMPL 求解器可执行文件,需要 AMPL 求解库),Blas 和 Lapack。

Ipopt 还至少需要一个线性求解器来处理稀疏对称不定矩阵。根据不同的需求,有多种选择。请注意,通常优化器中的计算时间大部分都花在求解线性系统上,且选择的线性求解器会影响 Ipopt 的速度和稳定性。因此,尝试不同的线性求解器可能对应用有益。

由于这些第三方软件的许可证与 Ipopt 不同,ipopt 不能将它们的代码与 Ipopt 包一起分发,因此必须自行获取。对于 ASL、HSL 和 MUMPS,COIN-OR 提供了专门的构建系统,这些系统可以生成与 Ipopt 构建系统兼容的库。部分专门的构建系统还配有脚本,可以使用 wget 或 curl 轻松下载代码。

接下来先安装 Ipopt 依赖的库,再安装本体

Pardiso/SPRAL/WSMP/ASL 都是一些特殊应用的库,可以参考官网按需安装。下面是必须和比较通用的依赖。

2.1. BLAS 和 LAPACK

Ipopt 的构建系统会尝试在系统中找到 BLAS 和 LAPACK 的安装版本。在 Ubuntu 上,可以通过安装 libblas-devliblapack-dev 来提供这些库。

# 刚才安装过了
# sudo apt install libblas-dev  liblapack-dev

2.2. HSL(较复杂)

2.2.1 克隆仓库

cd ~/mpc_dep
git clone https://github.com/coin-or-tools/ThirdParty-HSL
cd ThirdParty-HSL
git checkout releases/2.2.4 # 

http://www.kler.cn/a/394995.html

相关文章:

  • 【问卷调研】HarmonyOS SDK开发者社区用户需求有奖调研
  • 【数据结构】AVL树
  • 使用 Vision 插件让 GitHub Copilot 识图问答
  • ubuntu20.04 colmap 安装2024.11最新
  • 基于微信小程序的平安驾校预约平台的设计与实现(源码+LW++远程调试+代码讲解等)
  • react 受控组件和非受控组件
  • 【AI】【提高认知】通用人工智能才是目标:解析迁移学习与通用智能的挑战与前景
  • 启动QT时,出现找不到python27.dll的问题报错
  • 「QT」文件类 之 QFileSystemWatcher 文件系统监视器类
  • 开始使用 Elastic AI Assistant 进行可观察性和 Microsoft Azure OpenAI
  • fastadmin中动态下拉组件(SelectPage)的使用
  • 【golang-技巧】-自定义k8s-operator-by kubebuilder
  • ASP.NET MVC宠物商城系统
  • 【3D Slicer】的小白入门使用指南七
  • CPU的性能指标总结(学习笔记)
  • Android开发|关于Okhttp发送网络请求
  • 深度学习--正则化
  • Java | Leetcode Java题解之第560题和为K的子数组
  • MySQL多系统安装配置教程(Windows、Ubuntu、Centos)
  • 【Python无敌】在 QGIS 中使用 Python
  • 【MySQL】MySQL中的函数之REGEXP_LIKE
  • 上海市计算机学会竞赛平台2024年8月月赛乙组字符串的种类
  • Centos安装Elasticsearch教程
  • Leetcode 791 Custom Sort String
  • 零碎01-登录验证
  • 基于SpringBoot的“生鲜交易系统”的设计与实现(源码+数据库+文档+PPT)