2016年1月20日水曜日

LocalSolver(1) : 起動とJavaの実行

LocalSolverの利用法です。ライセンス取得やテストに関しては下記を参考
http://www.msi-jp.com/localsolver/quickguide/gettingstarted/macos.html

localsolverコマンドを利用するので、/opt/localsolver_5_5/bin にパスを通す。
ホームディレクトリにて
$ vi .bash_profile
export PATH=$PATH:/opt/localsolver_5_5/bin
$ source .bash_profile

上記に書いてあるテストを実行してみる。

$ cd /opt/localsolver_5_5/examples/toy/
$ localsolver toy.lsp lsTimeLimit=1




lspファイルは実行できたので、次はJavaで実行する。
同じディレクトリで下記を実行。パーミッションエラーの場合は sudo をつける。
$ javac Toy.java -cp /opt/localsolver_5_5/bin/localsolver.jar
$ java -cp /opt/localsolver_5_5/bin/localsolver.jar:. -Djava.library.path=/opt/localsolver_5_5/bin/ Toy



LSPとJava両方で実行ができました。
Knapsack問題のものも実行してみます。
/opt/localsolver_5_5/examples/knapsack へ移動
$ sudo javac Knapsack.java -cp /opt/localsolver_5_5/bin/localsolver.jar
 $ sudo java -cp /opt/localsolver_5_5/bin/localsolver.jar:. -Djava.library.path=/opt/localsolver_5_5/bin/ Knapsack ./instances/kp_100_1.in

instanceフォルダに価値と重さが入っているファイルがあるので、1番目の引数につける。inputFile [outputFile] [timeLimit] 2番目と3番目の引数はオプション。


 入力ファイルを確認する。
$ cat instances/kp_100_1.in
最初の数字100が商品数
次の100件の数字が商品のweight、次の100件の数字が商品のvalue、
最後の数字がKnapsackBound(制約条件)。
 作成されたファイルには、商品番号が入っている


0 件のコメント:

コメントを投稿