Мой вопрос о том, сколько агентов JADE может обрабатывать при использовании сетевого протокола контракта? У меня есть один агент ContractNetInitiator и 130 ContractNetResponder в одном контейнере. код, используемый для создания этих агентов, выглядит следующим образом:
ProfileImpl profileImpl2 = new ProfileImpl(false);
profileImpl2.setParameter(ProfileImpl.MAIN_HOST, "localhost");
AgentContainer agentContainer = runtime.createAgentContainer(profileImpl2);
AgentController v;
for (int i=0; i<130; i++){ //8 est le nombre d'agents véhicules
v=agentContainer.createNewAgent("vehicle"+i, "VehicleAgent", new Object[]{});
v.start(); }
А ТАКЖЕ
try {
// Register the vehicle-transporting service in the yellow pages
dfd = new DFAgentDescription();
dfd.setName(getAID());
ServiceDescription sd = new ServiceDescription();
sd.setName("Transport Of Items");
sd.setType("Transport");
dfd.addServices(sd);
DFService.register(this, dfd);
} catch (FIPAException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ContractNetInitiator нашел только 100 агентов. Код, который я использовал для поиска этих агентов, выглядит следующим образом:
try {
// search list of Vehicle agents
template = new DFAgentDescription();
sd = new ServiceDescription();
sd.setType("Transport");
template.addServices(sd);
DFAgentDescription[] result = DFService.search(this, template);
if (result.length > 0) {
vehicleAgentsD = new AID[result.length];
log.info("Agent Dispatcher Agent found this vehicle's Agents :");
for (int i = 0; i < result.length; ++i) {
vehicleAgentsD[i] = result[i].getName();
log.info("VA" + i + "===>" + vehicleAgentsD[i].getName());
}
} else {
System.out.println("Agent " + getLocalName() + " did not find any service");
}
} catch (FIPAException fe) {
fe.printStackTrace();
}
Эта ошибка связана с ограничениями JADE или с производительностью моего компьютера? Заранее спасибо за ваш ответ.