Psoptインストール メモ

修論のとき利用してたライブラリをインストールしてみたのでメモ。

Ipopt

非線形計画問題(NonLinear Programming:NLP)ソルバ。(商用のものまで含めた上で)かなり評判が良い。しかもフリー。

  • インストール: configureで以下を指定して、後は流れのままに。
    • インストール場所
    • 静的ライブラリの作成
    • 各種コンパイラ(gfortranじゃないとerror吐かれた)
    • atlas,lapackの場所指定

AMPL solverをインストールしてないとtestでerrorを吐かれるが、installの後でexampleがコンパイルできればおk(Makefile内LIBSの順番を書き換える必要があったが)。

$: ./configure --prefix=/usr/local --enable-static CXX=g++ CC=gcc F77=gfortran --with-blas="-L/usr/lib/atlas -lblas" --with-lapack="-L/usr/lib/atlas -llapack"
$: make
$: make test
$: sudo make install

adolc

自動微分ライブラリ。ちょっとメモリを食うが超絶便利。これを初めて見たときはオブジェクト指向すげー!って思ったなー。

  • インストール: synapticでインストールできた!楽ちん!…と思ったら、PSOPTがver.2以降に対応してなかった(どうやら、sparse行列の扱い方がver.2以降で違う模様。ver.2以降では、colpackというライブラリを利用してるらしい)。

Psoptを書き換えるのも面倒なので、ver-1.10.1を/usr/local に野良ビルド

$: ./configure --prefix=/usr/local
$: make
$: make check
$: sudo make install

DMatrix

C++行列演算ライブラリ。CLAPACKをさらにラップしている模様。インターフェイスmatlabに近いので扱いやすいが、エラーメッセージが非常に不親切。

Psopt

非線形DAEシステムの最適制御問題ソルバ。collocation法を利用。作り込みが足りなくて不親切な部分もあるが、フリーなので文句は言えない。configureも用意されていないので、Makefileを若干書き換える必要あり。ライブラリやヘッダの場所、必要なライブラリ(-lgfortranとか)の取り込みがいいかげんに書いてあるので、環境に合わせて適宜指定する。できたライブラリやヘッダはお好みでcp。
また、複雑な最適制御問題だと計算機環境によって解が変わってきてしまうようだ。(ソルバとして致命的だが、まーNLP自体解くことが難しいし仕方ないといえば仕方ない…)

$: sh ./use_ipopt_only.sh
$: make clean
$: make distclean
$: make all