AIAD-firstreport.docx (1)

17
Evacuação com Agentes BDI 20152016 ei12065 Ana Moura [email protected] ei12083 David Caminha [email protected] Agentes e Inteligência Artificial Distribuída Mestrado Integrado em Engenharia Informática e Computação

description

Aida report

Transcript of AIAD-firstreport.docx (1)

Page 1: AIAD-firstreport.docx (1)

Evacuação com Agentes BDI

2015­2016

ei12065 ­ Ana Moura [email protected] ei12083 ­ David Caminha [email protected]

Agentes e Inteligência Artificial Distribuída

Mestrado Integrado em Engenharia Informática e Computação

Page 2: AIAD-firstreport.docx (1)

INDICE

INDICE DESCRIÇÃO DO CENÁRIO OBJETIVOS DO TRABALHO IDENTIFICAÇÃO E CARACTERIZAÇÃO DOS AGENTES

AGENTES INDIVIDUAIS PROTOCOLOS DE INTERAÇÃO PLATAFORMAS E FERRAMENTAS DIAGRAMA UML EXPERIÊNCIAS: BIBLIOGRAFIA SOFTWARE

1 AIAD ­ Evacuação com agentes BDI

Page 3: AIAD-firstreport.docx (1)

Enunciado

DESCRIÇÃO DO CENÁRIO

Ocorreu um acidente (incêndio, inundação, libertação gás,…) que obriga à evacuação dos indivíduos presentes no local. O local onde ocorre o acidente possui múltiplas saídas de emergência e também obstáculos. Os indivíduos encontram­se distribuídos pelo local ocupados nas suas tarefas usuais. Aquando da deteção do acidente, todos os indivíduos procuram atingir uma das saídas de emergência o mais rapidamente possível. Todos os agentes possuem uma mentalidade diferente podendo tomar decisões independentes e de formas diferentes.

OBJETIVOS DO TRABALHO

O programa deve tratar/simular diferentes situações possíveis de ocorrer: queda de um individuo, ferimentos, obstruções de passagem ou locais, enquanto simula uma população heterogénea a evacuar o local e a sua interação tanto com o espaço bem como os outros agentes.

O programa irá permitir a edição do local, saídas de emergência, sinalização, paredes e probabilidades de acontecer uma obstrução para além de permitir modificar a população presente no local e serviços de informação.

2 AIAD ­ Evacuação com agentes BDI

Page 4: AIAD-firstreport.docx (1)

Especificação

IDENTIFICAÇÃO E CARACTERIZAÇÃO DOS AGENTES Para criar uma melhor simulação iremos ter agentes com diferentes características representando diferentes pessoas ou grupos de pessoas.

1. AGENTES INDIVIDUAIS Security ­ Agentes com conhecimento do espaço, dão indicações / ajudam outros agentes, são os ultimo a abandonar o local do acidente não são agressivos e nunca caem.

Este agente vai ter as seguintes características: Position: Posição em que se encontra Speed: Velocidade de movimento MyDoors: Ordem das portas que levam à saída

Nota: Este agente tem força muito alta mas 0 de agressividade para que este não caia mas também não empurre.

Modo acção: Comportamento: Este agente não se movimenta da sua posição até todos

os agentes terem evacuado a sua sala, após isso ajuda quem consegue ajudar e movimenta­se para o seu próximo destino procurando a sua posição nessa nova sala. Repete este comportamento até chegar à sua saída final.

Estratégias: Visualiza todos os agentes presentes nessa sala e faz broadcast para cada um deles de quais as portas que estes devem seguir. Após todos os agentes possiveis de se mover saírem da sala procura todos os agentes down mas vivos ajuda­os a levantar­se diz­lhes as portas e segue para a porta seguinte. Quando chega a uma nova sala procura uma base livre e repete tudo para essa sala.

Processo de raciocinio em Pseudo­Código InRoom()

If(wanderesAliveInRoom) broadcastMyDoors

else

3 AIAD ­ Evacuação com agentes BDI

Page 5: AIAD-firstreport.docx (1)

if(wanderesAliveButDown) for(wanderesAliveButDown.size())

help.wandererAliveButDown else

moveNextDoor();

moveNextDoor() if(thereIsNextDoor)

