640 likes | 846 Views
AGENTES INTELIGENTES COM JAVA. Robison Cris Brito robison@utfpr.edu.br. Agenda. Agentes Sistemas Multi-Agentes BDI Organização de Agentes Estudo de Caso – Robocup O futuro da computação distribuída Conclusão. Visão que o mundo tem dos Agentes Inteligentes!. Mas o que é um Agente.
E N D
AGENTES INTELIGENTES COM JAVA Robison Cris Brito robison@utfpr.edu.br
Agenda • Agentes • Sistemas Multi-Agentes • BDI • Organização de Agentes • Estudo de Caso – Robocup • O futuro da computação distribuída • Conclusão
Mas o que é um Agente “Um agente é uma entidade lógica ou física à qual é atribuída uma certa missão que ela é capaz de cumprir de maneira autônoma e em coordenação com outros agentes.” A autonomia significa que um agente existe independente dos demais agentes e, independente também do problema a ser solucionado.
Características de um Agente • Adaptabilidade = aprender e evoluir • Situado = percebe mudança no ambiente • Comportamento Social = interagir com outros agentes • Mobilidade = migrar de plataforma
Tipos de Agentes • Agentes Reativos • Agentes Cognitivos
Agente Reativo • O conhecimento é implícito no código • Não possui memória • Não possui controle planejado das ações • Sociedades formados por muitos elementos • Exemplo: Colônia de Formigas
Agente Cognitivo • Considera-se que os agentes possuem um estado mental • Raciocinam para construir um plano de ações que leva a um objetivo pretendido • Agentes cognitivos tem autonomia funcional • Possuem representação de conhecimento explícita no código (conhecimento introspectivo) • As comunidades possuem poucos agentes
Características dos Agentes Cognitivos • Percepção – perceber informações do mundo • Ação – age com o intuito de atingir um objetivo • Comunicação – para coordenar ações • Representação – representação simbólica do que acredita ser verdade • Motivação – estado desejado para o ambiente • Deliberação – motivação + estado do ambiente = deliberaçào • Raciocínioe Aprendizagem – o agente deve aprender a aprender
O Pensamento Dentre os seguimentos da Inteligência Artificial, alguns são dedicados ao estudo de arquiteturas de agentes deliberativos baseados em estados mentais. Entre estes estados mentais, destacam-se as crenças, os desejos e as intenções.
O Pensamento Crenças, desejos, expectativa, capacidade,, intenções, temores, dúvidas, ódio, etc. são exemplos de estados intencionais. Os estados mentais humanos possuem vínculo com o mundo em que vivemos.
BDI – Belief, Desire, Intention Nesse modelo, as decisões são logicamente restritas pelas crenças dos agentes, com base nessas crenças o agente pode possuir desejos, um conjunto de desejos podem traçar uma meta para que o desejo seja satisfeita, esse conjunto de desejos é a intenção do agente.
Exemplo de Aplicativo • Jogador de Truco • Crenças • Desejos • Intenções
Linguagem para programar Agentes em BDI • AgentSpeak(L) • linguagem é uma extensão natural e elegante de programação em lógica • tem sido a abordagem predominante na implementação de agentes inteligentes ou “racionais”
E a organização social do agente??? • Assim como nas sociedades humanas, todos os sistemas multi agentes possuem alguma forma de organização, no entanto isto pode ser implícito ou informal. • Orientam como os membros desta população interagem uns com os outros. • Estas estruturas organizacionais influenciam as relações de autoridade, o fluxo de informações, a alocação de recursos, os padrões de coordenação e inúmeras outras características sistêmicas
Arquiteturas de Sistemas Multiagentes Hierarquia
Arquiteturas de Sistemas Multiagentes Federação
Arquiteturas de Sistemas Multiagentes Congregação
Arquiteturas de Sistemas Multiagentes Hologarquia
Arquiteturas de Sistemas Multiagentes Composição
Arquiteturas de Sistemas Multiagentes Sociedade
Organização Social dos Agentes (Moise+) Sistema Cognitivo BDI (Jason) Agente 1 Sistema Cognitivo BDI (Jason) Agente 2 Sistema Cognitivo BDI (Jason) Agente N ..... Percepção Ambiental Execução de Comandos (Java) Agente 1 Percepção Ambiental Execução de Comandos (Java) Agente 1 Percepção Ambiental Execução de Comandos (Java) Agente 1 ..... Ambiente de Testes e Execução Estrutura de um Sistema Completo
Por que Java • Java is Everywhere • Portabilidade • Segurança • Java – Independente de Plataforma
Exemplo de Aplicações Multi Agente • Controle de Tráfego Aéreo • Indústria • Gerência de Negócio • Interação Ser Humano – Computador • Ambientes de Aprendizagem • Entretenimento • Aplicações Distribuídas • Simulação Social
O que é o Robocup Projeto Internacional com objetivo de promover a Inteligência Artificial e Robótica. Envolvempesquisas em desenvolvimento de agentes autônomos, colaboração multi agente, elaboração de estratégias, pensamento em tempo real e robótica (sensores). “… by 2050, develop a team of fully autonomous humanoid robots that can win against the human world champion team in soccer…”
Categorias do Robocup • Simulation league • Small-size robot league (f-180) • Middle-size robot league (f-2000) • Four-legged robot league • Humanoid league This is one of the oldest fleet in RoboCupSoccer This league focuses on the issues of multi-agent cooperation with a hybrid centralized/distributed system. All sensors are on-board. Robots can use wireless networking to communicate Challenges include vision, self-localization, planning, and multi-agent coordination. Biped autonomous humanoid robots play in "penalty kick" and " 2 vs. 2" matches and "Technical Challenges".
Simulador • Pode ser baixado do site: http://www.robocup.org/ • Software Livre para plataforma Linux
Arquitetura do Robocup • Servidor Robocup • Monitor • Times
Time desenvolvido (Cliente 1) Formado por um ou mais Jogadores Time desenvolvido (Cliente 1) Formado por um ou mais Jogadores Time desenvolvido (Cliente 1) Formado por um ou mais Jogadores String String Time desenvolvido (Cliente 1) Formado por um ou mais Jogadores Time desenvolvido (Cliente 1) Formado por um ou mais Jogadores Time desenvolvido (Cliente 1) Formado por um ou mais Jogadores Arquitetura do Robocup Servidor Robocup (sem GUI) Protocolo: UDP Robocup Monitor Time desenvolvido (Cliente 1) Formado por um ou mais Jogadores
Posicionamento no campo 68 metros 105 metros
String recebida do Servidor (Percepções) (see 0 ((goal r) 66.7027 33) ((flag r t) 55.581 3) ((flag p r t) 42.4804 23) ((flag p r c) 53.7587 43) ((flag g r t) 64.7442 30) ((flag g r b) 68.8003 36) ((flag t 0) 3.60555 -33 0 0) ((flag t r 10) 13.1529 -8 0 0) ((flag t r 20) 23.0868 -4 0 0) ((flag t r 30) 33.0606 -3) ((flag t r 40) 43.0465 -2) ((flag t r 50) 53.0377 -2) ((flag r t 30) 60.9036 6) ((flag r t 20) 62.8431 15) ((flag r t 10) 66.2514 24) ((flag r 0) 70.9172 31) ((flag r b 10) 76.611 37) ((flag r b 20) 83.1219 43))
String recebida do Servidor (Percepções) (see 0 ((goal r) 66.7027 33) ((flag r t) 55.581 3) ((flag p r t) 42.4804 23) ((flag p r c) 53.7587 43) ((flag g r t) 64.7442 30) ((flag g r b) 68.8003 36) ((flag t 0) 3.60555 -33) ((flag t r 10) 13.1529 -8) ((flag t r 20) 23.0868 -4) ((flag t r 30) 33.0606 -3) ((flag t r 40) 43.0465 -2) ((flag t r 50) 53.0377 -2) ((flag r t 30) 60.9036 6) ((flag r t 20) 62.8431 15) ((flag r t 10) 66.2514 24) ((flag r 0) 70.9172 31) ((flag r b 10) 76.611 37) ((flag r b 20) 83.1219 43) ,,,,,,,,,, ((player 1) 34.33 10 ) ((ball) 1 0 ) )
São necessário definir percepções • Bola Perto • Bola Campo Ataque • Jogador com a Bola • Jogador mais próximo • Jogador menos marcado • Situação do Time • ......
Enviando mensagens para o servidor • init -> incluir um jogador no jogo • move -> movimentar um jogador no campo (antes do jogo começar) • dash -> fazer o jogador correr • kick -> chutar a bola • turn -> girar o jogador
... e definir ações • Passar Bola para o Jogador ..... • Chutar bola para o Gol • Cruzar para área adversária • Tirar Bola da defesa • Posicionar-se • Driblar • Correr com bola • ........