Tópicos de Projeto: Métodos de Computação Inteligente 2003-1 Jacques Robin CIn-UFPE Tópicos 1. CIn-Project: sistema de planejamento e gerencia de processo de desenvolvimento de software baseado em ontologias 2. Time de RoboCup Maracatu RFC 1.1 3. Agente explorador do Mundo do Wumpus 4. Simulador de Mesozoic Zoo in Orbit com interface de visualização e agente teste simples 5. Uma ontologia UML de corridas de carros com implementação parcial 6. Uma ontologia UML de jogos de bola com implementação parcial CIn-Project Editor de Modelos UML/OCL Ontologia Geral UML/OCL de Planejamento e Gerenciamento de Projetos Ontologia Geral Flora de Planejamento e Gerenciamento de Projetos Sub-Ontologia UML/OCL de Processos de Software Sub-Ontologia Flora de Processos de Software Sub-Ontologia UML/OCL do Software Desenvolvido Sub-Ontologia Flora do Software Desenvolvido Plano manual do projeto em UML/OCL Plano manual do projeto em Flora Plano manual do projeto anotado com problemas em UML/OCL Plano manual do projeto anotados com problemas em Flora Plano sugerido do projeto em UML/OCL Plano sugerido do projeto em Flora Planejador Base de dados do projeto em Flora GUI de aquisição de dados do projeto Verificador de Planos Máquina de Inferência Flora CIn-Project Sistema de planejamento e gerencia de projeto de software baseado em ontologias Exemplos de classes das ontologias gerais: Tarefas e sub-tarefas Papeis Recursos: humanos, hardware, software, comunicação, espaço físico Medidas: custo, desempenho, prazo Tecnologias Exemplos de relacionamentos das ontologias gerais: Dependências entre tarefas Alocação de recursos para cada sub-tarefa Desvios: atrasos, overhead de custo, qualidade insuficiente Ponto de partida: Procurar e reutilizar padrões de gerencia de projeto, processos de software e planejamento em IA Codificá-los em UML/OCL e em Flora Processo de desenvolvimento dirigido por ontologia de SMA baseado em conhecimento Requisitos: • Do SMA: Rs • Do simulador de ambiente: Re = f(Rs,As) • De cada agente: Ra = f(Rs,As) • De cada componente do simulador: Rec = f(Re,Ae) • De cada componente de cada agente: Rac = f(Ra,Aa) Testes: • Unitários de cada BC do simulador Tec = f(Ie,Re) • Integrados do simulador Te = f(Ie,Re) • Unitários de cada BC de cada agente Tac = f(Ia,Rac) • Integrados de cada agente Ta = f(Ia,Ra) • Integrado do SMA Ts = f(Ie,Ia,Rs) Modelagem: • Ontologia do domínio: O • Caracterização do ambiente: C = f(O) • Arquitetura social do SMA: As = f(C,Rs) • Arquitetura interna do simulador: Ae = f(C,Re) • Arquitetura interna de cada agente: Aa = f(C,Ra) • Modelagem de cada BC do simulador: Me = f(O,Rec) • Modelagem de cada BC de cada agente: Ma = f(O,Rac) Implementação: • Codificação ou aprendizagem de cada BC do simulador Ie = f(Me) • Codificação ou aprendizagem de cada BC de cada agente Ia = f(Ma) Engenharia dos requisitos: SMA e simulador SMA: Diagramas de casos de uso com restrições OCL Ligados a classes da ontologia Simulador do ambiente: Diagramas de casos de uso com restrições OCL Ligados a classes da ontologia: percepções e ações Funcionalidades desejáveis: Simulação a velocidade normal Interrupção para inspeção e simulação passo a passo Retroceder, mudar parâmetro ou ação de um agente, e recomeçar Geração de logs do estado do ambiente, das percepções e ações dos agentes Engenharia dos requisitos: agentes Diagramas de casos de uso com restrições OCL Ligados a classes da ontologia: percepções e ações Funcionalidades desejáveis: Raciocínio a velocidade normal Interrupção para inspeção e execução passo a passo Retroceder no raciocino, mudar crença, objetivo, plano ou regras e recomeçar Geração de logs do seu raciocínio e das suas percepções, crenças, objetivos, planos, utilidades e ações Engenharia dos requisitos: GUI do simulador e GUI dos agentes Diagramas de casos de uso ligados a classes da ontologia Funcionalidades desejáveis: Visualização da simulação a velocidade normal Interrupção para inspeção execução passo a passo GUI do simulador: Visualização dos estado do ambiente, das percepções e ações dos agentes Retroceder, mudar parâmetro ou dado do ambiente, ou ação ou percepção de um agente, e recomeçar GUI do agente: Visualização do raciocínio, das crenças, objetivos, planos, utilidades e regras do agente Retroceder, mudar crença, objetivo, plano, utilidade ou regra do agente, e recomeçar Durante execução, ou a partir dos logs armazenados pelo simulador ou agentes Modelagem da estrutura social do SMA Papeis: interfaces UML encapsulando serviços Restrições OCL sobre alocação de papeis Unidades sociais: pacotes UML Protocolos de comunicação e cooperação: diagramas de interação Agent UML (www.auml.org) Modelagem: do simulador e dos agentes Arquiteturas internas do simulador e dos agentes: Escolha dos componentes e bases de conhecimento Escolha da estrutura de controle entre componentes e bases de conhecimento Escolha do mecanismo de raciocínio de cada componente Escolha do método de aquisição do conhecimento para cada base Modelos do simulador e dos agentes: No caso da aquisição manual do conhecimento Diagramas de classes com restrições OCL estendendo a ontologia Diagramas de estado para comportamentos Implementação do simulador e dos agentes Para cada componente do simulador e de cada agente: Escolha da linguagem L de representação de conhecimento Escolha da máquina de inferência raciocinando com L Caso da aquisição manual do conhecimento: Codificação em L de cada elemento do modelo Caso da aquisição por aprendizagem de máquina: processo em espiral consistindo do seguintes passos: Codificação em L de um conjunto de exemplos de entrada-saída Escolha do algoritmo de aprendizagem Especificação do viés de aprendizagem Escolha da ferramenta de aprendizagem Ajuste dos parâmetros da ferramenta Treinamento com parte dos exemplos codificados Teste estatístico do conhecimento aprendido com outra parte dos exemplos Avaliação qualitativa do conhecimento aprendido Testes Unitários de cada BC do simulador Integrados do simulador Unitários de cada BC de cada agente Integrados de cada agente Integrado do SMA Análise das interações multiagente e do comportamentos coletivos emergentes Cada uma desses conjuntos de testes sub-divididos em: Testes funcionais de black-box Testes funcionais de glass-box Rastreamento do mecanismo de raciocínio da máquina de inferência Testes de desempenho Rastreamento do mecanismo de raciocínio da máquina de inferência Maracatu Robo Futebol Clube 1.1 Divisão softbots Exemplos de jogos: http://www.unikoblenz.de/agki/ftp/robocup/robolog/ flash/robologbrainstormers.swf http://www.unikoblenz.de/agki/ftp/robocup/robolog/ flash/LuebeckRoboLog.swf http://www.unikoblenz.de/agki/ftp/robocup/robolog/ flash/ATHRoboLog.swf Time A Soccer Monitor Time B Client 1 UDP/IP Client 11 Client 1 Soccer Server UDP/IP Client 11 Maracatu Robo Futebol Clube 1.1 Desenvolver nova versão de time de futebol de robô simulado do CIn para a competição internacional anual RoboCup (www.robocup.org) Versão 1.0 resultado de uma dissertação de mestrado Ontologia abrangente da RoboCup em UML/OCL Time de agentes autômatos Modelo do time em UML/OCL Implementação: Interpretação das percepção e atualização do modelo do ambiente reuso da biblioteca C do CMUnited, usada pelos Campões 1998-2002 Escolha das ações: Alto-nível: regras orientada a objetos Flora Baixo-nível: reuso da biblioteca C do CMUnited, usada pelos Campões 1998-2002 Maracatu Robo Futebol Clube 1.1 Extensões para versão 1.1: Agente cognitivo Jogadas defensivas: Posicionamento para marcação defensiva Escolha: marcar seu adversário designado x tentar interceptar a bola x marcar adversário livre com a bola Jogadas ofensivas sem a bola Posicionamento para sair da marcação do adversário Jogadas com a bola: Avaliação do melhor passe Escolha: passe x drible x chute Extensão do modelo: Diagramas de classes, restrições OCL, diagramas de estado Extensão da implementação: Classes Flora, regras Flora Avaliação: Partidas entre times diferentes por apenas um único aspecto Agente explorador do mundo do wumpus Cliente Agente Servidor Simulador Cliente Agente Flora: regras + JEOPS: regras + JEOPS: regras + objetos + relações objetos + procedimentos objetos + procedimentos XSB Prolog Java Java API XSB Prolog Java RMI Agente explorador do mundo do wumpus Cliente Agente Flora: regras + objetos + relações XSB Prolog API Flora Java Servidor Simulador Cliente Agente JEOPS: regras + JEOPS: regras + objetos + procedimentos objetos + procedimentos Java Java RMI Cálculo de eventos: • Atualizações do modelo Agente Simulador Agente YAP Prolog: regras + relações Simulador E-RES Eclipse: regras + restrições + relações do ambiente • Manutenção da verdade • Problema do frame • Problema da ramificação Planejamento: • Previsão de ambientes futuros Agente explorador do mundo do wumpus Arquitetura do Agente Agente Autômato Atualização dos Modelos Linguagem de Programação Agente Autômato Otimizador Cálculo de Eventos Não Monotônica Flora Prolog Agente Cognitivo Cálculo de Situações JEOPS Agente Cognitivo Otimizador E-RES Eclipse Agente explorador do mundo do wumpus Arquitetura do Agente Agente Deliberativo Previsão dos Modelos Futuros Agente Deliberativo Otimizador Planejador com Informação Parcial Atualização dos Modelos Cálculo de Situações Cálculo de Eventos Não Monotônica Linguagem de Programação JEOPS Flora Prolog E-RES Eclipse Agente explorador do mundo do wumpus Como gerar uma publicação a partir do projeto? Desenvolver e comparar desempenho de: Várias arquiteturas de agentes (mais fácil com E-RES) Várias técnicas de atualizações do modelo do ambientes (mais fácil com Flora) Vários linguagens de programação Desenvolver agente deliberativo em JEOPS ou Flora Welcome to MeZOORB MEsoZOic ZOO in ORBIT Jogo educativo para ensinar IA e fazer experimentos empíricos para pesquisa Supera as limitações do Mundo do Wumpus e da RoboCup: Características fixas do ambiente Algumas em comum Ausência de diversidade nos 2: Classes de terrenos: 1 ou 2 Classes de agentes: 1 Classes de objetos: 1 ou 2 Classes de modos de locomoção: 1 Classes de objetivos: 2 Áreas chaves da IA tratam especificamente da diversidade: Ontologias Representação do conhecimento OO Técnicas de classificação Inacessível discreto determinista não-episódico seqüencial mono-agente não diverso Inacessível contínuo estocástico não-episódico assíncrono multi-agentes não diverso Welcome to MeZOORB Requisitos: Todas as características do ambiente parametrizáveis Permite criar ambientes com qualquer combinação de características No entanto: simples de entender pós ancorado em referências universalmente difundidas Roteiro: Meets Versão 2.0 do Parque dos Dinossauros se mudou de uma ilha do Costa-Rica para uma estação orbital Por razão de segurança e verossimilhança Biomecânica: mega-fauna pré-histórica inviável na gravidade atual http://www.dinox.freeserve.co.uk/english/sizecomp.htm Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Teoria geológica da terra em expansão Welcome to Mezoorb Colônias espaciais orbitais Welcome to MeZOORB: diversidade Taxonomia de armas: • metralhadora • lança-chama • fuzil-arpão • torpedo Taxonomia de pessoas de diversas habilidades e comportamentos: • paleontólogo,hacker, Taxonomia de recursos: piloto,soldado, • líder,corajoso, altruísta • bebida,comida • energia,combustível • munições,peças • telecomunicações Taxonomia de veículos: • moto,jipe, Taxonomia de terrenos: Taxonomia de animais de diversas habilidades e comportamentos: • sensores,atuadores • tamanho,velocidade •corre,trepa,nada,voa • inteligência • agressividade • floresta,savana,deserto • mangue,rio,lagoa,mar • planície,montanha • caverna, construção caminhão-lagarta? • helicóptero,hidravião • hovercraft,lancha, jet-ski,submarino Taxonomia de obstáculos e passagem: • cercas,viveiros, • paredes,fossos • pontes,túneis,pistas • portas,escadas Welcome to MeZOORB: arquiteturas de software GUI API Java XML Socket BNJ: redes ? bayesianas + objetos + procedimentos Java Servidor Simulador Flora: regras + objetos + relações XSB Prolog Java • do ambiente • das percepções e ações dos agentes • dos modelos, objetivos e regras dos agentes • velocidade normal, parada, passo a passo, retroceder, mudar parâmetro, recomeçar. Cliente Agente Servidor Simulador JEOPS: regras Swing Visualização: API JEOPS XML Socket .net API JEOPS XML Socket API Flora XML API Flora XML Socket Socket JEOPS: regras BNJ: redes + objetos + ? bayesianas procedimentos Java Cliente Agente Flora: regras + objetos + relações XSB Prolog Servidor Simulador E-RES: planejamento + cálculo de eventos Eclipse: ~objetos + regras + restrições + relações Cliente Agente API Eclipse XML API Eclipse XML Socket Socket objetos + regras + relações CLP(BN): regras + relações + restrições + probabilidades YAP Prolog API CLP(BN) XML Socket .net API CLP(BN) XML Socket Servidor Simulador Logtalk: objetos + regras + relações ICL: regras + relações + probabilidades + utilidades YAP Prolog + cálculo de eventos Eclipse: ~objetos +regras + restrições + relações Cliente Agente Servidor Agente Logtalk: E-RES: planejamento CLP(BN): regras + relações + restrições + probabilidades Logtalk: objetos + regras + relações YAP Prolog Cliente Simulador API ICL XML API ICL XML Socket Socket ICL: regras + relações + probabilidades + utilidades Logtalk: objetos + regras + relações YAP Prolog GUI Servidor Simulador Swing Cliente Agente E-RES: planejamento Java E-RES: planejamento + cálculo de eventos Eclipse: ~objetos + regras + restrições + relações API Eclipse Java API Eclipse Java Servidor Simulador JEOPS: regras + BNJ: redes ? objetos + procedimentos bayesianas Java + cálculo de eventos Eclipse: ~objetos +regras + restrições + relações Cliente Agente JEOPS: regras + RMI objetos + procedimentos BNJ: redes bayesianas Java Servidor Simulador Flora: regras + ? Cliente Agente Flora: regras + objetos + relações API Flora-Java API Flora-Java objetos + relações XSB Prolog API XSB-Java API XSB-Java XSB Prolog Ontologia de corridas de carros e jogos de bola Motivação: Dois domínios estudo de caso para Intelligent educative hybrid game forge engineering Incorporate different game domain roles usually covered in different game classes (reflex, managerial, RPG) Any role can be filled by either a human player or a softbot Aggregate web-based edutainment material and chat rooms for the human players to cooperatively and adversarially improve their skills Rely on heavy duty physical modelling and AI Provide broad domain general simulation functionalities Allows human players and communities to use these functionalities to instanciate an infinite number of particular games Intelligent educative hybrid game forge engineering: the commercial With a Dreamnaut Game ForgeTM you don’t merely buy and play a single, fixed game created by others You and your friends design your own virtual world, define your own playing rules and then play along From tournament to tournament you help create a new tradition After each tournament you don’t merely improve your player skills, you tinker with the world and rules to improve the playability and fun of the very game Until you grow tired of it, and then invent a radically new one All this with a single software and without the need to program a line of code Why playing other people’s game when it’s now so easy to be the ringmaster? Team sport game forge site Generic team sport ontology Virtual team sport league collaborative design components: - Sport design - League design - Collaborative support Player community designed virtual team sport and league sub-ontology Specific team sport league component generator: -Game Simulation -League Simulation -Personality modelling - Physical modelling - Graphics - AI Player community designed team sport league components: -Game Simulation -League Simulation -Personality modelling - Physical modelling - Graphics - AI Generic team sport league components: -Game Simulation -League Simulation -Personality modelling - Physical modelling - Graphics - AI Virtual team sport league design GUI Virtual team sport league design collaboration GUI Web links about: - Team sports - Personality modelling - Physical modelling - Computer graphics - User interfaces - Game Playability - AI Virtual team sport game playing GUI Virtual team sport league management GUI Motorsports Game Forge Roles League president, board member Circuit owner, designer Sponsor marketing manager Team manager Chassis manufacturer, designer Engine manufacturer, designer Tyre manufacturer, designer Fuel manufacturer, designer Driver’s aid software manufacturer, designer (now this involves programming !) Driver Driver’s groupie (now this is a no brainer ) Example Motorsports Game Forged Instance: Formula 0 Endurance road course racing series: 3 hours single driver races, 24 hours 3 driver crew races To maximize overtaking, starting grid reverse of championship standing 1st 16pts, 2nd 10pts, 3rd 9pts ... 10th 2pts, 11th-20th: 1pt, fatest lap: 2pts, most lap led: 2pts Car design is freest possible within the broad goal of combining: Maximum speed (what did you expect?) Maximum crash safety Near zero pollution Near zero noise Near zero maintenance no pit stop for 3h races only 8 pit stops and single set of replacement tyres in 24h races Licensability and practicality as street car Two fully equipped seats, luggage compartment, standard parking spot fitting dimensions, bottom high enough to go over speed bumps Example Teamsports Game Forged Instance: RollerFrisbee Contact team sports fusionning elements from basketball, handball, soccer, american football, australian football, lacrosse, ultimate frisbee, roller hockey and roller derby. Teams of 10 players, 1 goalkeeper and 9 field skaters on switch retractable roller sneakers (to allow skating, running and jumping) Oval, entirely fenced rink, divided into a 95m long and 70m wide flat inner oval and a surrounding, 15m wide outer ring banked at 15o. A team scores points when it sends a bouncing frisbee into one part of the opponent goal, the lower, soccer-like part, the middle basket and the upper football-like part 9 different ways to score: handball goal (3pts) , soccer goal (5pts), close-range basket (2pts) , middle range basket (3pts), long-range basket (5pts), free-throw (1pt), close-range throw and catch (3pts), long-range throw and catch (5pts), long throw (2pts)