2016年4月5日火曜日

CUTEr/CUTEst の Matlab 用ファイル

問題ライブラリ集である CUTEr/CUTEst は、Matlab 用にデータを変換できるツールがあるので、以下の流れに沿うと Matlab 用に一括変換できる。



実際の手順は以下のサイトに書かれている通りである。
http://ccpforge.cse.rl.ac.uk/gf/project/cutest/wiki/

mkdir ~/cuter
cd ~/cuter
git clone https://github.com/optimizers/archdefs-mirror.git
git clone https://github.com/optimizers/sifdecode-mirror.git
git clone https://github.com/optimizers/cutest-mirror.git
git clone https://github.com/optimizers/mastsif-mirror.git
git clone https://github.com/optimizers/maros-meszaros-mirror.git

export ARCHDEFS=${HOME}/cuter/archdefs-mirror
export SIFDECODE=${HOME}/cuter/sifdecode-mirror
export CUTEST=${HOME}/cuter/cutest-mirror
export MYMATLAB=/usr/local

export ARCHDEFS="${HOME}/cuter/archdefs-mirror"
export SIFDECODE="${HOME}/cuter/sifdecode-mirror"
export CUTEST="${HOME}/cuter/cutest-mirror"
export PATH="${SIFDECODE}/bin:${PATH}"
export PATH="${CUTEST}/bin:${PATH}"
export MANPATH="${SIFDECODE}/man:${MANPATH}"
export MANPATH="${CUTEST}/man:${MANPATH}"

export MYARCH="pc64.lnx.gfo"
export MYMATLABARCH="pc64.lnx.gfo"

export MATLABPATH="${CUTEST}/src/matlab:$MATLABPATH"
export MASTSIF="${HOME}/cuter/mastsif-mirror"

cd ~/cuter/cutest-mirror
./install_cutest
  いろいろとメッセージが出てくるので、それに答える
  自分のところでは、(6) PC with generic 64-bit processor を選択して進めた
  あとは、Matlab を利用できるように設定もした
 
cd ~/cuter/cutest-mirror/src/matlab
以下のシェルスクリプトを行う

#!/bin/sh -x
mkdir mastsif
for SIF_FILE in `ls ${HOME}/cuter/mastsif-mirror/*.SIF`
do
    echo Processing $SIF_FILE
    SIF=`basename $SIF_FILE .SIF`
    cutest2matlab $SIF
    matlab -r "prob = cutest_setup(); save('a.mat','prob'); exit"
    mv a.mat mastsif/$SIF.mat
done

これで mastsif に *.mat が出来上がる。
例えば、LUBRIFC.mat を読み込むと
>> load LUBRIFC.mat

prob というデータが入っていて、この中に問題が格納されている。

実際のデータ構造は、
http://tracsvn.mathappl.polymtl.ca/trac/cuter/wiki/NewMatlabInterface
に詳しく書かれている。


0 件のコメント:

コメントを投稿