问题标签 [agent-based-modeling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
566 浏览

social-networking - NetLogo:比较邻居的值

在我建立创新扩散模型的过程中,我在 NetLogo 中遇到了另一个小的编程问题。我想模拟人们更有可能向相似的人学习。因此,该模型考虑了分配给每个代理的能力值:

然后,在围棋过程中,我希望他们将自己的能力值与关联邻居的值进行比较。例如:乌龟1的能力= 5,邻居1的能力= 10,邻居2的能力= 4。因此(绝对)差异为[ 5, 1]。因此,他从邻居 2 那里学到的东西比从邻居 1 那里学到的更多。

但我不知道如何解决向每个邻居询问差异的问题。作为第一个想法,我想通过像 [difference1, ..., difference(n)] 这样的列表变量来实现。

到目前为止,我只得到了一种使用平均值的聚合方法,但这与最近的社会学习理论并不完全一致,并且可能会覆盖代理有许多不同邻居但与他非常相似的情况:

再次感谢您的帮助和建议,我非常感谢您提出任何意见。

亲切的问候,

莫里茨

0 投票
0 回答
260 浏览

netlogo - NetLogo 中的创新/扩散模型

我是 Netlogo 的新手,很难理解这个问题......

假设您有 5,000 个代理,每个代理有五个域,这些域根据代理的专业知识给出一个编号。所有域的代理最大值为 15,如果代理在任何域中超过 7.5,则他们被视为专家。

有两个环境,一个由每个域聚集,具有最高数量的代理移动到该域区域。第二个环境与来自五个领域中的每个领域的专家混合,并与不同的领域专家合作。

该模型旨在代表企业创新的跨职能协作。

我很难理解方程式或活动来表示代理之间的协作。

此外,对如何表示他们的联系感到困惑。我在 Netlogo 上查看了 Team Assembly,并认为它与我想要代表的内容相似。我不确定如何快速设置随机矩阵来定义代理的专业知识。

任何想法或建议将不胜感激:)

提前感谢您阅读并考虑您的意见。

0 投票
0 回答
78 浏览

netlogo - Netlogo 中的强化学习:错误:未指定骨灰盒

我对 NetLogo 完全陌生,正在尝试创建一个基于代理的强化学习 (RL) 模型。我重新创建了一个玩具模型来获得帮助。

在这里,一个智能体通过与两个智能体交互来进行 RL,其中一个是不可靠的(因此与该智能体的交互没有得到加强),另一个是可靠的(因此与该智能体的交互得到了加强)。

但我不断收到错误:Extension exception: No urn specified 所以,很明显,我需要弄清楚如何指定骨灰盒!

项目文件夹可供您在以下位置签出:http ://bit.ly/1m8TAxq Bellow 是最小的、完整的验证代码,如下所示(尽管您需要上面链接的 dropbox 文件夹中的 URN 扩展来执行此操作) .

任何帮助将不胜感激。

0 投票
1 回答
216 浏览

recursion - 为什么“如果”似乎停止了 NetLogo 中的递归调用?

在 NetLogo 5.x 中处理递归过程的简单练习似乎出现了一个问题。该模型模拟海龟一次游荡一个补丁并从补丁中收集 M&M。目标是使用递归过程调用来允许找到 M&M 的海龟获得额外的两个回合。这可以通过非递归方法轻松完成,其中我们使用变量来跟踪转数。但是,这种情况下我们需要用到递归,而递归似乎会导致一个莫名其妙的问题:

如果此代码正常运行,那么每次海龟遇到 M&M 时,都应该生成并运行两个 collect 子实例。这可能正在发生,然而,发生的事情是海龟一旦击中零 M&M 的补丁就会停止收集狂欢。因此,此代码产生的结果与 collect 仅调用自身一次以及 collect 调用自身 3 次或更多次时的结果相同。

这使我相信if递归运行的条件可能会导致问题,因为将递归调用放在条件之外会起作用。NetLogo 似乎不以某种方式尊重递归。例如,如果您collect collect在过程末尾的行周围插入调试代码:

然后只!打印four到指挥中心,但其他人从不执行。关于为什么以这种方式工作的任何帮助都会很有用。看起来更像是错误而不是功能。

