玉溪網(wǎng)站建設(shè)現(xiàn)狀如何注冊(cè)一個(gè)平臺(tái)
20241114 記錄一下 Ubuntu 20.04 下安裝 MPC 中兩種常用開(kāi)源 NLP 優(yōu)化器 CasADi + Ipopt / acados
可以新建一個(gè)文件夾,保存所有源碼安裝下載的代碼
mkdir ~/mpc_dep
1. 安裝依賴(lài)
# **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
參考官網(wǎng)
Ipopt: Installing Ipopt
Ipopt 使用一些外部包,這些包不包括在 Ipopt 源代碼分發(fā)中,例如 ASL(如果您想編譯 Ipopt AMPL 求解器可執(zhí)行文件,需要 AMPL 求解庫(kù)),Blas 和 Lapack。
Ipopt 還至少需要一個(gè)線(xiàn)性求解器來(lái)處理稀疏對(duì)稱(chēng)不定矩陣。根據(jù)不同的需求,有多種選擇。請(qǐng)注意,通常優(yōu)化器中的計(jì)算時(shí)間大部分都花在求解線(xiàn)性系統(tǒng)上,且選擇的線(xiàn)性求解器會(huì)影響 Ipopt 的速度和穩(wěn)定性。因此,嘗試不同的線(xiàn)性求解器可能對(duì)應(yīng)用有益。
由于這些第三方軟件的許可證與 Ipopt 不同,ipopt 不能將它們的代碼與 Ipopt 包一起分發(fā),因此必須自行獲取。對(duì)于 ASL、HSL 和 MUMPS,COIN-OR 提供了專(zhuān)門(mén)的構(gòu)建系統(tǒng),這些系統(tǒng)可以生成與 Ipopt 構(gòu)建系統(tǒng)兼容的庫(kù)。部分專(zhuān)門(mén)的構(gòu)建系統(tǒng)還配有腳本,可以使用 wget 或 curl 輕松下載代碼。
接下來(lái)先安裝 Ipopt 依賴(lài)的庫(kù),再安裝本體
Pardiso/SPRAL/WSMP/ASL 都是一些特殊應(yīng)用的庫(kù),可以參考官網(wǎng)按需安裝。下面是必須和比較通用的依賴(lài)。
2.1. BLAS 和 LAPACK
Ipopt 的構(gòu)建系統(tǒng)會(huì)嘗試在系統(tǒng)中找到 BLAS 和 LAPACK 的安裝版本。在 Ubuntu 上,可以通過(guò)安裝 libblas-dev
和 liblapack-dev
來(lái)提供這些庫(kù)。
# 剛才安裝過(guò)了
# sudo apt install libblas-dev liblapack-dev
2.2. HSL(較復(fù)雜)
2.2.1 克隆倉(cāng)庫(kù)
cd ~/mpc_dep
git clone https://github.com/coin-or-tools/ThirdParty-HSL
cd ThirdParty-HSL
git checkout releases/2.2.4 #