Netlogo与外部代理的接口

问题描述 投票:0回答:1

有人可以引导我,因为谷歌搜索无法将我发送到正确的位置。

我想使netlogo适应于包含其他技术的真实或模拟播放器。我需要连接netlogo核心(运行已建立的游戏),并由外部实体(可能是人类或自动狂)确定其移动和选择。

在寻找允许这样做的API时,我可以找到控制API,它似乎是用于运行模型的NetLogo多个运行,而不是我想要的。

并且请在再次关闭此步骤之前,建议我如何使这个问题更加集中,因为问题正在寻找起点。...

任何人都可以协助。

问候

罗伯特

api netlogo external agent
1个回答
0
投票

有两种主要方法可以在NetLogo和“外部世界”之间建立接口:

使用哪种取决于您要实现的目标。

您说您:

需要连接netlogo核心(运行已建立的游戏),并由外部实体(可能是人类或自动狂躁者)确定移动和选择。

对我来说,这听起来很像是扩展API的工作,这是向您建议的on the netlogo-devel group。扩展允许向NetLogo添加新的“原语”,并且可以使用在JVM上运行的任何语言(Java,Scala,Clojure等)编写这些原语。

因此,如果您有一个用NetLogo编写的游戏和一个用JVM与之交互的其他语言编写的机器人(可以使用JNI),则可以编写一个新的NetLogo扩展命令来调用该机器人(例如bot:play game-state)。然后,用NetLogo编写的游戏可以使用该命令让该机器人按顺序玩。

如果这确实是您想要做的,那么杰里米(Jeremy)已经在您的netlogo-devel答案中为您提供了一个很好的起点,除非您有更具体的问题,否则我们没有什么可以补充的。

但是,您也曾考虑过使用控制API,所以也许您想到的是用其他语言编写游戏,并使用NetLogo模型来生成特定玩家的行为。游戏。控制API允许您执行此操作。 (不仅仅是多次运行模型!)如果您查看the examples in the controlling guide,您会发现可以使用API​​将命令发送到NetLogo模型并将结果报告给外部程序。唯一的限制是此外部程序需要能够与JVM对话。

[如果您不认为这可以回答您的问题,请尝试为我们提供您想做的精确事情的具体示例,但认为无法通过这两种方式之一来实现。我们可能比以下更好地为您提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.