如何仅过滤netlogo行为空间中的独特场景

如何仅过滤netlogo行为空间中的独特场景,netlogo,behaviorspace,Netlogo,Behaviorspace,我想在netlogo中使用行为空间运行一组场景,其中n个竞争海龟使用不同的决策规则。我的意思是,假设我想在掷硬币的场景中测量一个指标,在这个场景中,每个玩家都被编程为在每次滴答声中称为正面或反面,即在2乌龟的情况下,玩家a总是称为正面,而玩家B总是称为反面 当海龟的数量超过3只时,ABC或ACB或BCD会称之为正面,而其他海龟称之为反面。本质上,HHT与HHT相同 简言之,我想做的是只对唯一的事件进行过滤,而不考虑H或T在样本空间中的位置,也就是说,我只想要那些只有1H和3T,2H和2T,3H和

我想在netlogo中使用行为空间运行一组场景,其中n个竞争海龟使用不同的决策规则。我的意思是,假设我想在掷硬币的场景中测量一个指标,在这个场景中,每个玩家都被编程为在每次滴答声中称为正面或反面,即在2乌龟的情况下,玩家a总是称为正面,而玩家B总是称为反面

当海龟的数量超过3只时,ABC或ACB或BCD会称之为正面,而其他海龟称之为反面。本质上,HHT与HHT相同

简言之,我想做的是只对唯一的事件进行过滤,而不考虑H或T在样本空间中的位置,也就是说,我只想要那些只有1H和3T,2H和2T,3H和1T的情况


提前谢谢你的帮助。问候。

您所问的问题似乎不涉及行为空间。要计算列表中的标题,请使用扩展名
。(您给出的示例是二进制的,具有固定长度的序列,因此头部的数量决定尾部的数量,因此您只需要计算其中一个。)

例如,我们可以生成一些长度为4的随机序列(来自您的示例)并过滤长度为2的序列(或其他任何序列)

如果将序列存储为字符串,则可以在使用上述代码之前安装字符串扩展名并分解字符串,也可以按照以下步骤将字符串转换为字符列表。例如:

to-report nHeads02 [#str]
  let _lst map [[?] -> item ? #str] n-values length #str [[?] -> ?]
  report nHeads01 _lst
end
to-report randomHT [#n]
  report n-values #n [[?] -> one-of ["H" "T"]]
end

to test
  let _xss n-values 20 [[?] -> randomHT 4] ;20 lists to filter
  print filter [[?] -> (2 = nHeads01 ?)] _xss ;print those with 2 heads
end
to-report nHeads02 [#str]
  let _lst map [[?] -> item ? #str] n-values length #str [[?] -> ?]
  report nHeads01 _lst
end