NetLogo実験セットアップ


9

私はNetlogoでモデルに取り組んでおり、「実験」の設定方法を理解するのに問題があります。私のモデルでは、関心のあるすべての値(合計6つ)を持つマトリックスがあり、条件が満たされるたびに(Xカメが殺されるたびに)マトリックスが更新され、基本的にはその時点でのモデル。マトリックス内の以前の値はクリアされているため、マトリックスは1x6であり、スナップショットごとに1行のみが更新される10000x6マトリックスではありません。

私がやりたいのは、モデルを数百回実行する実験を設定し、最初のXのスナップショットごとに、またはYティックが発生するまで、このマトリックスを毎回収集することです。しかし、実験のセットアップでそれを行う方法がわかりませんか?

これは可能ですか、または100x6(100のスナップショット)を作成して、そのマトリックスをCSVにエクスポートする必要がありますか?

私はNetlogoで実験をセットアップしたことがないので、これは非常に簡単であるか、まったく不可能かもしれません。


BehaviorSpaceを使用して答えを出しました。しかし、csvファイルを作成し、作成時に各スナップショットを追加しても問題はありません。つまり、100x6のマトリックスを用意してエクスポートする必要はありません。このアプローチをお勧めしないのは、数百回の個別の実行が必要であり、これにより実行ごとに個別のcsvファイルが得られるということです。
JenB

回答:


3

私があなたの質問を正しく理解している場合、実行中に特定のティックで報告される6つの値が必要です。これらのティックは、一定数のティックではなく、条件を満たすことによって選択されます。NetLogoには、BehaviorSpaceと呼ばれる実験管理ツールがあります。数百回の実行を設定するのは簡単です(場合によっては、スライダーの入力に異なる値が設定される可能性があります)。特定のティックでのみ出力するのは簡単ではありません。

BehaviorSpaceダイアログボックスには、すべての目盛りまたは最後にのみチェックマークがあります。すべてのティックに設定している場合は、6つの数値をすべてのティックに自動的にエクスポートできます。あなたのケースでは、時々出力してみるよりも、そうする方が簡単でしょう。マトリックスがこのティックでリセットされているかどうかについてtrue / falseである7番目のレポーターを追加できます。次に、後処理で行う必要があるのは、その7番目のレポーターがtrueである行を選択することだけです。

正確にN個のスナップショットに対してモデルを実行する場合は、スナップショットポイントごとに増分されるグローバル変数を設定する必要もあります。次に、BehaviorSpace設定は、そのカウンターを停止条件に使用します。


2

質問が理解できたかどうかわかりませんが、通常はセットアップ機能と実行機能がありますよね?だから私は以下のコード構造があなたが探しているものの一種であるべきだと思います。私はしばらくnetlogoを使用していなかったので、自分で理解する必要がある正確なマトリックスコードを使用します。

globals your-1by6-matrix your-100by6-matrix

to setup
  ;reset your experiment
end

to run
  ;run your experiment
end

to run100times
  repeat 100[
    setup
    run
    ;save your 1by6matrix into your 100by6matrix
  ]
  ;use your 100by6matrix to plot or export
end
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.