Free Essay

Coisas

In:

Submitted By ricardoneves93
Words 5024
Pages 21
JADEX Tutorial
Agentes e Inteligência Artificial Distribuída MIEIC 4º Ano, 1º Semestre

Última atualização: 03/10/2012 jose.pedro.silva@fe.up.pt

Faculdade de Engenharia da Universidade do Porto

Setembro 2012

Índice
Plataforma Jadex ......................................................................................................................................3 Como lançar a plataforma ....................................................................................................................3 Active Components...............................................................................................................................6 Criação de Componentes .....................................................................................................................6 XML...................................................................................................................................................6 Java ...................................................................................................................................................7 BDI ........................................................................................................................................................7 Agentes.............................................................................................................................................7 Capabilities .......................................................................................................................................9 Eventos .......................................................................................................................................... 10 Expressões ..................................................................................................................................... 10 Aplicações.............................................................................................................................................. 11 Espaços .................................................................................................................................................. 17 Conceitos ........................................................................................................................................... 17 Espaço ........................................................................................................................................... 17 Observadores ................................................................................................................................ 17 Avaliador ....................................................................................................................................... 17 Exemplo ............................................................................................................................................. 18 Observadores e Avaliação ..................................................................................................................... 36 Materiais ............................................................................................................................................... 38 Referências ............................................................................................................................................ 38

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

2/38

Plataforma Jadex
A versão utilizada neste tutorial é 2.2. Todos os nomes usados que façam referência à versão poderão necessitar de serem alterados caso complete este tutorial com outra versão. Existe um bug com paths que contenham espaços nesta versão, problema que segundo os autores da plataforma será corrigido na versão 2.2.1.

Como lançar a plataforma
Para lançar a plataforma Jadex, abrindo o seu componente Jadex Control Center, basta abrir o Eclipse num workspace à escolha, e colocar dentro desse mesmo workspace a plataforma Jadex, que pode ser descarregada em: http://sourceforge.net/projects/jadex/files/latest/download No Eclipse, vamos criar uma Java Project:

Neste caso vamos dar o mesmo nome ao projeto que a pasta que já se encontra dentro do workspace.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

3/38

Clicando em Finish irá aparecer o projeto no Package Explorer do Eclipse.

´ Clique direito no projeto recém-criado, Run As, Java Application. Após aguardar alguns segundos, serão apresentadas as várias Java Applications disponíveis neste projeto. Para iniciarmos o Jadex Control Center deve escolher a aplicação Starter do jadex.base package.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

4/38

Deverá surgir o Jadex Control Center (JCC). Aqui já deverão surgir diversos jars que estão presentes na pasta lib do projeto criado. Caso o mesmo não aconteça, clique no botão “Add Path” (primeiro da toolbar a contar da esquerda) e adicione o pacote jadex-applications-micro-2.2.jar. Para teste, podemos correr o exemplo HelloWorld. Basta para isso escolher o ficheiro HelloWorldAgent.class, como ilustrado, e carregar em Start.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

5/38

A consola do Eclipse deverá mostrar o seguinte texto:

Pode correr outros restantes exemplos. Destes destacam-se os exemplos heatbugs e hunterprey. Estes exemplos por envolverem outros componentes, devem ser executados a partir dos respetivos *.application.xml.

Active Components
A abordagem através do conceito de Active Component (AC) integra os conceitos de agentes, serviços e componentes de forma a construir uma visão do mundo útil para a modelação e programação de vários tipos de sistemas distribuídos. SCA1 combina, de forma natural, a arquitetura orientada a objetos (SOA) com uma orientação ao componente, introduzindo comunicação através de serviços. AC parte da base de SCA, e progride na direção de agentes de software. A ideia é a de transformar componentes SCA passivos em provedores de serviços autónomos de forma a melhor refletir a realidade, como se pode perceber através da figura seguinte:

Criação de Componentes
XML Crie um ficheiro XML, com o nome ChatB1.component.xml. Neste ficheiro são definidas as propriedades de arranque do agente. A primeira propriedade é o nome que deve ser o mesmo do nome do ficheiro (à semelhança dos class files em Java). Adicionalmente pode ser adicionado o atributo package, neste caso “tutorial”.

Este ficheiro pode ser testado abrindo o JCC e adicionando ao path a pasta que contém o package
1

Service Component Architecture: http://en.wikipedia.org/wiki/Service_Component_Architecture

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

6/38

“tutorial”. Se não contiver erros, ao ser arrancado o componente deve aparecer no módulo Component Tree (parte inferior esquerda). Para terminar a sua execução pode fazer clique direito sobre o componente em execução e selecionar Kill component. Java Há vários tipos de componentes em Jadex, entre eles applications, BPMN workflows, micro e BDI agents. A maioria destes componentes é baseado em XML, contudo os micro agents utilizam apenas Java. Exemplo de um micro agent: package tutorial; import jadex.micro.MicroAgent; /** * Chat micro agent. */ public class ChatB2Agent extends MicroAgent { }

BDI
Para criar um agente BDI é necessário criar um ficheiro XML, contendo os parâmetros de arranque e definições do agente e um ficheiro em Java para cada plano especificado no ficheiro XML. Agentes Beliefs Conhecimento que o agente possui sobre si mesmo e sobre o ambiente. Podem ser representados por qualquer tipo de objeto Java. Podem ser acedidos ou alterados pelos planos utilizando a interface beliefbase, herdados de uma capability através da utilização do sufixo ref, ou referenciados em expressões. ... false ... ...

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

7/38

Goals Representam os objetivos, motivações, do agente e que irão levar ao despoletar de ações. Podem ser de quatro tipos:     Perform goal: algo que precisa ser feito, mas não necessariamente um objetivo; Archieve goal: representa um estado a atingir, não especificando o caminho para lá chegar; Query goal: semelhante ao Archieve Goal, mas que pretende obter informação; Maintain goal: pretende manter uma, ou mais propriedades sempre satisfeitas.

... value_of_parameter ... ... ... ...

Plans Descrevem como as ações do agente se processam. São selecionados de acordo com a ocorrência de eventos e goals. A seleção de plans é feita de forma automática pelo sistema. No Jadex os plans dividem-se em duas partes: um head declarado em XML e um body declarado em Java. Head ... ... ...

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

8/38

