考虑 netlogo 中可能发生的以下 5 个事件,
[abcdef] 每个事件都有特定的发生概率。说[0 0 0.3 0.5 0.1 0.1],即p(a) = 0, p(b) = 0, p(d) = 0.5
必须发生一个(且只有一个事件)。如何在 Netlogo 中对其进行建模。
我做了什么:
ask turtles
[
if random-float 1 < 0
[EventA]
if random-float 1 < 0.5
[EventD] ; and so on
]
Run Code Online (Sandbox Code Playgroud)
但采用这种方法,有时不会发生任何事件,有时会发生超过 1 个事件。
我正在 NetLogo 中实现 SFM。我很难在我的世界中设置固定数量的海龟。我用 sprout 基元创建了我的海龟(每个补丁 1 个),所以我不确定如何为所有海龟设置固定数量。我认为使用滑块是一个好主意,因为我想测试不同的情况,例如 400、500、600 等海龟,以分析它们疏散需要多长时间。
当然,当我在 go 程序中实现if count Turtles > 100 [stop] create_adults时,所有模拟都会停止。我不想让模拟停止。我只想停止创造海龟,这样世界上已有的海龟就可以继续移动。
这是我的程序:
to go
if ticks = 0 [reset-timer]
if random 100 > 30
[repeat random 3 [create_adults]]
tick
if count turtles > 400 [stop] create_adults
Run Code Online (Sandbox Code Playgroud)
这就是我创建海龟的方式:
to create_adults
let p one-of patches with [(pycor >= 1 and pycor <= 11 and pxcor = 3) and pcolor = violet + 2] ; this is the beginning of my world
ask …
Run Code Online (Sandbox Code Playgroud) 在与如何用多边形中的另一种颜色替换颜色相同的光学器件中,我想用蓝色补丁替换蓝色矩形中包含的白色补丁:
我有蓝色矩形,如下图所示:
我想要有如下蓝色矩形:
通过color-white-patches-v2 [ c ]
在如何用多边形中的另一种颜色替换颜色,我获得了这个数字:
并通过使用color-white-patches-v3 [ c ]
我修改如下(因为我有这个错误消息OF expected input to be a turtle agentset or patch agentset or turtle or patch but got NOBODY instead.
:
to color-white-patches-v3 [c]
ask patches with [ pcolor = white] [
if (patch-at 0 1 != nobody and [pcolor] of patch-at 0 1 = c) or (patch-at 1 0 != nobody and [pcolor] of patch-at 1 0 = c) …
Run Code Online (Sandbox Code Playgroud) 我从NetLogo导出了一个景观.我在Netlogo中导入了相同的格局.从这个角度来看,我添加了另一个特定于补丁"驻留时间"的全局变量:
globals [
list-of-polygons ]
patches-own [
area-ha
residency-time
]
Run Code Online (Sandbox Code Playgroud)
我创建了一个函数来为我的横向中的每个多边形指定驻留时间值
to assign-residency-times
set list-of-polygons ([ID-polygon] of patches)
set list-of-polygons remove-duplicates list-of-polygons
set list-of-polygons remove 0 list-of-polygons
print sort list-of-polygons
foreach list-of-polygons [
ask patches with [ ID-polygon = ? ] [
if all? patches [pcolor = green] [
set residency-time exp(1.02 * area-ha) ]
.... ] ]
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我有这个错误信息:Nothing named area-ha has been defined
.但是,我定义了area-ha
dans patches-own
.另外,当我检查补丁时,补丁特有的所有全局变量都消失了(见下图)!
在此先感谢您的帮助.
我正在尝试将旧代码移植到最新版本(6.0.1),以下 foreach 循环在 Netlogo 4.1.3 上运行良好,但是当将代码复制并粘贴到版本 6.0.1 时,出现“item 0 ?” 不起作用。它说的是“?” 未定义。该行代码应该检索段内列表的项目
to setup-row [row colour segments]
foreach segments
[
if pycor = row * row-patches-width and
(pxcor >= col-patches-width * (item 0 ?)) and (pxcor <= col-patches-
width * (item 1 ?))
[set pcolor colour
output-print item 0 ?]
]
end
Run Code Online (Sandbox Code Playgroud)
传入的“segments”变量包含以下列表:
setup-row 4 blue [[-8 -5] [-3 -1] [0 3] [5 9]]
Run Code Online (Sandbox Code Playgroud)
如果代码工作正常,它应该使用 (item 0 ?) 检索 -8,使用 (item 1 ?) 检索 -5,依此类推。我在旧代码中假设的是“?” 是从 [-8 -5] 段中检索到的第一个列表,(项目 0 …
我正在做一棵树在网络徽标中生长,我必须实现一个隐藏的树干。但是,当没有叶子并且有时隐藏在叶子后面并显示叶子颜色时,如何将补丁分配给树干颜色?
当我们站在一棵树前时,有时我们看不到上面的树干导致叶子。这就是我现在要建模的内容。
我正在根据实际运营数据对生产计划进行建模。数据为我提供了轮班时间表,如下所示:
shift_start shift_end
0:10 4:00
4:00 6:00
8:00 11:00
11:00 13:30
13:30 17:00
18:30 23:30
Run Code Online (Sandbox Code Playgroud)
或其他格式为:
shift_start shift_end
0100 0400
0400 0600
0800 1100
1100 1330
1330 1700
1830 2330
Run Code Online (Sandbox Code Playgroud)
但是,这两种都不是从netlogo ticks函数中读取的好格式。如何将时间格式自动更改为如下所示的数字:
shift_start shift_end
10 240
240 360
480 660
660 810
810 1020
1110 1410
Run Code Online (Sandbox Code Playgroud)
还是netlogo中有内置功能支持时间读取?
整个数据集如下所示((项目5是班次开始时间,项目6是结束时间))我正在使用csv扩展方法读取整个集合
028W 028W0410 IB 0 1 250 360 0.48 2.78 14.98
028W 028W0800 IB 0 1 480 660 0.54 3.1 18.43
028W 028W1200 IB&OB 0.5 0.5 720 870 0.51 2.58 13.89
028W 028W1430 …
Run Code Online (Sandbox Code Playgroud) 我正在 NetLogo 中从事一个模拟项目,并遇到了有关某些值的量化的挑战。具体来说,我试图了解如何有效地将抽象模拟测量转换为现实世界的单位。以下是我的主要担忧:
时间转换:在 NetLogo 中,时间通常以“刻度”表示,但我不确定如何将其转换为现实世界的单位,如秒或小时。这种转换是否有标准方法或公式,或者它完全取决于模拟的上下文吗?
物理量:另一个方面是将模拟中“肌肉质量”等属性的抽象测量值转换为千克或克等现实单位。由于 NetLogo 本身并不定义这些单位,因此我不确定如何使这些转换有意义且准确。
我的问题是:
您在 NetLogo 或其他模拟环境中进行类似转换的经验中有什么见解或示例吗?
我不太明白括号里的内容;NetLogo 要么说我缺少括号,要么需要括号。每当我尝试添加或删除括号时,它只会说另一个括号已损坏。单纯的代码是行不通的。有人帮忙!
globals [
initial-trees
burned-trees ]
breed [fires fire]
to setup
clear-all
set-default-shape turtles "square"
ask patches with [(random-float 100) < density]
[ set pcolor green ]
[ plants ]
ask patches with [pxcor = min-pxcor]
[ ignite ]
set initial-trees count patches with [pcolor = green]
set burned-trees 0
reset-ticks
end
to go
if not any? turtles
[ stop ]
ask fires
[ ask neighbors4 with [pcolor = green]
if random 100 < 50 [ignite]
[ ask neighbors4 …
Run Code Online (Sandbox Code Playgroud) 作为对此(几乎)相同标题(Netlogo:计算图形/网络的直径)发布的问题的答案,用户 C.Bradley 确认:“我使用了两个 foreach 循环来计算一只海龟到其余海龟的路径”。我想问用户 C.Bradley 他是如何做到这一点的。注意:如果这不是问这个问题的正确方式,我很抱歉:我是 Stackoverflow.com 的绝对初学者(我本来想直接联系 C.Bradley,但我想这在平台上是不可能的,是吗?不是吗?)非常感谢。