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

Sugestões de Assuntos de Projeto de Desenvolvimento de Software