Body public class MyPlan extends Plan { public void body() { // Application code goes here. ... } public void passed() { // Clean-up code for plan success. ... } public void failed() { // Clean-up code for plan failure. ... getException().printStackTrace(); } public void aborted() { // Clean-up code for an aborted plan. ... System.out.println("Goal achieved? "+ isAbortedOnSuccess()); } }

Capabilities No Jadex uma capability representa um módulo de agente composto por beliefs, goals e plans. Esta funcionalidade permite a reutilização de código, podendo qualquer agente herdar uma ou mais capabilities. Para aceder aos beliefs ou goals de uma capability o agente tem que incluir uma referência para a mesma no seu ficheiro XML. Exemplo de uma capability: ... ... ... ...

No ficheiro do agente:

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

9/38

... ...

Eventos Os agentes têm a capacidade de reagir a eventos internos ou externos (mensagens). Os eventos internos são utilizados para sinalizar uma ocorrência dentro de um agente, enquanto as mensagens representam a comunicação entre dois, ou mais, agentes. Os eventos podem despoletar plans. Expressões As expressões permitem especificar valores dos parâmetros e beliefs numa sintaxe semelhante a SQL. Esta funcionalidade facilita a seleção de objetos.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

10/38

Aplicações
Quando se pretende construir um sistema que contenha mais do que um agente simples, é aconselhável que se invista um pouco mais de tempo para desenhar de forma correta a aplicação.

Ilustração 1 - Possível modelação de uma aplicação

Neste tutorial vamos proceder à construção de uma pequena aplicação, com base no exemplo de Ping/Pong visto nas aulas teóricas para a plataforma JADE. Esta aplicação faz apenas uso de micro agentes, promovendo a sua comunicação. O código fonte deste exemplo pode ser encontrado em: http://jpsfs.com/data/PingPong.zip 1. Criar um projeto Java, com o nome PingPong, através do Eclipse; 2. Criar uma pasta lib dentro do projeto, contendo a plataforma Jadex; 3. Adicionar a plataforma Jadex ao Java Build Path;

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

11/38

Ilustração 2 - [3] Adicionar o Jadex ao Java Build Path

4. Crie a classe PongAgent que herda da classe MicroAgent, no package ping. Este agente será o responsável por responder “Pong” a mensagens que contenham “Ping” como conteúdo. O código desta classe é o que se reproduz a seguir:

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

12/38

package ping; import jadex.bridge.service.types.message.MessageType; import jadex.micro.MicroAgent; import java.util.Map; public class PongAgent extends MicroAgent { public void messageArrived(Map msg, MessageType mt){ //Get the message performative String perf = (String)msg.get("performative"); switch (perf) { case "query-if": case "query-ref": //Check if the message contains a 'ping' if(msg.get("content").equals("ping")){ //Great! Message contains ping. Reply with Pong. Map reply = createReply(msg, mt); reply.put("content", "pong"); reply.put("performative", "inform"); reply.put("sender", getComponentIdentifier()); sendMessage(reply, mt); System.out.println("[" + this + "] Just sended a Pong!"); } break; default: getLogger().severe("Unknown Performative"); break; } } }

5. Crie agora o agente Ping. Este agente será o responsável por começar a comunicação. Para tal crie a classe PingAgent que herda de MicroAgent, no package ping. O código desta classe é o que se reproduz de seguida:

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

13/38

package ping; import import import import import import import import import import import import import import import import import jadex.bridge.ComponentIdentifier; jadex.bridge.IComponentIdentifier; jadex.bridge.IComponentStep; jadex.bridge.IInternalAccess; jadex.bridge.fipa.SFipa; jadex.bridge.service.types.message.MessageType; jadex.commons.SUtil; jadex.commons.future.Future; jadex.commons.future.IFuture; jadex.micro.MicroAgent; jadex.micro.annotation.Arguments; jadex.micro.annotation.Description; java.util.HashMap; java.util.HashSet; java.util.Map; java.util.Set; java.util.logging.Logger;

@Description("A simple agent that sends pings to another agent and waits for replies.") @Arguments({@jadex.micro.annotation.Argument(name="receiver", clazz=IComponentIdentifier.class, description="The component receiver of the ping target."), @jadex.micro.annotation.Argument(name="missed_max", clazz=int.class, description="Maximum number of allowed missed replies", defaultvalue="3"), @jadex.micro.annotation.Argument(name="timeout", clazz=long.class, description="Timeout for reply", defaultvalue="1000"), @jadex.micro.annotation.Argument(name="content", clazz=String.class, description="Ping message content", defaultvalue="\"ping\"")}) public class PingAgent extends MicroAgent { protected IComponentIdentifier receiver; protected int dif; protected Set sent; public IFuture executeBody() { final Future ret = new Future(); //Get the parameters this.receiver = ((IComponentIdentifier)getArgument("receiver")); final int missed_max = ((Number)getArgument("missed_max")).intValue(); final long timeout = ((Number)getArgument("timeout")).longValue(); final Object content = getArgument("content"); this.sent = new HashSet(); //Ping agent will start IComponentStep step = new IComponentStep() { public IFuture execute(IInternalAccess ia) { //After send "missed_max" if there is no answer, than terminate. if (PingAgent.this.dif > missed_max) { PingAgent.this.getLogger().warning("Ping target does not respond: " + PingAgent.this.receiver);

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

14/38

ret.setResult(null); } else { String convid = SUtil.createUniqueId(PingAgent.this.getAgentName()); Map msg = new HashMap(); msg.put("content", content); msg.put("performative", "query-if"); msg.put("conversation_id", convid); msg.put("receivers", new IComponentIdentifier[] { PingAgent.this.receiver }); PingAgent.this.dif += 1; PingAgent.this.sent.add(convid); PingAgent.this.sendMessage(msg, SFipa.FIPA_MESSAGE_TYPE); PingAgent.this.waitFor(timeout, this); } return IFuture.DONE; } }; if (this.receiver == null) { this.receiver = new ComponentIdentifier("Pong", getComponentIdentifier().getParent()); } scheduleStep(step); return ret; } public void messageArrived(Map msg, MessageType mt) { //If a message arrives, clear dif and missed messages. if (mt.equals(SFipa.FIPA_MESSAGE_TYPE)) { String convid = (String)msg.get("conversation_id"); if (this.sent.remove(convid)) { this.dif = 0; this.sent.clear(); System.out.println("[" + this + "] Just received a Pong!"); } } } }

O método executeBody() é executado a quando da criação do agente. É por isso então que neste método colocamos o envio da mensagem “Ping” para o agente Pong. Esta mensagem será enviada várias vezes, caso não se obtenha resposta o agente Ping cessará comunicações. 6. Falta neste momento criar a aplicação, isto é, agregar os dois agentes e lançar a sua execução. Para tal vamos proceder à criação do ficheiro PingPongScenario.application.xml. O ficheiro de definição da aplicação deve ter sempre um nome do tipo *.application.xml de forma a que ferramentas como o JCC possam identifica-los facilmente. Tutorial Jadex - Agentes e Inteligência Artificial Distribuída 15/38

Transcreve-se abaixo o conteúdo do ficheiro PingPongScenario.application.xml: The PingPong Scenario Starts Ping agent, and sends a Ping message to Pong Agent. Pong agent will reply with pong to Ping Agent. -->

No primeiro bloco de comentário do ficheiro temos colocado uma descrição da aplicação. Podem ser utilizadas tags HTLM para melhor dispor a informação. No nó applicationtype é declarado o modelo do XML (apesar de não ser obrigatório é recomendável que o modelo seja indicado para que ferramentas como o JCC possam avaliar o ficheiro), é ainda indicado o nome da aplicação e o pacote. No nó componenttypes são indicados quais os agentes disponíveis. Neste caso como ambos são micro agentes, indica-se o path para os class files respectivos, noutros caso será indicado o ficheiro XML que define o agente a incluir. No nó configurations inclui-se as configurações disponíveis para a nossa aplicação. Neste caso basta uma configuração, indicando que devem ser executados ambos os agentes. 7. Abra o JCC através do Eclipse como explicado no primeiro módulo deste tutorial e inclua o projeto no path. Execute de seguida a aplicação PingPongScenario.application.xml. Poderá ver na consola do Eclipse as mensagens a serem trocadas entre os dois agentes. Para um maior detalhe, poderá aceder ao módulo de debug do JCC (quarto ícone a contar da direita na toolbar).

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

16/38

Espaços
Aplicações que fazem uso de Agentes consistem não só em agentes mas também no ambiente em que estão situados.

Conceitos

Na figura acima é possível observar a divisão conceptual do suporte a espaços do Jadex, bem como a suas interligações. Este suporte a espaços consiste nos módulos de espaço (space), agentes (agents), observadores (observers) e avaliação (evaluators). Espaço No modelo do domínio são declarados os elementos constituintes do espaço. No ambiente do Jadex estes elementos são chamados de space objects que podem representar qualquer artefacto do mundo que se pretende descrever. Observadores Os observadores representam interfaces para olhar um ambiente. Tipicamente permite observar o estado atual do ambiente bem como dos seus objetos. Avaliador Para além do espaço em si mesmo e da sua visualização, um avaliador por, opcionalmente, ser configurado. Esta avaliação permite a recolha de dados específicos do espaço para que possa ser posteriormente analisada.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

17/38

Exemplo
Para este exemplo irá ser criado um pequeno mapa onde serão colocados objetos que serão considerados lixo. A tarefa de o agente será recuperar esse lixo. Este exemplo ter por base o exemplo GarbageCollector fornecido pela equipa do Jadex, onde foram feitas algumas simplificações para um melhor entendimento do mesmo. O código fonte deste exemplo pode ser encontrado em: http://jpsfs.com/data/GarbageCollector.zip Criar um projeto Java, com o nome GarbageCollector, através do Eclipse; 1. Criar uma pasta lib dentro do projeto, contendo a plataforma Jadex; 2. Adicionar a plataforma Jadex ao Java Build Path; 3. Vamos começar por construir o manifesto da nossa aplicação. Para tal criamos um ficheiro com o nome GarbageCollector.application.xml na pasta src. Este ficheiro, como já foi explicado anteriormente, define a nossa aplicação. Depois de dados os passos iniciais para a construção da nossa aplicação, vamos declarar o espaço dentro da nossa aplicação, dentro do nó extensiontypes, como se demonstra a seguir:

Neste caso declaramos um objeto da classe Grid2D, quadrado, de tamanho 10. 4. Agora que está criado o espaço, vamos declarar os objetos presentes nesse espaço. Para este exemplo temos objetos do tipo lixo (garbage), um robô que apanha o lixo (collector) e um robô para de desfazer do lixo (burner). $object.lastmove==null || $object.lastmove.equals("right")? null: $object.lastmove.equals("left")? New Vector3Double(Math.PI,0,Math.PI): $object.lastmove.equals("up")? new Vector3Double(0,0,Math.PI*3/2): new Vector3Double(0,0,Math.PI/2) 0 0

Neste caso, para tornar o comportamento do robô collector mais real, quando este muda o sentido da sua marcha é executada uma rotação do seu objeto, de forma a que ele esteja sempre virado para o local onde se dirige.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

18/38

5. Posto isto, falta ainda adicionar o “lixo” ao nosso mapa. Para tal criamos um processo que correrá de forma independente e que irá criar lixo ao longo do tempo em posições aleatórias. 5 "garbage" jadex.commons.SUtil.createHashMap( new String[]{Space2D.PROPERTY_POSITION}, new Object[]{((Space2D)$space).getRandomPosition(Vector2Int.ZERO)})

6. Para visualizarmos estes dados, é necessário criar uma dataview.

7. A próxima etapa será definir as perceções disponíveis no nosso mundo, nomeadamente os geradores dessas perceções e respetivos processadores dessas mesmas perceções.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

19/38

0 "vision_range" new Object[] { new String[]{"garbage_appeared", "add", "garbages"}, new String[]{"garbage_disappeared", "remove", "garbages"} } new Object[] { new String[]{"garbage_appeared", "add", "garbages"}, new String[]{"garbage_disappeared", "remove", "garbages"} }

8. De seguida definimos as ações que podem ser executadas no ambiente. Essas ações são o levantar, o pousar e o queimar o lixo, e depois a ação de o robô se deslocar até determinada posição.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

20/38

9. Passamos agora à definição da perspetiva, indicando os avatars para cada objeto. Definimos então os icons para o collector, para o burner, para o garbage, e o fundo, para se ter uma melhor perceção do espaço onde os agentes se movimentam.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

21/38

new Vector2Double($object.vision_range*2+1) $object.garbage!=null new Vector2Double($object.vision_range*2+1) $object.garbage!=null

10. Para terminar o nosso ambiente, falta declarar a forma como o espaço é atualizado: $space

11. Para concluir o nosso manifesto basta declarar os agentes e definir a configuração da aplicação.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

22/38

15

12. O passo seguinte é definirmos os nossos agentes. a. Agente Collector: i. O agente necessita de “acreditar” no espaço onde está inserido, ter consciência de si próprio, da posição onde se encontra, de saber o que significa “lixo”, de identificar uma localização com “lixo” e saber se ele próprio está ou não já a transportar lixo. Para tal identificamos os seus beliefs:

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

23/38

$scope.getParentAccess().getExtension("mygc2dspace") $beliefbase.env.getAvatar($scope.getComponentDescription(), $scope.getAgentModel().getFullName()) $beliefbase.myself.position $beliefbase.garbages.length>0 $beliefbase.myself.garbage!=null

ii. De seguida identificamos os seus objetivos. Aqui há que distinguir dois tipos de objetivos: os Archieve Goal (movimentar-se e pegar em “lixo”) e Perform Goal (verificar continuamente se existe “lixo” na sua posição).

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

24/38

$beliefbase.is_dirty && $beliefbase.env.getSpaceObjectsByGridPosition($beliefbase.pos, "burner")==null !$beliefbase.is_dirty && !$beliefbase.has_garbage

iii. Falta ainda indicar os seus planos, neste caso, indicando como deve proceder para atingir os objetivos traçados anteriormente.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

25/38

iv. Está apenas a faltar a configuração do agente, indicando qual o objetivo inicial.

b. Agente Burner: i. Na mesma base do Agente Collector, indicamos os beliefs:

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

26/38

$scope.getParentAccess().getExtension("mygc2dspace") $beliefbase.env.getAvatar($scope.getComponentDescription(), $scope.getAgentModel().getFullName()) $beliefbase.myself.position

ii. Os seus objetivos. Neste caso o nosso agente só terá dois objetivos, o de pegar no lixo presente no seu espaço, e o de o queimar. $garbage ISpaceObject $garbage && Arrays.asList($beliefbase.garbages).contains($garbage)

iii. E planos:

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

27/38

13. Como havia sido explicado anteriormente, os planos têm duas partes o head definido em XML e o body definido em Java. Estando já os planos identificados em cada um dos agentes, vamos então proceder à sua definição em Java. O nome do ficheiro de cada plano está definido no atributo class do nó plan/body. a. Plano take_plan: Este plano consiste em agarrar no “lixo”, levá-lo até ao agente Burner, pousar o “lixo” nessa posição e regressar à posição inicial. i. Primeiro criamos uma classe Java, com o nome TakePlanEnv que herda da classe Plan (jadex.bdi.runtime.Plan); ii. De seguida definimos o body do plano:

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

28/38

public void body() { Space2D grid = (Space2D)getBeliefbase().getBelief("env").getFact(); // Pickup the garbarge. IGoal pickup = createGoal("pick"); dispatchSubgoalAndWait(pickup); // Go to the burner. ISpaceObject myself = (ISpaceObject)getBeliefbase().getBelief("myself").getFact(); IVector2 oldpos = (IVector2)myself.getProperty(Space2D.PROPERTY_POSITION); IGoal go = createGoal("go"); ISpaceObject burner = grid.getNearestObject(oldpos, null, "burner"); IVector2 pos = (IVector2)burner.getProperty(Space2D.PROPERTY_POSITION); go.getParameter("pos").setValue(pos); dispatchSubgoalAndWait(go); // Put down the garbarge. Map params = new HashMap(); params.put(ISpaceAction.ACTOR_ID, getComponentDescription()); SyncResultListener srl = new SyncResultListener(); grid.performSpaceAction("drop", params, srl); srl.waitForResult(); // Go back. IGoal goback = createGoal("go"); goback.getParameter("pos").setValue(oldpos); dispatchSubgoalAndWait(goback); }

b. Plano checking_plan: O plano consiste em fazer movimentar o nosso agente, para que ele possa encontrar “lixo” para recolher. public void body() { Space2D env = (Space2D)getBeliefbase().getBelief("env").getFact(); IVector2 size = env.getAreaSize(); IVector2 mypos = (IVector2)getBeliefbase().getBelief("pos").getFact(); IVector2 newpos = computeNextPosition(mypos, size.getXAsInteger(), size.getYAsInteger()); //Moving from _mypos_ to _newpos_ IGoal go = createGoal("go"); go.getParameter("pos").setValue(newpos); dispatchSubgoalAndWait(go); //Moved to _newpos_ }

Este plano assenta na mesma estrutura do anterior, contudo neste caso precisamos de uma função auxiliar para calcular a próxima posição do nosso agente Collector. Vamos chamar computeNextPosition() a essa função.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

29/38

protected static IVector2 computeNextPosition(IVector2 pos, int sizex, int sizey) { // Go right in even lanes if(pos.getXAsInteger()+1=0 && pos.getYAsInteger()%2==1) { pos = new Vector2Int(pos.getXAsInteger()-1, pos.getYAsInteger()); } // Go down else else { pos = new Vector2Int(pos.getXAsInteger(), (pos.getYAsInteger()+1)%sizey); } return pos; }

c. Plano pick_up: Este plano consiste em levantar o “lixo” na posição atual. public void body() { IEnvironmentSpace env = (IEnvironmentSpace)getBeliefbase().getBelief("env").getFact(); Map params = new HashMap(); params.put(ISpaceAction.ACTOR_ID, getComponentDescription()); SyncResultListener srl = new SyncResultListener(); env.performSpaceAction("pickup", params, srl); if(!((Boolean)srl.waitForResult()).booleanValue()) fail(); }

d. Plano go: Este plano recebe como parâmetro a nova posição para onde o agente Collector se deve dirigir, e encarrega-se de transmitir uma ação ao agente de forma a que este se movimente.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

30/38

public void body() { Grid2D env = (Grid2D)getBeliefbase().getBelief("env").getFact(); //Get the position, as specified in the XML IVector2 target = (IVector2)getParameter("pos").getValue(); ISpaceObject myself = (ISpaceObject)getBeliefbase().getBelief("myself").getFact(); while(!target.equals(myself.getProperty(Space2D.PROPERTY_POSITION))) { String dir = null; IVector2 mypos = (IVector2)myself.getProperty(Space2D.PROPERTY_POSITION); IVector1 md = env.getShortestDirection(mypos.getX(), target.getX(), true); switch(md.getAsInteger()){ case 1: dir = GoAction.RIGHT; break; case -1: dir = GoAction.LEFT; break; default: md = env.getShortestDirection(mypos.getY(), target.getY(), false); switch(md.getAsInteger()){ case 1: dir = GoAction.DOWN; break; case -1: dir = GoAction.UP; break; } }

Map params = new HashMap(); params.put(GoAction.DIRECTION, dir); params.put(ISpaceAction.OBJECT_ID, env.getAvatar(getComponentDescription()).getId()); SyncResultListener srl = new SyncResultListener(); env.performSpaceAction("go", params, srl); srl.waitForResult(); } }

e. Plano burn_plan: Este plano diz respeito ao agente Burner, e visa queimar o “lixo” presente na posição deste agente.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

31/38

public void body() { IEnvironmentSpace env = (IEnvironmentSpace)getBeliefbase().getBelief("env").getFact(); // Pickup the garbarge. IGoal pickup = createGoal("pick"); dispatchSubgoalAndWait(pickup); SyncResultListener srl = new SyncResultListener(); Map params = new HashMap(); params.put(ISpaceAction.ACTOR_ID, getComponentDescription()); env.performSpaceAction("burn", params, srl); srl.waitForResult(); }

f.

Plano pickup_plan: Este plano consiste em pegar no “lixo” presente na posição do agente Burner.

public void body() { IEnvironmentSpace env = (IEnvironmentSpace)getBeliefbase().getBelief("env").getFact(); Map params = new HashMap(); params.put(ISpaceAction.ACTOR_ID, getComponentDescription()); SyncResultListener srl = new SyncResultListener(); env.performSpaceAction("pickup", params, srl); if(!((Boolean)srl.waitForResult()).booleanValue()) fail(); }

g. Como já devem ter reparado, para que visualmente as alterações se processem é necessário definir ações do ambiente. Os planos até agora desenvolvidos já invocam estas ações, faltando agora defini-las. i. Ação PickupWasteAction: Esta ação estende jadex.commons.SimplePropertyObject e implementa a interface ISpaceAction, sendo por isso necessário implementar o método perform(). Neste método vamos verificar se existe “lixo” na posição atual do agente, e em caso afirmativo eliminamos esse “lixo” (no caso de haver mais do que um elemento deste tipo, eliminamos apenas o primeiro).

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

32/38

/** * Performs the action. * @param parameters parameters for the action * @param space the environment space * @return action return value */ public Object perform(Map parameters, IEnvironmentSpace space) { boolean ret = false; Grid2D grid = (Grid2D)space; IComponentDescription owner = (IComponentDescription)parameters.get(ISpaceAction.ACTOR_ID); ISpaceObject so = grid.getAvatar(owner); assert so.getProperty("garbage") == null: so; Collection wastes = grid.getSpaceObjectsByGridPosition((IVector2)so.getPrope rty(Grid2D.PROPERTY_POSITION), "garbage"); ISpaceObject waste = (ISpaceObject)(wastes!=null? wastes.iterator().next(): null); if(wastes!=null) { wastes.remove(waste); so.setProperty("garbage", waste); grid.setPosition(waste.getId(), null); ret = true; } return ret? Boolean.TRUE: Boolean.FALSE; }

ii. Ação DropWastAction: Esta ação faz o oposto da ação anterior, pousando o “lixo” na posição atual.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

33/38

/** * Performs the action. * @param parameters parameters for the action * @param space the environment space * @return action return value */ public Object perform(Map parameters, IEnvironmentSpace space) { Grid2D grid = (Grid2D)space; IComponentDescription owner = (IComponentDescription)parameters.get(ISpaceAction.ACTOR_ID); ISpaceObject so = grid.getAvatar(owner); IVector2 pos = (IVector2)so.getProperty(Grid2D.PROPERTY_POSITION); //If there is no garbage raise exception (if that is the case this action shouldn't be called) assert so.getProperty("garbage") != null; ISpaceObject garb = (ISpaceObject)so.getProperty("garbage"); grid.setPosition(garb.getId(), pos); so.setProperty("garbage", null); return null; }

iii. Ação Go: Esta ação está encarregue de mover o agente no mapa, calculando a nova posição com base nos parâmetros fornecidos. public public public public public static static static static static final final final final final String String String String String UP = "up"; DOWN = "down"; LEFT = "left"; RIGHT = "right"; DIRECTION = "direction";

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

34/38

public Object perform(Map parameters, IEnvironmentSpace space) { String dir = Object oid = ISpaceObject IVector2 pos (String)parameters.get(DIRECTION); parameters.get(ISpaceAction.OBJECT_ID); obj = space.getSpaceObject(oid); = (IVector2)obj.getProperty(Space2D.PROPERTY_POSITION);

int px = pos.getXAsInteger(); int py = pos.getYAsInteger(); switch(dir){ case UP: pos = new break; case DOWN: pos = new break; case LEFT: pos = new break; case RIGHT: pos = new break; }

Vector2Int(px, py-1);

Vector2Int(px, py+1);

Vector2Int(px-1, py);

Vector2Int(px+1, py);

((Space2D)space).setPosition(oid, pos); obj.setProperty("lastmove", dir); return null; }

iv. Ação BurnWasteAction: Por fim só falta definir a ação de queimar o “lixo”, fazendo desaparecer o lixo do ecrã. public Object perform(Map parameters, IEnvironmentSpace space) { Grid2D grid = (Grid2D)space; IComponentDescription owner = (IComponentDescription)parameters.get(ISpaceAction.ACTOR_ID); ISpaceObject so = grid.getAvatar(owner); assert so.getProperty("garbage")!=null; ISpaceObject garb = (ISpaceObject)so.getProperty("garbage"); so.setProperty("garbage", null); space.destroySpaceObject(garb.getId()); return null; }

Resta-nos correr o nosso exemplo através do JCC, adicionando a pasta do bin do nosso projeto ao path e executando o ficheiro GarbageCollector.application.xml.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

35/38

Observadores e Avaliação
Neste módulo do tutorial vamo-nos focar em introduzir, no exemplo dado no capítulo anterior, capacidades ao observador já existente e um avaliador para tornar possível a recolha de alguns dados do espaço, para uma posterior análise. Uma descrição sobre o que são observadores e avaliadores pode ser encontrada nos tópicos Observadores e Avaliador deste tutorial. O código fonte pode ser encontrado em: http://jpsfs.com/data/GarbageCollector_evaluators.zip 1. Abra o projeto GarbageCollector criado no capítulo anterior deste tutorial; 2. No ficheiro GarbageCollector.application.xml adicione os seguintes imports: jadex.extension.envsupport.evaluation.* jadex.extension.envsupport.observer.gui.plugin.*

O primeiro diz respeito ao módulo de evaluators do Jadex e o segundo ao plugin para a interface gráfica, de forma a podermos visualizar os dados recolhidos. 3. Começamos por adicionar o parâmetro burned ao agente burner, para que aí fiquem registados o número de pedaços de lixo que este queimou. Para isso, procure o nó env:objecttype com o atributo name=”burner” e adicione o parâmetro burned. No final o agente deverá estar indicado da seguinte forma: 0 0

4. No interior do nó configurations/extensions/env:envspace/env:observers encontrará o observer definido no exemplo anterior. A este observer vamos adicionar um plugin que adicionará um gráfico à nossa janela. Vamos dar o nome ao gráfico de burned_chart (este nome será nome que iremos declarar no nó dataconsumer mais à frente). O observer ficará assim: ((AbstractChartDataConsumer)$space.getDataConsumer("burned_chart")).getChartPanel()

5. Vamos indicar ao nosso modelo quais são os dados disponíveis no espaço, e onde os podemos encontrar. Para isso adicionamos o nó env:dataproviders dentro do nó env:envspace name=”mygc2dspace”. $time $burner.burned

Definimos então um dataprovider com o nome garbage_burned, que tem como origem o Tutorial Jadex - Agentes e Inteligência Artificial Distribuída 36/38

agente burner e onde vamos retirar informação sobre o tempo decorrido e a quantidade de lixo queimado. 6. De seguida vamos adicionar os dataconsumers, adicionando o nó env:dataconsumers dentro do nó env:envspace name=”mygc2dspace”. Declaramos um dataconsumer do tipo XYChartDataConsumer, que vai buscar os dados ao dataprovider declarado no ponto anterior, e indica alguns dados para a construção do gráfico como a série que o compõe e as legendas dos eixos. "garbage_burned" "Garbage Burned" "Time" "Garbage" 100 false "Garbage" "time" "burned_amount"

Para este exemplo apenas foi declarado um dataconsumer mas mais poderão ser criados. 7. Para terminar, falta-nos atualizar o número de pedaços de lixo queimados pelo agente burner. Para tal vamos até ao ficheiro BurnWasteAction, e no final da função perform(), após destruir o objeto “lixo” do espaço, vamos atualizar o nosso contador. int burned = (int)so.getProperty("burned"); so.setProperty("burned", burned + 1);

8. Resta-nos testar o nosso exemplo no JCC. Vão reparar que surgiu uma nova opção contento o gráfico declarado.

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

37/38

Materiais





Aplicações, código fonte: http://jpsfs.com/data/PingPong.zip Espaços, código fonte: http://jpsfs.com/data/GarbageCollector.zip Observadores e Avaliação, código fonte: http://jpsfs.com/data/GarbageCollector_evaluators.zip

Referências
      [1] (20/09/2012) Jadex Documentation: http://www.activecomponents.org/bin/view/AC+Tutorial/01+Introduction [2] (20/09/2012) Jadex Documentation: http://www.activecomponents.org/bin/view/BDI+Tutorial/01+Introduction [3] (21/09/2012) Jadex Documentation: http://jadex-agents.informatik.unihamburg.de/xwiki/bin/view/Application+Guide/02+Simple+Applications [4] (21/09/2012) Jadex Documentation: http://jadex-agents.informatik.unihamburg.de/xwiki/bin/view/Environment+User+Guide/01+Introduction [5] (21/09/2012) SourceForge: http://sourceforge.net/projects/jadex/ [6] (21/09/2012) Bruno Ferreira, Carlos Babo, Hélder Moreira (2011): Determinação de Percursos Usando Agentes BDI

Tutorial Jadex - Agentes e Inteligência Artificial Distribuída

38/38

Similar Documents

Free Essay

Coisas

...02-10-2013 Psicologia da Publicidade Ano Letivo 2013/2014 Psicologia da Publicidade ● Horas lectivas: 3 horas semanais ● 4,5 ECTS ● Docente responsável: Ana Cristina Antunes aantunes@escs.ipl.pt Secção de Ciências Humanas: 1g1 Ano Letivo 2013/2014 Objetivos ● Analisar o papel dos factores explicativos de ordem psicológica na receção e descodificação da publicidade; • Analisar os factores e mecanismos que intervêm nos processos de persuasão usados pela publicidade; • Fomentar a capacidade de análise dos discentes sobre os principais processos e mecanismos utilizados pela publicidade para aumentar o seu grau de eficácia, para que estes possam orientar a sua intervenção futura enquanto profissionais das áreas de marketing e publicidade. Ano Letivo 2013/2014 1 02-10-2013 Avaliação • Teste de avaliação de conhecimentos – 50% • Trabalhos de grupo – 45% - assim distribuídos: 1. Trabalho de análise de um anúncio (25%) a entregar no fim do semestre; 2. Trabalhos de grupo efetuados em aula (5%); 3. Resposta a duas/três questões sobre anúncio fornecido por docente (10%); 4. Anúncio que exemplifique temática leccionada em aula (5%) •Outras formas de avaliação – 5% Ano Letivo 2013/2014 Bibliografia  Arnould,E., Price, L. & Zinkhan, G. (2004). Consumers. 2nd Ed. New York: McGrawHill.  Bagozzi, R., Gurhan-Canli, Z. & Priester, J. (2002). The social psychology of consumer behavior. Buckingham: United Kingdom Open University Press.  Brochand...

Words: 432 - Pages: 2

Free Essay

Filosofia Espírita Vol I

...João Nunes Maia Filosofia  Espírita  Volume 1 Pelo Espírito MIRAMEZ 2 – J oão Nunes Maia (pelo Espír ito MIRAMEZ)  FILOSOFIA ESPÍRITA – Volume 1  J oão Nunes Maia  Pelo Espírito Miramez  Digitalizada por:  L. Neilmoris  © 2009 – Brasil  www.luzespirita.org.br 3 – FILOSOFIA ESPÍRITA –Volume 1  João Nunes Maia  Filosofia  Espírita  Volume 1 Pelo Espírito MIRAMEZ 4 – J oão Nunes Maia (pelo Espír ito MIRAMEZ)  ÍNDICE  Nota da Editora — pag. 7  Prefácio — pag. 8  1 – A Suprema Inteligência — pag. 10  2 – A Grandeza do Infinito — pag. 12  3 – Definição Incompleta — pag. 14  4 – Existência de Deus — pag. 16  5 – Intuição Divina — pag. 18  6 – Produto da Educação — pag. 20  7 – A Matéria é Efeito — pag. 22  8 – O Que é o Acaso — pag. 24  9 – O Orgulho e o Egoísmo — pag. 26  10 – A Natureza de Deus — pag. 28  11 – O Mistério da Divindade — pag. 30  12 – Pensamentos Puros — pag. 32  13 – As Qualidades de Deus — pag. 34  14 – Unidade do Criador — pag. 36  15 – Visualização do Homem — pag. 38  16 – Deus é Espírito — pag. 40  17 – Não é Permitido — pag. 42  18 – O Véu se Levanta — pag. 44  19 – A Ciência Humana — pag. 46  20 – Revelações Espirituais — pag. 48  21 – Atividade de Deus — pag. 50  22 – Extensão da Matéria — pag. 52  23 – O Que é Espírito? — pag. 54  24 – Atributos do Espírito — pag. 56  25 – Independência do Espírito — pag. 58  26 – Espírito Livre — pag. 60  27 – Duas Forças e Um Comando — pag. 62  28 – A Missão da Palavra — pag. 64  29 – Propriedade da Matéria...

Words: 35660 - Pages: 143

Free Essay

Acreditar

...Porquê? Porque podemos conhecê-lo através de Jesus, a partir da sua história e da forma como morreu por nós. A Sagrada Escritura conta-nos essa história. Deus é o autor da Bíblia e 'escreve' a Palavra por intermédio do Espírito Santo nos apóstolos. Diz-nos como devemos viver. Exemplo práctico: 'Todos sabemos sempre quando estamos a fazer bem ou mal, isto porque existe um coisa dentro de nós e que nasceu connosco - a consciência. Podemos tê-la como uma 'Voz de Deus' que Este deixou dentro de nós quando nos criou. Por isso é que 'ouvimos' sempre uma vozinha cá dentro que nos diz que não estamos a fazer bem alguma coisa ou, quando estamos a fazer bem, nos sentimos melhores depois.' 'Outra coisa que Deus deixou dentro de cada Homem foi a necessidade de uma procura incessante Dele. Ou seja, todos os homens sempre procuraram algo maior que explicasse o que não conseguimos compreender. Por exemplo: os gregos e os romanos, que viveram antes de Cristo, também procuravam respostas e criavam 'deuses' para explicar certas coisas e para arranjar figuras acima deles próprios responsáveis por terem criado todas as coisas que eles conheciam (Natureza). Portanto, Deus, ao criar-nos, deixou dentro de nós um 'bichinho' para O procurarmos. Depois revelou-se mandando Jesus à Terra. 2)'Aceitar' O quê? A Palavra Porquê? Usando a 'razão', ou seja, pensando por nós e aprendendo a Palavra de Deus, conseguimos ver que faz sentido. E se faz sentido não podemos ficar indifrentes, temos de a aceitar...

Words: 377 - Pages: 2

Free Essay

Artigo

...SISTEMATIZAÇÃO DE APRENDIZAGEM I. IDENTIFIQUE OS ARGUMENTOS E REESCREVA-OS A PARTIR DE SUA(S) PREMISSA(S) E CONCLUSÃO. MODELO: Exemplo: Ele está respirando e, pois, está vivo. Premissa: Ele está vivo Conclusão: Logo, ele está respirando. 1. O triângulo ABC é eqüiângulo. Portanto, cada um de seus ângulos internos mede 60 graus. Premissa: cada ângulo do triangulo ABC mede 60 graus. Conclusão: logo, o triangulo ABC é eqüiângulo. 2. Há alguém que entende este documento? Premissa: 3. O composto ouro-argônio, provavelmente, não é produzido no laboratório, muito menos na natureza desde que é difícil fazer o argônio reagir com qualquer outra coisa e desde que o ouro, também, forma poucos compostos. Premissa: é difícil fazer o argônio reagir com qualquer outra coisa desde que o ouro também forma poucos compostos. Conclusão: Logo, o composto ouro-argônio provavelmente não é produzido no laboratório muito menos na natureza. 4. Ela prometeu levar o sobrinho ao cinema e, assim, é o que ela fará. Portanto, se não levá-lo ao cinema, ela estará definitivamente errada. Premissa: Ela estará definitivamente errada se não levar o sobrinho ao cinema. Conclusão: Logo, ela prometeu levá-lo. 5. Se eu não souber o que está errado, não posso ajudá-lo. Não sei que está errado, não posso ajudá-lo. Premissa: Não posso ajudá-lo, pois não sei o que está errado. Conclusão: Logo se não souber o que está errado não posso ajudá-lo. ...

Words: 704 - Pages: 3

Free Essay

Assim Falou Zarutustra

...Assim Falou Zaratustra Friedrich Nietzsche Tradução: Pietro Nassetti SABOTAGEM www.sabotagem.cjb.net Índice: Primeira Parte 4 − Preâmbulo de Zaratustra Os Discursos de Zaratustra 20 − Das três Transformações 22 − Das cátedras da virtude 25 − Dos crentes em Além−mundos 29 − Dos que desprezam o corpo 31 − Das alegrias e paixões 32 − Do pálido Delinqüente 35 − Ler e escrever 37 − Da árvore da montanha 40 − Dos pregadores da morte 42 − Da guerra e dos guerreiros 44 − Do novo ídolo 47 − Das moscas da praça pública 50 − Da castidade 52 − Do amigo 54 − Os mil objetos e o único objeto 56 − Do amor ao próximo 58 − Do caminho do criador 61 − A velha e a nova 64 − A picada da víbora 66 − Do filho do matrimônio 68 − Da morte livre 71 − Da virtude dadivosa Segunda Parte 76 − Criança do espelho 79 − Nas ilhas bem−aventuradas 82 − Dos compassivos 85 − Dos sacerdotes 88 − Dos virtuosos 91 − Da canalha 94 − Das tarântulas 98 − Dos sábios célebres 101 − O canto da noite 103 − O canto do baile 105 − O canto do sepulcro 109 − Da vitória sobre si mesmo 113 − Dos homens sublimes 116 − Do país da civilização 118 − Do imaculado conhecimento 121 − Dos doutos 124 − Dos poetas 127 − Dos grandes acontecimentos 131 − O adivinho 135 − Da redenção 140 − Da circunspecção humana 144 − A hora silenciosa Terceira Parte 147 − O viajante 151 − Da visão e do enigma 154 − Da beatitude involuntária 160 − Antes do nascer do sol 163 − Da virtude amesquinhadora 169 − No monte das oliveiras 172 − De passagem...

Words: 86178 - Pages: 345

Free Essay

Life

...refeicoes os ricos se mantiaham separados dos pobres era comum ficarem embriagados durante a ceia etc. Mas ainda assim Paulo teve uma attitude profetica de ver com Deus via. E como Deus via os corintios? Eram Santos, eram ricos na palavra e no conhecimento, o testemunho de Cristo era confirmado entre eles. 4- A. Genesis 11.6 diz que o povo era um e tinha o mesmo falar por isso nao havera restricao para tudo o que intentasem fazer. Paulo orienta os corintios dentro do mesmo principio, o resultado disso que seriam uma unidade. B.“ Uniao e ter muitas batatas no mesmo saco, enquanto unidade e quando as batas sao cozidas e amassadas tornando-se um pure dentro do prato”. C. O partido de Paulo; foi que os ganhou e os ensinou as primeiras coisas da fe. O partido de Apoloi um grande orador. O partido de Pedro aponta para os legalistas. O partido de Cristo, aponta para os superespirituais. 5- O argumento de Paulo que mostra a tolice das divisoes foi no vers. 1.3 Cristo nao estava divido no vers 1;10 nos mostra...

Words: 1852 - Pages: 8

Free Essay

Senior Students

...E: e não deu certo por que? P: Porque o calendário foi muito arrochado, tinha muito feriado no meio, e a gente tem q passar nosso conteúdo entendeu? Entao, igual nas minhas aulas, teve dois feriados na terça e eu dou aula na segunda que emendou junto com a terça e teve uns dois ou três feriados na quinta e eu dou aula na quinta, então eu, pelo menos, fiquei com o calendário muito apertado pra passar todo o conteúdo e essa questão da greve, eles apressaram a gente pra poder semestre para eles não perderem, porque na outra greve q teve eles perderam o semestre, então para não ficar injusto para eles e para eles não perderem o semestre, fizeram a gente fechar as notas antes, então ficou muito apertado para trabalhar esses temas, mas eu creio que semestre que vem eu acho que a gente consegue, porque tem menos feriados durante a semana e é uma questão que a gente tem q reunir todo mundo e a questão é ter a disponibilidade de todo mundo para poder reunir e planejar isso, mas o apoio pedagógico ajuda a gente demais quanto a isso e tem um pessoal da sociologia fazendo um projeto La também e vai mais pra esse lado das demandas sociais, então não está largado, não é porque não teve tempo, mas está tendo projetos dessas áreas, então a gente ta tentando trabalhar com isso, mas não todo mundo junto ainda, não nessa questão interdisciplinar, ainda não. E: E um outro principio também é a questão do trabalho, na educação de jovens e adultos o tema trabalho é importante, até você mesmo falou...

Words: 1647 - Pages: 7

Free Essay

Teorias Da Comunicação

...Teorias da Comunicação 1.1 Linguagem, língua, fala e discurso – Bibliografia: Júlia Kristeva – História da Linguagem; Adriano Duarte Rodrigues - Comunicação e Cultura; Introdução - A linguagem é um objecto de reflexão específico há vários anos, mas a ciência linguística é muito recente. - Uma das mais importantes características da nossa época é a concepção da linguagem como “chave” do Homem e da história social, como via de acesso às leis do funcionamento da sociedade. Hoje, a linguagem, cuja prática o Homem sempre dominou, é isolada e “colocada à distância” para ser captada enquanto objecto de conhecimento particular. - A relação do sujeito falante com a linguagem conheceu duas etapas: primeiro, pretendeuse conhecer o que já se sabia praticar (a linguagem), ou seja, obrigou-se o falante a dizer o modo como diz, o que permitiu ao Homem não se considerar já como entidade soberana mas analisar-se como um sistema falante na linguagem. Em seguida, projectou-se o conhecimento científico da linguagem sobre o conjunto da prática social. Linguagem… - Cada época e cada civilização vê a linguagem em função dos moldes (crenças, ideologia…) que a constituem a si própria. Assim, actualmente, são as visões da linguagem como sistema e os seus problemas de funcionamento que predominam. Linguagem, fala, língua, discurso… - Independentemente da época ou civilização, a linguagem é tomada como um sistema extremamente complexo. - Vista do exterior, a linguagem reveste-se de um carácter material diversificado:...

Words: 12687 - Pages: 51

Free Essay

Haha

...Encaminho o relatório do(a) aluno(a) Alberto Tadaho Hoshina referente ao projeto de pesquisa junto ao programa de Iniciação Científica na modalidade PIBIC no edital 2014/2015. (descrever o desempenho do aluno durante a pesquisa). Nome e assinatura do Orientador: _______________________________________________________ Prof. Dr. Guiou Kobayashi ALBERTO TADAHO HOSHINA Automação Elétrica Residencial em conjunto com a Internet das Coisas Trabalho submetido à Universidade Federal do ABC como parte dos requisitos para a conclusão do projeto de pesquisa de Iniciação Científica. Prof. Dr. Guiou Kobayashi Orientador Centro de Matemática, Computação e Cognição – UFABC Alberto Tadaho Hoshina Orientado Santo André - São Paulo 31 de agosto de 2015 LISTA DE FIGURAS Figura 1 - Exemplo de uma casa Inteligente com equipamentos inteligentes que usam os conceitos da Internet das Coisas [7] 6 Figura 2 - Infográfico "Automação Residencial e Internet das Coisas" (tradução livre) [9] 9 Figura 3 - Consumo de energia em residências privadas brasileiras (em %) [11] 10 Figura 4 - Curvas de consumo energético nas residências privadas brasileiras. [11] 10 Figura 5 - Interruptor simples para acionamento de uma lâmpada 11 Figura 6 - Acionamento de uma lâmpada com interruptores paralelos 12 Figura 7 - Sistema Integrado de acionamento remoto e manual 13 Figura 8 - Transmissor e receptor de rádio frequência...

Words: 5662 - Pages: 23

Free Essay

Exma. Senhora

...O mais difícil de se mudar numa organização são os modelos mentais. 1 Pensar ou enquadramento teórico: - o que é realmente importante em gestão; - o que é criar valor; - para que é que algumas empresas criam mais valor que outras; - quais são os principais modelos de criação de valor. Eficiência ≠ Eficácia. Eficiência é fazer as coisas bem. Eficácia é fazer as coisas certas. 2 Analisar: Quais são os determinantes internos e externos da estratégia. 3 Decidir ou formulação da estratégia: como se determina a orientação estratégica da empresa. 4 Mudar ou mudança estratégica: o que são contextos em mudança; como se consegue adaptar a contextos em mudança. Palavra-chave: 5 criação de valor; com que é que nos devemos preocupar em estratégia? É com a CV. Uma empresa é um pacote de projetos. Definição de estratégia e como é que chegamos à CV? Pensar; Analisar; Decidir e Mudar (puzzle). Gestão: processo de organização de recursos visando a obtenção de uma dada finalidade com eficiência e eficácia. Teoria das organizações: a que se deve o sucesso? Este pode ser absoluto ou relativo. Uma corrente diz que se deve essencialmente a fatores endógenos (internos), Escolha estratégica, e outra corrente diz que deve-se a fatores exógenos, Determinismo. Teoria Determinista (External Selection): O contexto externo consiste em factos, eventos, tendências que segundo o decisor têm 1 certa probabilidade de ocorrência e de impacto sobre a organização. A empresa de sucesso será aquela que...

Words: 340 - Pages: 2

Free Essay

Vinho Do Porto

...comércio e dos consumidores, outros produtores de vinho poderão aderir e acrescentar novos esforços no sentido da homogeneidade. . Estou convencido de que esta tendência ou esta proposta são bem-vindas. Não sendo uma regra absoluta, a verdade é que muitas categorias de vinho, nomeadamente as mais importantes e prestigiadas, assim como, também, as originárias das mais famosas regiões demarcadas, estabeleceram formatos e desenhos de garrafas comuns aos seus vinhos. A maior parte dos vinhos de Bordéus, da Borgonha e do Champanhe, por exemplo, adoptaram formas comuns de garrafa. Diante de certas garrafas de vinho, nem é preciso ler o rótulo para, imediatamente, pensarmos numa região de origem. Em Portugal, como talvez fosse de esperar, as coisas estão mais...

Words: 1747 - Pages: 7

Free Essay

Apolonio de Tiana

...APOLÔNIO DE TÍANA O Filósofo, Explorador e Reformador Social do Primeiro Século depois de Cristo G.R.S.Mead Edição de 1901 CONTEÚDO I II III IV V VI VII VIII IX X XI XII XIII XIV XV XVI XVII Introdução As Associações e Comunidades Religiosas do Primeiro Século Índia e Grécia O Apolônio das Primeiras Descrições Textos, Traduções e Literatura O Biógrafo de Apolônio Primeiros Anos As Viagens de Apolônio Nos Santuários dos Templos e Retiros Religiosos Os Gimnosofistas do Alto Egito Apolônio e os Governantes do Império Apolônio, o Profeta e Taumaturgo Seu Estilo de Vida Ele e Seu Círculo De Seus Ditos e Sermões De Suas Cartas Os Escritos de Apolônio I. INTRODUÇÃO Para o estudioso das origens do Cristianismo naturalmente não há período na história ocidental de maior interesse e importância do que o primeiro século de nossa era; e mesmo assim quão comparativamente pouco é conhecido sobre ele de natureza realmente definida e confiável. Se já é tão lamentável que nenhum escritor não-Cristão do primeiro século tenha tido intuição suficiente do futuro para registrar sequer uma só linha de informação referente ao nascimento e crescimento do que viria a ser a religião do mundo ocidental, igualmente desapontador é encontrar tão pouca informação definida sobre as condições sociais e religiosas gerais da época. Os governantes e as guerras do Império parecem ter constituído o interesse principal dos historiógrafos do século seguinte, e mesmo neste departamento de história política, ainda...

Words: 32292 - Pages: 130

Free Essay

De Maquiavel a Rousseau

...Marcelli Cipriani – 2010/1 Maquiavel (século XV – XVI) A Itália da época de Maquiavel era um laboratório para a formação do principado novo, a melhor época possível para a ação do príncipe. “Pensando comigo mesmo se hoje na Itália correriam tempos propícios à glória de um novo príncipe, e ainda, se haveria matéria a ensejar que um homem prudente e virtuoso introduzisse um estilo que o dignificasse e que beneficiasse à coletividade dos homens desse país, pareceu-me que ora concorrem tantas coisas em favor de um príncipe novo que até nem sei que outra época ter-lheia sido mais propícia.” A Itália possuía um poder religioso forte, que exercia poder temporal (Vaticano). Ao mesmo tempo, a Igreja era desafiada por pensamentos e argumentos eminentemente laicos e políticos, não religiosos – como acontecia no resto da Europa, através da reforma protestante, por exemplo. Não há, na Itália da época, uma unidade política e isso implicava uma sociedade sem garantias. A sociedade era mercantil, rica, próspera e sofria grande influência do Renascimento. O príncipe era obrigado a governar em um mundo perigoso, onde o solo era muito frágil, e ao mesmo tempo tinha que garantir a segurança. Para isso, era necessária por parte do Príncipe a arte de iludir. O que importava era o resultado, e a história deveria ser usada como ferramenta – afinal, não há ciência capaz de orientar um Príncipe, há apenas os elementos do passado. A concepção que Maquiavel tem da política é parecida com a de Santo Agostinho...

Words: 13382 - Pages: 54

Free Essay

Silêncio- Algures Aquém E Além Das Palavras

...Silêncio Algures,  aquém  e  além  das  palavras O  silêncio  na  comunicação  e  na  prática  psicanalítica  e  psicoterapêutica       Beatriz Horta Correia. Branco Silêncio (desenho) 2011 Isabel  Botelho Psicóloga,  MFaPA  e  MFaPP Email:isabelmbotelho@netcabo.pt Julho  de  2011 1 Introdução O  silêncio  está  presente  em  toda  a  comunicação.  Esta  é  atravessada  por  ele,  pontuada  por  ele.  O  que  não  equivale   a  dizer  que  o  tenhamos  adequadamente  em  consideração,  sendo  que,  muitas  das  vezes,  até  hipervalorizamos,  as   trocas  puramente  verbais  desconsiderando  o(os)  silêncio(s)  como  algo  que  se  pode  pôr  de  lado,  marginalizar  ou   analisar  à  parte.   O  silêncio,  como  pausa,    pode  ser  transcrito  no  texto  escrito  pelos  símbolos  gráRicos  da  “vírgula”,  do  “ponto”  ou   das  “reticências”,  mas  quantas  vezes  não  poderá  assumir  um  valor  de  “ponto  Rinal”,  de  “exclamação”,  ou  de   “interrogação”?  E  começa  já  aqui  a  complexidade  da  sua  conversão  em  linguagem  ou,  neste  caso,  de  simbologia   gráRica,...

Words: 16548 - Pages: 67

Free Essay

Business

...Introducao Todos deveriam vir a ser lifelong learner, pois estamos aprendendo o tempo todo algo diferente, seja com nososs filhos, na rua, experiencias passadas, em uma simples conversa…etc…o que realmente favorece o nosso conhecimento e a maneira que enxergamos a vida, os desafios, e os problemas que enfrentamos a todo instante. Vindo a ser lifelong learner nos desenvolvemos habilidades e conhecimentos para assim saber lidar com eles e obter sucesso. Lifelong learning Lifelong learning e uma maneira de voce estar sempre aprendendo,deixando a sua mente em constante aprendizado! Aberta a novos conhecimentos, novos desafios e novas conquistas, mantendo voce conectado ao mundo globalizado e as suas mudancas. Um dos grandes beneficios da aprendizagem ao longo da vida, e que estamos em constante aprendizado,o que temos que fazer e criar o habito de desenvolvimento pessoal continuo. Nao significa que so porque voce acabou seus estudos que nao pode continuar aprendendo. O mundo esta em constantes mudancas, tudo se aprimorando, e indespensavel para a competitividade o nosso conhecimento. Estamos sempre aprendendo algo novo, seja atraves de uma conversa, lendo um livro, assistindo tv, em todos os lugares. Em cada cirscustancias algo novo esta sempre acrescentando ao nosso conhecimento. Aprendemos com nossas experiencias passadas, tambem com as de outras pessoas. Com aprendizagem ao longo da vida torna voce ativo a todas a essas mudancas, no seu profissionalismo, nos...

Words: 1015 - Pages: 5