在Netlogo中寻找更好的数据结构?

时间:2017-04-21 07:54:36

标签: netlogo

我安排代理(工厂)的任务在接下来的X个时间段内执行。对于每个任务,我正在记录Amount_To_Produce和OrderID。我使用了一系列列表,每天两个。在三个时间段内,它看起来像这样。

TimePeriod 1

Amount_To_Produce, OrderID
5,100
6,101
2,102

TimePeriod 2
Amount_To_Produce, OrderID
10,103
5,101
20,104

TimePeriod 3
Amount_To_Produce, OrderID
5,100
5,105

这样可行:我每天都要处理一个:

(foreach list1 ...命令)

但如果我想把它延长到更多的日子,那就太痛苦了。

另外,我需要将其与另外两个列表相关联,这两个列表存储了与订单ID一起购买商品的代理商(通知上面一个订单可能会溢出多天)。但这一点是可以的 - 它确实是每天需要列表的问题。

我知道代理商计划未来的天数,因此不必动态创建。我唯一的另一个想法是:

Day, Amount_To_Produce, OrderID
1,5,100
1,6,101
1,2,102
2,10,103
2,5,101
2,20,104
3,5,100
3,5,105

这个问题,foreach将处理第1天的订单三次,而不是一次。

无论如何:Netlogo有更好的数据结构来管理这类事情吗?

我真正喜欢的是每个代理都有自己的数据库,代理可以使用SQL类型命令查询的一系列表(我们有可能在NL7.0中得到这个吗?)

与此同时,您将如何存储这些数据?

1 个答案:

答案 0 :(得分:3)

extensions [table]
globals [tbl1 tbl2 listOfTables]

to test
  set tbl1 table:make
  set tbl2 table:make
  set listOfTables (list tbl1 tbl2)
  table:put tbl1 1 [[5 100] [6 101] [2 102]]
  show listOfTAbles
end