私は、モニターが1秒間に数回更新されることを知っています。これは、モデルの出力をチェックするときに役立ちます。しかし、それは私のモデルには当てはまらず、重大なものです。モニターを継続的ではなく、1回につき1回更新します。遅いモデル
私はモニターからデータをプロットしようとしています。可能であれば、モニターはレックポーターを1回だけ更新するようにしたい。
現在、私のモデルは機能していますが、1秒に何回も更新されていません。私は誰かが私のモデルの計算の努力をティックごとに一度更新して最小限に抑えるのを助けることを望んでいました。現在のコードの
サンプル:
globals [initial-patch0-health patch0-health intial-patch2-health patch2-health]
patches-own [ptype penergy max-penergy alive?]
to setup
clear-all
set patch-health 0
ask-patches [
setup-patches
]
reset-ticks
end
to setup-patches
let temp random 100
if temp <= 50 [
set ptype 2
set max-penergy random-in-range 0 5
set alive? true
]
if temp > 50 and temp <= 75 [
set ptype 0
set max-penergy random 10
set alive? true
]
set penergy max-penergy
set patch2-health (ptype2-health)
set patch0-health (ptype0-health)
end
to go
ask-patches
update-patch-health
tick
end
to patch-health
if ptype = 2[
set patch2-health (ptype2-health)
]
if ptype = 0 [
set patch0-health (ptype0-health)
]
end
to-report ptype2-health
report [penergy] of patches with [ptype = 2]
end
to-report ptype0-health
report [penergy] of patches with [ptype = 0]
end
私のモニターと(PATCH2-健康のために同じ)プロット読み:
sum (initial-patch0-health)
と
plot sum (patch0-health)
私はこのような状況で合計を使用レポーターがリストを提供しているからです。
私は単純な「ヒツジ狼種」のスタイルモデルを行っていますが、複数のグラスタイプ(ptype)を使用して初期の草の健康と草の健康状態を時間の経過とともに監視したいと考えています。私はカメを持っていますが、ここにそのコードは入れていません。あなたが私からのより多くのコードを必要とするかどうかを教えてください。
このコードは、スピードを犠牲にして私が望む出力を与えてくれます。私は1度に1度だけ報告すると計算時間を節約できると考えていました。クリーニングとスピードアップのための提案はありますか?
本当にあなたの遅さの原因であるかどうかを確認するために、モニターの取り外し/取り外しを試みましたか?そうでない場合は、プロファイラ拡張を試して、どの部分が計算に時間がかかっているかを調べることができます。 モニターの処理速度が低下している場合は、代わりに出力領域を使用して、1回の変更で1回だけ更新できますか? – Jasper