问题标签 [netlogo]

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 投票
7 回答
8551 浏览

java - NetLogo vs. Repast Simphony?

我想使用多代理范式模拟一些场景,似乎NetLogoRepast是最流行的工具。

我想知道是否有人对这两种方法有任何经验,可以告诉我更多关于它们的信息吗?例如,我注意到 Repast 有一个类似通量图的建模选项,但我认为它相当有限。我查看了官方网站上的教程和文档,似乎缺少文档。虽然有一些例子,但我想说的是,将它扩展为模拟尚未专门准备的环境,目前似乎是一个遥不可及的目标,尽管 Repast 显然非常强大并且显然能够处理它,只要足够多熟悉它。

另一方面,NetLogo 有更多示例,总体而言,我更喜欢它的简单性,但它似乎更专注于模拟疾病或类似模型的传播。我找到了一本教Logo的编程书,所以我认为它也更容易上手。

目前,我正在考虑将僵尸网络IDS es 模拟为多代理。然而,问题是我必须在一定程度上抽象网络和传输层才能做到这一点,并在节点之间产生流量。Repast 显然更适合这个,但考虑到它的复杂性和缺乏文档,我正在考虑使用 NetLogo。虽然有一些 NetLogo 与传统应用程序(例如:俄罗斯方块吃豆人)的例子,但我不确定它是否适合。

0 投票
1 回答
3784 浏览

file-io - NetLogo:从行数可变的输入文件中读取数据

我一直在 NetLogo 中运行博弈论模拟,现在我有很多数据文件,其中包含交叉表数据 - 每列存储一个不同变量的值,并且有 c。包含数据的 1000 行。我正在尝试编写一个程序来获取这些文件并计算每列的平均值。

只要每个文件中有恒定数量的数据行,我就有一个程序可以工作。该程序使用文件读取命令循环来计算运行总数,然后在读取所有行后除以读取的行数。

但是,我的真实数据文件具有可变数量的行。我一直在尝试使用 file-at-end 修改我的代码?让它在最后一行之后退出正在运行的总循环,但我无法找到任何使用它的方法 - 我只是收到一条错误消息,指出文件已结束。

请问有人可以提出一种处理方法吗?我在下面粘贴了工作代码。

--

0 投票
1 回答
271 浏览

computer-science - Netlogo 编程题 - 化学平衡温度和压力实现

我正在尝试在 Netlogo 中编写一些代码。我正在使用现有模型化学平衡并尝试实现以下内容:

海龟自己的[速度]

问海龟[

]

;; 到温度

但它似乎不起作用

(温度超过 40 海龟的速度会增加 如果温度低于 30 海龟的速度会降低) 温度是模型上的滑块

同样的压力问海龟[

]

;; 施压

谢谢

0 投票
1 回答
292 浏览

netlogo - 对其他海龟执行没有影响但加快反应的海龟

我在 netlogo 中使用了一个名为 Chemical Equilibrium 的现有模型,并添加了更多代码。我想添加对反应/其他乌龟没有影响但加速FORWARD反应的乌龟(催化剂),其定义如下:

我当时在想我应该放一个开关和一个滑块,把海龟变成 whitemols,或者我做一个turtles-own [catalyst],然后像我对温度和压力所做的那样定义它。我尝试了以下但没有奏效。

我知道上面的代码不正确,但不确定如何编写这个特定的功能。

0 投票
3 回答
309 浏览

computer-science - NetLogo-如何将平衡的化学方程式放入模型中?

我想知道是否可以将平衡的化学方程式放入模型中 - 如果可以,如何在现有的 NetLogo 模型中包含状态符号。我没有在模型库中看到任何示例,因此不确定是否可行。

我希望模型能够允许用户输入平衡的化学平衡方程,或者模型提供这样的方程,以便用户在不想输入自己的情况下可以从中选择。

任何帮助将不胜感激,谢谢。

例如:

乙烷 + 氧气 --> 二氧化碳 + 蒸汽

C2H6 + O2 --> CO2 + H2O

0 投票
1 回答
96 浏览

computer-science - netlogo 编程问题 - 催化剂实现第 2 部分

催化剂加速反应,但反应发生后保持不变

我尝试了以下代码

品种[催化剂催化剂]

品种 [化学-x 化学-x]

;然后正反应因催化剂的存在而加速

向前反应

让 num-catalysts 计算催化剂;通过 num-catalysts 加速

;...

结尾

