根据区域大小在 NetLogo 中间隔代理

2024-01-07

我正在尝试在 NetLogo 中开发一个模型,其中动物代理将在每次模型启动时随机分布在空间中。然而,动物是有领地意识的。关于如何让动物从一定大小的圆形区域开始,可以与其他动物在一定程度上但不完全重叠,有什么建议吗?下面是我开始的代码片段,但坦率地说,我什至不知道从哪里开始。在下面的代码中,动物在初始化时并不知道其他区域。任何帮助将非常感激。

to setup  
    ask n-of (number-of-animals) TropForst 
    sprout-animals 1
    set territory patches in-radius ((sqrt ((territory-animals * 1000000)/ pi)) / 10)
end

这是一种方法: 您可以更改每种动物的中心补丁,并且可以设置您希望其领地重叠的程度。

breed [animals animal]
animals-own [territory]
to setup  
  clear-all
    create-animals number-of-animals / 2  
    [
      set color red
    set territory pathces-in-territory patch 10 10
      move-to one-of territory 
      ]


   create-animals number-of-animals / 2  
    [
      set color blue

      set territory pathces-in-territory patch 15 15 
      move-to one-of territory 
      ]


end

to-report pathces-in-territory [Center ]
  let ptr []
  ask Center [set ptr patches in-radius 5]
  report ptr
end

你也可以这样做:

breed [animals animal]
animals-own [territory]
to setup  
  clear-all
    create-animals number-of-animals / 2  
    [
      set color red
    set territory pathces-in-territory patch 10 10 5
      move-to one-of territory 
      ]


   create-animals number-of-animals / 2  
    [
      set color blue

      set territory pathces-in-territory patch 15 15 10
      move-to one-of territory 
      ]


end

to-report pathces-in-territory [Center rd]
  let ptr []
  ask Center [set ptr patches in-radius rd]
  report ptr
end

因为我喜欢示例;)这是另一个您也可以更改每个区域的 pcolor 的示例:

to-report pathces-in-territory [Center rd c]
  let ptr []
  ask Center [set ptr patches in-radius rd 
    ask  patches in-radius rd [set pcolor c]
    ]
  report ptr
end

你可以这样调用该函数:set territory pathces-in-territory patch 10 6 15 blue *Update

我应该稍后用 netlogo 检查一下

create-animals number-of-animals  
        [
          set color blue
          move-to one-of patches with [not any? animals-here]
          set territory patches in-radius 5 

          ]

