当前位置: 首页 > 知识库问答 >
问题:

在Repast J中将数据层分配到网格

云啸
2023-03-14

我试图在Repast Java Suite中编写一个ABM,并使用3D网格来实现。关于网格的两个问题:1)我想为网格中的每个(x,y)组合分配一个函数值——例如,对于每个f(x,y)=xy。因此,当代理位于点(x,y)时,它将知道相应的z值是z=f(x,y)=xy。我如何为网格分配一个数据层来实现这一点?

2)同样对于同一个网格,代理应该能够知道是否访问了特定的补丁。每当代理访问该补丁时,它都会更新。

一般来说,我的问题是为网格接口分配额外的方法、数据等。因为这是我的模拟中的一个基本问题,如果不解决它,我就无法前进。。非常感谢你的回答。。谢谢

共有1个答案

梁季
2023-03-14

a) 听起来你可能想要二维网格上的GridValueLayer,而不是三维网格。如果希望代理能够在三维空间中移动,则使用三维网格;如果代理在二维空间中移动,则使用二维网格,即使希望代理读取每个位置的值。

GridValueLayer可以在n维网格上使用,并为每个单元格保存一个值(由n个int值指定的位置)。例如,您可能希望GridValueLayer为二维网格中的每个单元格保留值x和y。

e. g.

int[] dimensions = new int[]{xMax, yMax};
AbstractGrid  myBasicGrid = new AbstractGrid("exampleGrid", new SimpleGridAdder(), new WrapAroundBorders(), new SingleOccupancyCellAccessor(), dimensions);
GridValueLayer mySimpleGridValueLayer = new GridValueLayer("simpleAddLayer",true,dimensions);

for (int i = 0; i < xMax, i++)
{
    for (int j = 0; j < yMax, j++)
    {
        int[] coord = new int[]{i,j};
        mySimpleGridValueLayer.set(i+j, coord);
    }
}

b)这可以通过多种方式完成。我再次建议使用GridValueLayer。在代理代码中,在您移动到网格中的一个点时,您将该坐标的GridValueLayer设置为1。

最后一个音符。您可以实现自己的网格。只要它符合Repast的网格接口,或者您可以扩展AbstractGrid。例如,如果扩展AbstractGrid,然后使用getSum(int…coords)方法,它只返回coords数组和getVisited(int…coords)的和来解决问题。您还可以让它实现ProjectionListener接口,监听OBJECT_MOVED类型的ProjectionEvent,然后将该位置的visited值设置为true。

 类似资料:
  • 问题内容: 我有一个与父子关系的表,我需要递归查询的帮助 表结构 我正在尝试进行递归查询,但是我无法做到这一点,建议我应该如何查询数据库 问题答案: 正如上面所指出的,这并不是真正的递归,但是如果您知道最大需要深入多少步,则可以沿以下方向使用某些方法(也许使用PHP生成查询): 我首先将父ID设置为NULL而不是0,但这是个人喜好。 ^^在这种情况下,您需要走多远。 [ 下一点没有严格意义 ] 然

  • 本文向大家介绍分层数据模型,包括了分层数据模型的使用技巧和注意事项,需要的朋友参考一下 分层数据模型是最早的数据模型之一。该模型是基于文件的模型构建,就像树一样。在此树中,父节点可以与多个子节点关联,但是一个子节点只能有一个父节点。 对于目录和文件,可以说单个目录进一步包含多个文件或目录,然后这些目录包含更多文件,依此类推。 这可以表示为- 示例 使用关系数据库的层次模型的示例如下- <员工> E

  • 我在Spark(v2.1.1)中有一个数据集,其中有3列(如下所示)包含分层数据。 我的目标是根据父子层次结构为每一行分配增量编号。从图形上可以说,分层数据是树的集合 根据下表,我已经根据“Global_ID”对行进行了分组。现在,我想以增量顺序生成“值”列,但基于“父”列和“子”列的数据层次结构 表格表示(值是所需的输出): 树形表示(每个节点旁边都显示了所需的值): 代码片段: 经过大量研究并

  • 开发手册的这一部分关注于中间层开发,并明确描述了这一层的数据访问职责。 先是,详细阐述了Spring全面的事务管理支持,随后,详细说明了Spring Framework如何支持多种中间层数据访问的框架和技术。 第 10 章 事务管理 第 11 章 DAO支持 第 12 章 使用JDBC进行数据访问 第 13 章 使用ORM工具进行数据访问 目录 10. 事务管理 10.1. 简介 10.2. 动机

  • 问题内容: 鉴于下表 我要执行以下操作: 如果我搜索Ben,我想找到图像,如果没有图像,我想找到父母的图像,如果不存在,我想转到祖父母的图像…直到点击默认图片。 最有效的方法是什么?我知道SQL并不是真正为分层值设计的,但这是我需要做的。 干杯! 问题答案: MySQL缺少递归查询,而递归查询是标准SQL的一部分。许多其他品牌的数据库都支持此功能,包括PostgreSQL(请参阅http://ww

  • 我发现jQuery代码打印出在网格内点击的div,我如何修改这段代码,使它只向点击的div.grid_item添加类“.active”,有人能帮助我理解如何做到这一点吗? 我在下面添加了html和js。 null null