问题标签 [repast-simphony]

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

repast-simphony - repastpy 是如何设置和启动的?

我的理解是repastpy是一个可以从repast创建的环境,其中类似Python的代码用于创建代理,行为等。我想使用repastpy,因为我的Java知识有限,但一直无法弄清楚如何设置/启动repastpy。repastpy 是如何设置和启动的?

我已经按照https://repast.github.io/download.html在我的 Mac 上下载了 repast-simphony 2.7 ,并且我能够从 Eclipse 运行 Java 版本 - 也就是说,打开和启动就餐窗口基于 Java 的示例(例如 GeoZombies)。在查看我的应用程序中的 repast simphony 2.7.0 文件夹时,我看到了一些关于批处理或 Java 入门的参考文档,而不是 Python。

我在http://repast.sourceforge.net/repast_3/repastpy/查阅了 repastpy 页面;他们讨论了如何在启动后使用 repastpy,而不是如何设置和/或首先启动 repastpy(或者,我错过了任何此类说明)。

在下载和安装repast simphony 后,通过搜索我的Mac,我也没有在任何地方看到包含“repastpy”的文件名。

我将不胜感激任何人都可以提供有关如何让 repaspy 运行的任何说明。

0 投票
1 回答
32 浏览

repast-simphony - 创建子类代理的问题

我有一个城际配送系统模拟模型。代理的一种类型是“包裹”。在每个交付班次结束时,我想生成一些新包裹作为不同类型的包裹。因此,我创建了一个名为“Dummy_Parcel”的新类,它从“Parcel”类扩展而来。

问题是当我新建一个“Dummy_Parcel”时,这个Dummy_Parcel会被记录在“Agent Table”的Dummy_Parcel选项卡中。这个 Dummy_Parcel 也将出现在 Parcel 选项卡中。这会导致不必要的重复。如何配置以防止 Dummy_Parcel 在 Parcel 选项卡中显示?这个问题也出现在批量运行数据采集中。

在此处输入图像描述

0 投票
1 回答
39 浏览

repast-simphony - 是否可以使用服务器启动器可视化显示?

我最近注意到,repast 提供了使用服务器启动器的可能性。在手册上报道:

Repast Simphony 2.7 中的新功能是能够使用 Web 浏览器作为用户界面来运行模型。基于浏览器的 GUI 具有以下功能:

  • 项目清单
  • 2D 网格、连续空间和地理 (GIS) 可视化(目前仅限于编辑样式)
  • 选项卡式和自由形式的可视化布局时间序列图
  • 代理探测
  • 模型参数设置
  • 模型运行时交互(运行、停止、暂停等)

我已经尝试过使用这种模式启动我的模型。问题是显示不可视化。在我的展示中,有一个连续空间投影和一个网络投影。阅读引用的手册时,我认为我无法可视化显示,因为框架还没有提供使用基于浏览器的 GUI 在显示器上绘制网络投影的可能性的功能。这是一个可能的原因吗?

0 投票
1 回答
181 浏览

repast-simphony - Repast - 从没有 GUI 的 java 程序调用模拟

我正在按照说明测试从另一个 java 程序调用我的模拟模型。

java 程序将使用 RepastMain 配置启动 GUI:

如果我应用非 GUI 配置,java 程序将很快终止而不运行并且不返回任何内容:

在此处输入图像描述

如何启用无头模式下的模拟运行?


其次,我需要在远程服务器 (Linux) 上部署我的仿真模型。服务器调用我的模拟模型的最佳方式是什么?如果是 HTTP,后续如何进行配置?模型的运行首选批量运行方法(单次运行或多次运行,取决于用户的选择)。批量运行输出需要转成 JSON 格式反馈给服务器。

0 投票
0 回答
32 浏览

repast-simphony - Repast:从负刻度开始模拟

我正在建模一个交付系统,交付计划时间超过一天 24 小时。预定时间的一部分安排在前一天,显示为负数。例如,-300 表示配送任务安排在 Day-0 晚上 19​​:00。300 表示在第 1 天早上 5:00 安排的另一次交货。

在理想的情况下,我希望模拟以这种形式进行:

这样我就不必进行任何数字转换,这会给很多时间表带来很大的混乱。

我进行了测试,但似乎调度方法至少需要从“tick 0”开始。有什么解决办法吗?

0 投票
1 回答
40 浏览

repast-simphony - Repast:代理执行顺序

我有一个叫卡车的代理,它将执行一些操作(例如装载包裹)。这里的问题与执行动作的代理的随机序列有关。例如,假设我有三辆卡车,每次不同的运行时装载顺序都是随机的。

如何确保代理(卡车)基于序列执行动作,例如通过它们的 id,以便我们始终可以从模拟中获得一致的结果。

0 投票
1 回答
193 浏览

repast-simphony - 为什么 Repast Simphony 在批处理中找不到模型输出?

