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

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

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


Читайте также:
  1. Boot (англ. загрузка. Пример: основной загрузочный сектор) -вирусы
  2. D.1. Примеры уязвимостей
  3. F48.1 Синдром деперсонализации-дереализации
  4. III. АНАТОМИЯ КРОВЕНОСНОЙ СИСТЕМЫ.
  5. III. После этого раненую конечность лучше всего зафиксировать, например, подвесив на косынке или при помощи шин, что является третьим принципом оказания помощи при ранениях.
  6. IV. АНАТОМИЯ ЦЕНТРАЛЬНОЙ НЕРВНОЙ СИСТЕМЫ.
  7. SWOT- анализ на примере ветеринарной аптечной сети.

 

package ExampleParallelAction;

 

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);

// Создание и запуск Sequential-агента,

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

try

{

AgentController agent = cc.createNewAgent("AgentParallel", " ExampleParallelAction.ParallelAgent", null);

agent.start();

}

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

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

}

}

 


package ExampleParallelAction;

 

import jade.core.Agent;

import jade.core.behaviours.TickerBehaviour;

import jade.core.behaviours.ParallelBehaviour;

 

// Parallel-Агент

public class ParallelAgent extends Agent

{

// добавление поведения агента

protected void setup()

{

ParallelBehaviour s = new ParallelBehaviour(this, ParallelBehaviour.WHEN_ALL)

{

public int onEnd()

{

System.out.println(

"Parallel behaviour completed.");

myAgent.doDelete();

return super.onEnd();

}

};

// создание двух подповедений с общими данными

DataStore ds=new DataStore();

ds.put("1"," 0 ");

ds.put("2"," 0 ");

Subtask1 st1 = new Subtask1(this,6000);

st1.setDataStore(ds);

s.addSubBehaviour(st1);

Subtask2 st2 = new Subtask2(this,3000);

st2.setDataStore(ds);

s.addSubBehaviour(st2);

addBehaviour(s);

}

 

 

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

private class Subtask1 extends TickerBehaviour

{

private int count=0;

 

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

public Subtask1(Agent agent, long timeout)

{

super(agent, timeout);

}

// Действие агента (печать циклы обоих подповедений)

protected void onTick()

{

if (count<5)

{

count++;

String str2=(String)getDataStore().get("2");

String str1=" "+count+" ";

getDataStore().put("1",str1);

System.out.println("Cycle of behaviour 1 ="+str1+

" Cycle of behaviour 2 ="+str2);

}

else super.stop();

}

}

 

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

private class Subtask2 extends TickerBehaviour

{

private int count=0;

 

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

public Subtask1(Agent agent, long timeout)

{

super(agent, timeout);

}

// Действие агента (печать циклы обоих подповедений)

protected void onTick()

{

if (count<5)

{

count++;

String str1=(String)getDataStore().get("1");

String str2=" "+count+" ";

getDataStore().put("2",str2);

System.out.println("Cycle of behaviour 1 ="+str1+

" Cycle of behaviour 2 ="+str2);

}

else super.stop();

}

}

}

 


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


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

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