gpt4 book ai didi

java - 使用 Java JADE 创建多个代理

转载 作者:行者123 更新时间:2023-11-30 10:51:12 28 4
gpt4 key购买 nike

我是 Eclipse 中 JADE 平台的新手。我想创建多个代理,我已经放置了一个 for 循环并增加了计数器来创建代理,它曾经运行良好但是当我添加 ThiefAgent 时,它不起作用。它只创建一个 PoliceAgent 和一个 ThiefAgent。该代码运行良好,但不会创建很多代理。

这是 main.java 代码:

 public class Main {

public static void main(String[] args) {

/*********************************************************************/
Runtime rt=Runtime.instance();
ProfileImpl p=new ProfileImpl();
p.setParameter(Profile.MAIN_HOST, "localhost");
p.setParameter(Profile.GUI, "true");


ContainerController cc1=rt.createMainContainer(p);


/**************creation of 5 police agents*****************/

for(int i=1; i<6; i++)
{

AgentController ac1;
try {



ac1=cc1.createNewAgent("PoliceAgent"+i, "Agents.PoliceAgent", null);


ac1.start();

} catch (StaleProxyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}



/**************creation of 3 thief agents*****************/

for(int j=1; j<4; j++)
{

AgentController ac2;
try {


ac2=cc1.createNewAgent("ThiefAgent"+j, "Agents.ThiefAgent", null);


ac2.start();

} catch (StaleProxyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
}

我尝试为两个代理放置一个 For 循环,但没有任何改变。怎么了?提前致谢。

最佳答案

  1. 创建 PoliceAgent 类:

    public class PoliceAgent extends Agent{
    @Override
    public void setup()
    {
    System.out.println("Police agent name is: " +getAID().getName());
    }
    }
  2. 创建 ThiefAgent 类:

    public class ThiefAgent extends Agent{
    @Override
    public void setup()
    {
    System.out.println("Thief agent name is: " +getAID().getName());
    }
    }
  3. 创建 AgentWorker 主类:

    public class PoliceAgent{

    public static void main(String... args){
    Runtime runtime = Runtime.instance();
    Profile profile = new ProfileImpl();
    profile.setParameter(Profile.MAIN_HOST, "localhost");
    profile.setParameter(Profile.GUI, "true");
    ContainerController containerController = runtime.createMainContainer(profile);

    for(int i=1; i<6; i++){
    AgentController policeAgentController;
    try {
    policeAgentController = containerController.createNewAgent("PoliceAgent"+i, "ua.agent.PoliceAgent", null);
    policeAgentController.start();
    } catch (StaleProxyException e) {
    e.printStackTrace();
    }
    }

    for(int i=1; i<4; i++){
    AgentController thiefAgentController;
    try {
    thiefAgentController = containerController.createNewAgent("ThiefAgent"+i, "ua.agent.ThiefAgent", null);
    thiefAgentController.start();
    } catch (StaleProxyException e) {
    e.printStackTrace();
    }
    }
    }

    }

我没有看到这段代码中的错误,但我写了 3 个类,它们都可以工作。由于看不到全貌,所以只能说问题可能出在agent类和Jade的问题上。

关于java - 使用 Java JADE 创建多个代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789560/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com