gpt4 book ai didi

netlogo - NetLogo 中是否可以有枚举数据类型?

转载 作者:行者123 更新时间:2023-12-02 15:30:20 26 4
gpt4 key购买 nike

NetLogo中是否可以有枚举数据类型?

假设我有一个婚姻状况变化的模型。

代理人可以有 3 种婚姻状况:单例、已婚、离婚。

我想将这些状态映射为数字,以便在执行时占用更少的内存。

  • 单个 = 1
  • 已婚 = 2
  • 离婚 = 3

这样我就可以做到

ask agents with [ marital-status = single ][ get-married ]

我找到了一个用“报告”来做到这一点的技巧

例如:

to-report single
report 1
end

但这意味着如果我要在许多变量中有许多类别,我必须创建许多报告函数。还有比这更好的解决方法吗?

谢谢:)

最佳答案

你的模型有多大?我的理解是代理属性至少为 8 个字节(请参阅 https://github.com/NetLogo/NetLogo/wiki/Optimizing-NetLogo-Runs )

我想不出一种自然的方法来做到这一点。但是,如果您确实愿意,此解决方法可行:将婚姻状况存储为 0, 1, 2。还存储一个名为 wedding-status-map 的全局变量并使用 item 原语。所以它看起来像这样:

globals [ marriage-status-map]

turtles-own [ marriage-status ]

to testme
clear-all
set marriage-status-map ["single" "married" "divorced"]
create-turtles 10
[ set marriage-status random 3
setxy random-xcor random-ycor
set color blue
]
ask turtles with [item marriage-status marriage-status-map = "single"] [set color red]
end

关于netlogo - NetLogo 中是否可以有枚举数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52107033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com