我正在创建一个模拟,在该模拟中,入店行窃者瞄准商店(石灰补丁),并决定是否在该处入店盗窃。
某些入店行窃者“ with g as (
select id, sum(is_start) over (partition by id order by datestart) as grp
from (select t.*,
(case when not exists (select 1
from t t2
where t2.id = t.id and
t2.date1 >= dateadd(day, -30, t1.date1) and
t2.date2 < dateadd(day, 30, t1.date2)
)
then 1 else 0
end) as is_start
from t
) t
)
select id, min(date1), max(date2)
from g
group by id, grp;
”将目标对准半径最大的商店
“ professionals
”入店行窃者一旦到达最近的商店,便决定是否入店。
一旦超过novice
的石灰块,就会决定入店行窃;如果风险感知为60或更低,并且尚未被先前的逮捕所阻止。
我正在努力的那段代码是
turtles
不起作用。我试图将一个乌龟自变量设置为被逮捕的商店的坐标,以便我可以通知以后的决定
(如果以前在这家商店内逮捕了一名扒手,将会有警察介入)。
我会以正确的方式告知此信息吗?
set apprehended-here apprehended-here pxcor pycor of patch-here
答案 0 :(得分:1)
部分是概念问题,部分是代码问题。概念上的问题是这样-您是否期望入店行窃者跟踪被逮捕的所有补丁?如果是这样,那么入店行窃者需要跟踪多个补丁。还是只是最近被逮捕的地点?我想您想要所有位置。
在这种情况下,存储位置的最佳方法是将位置作为patch-set
(在NetLogo词典中查找)。因此,您想将新补丁添加到现有补丁集。试试这个:
set apprehended-here (patch-set apprehended-here patch-here)
要执行此操作,在首次创建入店行窃程序时,您需要分配一个空补丁集。您还需要代码来确定在入店行窃者被逮捕时补丁是否在补丁集中。就像这样:
if member? patch-here apprehended-here [ < punish > ]