问题标签 [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.
netlogo - 如何让海龟/代理无法通过补丁?体育馆模型。提供了代码但不起作用
嗨,我想知道是否有人知道不让补丁进入体育馆的确切代码。我关闭了所有标记为红色斑块的大门,黑色斑块是墙壁。
这里的问题是我尝试了这些不同的代码,但补丁仍然穿过墙壁。谁能帮我?
请注意,我一次尝试了这些方法以确定是否有任何 ff. 工作。
可以帮助我的人/人将不胜感激。
根据要求,这是补丁的代码:
python - 用于更高性能计算的 c++ gis/空间库
所以我正在努力建立一个基于代理的模型,该模型在地理地图上运行——在这种情况下是叙利亚。我尝试用 python 编写它,但性能相当慢——即使经过一些优化技巧。我在想我应该转向只用 C++ 编写模型,但我不知道哪些可视化包可以合并地图?我倾向于在 C++ 中使用 gnuplot,但我一直无法找到将 gis 底图合并到该包中的方法。我不确定这在 VTK 或任何其他软件包中是否可行。我想找到一种在 C++ 中快速运行我的模型但又不会丢失地理信息的方法。有什么建议么?
netlogo - 通过滑块改变正态分布的形状
我是 NetLogo (NL) 和 Stackoverflow 的新手。我正在研究意见形成的 NL 模型,但我遇到了以下问题(谷歌搜索或其他任何东西都对我不起作用)。
首先,定义海龟拥有的属性turtles-own [opinion]
。接下来,存在意见变量的随机正态分布(范围从 -1 到 1)。我希望能够解释从 -1 到 1 范围内不同形状的意见分布。这是通过使用random-normal
具有两个输入的命令来完成的:均值(设置为 0)和标准。开发。(由滑块设置);即形状由标准给出。开发。价值。
这是设置功能的代码:
尽管如此,设置std.dev。滑块到 1 不会产生预期的结果(钟形分布),而是均匀分布。我不确定这是概念问题还是技术问题。
任何帮助深表感谢。
simulation - Netlogo : 为不同品种接种疫苗
我的模型代表流感通过成人和儿童两个不同品种的传播。
我想做的是为成人和儿童添加单独的疫苗接种,允许我从界面中指定两个疫苗接种值,从而为两种不同品种的海龟接种疫苗
我当前的代码如下,我想做的是使用接口值 Adult-vaccination 为该品种中的一定比例的海龟接种疫苗。
timer - 如何让乌龟面对面,等待3个滴答声,然后继续徘徊?
我对 Netlogo 和 stackoverflow 都是新手,但是您的其他帖子已经对我有很大帮助。
我目前正在尝试编写一个模型,其中代理随机游荡一个空间并让他们在遇到时停下来。“相遇”在这里的意思是“互相擦肩而过in-radius 2
”。他们应该face
互相,等待 2 个滴答声,然后继续移动,直到找到下一个代理。
我试图在计时器上使用 NzHelen 的问题,但并没有真正成功。
到目前为止,我设法让他们面对面。我无法将tick
-command 放在代码中的正确位置。(编辑:这通过取出wait
-command 解决了,感谢 Seth。--> 我不希望所有的海龟都停止移动,而只希望那些正在相遇的海龟)。我正在努力的另一件事是他们相遇的某种视觉表示,例如当他们相遇时让补丁闪烁,或者当他们相遇时在他们周围出现一个圆圈。使用wait
-command,一切都会再次停止,这是我想要阻止的。
到目前为止的代码下方。
python - 在 python 或 Java 中可视化集群的包?
我正在做基于代理的建模,目前在 Python 中进行了设置,但如有必要,我可以切换到 Java。
我在 Twitter 上有一个数据集(1100 万个节点和 8500 万个有向边),并且我已经设置了一个字典/哈希图,以便键是特定用户 A,它的值是所有关注者的列表(关注用户的人一个)。“节点”实际上只是整数 ID 号(唯一),没有其他数据。我希望能够通过某种聚类方法来可视化这些数据。并非所有单个节点都必须被可视化,但我希望拥有最多 n 个关注者的节点能够被清晰地可视化,并且该节点周围的区域将代表所有关注它的人。我正在对整个地图的分布进行建模,因此我需要节点和节点周围的区域来更改颜色。理想情况下,这将是一个连续的可视化,但我不介意它只是在每次迭代时拍摄快照。
此外,我正在考虑将集群分开,这样:
如果 A 和 B 有足够的追随者可以单独可视化,并且 A 和 B 是连接的(一个跟随另一个,或者甚至是两个方向),那么它们是两者都是可视化的,但尽管被连接,但在视觉上彼此分离,因此可视化更清晰。
无论如何,我想知道 Python(最好)或 Java 中是否有一个包可以让人们轻松地完成这个工作。
netlogo - Netlogo. Patches categories from Landsat file
I am expanding a model looking at the effect of different types of fruit and fragmentation on a population of monkeys. The model reads a landsat file made up of 1's and 0s (representing forested and deforested areas) I need to reclassify the 1's into three kinds of trees. At the moment in the code I have the three types of trees randomly set, now I want them to be divided into percentages i.e 30 percent of the forested patches are blue, 50 percent are yellow, 20 are green. I have this atm: I think I have to change the:
[ if value = 1 [ set value one-of tree-types ]
I tried with n-of but I can't seem to make it work.
Any suggestions?
java - 在 Repast J 中将数据层分配给网格
我正在尝试在 Repast Java Suite 中编写 ABM,并为此使用 3D 网格。关于网格的两个问题:1)我想为网格中的每个 (x,y) 组合分配一个函数值 - 例如,对于每个 f(x,y)=x+y。因此,当代理在点 (x,y) 时,它会知道对应的 z 值是 z=f(x,y)=x+y。如何将数据层分配给网格来做到这一点?
2)同样对于同一个网格,代理应该能够知道是否访问了特定的补丁。每当代理访问该补丁时,它将被更新。
一般来说,我的问题是将其他方法、数据等分配给网格接口。由于这是我的模拟的一个基本问题,如果不解决它,我将无法继续前进.. 非常感谢答案.. 谢谢!
simulation - 如何在 NetLogo 中同时运行多个程序?
我的模型中有不同颜色的海龟,每一种都按照不同的规则运行。我希望管理一只海龟(比如红海龟)运动的程序与其他管理不同颜色海龟运动的程序同时运行。
parallel-processing - 在 NetLogo 中实现并行的瓶颈是什么?
实施基于代理的模型或 ABM 建模软件(例如 NetLogo)需要解决哪些具体实施问题或瓶颈?
TL;DR 版本:
与实施 ABM 软件(尤其是 NetLogo)相关的问题是什么,以便它能够使用多个 CPU?
解决这些问题的尝试是什么?
并行化 NetLogo 需要什么?
NetLogo 在并行模式下的工作方式有何不同?
更长的版本:
目前,NetLogo 通过一次顺序处理一个代理来执行模拟。尽管通过 BehaviorSpace [6] 可以在单台机器上运行多个模型(在单独的 NetLogo 实例中),甚至是特定模型的不同配置(在单个 NetLogo 实例中),但单个模型在一个 CPU 上运行 [ 2, 3]。
还有一种通过 ask-concurrent 命令 [4, 5] 处理代理行为的伪并行模式,但它不需要在多个 CPU 上并行执行。
我读过关于在 Haskell 中并行化 NetLogo 实现它的尝试(Nikolaos Bezirgiannis 的 HLogo 实现)[1]。然而,该研究项目的作者指出,“[e] 执行结果表明,在大多数情况下,HLogo 比 NetLogo 更快,尤其是在代理数量很少的情况下。当代理数量增长到产生大量 STM 冲突时,HLogo 的性能会大幅下降。”</p>
显然,与并行执行相比,以非并行、顺序方式运行模拟会大大降低速度。NetLogo 实现不使用多处理/并行性 [关于单个模型运行] [2, 3] 的事实意味着,这样做很可能存在一些问题。这些问题是什么?如何解决?
我能够找到的有关该主题的材料:
Nikolaos Bezirgiannis 的“使用 Haskell 的并发和并行性提高仿真软件的性能”论文
http://dspace.library.uu.nl/handle/1874/284708NetLogo / 文档 / FAQ #Multiprocessing
(“对于单个模型运行,仅使用一个处理器。”)
http://ccl.northwestern.edu/netlogo/docs/faq.html#multiprocessing《关于并行运行的问题》<br/> http://netlogo-users.18673.x6.nabble.com/Question-about-parallel-running-td4869363.html
“如何在 NetLogo 中同时运行多个程序?” StackOverflow 上的问题
如何在 NetLogo 中同时运行多个程序?NetLogo 文档中的 Ask-concurrent
(“ask-concurrent 的行为是完全确定的。”)
http://ccl.northwestern.edu/netlogo/docs/programming.html#ask-concurrentNetLogo 文档中的 BehaviorSpace
http://ccl.northwestern.edu/netlogo/docs/behaviorspace.html