它工作正常,但我想这样做,以便可以使用“开关”按钮打开和关闭催化剂..所以人们可以看到有和没有催化剂的效果..我试着打开一个开关,但催化剂有已经定义了

我也想让催化剂可见,这样人们就可以在实际的实现中看到它(在世界上),就像把它变成一只乌龟一样,除了使用品种之外,还有另一种实现方式

我试着让催化剂变成乌龟,但它不起作用

; 使催化剂在实施中可见

一目了然

crt 催化剂 100

询问催化剂 [设置颜色为白色]

显示[品种]一种催化剂;印刷催化剂

任何帮助将不胜感激谢谢

0 投票
2 回答
4843 浏览

user-agent - 如何在 NetLogo 中创建迷宫墙?

我正在尝试创建一个带有 2 个出口的 5x5 网格并在其中放置一些墙壁。换句话说,我想创建一个迷宫或迷宫。

我想知道是否有办法使边界线变粗或仅更改补丁一侧的颜色。

我想只放一个特工进去,通过奖励他一些积分让他找到出口。(Q-学习算法)

有人有想法吗?

如果这是不可能的,你能建议类似的代码吗?

这是我要创建的示例:

替代文字

如被问及,我已经发布了一些我的工作(尽管手动完成这项工作似乎效率低下)。这是我到目前为止所拥有的:

同样,这是一种低效的方法。如果我继续使用这种方法,我怎样才能将 4 个补丁合并为 1 个,以便我可以进入我的代理并居中?

先感谢您。

0 投票
2 回答
2944 浏览

simulation - NetLogo 4.1 - 高速公路的实现(造成汽车碰撞的问题)

我正在尝试在 NetLogo 中创建高速公路和驾驶员行为的模拟。

我有一些我正在努力解决的问题。

这是我的代码:

我知道它有点乱,因为我使用的是库中其他模型的代码。

我想知道如何创建汽车的碰撞。我想不出任何想法。正如您所注意到的,我的代理与补丁的大小几乎相同(我将其设置为 0.9,以便您可以在两辆车彼此相邻时区分它们之间的空间,并且我将坐标四舍五入以便将它们设置为中心补丁)。

在我的加速过程中,我将我的代理设置为左转,移动 1,循环右转。我想知道是否有一个命令可以让我让代理从一个车道跳到另一个车道(到它左边旁边的补丁)而不让它转动和移动。

最后,如果你注意到我创建的代码,汽车会检查它左侧车道上旁边的补丁,以及它前面和后面的补丁。所以如果它左边的3个补丁是空的,那么它可以改变车道。模糊的部分是,当我运行设置并按 Go 键时,有时(并非总是)汽车会驶出 3 个基本车道。

为了理解这一点,我有 7 条车道。我不使用的中间是 0 号车道。然后在 0 号车道的顶部和 3 号车道下面有 3 条车道。所以我使用的代码是指我设置汽车的上 3 条车道,但由于某种原因,一些汽车改变车道并进入 -3 车道,然后进入 -2 车道,依此类推。

如果有人可以给我小费,我将不胜感激。

先感谢您。

提示:如果您想在 netlogo 中尝试此代码,请记住,在界面选项卡上,我有 2 个按钮,一个设置,一个执行以及 3 个滑块,名称为:number_of_cars、speed-up、slow-down。

0 投票
1 回答
306 浏览

if-statement - 我的 ifelse 语句的结果取决于真/假的操作?

目前,我正在为卡车在我的netlogo土地内行驶建造一条路线。当卡车靠近它应该交付的商店补丁时,卡车需要改变它的动作。

但是我的iforifelse声明似乎没有很好的反应,答案取决于输出。通过一些测试:

请注意,在此期间我不移动我的卡车,我使用指挥中心提出这些问题(从乌龟卡车的角度来看)。

我对此感到非常困惑。因为我唯一改变的是动作(写什么)。这不应影响真/假陈述本身。

有没有人知道这里发生了什么以及为什么ifelse反应很奇怪?

0 投票
1 回答
1444 浏览

replace - 将变量放入表中时出错,只允许使用常量?

目前我正在开发一个 Netlogo 程序,我需要使用节点和链接来解决车辆路线问题。(链接在程序中称为街道)

在这里,我遇到了一些实际问题,即如何在另一个节点的表中输入可变链接速度。像 200 这样的常数很好。网上找了一些使用变量的例子,但是不知道为什么一直报如下错误:

预期一个常数。

(或者为什么 netlogo 期望一个常数)

这是相关的代码:

我希望有人知道发生了什么...