将仅乌龟变量设置为补丁坐标

时间:2018-08-20 16:15:44

标签: coordinates netlogo

我正在创建一个模拟,在该模拟中,入店行窃者瞄准商店(石灰补丁),并决定是否在该处入店盗窃。

  • 某些入店行窃者“ 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或更低,并且尚未被先前的逮捕所阻止。

    • 由于商店安全未检测到98%的入店行窃成功,
    • 成功阻止了5%的检测到的尝试,但尝试未成功
    • 在被发现并没有阻止的95%入店行窃者中,有99%在放手之前被安全逮捕,并且
    • 97%的非专业入店行窃者最终被阻止再次入店行窃
    • 其余1%逃脱了安全保护,并成功入店。

我正在努力的那段代码是

turtles

不起作用。我试图将一个乌龟自变量设置为被逮捕的商店的坐标,以便我可以通知以后的决定

(如果以前在这家商店内逮捕了一名扒手,将会有警察介入)。

我会以正确的方式告知此信息吗?

set apprehended-here apprehended-here pxcor pycor of patch-here 

1 个答案:

答案 0 :(得分:1)

部分是概念问题,部分是代码问题。概念上的问题是这样-您是否期望入店行窃者跟踪被逮捕的所有补丁?如果是这样,那么入店行窃者需要跟踪多个补丁。还是只是最近被逮捕的地点?我想您想要所有位置。

在这种情况下,存储位置的最佳方法是将位置作为patch-set(在NetLogo词典中查找)。因此,您想将新补丁添加到现有补丁集。试试这个:

set apprehended-here (patch-set apprehended-here patch-here)

要执行此操作,在首次创建入店行窃程序时,您需要分配一个空补丁集。您还需要代码来确定在入店行窃者被逮捕时补丁是否在补丁集中。就像这样:

if member? patch-here apprehended-here [ < punish > ]