goToMyNextDoor searchEmptyBase goToEmptyBase InRoom();

else End;

Wanderer ­ Este tipo de agente é o mais importante e vai se diferenciar em diferentes características como: idade, predisposição para a violência, predisposição para ajudar os outros, agilidade (quão rápido se movimentam) e predisposição para ouvir e aceitar indicações basiado no seu nivel de pânico.

Este agente vai ter as seguintes características: Position: Posição onde se encontra Health: Vida que o agente tem ­ se for menor que 1 o agente encontra­se

morto Speed: Velocidade de movimento Aggressiviness:Agressividade do agente ­ se for maior que 6 este agente

revela atitudes agressivas Panic: Valor de panico­ quando aumenta muito o agente pára de receber

indicações de seguranças Force: Força que o agente tem em caso de colisões, diminui com a sua

PhysicalCond KnowDoorsFromSecurity: Se for true o agente já recebeu ordem de

portas de um segurança e vai seguir apenas essas Down: Se estiver true o agente encontra­se sem possibilidade de se

movimentar Modo acção: Comportamento: O agente vai sempre tentar movimentar­se em direção a uma

porta aleatória que este veja sem que repita portas, se este for agressivo ele colide com outros agentes e tenta empurrá­los se não for colide mas mantém a sua posição até que consiga movimentar­se para onde quer sem empurrar ninguém.

4 AIAD ­ Evacuação com agentes BDI

Page 6: AIAD-firstreport.docx (1)

Estratégias: Se não tiver recebido e aceitado mensagens de um segurança e verifica à sua volta quais as portas que existem escolhe uma aleatoriamente e dirige­se para a mesma quando lá chega verifica as portas que vê (nota quando este chega a uma porta consegue ver se dentro da outra sala existe portas) e repete até que chegue a uma saída final.

Se um agente cair durante a simulação e não tiver morrido ele verifica constantemente se não existe ninguém em cima dele de modo a que se possa levantar.

Processo de raciocinio em Pseudo­Código

if(!KnowDoorsFromSecurity) VisibleDoors = GetVisibleDoors()

else VisibleDoors = SecurityTold

if(!visibleDoors.empty()) if(!KnowDoorsFromSecurity)

MoveToOneRandomDoor else

MoveToNextDoorSecurityTold

Se em qualquer momento este criar uma colisão este pára para a resolver do seguinte modo

If (heIsStronger) giveUpMyPosition Him.down = true

Else giveHimMyPosition Me.down = true

Se o agente ficar down ele apenas corre

If(NoOneOnTopOfMe)

getUp

5 AIAD ­ Evacuação com agentes BDI

Page 7: AIAD-firstreport.docx (1)

PROTOCOLOS DE INTERAÇÃO

Os agentes Security e Person interagem de modo a que os primeiros deem uma lista conjuntos de coordenadas tal que os segundos consigam encontrar a saída. O agente Person ao ouvir uma indicação pode ou aceitar as indicações ou rejeitá­las dependendo da sua implementação.

Os agentes Person e Person poderão ter várias interações: Person A está caído: Person B pode ajudar ou não. Person A ajuda Person B a levantar­se: Person A pára, Person B passa a

em pé. Person A ajuda Person B a movimentar: Person A perde velocidade,

Person B ganha velocidade(média entre ambos). Person A e Person B colidem: A empurra B, B perde velocidade e fica

caído, A continua o seu caminho. Person A e Person B colidem: A empurra B e B empurra A. Verifica­se a

força de ambos e ganha o que a tiver melhor. O que ganhar continua o seu caminho.

Person A e Person B colidem: Nenhum empurra. Um deles fica na posição esperada e o outro numa adjacente.

Person A e Person B são familia: Person A não passa uma saída,mesmo que local, sem Person B e vice­versa

6 AIAD ­ Evacuação com agentes BDI

Page 8: AIAD-firstreport.docx (1)

Desenvolvimento

PLATAFORMAS E FERRAMENTAS Ferramenta Jadex:

