2016年4月15日金曜日

bash on Ubuntu on Windows 10

この夏に Windows 10 で Ubuntu の bash が動くようになるようで、gcc や python なども apt-get でインストールできる様子。

グラフィックス周りは当面は実行できないだろうけど、apt-get でインストールができるようになると数理最適化関連のソフトを Windows にインストールするのも格段に便利になるので、利便性が一気に向上するのでは?と思ったりする。

将来的に X が動くようにもなれば、TeX 関係も非常に簡単にインストールできるので、そのあたりも楽になりそう。
(# apt-get install yatex とすると、emacs も TeX も一度にインストールできる。試したことはないが、TeXworks をインストールすると TeX も一度にインストールできるかもしれない。)




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
に詳しく書かれている。