Hi, I am working on my thesis under jade
I use ams to detect all jade agents in the main container, but when I tried to create some agent containers, I could not find all the containers to get all the agents from them
please help me fix my code that only finds the ams agent of the current container
what is the code that I use to create an agent in containers.
Runtime rt= Runtime.instance(); Profile p=new ProfileImpl(); AgentContainer AgentContainere = rt.createMainContainer(p); AgentController[] tab=new AgentController[N]; try { int k=0; for (int i = 0; i < N; i++) { if (i % 100 == 0) { p=new ProfileImpl(); AgentContainere = rt.createMainContainer(p); } if ((i+1)%(N/NbrC)==0) { tab[i] = AgentContainere.createNewAgent(psoeudo+" - "+i, "Agents.KmeanAgent", new Object[]{K,NbrC,true,k}); k++; }else tab[i] = AgentContainere.createNewAgent(psoeudo+" - "+i, "Agents.KmeanAgent", new Object[]{K,NbrC,false,N}); } for (AgentController tab1 : tab) { tab1.start(); }
what is my agent that should broadcast aclmessage:
try { currentCluster = new Point(p.getX(), p.getY()); tableOfCenters[index] = currentCluster; AMSAgentDescription[] agents = null; boolean notstable = true; int found = 0; long sleeptime=7000; while (notstable) { try { sleep(sleeptime); SearchConstraints c = new SearchConstraints(); c.setMaxResults(new Long(-1)); agents = AMSService.search(this, new AMSAgentDescription(), c); if (agents.length > found) { found = agents.length; sleeptime+=5000; } else { notstable = false; } } catch (Exception e) { e.printStackTrace(); } } System.out.println(found + "the found agent"); AID myId = getAID(); ACLMessage msg = new ACLMessage(ACLMessage.INFORM); int sendloop=0; msg.setContent(getName() + currentCluster + " index = " + index); for (AMSAgentDescription agent : agents) { AID sendTo = agent.getName(); if (!sendTo.equals(myId) && !sendTo.getName().toLowerCase().contains("ams") && !sendTo.getName().toLowerCase().contains("df")) { msg.addReceiver(sendTo); sendloop++; if (sendloop%10==0) { send(msg); System.out.println(msg); msg.clearAllReceiver(); } } } if (sendloop%10!=0) { send(msg); System.out.println(msg); msg.clearAllReceiver(); } System.out.println("********************"); System.out.println(msg); System.out.println("********************"); } catch (Exception e) { e.printStackTrace(); }
source share