O Jadex BDI é um mecanismo de raciocínio orientado a agentes usado para escrever agentes a partir de codigo XML e Java. Os agentes representam componentes activos com capacidades de raciocinio individuais. Estes agentes são reactivos (respondem a eventos externos) e proactivos (agem conforme os seus proprios objectivos.

Plataformas: Eclipse Mars e Windows 10;

DIAGRAMA UML Nota: Também se encontram os ficheiros no projeto

7 AIAD ­ Evacuação com agentes BDI

Page 9: AIAD-firstreport.docx (1)

8 AIAD ­ Evacuação com agentes BDI

Page 10: AIAD-firstreport.docx (1)

9 AIAD ­ Evacuação com agentes BDI

Page 11: AIAD-firstreport.docx (1)

10 AIAD ­ Evacuação com agentes BDI

Page 12: AIAD-firstreport.docx (1)

11 AIAD ­ Evacuação com agentes BDI

Page 13: AIAD-firstreport.docx (1)

EXPERIÊNCIAS:

Foram corridas várias experiências da simulação para ver o impacto de um segurança, de aumento de agressividade e de número de agentes no mapa, bem como mais saídas os resultados correram como o esperado. Resultados:

O aumento de agressividade e de número de agentes em cena faz com que o número de mortos aumente no final.

A não presença de um segurança, na existência de várias opções de portas, faz com que o tempo que o último wanderer demora a chegar à saída aumente.

Se aos wanderers for tirada a capacidade de se levantar (ver sugestões de melhoramento) apenas com a presença do segurança é que estes se conseguem levantar e continuar caminho.

Conclusões

Como já referido as experiências que fizemos correram de acordo com as nossas expetativas simulando o que acreditamos ser o que acontece numa situação real.

O desenvolvimento do trabalho correu com alguns percalços, o facto de muitas das nossas funções serem assíncronas impossibilitou­nos de conseguir testar e repetir alguns casos que nos davam erro, para além disso a recepção das mensagens

12 AIAD ­ Evacuação com agentes BDI

Page 14: AIAD-firstreport.docx (1)

assíncronas muitas das vezes só eram recebidas muito depois do seu envio. O desenvolvimento do jadex também se tornou um desafio já que a falta disponibilidade de recursos e documentação fez com que as respostas a algumas dúvidas ficassem sempre aquém do que precisávamos.

No entanto podemos compreender o quando SMA era aplicável ao nosso trabalho já que para simular vários humanos a melhor forma de o fazer é com diferentes agentes.

Melhoramentos Com o desenvolvimento do projeto a escabilidade do mesmo aumento

exponencialmente, mas devido às limitações temporais foi necessário deixar algumas coisas de parte que gostariamos num tempo posterior implementá­las:

Wanderers não se conseguirem levantar após uma certa vida Existência de obstáculos (terrain) numa sala e os agentes darem a volta

para chegar ao seu destino

13 AIAD ­ Evacuação com agentes BDI

Page 15: AIAD-firstreport.docx (1)

Criação de mentalidades de grupo Melhorar pequenos bugs pouco frequentes que nos foi impossível

identificar Adicionar seguranças pelo SpaceBuilder

Recursos BIBLIOGRAFIA https://paginas.fe.up.pt/~eol/AIAD/jadex/doku.php, consultado em Novembro 2015 https://www.activecomponents.org/bin/view/About/New+Home, consultado em Novembro 2015 https://www.activecomponents.org/docs/jadex­2.4­javadoc/, consultado em Novembro 2015

SOFTWARE Jadex Eclipse

14 AIAD ­ Evacuação com agentes BDI

Page 16: AIAD-firstreport.docx (1)

GRUPO 50% cada Elemento do grupo

Manual A aplicação já possui um mapa pre defenido portanto corrê­la mostrará logo um caso. Se quiserem criar um mapa:

1. Abrir aplicação SpaceBuilder, 2. Clicar New Space 3. Adicionar os objetos disponíveis(Por ordem: wall, wanderer, exit,

terrain(ver sugestões de melhorias), blank, base para seguranças, exitFinal

4. Clicar em Save Space

15 AIAD ­ Evacuação com agentes BDI

Page 17: AIAD-firstreport.docx (1)

5. Guardar na pasta do projeto com nome simulationInfo Correr o programa jadex e observar os resultados. Nota: Devido às limitações da implementação do Securtiy este é necessário modificar programáticamente e não é possivel ter mais que um.

16 AIAD ­ Evacuação com agentes BDI