2016-04-26 3 views
2

このサイトとNetLogoは初めてです。 私はイタリアで百日咳の流行をシミュレートしようとしています。病気になったときにエージェントの年齢を知りたいと思います。NetLogo:デッドエージェント=情報が失われましたか?

問題は、エージェントが死ぬことができるということです!だから私は死んだエージェントに関連するすべてのデータを失う!

死んだカメからの変数の値を取得する方法はありますか?

ありがとうございます!

答えて

1

の代わりにちょうど彼らが死んでいると言って変数を使用して、実際に[die]コマンドで死ぬためにそれらを尋ねます。おそらく感染状況(感染しやすい、感染した、回復したなど)を追跡するものがあるので、別の状態(感受性、感染、回復、死亡)を追加することができます。 set VARNAME count turtles with [status = dead]

このように、死んだカメとの相互作用を排除する必要がある場合は、以下のコメントを参考にすると、他のコードが難しくなることがあります。もう一つの選択肢は、他のコマンドを同じコードに追加して、カメに死ぬように指示することです。これらの他のコマンドは、カウンタをインクリメントするのと同じくらい簡単ですが、値をいくつかのリストに追加することもできます。

ask turtles 
    [ if ... (whatever your test is to see if the turtle dies) 
    [ set deathcounter deathcounter + 1 
     die 
    ] 
    ] 
+0

すでに状態で(ask turtles with [status = "active"] [something]に比べ例えばask turtles [something]を)あなたのカメのコマンドを制限していない場合、これは、私が思うにJenBのソリューションに代わるものに加えて、彼らは彼らの既存のコードのいずれかを確認する必要がありますカメを関連付けることは、死んだカメを排除する必要がある(例えば、ステップコマンド)。カメが死ぬと、もはやシミュレーションには入りません。これは実際に実装するのが面倒かもしれません。 – mattsap

+0

本当、私は過去に私の流行シミュレーションを考えると仮定し、彼らはすでに、物事を制限された(例えば、感染が唯一の影響を受けやすいの感染から広がる可能)が、私は、私はあなたのソリューションが動作シミュレーションを持って – JenB

+0

を更新しますました。私たちはどのように/ユーザーのエージェントの設定を制限するかわからないので、両方とも提示するのが良いかもしれません。 – mattsap

1

あなたが死んだカメのすべての変数を格納する場合、私は死んだ、とあなたの品種が死体への品種を設定し死亡したとき、あなたの他の品種とすべて同じ変数を持っている死体と呼ばれる新しい品種を作成します。 ask turtles [set breed corpse]

あなたは

+2

私の代わりに死体に死にかけている品種からすべての値をコピーするので、あなたは、単に両方の品種は、同じ変数を持っていると仮定すると、設定品種corpse' 'に死んで亀を依頼することができると信じています。 – Charles

+0

良い点!ありがとう! – mattsap

関連する問題