问题标签 [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.
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 运行的任何说明。
repast-simphony - 是否可以使用服务器启动器可视化显示?
我最近注意到,repast 提供了使用服务器启动器的可能性。在本手册上报道:
Repast Simphony 2.7 中的新功能是能够使用 Web 浏览器作为用户界面来运行模型。基于浏览器的 GUI 具有以下功能:
- 项目清单
- 2D 网格、连续空间和地理 (GIS) 可视化(目前仅限于编辑样式)
- 选项卡式和自由形式的可视化布局时间序列图
- 代理探测
- 模型参数设置
- 模型运行时交互(运行、停止、暂停等)
我已经尝试过使用这种模式启动我的模型。问题是显示不可视化。在我的展示中,有一个连续空间投影和一个网络投影。阅读引用的手册时,我认为我无法可视化显示,因为框架还没有提供使用基于浏览器的 GUI 在显示器上绘制网络投影的可能性的功能。这是一个可能的原因吗?
repast-simphony - Repast:从负刻度开始模拟
我正在建模一个交付系统,交付计划时间超过一天 24 小时。预定时间的一部分安排在前一天,显示为负数。例如,-300 表示配送任务安排在 Day-0 晚上 19:00。300 表示在第 1 天早上 5:00 安排的另一次交货。
在理想的情况下,我希望模拟以这种形式进行:
这样我就不必进行任何数字转换,这会给很多时间表带来很大的混乱。
我进行了测试,但似乎调度方法至少需要从“tick 0”开始。有什么解决办法吗?
repast-simphony - Repast:代理执行顺序
我有一个叫卡车的代理,它将执行一些操作(例如装载包裹)。这里的问题与执行动作的代理的随机序列有关。例如,假设我有三辆卡车,每次不同的运行时装载顺序都是随机的。
如何确保代理(卡车)基于序列执行动作,例如通过它们的 id,以便我们始终可以从模拟中获得一致的结果。
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 的初始化。
我还应该尝试什么?
repast-simphony - 有没有一种简单的方法可以暂时关闭部分场景?
我的目标是暂时关闭特定批处理运行的一些文本接收器。我的动机是我想节省处理时间和磁盘空间。我更广泛的目标是不仅可以在不同的文本接收器之间轻松切换,还可以在参数文件、数据加载器等之间轻松切换。
我尝试过的几件事:
- 手动将链接到文本接收器的 xml 文件放在不同的文件夹中-->这会创建一条错误消息(可能可以忽略?)并且不符合我拥有不同图表/数据加载器/显示/等的更广泛目标。
- 通过复制 .rs 文件夹并为该 .rs 文件夹创建一个新的运行配置来创建一个全新的场景树-->如果我想一次更改所有场景中的参数,那么我需要手动进行
- 尝试创建一个新的scenario.xml文件(即scenario2.xml),希望这会在场景树中作为替代方案出现-> GUI中没有出现
因此:是否有另一种简单的方法可以暂时关闭部分场景?
repast-simphony - Repast:查询一个代理集并计算while循环中的代理数
我想实现这样的逻辑:
可以看出,查询需要在while循环中重复调用和更新,第二个查询由3个条件组成(这对于AndQuery()方法来说并不容易)。
这在 Netlogo 中很容易实现。什么是适合和更短的方式来实现?
更新 - 最初的尝试
需要解决三个问题:
1)特定代理集的查询必须考虑三个条件;AndQuery 只包含两个条件。是否有允许同时考虑两个以上条件的查询方法?
当前问题:
两个条件的初始组合工作正常并且查询速度很快。但是,当我添加第三个条件“ops_type”时,查询速度变得非常慢。背后的原因是什么?或者这是构成三个条件的正确方法?
2)除了编写自定义计数函数(如示例所示)之外,是否有更简单的方法来查询特定代理集的大小(计数)?
3)将查询的代理集添加(或复制)到相关列表操作的列表中的最短方法是什么?
更新整个代码块:
5/5 更新
为了更好地检测,我已将查询移到 while 循环之外。我发现速度慢主要是由于使用了“PropertyGreaterThanEquals”。无论查询的字段是 int 还是 double。
- 当您使用“PropertyGreaterThanEquals”查询时,无论查询的字段是 int 还是 double,查询都会运行得很慢。但是,它返回正确的结果。
当您使用“PropertyEquals”查询时,无论查询的字段是 int 还是 double,查询都会在不到一秒的时间内运行。但是,它返回的结果不正确,因为它需要考虑 ">="。
}
repast-simphony - Repast - PropertyGreaterThanEquals/PropertyLessThanEquals 导致运行速度慢
我发现使用查询方法“PropertyGreaterThanEquals”或“PropertyLessThanEquals”比使用“PropertyEquals”方法运行得慢得多。下面是一个关于查询适合卡车卸货的码头的简单示例。
只有3个码头。如果使用“PropertyEquals”,我只用了不到一秒的时间运行了 1920 个滴答;但是,如果选择查询方法“PropertyGreaterThanEquals”或“PropertyLessThanEquals”,我总共花了 1 分钟多的时间来运行 1920 个刻度。这个执行缓慢问题的根本原因是什么?