在使用Java控制NetLogo实验时,NetLogo可以通过仅使用内置的NetLogo API命令并行运行(如BehaviorSpace)吗?

时间:2017-07-18 18:34:17

标签: java netlogo

我正在尝试使用" Control API"对NetLogo进行一系列实验。 Java的功能(如https://github.com/NetLogo/NetLogo/wiki/Controlling-API所示),因为我在项目中享有额外的灵活性。但是,所提供的所有示例都是使用一组实验值完成的,因此不明显如何在内置的BehaviorSpace实用程序中运行不同线程上具有不同值的一组实验。在查看API时,我似乎无法找到此功能。这是否可以单独使用NetLogo API,或者这是我现在必须直接使用Java管理的东西,如果是这样,我如何确保在不打开JVM的单独实例的情况下获得并发运行?

这是我目前在Java中控制它的尝试,我尚未开始工作 - 因此我的动力是让它工作"对我来说#34;使用NetLogo API。

public class NetLogoHOBMC implements Runnable {

public static void main(String [] args) {
Runnable trial1 = new NetLogoHOBMC("\"/Users/nqe/updateTable/dff/BMC_HO_mixed_onedist.nlogo\"", "\"Users/nqe/temp/\"", "1000", "100", "10", "1", "0", "1000");
Thread thread1 = new Thread(trial1);
thread1.setName("trial1");
System.out.println("Starting trial1.");
thread1.start(); 
}

public void run() {
    try {
        HeadlessWorkspace workspace = HeadlessWorkspace.newInstance();  
        //open the model
        workspace.open(model);
        ...}

对于那些感兴趣的人,上面的代码似乎无法在调用HeadlessWorkspace.newInstance()时实际打开JVM会话,尽管我能够像前面的Controlling-API指南中那样使用它作为主函数的一部分。

0 个答案:

没有答案