我正在尝试通过 Simphony GUI 对模型进行批量运行。我在我的场景树中创建了具有相对路径“./Test_Data_FileSink”的文本接收器。该文件是通过 GUI 单次运行创建和保存的。但是,当我进行批处理时,不会在 localhost 实例中创建任何文件。当我导航到实例时,我看到了 debug.log、FAILURE_null、instance.log 和 param_input.txt,但没有看到 Test_Data_FileSink 文件。批处理尝试跨实例编译数据,并在指定的输出位置返回一个空的 batch_param_map.txt 和 Test_Data_FileSink.txt。

通过下面的批处理运行配置窗口显示警告消息:

'WARN [SwingWorker-pool-2-thread-1] 12:15:28,906 repast.simpony.batch.ssh.OutputFinder - 在 C:\Users 中找不到与 glob 匹配的模型输出:{**\,}Test_Data_FileSink_ModelOutput*.txt \user\AppData\Local\Temp\simphony_model_1582046063159\instance_1'

批处理运行控制台日志中有一个额外的错误,模型可能正在寻找 UI。

repast.simphony.batch.InstanceRunner - 运行模型 java.lang.NoClassDefFoundError 时出错:repast/simphony/ui/RSApplication

GUI UI 确实允许参数输入,但如果参数已经设置,我看不到模型依赖于它运行的位置。我试图在设置 UI 时插入一些条件语句

如果我不允许渲染 UI 并且在我发现它可以工作的位置似乎没有太大影响,这会破坏 Simphony 的初始化。

我还应该尝试什么?

0 投票
1 回答
22 浏览

repast-simphony - 有没有一种简单的方法可以暂时关闭部分场景?

我的目标是暂时关闭特定批处理运行的一些文本接收器。我的动机是我想节省处理时间和磁盘空间。我更广泛的目标是不仅可以在不同的文本接收器之间轻松切换,还可以在参数文件、数据加载器等之间轻松切换。

我尝试过的几件事:

  • 手动将链接到文本接收器的 xml 文件放在不同的文件夹中-->这会创建一条错误消息(可能可以忽略?)并且不符合我拥有不同图表/数据加载器/显示/等的更广泛目标。
  • 通过复制 .rs 文件夹并为该 .rs 文件夹创建一个新的运行配置来创建一个全新的场景树-->如果我想一次更改所有场景中的参数,那么我需要手动进行
  • 尝试创建一个新的scenario.xml文件(即scenario2.xml),希望这会在场景树中作为替代方案出现-> GUI中没有出现

因此:是否有另一种简单的方法可以暂时关闭部分场景?

0 投票
1 回答
71 浏览

repast-simphony - Repast:查询一个代理集并计算while循环中的代理数

我想实现这样的逻辑:

可以看出,查询需要在while循环中重复调用和更新,第二个查询由3个条件组成(这对于AndQuery()方法来说并不容易)。

这在 Netlogo 中很容易实现。什么是适合和更短的方式来实现?

更新 - 最初的尝试

需要解决三个问题:

1)特定代理集的查询必须考虑三个条件;AndQuery 只包含两个条件。是否有允许同时考虑两个以上条件的查询方法?

当前问题:

两个条件的初始组合工作正常并且查询速度很快。但是,当我添加第三个条件“ops_type”时,查询速度变得非常慢。背后的原因是什么?或者这是构成三个条件的正确方法?

2)除了编写自定义计数函数(如示例所示)之外,是否有更简单的方法来查询特定代理集的大小(计数)?

3)将查询的代理集添加(或复制)到相关列表操作的列表中的最短方法是什么?

更新整个代码块:


5/5 更新

为了更好地检测,我已将查询移到 while 循环之外。我发现速度慢主要是由于使用了“PropertyGreaterThanEquals”。无论查询的字段是 int 还是 double。

  1. 当您使用“PropertyGreaterThanEquals”查询时,无论查询的字段是 int 还是 double,查询都会运行得很慢。但是,它返回正确的结果。
  2. 当您使用“PropertyEquals”查询时,无论查询的字段是 int 还是 double,查询都会在不到一秒的时间内运行。但是,它返回的结果不正确,因为它需要考虑 ">="。

    }

0 投票
0 回答
23 浏览

repast-simphony - Repast - PropertyGreaterThanEquals/PropertyLessThanEquals 导致运行速度慢

我发现使用查询方法“PropertyGreaterThanEquals”或“PropertyLessThanEquals”比使用“PropertyEquals”方法运行得慢得多。下面是一个关于查询适合卡车卸货的码头的简单示例。

只有3个码头。如果使用“PropertyEquals”,我只用了不到一秒的时间运行了 1920 个滴答;但是,如果选择查询方法“PropertyGreaterThanEquals”或“PropertyLessThanEquals”,我总共花了 1 分钟多的时间来运行 1920 个刻度。这个执行缓慢问题的根本原因是什么?