NetLogoをCUIで動かすその1
NetLogoをCUIで動かす必要があったので書く
- そもそもNetLogoってなーに?
NetLogoは自然現象や社会現象をシミュレーションするためのプログラム可能なモデリング環境です。1999年にUri Wilenskyが作成し、それ以来Center for Connected Learning and Computer-Based Modelingにおいて継続して開発されています。
NetLogo 5.1.0 User Manual 日本語版
つまり現在も開発が進んでいるシミュレーション環境であると
言語はLogo派生言語で書けるっぽい
さて本題
- CUIで動かす
まず実行するには先ほど紹介したUserManualのFAQによると二つ方法があるらしい。
一つはBehaviorSpaceを使う
もう一つはControllingAPIを使うこと
前者はJavaのプログラミングを必要としない
後者はJavaの少しJavaプログラミング技術を必要とする。
今回紹介するのは前者のBehaviorSpace
ただしこの方法はGUIが必要になってくるので注意
-実行環境
・CentOS release 6.5 (Final)(CUIとGUIの両方が必要)
・java version "1.7.0_65"
・netlogo 5.2.0
-実行
今回使用するモデルはUserManualと同じFire.nlogoを使う
(netlogo/models/SampleModels/EarthScienceの中にある)
このモデルは森の密度を決めその燃え広がり方を検証するシミュレーションである。
次にFire.nlogoを開く
この場合density(密度)は57%に設定されている。
次にタブのTools→BehaviorSpaceを押す。
以下の画面が出てきたら
Newを押す
densityを改めて設定する場合はここで
これで大丈夫ならOKを押す
これで環境は整った。
わかりやすいように一度このファイルを別名で保存する
保存先はnetlogoのファイル内NetLogo.jarファイルがあるところに保存する
最後にターミナルで開き先ほど保存した場所へ行き
java -Xmx1024m -Dfile.encoding=UTF-8 -cp NetLogo.jarorg.nlogo.headless.Main --model test.nlogo --experiment experiment --table
を実行すると以下のように出力される
出力結果を保存したい場合は
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を押すことでシミュレーションが実行され、同時にファイルを生成することができる。