如果您希望为每个单独的动物定义领地,您可以检查半径是否没有海龟大于领地(例如 5),然后将领地设置为海龟周围的补丁

   create-animals number-of-animals / 2  
    [

      move-to one-of patches with [not any? animals in-radius 5]
      set territory pathces-in-territory patch-here 2
      let h who
      ask territory [set pcolor h + 10 ] ; just for visual clarification 
      move-to one-of territory 
      ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据区域大小在 NetLogo 中间隔代理 的相关文章

  • NETLOGO:使用上一个刻度的变量

    是否有一些原语可以使用前一个刻度的变量值 我尝试计算一个代理的 价格 变量 我的意思是使用包含其他代理的 价格 变量但来自上一个刻度的公式 不 NetLogo 中没有内置方法可以执行此操作 您最好的选择可能是创建一个名为以下内 容的变量va
  • 在 NetLogo 中使用向量

    如何在 NetLogo 中定义加法或减法向量 它似乎没有任何与之相关的数据类型 我在这里所说的矢量是指乌龟的速度 netlogo 中是否有支持此功能的扩展 我找不到 我不知道提供矢量的扩展 但在 NetLogo 本身中进行编码所涉及的数学通
  • Netlogo 数组需要文字值

    该数组需要一个文字值 set chrom forage min forage rate share min share rate mating treshold print chrom 我该如何处理 我真的不明白 Netlogo 中的数组
  • 如何计算两个补丁之间的距离?

    我需要找到代理前面的补丁与某个补丁 目标 之间的最小距离 以便选择能够创建最佳 最短 路径的补丁 原始的distance仅需要一个参数 因此我无法按原样使用该函数 The distance原语只需要一个参数 是的 但它是一个 补丁或海龟原语
  • 如何在 netlogo 上创建计时器?

    对于我的迷宫项目 我想创建一个监视器按钮来跟踪海龟从开始到结束所需的时间 我该如何为计时器编写代码 查看reset timer and timer并在文档中 在迷宫设置期间 执行reset timer 在迷宫运行过程中 您可以使用以下命令检
  • Netlogo:运行时创建小世界网络

    我正在尝试生成一个小世界类型的网络 https en wikipedia org wiki Small world network https en wikipedia org wiki Small world network 在我创建的
  • Netlogo:带有两个列表的“foreach”命令

    我有一个完整的有向图 每个链接都有自己的权重 我已经成功地选择了每只海龟的最大输出链接 但是 有时两只乌龟的最大输出链接彼此相反 导致两个彼此相反的链接被选择 如果发生这种情况 我希望具有较低值的链接消失 我用这个创建了两个列表 set m
  • NetLogo BehaviourSpace - 使用报告器进行测量

    在我的 NetLogo 模型中 我的海龟被称为居民 每个居民都有自己的起始意见 initial opinion 和最终意见 final opinion 他们的意见是使用随机数计算的 因此当我更改某些参数时 我想运行模型至少 20 次 因此我
  • 根据区域大小在 NetLogo 中间隔代理

    我正在尝试在 NetLogo 中开发一个模型 其中动物代理将在每次模型启动时随机分布在空间中 然而 动物是有领地意识的 关于如何让动物从一定大小的圆形区域开始 可以与其他动物在一定程度上但不完全重叠 有什么建议吗 下面是我开始的代码片段 但
  • Netlogo HPC CPU 使用百分比增加

    我通过以下方式使用无头 NetLogo 将作业提交到 HPC 服务器code bin bash N r20p q all q pe mpi 24 home abhishekb netlogo netlogo 5 1 0 netlogo he
  • 在 netlogo 中绘制随机 beta 分布

    我正在尝试生成一个品种拥有的变量 该变量从 Netlogo 中的随机 beta 分布中提取其值 我在网上找到了 bc 代码示例 但正在努力使其适应我的需要 现在 为了方便起见 我已经使用随机正态分布生成了我的分布 create breed
  • 如何使用轮盘赌选择最多数量的海龟

    在我的模型中 海龟有两种性别 雄性有两种潜在的策略 雌性会计算一定半径内雄性的数量 我希望雌性根据两种雄性策略的相对频率来权衡从雄性组中选择的概率 无需替换 我已经有了从男性中选择概率的代码 matingPoolProbAnad and m
  • 如何正确绘制变量

    我尝试查看文档 但没有找到我需要的答案 所以我在这里问 例如 我有 15 只海龟 这个数字可能会有所不同 我需要将它们的变量 例如收入 绘制到一个图中 我知道我可以通过命令绘制 1 个代理的变量 plot revenue of turtle
  • 如何从 Netlogo 中的未排序列表中删除多个项目

    所以我对 Netlogo 中的列表有点挣扎 所以基本上我有两个列表 我想从列表 2 中删除列表 1 中的项目 例如 列表 1 8 6 9 7 1 3 列表2 5 9 8 结果列表 6 7 1 3 我已尝试以下代码 但它返回一个空列表 if
  • 在 NetLogo 中控制海龟的生命

    在一个项目中 我正在 NetLogo 中开发一个模拟来处理狗和人类的狂犬病 我有一些乌龟 人类和狗 可以接种疫苗 也可以不接种 一开始我创造了一只患有狂犬病的狗 根据疾病的阶段 1或2 它有一定的概率将疾病传播给其他狗 最后 狗可能会因瘫痪
  • NetLogo 以字符列表的形式读入文件

    我是 NetLogo 新手 我有一个包含一行值的文本文件 ABC CDC BBC 我试图读取该文件的第一行作为字符列表 例如 A B C 我一直在尝试使用文件读取行 但它创建了一个字符串 ABC observer gt file open
  • 使用 R 扩展时 NetLogo BehaviourSpace 崩溃

    我正在我的机器上运行动物饲养场的模型 我已将 R 扩展添加到 NetLogo 代码中 以计算每个家庭范围的最小凸多边形 当我在多个内核上的BehaviorSpace 中运行模型时 NetLogo 将在几个时间步骤后消失 即停止运行 我在 5
  • 从 csv 文件创建代理时使用 to-reports

    我的问题有点长 如果您能阅读全部内容 我真的很感激 并且我将非常感谢您的任何建议 我有与 2 位海龟消费者相关的数据 他们对笔记本电脑的功能进行了评级 笔记本电脑有两种特征 屏幕尺寸和电池寿命 每个都有一些级别 例如电池续航时间有5小时 1
  • 如何在大空间尺度上加速A*算法?

    From http ccl northwestern edu netlogo models community Astardemo http ccl northwestern edu netlogo models community Ast
  • 当需要2个键时如何使用“table:get”(表扩展)功能?

    我有一个包含 3 列的 txt 文件 ID polygon 1 ID polygon 2 和距离 当我将文件导入 Netlogo 时 我获得 3 个列表 list1 list2 list3 对应于 3 列 I used table from

随机推荐

  • 是什么让 React 库需要 preact-compat?

    我注意到某些图书馆 例如classnames在 Preact 中很容易获得 但其他人喜欢styled components要求preact compat 是什么使得 React 库在 preact 中不受本机支持而需要使用 preact c
  • 函数中返回向量后清除内存

    我有一个函数 可以在其中处理和存储大量数据 然后将结果作为类向量返回 该函数中存储的数据量巨大 我想在该函数完成工作后清除该函数的存储内存 是否有必要这样做 该函数是否自动清除内存 或者我应该通过某些函数清除内存 Update vector
  • 需要将 git 分支重置为原始版本

    我不小心在一个本来不应该在的分支上工作了一段时间 所以我从它的分支上给它起了适当的名字 现在我想将我不应该进入的分支覆盖到原始版本 github 是否有捷径可寻 我尝试删除分支 然后重置跟踪分支 但它只是给了我再次正在处理的版本 如果你还没
  • 根据给定索引和元素数量的列表创建子列表。序言

    我正在尝试解决一个简单的序言问题 但我无法解决它 从列表中 需要创建一个给定索引 I 的子列表 然后从 I 中创建一个给定为 N 的下一个元素 如果索引大于列表长度 我将使子列表为空 如果 N 元素数量 大于列表中的其余元素 我将获得从 I
  • StackExchange API - 反序列化 JSON 响应中的日期

    我正在尝试使用 stackexchange api 我正在尝试获取一些用户信息 如果运行 您将获得 JSON 响应 items badge counts bronze 5630 silver 4212 gold 267 account id
  • 在Python中交换链表中的对,一个链接消失了?

    我一直在学习链表 并且在 python 中实现链表比我预期的要容易 然而 当涉及到解决 交换链表中的对 的问题时 由于某种原因 我的第二个链接在交换过程中消失了 我已经盯着这个问题很多年了 并尝试了在网上找到的不同解决方案 他们都得到相同的
  • 如何在 Swift 中使用闭包从字符串中提取两个整数来执行计算

    我目前正在使用mapSwift 中带有闭包的属性 用于从数组中提取线性因子并计算跨越一个八度音阶的音乐频率列表 let tonic Double 261 626 middle C let factors 1 0 1 125 1 25 1 3
  • 从 icc 获取 Intel 语法 asm 输出,而不是默认的 AT&T 语法?

    我陷入了一个问题 我已经使用 gcc 编译 汇编我的 C 代码一段时间了 并习惯于阅读 Intel 汇编语法 我用的是 masm intel生成程序集文件时的标志 但最近因为公司迁移 他们得到了Intel的icc 声称更好 所以现在我需要使
  • 访问 try-catch 块外部的变量

    我有以下代码 class ClassA public ClassA std string str std string GetSomething int main std string s try ClassA a ClassA s cat
  • 仅使用 css 而不使用 javascript 在悬停时显示叠加层

    当我将鼠标悬停在导航栏菜单上时 我试图制作整页叠加ul 覆盖层div位于页面顶部 当我将鼠标悬停在ul the li链接出现 但覆盖层不出现 我怎样才能使用 CSS 来显示叠加层 有人可以帮忙吗 这是 HTML 和 CSS 代码 标题的完整
  • 如何在 REST Web 服务中发送 JSON 数据?

    如何在 REST Web 服务中发送 JSON 数据 我有一个 json 对象 其中包含产品 Id 商店 Id 价格 产品单位 数量 值 这里除产品单位值外 所有值均为整数 现在 我想将这些值发送到其余的 Web 服务中 能否请您提供一些样
  • Angular2 Safari 后退按钮

    在实际的 Angular2 beta 14 及之前的版本 中 Safari 实际上使用 9 1 上的后退按钮 使用路由和多个视图时 似乎存在问题 https github com angular angular issues 7722 ht
  • 协议对保留计数有影响吗?

    我有一个非常简单的代码 我是故意使用委托创建内存循环 尝试观察和学习如何使用 Xcode 的 Memory Graph 我不明白的是为什么在连接部分 Xcode 说有3连接 应该只有2个 如果我用闭包创建一个内存循环 那么它会显示2连接 我
  • Spring 5 - 无 ServletContext 设置异常

    当我尝试使用 Spring 5 运行我的应用程序时AnnotationConfigApplicationContext类 获取异常No ServletContext set 这是我的主要方法 public class Run public
  • 标识列中存在重复值

    我有一个表 其中有一列名为id这是类型Identity 但此列包含重复值 1 8 然后又包含重复值 1 10 这怎么可能呢 我测试了 Giogri 所说的内容 如果在表有行后启用身份规范 至少在 2008 年 也可能是其他版本 数据库将从最
  • 如何在 Firestore 和 Android 中选择位置?

    我对 Cloud Firestore 非常陌生 所以请帮助我 我正在为青少年创建一个应用程序 我想在其中显示每个城市非常好的地点的列表 我还希望每个用户都可以将任何位置保存到最喜欢的部分 以便他或她可以向他或她的朋友显示该位置列表 我的实际
  • Realm = RLMRealm' 没有成员 'setDefaultRealmPath'

    我已将 Realm framework 和 RealSwift framework 添加到项目中 和 导入领域 虽然我收到此错误 RLMRealm 没有成员 setDefaultRealmPath let directory NSURL N
  • WebAssembly 从 wasm 调用 JavaScript 方法,即在 C++ 代码中

    我正在使用 WebAssembly 到目前为止 我能够管理 emscripten 将我的测试 C 项目编译为 wasm 文件 em 为我提供了 2 个文件 即 mainTest js mainTest wasm 当我在 html 页面中加载
  • 为什么向传递的 Iterator 引用添加 mut 可以解决这个问题?

    在下面的 Rust 代码片段中 fn main let list1 Vec
  • 根据区域大小在 NetLogo 中间隔代理

    我正在尝试在 NetLogo 中开发一个模型 其中动物代理将在每次模型启动时随机分布在空间中 然而 动物是有领地意识的 关于如何让动物从一定大小的圆形区域开始 可以与其他动物在一定程度上但不完全重叠 有什么建议吗 下面是我开始的代码片段 但