0 投票
0 回答
108 浏览

netlogo - 乌龟沿着 netlogo 中预定义的 GPS 坐标列表行走

我从一个包含坐标的 shapefile 在 netlogo 中创建了一只乌龟,我希望乌龟沿着预定义的 GPS 坐标列表行走,该坐标当前保存为具有三个属性(ID、X、Y)的 csv 文件,其中 X 和 Y 是坐标,ID 包含从 1 到 5000 的序列号。谢谢

0 投票
1 回答
204 浏览

netlogo - 动态创建海龟

有没有办法动态创建海龟?

每当我尝试在“go”过程中创建新的随机海龟时,都会收到一个无法crt在海龟上下文中使用的错误。我需要能够“动态”添加更多海龟,并且创建许多不可见的海龟对我来说看起来像是一个肮脏的解决方案,并且它会显着增加模型的大小。

有任何想法吗?

0 投票
1 回答
1254 浏览

java - AnyLogic 基于代理的模拟代理价值转移

我对 Java 和 AnyLogic 还很陌生,所以请在这方面达到我的水平。

代理有没有办法从另一个代理获取变量值?在这种情况下,代理将属于同一类型。因此,它们都具有相同的变量,但由于它是具有随机初始值而不是参数的变量,因此值不一样。

代理最初也是通过小世界连接连接的,并且这些连接在运行期间不会改变。

例如,发生在事件中的代理如何从另一个代理收集变量值(例如代理 i 获取代理 j 的变量值 X)。该值将被放入一个小方程中,以修改代理 i 的变量 X 的值。换句话说,代理 i 会受到他的连接代理 j 的影响,从而改变他的 X 值。

我尝试了多种组合.getConnectedAgent().get没有任何成功。我现在正尝试将每个代理的 X 值提取到数据库中,然后使用该数据库通过代理 i 收集代理 j 的 X 值,但我在那里没有取得任何进展。

需要提取的值是doubles,但如果更容易,我可以将变量更改为整数。

0 投票
1 回答
1728 浏览

netlogo - 预期的关键字错误 - Netlogo

我从 Railsback 第 16 章的《基于代理和基于个体的建模》一书中获得了这段代码,但它不起作用,我不知道为什么。我是 NetLogo 的新手,软件在第 22 行显示“预期关键字”。(create-packs)

谢谢

0 投票
1 回答
252 浏览

java - 在 Repast Simphony 2.3.1 中显示 GridValueLayer 样式?

Repast Simphony 2.0-beta 在指定值层样式方面存在一个已知问题

显示它们的选项未显示在 GUI 界面中。在 GUI 中,右键单击显示器并选择“编辑”,应该会在左侧打开一个窗口几个选项卡:

  • 一般的
  • 代理选择
  • 代理风格
  • 网格样式
  • 价值层细节
  • 时间表详情

由于该错误,“值层详细信息”选项卡不显示,因此无法设置 ValueLayer 样式并查看层的状态。

版本 2.3.1 中是否默认修复了该错误?我有个类似的问题。该选项卡不显示

我的问题是这是同样的问题还是其他问题,我该如何解决?

原始问题的解决方案

通过将三个 .class 文件(附在 Repast 邮件列表上的电子邮件中的 Nick Collier)下载到文件夹中,解决了这个问题:

Repast-Simphony-2.0.0-beta/eclipse/plugins/repast.simphony.visualization_2.0.0/bin/repast/simpony/visualization/gui

一个有效的例子

托管在 Google Code 上的 Repast StupidModel 有一个显示该选项的示例。该模型是使用早期版本的 Repast 构建的。我试图复制他们对 ValueLayer 和样式表的实现。

0 投票
1 回答
34 浏览

netlogo - Turtles 定时器的初始化和终止

在一个过程中,我想为每个海龟(代理)启动一个计时器,当它的形状从“shape2”变为“shape1”时,该计时器在 10 个滴答声后到期,形状变回“shape1”。我的程序仅在我点击“开始”时才有效,它仅适用于计数的前 10 个滴答声。之后它不会被调用。我在 GO 块中将此过程名称称为“更改”。

GO 块语句是: