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 件のコメント:
コメントを投稿