Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пример реализации работы со службами AMS и DF для мультиагентной системы в программной среде JADE

Пример реализации онтологии для мультиагентной системы в программной среде JADE | Пример реализации детерминированного конечного автомата для мультиагентной системы в программной среде JADE | Пример реализации последовательности действий для мультиагентной системы в программной среде JADE | Пример реализации работы с протоколом FIPA-ContractNet для мультиагентной системы в программной среде JADE | Пример реализации работы с протоколом FIPA-Subscribe для мультиагентной системы в программной среде JADE | Пример реализации работы с различными схемами и абстрактными дескрипторами онтологии для мультиагентной системы в программной среде JADE |


Читайте также:
  1. Boot (англ. загрузка. Пример: основной загрузочный сектор) -вирусы
  2. D.1. Примеры уязвимостей
  3. F48.1 Синдром деперсонализации-дереализации
  4. I. Задания для самостоятельной работы
  5. I. Задания для самостоятельной работы
  6. I. Задания для самостоятельной работы
  7. I. Задания для самостоятельной работы

 

package ExampleAMSDF;

 

import jade.Boot;

import jade.core.Profile;

import jade.core.Runtime;

import jade.core.ProfileImpl;

import jade.wrapper.ContainerController;

import jade.wrapper.AgentController;

 

// Главная программа

public class Main

{

public Main() {}

 

// Запуск двух агентов отправителя

public static void main(String[] args)

{

// Загрузка JADE-системы

String arg[] = {"-gui"};

Boot boot=new Boot(arg);

// Создание агентного контейнера (для локального хоста)

Profile p = new ProfileImpl();

p.setParameter(Profile.MAIN_HOST, "1-fcd36d9673f14");

p.setParameter(Profile.MAIN_PORT, "1099");

p.setParameter(Profile.CONTAINER_NAME, "MyContainer");

Runtime rt = Runtime.instance();

ContainerController cc = rt.createAgentContainer(p);

// Создание и запуск двух агентов отправителей,

// которые содержатся в главном контейнере

try

{

AgentController agent1 = ac.createNewAgent("Agent1", "SheetProductsOntology.RegisterAgent", null);

agent1.start();

AgentController agent2 = ac.createNewAgent("Agent2", "SheetProductsOntology.RegisterAgent", null);

agent2.start();

AgentController agent3 = ac.createNewAgent("Agent3", "SheetProductsOntology.SearchAgent", null);

agent3.start();

}

// Обработка исключительной ситуации

catch(Exception e) {e.printStackTrace();}

}

}

 


package ExampleAMSDF;

 

import jade.core.Agent;

import jade.core.behaviours.TickerBehaviour;

import jade.domain.FIPAAgentManagement.AMSAgentDescription;

import jade.domain.FIPAAgentManagement.DFAgentDescription;

import jade.domain.FIPAAgentManagement.ServiceDescription;

import jade.domain.FIPAAgentManagement.Property;

import jade.domain.FIPAAgentManagement.FIPAManagementOntology;

import jade.domain.AMSService;

import jade.domain.DFService;

import jade.domain.FIPAException;

import jade.domain.FIPANames;

 

// Агент-регистратор

public class RegisterAgent extends Agent

{

// модификация AMS-агентного описания,

// регистрация DF-агентного описания перед началом работы

protected void setup()

{

try

{

// модифицировать AMS-агентное описание

AMSAgentDescription amsad = new AMSAgentDescription();

amsad.setName(getAID());

amsad.setState("active");

amsad.setOwnership("FEDOROV");

AMSService.modify(this,amsad);

System.out.println(getLocalName()+

" MODIFY WITH THE AMS");

 

// зарегистрировать DF-агентное описание

DFAgentDescription dfad = new DFAgentDescription();

dfad.setName(getAID());

ServiceDescription sd = new ServiceDescription();

sd.setType("Sending");

sd.setName(getLocalName()+"Sending");

sd.setOwnership("FEDOROV");

sd.addLanguages(FIPANames.ContentLanguage.FIPA_SL);

sd.addOntologies(FIPAManagementOntology.NAME);

sd.addProtocols(

FIPANames.InteractionProtocol.FIPA_REQUEST);

sd.addProperties(new Property("company", "DonNTU"));

dfad.addServices(sd);

DFService.register(this, dfad);

System.out.println(getLocalName()+

" REGISTERED WITH THE DF");

} catch (FIPAException e) {e.printStackTrace();}

}

 

// дерегистрация DF-агентного описания по завершению работы

protected void takeDown()

{

try

{

DFService.deregister(this);

System.out.println(getLocalName()+

" DEREGISTERED WITH THE DF");

}

catch (FIPAException e) {e.printStackTrace();}

}

}

 


package ExampleAMSDF;

import jade.core.Agent;

import jade.core.behaviours.TickerBehaviour;

import jade.domain.FIPAAgentManagement.AMSAgentDescription;

import jade.domain.FIPAAgentManagement.DFAgentDescription;

import jade.domain.FIPAAgentManagement.ServiceDescription;

import jade.domain.FIPAAgentManagement.SearchConstraints;

import jade.domain.AMSService;

import jade.domain.DFService;

import jade.domain.FIPAException;

 

// Агент-поисковик

public class SearchAgent extends Agent

{

// добавить Ticker-поведение перед началом работы

protected void setup()

{

addBehaviour(new TickerBehaviourNew(this, 10000));

}

 

// Ticker-поведение агента

public class TickerBehaviourNew extends TickerBehaviour

{

// Конструктор

public CyclicBehaviourNew(Agent agent, long timeout)

{

super(agent, timeout);

}

// Действие агента (поиск агентов с заданными параметрами)

protected void onTick()

{

try

{

// искать агентов с владельцем FEDOROV

SearchConstraints sc = new SearchConstraints();

sc.setMaxResults(new Long(10));

AMSAgentDescription amsad1 = new AMSAgentDescription();

amsad1.setOwnership("FEDOROV");

AMSAgentDescription[] AMSresult1 = AMSService.search(myAgent,amsad1,sc);

for(int i=0;i<AMSresult1.length;++i)

System.out.println(AMSresult1[i].getName());

System.out.println("OWNER FEDOROV --------------");

// искать агентов с состоянием active

AMSAgentDescription amsad2 = new AMSAgentDescription();

amsad2.setState("active");

AMSAgentDescription[] AMSresult2 = AMSService.search(myAgent,amsad2,sc);

for(int i=0;i<AMSresult2.length;++i)

System.out.println(AMSresult2[i].getName());

System.out.println("ACTIVE STATE ---------------");

// искать агентов с типом службы Sending

DFAgentDescription dfad = new DFAgentDescription();

ServiceDescription sd = new ServiceDescription();

sd.setType("Sending");

dfad.addServices(sd);

DFAgentDescription[] DFresult = DFService.search(myAgent,dfad,sc);

for(int i=0;i<DFresult.length;++i)

System.out.println(DFresult[i].getName());

System.out.println("SENDING SERVICE ------------");

} catch (FIPAException e) {e.printStackTrace();}

}

}

}

 


Дата добавления: 2015-11-14; просмотров: 58 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Пример реализации параллельных действий для мультиагентной системы в программной среде JADE| Пример реализации работы с протоколом FIPA-Request для мультиагентной системы в программной среде JADE

mybiblioteka.su - 2015-2024 год. (0.011 сек.)