寝て起きて寝て

プログラミングが出来ない情報系のブログ

NetLogoをCUIで動かすその1

NetLogoをCUIで動かす必要があったので書く


- そもそもNetLogoってなーに?

NetLogoは自然現象や社会現象をシミュレーションするためのプログラム可能なモデリング環境です。1999年にUri Wilenskyが作成し、それ以来Center for Connected Learning and Computer-Based Modelingにおいて継続して開発されています。

NetLogo 5.1.0 User Manual 日本語版


つまり現在も開発が進んでいるシミュレーション環境であると

ちなみにMac,Windows,Linuxで動く強い

言語はLogo派生言語で書けるっぽい

さて本題

- CUIで動かす

まず実行するには先ほど紹介したUserManualのFAQによると二つ方法があるらしい。
一つはBehaviorSpaceを使う
もう一つはControllingAPIを使うこと
前者はJavaのプログラミングを必要としない
後者はJavaの少しJavaプログラミング技術を必要とする。

今回紹介するのは前者のBehaviorSpace
ただしこの方法はGUIが必要になってくるので注意


-実行環境

CentOS release 6.5 (Final)(CUIGUIの両方が必要
java version "1.7.0_65"
・netlogo 5.2.0

-実行
今回使用するモデルはUserManualと同じFire.nlogoを使う
(netlogo/models/SampleModels/EarthScienceの中にある)
このモデルは森の密度を決めその燃え広がり方を検証するシミュレーションである。

次にFire.nlogoを開く

f:id:krs1:20150609123639p:plain

この場合density(密度)は57%に設定されている。

次にタブのTools→BehaviorSpaceを押す。

以下の画面が出てきたら

f:id:krs1:20150609124739p:plain

Newを押す

f:id:krs1:20150609125027p:plain

densityを改めて設定する場合はここで

これで大丈夫ならOKを押す

これで環境は整った。

わかりやすいように一度このファイルを別名で保存する
保存先はnetlogoのファイル内NetLogo.jarファイルがあるところに保存する

f:id:krs1:20150609125949p:plain

最後にターミナルで開き先ほど保存した場所へ行き

java -Xmx1024m -Dfile.encoding=UTF-8 -cp NetLogo.jarorg.nlogo.headless.Main --model test.nlogo --experiment experiment --table

を実行すると以下のように出力される

f:id:krs1:20150609131202p:plain

出力結果を保存したい場合は

java -Xmx1024m -Dfile.encoding=UTF-8 -cp NetLogo.jar org.nlogo.headless.Main --model Fire.nlogo --experiment experiment --table ./test.csv

などにすると保存することができる。



おまけ
BehaviorSpaceを作り、Runを押して実行させると
Run optionsが表示される
ここでファイルの出力設定を行い、OKを押すことでシミュレーションが実行され、同時にファイルを生成することができる。