根据区域大小在 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 中间隔代理 的相关文章

  • NetLogoBehaviorSpace内存大小限制

    在我的模型中 我使用行为空间来执行多次运行 每次运行都会更改变量 并将输出存储在 csv 中以供以后分析 该模型在前几次迭代中运行良好 但随着数据的增长而速度很快变慢 我的问题是 在行为空间中使用文件刷新会有所帮助吗 或者有办法解决吗 Ch
  • Netlogo 发芽的海龟间隔不到一处

    我想将海龟放置在每个黑色斑块上 下图 这样海龟之间就没有间隙 我现在使用的代码 ask patches with pcolor black sprout dead turtles wall agents set color red 这给出了
  • 如何提高最低成本路径模型的模拟速度

    通过使用网络扩展 以下代码在两个多边形 由多个面片组成 之间构建成本最低的路径 to calculate LCP ID polygon 1 ID polygon 2 let path let path cost 1 Define polyg
  • RNetLogo 无法在 Mac Yosemite 上运行

    我刚刚尝试过此操作 但收到此错误消息 关于如何修复它有什么想法吗 我使用的是R版本3 1 1 RNetLogo 1 0 1 平台是x86 64 apple darwin13 1 0 64位 Java 7 update 60 Sys sete
  • 如何在 netlogo 上创建计时器?

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

    我正在创建特定于海龟的表 在其中存储补丁坐标 模拟年份 全局变量根据刻度数设置为 1 2 或 3 以及表示可用资源的补丁变量 我已经成功地编写了一个表的代码 该表包含当前补丁的这些值 但我一直试图对其进行缩放 以便海龟在每个时间步都为其所有
  • NetLogo:以紧凑的方式对列表中的一项执行操作的过程?

    NetLogo 的新手 想知道是否有一个过程可以以紧凑的方式对列表中的一项执行操作 类似于地图 但针对一项 例如 假设我想添加3到索引处的项目i在列表中blah 现在我正在这样做 set blah replace item i blah i
  • NetLogo BehaviourSpace - 使用报告器进行测量

    在我的 NetLogo 模型中 我的海龟被称为居民 每个居民都有自己的起始意见 initial opinion 和最终意见 final opinion 他们的意见是使用随机数计算的 因此当我更改某些参数时 我想运行模型至少 20 次 因此我
  • NetLogo 高效创建任意度数分布的网络

    这是一个后续问题NetLogo 创建固定数量链接的有效方法 https stackoverflow com questions 32967388 netlogo efficient way to create fixed number of
  • 将 NetLogo 数据导出到带有节点和边的图形

    我在 NetLogo 中创建了代理 海龟 之间的一些链接 该链接将在每个时间步发生变化 我的目标是将这些数据 即海龟和它们之间的链接 导出到带有顶点 海龟 边缘 链接 的图形 这些数据可以作为 Gephi 的输入 是否可以看到图中netlo
  • 如何使用两条相交线的概念在 Netlogo 中实现避障(海龟标题与由补丁组成的墙)

    我们如何将 Netlogo 海龟的方向转换为直线方程 y mx c 以便可以将其与另一个直线方程 例如代表墙的补丁 进行比较 我需要将乌龟的航向转换为直线方程 然后将标题线方程与墙的线方程进行比较 墙的线方程有固定的 x 或固定的 y 取决
  • NetLogo 以字符列表的形式读入文件

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

    我正在我的机器上运行动物饲养场的模型 我已将 R 扩展添加到 NetLogo 代码中 以计算每个家庭范围的最小凸多边形 当我在多个内核上的BehaviorSpace 中运行模型时 NetLogo 将在几个时间步骤后消失 即停止运行 我在 5
  • 如何解析 Netlogo 中的字符串?

    Context 对于我的模型 我希望有一个输入 用户可以在其中输入一系列值 E g 我希望从上面显示的输入中得到一个由五个数字组成的列表 例如 0 5 0 2 0 0 2 0 5 这样我就可以使用他们输入的数字进行一些计算 问题 不幸的是
  • 限制代理可以建立的链接数量

    我有乌龟链接 如果它们的 var1 具有相同的值 这很好 我想将链接数量限制为三个 我在代码的链接部分之前添加了一个 IF 语句 If count my links lt 3 但不起作用 代理继续链接超过我设置的最大值 我读了另一个问题如何
  • 从 NetLogo 中的有界正态分布中选择值

    我正在尝试让 Ne tLogo 按照 stackoverflow 中上一个问题中的建议从有界随机正态分布中绘制值 NetLogo 如何确保变量保持在定义的范围内 https stackoverflow com questions 20230
  • NetLogo:如何对列表执行多项操作(查找、获取、替换、删除、搜索列表中的元素,......)

    我是 NetLogo 的新手 我想知道是否有对列表进行操作的完整参考 除了 Netlogo 字典之外 我还阅读了这里的大部分帖子 但例如 如果我需要一个数字对列表 例如 1 2 2 2 2 3 当我搜索时 member 3 thislist
  • 如何使用 netlogo 生成 0.3 < X < 0.7 范围内的数字

    正如标题所示 希望生成 0 3 我目前使用 while 循环来检查随机浮点数是否在该范围内 我想知道是否有更好的方法来做到这一点 0 3 random float 0 4会给你 0 3 如果你真的不想要 0 3 我想你总是可以循环那个 我不
  • 使用列表与代理集

    代理列表和代理集是 NetLogo 中两种不同的数据类型 并且可以使用以下命令进行转换 turtle set and sort 该文档指出 您可以使用列表来表示代理的有序集合 使用集合来表示无序集合 看来可用于列表的匿名过程使得列表比代理集
  • 有效地停用社交网络中特定代理和品种之间的特定链接

    在 NetLogo 中建立了一个由不同年龄的代理组成的社交网络 类似于以下内容 从而形成一个通过链接连接的代理圈 这些链接的总体目的是表示这些链接之间的联系 该模型模拟感染通过网络的传播 特工一开始很容易受到感染 如果他们接触到具有传染性的

随机推荐

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