Sérgio Fernando Grilate Louro. MAICC Sistema Multi-Agente para Controlo de Câmaras Inteligentes

Tamanho: px
Começar a partir da página:

Download "Sérgio Fernando Grilate Louro. MAICC Sistema Multi-Agente para Controlo de Câmaras Inteligentes"

Transcrição

1 Sérgio Fernando Grilate Louro MAICC Sistema Multi-Agente para Controlo de Câmaras Inteligentes Faculdade de Ciências, Economia e Engenharia Universidade do Porto 2004

2

3 Sérgio Fernando Grilate Louro MAICC Sistema Multi-Agente para Controlo de Câmaras Inteligentes Tese submetida à Faculdade de Ciências da Universidade do Porto Para obtenção do grau de Mestre em Inteligência Artificial e Computação sob orientação do Professor Doutor Eugénio da Costa Oliveira e pelo Professor Doutor Luís Paulo Reis Faculdade de Ciências, Economia e Engenharia Universidade do Porto 2004

4

5 Agradecimentos Este espaço é dedicado a todos aqueles que deram a sua contribuição para que este trabalho fosse realizado. A todos eles deixo aqui o meu sincero agradecimento. Em primeiro lugar agradeço ao Professor Doutor Eugénio da Costa Oliveira e ao Professor Doutor Luís Paulo Reis pela forma como me orientaram no meu trabalho, pela utilidade das suas recomendações e pela cordialidade e simpatia com que sempre me receberam. Quero igualmente expressar os meus agradecimentos ao corpo docente do Mestrado em Inteligência Artificial e Ciências da Computação da Universidade do Porto pela formação transmitida durante o ano lectivo de 2001/2002. Finalmente uma última palavra de agradecimento aos meus familiares e amigos pelo apoio e incentivo fornecido nos momentos certos.

6

7 VII Resumo A crescente evolução das capacidades de processamento gráfico dos computadores tem permitido a visualização de simulações tridimensionais cada vez mais realistas. No entanto essa evolução não tem sido acompanhada pelo desenvolvimento de metodologias de controlo da câmara que permitam a visualização realista de alguns cenários tridimensionais. A aproximação do sistema MAICC Muti Agent Intelligent Camera Control - concentra-se no estudo de um Sistema Multi-Agente utilizando o servidor soccerserver da liga simulada do campeonato do mundo de futebol robótico RoboCup como plataforma multi-agente de ensaios. O sistema tem como maior contribuição o desenvolvimento do Virtual3D, um visualizador tridimensional com acentuado realismo das animações e dos sons, e ainda de um Sistema Multi-Agente para controlo inteligente de câmara que permite a visualização de jogos em tempo real, ou em diferido, utilizando conceitos cinematográficos. Para integrar as novas metodologias de coordenação foi desenvolvida uma plataforma de comunicação, a MAS Multi Agent System, com o objectivo de facilitar e acelerar a comunicação entre os agentes do sistema. A comunicação assenta na linguagem CAMERA LANGUAGE, desenvolvida especificamente para o domínio da filmagem. O sistema MAICC permite o controlo automático e inteligente de um realizador e um conjunto de câmaras (previamente posicionadas no cenário) para dar ao espectador a melhor imagem de visualização do cenário como se de uma filmagem televisiva se tratasse. Desta forma, os objectivos do MAICC centram-se na implementação de um sistema descentralizado preparado para tratamento autónomo de uma filmagem com características de adaptabilidade no decorrer do jogo de futebol simulado. Em resumo, esta tese encerra uma proposta de SMA para o controlo de câmara inteligente para o cenário do futebol com capacidades cooperativas e adaptativas. Os resultados obtidos, através da utilização de um SMA associando conceitos gráficos e cinematográficos no controlo da câmara inteligente, confirmam uma melhoria da qualidade da visualização em relação aos visualizadores tradicionais, permitindo concluir que a coordenação entre agentes tem um papel fundamental na filmagem das regiões de interesse do cenário associadas a uma sincronização dos planos de filmagem. Palavras-chave: Agentes, Sistemas Multi-Agente, Computação Gráfica, Câmara Virtual, Cinematografia, Realizador, Operador, Futebol Robótico.

8

9 IX Abstract The growing capacities of computers graphical processing allow the visualization of more realistic three-dimensional simulations. However, that evolution was not followed by the camera control for the visualization of some three-dimensional scenarios. The MAICC (Multi Agent Intelligent Camera Control) system focus on the study of a multi agent system using the Soccerserver server of the RoboCup simulated league as a rehearsal multi agent platform. One of the biggest contributions of this system is the development of Virtual3D, a three-dimensional visualizer with very realistic animations and sounds and also the multi agent intelligent camera control system for the visualization of real time games, as well as differed, using cinematographic concepts. For the integration of this new coordination methodologies a communication platform was developed, the MAS (Multi Agent System), which has, as main goal, to facilitate and speed up the communication among the agents of the system. The communication has a Camera Language as its basis developed specifically for the filming domain. The MAICC system allows this way the intelligent and automatic control of a director and a group of cameras (previously positioned in the scenario) in order to give the spectator a best visualization image of the scenario as if it was a television transmission. The MAICC goals focus on the implementation of a decentralized system prepared for the autonomous treatment of a filming with adaptability characteristics during a simulated soccer match. This thesis has, in that sense, a proposal for a multi agent system for the control of intelligent cameras in a soccer scenario with cooperation and adaptation capacities. The results obtained, using a SMA and associating graphic and cinematographic concepts in controlling the intelligent camera, confirm a better visualization quality when comparing with the traditional visualizers. Therefore, we can conclude that the coordination between agents plays a fundamental role in the filming of the interest zones of the scenario associated with a synchronization of the filming plans. Keywords: Agents, Multi-Agent Systems, Computer Graphics, Virtual Camera, Cinematografy, Director, Cameraman, Robotic Soccer.

10

11 O futuro não precisa apenas ser imaginado: precisa ser construído. G. Hampel e C.K. Pralahad ( Competindo pelo Futuro ) sergio_louro@brainwork.pt Homepage :

12

13 XIII ÍNDICE 1 INTRODUÇÃO MOTIVAÇÃO E OBJECTIVOS ESTRUTURA DO TRABALHO COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA COMPUTAÇÃO GRÁFICA Breve história A visão humana Visualização científica e ambientes virtuais Câmara virtual e sua movimentação Animação e simulação física Parâmetros da câmara virtual em 3-Dimensões Pipeline de visualização tridimensional Bibliotecas gráficas CINEMATOGRAFIA Princípios da cinematografia A diferença entre câmaras reais e virtuais Restrições físicas da câmara CONCLUSÕES CONTROLO CÂMARAS INTELIGENTES INTRODUÇÃO SISTEMAS DE CÂMARAS INTELIGENTES Jim Blinn Sistema espacial Gleicher - Assistente para controlo automático de câmara CamDroid Sistema para controlo inteligente de câmara ConstraintCam - Controlo da câmara através de restrições DCCL Linguagem declarativa para controlo de câmara FILM - O Cinematógrafo virtual CONCLUSÕES SISTEMAS MULTI-AGENTE AGENTES Conceito de agente Contexto de um agente Arquitecturas de agentes Agentes emocionais ARQUITECTURAS BDI ( BELIEF-DESIRE-INTENTION )... 32

14 XIV Estados mentais (crenças, desejos e intenções) Arquitectura IRMA de Bratman Arquitectura PRS de Georgeff e Lansky Arquitectrua COSY de Burmeister e Sundermeyer Arquitectura genérica de Wooldridge SISTEMAS MULTI-AGENTE (SMA) O conceito de Sistema Multi-Agente Interacção e comunicação entre agentes Protocolos e níveis de comunicação Linguagens de comunicação Ontologias Metodologias de concepção de um SMA Avaliação de um sistema multi-agente CONCLUSÕES FUTEBOL ROBÓTICO DESCRIÇÃO GERAL DO FUTEBOL ROBÓTICO SIMULADO SERVIDOR SOCCERSERVER Descrição funcional do servidor Domínios do simulador O campo de jogo e os agentes Movimento e colisão de agentes Protocolo de comunicação Acções dos agentes no servidor Percepções dos agentes Informação auditiva Informação visual Informação física Estados de um jogo no servidor Regras do jogo DESCRIÇÃO DO SOCCER MONITOR Descrição geral Comunicação Informação proveniente do servidor Comandos para o servidor O Vídeo LogPlayer ARQUITECTURAS DE VISUALIZAÇÃO DO FUTEBOL ROBÓTICO ARQUITECTURAS DE VISUALIZAÇÃO 2D Monitor Tradicional Soccer Monitor... 58

15 XV Soccer Monitor - Klaus Dorer ( Univ. de Freiburg, Alemanha ) FrameView - Arthur Merke ( Univ. de Karlsruhe, Alemanha ) SoccerScope YowAI (Univ. Electro-Communications, Japão) SoccerDoctor - WrightEagle (Univ. Ciência e Tecnologia, China) TeamDesigner - FC Portugal (Univ. do Porto/Aveiro) RoboBase - John Sear (Univ. de Manchester, Inglaterra) Team Assistant SBC (Univ. Shahid Beheshti, Irão ) ARQUITECTURAS DE VISUALIZAÇÃO 3D Virtual RoboCup Universidade de Bielefeld, Alemanha Magic Box - Wright Eagle (Univ. Ciência e Tecnologia), China Robolog - Oliver Obst ( Universidade of Koblenz), Alemanha The Venue (The Cave) Univ. Vrije de Amesterdão, Holanda Caspian - (IUST Computer Engineering), Irão RA3DM - Isteam (Instituto Superior Técnico), Portugal Avan Universidade de Qazvin Islamic Azad, Irão CONCLUSÕES PROJECTO - MAICC O VISUALIZADOR 3D VIRTUAL3D Descrição Ambiente virtual Arquitectura do sistema Componente gráfica 3D Componente de agentes Motor de som tridimensional Componente de comunicação Movimento das animações 3D Posicionamento e descrição das câmaras utilizadas Menu principal do visualizador Virtual3D CONTROLO DE CÂMARA INTELIGENTE Descrição do modelo utilizado Transformação da visualização Modelo de Blinn Representação dos objectos Comandos de câmara e metódos sobre objectos Formalização de restrições de câmara Restrições relativas ao ambiente Restrições relativas ao objecto Restrições da projecção... 89

16 XVI Tarefas de visualização num jogo de futebol TOOLKIT MAS MULTI AGENT SYSTEM DESCRIÇÃO DOS AGENTES Agente realizador (CAgentDirector) Agente operador (CAgentCameraman) Agentes jogador (CAgentPlayer) Agente bola (CAgentBall) Agente analisador (CAgentStats) Agente público (CAgentPublic) Agente árbitro (CAgentRefree) A COMUNICAÇÃO DOS AGENTES DO SISTEMA MAICC Descrição da comunicação Sincronização das câmaras A Linguagem CAMERA LANGUAGE Requisitos e especificação formal da linguagem Regiões do cenário Períodos de tempo Intervenientes do cenário Estatísticas do cenário Configuração da câmara Intenções, qualidade e sincronismo da filmagem Prioridade de visualização Instruções do utilizador para o realizador Conclusões IMPLEMENTAÇÃO Ambiente de desenvolvimento Biblioteca gráfica CONCLUSÕES ANÁLISE DE RESULTADOS CENÁRIOS CRITÉRIOS DE AVALIAÇÃO RESULTADOS OBSERVADOS Cooperação entre agentes para suavizar planos Utilização de regiões de focagem definidas pelo realizador Qualidade de imagem versus sincronização CONCLUSÕES CONCLUSÃO E TRABALHOS FUTUROS CONCLUSÕES

17 XVII 8.2 TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS ANEXOS ANEXO A ENTREVISTA COM JOSÉ PAULO VALENTE ANEXO B SOCCERSERVER ESTADOS DO JOGO ANEXO C ESTRUTURA DOS FICHEIROS LOG DO SERVIDOR ANEXO D INFORMAÇÃO DO SERVIDOR PARA VISUALIZADOR ANEXO E ALGORITMO LOOKAT SEGUNDO JIMM BLINN ANEXO F ESTRUTURA DE DECISÃO DO AGENTE REALIZADOR ANEXO G SUAVIZAR MOVIMENTO DOS AGENTES NO CENÁRIO ANEXO H ALGORITMO DE FOCAGEM DO OPERADOR ANEXO I MENSAGENS DE AGENTES NO VIRTUAL3D ANEXO J TROCA DE MENSAGENS ENTRE AGENTES ANEXO L CRIAR O VOLUME DE VISUALIZAÇÃO ANEXO M MÉTODOS SOBRE O VOLUME DE VISUALIZAÇÃO ANEXO N RESULTADOS ANEXO O MANUAL DE UTILIZAÇÃO DO VIRTUAL3D ANEXO P - TERMINOLOGIA ANEXO Q - WEBSITES

18 XVIII LISTA DE FIGURAS FIGURA 2.1:MOVIMENTOS POSSÍVEIS DE UMA CÂMARA VIRTUAL... 7 FIGURA 2.2: PARÂMETROS DE CÂMARA VIRTUAL A 3D... 9 FIGURA 2.3:POSICIONAR CÂMARAS PELA LINHA DE INTERESSE [ARIJON, 76] FIGURA 3.1: ARQUITECTURA DO MODELO CAMDROID DE DUCKER FIGURA 3.2: MÓDULO GENÉRICO DE UMA CÂMARA DE DUCKER FIGURA 3.3: ARQUITECTURA CONSTRAINTCAM DE BARES FIGURA 3.4: ARQUITECTURA DO MODELO DCCL DE HE E CHRISTIANSON, FIGURA 3.5: ARQUITECTURA DO MODELO FILM DE AMERSON E KIME FIGURA 4.1: REPRESENTAÇÃO DE UM AGENTE DELIBERATIVO GENÉRICO FIGURA 4.2: REPRESENTAÇÃO DE UM AGENTE REACTIVO GENÉRICO FIGURA 4.3: ARQUITECTURA IRMA, SEGUNDO [BRATMAN, 87] FIGURA 4.4: ARQUITECTURA PRS, SEGUNDO [RAO E GEORGEFF, 92] FIGURA 4.5: ARQUITECTURA COSY, SEGUNDO [HADDADI, 96] FIGURA 4.6: ARQUITECTURA BDI GENÉRICA, SEGUNDO [WOOLDRIDGE, 99] FIGURA 4.7: ESTRUTURA DE UM SISTEMA MULTI-AGENTE FIGURA 4.8: AGENTE COM CAPACIDADES DE COMUNICAÇÃO FIGURA 5.1: ARQUITECTURA CLIENTE - SERVIDOR DO SOCCERSERVER FIGURA 5.2: REPRESENTAÇÃO DO JOGADOR E BOLA NO SOCCERSERVER FIGURA 5.3: VISUALIZAÇÃO NO SOCCER MONITOR FIGURA 5.4: VISUALIZADOR TRADICIONAL PARA LINUX DO SOCCER SERVER FIGURA 5.5: VISUALIZADOR SOCCER MONITOR DE KLAUS DORER FIGURA 5.6: VISUALIZADOR FRAMEVIEW DE ARTHUR MERKE FIGURA 5.7: VISUALIZADOR SOCCERSCOPE, JAPÃO FIGURA 5.8: VISUALIZADOR SOCCER DOCTOR DOS WRIGHTEAGLE, CHINA FIGURA 5.9: VISUALIZADOR TEAMDESIGNER, DAS UNIV. PORTO/AVEIRO FIGURA 5.10: VISUALIZADOR ROBOBASE DE JOHN SEAR, UNIV. MANCHESTER FIGURA 5.11: VISUALIZADOR TEAM ASSISTANT, UNIV. SHAHID BEHESHTI, IRÃO FIGURA 5.12: VISUALIZADOR VIRTUAL ROBOCUP DA UNIV. BIELEFED, ALEMANHA FIGURA 5.13: VISUALIZADOR MAGICBOX DOS WRIGHT EAGLE, CHINA FIGURA 5.14: VISUALIZADOR ROBOLOG DE OLIVER OBST, ALEMANHA FIGURA 5.15: VISUALIZADOR THE VENUE FIGURA 5.16: VISUALIZADOR CASPIAN, IUST, IRÃO FIGURA 5.17: VISUALIZADOR RA3DM DO IST, PORTUGAL FIGURA 5.18: IMAGENS DO VISUALIZADOR AVAN, IRÃO FIGURA 6.1: IMAGENS DO VISUALIZADOR 3D FIGURA 6.2: ARQUITECTURA DO SISTEMA DO VISUALIZADOR FIGURA 6.3: ANIMAÇÃO DO JOGADOR UTILIZANDO KEYFRAME NO VIRTUAL3D... 76

19 XIX FIGURA 6.4: POSICIONAMENTO DAS CÂMARAS NO ESTÁDIO JOSÉ DE ALVALADE FIGURA 6.5: IMAGENS DAS CÂMARAS REAIS NO VIRTUAL3D FIGURA 6.6: IMAGENS DAS CÂMARAS VIRTUAIS NO VIRTUAL3D FIGURA 6.7: VOLUME DE VISUALIZAÇÃO FIGURA 6.8: CAIXA DE COLISÃO (BOUNDINGBOX) DO JOGADOR E BOLA FIGURA 6.9: ARQUITECTURA MULTI AGENT SYSTEM (MAS) FIGURA 6.10: ESTRUTURA DO PROCESSAMENTO DE MENSAGENS FIGURA 6.11: ARQUITECTURA DO AGENTE REALIZADOR FIGURA 6.12: ARQUITECTURA DE COMUNICAÇÃO DO AGENTE OPERADOR FIGURA 6.13: DIAGRAMA DO MODELO DE MOVIMENTO DO JOGADOR FIGURA 6.14: ESTATÍSTICAS DO AGENTE ANALISADOR FIGURA 6.15: TROCA DE MENSAGENS ENTRE OS PRINCIPAIS AGENTES FIGURA 6.16: TROCA DE MENSAGENS ENTRE OS AGENTES (ACTORES) FIGURA 7.1: RESULTADOS DA COOPERAÇÃO ENTRE AGENTES PARA SUAVIZAR PLANOS 115 FIGURA 7.2: RESULTADOS DE UMA FILMAGEM COM MENOS CÂMARAS FIGURA 7.3: RESULTADOS DE UMA FILMAGEM COM E SEM REGIÕES FIGURA 7.4: QUALIDADE DE IMAGEM VERUS SINCRONIZAÇÃO DE CÂMARAS FIGURA 10.1: IMAGEM GERAL DO VISUALIZADOR VIRTUAL3D FIGURA 10.2: MENU PRINCIPAL COM A SUB-OPÇÕES DA OPÇÃO FILE FIGURA 10.3: SUB-OPÇÕES DA OPÇÃO LOGPLAYER FIGURA 10.4: BARRA DE TEMPO DO JOGO FIGURA 10.5: SUB-OPÇÕES DA OPÇÃO PRINCIPAL VIEW FIGURA 10.6: BOUNDING BOX DOS AGENTES DO CENÁRIO FIGURA 10.7: DEFINIÇÃO DE UMA REGIÃO DE FILMAGEM FIGURA 10.8: SUB-OPÇÕES DA OPÇÃO PRINCIPAL CAMERAS FIGURA 10.9: SUB-OPÇÕES DA OPÇÃO PRINCIPAL EFFECTS FIGURA 10.10: DIFERENTES TIPOS DE RELVADO DO VIRTUAL3D FIGURA 10.11: CAIXA COM A INFORMAÇÃO SOBRE O VISUALIZADOR FIGURA 10.12: VISUALIZAÇÃO DO CENÁRIO COM A CÂMARA [1],[3] E [5]

20 XX LISTA DE TABELAS TABELA 1: PARÂMETROS DOS AGENTES NO SOCCERSERVER TABELA 2: COMANDOS DE UMA CÂMARA TABELA 3: MÉTODOS SOBRE UM OBJECTO TABELA 4: RESTRIÇÕES DIRECTAS RELATIVAS AO AMBIENTE TABELA 5: RESTRIÇÕES RELATIVAS A UM OBJECTO TABELA 6:RESTRIÇÕES DIRECTAS DE PROJECÇÃO TABELA 7: TAREFAS DE VISUALIZAÇÃO NUM JOGO DE FUTEBOL TABELA 8: REGIÕES DEFINIDAS PELO AGENTE REALIZADOR TABELA 9: SISTEMA DE VALORES DO AGENTE PÚBLICO TABELA 10: COMPORTADO DO AGENTE ÁRBITRO (SITUAÇÃO/ACÇÃO) TABELA 11: CENÁRIOS PARA ANÁLISE DOS RESULTADOS TABELA 12: SOCCERSERVER ESTADOS DO JOGO TABELA 13: MENSAGENS DE COMUNICAÇÃO ENTRE AGENTES DO VIRTUAL3D TABELA 14: TROCA DE MENSAGENS ENTRE OS AGENTES TABELA 15: RESULTADOS DA COOPERAÇÃO ENTRE AGENTES PARA SUAVIZAR PLANOS. 150 TABELA 16: RESULTADOS DE UMA FILMAGEM COM MENOS CÂMARAS TABELA 17: RESULTADOS DE UMA FILMAGEM COM E SEM REGIÕES TABELA 18: QUALIDADE DE IMAGEM VERSUS SINCRONIZAÇÃO TABELA 19: TECLAS DE ATALHO DO VISUALIZADOR VIRTUAL3D

21 CAPÍTULO 1: INTRODUÇÃO 1 1 INTRODUÇÃO Neste capítulo apresentam-se as motivações que estiveram na origem deste trabalho, os diferentes objectivos que se pretendem alcançar e uma breve apresentação das metodologias utilizadas para alcançar esses mesmos objectivos. No fim do capítulo descreve-se a estrutura deste documento. 1.1 Motivação e Objectivos A motivação principal para a realização desta dissertação surge da importância crescente do paradigma dos Agentes e Sistemas Multi-Agente (SMA), sub-área da Inteligência Artificial Distribuída (IAD). Os domínios de problemas distribuídos são sempre um desafio motivador do ponto de vista de análise e da sua resolução. Contudo, só agora se dispõem de metodologias de comunicação, coordenação, negociação e cooperação de SMA que permitem abordar os problemas de uma forma mais eficiente e concreta. Por sua vez, a aplicação destes sistemas não é linear pois existem problemas concretos que se colocam a essa aplicação. Tal é devido às dimensões dos domínios considerados, e consequente surgimento de problemas de escala (número de intervenientes, tamanho, complexidade e número de interacções) que dificulta seriamente qualquer abordagem que tente ser sistemática. Para além disso, os próprios recursos e métodos de implementação revelam-se demasiado dependentes dos sistemas de execução estando sujeitos directamente a factores como as latências e tipo de comunicação, heterogeneidade dos sistemas, tipo de linguagem, etc. A importância crescente do RoboCup como domínio de teste e problema standard para a IAD e Robótica Inteligente constitui outra motivação forte deste trabalho. É sobre este domínio complexo (dinâmico, contínuo, inacessível e não determinístico) que surge a necessidade de visualizar a três dimensões todos os agentes (jogadores, bola) de uma forma objectiva e automática como se de uma filmagem televisiva se tratasse. A inexistência de um visualizador para jogos da liga simulada do RoboCup em que a qualidade gráfica, animações, sistema de som e em que o modelo de filmagem dos agentes do cenário não utilizasse modelos de controlo de câmara automatizado, foi outra motivação relevante para a implementação do sistema MAICC (Muti Agent Inteligent Camera Control) e consequentemente o visualizador tridimensional Virtual3D. O domínio desta tese reflecte assim o problema de filmagem automática e inteligente em cenários virtuais, nomeadamente do futebol robótico simulado. O MAICC surge como tentativa para criar um sistema de controlo de câmara inteligente onde existem operadores de câmara e um realizador, implicando necessariamente o uso de capacidades distribuídas, coordenação, cooperação e negociação. Tais capacidades podem ser realizadas com sucesso através de uma aproximação às metodologias de agente e sistemas Multi-Agente para o domínio em causa.

22 2 CAPÍTULO 1: INTRODUÇÃO Os objectivos específicos deste trabalho são os seguintes: Estudo dos conceitos de agente, arquitecturas BDI, Sistemas Multi-Agente e de metodologias de coordenação e cooperação entre agentes inteligentes autónomos; Implementação de esquemas de decisão a um nível conceptual, descentralizado e distribuído, através dos agentes e SMA, e ortogonais às suas implementações; Estudo do domínio do controlo de câmaras inteligentes nas variadas vertentes, incluindo os vários modelos de implementação propostos pelos vários autores e os visualizadores a duas e três dimensões associados ao futebol robótico simulado; Definição de linguagens que permitam a coordenação de agentes autónomos nos domínios do controlo de câmara inteligentes (CAMERA LANGUAGE); Integração gráfica de sistemas virtuais com agentes e controlo de câmara; Implementação de um visualizador de futebol robótico simulado que permita a visualização através de controlo de câmara inteligente; Generalização, com a devida limitação, do sistema de coordenação e comunicação de forma a serem aplicáveis a outros domínios de visualização. Implementação de uma plataforma de comunicação para agentes que apresente características de simplicidade na integração dos agentes em cenários dinâmicos e que corresponda as exigências computacionais para o processamento gráfico. Os objectivos propostos constituem uma originalidade na realização de uma filmagem constituída por arquitectura multi-agente com a respectiva coordenação dos intervenientes utilizando um controlo de câmara inteligente num cenário completamente gráfico. Os objectivos anteriores foram todos cumpridos no trabalho proposto, sendo o resultado final um visualização imersiva pelos espectadores como se de uma filmagem televisiva se tratasse num cenário de futebol, em que existe um completa coordenação entre os agentes para a realização da filmagem. 1.2 Estrutura do trabalho Este trabalho encontra-se estruturado em oito capítulos dos quais o primeiro é composto por esta introdução ao trabalho. O capítulo dois apresenta as noções básicas de computação gráfica e os conceitos de cinematografia mais relevantes para o trabalho. No capítulo três é analisada a investigação realizada no âmbito do controlo de câmara inteligente, os seus primórdios e evolução até ao estado-da-arte dos sistemas actuais. O capítulo quatro apresenta a noção de agente computacional e os sistemas compostos por agentes, designados vulgarmente por Sistemas Multi-Agente. Na noção de agente são

23 CAPÍTULO 1: INTRODUÇÃO 3 discutidas as definições apresentadas por diferentes autores. São também analisadas as características dos ambientes em que estes operam e será efectuada uma análise detalhada das arquitecturas mais comuns de agentes autónomos. A arquitectura de agente BDI ( Belief-Desire-Intention ) será apresentada do ponto de vista de diversos autores. Nos Sistemas Multi-Agente será feita uma distinção entre o conceito de SMA e a Inteligência Artificial Distribuída apresentando as características comuns de um SMA. Será abordado o conceito de comunicação de alto nível, tipos de comunicação, protocolos e níveis de comunicação e linguagens entre os agentes inseridos no SMA. O capítulo conclui-se com uma apresentação de metodologias para concepção de um SMA e como avaliar a concepção do mesmo. O capítulo cinco analisa o domínio do futebol robótico. Na descrição, para além de uma análise da envolvente do futebol robótico e das competições internacionais RoboCup, é dada particular relevância à descrição do simulador de futebol robótico soccerserver e ao monitor de visualização soccer monitor. Este simulador e monitor são descritos ao detalhe de forma a facilitar a compreensão dos capítulos seguintes da tese. O capítulo conclui-se com uma análise dos diferentes visualizadores a duas e três dimensões desenvolvidos para este domínio do Futebol Robótico, apresentado os seus autores e suas funcionalidades, focadas sempre para o controlo das câmaras. No capítulo seis descreve-se o modelo MAICC, proposto para controlo de câmara inteligente. Este capítulo contém a maioria das contribuições científicas originais da tese. É feita uma descrição ao visualizador virtual3d desenvolvido para testar o modelo, sendo apresentada a arquitectura funcional do visualizador. No controlo de câmara inteligente são analisados os métodos e modelos para concepção do modelo MAICC. De seguida é descrita a arquitectura dos agentes do modelo, assim como o seu estado no mundo, as suas capacidades individuais e os seus mecanismos de decisão. É feita a análise à plataforma desenvolvida de comunicação MAS (Multi Agent System) para responder as exigências do desempenho da aplicação entre os agentes e o ambiente. É dado particular destaque à linguagem de comunicação que permite a coordenação entre o realizador e os operadores de câmara para controlo da visualização. O capítulo conclui-se com os detalhes de implementação do modelo. O capítulo sete analisa os resultados obtidos, em diversos cenário e utilizando diversos critérios de avaliação, pelo sistema de controlo de câmara desenvolvido. O oitavo e último capítulo apresentam as conclusões gerais deste trabalho e propõem algumas perspectivas de desenvolvimentos futuros no âmbito dos Sistemas Multi-Agente, controlo de câmara inteligentes e computação gráfica.

24 4 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA 2 COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA Neste capítulo pretende-se efectuar uma abordagem global da computação gráfica a três dimensões e dos diferentes conceitos de cinematografia, pretendendo-se assim dar a conhecer a terminologia gráfica a ser usada no resto desta tese. Para uma descrição mais completa sobre computação gráfica pode-se consultar variados textos, dos quais se destacam [Foley et al., 00] [Angel, 02]. Para uma descrição mais aprofundada sobre cinematografia pode-se consultar [Mascelli, 98]. 2.1 COMPUTAÇÃO GRÁFICA Tipicamente, a computação gráfica a três dimensões tenta simular o processo de visualização do mundo real, sendo os objectos modelados geometricamente num sistema de coordenadas devidamente normalizado. O efeito de luz nas superfícies dos objectos é simulado através de transformação das superfícies a três dimensões em planos a duas dimensões. O conceito geral da computação gráfica é a ideia de uma pipeline gráfico 1, em que a entrada de dados para visualização é uma cena gráfica a 3-Dimensões constituída por objectos (conjunto de polígonos), câmaras e luzes, em que a saída dos dados é uma imagem da cena a 2-Dimensões para ser apresentada no ecrã Breve história Existe um consenso entre os investigadores da história da Computação Gráfica que o primeiro computador a possuir recursos gráficos de visualização de dados numéricos foi o Whirlwind, desenvolvido pelo MIT 2 nos anos 50. Este equipamento foi desenvolvido com finalidades académicas e também possivelmente militares, pois no final da década o comando de defesa aérea dos Estados Unidos desenvolveu um sistema de monitorização e controle dos voos, SAGE (Semi-Automatic Ground Environment), que convertia as informações capturadas pelo radar em imagem num tubo de raios catódicos (na época uma invenção recente). Uma das mais importantes publicações de Computação Gráfica, foi a tese de Ivan Sutherland (Sketchpad Machine Graphical Communication System), no início da década de 60, que chamou a atenção das indústrias automobilísticas e aeroespaciais americanas. Os conceitos de estruturação de dados, bem como o núcleo da noção de Computação Gráfica interactiva, levaram a empresa General Motors a desenvolver o precursor dos primeiros programas de desenho assistido por computador, designado de CAD (Computer Aided Design). 1 Pipeline gráfico Processo básico de gerar imagens por computador para aplicações em tempo real ou interactivas. 2 MIT - Massachusetts Institute of Tecnology ( )

25 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA 5 Na década de 70 um outro factor foi fundamental para o desenvolvimento da Computação Gráfica: o surgimento da tecnologia de circuitos integrados. Isto permitiu a popularização das máquinas, em especial dos PC s (Personal Computer). Uma grande contribuição para o desenvolvimento da computação gráfica foi dada na década de 80, derivado ao surgimento e queda dos preços das estações de trabalho (workstations da SUN e Silicon Graphics), e dos primeiros dispositivos para interação a três dimensões. Para finalizar, da década de 90 até aos nossos dias, houve um crescimento das capacidades de processamento e funcionalidades das estações gráficas e começaram a ser popularizados os dispositivos para integração em 3D (realidade virtual) A visão humana Grande parte do avanço na Computação Gráfica deve-se ao facto de que na maior parte dos sistemas informáticos os resultados são mostrados visualmente. Sendo assim, o sistema visual humano torna-se a principal interface para os resultados [Myin, 00]. A actual literatura sobre a visão humana está muito distante de abranger o seu funcionamento ao detalhe [Gibson, 76]. O campo de visão do ser humano é quase um hemisfério, mas só uma pequena região central deste campo é bastante perceptível. As regiões exteriores do campo de visão são apenas sensíveis ao movimento. O resultado é que os humanos só podem estar atentos a uma pequena região de uma imagem, embora o olhar possa trocar a atenção rapidamente para outra nova região da imagem. A implicação cinematográfica é que o realizador, quando está a editar o filme, tem de levar em conta que o espectador só está atento a uma única região da imagem e não a várias em simultâneo. Os Humanos têm a capacidade de modelar mentalmente o mundo em seu redor, incluindo a sua orientação. Mudanças no campo de visão repentinamente produzem uma contradição com o modelo metal induzindo a desconforto e desorientação nos assuntos. Isto coloca limites na forma como devem ser editadas as imagens de um filme pelo realizador [May, 00] Visualização científica e ambientes virtuais A visualização computacional é uma disciplina que se ocupa de apresentar, por meio de recursos gráficos e interactivos da computação, informações para profissionais de diferentes especialidades. A sub área visualização científica pretende apoiar e tornar mais ágil o processo científico de descoberta, confirmação e reprodução de dados. A primeira definição de visualização científica surgiu em 1987, no relatório Visualization in Scientific Computing, como uma forma de comunicação que transcende as aplicações e

26 6 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA os limites tecnológicos. Também nesta época, o termo foi usado para sensibilizar a National Science Fundation 3 para a importância do uso de métodos de computação gráfica associado às simulações com super computadores. A visualização científica permite resumir de modo gráfico os resultados gerados pelas aplicações da super computação, constituindo uma ajuda inestimável aos investigadores no momento de analisar, interpretar os dados científicos e formular conclusões. Alguns investigadores consideram que a visualização científica revolucionou a forma de processar dados científicos, tendo-se tornado indispensável em muitas áreas. Surgem, graças a ela, aplicações típicas em medicina, meteorologia, análise molecular, aeronáutica, ecologia, microscopia e dinâmica dos fluidos, entre tantas outras. O termo ambiente virtual é usado para definir o mundo digital criado a partir de técnicas de computação gráfica. Uma vez que é possível explorar esse mundo por meio de periféricos de input / output, o mundo transforma-se assim num ambiente virtual. Permite oferecer aos utilizadores: uma forte sensação de presença dentro do ambiente virtual, interactividade com os objectos tridimensionais e maior intuição no manuseamento dos interfaces entre o utilizador e computador [Leston, 96]. Com o aumento das funcionalidades e velocidade dos computadores no processamento de imagens e som, os ambientes têm-se tornado cada vez mais realísticos. Com o aparecimento dos ambientes virtuais 3D, muito esforço tem sido efectuado para apresentar métodos convenientes pelos quais os utilizadores possam visualizar os objectos ou o próprio mundo. Para um maior detalhe recomenda-se a leitura sobre o tema em: [Hubbold et al., 98], [Kay et al., 98] e [Young e Malcolm, 98] Câmara virtual e sua movimentação A câmara virtual é um conceito importante na computação gráfica, pois representa o ponto de vista sobre o qual os objectos pertencentes ao mundo virtual são projectados no ecrã. Por definição, a parte crucial de qualquer ambiente virtual, como é vívido, depende em grande parte da visão da câmara, pois é um dos meios primários pelos quais é transferida a informação do ambiente virtual para o utilizador via ecrã. Em geral são considerados sete graus de liberdade pelos quais uma câmara virtual é controlada: 3 graus para mover no plano gráfico cartesiano (x, y, z), 3 graus para rotação (pan, tilt e roll) e 1 grau para mudar o campo de visão (zoom). Outros parâmetros podem controlar uma câmara mas nesta tese não são discutidos. Alguns desses parâmetros são: a luz de ambiente, aspecto da imagem, shutter speed 4 e a profundidade do campo de visão. 3 Fundação Nacional e da Ciência do EUA, 4 Shutter Speed - Velocidade de obstrução. É o tempo em que o obturador permanece aberto para expor o filme.

27 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA 7 Assim sendo, a câmara pode-se movimentar de quatro formas distintas e frequentemente em conjunto, como se pode ver na figura 2.1. A câmara pode-se deslocar, isto é, mover para uma nova posição x,y,z, pode girar na vertical (tilt) ou horizontal (pan), podendo também rodar no seu próprio eixo (roll) [Nieuwenhuisen e Overmars, 02]. (a) Translação (b) Pan (c) Tilt (d) Roll (vista de cima) (vista de lado) (vista de frente) Figura 2.1:Movimentos possíveis de uma câmara virtual Em Computação Gráfica, recorre-se normalmente ao conceito de câmara virtual [Watt, 93] para definir um novo referencial, denominado Sistema de Coordenadas da Câmara (Eye or Camera Coordinate System), cuja origem coincide com o centro de projecção (posição da câmara) e cujo eixo dos ZZ é normal ao plano de visualização (View Plane) e representa a direcção de observação. O volume de visualização (Viewing Frustum) delimita o espaço em que um objecto é visualizado dentro do volume, representando assim, o espaço de coordenadas em que os objectos foram transformados, relacionando as técnicas de projecção com o plano de visualização. Os objectos resultantes são expressos em termos de Coordenadas de Ecrã (Screen Coordinates). Em rigor, as coordenadas resultantes desta transformação são normalizadas pelo que se impõe um mapeamento destas no referencial determinado pelo dispositivo físico de visualização (Device Dependent Coordinates) [Foley et al., 00] [Lengyel, 02] Animação e simulação física A animação por computador foi considerada durante muitos anos como a nova ferramenta multimédia para anúncios e efeitos especiais em filmes. Mas, mais recentemente, o desenvolvimento rápido dos computadores pessoais conduziu a novas áreas como a multimédia, jogos interactivos e realidade virtual. Para estas novas áreas a interactividade e a animação em tempo real tornou-se fundamental. Como método tradicional para animar personagens articuladanente temos o Keyframe. Este método consiste, numa primeira fase, em criar a personagem num programa de modelação (ex. 3D Studio Max) que permita criar animações. Com alguma facilidade o

28 8 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA animador 5 adiciona, altera ou remove as frames que fazem parte da animação da personagem. O animador define assim um conjunto de poses para um determinado movimento. O movimento em tempo real é obtido através da interpolação das poses necessárias para o estado actual da personagem. A metodologia keyframe apresenta a vantagem de o animador ter o controlo total sobre o modelo e a implementação do sistema não requer dificuldade. Por sua vez esta técnica apresenta alguns problemas, nomeadamente: dificuldade em especificar interacções mais realistas, dificuldade para especificar cenários muito dinâmicos e o resultado final da animação está muito dependente do algoritmo de interpolação das poses. Para maior delhate sobre a técnica de animação pode-se consultar: [Bruderlin e Calvert, 89], [Chung e Hahn, 99], [Marselas, 00], [Watt, 93], [Witkin et al., 90] e [Witkin e Popovic, 95]. A simulação física é outra técnica de animação que produz movimentos mais naturais que a técnica de keyframe. Os movimentos são implementados em tempo real através de fórmulas físicas que definem o comportamento da personagem. Este modelo foi usado para a simulação de movimento de câmaras utilizando massa, atrito e viscosidade [Turner et al., 91]. Um problema com sistemas de simulação dinâmicos é a dificuldade de implementar o modelo físico para que se comporte como desejado Parâmetros da câmara virtual em 3-Dimensões O posicionamento de uma câmara no mundo virtual a 3-Dimensões é definido por um conjunto de parâmetros que são descritos de seguida e ilustrados na figura 2.2 [Foley et al., 00]. Para um posicionamento da câmara no ambiente virtual é sempre necessário utilizar os seguintes parâmetros da câmara [Bares et al., 00a]: Posição da câmara P(x,y,z): Ponto no qual a câmara virtual é colocada no sistema de coordenadas a três dimensões. Vector de direcção At(dx, dy, dz). Campo de visão (Field of View): O campo horizontal e vertical dos ângulos de visão, denominado o ângulo da lente. Na computação gráfica, este ângulo é determinado através de dois parâmetros, o campo horizontal de ângulo de visão (Ө H ) e no campo vertical de ângulo de visão (Ө V ). Vector Up de orientação Up(dx, dy, dz): Vector que controla o ângulo do tilt ou rotação roll da câmara sobre o seu vector de direcção. 5 Animador pessoa que implementa a animação do modelo num software especifico.

29 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA 9 (Perspectiva da visão) Figura 2.2: Parâmetros de câmara virtual a 3D Pipeline de visualização tridimensional (Visão de cima) O Pipiline de visualização tridimensional é o processo básico de gerar imagens tridimensionais por computador para aplicações em tempo real ou interactivas, encontrando-se o conceito perfeitamente normalizado. Trata-se assim de uma estratégia de compromisso de visualização entre o realismo e a velocidade de processamento do desenho. O objectivo desta técnica é criar uma projecção a duas dimensões da cena tridimensional, tendo em conta a iluminação da cena e a perspectiva de visualização para que possa ser visualizada no ecrã [Foley et al., 00]. O processo assume como entrada de dados de uma cena tridimensional um conjunto de objectos descritos por polígonos 6, fontes de luz e parâmetros de visualização. O cálculo do processamento é o seguinte [Madeiras, 03]: 1. Leitura da base de dados que contém o modelo matemático da cena; 2. Aplicação do modelo de reflexão local de acordo com o algoritmo de sombreamento; 3. Aplicação das transformações geométricas tendo em conta a posição e direcção do ponto de vista; 4. Eliminação das faces escondidas (back-faces culling); 5. Execução do recorte e opcionalmente a transformação da perspectiva; 6. Calculo dos pixels 7 que irão ser activados (scan-conversion); 7. Calculo da cor de cada um dos pixel (algoritmo incremental de sombreamento); 8. Remoção das superfícies ocultas; 6 Polígonos - Na maioria das aplicações gráficas que possibilitam a modelação de cenas utilizam-se primitivas gráficas de alto nível (exemplo: sólidos 3D) o que implica a existência de um camada de préprocessamento responsável pela sua decomposição em polígonos. 7 Pixel É a menor unidade gráfica a partir da qual se forma uma imagem.

30 10 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA 9. Implementação de eventuais efeitos visuais (ex: mapeamento de texturas, sombras e transparências); 10. Filtragem dos ruídos da imagem (anti-aliasing); 11. Escrita da informação respeitante aos pixéis na memória da imagem para visualização e implementação da projecção a duas dimensões Bibliotecas gráficas Actualmente existem vários sistemas de visualização comerciais que utilizam a técnica de imagem baseadas no pipeline 3D. As mais conhecidas são: OpenGL [Wright e Sweet, 00], Direct3D [Root e Boer, 99] e Renderware [Criterion, 95], sendo esta última a utilizada no trabalho experimental descrito nesta tese. De um modo geral, os sistemas de visualização gráfica, frequentemente apelidados de APIs (Application Progamming Interface), disponibilizam uma biblioteca gráfica que constitui um ambiente bastante versátil para a modelação e visualização de objectos complexos. Geralmente as bases de dados das cenas para os programas de visualização em tempo reais ou interactivos contêm a especificação dos parâmetros de visualização, das fontes de luz, dos atributos físicos das superfícies (cor, índices de reflexão, etc.) e da informação geométrica dos polígonos. O processo final de cada cena será sempre o envio de toda a cena para o pipeline de visualização. A biblioteca gráfica tem também como missão assegurar a compatibilidade com todo o hardware gráfico. 2.2 CINEMATOGRAFIA Cinematografia é a arte de fazer filmes. O problema central do realizador cinematográfico é como capturar para a filmagem um conjunto de eventos que ocorrem no mundo em simultâneo de modo a que o espectador os consiga perceber com toda a clareza, dando a continuidade pretendida. Vários trabalhos de investigação foram extremamente úteis para a comunidade cinematografa perceber como elaborar um filme. Notavelmente, Arijon tem um papel muito construtivo em que nomeia um conjunto de descrições técnicas para filmar correctamente qualquer tipo de situação cinematográfica [Arijon, 76]. Alguns autores consideram que as descrições dele são simplistas, mas no entanto elas são a base perfeita de como derivar uma classe de grandes primitivas para filmar qualquer tipo de situação [Drucker, 94]. Esta classe de primitivas, que se designam neste trabalho de restrições de projecção, envolve a colocação e orientação da câmara baseada na projecção do objecto sobre o ecrã.

31 E A2 B2 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA Princípios da cinematografia Na generalidade, os eventos são filmados por várias câmaras em diferentes pontos de vista, sendo o resultado do filme a junção de todas as cenas filmadas. A este processo chama-se edição [Mascelli, 98]. Na terminologia cinematográfica um pedaço de filme ininterrupto, filmado por uma única câmara, é designado de shot ou take. Os shots editados em conjunto formam uma cena, logo um filme é formado por um conjunto de shots [Mascelli, 98]. O problema que se coloca a um realizador é saber como dispor as câmaras e o equipamento de iluminação para que quando o filme seja editado, tudo junto descreva coerentemente os eventos exigidos. O problema pode ser dividido em duas partes. A primeira parte pode ser designada por problema semântico, consiste em assegurar que são incluídas todas as acções do shot na sequência correcta. A segunda parte do problema é pragmática. Relaciona assuntos de percepção humana, e consiste em decidir que propriedades visuais devem estar invariavelmente do outro lado de cortes para assegurar que o espectador perceba a continuidade. A Linha de interesse B A1 A3 B1 B3 externa internas externa paralela paralela ápice Figura 2.3:Posicionar câmaras pela Linha de interesse [Arijon, 76] Uma aproximação à resolução destes problemas é o desenvolvimento de um conjunto de planos de câmara standards por cenas típicas, que facilitem a edição da cena. Estes planos são chamados de idiomas. Um conjunto de idiomas ou descrições foi publicado por Arijon, como foi salientado anteriormente [Arijon, 76]. O objectivo básico do idioma é evitar confundir o sentido de visualização da imagem. Para isso ser alcançado é desenhada uma linha de interesse entre os vários actores proibindo qualquer câmara de cruzar essa mesma linha, como se pode analisar na figura 2.3. O problema com um idioma é que resolve só parcialmente o problema de achar o melhor ângulo de câmara, pois não descreve a altura de posição da câmara em relação aos

32 12 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA actores ou se os shots são para ser close-up 8 ou não. Outro problema é que foram desenvolvidos idiomas principalmente para a indústria de filme teatral onde o actor pode ser colocado pelo Realizador (Director) e o cenário pode ser mudado à vontade. Os idiomas são muito menos úteis em trabalhos de documentários onde o realizador tem de dar o melhor uso do assunto a ser debatido do qual ele não tem nenhum controle A diferença entre câmaras reais e virtuais A câmara virtual é um conceito importante na computação gráfica, pois representa o ponto de vista sobre o qual os objectos do mundo são projectados no ecrã. Uma câmara virtual pode ser colocada em qualquer parte do mundo gráfico, incluindo dentro de objectos sólidos. No mundo virtual as câmaras não têm qualquer limite de movimentação de um ponto para outro ou de rotação em torno de qualquer eixo, podendo ocorrer esta movimentação a uma velocidade instantânea. Já uma câmara real, por outro lado, apresenta um conjunto de limitações físicas. Não pode penetrar dentro de objectos sólidos e não pode contornar um objecto, voando, com a mesma facilidade. Devido ao modo como se movem e giram, as câmaras reais, levantam também problemas de velocidade para realizar as operações pretendidas. Apesar das limitações das câmaras reais é importante impor algumas restrições nas câmaras virtuais para que estas se assemelhem a realidade. Uma das vantagens de usar uma câmara virtual no mundo gráfico é que permite saber, com alguma facilidade, as posições dos objectos no seu ambiente. Nas câmaras reais não se tem a informação de onde os objectos estão localizados concretamente [Drucker, 94] Restrições físicas da câmara As restrições físicas também podem ser aplicadas na câmara virtual para que esta se torne o mais similar possível com uma câmara real nas suas limitações. As limitações a estabelecer numa câmara virtual são: Velocidade de rotação da câmara: limitar a velocidade da rotação da câmara virtual. Velocidade de movimento da câmara: limitar o intervalo de movimento da câmara virtual. Por exemplo, num cenário com várias câmaras deve-se assegurar que a deslocação para novas posições seja possível com uma câmara real. Velocidade do zoom: A restrição na velocidade do zoom limita a velocidade da câmara de mudar o nível de zoom, limitando-se também os níveis máximos e mínimos do zoom. 8 Close-up Redução de ângulo de um grande plano para um plano mais fechado de um determinado pormenor a filmar, dando a sensação de transportar o espectador para dentro da cena [Mascelli, 98].

33 CAPÍTULO 2: COMPUTAÇÃO GRÁFICA E CINEMATOGRAFIA 13 A inclusão destas três restrições físicas, cobre assim os 7 graus de liberdade de uma câmara virtual no seu mundo tridimensional. 2.3 Conclusões O desenvolvimento das tecnologias gráficas permitiu novos métodos de visualização que vão de encontro aos conceitos cinematográficos. É neste contexto que surge a necessidade de utilizar conceitos gráficos e cinematográficos, para que se possa criar um sistema de controlo de câmara que se assemelhe com a da realidade. O visualizador tridimensional, Virtual3D, desenvolvido no âmbito desta tese, utiliza os conceitos atrás referenciados de forma a dar ao espectador o ambiente real desejado, como de uma filmagem televisiva se tratasse.

34 14 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES 3 CONTROLO CÂMARAS INTELIGENTES Este capítulo pretende descrever, no domínio do controlo inteligente de câmara, as diversas abordagens metodológicas apresentadas pelos diferentes autores. O objectivo central dos autores é desenvolver um conjunto de soluções para o problema de procurar a melhor solução de posicionar ou orientar a câmara de filmagem para um determinado cenário a filmar. 3.1 Introdução Os movimentos das câmaras têm sido estudados em diferentes contextos da Computação Gráfica, nomeadamente: animação, exploração, manipulação e apresentações. As câmaras virtuais são normalmente descritas através de transformações de visualização [Foley et al., 00]. Usando a relação geométrica entre o espaço virtual e o plano de visão, Blinn desenvolveu uma técnica de controlo da câmara que automaticamente calcula a posição, orientação e o factor zoom da câmara, através da especificação de dois objectos posicionados no plano de visão [Blinn, 88]. Um outro método para controlar uma câmara foi sugerido por [Phillips et al., 92], para ser utilizando na manipulação do sistema Jack 9. A câmara é posicionada num local visível e num ângulo apropriado para uma manipulação da câmara, utilizando os vários controlos. Karp e Feiner descrevem um sistema para gerar apresentações automáticas, mas não consideram o controlo interactivo da câmara [Karp e Feiner, 90]. Seligmann e Feiner usam as restrições de visibilidade não para controlar o posicionamento da câmara, mas para melhorar a renderização 10 da imagem final [Seligmann, 93] [Seligmann e Feiner, 91]. Gleicher e Witkin criaram um sistema chamado de Throughthe-lens camera control, para controlar o movimento da câmara baseado no sistema de projecção do objecto do mundo para o ecrã [Gleicher e Witkin, 92]. O sistema CINEMA era uma tentativa inicial a unificar estas várias noções de controlo de câmara. Era um método procedimental para especificar o movimento da câmara baseado nos objectos que fazem parte do mundo virtual [Ducker et al., 92]. Outros sistemas concentraram-se em achar o melhor posicionamento para a câmara quando são executadas tarefas interactivas, como as que serão abordados nesta tese. Drucker em particular mostrou como posicionar de uma forma óptima uma câmara para 9 Sistema Jack Ferramenta de trabalho desenvolvida por Phillips e Badler para articular modelos anatómicos [Phillips e Badler, 98]. 10 Renderização - Termo aplicado para as diversas formas e metodologias de cálculo de textura, sombra e cores em um conjunto de objectos vectoriais.

35 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES 15 shots individuais resolvendo o problema através da optimização das restrições, apesar do seu modelo ser pouco generalista e reutilizável [Ducker e Zeltzer, 95]. 3.2 Sistemas de Câmaras Inteligentes Nos pontos seguintes são apresentados os trabalhos mais relevantes para o problema no planeamento de controlo de câmaras de filmagem. A intenção é identificar características comuns que significam aproximações gerais ao problema no âmbito das várias técnicas de filmagem em mundos reais ou virtuais a três dimensões Jim Blinn Sistema espacial A primeira tentativa para o controlo automático de câmaras num cenário virtual foi desenvolvida por Jim Blinn [Blinn, 88]. O sistema foi projectado para colocar diferentes câmaras numa sucessão de efeitos especiais de forma a colocarem a câmara posicionada e na direcção do ponto de interesse 11. O problema consistia em, dada uma nave em órbita e um planeta em fundo, definir onde se deve a câmara posicionar e como deve estar orientada de forma que a que a nave apareça nas coordenadas (x_ship, y_ship) do ecrã a d metros de distância, estando o planeta nas coordenadas (x_planet, y_planet) do ecrã mantendo o eixo de rotação do planeta paralelo ao eixo y e desejar que o campo de visão seja φ graus Gleicher - Assistente para controlo automático de câmara Gleicher e Witkin descrevem o controlo de câmara através de resolução de restrições de projecção no artigo Through the Lens Camera Control [Gleicher e Witkin, 92]. Os autores não tentam generalizar o sistema fora do contexto do posicionamento da câmara. Além disso, o sistema apresenta várias limitações. O sistema assume que o posicionamento apropriado para a câmara no sistema gráfico pode ser possível para alguns exemplos de manipulação mas pode ser geralmente falso na maioria das operações cinemáticas. Na realidade, foi declarado que quase 70% de todos os shots na maioria dos filmes não envolvem nenhum movimento da câmara. O Assistente para controlo automático de câmara 12 baseia-se na noção que a mudança de projecção de um ponto nas coordenadas do mundo pode ser a base para a mudança de parâmetros da câmara. Para resolver o posicionamento da câmara, o assistente resolve então um conjunto de equações diferenciais que dão o movimento de controlo (posicionamento) na limitação dos pontos das coordenadas do mundo para pontos das coordenadas de ecrã. O sistema deve ter cuidado na resolução das equações de forma a garantir controle estável dos parâmetros da câmara (por exemplo: pontos que têm 11 Ponto de interesse ponto para onde se deve olhar no ecrã no qual apresenta mais interesse na cena. 12 Automatic camera control assistant

36 16 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES pequenas oscilações nos parâmetros da câmara poderão ter um enorme efeito no resultado da mudança de projecção) CamDroid Sistema para controlo inteligente de câmara Uma generalização da versão de Blinn foi desenvolvida por Ducker et al [Ducker et al., 92] [Ducker e Zeltzer, 95] [Ducker e Zeltzer, 96]. No sistema de Ducker a imagem desejada é definida por dois conjuntos de funções. O primeiro, são as restrições que devem ser conhecidas. O segundo, são os objectivos que têm que ser minimizados. O resultado da optimização das diferentes restrições passa por uma bibilioteca de optimização chamada de CFSQP (C code for Feasible Sequential Quadratic Programming), que permite saber qual a solução satisfatoriamente encontrada para as restrições da câmara. A noção central deste sistema é que o posicionamento e movimentação da câmara são normalmente efectuadas por um conjunto particular de razões, que podem ser expressas formalmente como um número de primitivas ou limitações nos parâmetros de uma câmara. A identificação das limitações da câmara é baseada sobre uma análise de tarefas específicas para cada domínio. Analisando uma ampla variedade de tarefas, uma larga base de primitivas podem ser facilmente incorporadas dentro de uma tarefa específica. O sistema proposto inclui um conjunto de módulos para controlo da câmara. Essencialmente esses módulos representam o encapsulamento dos comportamentos da câmara para diferentes domínios de filmagem. O conceito geral de um módulo de câmara é similar ao conceito de shot na cinematografia. Processos de aplicações especificas / Interface de Objectos Interpretador Interfaces da câmara para aplicação especifica Base de dados dos objectos Módulos de câmara estado câmara Renderização Figura 3.1: Arquitectura do modelo CamDroid de Ducker A arquitectura do sistema proposto na figura 3.1 é estruturada de forma a realçar a divisão entre uma base de dados do mundo virtual, a estrutura de câmara e um interface que faz a ligação entre ambos. A estrutura é constituída pelos seguintes módulos:

37 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES 17 Um interpretador: permite executar módulos ou gerir a entrada de informação do utilizador. O interpretador que utilizada a linguagem TCL 13 é uma parte importante no sistema, pois inclui um conjunto de bibliotecas que permite tratar da computação de matrizes, base de dados, cálculos de visibilidade e dinâmica de simulação. Sistema de renderização: sistema que permite o uso que qualquer hardware gráfico ou software para renderização. Base de dados do ambiente: contem a informação referente a todos os objectos que existem no ambiente virtual. Módulo da câmara: Essencialmente permite encapsular os comportamentos das câmaras para os diferentes estilos de interacção com o ambiente. Entrada de dados utilizador Controlador Lista de restrições Inicializador Estado Parametros da câmara Figura 3.2: Módulo genérico de uma câmara de Ducker O módulo de câmara, representando na figura 3.2, é a base do sistema CamDroid. Permite que várias interfaces possam ser rapidamente construídas para as várias tarefas de filmagem a realizar. O módulo de câmara é constituído pelos seguintes componentes: Estado Contem a informação referente ao estado da câmara: posição, matriz de visualização, vector up e o campo de visão. O estado pode conter também alguns valores derivados dos parâmetros da câmara, valores de tempo ou outro tipo de informação específica ao módulo. Sempre que o módulo está activo a câmara está a ser renderizada para ser visualizada; Inicializador Esta rotina é iniciada quando o módulo está activo, inicializando o estado da câmara do componente anterior; Controlador Este componente passa a entrada de dados do utilizador directamente para o estado da câmara. Lista de restrições Contêm as restrições a satisfazer pela câmara sempre que o módulo está activo. 13 TCL Linguagem de programação a base de scripts.

38 18 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES ConstraintCam - Controlo da câmara através de restrições William Bares, conjuntamente com James Lester [Bares e Lester, 99], desenvolveu um sistema chamado de ConstraintCam (Controlo da câmara através de restrições). O sistema permite, através de uma interface de visualização cinemática flexível, aos utilizadores seleccionarem, em tempo real, quais os objectos a serem vistos, especificarem quais as restrições aplicadas a cada objecto, seleccionar qual o tipo de estilo cinemático, escolherem os efeitos de destaque e controlarem a informação a ser exibida no ecrã. Descrição do Mundo Virtual 3D Pedidos de visualizção Estruturas de Multi-shot Interface inteligente de visualização 3D Analise de restrições Resolução de restrições Composição Multi-shot Plano de visualização Figura 3.3: Arquitectura ConstraintCam de Bares Os pedidos de visualização são resolvidos pelo sistema ConstraintCam cujos módulos principais estão ilustrados na figura 3.3. As bases de conhecimento incluem a descrição do mundo virtual 3D e as estruturas de Multi-shot para composição das cenas. Os módulos principais da arquitectura são os seguintes: Análise de restrições: módulo que identifica as regiões no espaço dimensional para posicionar a câmara satisfazendo as restrições; Resolução de restrições: se uma solução for possível, é determinado, calculando uma região comum no espaço, onde colocar a câmara para que todas as restrições sejam satisfeitas. Se não se encontrar um único shot que satisfaça as restrições, o módulo identifica quais pares de restrições que são incompatíveis. As restrições incompatíveis e mais fracas entram então em relaxação para permitir uma solução mais rápida por parte do sistema. Composição de Multi-Shot módulo que explora na base de dados de conhecimento a estrutura multi-shot para criar, sucessivamente ou compostamente, as soluções múltiplas de visualização dos shots.

39 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES 19 Após o processamento sequencial pelos diferentes módulos temos como resultado um plano de visualização hierárquico de shots. O plano é então processado em tempo real pela componente gráfica. Posteriormente o processo é repetido desde o início tendo em conta os novos desenvolvimentos no ambiente virtual. No sistema desenvolvido os objectos são sujeitos a quatro tipos de restrição: 1. Melhor ângulo (vantage angle): indica o intervalo permissível de orientações relativas da câmara com o objecto (por exemplo: quais as faces de um objecto que a câmara é capaz de visualizar e destas quais são as óptimas); 2. Distância de filmagem (shot distance): especifica a distância mínima e máxima permitida entre a câmara e o objecto; 3. Inclusão de objecto (object inclusion): requer que um objecto seja visualizado; 4. Área de inclusão (room enclosure): Limitar a posição da câmara para permanecer dentro de uma região rectangular inclusa opcional. A importância de cada restrição é determinada pelo produto da prioridade do objecto pela prioridade de cada restrição. Durante a relaxação, as restrições de menor importância serão desligadas ao invés das maiores. Usando o trabalho anterior, Bares desenvolveu, conjuntamente com Thainimit e McDermott, um novo conjunto de restrições mais complexo para controlo da câmara. O sistema desenvolvido suporta onze restrições referentes aos atributos da câmara ou como os objectos aparecem para o shot [Bares et al., 00a] [Bares et al., 00b] [Bares et al., 00c]. As novas restrições são: 1. Look At Point: restringe a focagem da câmara para um determinado ponto (objecto); 2. Object in Field of View: restringe que um objecto esteja no campo de visão; 3. Object Occlusion Minimize: restrição dos objectos com um determinado valor mínimo de oclusão. Os valores de oclusão variam no intervalo de [0.0 a 1.0]; 4. Object View Angle: restrição do ângulo de orientação da câmara referente ao objecto. A orientação é expressa em coordenadas esféricas; 5. Object Distance: restrição da distância da câmara ao centro do objecto; 6. Object Projection Size: restringe a distância da câmara para com o objecto e o ângulo do campo de visão determina o tamanho no qual o objecto é visualizado, utilizando por exemplo para um close-up;

40 20 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES 7. Object Projection Absolute: Exigir que a projecção de um objecto principal fique completamente dentro de uma determinada região rectangular da imagem a duas dimensões. 8. Object Projection Relative: A projecção do objecto principal estipula uma relação para a projecção do objecto secundário na imagem. 9. Object Depth Order: restrição para especificar que a câmara seja posicionada de forma que o objecto pivot apareça o mais próximo ou distante da câmara do que um objecto secundário. 10. Camera Position Region: restringe a região de acção da câmara no espaço tridimensional; 11. Camera Field of View: restringe o ângulo do campo de visão da câmara na vertical e na horizontal para definir o formato da imagem a ser visualizada. Estas novas restrições descritas por Bares, apesar de terem provado ser bastante satisfatórias para codificar os cenários de filmagem matematicamente, apresentam o problema no módulo de resolução de restrições para achar os melhores posicionamentos em tempo real, algo que o sistema anterior fazia. Isto deve-se ao facto do novo número de restrições e da sua complexidade. Não funcionando o modelo em tempo real, torna-se difícil achar uma nova posição da câmara quando esta acompanha um objecto que se move na cena. Porém, resolver as restrições em tempo real não é uma exigência para um sistema de posicionamento de câmaras automatizado que acha as melhores soluções de filmagem em cenários reais. O novo modelo produz bons resultados para cenas que envolvam vários objectos a serem filmados, como provam os resultados apresentados pelos autores. A medição do grau de satisfação das restrições avaliadas ou resolvidas é importante para determinar se um determinado posicionamento da câmara satisfaz cada uma das restrições. O grau de satisfação para cada restrição é calculado através de um valor fraccionário compreendido entre [0.0 a 1.0], especificando quais os valores mais satisfatórios para o posicionamento da câmara. O valor total acumulativo do grau de satisfação é a soma dos pesos de satisfação de todas as restrições individuais expressas na equação abaixo, onde Pi significa a prioridade da i-ésima restrição, Si a taxa de satisfação da mesma restrição e N é o número total de restrições. Grau Satisfação = N (Pi * Si) 1

41 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES 21 O protótipo inicial para resolução das restrições utiliza um algoritmo de gerar e testar de forma a determinar a colocação da câmara tendo em conta o grau de satisfação acumulativo mais elevado. Os posicionamentos candidatos da câmara são gerados repetidamente em passos discretos sobre todas as possibilidades da câmara (posição, objectivo, direcção, campo de visão). O protótipo analisa assim um conjunto vasto de hipóteses tornando-se bastante lento, implicando sérios problemas para ser implementado em tempo real DCCL Linguagem declarativa para controlo de câmara O sistema desenvolvido por He e Christianson em 1996 [Christianson et al., 96] [He et al., 96] chamado de Linguagem Declarativa de Controlo de Câmara (DCCL 14 ) baseia-se numa base de dados de idiomas cinematográficos predeterminados. O sistema foi implementado para ser utilizado nas áreas da indústria e entretenimento para resolver o problema do controle da câmara em cenários interactivos e com animações dos actores muito diversificada (ver figura 3.4). A DCCL é uma linguagem usada para codificar os idiomas cinematográficos, sendo constituída por quatro primitivas, que são as seguintes: 1. Fragmentos (Fragments): um fragmento especifica o intervalo de tempo durante o qual uma câmara estática está numa determinada posição e orientada ou a câmara está em movimento; 2. Visão: especificação da animação tal como um close-up; 3. Posicionamento: definição da posição da câmara em relação aos actores; 4. Movimento final: usado para indicar a extensão de movimento a ser coberta pela câmara junto ao actor relativamente ao fragmento. A entrada de dados para o sistema é a simulação traçada com a informação da actividade executada por cada actor em cada tempo de ciclo. O primeiro módulo é o sequenciador, em que a sua função é dividir a simulação traçada em cenas, especificando o actor principal da cena. Para cada cena o conjunto de idiomas a instanciar é introduzido no compilador DCCL, que produz para cada imagem da animação as referências de configuração da câmara. As especificações da imagem são fornecidadas ao avaliador de heurísticas, que analisa o idioma e calcula o desempenho comparando com as várias heurísticas cinemáticas do sistema. As heurísticas tipicamente usadas são: Suavização na transição de shots; 14 DCCL - Declarative Camera Control Language.

42 22 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES A câmara não deve cruzar a linha de interesse; Os shots de filmagem não podem ser muito perto ou longe dos actores; A câmara não pode rodar para trás. Dados para simulação Gestor de sequencias Idiomas Compilador DCCL Imagens candidatas Analisador de Heuristicas Imagem final Figura 3.4: Arquitectura do modelo DCCL de He e Christianson, O processo acaba quando o melhor resultado do idioma for encontrado, começando de seguida o processo de renderização. No sistema, o compilador DCCL, a base de dados de idiomas e o analisador de heurísticas são domínios completamente independentes, enquanto o gestor de sequências é dependente FILM - O Cinematógrafo virtual Um modelo alternativo de idiomas cinematográficos para ser executado em tempo real, nomeadamente em jogos ou simulações foi desenvolvido por Amerson e Kime com o nome de FILM (Film Idiom Language and Model) [Amerson e Kime, 01]. O sistema DCCL descrito anteriormente, onde o controlo de câmara é realizado por idiomas que obedecem às restrições, é a grande base conceptual do sistema FILM, apesar do sistema DCCL não ter sido desenhado para trabalhar em tempo real. O modelo de Bares e Lester [Bares e Lester, 99] dá o seu contributo na selecção e composição dos shots em tempo real. Para representar a cena através de uma árvore foi usada a noção do sistema Virtual Cinematographer de He, Cohen e Salesien, que explora a cena hierarquicamente para o modelo cinematográfico em tempo real [He et al., 96]. Em contraste com os sistemas anteriores, foi proposto assim um sistema híbrido que usa a abstracção definindo os idiomas cinematográficos como restrições para seleccionar o melhor posicionamento da câmara para qualquer shot, em qualquer momento, a qualquer elemento geométrico. A estrutura do controlo da câmara proposto pelos autores é baseada nas noções práticas da realização cinematográfica. No sistema FILM as decisões de filmagem individuais do realizador e operador de câmara são representadas por módulos de software, como se pode observar na figura 3.5. É o realizador quem selecciona os shots baseando-se na composição e natureza da cena a filmar. Como exemplo, no cinema real é o realizador que controla e sabe os movimentos dos actores. Comunicar Comunicar Especificação Shot Longbow Tradutor Realizador "Cameraman" intenções intenções na linguagen FILM Figura 3.5: Arquitectura do modelo FILM de Amerson e Kime

43 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES 23 Para simular o modelo real cinematográfico, o sistema FILM é constituído por um pipeline, como pode ser visto na imagem acima. O módulo Longbow 15 é quem faz a o planeamento da narração, pois é ele que define o que deve ser visto na visualização. Esta informação é de seguida comunicada para o módulo de Tradução para que as intenções de visualização do módulo Longbow possam ser convertidos em termos que o Realizador possa entender. O módulo Realizador utiliza a informação proveniente do Tradutor (o tipo de cena, o número de participantes, o estado emocional ou afectivo da cena) para efectuar a pesquisa em profundidade (depth-first), com backtracking de forma a seleccionar a melhor cena na árvore de pesquisa das cenas. Após a selecção, o Realizador comunica a informação (restrições de tempo, localizações, rotações, actores e propriedades do mundo) para realização da cena ao cameraman 16. Uma vez que o Realizador definiu as especificações da cena e as restrições da filmagem da cena, o trabalho do cameraman é escolher a melhor posição e configurar as câmaras, tentando ao mesmo tempo satisfazer os idiomas do Realizador e os problemas de oclusão dos objectos. Toda a responsabilidade de comunicação com o motor gráfico é da responsabilidade do cameraman. Um desenvolvimento ao modelo FILM foi efectuado por Charles [Charles et al., 02], que desenvolveu um sistema chamado de Realizador Virtual e Operador Virtual. O Realizador virtual recebe a comunicação das intenções do módulo de reconhecimento, seleccionando na base de dados os melhores shots para instanciar satisfatoriamente as intenções. O cameraman virtual por sua vez é o responsável pelas configurações das câmaras. O sistema é mais satisfatório em tempo real que o FILM, pois pode responder a mudanças do mundo pela acção do módulo de reconhecimento que gera novos shots. 3.3 Conclusões Ao longo deste capítulo foram apresentados os modelos de maior interesse para esta tese no domínio do controlo de câmara inteligente. Os modelos descritos pretendem identificar as funcionalidades básicas de controlo de câmara respeitando os conceitos cinematográficos. Através dos modelos apresentados pretende-se identificar caractristicas de controlo para que se possa criar um modelo genérico utilizando agentes. Um sistema de agentes é uma arquitectura que permite construir uma interface que pode ajudar a executar várias tarefas de filmagem. Os agentes podem aprender observando as acções de 15 Longbow - é um sistema baseado no domínio da planificação da Inteligência Artificial que combina a decomposição de raciocínio (planeamento para executar uma acção abstracta executando a acção através de sub passos de acção) e o raciocínio causal (planificar para executar uma acção assegurando que as condições prévias da acção são consideradas antes da sua execução) na mesma representação. 16 Cameraman operador de uma câmara de filmar que executa uma filmagem.

44 24 CAPÍTULO 3: CONTROLO CÂMARAS INTELIGENTES um utilizador, ou podem encapsular conhecimento em como executar uma tarefa correctamente e convenientemente. O controlo de uma câmara virtual é um bom exemplo de como podem ser usados os agentes para ajudar o utilizador interagir com uma tarefa complicada. A unificação de metodologias através de uma arquitectura de agentes têm como objectivo criar um conjunto de tarefas acções identificáveis que possa levar a resolução de como se filmar num sistema distribuído em que os agentes (realizador e operadores) são os responsáveis pela coordenação da filmagem.

45 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 25 4 SISTEMAS MULTI-AGENTE A resolução distribuída e cooperativa de problemas faz apelo a arquitecturas de sistemas apropriados os quais apontam para a noção de Agente e Sistema Multi-Agente (SMA). As noções de Agente e SMA são aplicadas cada vez mais nas diferentes áreas computacionais. É nestes dois conceitos que assenta esta tese, como base para modelação e resolução dos diferentes problemas associados ao controlo de câmaras inteligentes. Neste capitulo pretende-se apresentar com detalhe o conceito de agente, abordando as várias características fundamentais e requisitos próprios que o caracterizam. Serão apresentados os mais importantes modelos de cognição fundamentados em três principais atitudes mentais, que são: as crenças, os desejos e as intenções (abreviadas por BDI, do inglês beliefs, desires e intentions, respectivamente). Outra noção não menos importante que se vai abordar é a de SMA, focando as suas características e modelos organizacionais de agentes. 4.1 Agentes A crescente relevância e utilizacção do paradigma de agentes no domínio informático tem suscitado bastante discussão sobre as características em comum e os aspectos que os distinguem dos demais programas. O paradigma trouxe às entidades computacionais dos sistemas de software comportamentos próprios quando inseridas em um determinado ambiente coordenando as suas próprias acções com base no seu conhecimento sobre as acções possíveis e as suas consequências sobre os outros agentes e o meio ambiente que as rodeia Conceito de agente O conceito de agente é baseado em inúmeras áreas do conhecimento, desde a Psicologia, Sociologia, até as Ciências de Computação. Foi a comunidade de Inteligência Artificial, pelo facto de basear-se em metáforas psicológicas e sociais como forma de inspiração e de motivação, quer como forma de modelação do processamento (complexo) da informação, que optou por este conceito. Esta primazia está associada a Carl Hewitt pela sua proposta do sistema actor [Hewitt, 77]. Um actor é um agente computacional que têm um endereço de correio electrónico e um comportamento. Os actores comunicam por troca de mensagens e executam as suas mensagens concorrentemente [Hewitt, 77]. No entanto, o conceito de agente é bastante genérico, não existindo uma definição comum. Contudo, a maior parte das definições são tudo menos uniformes, como ser vê no trabalho de Franklin e Graesser [Franklin e Graesser, 96]:

46 26 CAPÍTULO 4: SISTEMAS MULTI-AGENTE MudBot de Sankar Virdhagriswaram [ o termo agente é usado para representar dois conceitos ortogonais. O primeiro é a capacidade computacional de um agente executar autonomamente. O segundo é a capacidade de um agente raciocinar perante um domínio específico. AIMA de Russel e Norvig [Russel e Norvig, 95]: Um agente é qualquer objecto que possa ser visto como percepcionando o seu ambiente através de sensores e actuar sobre esse ambiente através de actuadores. Maes de Pattie Mães [Maes, 96]: Agentes autónomos são sistemas computacionais que habitam em ambientes dinâmicos e complexos, e actuam autonomamente no seu ambiente e ao efectuar isso realizam um conjunto de objectivos ou tarefas para as quais foram designados. KidSim de Smith, Cypher e Spohrer [Smith, Cypher e Spohrer, 94]: Define-se um agente como uma entidade persistente de software dedicada a um determinado objectivo. Ser persistente distingue os agentes das sub rotinas; os agentes têm as suas próprias ideias sobre como completar as suas tarefas, a sua própria agenda. Ter um objectivo específico distingue-os das aplicações com múltiplas funções; os agentes são tipicamente mais simples. Hayes-Roth de Hayes [Hayes-Roth, 95]: Agentes inteligentes executam continuamente três funções: percepcionam as condições dinâmicas do ambiente, actuam para afectar as condições do ambiente e raciocinam para interpretar as suas percepções, resolver problemas e determinar as suas acções. IBM [IBM, 97]: Agentes inteligentes são entidades em software que executam algum conjunto de operações em nome de um utilizador ou outro programa com algum grau de independência ou autonomia, e ao fazê-lo, utilizam conhecimentos ou representações dos objectivos ou desejos do utilizador. Wooldridge e Jennings [Wooldridge e Jennings, 94]: (Um agente é) um sistema computorizado em hardware ou (mais frequentemente) em software que goza das seguintes propriedades: autonomia, capacidade social, reactividade e pró actividade. SodaBot de Michael Coen [Coen, 94]: Agentes de software são programas que dialogam entre si e negoceiam e coordenam transferências de informação. Brustoloni de Brustoloni e Franklin [Brustoloni, 96] [Franklin, 95]: Agentes autónomos são sistemas capazes de acções autónomas, com objectivos próprios no mundo real. No entanto, na maior parte das definições é aceite como ponto fulcral o facto de um agente ser uma entidade computacional com capacidade de raciocínio.

47 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 27 Uma das mais compreensíveis definições de agentes e na qual os nossos agentes se enquadram neste trabalho é a de Wooldridge e Jennings [Wooldridge e Jennings, 95], na qual se define um agente segundo uma visão forte e uma visão fraca. A noção fraca de agente, que deriva das áreas da computação distribuída e inteligência artificial distribuída, baseia-se no conjunto mínimo de características que um agente deverá possuir em geral, tais como: Autonomia: Os agentes operam sem intervenção directa humana ou outra, e possuem controlo sobre as suas acções e o seu estado interno. Sociabilidade: Os agentes interactuam com outros agentes ou humanos no sentido de resolver um problema ou ajudar outros nas suas actividades. A comunicação é efectuada através de algum tipo de linguagem. Reactividade: Os agentes observam e analisam o seu ambiente de forma a responderem em tempo útil às alterações nele ocorridas. Estes agentes são designados de reactivos e são de fácil concepção, baseando-se em três componentes (percepção, acção e comunicação). Pró-actividade (ou orientação por objectivos): Os agentes não actuam apenas em resposta às alterações do seu ambiente, mas também apresentam comportamentos conduzidos pelos seus objectivos sendo capazes de tomar iniciativa na realização de determinadas acções. Persistência: Os agentes mantêm consistentemente o seu estado interno ao longo da sua existência. A noção forte de agente, que deriva essencialmente da área da inteligência artificial onde o agente é visto como uma entidade cognitiva com consciência e com capacidade de aprendizagem, sendo capaz, à semelhança dos humanos, de exibir sentimentos, percepções e emoções. Os atributos associados à determinação do agente são: Conhecimento: Possuir conhecimento é muito mais do que possuir informação, não sendo apenas a recolha de informação dinamicamente, mas também o raciocínio sobre essa mesma informação. Crenças: É a noção que o agente possui sobre um determinado facto, sendo esta dinâmica, pois o seu valor de verdade pode ser alterado no tempo. De entre as teorias desenvolvidas destacam-se os trabalhos de Rao e Georgeff baseado em agentes BDI (agentes com crenças, desejos e intenções) [Rao e Georgeff, 95] e o de Wooldridge e Jennings de com agentes baseados em atitudes e pró-atitudes [Wooldridge e Jennings, 95].

48 28 CAPÍTULO 4: SISTEMAS MULTI-AGENTE Intenções: Capacidade de representação dos objectivos de um agente, objectivos esses que o agente possui ao longo do tempo e resultam de padrões de comportamento, levando a execução de acções individuais. Obrigações: Compromissos que o agente assumiu a partir do momento que o agente expressou a sua disponibilidade para executar uma determinada tarefa. Veracidade: Assunção que um agente não comunica (deliberadamente) informação falsa, devendo ser sempre verdadeiro. Benevolência: Significa que um agente não deve assumir um comportamento contra-produtivo, adoptando os objectivos dos outros agentes, desde que estes não sejam incompatíveis com os seus objectivos Contexto de um agente Um agente está situado num determinado contexto quando se encontra exposto a interacções com ele próprio e com o ambiente do qual faz parte. Por exemplo: um agente de software que analisa uma rede eléctrica ou negoceia na Internet entre outros. Esta assumpção é essencial pois é determinante na definição e na actuação de um agente (se a sua existência fosse autónoma até em relação aos seus objectivos, um agente poderia ser visto como uma caixa preta, sem qualquer utilidade). As interacções com o ambiente são essenciais ao agente pois permitem alterar o ambiente através de acções ou obter através dos sensores informações úteis para cumprimento dos seus objectivos (incluindo a avaliação do seu próprio desempenho). Tantos os sensores como os mecanismos de acção dependem do contexto e natureza do agente. Podemos considerar como sendo um agente, desde um robô com sensores ópticos e rodas até agentes de software que negoceiam na Internet ou recolhem informações de bases de dados. Existe uma enorme variedade de tipos de agentes sendo impossível referilos todos. No contexto desta tese, a atenção centra-se nos agentes que tem a sua existência ao nível do software Arquitecturas de agentes Segundo Pattie Maes, as arquitecturas são especificações de como se pode construir agentes através de módulos e como estes interagem ente si. Os módulos e interacções existentes entre os mesmos devem especificar como, a partir dos dados dos sensores e do estado actual do agente, são obtidas as acções e o novo estado interno [Maes, 96]. Um aspecto importante num agente é a sua arquitectura interna. A arquitectura interna de um agente está associada à sua própria definição e mecanismos de decisão do agente que determina a influência de actuação individualmente e na própria arquitectura do Sistema Multi-Agente. As arquitecturas de agentes definem assim o comportamento interno de

49 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 29 cada agente mas, também o próprio Sistema Multi-Agente onde os agentes estão inseridos. Wooldridge e Jennings afirmam que a arquitectura de um agente pode ser estruturada através de uma metodologia específica para definir agentes, abrangendo técnicas e algoritmos para suportar essa mesma metodologia [Wooldridge e Jennings, 94]. A Inteligência Artificial classifica os agentes computacionais em três grandes categorias: agentes deliberativos, reactivos e híbridos [Wooldridge, 98]: Agentes deliberativos: Abordagem clássica onde os agentes actuam com pouca autonomia, com uma visão top-down e possuindo modelos simbólicos explícitos para verificar informação e gerar acções no seu ambiente através de raciocínio lógico (figura 4.1). Este tipo de agente permite com alguma facilidade que se análise a qualidade do desempenho do agente. Normalmente, este tipo de agente tem: um objectivo, crenças acerca do seu contexto e mecanismo de raciocínio. Na construção destes agentes levantam-se dois problemas concretos: como traduzir o mundo para uma descrição simbólica em tempo real e como raciocinar utilizando essa informação simbólica de forma a decidir as acções a executar em cada instante. Conhecimento Raciocínio Acções Possiveis Decisão Actualização do Estado do Mundo Objectivos Interpretação da Percepção Execução da Acção Comunicação AMBIENTE Acção percepção Figura 4.1: Representação de um agente deliberativo genérico

50 30 CAPÍTULO 4: SISTEMAS MULTI-AGENTE Agentes reactivos: Abordagem que procura não utilizar um modelo ou raciocínio simbólico complexo, comportando-se autonomamente no ambiente inserido em que os comportamentos inteligentes emergem da dinâmica das interacções com o contexto [Brooks, 91]. O agente toma as suas decisões em tempo real, geralmente com base em um conjunto de informação muito limitada. A informação proveniente dos sensores é normalmente utilizada directamente no processo de decisão não sendo criada qualquer representação simbólica do mundo (ver figura 4.2). Regras simples situação/acção (comportamentos) Interpretação da Percepção Decisão Execução da Acção percepção AMBIENTE Acção Figura 4.2: Representação de um agente reactivo genérico Agentes híbridos: Combinam as características das duas abordagens anteriores, retirando os seus pontos fracos. Os agentes reactivos são limitados em implementar comportamentos orientados aos objectivos. Por sua vez, os deliberativos são baseados em mecanismos de raciocínio complexo, tendo por vezes algumas dificuldades em reagir a estímulos exteriores. Modelos híbridos estruturam-se hierarquicamente por níveis ou camadas, possibilitando uma melhor estruturação das funcionalidades e controlo do agente. Normalmente a camada reactiva tem prioridade em relação à deliberativa de forma a permitir um estímulo mais rápido aos eventos do ambiente (ver figura 4.3).

51 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 31 componente deliberativa Conhecimento Raciocínio Acções Possiveis Decisão Deliberativa Actualização do Estado do Mundo Objectivos componente reactiva Interpretação da Percepção Regras simples situação/acção (comportamentos) Decisão reactiva Fusão das decisões Comunicação percepção AMBIENTE Acção Execução da Acção Figura 4.3: Representação de um agente híbrido Como exemplo desta solução híbrida Neves e Oliveira apresentam um robô móvel movimentando-se em ambientes com um grau de incerteza respeitante à sua previsibilidade [Neves e Oliveira, 97]. A componente deliberativa tem a função de guiar o comportamento da reactiva, através de sugestões de planos a realizar. No entanto, em situações de emergência (iminência de uma colisão), a componente reactiva sobrepõe-se à componente deliberativa, assumindo o controlo do robô móvel Agentes emocionais É cada vez mais óbvio que existe potencial para casar a tecnologia de agentes com as áreas do cinema, jogos e realidade virtual [Wooldridge e Jennings, 95]. Para construir tais mundos simulados, é necessário desenvolver agentes com propriedades de ser credível ou parecer real, semelhante aos seres humanos [Bates, 94] [Reilly, 92]. O conceito de emoção é natural em humanos, mas é bastante difícil de implementar no domínio dos robôs, incluindo os agentes de software. A ideia geral é construir agentes que possam sentir, pensar, desejar, ter reacções emocionais. J. Bates critica o facto dos investigadores da Inteligência Artificial procurarem apenas construir agentes que raciocinem, que resolvam problemas e aprendam, sendo realizado pouco investimento nas habilidades emocionais do agente [Bates, 94]. As habilidades emocionais num agente de software tem como objectivo:

52 32 CAPÍTULO 4: SISTEMAS MULTI-AGENTE Realizar uma avaliação interna do agente para medir se os objetivos do agente estão a ser cumpridos; Ser utilizadas de forma a criar um planeamento para as futuras acções; Ser utilizadas como uma forma de comunicação entre agentes; Ser exteriorizadas por meio de actuações no próprio estado interno do agente que se exterioriza na aparência do agente diante do mundo. Vários projectos têm utilizado arquitecturas emocionais de agentes, no qual se destaca o projecto OZ da Universidade de Carnegie Mellon, Pittsburgh, que consiste na criação de mundos virtuais que contêm um conjunto de expressões que fornecem ao utilizador a oportunidade de sentir e interagir dentro dos vários mundos. O projecto fornece um conjunto de ferramentas para criar tipos de dramas interactivos utilizando expressões interactivas, em tempo real e animadas [Bates et al., 92a]. Um mundo OZ é composto por [Reilly, 92]: Simulação de um ambiente físico; Agentes que reagem as mudanças no ambiente, comportamentos direccionados aos objectivos, emoções e personalidade; Habilidade social e habilidades de linguagem; Interface; Teorias do drama. No entanto, para Cañamero [Cañamero, 97], as emoções corporais e suas várias expressões são uma parte essencial da aparência, apresentação e surgimento de cocomportamentos a longo prazo. O agente de software também é dotado de motivação relacionada à sobrevivência que leva o agente a agir com autonomia, disposição e temperamento que contribuem de uma forma importante para definir a personalidade do agente. Para o reconhecimento de emoções, o autor propõe o uso de padrões para caracterizar as diferentes emoções. 4.2 Arquitecturas BDI ( Belief-Desire-Intention ) A arquitectura BDI é uma arquitectura essencialmente deliberativa [Rao e Georgeff, 91], na medida em que se baseia em modelos simbólicos explícitos e num raciocínio lógico. O modelo de cognição do agente é descrito através de um conjunto de estados mentais : crenças ( Belief ), desejos ( Desire ) e intenção ( Intention ), denominada de arquitectura BDI. A fundamentação filosófica para esta concepção de agentes vem do trabalho de Dennett [Dennett, 87] sobre sistemas intencionais e de Bratman sobre raciocínio prático [Bratman, 87]. A primeira implementação de um sistema baseado nestas idéias foi o IRMA (Intelligent Resource-bounded Machine Architecture) [Bratman

53 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 33 et al., 88]. Com base nesta experiência, foi criado outro sistema que usa uma arquitectura BDI, chamado PRS (Procedural Reasoning System) [Georgeff, 87] e o seu sucessor dmars [d Inverno, 98]. Foi com base nestas experiências que Rao criou a linguagem de programação AgentSpeak(L) 17. Georgeff e Rao foram os principais autores a elaborarem arquitecturas abstractas de agentes baseadas no modelo BDI, bem como na concepção de lógicas BDI [Rao e Georgeff, 92, 95] [Rao, 96]. De seguida serão definidos os vários conceitos de estados metais, e serão apresentadas as diferentes arquitecturas BDI de maior interesse para esta tese Estados mentais (crenças, desejos e intenções) A ideia básica de uma arquitectura BDI baseia-se na descrição do processamento interno do agente utilizando para isso um conjunto de estados mentais e na definição da arquitectura de controlo, através do qual o agente selecciona racionalmente o seu curso das acções a executar. Os estados mentais diferem ligeiramente de autor para autor, no entanto as noções de crença, desejo e intenção são aceites unanimemente, até porque estão na origem do nome atribuído à classe de arquitecturas de agentes. Crenças: as crenças são basicamente as informações em que o agente acredita referentes ao mundo e a si mesmo em cada instante, mas podem incluir informações a respeito do resultado da execução de acções ou sequências de acções pré-especificadas para atingir determinados objectivos. Por outro lado, o conceito relacionado com crença é o de conhecimento, sendo geralmente o conhecimento definido como uma crença verdadeira. Desejos: são as motivações do agente [Rao e Georgeff, 95] correspondendo a tarefas estabelecidas pelo próprio agente. Assim, como os agentes humanos, não se exige que os desejos sejam logicamente consistentes. O desejo é um estado emocional e com potencial motivador para atingir os vários objectivos que resultam do processo de raciocínio. Desejos apresentam assim as seguintes características: Representam um conjunto de situações em que o agente gostaria que o mundo estivesse. Podem estar em conflito com as crenças do próprio agente. Podem ser, simultaneamente, conflitosos com outros desejos do agente. As acções não são directamente executadas pelos desejos, mas potencialmente pelas várias intenções criadas pelos desejos. 17 AgentSpeak(L) Linguagem de programação para Agentes BDI [Rao, 96].

54 34 CAPÍTULO 4: SISTEMAS MULTI-AGENTE Intenções: As intenções são as tarefas ou acções que o agente seleccionou para realizar, resultantes da escolha dos desejos que sejam consistentes com as crenças do agente, com as intenções já seleccionadas e do comprometimento do agente com a sua realização dos seus objectivos. Como exemplo temos um agente que pode ter como intenção comprar algo, mas não decidiu onde. As intenções devem ser consistentes internamente e representam o resultado do processo de deliberação Arquitectura IRMA de Bratman A arquitectura IRMA (Intelligent Resource-Bounded Machine Architecture), foi desenvolvida tendo por definição duas características fundamentais para agentes racionais [Bratman, 87]: Inclusões de capacidades para realizar raciocínio de meios-fins, forma de como avaliar cursos alternativos de acção e especificar como essas capacidades se relacionam. Limitação dos recursos do agente. A arquitectura representada na figura 4.3 é constituída por um vários módulos, que são: Estrutura de intenção: conjunto de intenções ordenadas no tempo; Planos estruturados em árvore: conjunto de sub-planos; Raciocinador meios-fins : que raciocina sobre as crenças proveniente da percepção do ambiente procurando sub-planos para completar os planos já adoptados pelo agente que pertencem à estrutura de intenção do agente; Um analisador de meios-fins : que determina quais os planos que podem ser usados para alcançar as intenções do agente; Processo de filtragem: módulo que recebe as opções do analisador e raciocinador de meios-fins, testando a compatibilidade das opções com as intenções actuais do agente; Analisador de oportunidades: que analisa o ambiente para determinar opções adicionais para o agente; Deliberação: a escolha final das opções é efectuada pelo processo de deliberação sendo adoptada como intenção do agente.

55 Percepção CAPÍTULO 4: SISTEMAS MULTI-AGENTE 35 Acção Planos Intenções Analisador de oportunidades Raciocinador Meios-Fins opções Filtro de Compatibilidade Filtro de Sobreescrita opções opções seleccionadas Crenças Deliberação Desejos Raciocinador Figura 4.3: Arquitectura IRMA, segundo [Bratman, 87] As crenças do agente são actualizadas pelas suas percepções que resultam do ambiente. O analisador de oportunidades sugere opções de acções a executar baseadas nas próprias crenças e desejos do agente. As opções que são sugeridas pelo raciocinador pertencem à estrutura de intenção do agente. As opções disponíveis são executadas através do processo de filtragem, onde são testadas para verificar a estrutura de intenção actual do agente. As opções que passaram no processo de filtragem com sucesso são enviadas para o processo de deliberação de forma a modificar a estrutura de intenção do agente, adoptando assim o agente uma nova intenção. Estas intenções podem ser planos parciais, forçando o raciocinador de meios-fins a propor novas opções, ao mesmo tempo que o analisador de oportunidades propõe novas opções em função da alteração das crenças. É importante referir que as intenções nesta abordagem são planos que o agente adoptou para a execução, estando comprometido com eles futuramente. Os planos adoptados podem ser parcialmente estruturados, representado que o agente está comprometido com um objectivo sem ter executado a deliberação sobre todos os meios para atingir esse fim. Desta parcialidade estrutural surge a necessidade de raciocínios de meios-fins que invocarão sub-planos para complementar o plano parcial Arquitectura PRS de Georgeff e Lansky O Sistema de Raciocínio Processual, PRS (Procedural Reasoning System) desenvolvido pela Stanford Research Institute Internacional, é uma arquitectura BDI genérica para representar raciocínio de acções e procedimentos em ambientes dinâmicos, implicando

56 36 CAPÍTULO 4: SISTEMAS MULTI-AGENTE uma grande reactividade por parte do agente [Georgeff 1986, Georgeff 1989]. Esta arquitectura foi utilizada no domínio espacial pela NASA 18 para controlo reactivo dos propulsores que controlam a posição da nave na sua trajectória. As características da arquitectura PRS que contribuíram para o seu sucesso foram: Estratégia parcial de planeamento; Reactividade; Uso processual do conhecimento; Capacidades reflexivas de metanível; Base de Dados ( Factos, Crenças ) Biblioteca de Planos ( Área conhecimento ) INTERPRETADOR Raciocínador Objectivos ( Desejos ) Estrutura de Intenção Monitor Gerador de Comando Sensores Actuadores Caminho principal de controle AMBIENTE Caminho principal de dados Figura 4.4: Arquitectura PRS, segundo [Rao e Georgeff, 92] A arquitectura PRS, como ilustra a figura 4.4, é subdividida em componentes periféricos e de raciocínio. Os componentes periféricos são: Sensores; Um monitor para traduzir as informações em crenças do agente; Actuadores para gerar eventos no ambiente; Gerador de comandos. 18 NASA National Aeronautics Space Administration (Agência Espacial dos Estados Unidos da América).

57 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 37 Os componentes de raciocínio são: A Base de dados de um agente PRS contem os factos (expressos em lógica de primeira ordem) que o agente conhece a respeito do seu mundo dinâmico, ou também a respeito do seu próprio estado interno de crenças; Conjunto de objectivos (substituem os desejos na teoria BDI) do agente que são descritos como condições sobre um intervalo de tempo, e não na forma de estados estáticos a serem atingidos. Existem objectivos em relação ao comportamento interno do próprio agente, que são designados de objectivos metanível; Biblioteca de planos ou área de conhecimento (KA-Knowledge Área), usada para executar / atingir objectivos (desejos) ou reagir a determinadas situações; Estrutura de intenção, contem todos os planos para execução imediata ou futura (pilhas de área de conhecimento) seleccionados e ordenados por tempo de execução. Normalmente, cada intenção é formada por um plano em conjunto com outros sub-planos. As intenções podem estar em três estados distintos: activas (quando estão aptas para ser executada assim que a sua posição na estrutura o permita); suspensas (quando foram seleccionadas para execução, mas nenhuma decisão foi tomada sobre quando devem ser executadas); suspensas condicionalmente (quando aguardam por uma condição de activação que seja satisfeita). Existe uma relação de precedência entre as intenções assegurada pelo tempo de ordenação na estrutura que evita assim conflitos no momento da execução. Interpretador (ou mecanismo de inferência) controla o funcionamento do agente baseado no conteúdo da base de dados e dos objectivos da seguinte forma: (i) seleccionar os planos da área de conhecimento em resposta aos objectivos e crenças do sistema sem nenhuma forma de raciocínio, possibilitando uma grande rapidez no processo; (ii) confirmar os planos seleccionados na estrutura de intenção e executá-los Arquitectrua COSY de Burmeister e Sundermeyer A arquitectura COSY (COperating SYstem) foi apresentada por Burmeister e Sundermeyer em 1992 [Haddadi e Sundermeyer, 95] e segundo [Wooldridge e Jennings, 95], inclui elementos tanto de PRS quanto de IRMA. A arquitectura COSY adiciona mecanismos de comportamento social aos agentes oferecendo mecanismos de planeamentos simples, algo que as arquitecturas anteriores não contemplam. Esta abordagem descreve um agente através dos seus comportamentos, recursos e intenções. Os comportamentos de um agente são classificados pela sua percepção, cognição e

58 Actuadores Sensores 38 CAPÍTULO 4: SISTEMAS MULTI-AGENTE execução, cada qual simulado por uma componente específica da arquitectura. Os recursos incluem recursos cognitivos (conhecimento e crença), recursos de comunicação (protocolos de baixo nível e comunicação de hardware e recursos físicos). O termo intenção é utilizado para definir dois estados mentais: Intenções estratégicas, modelam um agente em termos de objectivos, preferências e responsabilidades; Intenções tácticas, comprometem o agente com um conjunto de planos de acções escolhidas. A arquitectura do agente é composta por cinco módulos, que são: sensores, actuadores, comunicação, motivação e cognição. A disposição de cada módulo pode ser observada na figura 4.5. Motivações Raciocínio e Decisão Execução de Scripts Execução de Protocolos Comunicação Base de Conhecimento COGNIÇÃO Figura 4.5: Arquitectura COSY, segundo [Haddadi, 96] Os três primeiros módulos são específicos no campo da actuação em que a sua implementação fica fora do agente. As funções de cada um destes módulos são: o módulo actuadores é responsável pelas acções físicas no ambiente; o módulo sensores por fornecer ao agente a informação actualizada sobre o estado e eventos ocorridos no ambiente; o de comunicação pela troca de informação através de mensagens entre os outros agentes. O módulo de motivações (desejos) implementa a intenção estratégica de um agente. O módulo cognição é o responsável pela avaliação da situação, pela escolha e execução das acções e pela análise dos resultados. Este módulo está subdividido da seguinte forma: Base de conhecimento (BC): contem as estruturas para o processo de raciocínio, na qual se encontram informações referentes ao ambiente e sobre os objectivos e intenções dos agentes. Na mesma BC existe um conjunto de planos que são as directrizes que um agente possui para resolver as soluções específicas de um determinado problema;

59 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 39 Componente de execução de scripts (CES): é responsável pela execução dos scripts (planos), enviando os comportamentos da execução para os módulos de actuadores; Componente Execução de protocolos (CEP): é responsável por assegurar os protocolos de comunicação para enviar as mensagens entre os agentes; Componente de raciocínio e decisão (CRD): é o módulo responsável pelo raciocínio sobre o ambiente e pela melhor escolha dos objectivos a atingir ou a executar as intenções tendo em conta a situação actual. Os processos do CRD envolvem três níveis que ocorrem sequencialmente: nível estratégico (os objectivos seleccionados ou existentes são analisados em função de uma situação), táctico (as intenções são analisadas ou novas formadas a partir da escolha de planos para realizar os objectivos) e execução (onde as acções são escalonadas e preparadas para execução) Arquitectura genérica de Wooldridge A arquitectura genérica de um agente BDI é, na abordagem de Wooldridge, constituída por sete componentes principais: conjunto de crenças, função de revisão de crenças, função de geração de opções, conjunto de opções, função de filtragem, conjunto de intenções e função de selecção de acção (ver figura 4.6) [Wooldridge, 99]. Função geração opções possiveis Crenças Desejos Função Revisão de Crenças Função Filtro Intenções Função de Selecção Acção Interpretação da Percepção Execução da Acção Comunicação Percepção AMBIENTE Acção Figura 4.6: Arquitectura BDI genérica, segundo [Wooldridge, 99] Resumidamente, esta arquitectura de agente está estruturada da seguinte forma:

60 40 CAPÍTULO 4: SISTEMAS MULTI-AGENTE As crenças: representam a informação que o agente possui sobre o estado do ambiente e dos vários agentes inseridos no ambiente (inclusive sobre si mesmo). Os desejos: representam os possíveis cursos de acção que o agente quer atingir. Em tese, os desejos podem ser contraditórios, ou seja, pode-se desejar coisas que são mutuamente exclusivas do ponto de vista prático. Normalmente referem-se a objectivos como um subconjunto dos desejos que são todos compatíveis entre si. As intenções: representam as sequências de acções que um agente se compromete a obter para atingir um determinado objectivo. A função de revisão de crenças (FRC): recebe a informação através das percepções (percebe alterações no ambiente) e, consultando as crenças anteriores do agente, actualiza as próprias crenças para que elas reflictam o novo estado do ambiente. Com esta nova representação do estado do ambiente, é possível que existam novas opções disponíveis (opções de estados a serem atingidos). A função de geração de opções: função que analisa quais as novas acções (desejos) a serem realizadas (consultando quais as intenções com que o agente já está comprometido), uma deliberação deve ocorrer para a escolha de algumas destas novas opções com as quais o agente se comprometerá (actualizando então os desejos do agente). Definido o conhecimento e a motivação do agente, é preciso em seguida decidir que curso de acções específico será usado para alcançar os objectivos actuais do agente (para isto é preciso levar em conta os outros cursos de acções com os quais o agente já se comprometeu, para evitar acções incoerentes). A função filtro: processo que representa a deliberação do agente que actualiza as intenções deste com base nas suas crenças e desejos actuais, nas suas intenções prévias. Esta actualização implica, por vezes, a desistência de intenções que deixam de ser atingíveis, ou apresentam um custo elevado, e a adopção de novas intenções que resultam das novas opções geradas. A função de selecção de acção: determina qual a acção a realizar em cada momento com base nas intenções actuais do agente.

61 CAPÍTULO 4: SISTEMAS MULTI-AGENTE Sistemas Multi-Agente (SMA) Os Sistemas Multi-Agente formam uma sub-área da Inteligência Artificial Distribuída (IAD), em que se pretende definir mecanismos para a criação de sistemas computacionais a partir de entidades autónomas, denominadas de Agentes, que interagem através de um ambiente comum, sobre o qual os agentes actuam, alterado o seu estado interno. Os SMA constituem uma nova área nas ciências da computação, tendo início nos anos 80, alcançando a notoriedade nos anos 90 [Wooldridge, 02]. Os SMA são a evolução natural do conceito de um agente isolado para um sistema composto por múltiplos agentes num mesmo grupo de trabalho, exibindo cada agente um comportamento autónomo mas que, em simultâneo, interage uns com os outros agentes do sistema. Um SMA apresenta as seguintes características fundamentais: Interacção os agentes interagem com o ambiente e entre si num SMA; Objectivo global o SMA têm um objectivo global, independentemente dos objectivos de cada agente não serem coincidentes com o objectivo global; Topologia do SMA a topologia permite estabelecer relações hierárquicas entre agentes, o que é importante na descrição dos fluxos de interacção no SMA; Relacionamentos para os agentes poderem interagir entre si é necessário que os interlocutores se conheçam; Assunção de um mundo dos agentes o SMA assume à priori um ambiente e os tipos de agentes que o constituem. Esta assunção condiciona a flexibilidade dos agentes, mas é necessária para restringir as variáveis no SMA. Os requisitos para desenvolvimento de um controlo de câmara inteligente onde existe operadores e um realizador implicam, necessariamente, o uso de capacidades distribuídas, coordenação, cooperação e negociação. Tais capacidades podem ser realizadas com sucesso através de uma aproximação às metodologias de agente e Sistemas Multi-Agente O conceito de Sistema Multi-Agente Um Sistema Multi-Agente é um sistema computacional no qual dois ou mais agentes interagem ou trabalham em conjunto num conjunto de tarefas ou satisfazem um conjunto de objectivos a que são propostos. [Lesser, 99]. Os Sistemas Multi-Agente incluem diversos agentes que interagem ou trabalham em conjunto, podendo compreender agentes homogéneos ou heterogéneos. Um agente no sistema é considerado uma parte da resolução do problema, operando assincronamente com uma certa autonomia respeitando sempre os outros agentes do sistema.

62 42 CAPÍTULO 4: SISTEMAS MULTI-AGENTE Agente Relação organizacional Interacção Organização Esfera de Influência Ambiente Figura 4.7: Estrutura de um Sistema Multi-Agente A estrutura do SMA representado na figura 4.7 inclui uma infra-estrutura hierárquica onde os agentes operam, sistema esse que permite a comunicação e/ou a interacção entre os vários agentes. O SMA contêm vários agentes, cada qual com diferentes capacidades de percepção e acção no mundo, tendo uma esfera de influência distinta sobre o ambiente, sendo capaz de influenciar outras organizações ou partes do ambiente [Jennings, 99]. A investigação em Sistemas Multi-Agente derivou da Inteligência Artificial Distribuída, constituíndo actualmente o núcleo deste campo. Inclui a investigação em diversas áreas científicas, sendo extremamente abrangente. A investigação está focada para o desenvolvimento de princípios computacionais, construção de modelos para descrever, implementar e analisar as formas de interacção e coordenação de agentes em sociedades de reduzida ou elevada dimensão [Lesser, 99] Interacção e comunicação entre agentes A comunicação entre entidades computacionais foi desde sempre considerada um dos problemas mais importantes das ciências da computação. No entanto, na área dos Sistemas Multi-Agente, a comunicação é tratada a um nível muito mais elevado do que nas outras áreas das ciências da computação. A comunicação tem dois fins principais: partilha do conhecimento, informação, crenças ou planos com outros agentes; e coordenação de actividades entre agentes. [Reis, 03] Como já foi dito anteriormente, o SMA tem inerente a interacção entre os agentes, possuidores de capacidades de percepção, processamento e actuadores num dado ambiente. A comunicação está normalmente associada a pelo menos dois interlocutores

63 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 43 (agentes) [Lesser, 99] com capacidades de comunicar e habilidade social, para que possa interagir com os outros agentes e/ou humanos presentes no seu ambiente. AGENTE Módulo Inteligente Recepção de Mensagens Módulo de Comunicação Envio de Mensagens Percepção Percepção da comunicação Acção da comunicação Acção AMBIENTE Figura 4.8: Agente com capacidades de comunicação Na figura 4.8 é representado um agente genérico com capacidades de comunicação. Os agentes com capacidade de comunicação incluem normalmente um módulo de comunicação na sua arquitectura que se subdivide nas componentes de percepção (recepção de mensagens) e de acção (envio de mensagens). O módulo de comunicação está ligado directamente ao módulo central (módulo inteligente) para que possa ter acesso às mensagens recebidas/envidas. Huhns e Stephens descrevem que a comunicação entre os agentes pode assumir duas arquitecturas básicas, que são: [Huhns e Stephens, 99] Comunicação directa Quando dois ou mais agentes trocam informação por mecanismos dedicados sem intervenção de outros agentes. Os agentes tratam da sua própria coordenação, partilham especificações, enviando aos outros agentes as suas capacidades e/ou necessidades para que cada agente possa tomar individualmente as suas decisões relativas à comunicação. Comunicação assistida Os agentes apoiam-se noutros agentes, chamados facilitadores, para comunicarem entre si, organizando-se num sistema federado. Nestes casos, se um agente i deseja enviar uma mensagem ao agente j, terá primeiro de a enviar para o agente facilitador, que se encarregará de a reencaminhar ao seu destinatário. Na arquitectura de comunicação directa é colocado o problema da falta de coordenação da comunicação, pois não existe um agente coordenador, o que pode originar bloqueios nos sistemas de comunicação. Como exemplo temos o caso de existir um número razoável de agentes que decidiram enviar mensagens ao mesmo tempo. Por sua vez, na comunicação

64 44 CAPÍTULO 4: SISTEMAS MULTI-AGENTE assistida, o problema da coordenação não existe derivado a presença do agente facilitador, diminuindo consideravelmente a complexidade necessária aos agentes individuais na realização da comunicação. No entanto o agente facilitador pode trazer uma certa centralização no sistema e estrangulamento (bottleneck). É de realçar ainda que se o agente deixar de funcionar toda a comunicação pára. A comunicação entre agentes pode ser implementada de duas formas distintas, dependendo do nível de implementação das comunicações. Assim temos: Memória partilhada ( quadro-negro ) por todos os agentes da comunidade; Passagem de mensagens entre agentes ou módulos destes. A passagem de mensagens entre agentes é o modo de comunicação mais utilizado, assegurando a privacidade e rapidez da mensagem que é transmitida sem comprometer a eficácia do sistema. As soluções de memória partilhadas são mais difíceis de distribuir obrigando a metodologias adicionais para sincronização dos agentes Protocolos e níveis de comunicação Os protocolos de comunicação são definidos por vários níveis [Huhns e Stephens, 99]. Os níveis inferiores definem o método de interligação, o formato (sintaxe) diz respeito aos níveis intermédios. Por último, os níveis superiores dizem respeito ao sentido (semântica). A semântica refere-se tanto ao conteúdo como ao tipo da mensagem. Existem associados aos protocolos a aridade que pode ser binária ou de ordem n. Enquanto um protocolo binário envolve apenas um emissor e um receptor, um protocolo de aridade n implica a existência de um emissor e múltiplos receptores. Genericamente podemos definir que um protocolo contém a seguinte estrutura de dados [Huhns e Stephens, 99]: Emissor; Receptor ou Receptores; Linguagem utilizada; Funções de codificação/descodificação da linguagem; Acções que o receptor deve executar Linguagens de comunicação Existem várias linguagens definidas no âmbito da comunicação em Sistemas Multi- Agente que permitem uma comunicação ao mais alto nível. Estas linguagens normalmente aparecem associadas a projectos específicos. Entre as mais utilizadas, podem-se referir as seguintes:

65 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 45 A linguagem KQML (Knowledge and Query Manipulation Language) - O KQML é uma linguagem externa para troca de informação e conhecimento entre agentes, baseada nos actos de discussão ( speech acts ). O KQML, na sua definição, assume certas condições de base a nível do transporte e ligações entre agentes, fornecendo uma série de construtores que permitem acomodar e classificar na mensagem grande parte das semânticas existentes numa comunicação (ask, reply, tell, subscribe, discard, etc), para além de permitir acomodar informação acerca do próprio processo de comunicação (content, language, ontology, sender, receiver, etc). Para um estudo mais alargado recomenda-se [Finin et al., 93] ou [Labrou e Finin 1994]. Formato KIF (Knowledge Interchange Format) - A ideia base do KIF [Genesereth e Fikes, 92] é ser um formato que permite descrever informação simples a suportar a definição de modelos lógicos (lógica de primeira ordem: operadores booleanos e lógicos (and, or, not, etc.), quantificadores universal e existencial, de raciocínio não monótono associados a entidades em sistemas periciais, bases de dados, agentes inteligentes, etc. No entanto, outras linguagens têm sido também usadas como veículos das mensagens, como é o caso do Prolog [Bratko, 86] e do Lisp [Steele, 90]. O KIF é proposto como linguagem de expressão do conteúdo da mensagem KQML. A linguagem ACL (Agent Comunication Language) - A linguagem ACL é semelhante no formato à linguagem KQML. Define essencialmente a estrutura exterior da mensagem. No entanto, o número de performativas é bastante inferior ao número de performativas KQML. A linguagem ACL define unicamente 20 performativas para definir a interpretação desejada para cada tipo de mensagem. A importância das linguagens de comunicação é tentar definir modelos que providenciem conceitos e sintaxes que possam ser comuns entre as várias abordagens existentes que permitam a existência de Sistemas Multi-Agente realmente heterogéneos em que a comunicação possa existir entre dois agentes independente da sua natureza Ontologias Como analisado anteriormente, para que seja possível que os agentes interajam num sistema é necessário todos os agentes falar a mesma linguagem com o mesmo significado (ontologia), pois só assim serão capazes de entender e serem entendidos pelos outros agentes. Uma ontologia não é mais do que: a representação do conhecimento de um dado domínio, disponibilizada a todos os outros componentes de um sistema de informação [Huhns e Singh, 97].

66 46 CAPÍTULO 4: SISTEMAS MULTI-AGENTE Num contexto de SMA, uma ontologia é uma representação formal de conceitos, características e relacionamentos num dado domínio específico, permitindo o entendimento entre os diversos agentes [Reis, 03]. Diversas áreas de investigação aplicam ontologias, nomeadamente: no desenvolvimento de bases de dados, na componente da sua especificação, com a utilização de modelos como o Relacional ou Entidade-Associação ou ainda o UML (Unified Modeling Language) [Bergenti e Poggi, 00] [Odell et al., 00] [Cranefield et al., 01] Metodologias de concepção de um SMA Um aspecto fundamental para a concepção de um SMA é ter em conta o objectivo global a atingir. Já sabemos que os vários agentes do SMA também possuem objectivos na sua definição. A dúvida que se coloca agora é saber como conjugar um objectivo global de um SMA com os vários objectivos dos agentes que o compõem. Na realidade essa dúvida não existe, se os agentes fazem parte de um SMA, logo, de alguma forma, os seus objectivos se esquadrão no esquema de obtenção do objectivo global. Assim, tanto na fase de implementação e definição de um SMA, (descrição, escolha dos agentes, interacções e objectivos dos agentes) o objectivo global está sempre implícito. Na concepção de um SMA podemos considerar duas abordagens distintas: a deliberativa e a comportamental, as quais são descritas da seguinte forma: A abordagem deliberativa, ao assumir um objectivo ao nível do SMA, tenta modelar e condicionar vários aspectos do próprio sistema SMA (morfologia e topologia) e dos agentes (modelos) que reflectem os objectivos do SMA. Tenta-se garantir o sucesso desta abordagem através de: Esquemas de interacção entre agentes, para controlar as interacções a nível local do SMA; Objectivos dos agentes em particular, reflectindo papéis mais ou menos precisos no âmbito do SMA: os próprios agentes terem uma noção de que estão integrados num SMA, com outros agentes, e que de alguma forma existe um objectivo global comum atingir. A abordagem comportamental cai num outro extremo. A concepção deste modelo é obtida através do comportamento das interacções entre os agentes para que se possa alcançar o objectivo global do sistema. Esta abordagem baseia-se bastante na Etologia, ciência que estuda os comportamentos [Brooks, 91] [Drogoul e Ferber, 92] [Mataric, 94]. Assim, a concepção de um SMA é considerada como um processo interativo que implica a experimentação de configurações e a avaliação e estudo do comportamento global emergente do SMA. O processo de experimentação pode implicar o estudo de

67 CAPÍTULO 4: SISTEMAS MULTI-AGENTE 47 combinações que podem envolver parâmetros desde os modelos dos agentes, número de agentes no SMA, tipos de agentes e sua distribuição no SMA, etc. Estas duas abordagens tentam atingir o seu objectivo global com duas estratégias completamente diferentes. Enquanto a abordagem deliberativa tem uma lógica top to bottom, tentado definir os objectivos globais do SMA até às funções dos seus agentes, a abordagem comportamental tem uma abordagem inversa, bottom up, que a partir das combinações dos agentes do SMA tenta alcançar o objectivo global Avaliação de um sistema multi-agente Para avaliarmos um SMA é necessário um processo de avaliação para que se tenha como alvo o objectivo global a cumprir por parte dos agentes que o compõem. A avaliação é fundamental na definição de um SMA, pois as avaliações incluem um grau de satisfação inerente e custos associados respeitante aos objectivos a atingir. A avaliação é necessária quando se aborda um SMA no ponto de vista comportamental. 4.4 Conclusões No domínio do controlo de câmaras inteligentes não existe modelos utilizando Sistemas Multi-Agente. Este trabalho torna-se pioneiro pela utilização de um paradigma original para resolver o problema. Uma parte do problema passa pela optimização e cálculo matemático, mas a outra parte passa pela coordenação dos vários intervenientes (realizador, operadores de câmaras, actores). A integração do conceito de Agentes e SMA no MAICC traz a este um nível extremamente poderoso. Os agentes introduzem: Controlo descentralizado; Diversas arquitecturas de organização interna; Facilidade de implementação de comportamentos inteligentes; Flexibilidade através da pró-actividade e autonomia; Para além de ser uma noção naturalmente distribuída, o conceito de SMA permite introduzir e modelar as interacções num sistema distribuído de uma forma mais harmoniosa e conceptual introduzindo as seguintes características ao modelo: Distribuição do conhecimento; Melhoramento do desempenho em relação a sistemas centralizados nas vertentes de eficiência computacional, fiabilidade, escalabilidade, facilidade de manutenção, flexibilidade ou reutilização; Relações de cooperação, competição, etc. Uniformização do processo de comunicação, incluindo a própria linguagem de comunicação entre agentes; Coordenação do sistema.

68 48 CAPÍTULO 5: FUTEBOL ROBÓTICO 5 FUTEBOL ROBÓTICO O Futebol Robótico (RoboCup) é um campeonato do mundo de futebol para robôs que se realiza todos os anos e que tem como objectivo promover a investigação e integração das áreas da Inteligência Artificial e Robótica nas suas tarefas comuns, nomeadamente na evolução de algumas teorias, algoritmos, aprendizagem e arquitecturas de Sistemas Multi- Agente [Kitano et al., 95] [Kitano et al., 97] [Asada et al., 00]. O primeiro RoboCup-97 decorreu em 1997, organizado em conjunto com o IJCAI em Nagoya, Japão, participando trinta e nove equipas [Noda e Frank, 00]. O RoboCup-98 aconteceu em Paris em Julho de 1998 sendo os jogos vistos por 15,000 pessoas, sendo a cobertura da competição assegurada por 120 representantes da comunicação social internacional, nomeadamente estações de televisão 20 e revistas científicas [Asada et al., 00]. O RoboCup-99 realizou-se em Estocolmo, Suécia, tendo um crescimento notável, com a participação de noventa equipas [Noda e Frank, 00]. As edições seguintes do RoboCup disputaram-se, Melbourne 2000 e Seattle As últimas edições do RoboCup transformaram-se em grandes eventos científicos com centenas de participantes e milhares de espectadores. No RoboCup 2002 em Fukuoka participaram 288 equipas, com mais de 1000 investigadores envolvidos e assistiram ao certame um total de mais de 110 mil espectadores. O RoboCup 2003 foi realizado em Itália apresentando o mesmo sucesso que os anteriores. O campeonato do Futebol Robótico é dividido em várias categorias, sendo que destas todas, excepto uma, envolvem o uso de robots reais. A excepção consiste na liga de simulação que utiliza numa plataforma cliente servidor onde os jogadores são programas (agentes de software) que se conectam a um servidor central, o soccerserver [Cheny et al., 02], onde toda a partida é simulada. É na categoria simulada que se baseia esta tese. 5.1 Descrição geral do futebol robótico simulado O Futebol Robótico simulado é um jogo de futebol, específico e muito atractivo, pois é jogado num ambiente distribuído e em tempo real, sendo suportado por uma arquitectura multi-agente, uma das áreas da inteligência artificial. Incluindo assim um conjunto de problemas científicos, que passa pelo processamento em tempo real, robustez de comunicação com ruído, cooperação de agentes numa arquitectura multi-agente e processamento incompleto de informação. A simulação é assegurada por uma arquitectura cliente servidor em que o servidor central é designado de soccerserver no qual se modela uma campo de futebol virtual composto por duas equipas de agentes. Cada equipa 19 The Internacional Joint Conference on Artificial Intelligence. 20 A cobertura televisiva foi efectuada, nomeadamente pela CNN, ABC, NHK e TV-Aich.

69 CAPÍTULO 5: FUTEBOL ROBÓTICO 49 é constituída por onze jogadores (e um treinador) [Noda e Frank, 00], tendo como objectivo marcar o maior número de golos para ganhar o jogo à equipa adversária. Os jogadores do Futebol Robótico 21 são programas que representam os jogadores, que se conectam ao servidor soccerserver. As percepções e acções dos jogadores são mapeadas em mensagens enviadas e recebidas através do protocolo de comunicação, num ambiente de rede. Esta arquitectura permite assim que os vários clientes possam ser desenvolvidos em qualquer linguagem de programação, desde que suporte este tipo de comunicação [Noda e Stone, 00]. 5.2 Servidor soccerserver A primeira versão preliminar do servidor foi desenvolvida em 1993 por Itsuki Noda para demonstrar as capacidades de uma linguagem de programação chamada MWP, um tipo Prolog com multi-tarefa, sendo a sua visualização efectuada num terminal VT100. A primeira versão a apresentar a actual arquitectura cliente - servidor foi a versão zero, escrita em 1994, em Lisp. Essa versão utilizava TCP/IP para comunicação com os clientes, e a sua saída de visualização era exibida em um terminal X11, mas ainda com uma representação utilizando caracteres [Corten et al., 99]. A versão 1 surgiu na reescrita da versão em Lisp para C++ em A versão 2 foi iniciada em 1996, para a realização da pré-robocup-96, que se realizou em Osaka, Japão. Essa versão foi a primeira a dividir a funcionalidade do servidor (soccerserver) e do visualizador (soccer monitor). Além disso, o visualizador exibia os jogos utilizando agora não mais caracteres mas sim gráficos, e um jogo poderia ser assistido de vários terminais X11 conectando-se assim vários visualizadores a um mesmo servidor. A versão 3 do servidor, que seria utilizado na primeira RoboCup-97 oficial [Cheny et al., 02], apresentava recursos adicionais, como: Logplayer, módulo para gerar ficheiro das partidas para futura análise; Informações sobre a movimentação dos objectos, no campo de visão do agente; Capacidade de comunicação entre os agentes, ouvir/enviar mensagens. A versão 4 surgiu após a RoboCup-97 e foi usada no Japão, com os seguintes novos recursos: Modelo de cansaço dos jogadores mais realístico; Implementação de jogadores do tipo guarda-redes; Implementação de foras de jogo; 21 Os termos cliente e agente do Futebol Robótico serão utilizados indiferentemente, uma vez que os programas clientes jogadores do simulador são tipicamente agentes autónomos.

70 50 CAPÍTULO 5: FUTEBOL ROBÓTICO Informação visual do cliente tendo em conta a sua direcção; Introdução da componente física do jogador. Nas versões seguintes foram poucas as alterações efectuadas. A versão 5 foi usada em Estocolmo 1999, Suécia, a versão 6 em Melbourne 2000, Austrália. As versões 7.0 e 8.0 foram implementadas em 2001, sendo a última versão a Descrição funcional do servidor O soccerserver é um servidor que controla um jogo de futebol num campo virtual de acordo com um conjunto de regras do jogo, simulando os movimentos da bola e dos jogadores, e é responsável pela comunicação entre os diferentes agentes do jogo, numa arquitectura de cliente - servidor (figura 5.1) [Kitano et al., 95]. Soccer Server Cliente Cliente Socket Socket Gestor de mensagens Visualizador Arbitro X Window Cliente Socket Simulador de campo UDP/IP Figura 5.1: Arquitectura cliente - servidor do soccerserver Cada cliente controla apenas um jogador que está conectado ao servidor pela rede, usando para isso uma conexão via socket UDP/IP. Todas as acções do agente são tomadas no cliente, sendo a informação enviada por comandos para o servidor. Por sua vez o agente recebe do servidor informação visual, auditiva e física através dos seus sensores de informação [Noda e Stone, 00]. O servidor é constituído por três grandes módulos que permite assim a comunicação perfeita com os clientes [Noda et al., 97]. Os módulos são: Simulador de campo: módulo que permite calcular o movimento dos vários agentes e analisar as colisões entre os vários intervenientes no campo; Gestor de mensagens: módulo que controla a comunicação de mensagens entre o servidor e os clientes; Árbitro: módulo que assegura que as regras do jogo são cumpridas.

71 CAPÍTULO 5: FUTEBOL ROBÓTICO Domínios do simulador O campo de jogo e os agentes O campo de jogo e os agentes são representados no servidor por um sistema de coordenadas a duas dimensões. As medidas do campo de futebol virtual são definidas de acordo com as medidas oficiais estabelecidas pela FIFA 22 (105m por 68m) e a única excepção é a largura das balizas, que é o dobro, porque a duas dimensões, é mais difícil marcar golos. Os agentes que se movem no campo são os jogadores e a bola. Estes agentes são representados por um círculo, e têm um raio de 0.3m e 0.085m respectivamente (figura 5.2) [Cheny et al., 02]. Jogador 0.6 m 6 Bola 0.17 m Figura 5.2: Representação do jogador e bola no soccerserver Os agentes jogadores e bola apresentam os seguintes parâmetros no servidor: Tabela 1: Parâmetros dos agentes no soccerserver Parâmetro Tamanho Posição Velocidade Aceleração Direcção Decadência Ruído Descrição Dimensão do raio do objecto. As dimensões por defeito do jogador e da bola são 0.3 e respectivamente. Coordenadas X, Y em 2-Dimensões do centro do objecto. Velocidade de deslocação do objecto em 2-Dimensões Aceleração do objecto. Direcção de deslocação do objecto Parâmetro da decadência da velocidade. Se parâmetro for um então o objecto continua a mover-se, se zero então o objecto pára imediatamente. Taxa de incerteza do movimento de um objecto. Se valor zero então o objecto move-se de acordo com a velocidade. Se positivo então o ruído é adicionado ao movimento. A magnitude do ruído é proporcional ao valor do parâmetro como ao da velocidade do obj. O campo de jogo também é constituído por objectos estáticos que são visíveis e não se movem. Os objectos são balizas, linhas de jogo e bandeiras. Os clientes do servidor não sabem as posições absolutas dos jogadores mas sim as posições relativas dos objectos 22 Federation Internationale de Football Association com site em

72 52 CAPÍTULO 5: FUTEBOL ROBÓTICO estáticos [Noda et al., 96]. Estes objectos estáticos são principalmente utilizados para os agentes poderem calcular as suas posições relativas [Akiyama, 01] Movimento e colisão de agentes O soccerserver pode também ser visto como um servidor físico no qual permite simular o movimento dos agentes (bola e jogadores) e as eventuais colisões entre eles. Esta simulação de movimento e colisão pretende ser simplificada de forma a ser fácil calcular as alterações em tempo real [Kitano et al., 95]. Em cada passo da simulação o movimento dos objectos é calculado da seguinte forma [Cheny et al., 02]: (ux t+1, uy t+1 ) (px t+1, py t+1 ) (vx t+1, vy t+1 ) (ax t+1, ay t+1 ) = (vx t, vy t ) + (ax t, ay t ) - aceleração = (px t, py t ) + (ux t+1, uy t+1 ) - movimento = decad * (ux t+1, uy t+1 ) - velocidade decadência = (0,0) - iniciar aceleração Onde, (px t, py t ) é a posição e (vx t, vy t ) a velocidade do objecto no espaço de tempo t. decad é o parâmetro de decadência para a bola ou jogador. A aceleração (ax t, ay t ) do objecto é derivada do parâmetro força (power): (ax t, ay t ) = power * power_rate * (cos (ө t ), sin (ө t )) Se um agente sobrepõe outro, então dá-se uma colisão entre os objectos. Após o movimento o agente é forçado a ser movido para trás, até que não sobreponha nenhum outro agente [Noda, 00] Protocolo de comunicação Como já foi dito, a conexão dos agentes ao servidor é efectuada via socket UPD/IP, quando o cliente se conecta ao servidor abrindo um conexão este associa o agente ao campo de jogo, podendo assim o cliente controlar o seu jogador [Kitano et al., 95]. Por sua vez a conexão via socket permite com que o cliente possa ser desenvolvido em qualquer tipo de arquitectura ou ambiente de programação [Noda e Stone, 00]. Toda a comunicação entre o cliente e o servidor é efectuada através de cadeias de caracteres em ASCII. O protocolo de comunicação consiste no envio de mensagens do cliente com os comandos das acções do agentes e no envio de mensagens pelo servidor com a informação referente aos sensores dos agentes. As acções básicas de uma agente são mover, voltar, chutar, dizer, acelerar [Noda et al., 96]. Os sensores de informação são as mensagens enviadas pelo servidor para os agentes de forma a informar o estado do campo a partir do ponto de vista do agente. Existem três tipos de informação sensorial a receber pelo agente através dos seus sensores: a informação visual, auditiva e a física.

73 CAPÍTULO 5: FUTEBOL ROBÓTICO Acções dos agentes no servidor O agente está limitado a um conjunto de acções que são enviadas por mensagem para o servidor para este as executar [Noda, 00] [Cheny et al., 02]. As acções possíveis são: Acção mover ( Move (posx, posy) ): Coloca o agente numa posição desejada no campo. Esta acção só é valida para iniciar a sua posição do agente e não funciona quando o jogo está a decorrer. Acção apanhar ( Catch (direcção) ): O agente guarda-redes é o único que pode apanhar a bola quando o jogo está a decorrer e se encontra na grande área. Acção andar ( Dash (potência) ): Incrementa a velocidade de aceleração do agente mantendo a sua direcção actual. Acção chutar ( Kick (potência,direcção) ): Acção para o agente chutar a bola. O chuto depende da força aplicada e da direcção do chuto. Acção dizer ( Say (mensagem) ): Envia uma mensagem instantaneamente para todos os agentes. A mensagem consiste numa cadeia de caracteres. Acção voltar ( Turn (ângulo) ): Muda a direcção do agente no mundo. Acção voltar cabeça ( TurnNeck (ângulo) ): Permite virar o pescoço do agente independente da direcção do seu corpo, para o agente com o ângulo da cabeça visualizar o ambiente. Acção Tackle ( Tackle(potência) ): Acção introduzida em , que tem como principal objectivo aumentar o realismo providenciando uma forma realista de desarmar jogadores adversários que se encontram na posse de bola. Acção mudar de visão ( Change_View(abertura,qualidade) ): A configuração da percepção visual de um agente pode ser alterada. A acção toma dois argumentos: abertura do cone de visão (narrow, normal ou wide) e a qualidade da informação visual (high ou low). Acção dar atenção ( AttentionTo(equipa,núm) ): Permite seleccionar quais os agentes que são prioritários a ouvir em cada instante. A introdução desta acção em 2002 traz novos desafios no controle da percepção dos agentes da liga de simulação. Acção apontar ( PointTo(distância,direcção) ): Capacidade de comunicar visualmente com os restantes jogadores apontando para pontos específicos do campo de jogo. 23 O comando tackle encontra-se disponível a partir do servidor 8.x

74 54 CAPÍTULO 5: FUTEBOL ROBÓTICO Percepções dos agentes Os agentes do Futebol Robótico recebem a informação através de três tipos distintos de sensores: auditivo, visual e físico. Esta secção descreve de uma forma sucinta as características da informação recebida pelos diferentes sensores [Corten et al., 99] [Noda, 00] [Cheny et al., 02] Informação auditiva A informação auditiva é enviada através dos outros agentes (todos os jogadores de) ou do treinador. As mensagens do árbitro também são recebidas pelo sensor auditivo. As mensagens do árbitro são recebidas instantaneamente sem qualquer tipo de atraso. As mensagens são transmitidas no seguinte formato: Tempo: é o tempo de ciclo do servidor; Direcção: é a direcção relativa à qual o som (mensagem) é proveniente 24 ; Mensagem: conteúdo da mensagem (limitado a 10 Bytes). Os agentes têm uma capacidade limitada de ouvir as mensagens, pois só conseguem ouvir uma única mensagem durante dois ciclos do servidor e ouvir as mensagens dos agentes que estão num determinado raio de acção. Estas limitações não são válidas para as mensagens do árbitro Informação visual A informação visual enviada pelo servidor descreve o que o agente está a visualizar naquele instante a duas dimensões. Esta informação é enviada ciclicamente do servidor para o agente de uma forma automática. A informação recebida pelo agente num formato básico é a seguinte: Nome do objecto: descrição do objecto a ser visualizado, que pode ser um jogador (indicando o número e a equipa), a bola e informação do campo do jogo. Distância: distância do objecto ao agente. Direcção: direcção do objecto em relação ao agente. Direcção do corpo: no caso de o objecto ser um jogador, será passada a informação referente à direcção do seu corpo. Direcção da cabeça: no caso de o objecto ser um jogador, será passada a informação referente à direcção da cabeça. 24 Actualmente o emissor é identificado.

75 CAPÍTULO 5: FUTEBOL ROBÓTICO Informação física O sensor físico recolhe a actual informação física do jogador. Esta informação é ciclicamente enviada pelo servidor ao jogador de uma forma automática. As mensagens são transmitidas num formato específico do servidor o qual inclui a seguinte informação: Valores para a energia, esforço e capacidade de recuperação do agente; Velocidade do agente; Valores para a qualidade de visão e formato de visão do agente; Acções efectuadas correctamente pelo agente Estados de um jogo no servidor Um jogo de futebol no servidor tem sempre associado um estado em que se encontra o jogo. Este mesmo estado é actualizado permanentemente pelo árbitro, pois o ambiente está em permanente mudança. Todos os estados de jogo possíveis para a última versão do servidor estão devidamente documentados no anexo B Regras do jogo O árbitro (módulo do servidor) controla o jogo de futebol através de um conjunto de decisões baseadas nas regras gerais do futebol. As regras a serem respeitadas são as seguintes: primeiro, quando a posição de bola estiver na linha de golo (dentro da baliza), o árbitro anunciará uma mensagem de golo para todos os clientes que estão conectados ao servidor, actualizando o resultado, move a bola para o centro do campo e muda o estado do jogo para kickoff. Segundo, se a bola sair dos limites do campo, o árbitro parará o jogo e anuncia a decisão tomada (lançamento, canto, pontapé de baliza), e coloca a bola na posição correcta. Terceiro, quando o tempo de alguma parte do jogo chega ao fim, o árbitro pára o jogo e os respectivos jogadores, ficando à espera de uma mensagem de kick para começar uma parte ou iniciar o jogo [Noda et al., 97]. Por defeito cada parte do jogo tem 3000 ciclos do servidor (cada qual com 100 milissegundos, correspondendo a 5 minutos).

76 56 CAPÍTULO 5: FUTEBOL ROBÓTICO 5.3 Descrição do Soccer Monitor Descrição geral Figura 5.3: Visualização no soccer monitor O soccer monitor é uma ferramenta de visualização sendo constituída por uma interface simples que permite visualizar a duas dimensões de uma forma virtual o jogo que está a ser processado pelo soccerserver. A informação que nos é apresentada inclui o resultado do jogo, o nome das equipas e a posição de todos os jogadores e também da bola ( figura 5.3). É possível que vários programas soccer monitor se possam conectar ao servidor, podendo assim vários utilizadores visualizarem o mesmo jogo em simultâneo Comunicação Para que o monitor possa visualizar e sincronizar o servidor é necessário existirem dois sentidos de comunicação: informação proveniente do servidor e comandos para o servidor. Normalmente o soccermonitor e o soccerserver são conectados via UDP/IP na porta Informação proveniente do servidor Quando o soccer monitor é conectado ao servidor soccerserver, este último envia ciclicamente informação (100 milissegundos) para o visualizador, para que este reproduza o mais realisticamente possível o jogo que o servidor está a processar. No anexo D podemos analisar as diferentes estruturas de dados enviadas do servidor soccerserver para os visualizadores.

77 CAPÍTULO 5: FUTEBOL ROBÓTICO Comandos para o servidor Para que o jogo possa ser controlado o visualizador pode enviar, através de mensagens, alguns comandos para o servidor [Corten et al., 99] [Cheny et al., 02]. Os comandos possíveis são: (dispinit) (dispinit version 2): Esta é a primeira mensagem a enviar para o servidor pelo monitor para se registar. A ligação ao servidor é efectuada na porta (dispstart): Mensagem enviada ao servidor para começar o jogo, dar início à segunda parte ou iniciar os tempos extras de jogo. Quando o jogo está a decorrer a mensagem é ignorada pelo servidor. (dispfoult x y lado): Mensagem utilizada para indicar uma falta no jogo. As coordenadas da falta são x e y, respeitante a equipa do lado esquerdo (1) ou lado direito (-1), o lado neutro é assumido pelo valor 0. (dispdiscard lado núm): Esta mensagem serve para tirar um jogador do jogo, mostrando-lhe o cartão vermelho. O jogador pode ser da equipa do lado esquerdo (1) ou direito (-1) sendo designado pelo seu número núm [1-11]. (dispplayer lado núm posx posy âng): Mensagem enviada para posicionar um jogador nas coordenadas (posx, posy) com uma determinada direcção do corpo (âng). O lado da equipa no campo pode ser do esquerdo (1) ou direito (-1). O (num) é o número do jogador (1-11). O novo ângulo (âng) de direcção do corpo é referenciado em graus O Vídeo LogPlayer O LogPlayer é uma aplicação que permite a visualização de jogos pré-gravados à semelhança do que acontece com um gravador de vídeo. Para gravar os jogos em disco o servidor disponibiliza um conjunto de ferramentas com esse intuito. Depois de efectuada a gravação para o disco do ficheiro gerado (ficheiro de log anexo C) por parte do servidor, pode-se analisar e reproduzir o jogo gravado através da utilização de um visualizador, pois este normalmente disponibiliza um conjunto de ferramentas para visualização e análise do jogo. Para visualizar os ficheiros gerados os visualizadores estão equipados com botões de avanço, recuo rápido e paragem, dispondo também da possibilidade de avançar directamente para um dado ciclo do jogo. À semelhança do que se passa com um gravador de vídeo.

78 58 CAPÍTULO 5: FUTEBOL ROBÓTICO 5.4 Arquitecturas de visualização do Futebol Robótico Como já foi dito anteriormente, o soccer monitor é uma ferramenta de visualização sendo constituída por uma interface simples que permite visualizar em 2-Dimensões de uma forma virtual o jogo que está a ser processado pelo soccerserver. Vários monitores podem ser conectados ao mesmo servidor no decurso de um jogo. Esta possibilidade permite visualizar em diversos terminais o mesmo jogo ao mesmo tempo, utilizando para tal, diferentes ferramentas de visualização com potencialidades distintas (por exemplo um monitor 3D e um sistema de análise de jogo). Vários grupos de investigação têm criado monitores com capacidade de visualização gráfica dos jogos através da conexão ao servidor. Actualmente têm-se trabalhado nos monitores tridimensionais que permitem a visualização a 3-Dimensões e a análise de jogos e cálculo estatístico do jogo. Após esta breve descrição serão apresentados os mais importantes e agrupados a duas e três dimensões. 5.5 Arquitecturas de visualização 2D Monitor Tradicional Soccer Monitor O monitor tradicional do soccerserver (ver figura 5.4) implementado em Linux 25 permite configurar as cores e dimensões com que são visualizados todos os objectos (jogadores e bola). Permite ainda configurar os tipos de mensagens visualizadas, os respectivos textos e as dimensões das fontes. Desde a criação da liga de simulação até 2001, o monitor utilizado em jogos oficiais foi o Soccer Monitor tradicional. Actualmente é o FrameView [Merke, 03]. Figura 5.4: Visualizador tradicional para Linux do Soccer Server 25 Linux Sistema operativo originalmente desenvolvido por Linus Torvalds o qual é baseado no Unix mas para estações tipo PC - Personal Computer.

79 CAPÍTULO 5: FUTEBOL ROBÓTICO 59 A arquitectura modular do simulador permite a separação entre o módulo de simulação e o módulo de visualização. Isto permite não só a utilização de diferentes monitores associados ao mesmo simulador, mas ainda a construção de monitores em sistemas operativos distintos Soccer Monitor - Klaus Dorer ( Univ. de Freiburg, Alemanha ) Um dos primeiros monitores a ser implementado em sistema operativo Windows foi o de Klaus Dorer, na Universidade de Freiburg [Dorer, 00]. O monitor apresenta as mesmas características do monitor tradicional em Linux (ver figura 5.5). Figura 5.5: Visualizador Soccer Monitor de Klaus Dorer Este mesmo simulador de visualização foi continuado por diferentes Universidades entre quais se destacam a Universidade de Tsinghua [Cai et al., 02], China e o grupo de investigação WrightEagle, da Universidade Science and Technology [WrightEagle, 03], também da China FrameView - Arthur Merke ( Univ. de Karlsruhe, Alemanha ) O monitor oficial do futebol simulado é actualmente, desde Outubro de 2001, o FrameView [Merke, 03], desenvolvido pela Universidade de Karlsruhe na Alemanha (ver figura 5.6). Para além das funções do monitor tradicional, permite ainda analisar diversas características do jogo, úteis para a sua análise. Entre estas incluem-se a visualização de: ampliações de regiões do campo, energia dos jogadores, visão dos jogadores e características dos jogadores heterogéneos 26 presentes no campo. 26 Os jogadores heterogéneos foram introduzidos na liga de simulação em Consistem em jogadores com capacidades físicas distintas dos jogadores tradicionais. Por exemplo, um jogador pode ter uma maior velocidade máxima mas cansar-se mais rapidamente ou então ter uma maior potência de chuto mas uma menor precisão.

80 60 CAPÍTULO 5: FUTEBOL ROBÓTICO (vista normal do visualizador) (Zoom na grande área) Figura 5.6: Visualizador FrameView de Arthur Merke SoccerScope YowAI (Univ. Electro-Communications, Japão) O SoccerScope [Miyazawa e al., 02] [Ako e al., 03] é mais uma ferramenta de visualização e monitorização que é suportada por um agente aplicacional, sendo capaz de analisar logs do servidor e, em simultâneo, visualizar o jogo através de uma reprodução fiel (ver figura 5.7). Quando um agente do servidor faz uma acção estranha ou inesperada o agente de suporte investiga o detalhe da acção e o estado interno do agente. Os agentes de suporte podem assim compreender as causas da estranha acção do agente. Estas causas podem ser erros de concepção nos agentes, existência de ruído na comunicação por parte do servidor, problemas na rede, etc. Figura 5.7: Visualizador SoccerScope, Japão SoccerScope visualiza a informação relacionada com as acções do agente e as várias condições de jogo. Além disso, o SoccerScope contém um treinador off-line. Com a ajuda do treinador, pode-se conectar ao servidor em modo de treinador e pode mudar a posição de agentes e da bola, podendo-se também mudar o modo de jogo. O visualizador é assim composto pelas seguintes quatro funções: 1. Visualizar a informação proveniente do servidor de futebol;

81 CAPÍTULO 5: FUTEBOL ROBÓTICO Visualizar a informação proveniente dos agentes do servidor através do protocolo de comunicação; 3. Capacidade de análise e visualização das diferentes condições do jogo; 4. O agente de suporte pode mudar as situações do jogo sempre que deseje SoccerDoctor - WrightEagle (Univ. Ciência e Tecnologia, China) O monitor Soccer Doctor desenvolvido pelo laboratório Multi-Agent Systems Lab da Universidade da Ciência e Tecnologia da China (ver figura 5.8), é composto por um visualizador em 2D que permite realizar uma visualização fiel do ficheiro de log carregado, ou do que se passa no servidor [WrightEagle, 03]. O monitor é composto por uma barra de ferramentas que é distinta da janela de visualização do jogo a duas dimensões. Na barra de ferramentas encontramos um conjunto diverso de opções para controlo da visualização que permite mostrar o seguinte: destacar o jogador activo, número dos jogadores, ângulo de visão do jogador activo, trajectória da bola, linhas de fora de jogo. Figura 5.8: Visualizador Soccer Doctor dos WrightEagle, China. As estatísticas do jogo são efectuadas na globalidade da equipa ou individualmente a cada jogador. A representação estatística é efectuada através de gráficos ou tabelas. Os itens que compõem as estatísticas são chutos a baliza, cantos, livres, lançamentos, passes correctos, passas interceptados, dribles e a percentagem do controlo da bola. Para análise do jogo o monitor disponibiliza uma ferramenta de visualização que permite desenhar no campo as diferentes posições de linhas de passe, drible, chuto, intercepção de bola e zona de acção dos jogadores.

82 62 CAPÍTULO 5: FUTEBOL ROBÓTICO TeamDesigner - FC Portugal (Univ. do Porto/Aveiro) O TeamDesigner [Reis, 03] [Reis e Lau, 03] [Teixeira e Santos, 03] é um analisador de jogo que calcula diversas estatísticas do jogo que podem depois ser utilizadas pelo treinador. O TeamDesigner é desenvolvido numa plataforma gráfica que integra, na mesma aplicação, a possibilidade de configurar estratégias de equipa (incluindo tácticas, formações e tipos de jogadores), visualizar jogos online ou offline e ainda permite testar jogadores com um treinador offline (FCPTrainer) para definir a melhor táctica a utilizar (ver figura 5.9). Entre as várias estatísticas destacam-se a localização da bola por região do campo, número de remates às balizas e número de oportunidades de golo de cada equipa. (visualizador FCPMonitor) (treinador FCPTrainer) Figura 5.9: Visualizador TeamDesigner, das Univ. Porto/Aveiro Como já foi dito, foram criados dois visualizadores de jogo: o FCPMonitor para funcionar em tempo real (online), ligando-se ao servidor soccerserver e o FCPLogMonitor para funcionar em diferido (offline) através dos logs criados pelo servidor. Os visualizadores incluem ambos uma barra de tarefas que permite aos utilizadores ligarem-se aos servidores ou abrir um ficheiro de log. O visualizador offline permite ainda configurar a velocidade e sentido do jogo, determinar distâncias entre pontos, verificar as propriedades de um determinado jogador ou da bola, efectuar zoom sobre um região do campo e verificar o ângulo de visão de um dado jogador RoboBase - John Sear (Univ. de Manchester, Inglaterra) O RoboBase de John Sear combina um repositório central de ficheiros log do RoboCup, com uma arquitectura aberta de visualização [Sear, 03]. O sistema é implementado em Java permitindo assim, com alguma facilidade, a extensão do visualizador (compressão de dados, estatísticas, visualização) por parte dos utilizadores e a execução do visualizador em qualquer sistema (ver figura 5.10).

Optimização de um Mundo Virtual

Optimização de um Mundo Virtual secção 3.2 Optimização de um Mundo Virtual Dadas as limitações impostas pela actual tecnologia, um mundo virtual que não seja cuidadosamente optimizado torna-se necessariamente demasiado lento para captar

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Pipeline de Visualização Câmara Virtual

Pipeline de Visualização Câmara Virtual Pipeline de Visualização Câmara Virtual Edward Angel, Cap. 5 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Na última aula... Transformações Geométricas Composição de Transformações Deformação

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 CURSO/CICLO DE FORMAÇÃO Técnico de Eletrotecnia e Técnico de Gestão de Equipamentos Informáticos / 2015/2018 DISCIPLINA: Tecnologias da Informação e Comunicação

Leia mais

5. Métodos ágeis de desenvolvimento de software

5. Métodos ágeis de desenvolvimento de software Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS - Grupo 550 INFORMÁTICA Planificação Anual /Critérios de avaliação

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS - Grupo 550 INFORMÁTICA Planificação Anual /Critérios de avaliação DOMÍNIOS (Unidades) UNIDADE 1 INTRODUÇÃO À PROGRAMAÇÃO Introdução Conteúdos Objetivos Estratégias/ recursos Conceitos fundamentais Teste e controlo de erros em algoritmia Estruturas de controlo Arrays

Leia mais

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

6. Geometria, Primitivas e Transformações 3D

6. Geometria, Primitivas e Transformações 3D 6. Geometria, Primitivas e Transformações 3D Até agora estudamos e implementamos um conjunto de ferramentas básicas que nos permitem modelar, ou representar objetos bi-dimensionais em um sistema também

Leia mais

Oficina de Multimédia B. ESEQ 12º i 2009/2010

Oficina de Multimédia B. ESEQ 12º i 2009/2010 Oficina de Multimédia B ESEQ 12º i 2009/2010 Conceitos gerais Multimédia Hipertexto Hipermédia Texto Tipografia Vídeo Áudio Animação Interface Interacção Multimédia: É uma tecnologia digital de comunicação,

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

Leia mais

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

Prof. Marcelo Henrique dos Santos

Prof. Marcelo Henrique dos Santos POR QUE ESTUDAR COMPUTAÇÃO GRÁFICA? Quem quiser trabalhar em áreas afins: Entretenimento Jogos e filmes Visualização Simulação de fenômenos físicos Arte computadorizada Educação e treinamento Processamento

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

Manual de implantação

Manual de implantação Manual de implantação O BioPass ID é um serviço online baseado em nuvem que fornece uma poderosa tecnologia multibiométrica (reconhecimento de impressões digitais e face) para os desenvolvedores de qualquer

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Núcleo de Informática Aplicada à Educação Universidade Estadual de Campinas

Núcleo de Informática Aplicada à Educação Universidade Estadual de Campinas Núcleo de Informática Aplicada à Educação Universidade Estadual de Campinas Resumo A construção de dispositivos controlados através do computador, como ferramenta educacional associado ao trabalho com

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição

Leia mais

3. DESCRIÇÃO DO PROTÓTIPO

3. DESCRIÇÃO DO PROTÓTIPO 3. DESCRIÇÃO DO PROTÓTIPO O computador pode e deve apoiar o ensino, não só na produção de imagens estereoscópicas como também na sua divulgação. O site sobre estereoscopia foi desenvolvido tendo como objectivo

Leia mais

CONTROLO VISUAL DE UM TAPETE ROLANTE

CONTROLO VISUAL DE UM TAPETE ROLANTE CONTROLO VISUAL DE UM TAPETE ROLANTE José Fernandes; José Silva; Nuno Vieira; Paulo Sequeira Gonçalves Curso de Engenharia Industrial Escola Superior de Tecnologia de Castelo Branco Av. do Empresário,

Leia mais

Departamento de Ciências e Tecnologias

Departamento de Ciências e Tecnologias Futuro Departamento de Ciências e Tecnologias Licenciatura em Engenharia Informática Missão Dotar os alunos de uma sólida formação teórica e experimental que garanta aos futuros licenciados a capacidade

Leia mais

7.Conclusão e Trabalhos Futuros

7.Conclusão e Trabalhos Futuros 7.Conclusão e Trabalhos Futuros 158 7.Conclusão e Trabalhos Futuros 7.1 Conclusões Finais Neste trabalho, foram apresentados novos métodos para aceleração, otimização e gerenciamento do processo de renderização

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Gestão do Risco e da Qualidade no Desenvolvimento de Software Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

Análise e Concepção de Sistemas de Informação

Análise e Concepção de Sistemas de Informação Análise e Concepção de Sistemas de Informação Projecto Versão 2.0 amazon.com 2005-2006 1. Introdução O presente documento tem como objectivo apresentar o enunciado do projecto de ACSI 2005-2006. O projecto

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais

Enquadramento 02. Justificação 02. Metodologia de implementação 02. Destinatários 02. Sessões formativas 03

Enquadramento 02. Justificação 02. Metodologia de implementação 02. Destinatários 02. Sessões formativas 03 criação de empresas em espaço rural guia metodológico para criação e apropriação 0 Enquadramento 02 Justificação 02 de implementação 02 Destinatários 02 Sessões formativas 03 Módulos 03 1 e instrumentos

Leia mais

COMPUTAÇÃO GRÁFICA O QUE É?

COMPUTAÇÃO GRÁFICA O QUE É? COMPUTAÇÃO GRÁFICA O QUE É? Curso: Tecnológico em Análise e Desenvolvimento de Sistemas Disciplina: COMPUTAÇÃO GRÁFICA 4º Semestre Prof. AFONSO MADEIRA SUMÁRIO O que é COMPUTAÇÃO GRÁFICA Áreas relacionadas

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

1º Teste Computação Gráfica

1º Teste Computação Gráfica 1º Teste Computação Gráfica LEIC-Tagus/LERCI Prof. Mário Rui Gomes Prof. João Brisson Lopes 23 de Abril de 25 Nº Nome: Responda às questões seguintes justificando adequadamente todas as respostas. O Teste

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

A SÈTIMA. O nosso principal objectivo

A SÈTIMA. O nosso principal objectivo 03 A SÈTIMA A SÉTIMA produz soluções de software maioritariamente com recurso à WEB, de modo a dar suporte ao crescimento tecnológico que é já a maior realidade do século XXI. Esta aposta deve-se ao facto

Leia mais

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000 ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário Gestão da Qualidade 2005 1 As Normas da família ISO 9000 ISO 9000 descreve os fundamentos de sistemas de gestão da qualidade e especifica

Leia mais

A MATEMÁTICA NO ENSINO SUPERIOR POLICIAL 1

A MATEMÁTICA NO ENSINO SUPERIOR POLICIAL 1 A MATEMÁTICA NO ENSINO SUPERIOR POLICIAL 1 A IMPORTÂNCIA DA MATEMÁTICA O desenvolvimento das sociedades tem sido também materializado por um progresso acentuado no plano científico e nos diversos domínios

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado Escola Básica e Secundária de Velas Planificação de TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC Curso Profissional de Técnico de Secretariado 10º C MÓDULO 1 FOLHA DE CÁLCULO Microsoft Excel Conteúdos

Leia mais

WORKING PAPERS AVATAR EXPRESS: CREATE, EDIT, ANIMATE

WORKING PAPERS AVATAR EXPRESS: CREATE, EDIT, ANIMATE WORKING PAPERS AVATAR EXPRESS: CREATE, EDIT, ANIMATE Resumo Nos dias de hoje a forma como comunicamos e interagimos com o mundo passa, muitas vezes, por ecrãs. Televisão, computadores, telemóveis e tablets

Leia mais

Ferramentas Web, Web 2.0 e Software Livre em EVT

Ferramentas Web, Web 2.0 e Software Livre em EVT Estudo sobre a integração de ferramentas digitais no currículo da disciplina de Educação Visual e Tecnológica Art Of Illusion Manual e Guia de exploração do Art Of Illusion para utilização em contexto

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Universidade do Minho Licenciatura em Engenharia Informática

Universidade do Minho Licenciatura em Engenharia Informática Universidade do Minho Licenciatura em Engenharia Informática Disciplina de Desenvolvimento de Sistemas de Software Trabalho Prático Fase 1 Ano Lectivo de 2009/10 GereComSaber Grupo 15 Cláudio Manuel Rigueiro

Leia mais

ARTIGO TÉCNICO. Os objectivos do Projecto passam por:

ARTIGO TÉCNICO. Os objectivos do Projecto passam por: A metodologia do Projecto SMART MED PARKS ARTIGO TÉCNICO O Projecto SMART MED PARKS teve o seu início em Fevereiro de 2013, com o objetivo de facultar uma ferramenta analítica de confiança para apoiar

Leia mais

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com Chord Tecnologias de Middleware 2006/2007 Fernando Martins - fmp.martins@gmail.com Tópicos Objectivo Motivação Peer-To-Peer Chord Descrição Geral Características Distintivas Comparação DNS Modelo do Sistema

Leia mais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

Projeção ortográfica da figura plana

Projeção ortográfica da figura plana A U L A Projeção ortográfica da figura plana Introdução As formas de um objeto representado em perspectiva isométrica apresentam certa deformação, isto é, não são mostradas em verdadeira grandeza, apesar

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS VINICIUS DA SILVEIRA SEGALIN FLORIANÓPOLIS OUTUBRO/2013 Sumário

Leia mais

Plano Curricular TIC - 1º Ciclo -

Plano Curricular TIC - 1º Ciclo - O Projeto de TIC A elaboração deste projeto tem como objetivo principal a estrutura organizacional das TIC (Tecnologias de Informação e de Comunicação) no Externato Grão Vasco, tendo como base as necessidades

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Mini-Projecto de PAII Ano Lectivo 2000/01

Mini-Projecto de PAII Ano Lectivo 2000/01 Departamento de Engenharia Informática Faculdade de Ciências e Tecnologia da Universidade de Coimbra Mini-Projecto de PAII Ano Lectivo 2000/01 Implementação do Jogo Caverna 1 Descrição do Jogo No jogo

Leia mais

Unidade 1 - Objectivos das Tecnologias Informáticas

Unidade 1 - Objectivos das Tecnologias Informáticas Unidade 1 - Objectivos das Tecnologias Informáticas Reconhecer conceitos básicosb Utilizar os conceitos básicos, b aplicando-os os a problemas concretos Compreender a evolução desses conceitos Conhecer

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

Leia mais

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006 TUTORIAL Servo-motor Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

O 1º Ciclo do Ensino Básico é um espaço privilegiado onde se proporcionam aos alunos aprendizagens mais ativas e significativas,

O 1º Ciclo do Ensino Básico é um espaço privilegiado onde se proporcionam aos alunos aprendizagens mais ativas e significativas, O 1º Ciclo do Ensino Básico é um espaço privilegiado onde se proporcionam aos alunos aprendizagens mais ativas e significativas, pois este é um dos meios de socialização e da aquisição das primeiras competências

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Aplicações Informáticas B

Aplicações Informáticas B Prova de Exame Nacional de Aplicações Informáticas B Prova 703 2008 12.º Ano de Escolaridade Decreto-Lei n.º 74/2004, de 26 de Março Para: Direcção-Geral de Inovação e de Desenvolvimento Curricular Inspecção-Geral

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente: Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau

Leia mais

por João Gomes, Director Executivo do Instituto de Planeamento e Desenvolvimento do Turismo e Professor Associado da Universidade Fernando Pessoa

por João Gomes, Director Executivo do Instituto de Planeamento e Desenvolvimento do Turismo e Professor Associado da Universidade Fernando Pessoa COMO AUMENTAR AS RECEITAS DE UM NEGÓCIO: O CONCEITO DE GESTÃO DE RECEITAS (revenue management) (Publicado na Revista Hotéis de Portugal Maio/Junho 2004) por João Gomes, Director Executivo do Instituto

Leia mais

Orientação à Objetos. Aécio Costa

Orientação à Objetos. Aécio Costa Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual

Leia mais

Manual de Utilizador. CNCVisual. Julho de 2006. Âmbito do Projecto de 5º Ano de Engenharia Mecânica. Autor: Bruno Lameiro

Manual de Utilizador. CNCVisual. Julho de 2006. Âmbito do Projecto de 5º Ano de Engenharia Mecânica. Autor: Bruno Lameiro Manual de Utilizador CNCVisual Julho de 2006 Âmbito do Projecto de 5º Ano de Engenharia Mecânica Autor: Bruno Lameiro Introdução: A existência do manual de utilizador da aplicação CNCVisual tem como objectivo

Leia mais

Unidade 13: Paralelismo:

Unidade 13: Paralelismo: Arquitetura e Organização de Computadores 1 Unidade 13: Paralelismo: SMP e Processamento Vetorial Prof. Daniel Caetano Objetivo: Apresentar os conceitos fundamentais da arquitetura SMP e alguns detalhes

Leia mais

Como elaborar um Plano de Negócios de Sucesso

Como elaborar um Plano de Negócios de Sucesso Como elaborar um Plano de Negócios de Sucesso Pedro João 28 de Abril 2011 Fundação António Cupertino de Miranda Introdução ao Plano de Negócios Modelo de Negócio Análise Financeira Estrutura do Plano de

Leia mais

Guia de Estudo Criação de Apresentações Microsoft PowerPoint

Guia de Estudo Criação de Apresentações Microsoft PowerPoint Tecnologias da Informação e Comunicação Guia de Estudo Criação de Apresentações Microsoft PowerPoint Aspectos genéricos sobre o trabalho com imagens computacionais Imagens computacionais e programas que

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

A Gestão, os Sistemas de Informação e a Informação nas Organizações

A Gestão, os Sistemas de Informação e a Informação nas Organizações Introdução: Os Sistemas de Informação (SI) enquanto assunto de gestão têm cerca de 30 anos de idade e a sua evolução ao longo destes últimos anos tem sido tão dramática como irregular. A importância dos

Leia mais

OBJETOS DE APRENDIZAGEM EM EDUCAÇÃO AMBIENTAL: CONHEÇA O AMBIENTE ATRAVÉS DO WIKI Rosane Aragón de Nevado 1 ; Janaína Oppermann 2

OBJETOS DE APRENDIZAGEM EM EDUCAÇÃO AMBIENTAL: CONHEÇA O AMBIENTE ATRAVÉS DO WIKI Rosane Aragón de Nevado 1 ; Janaína Oppermann 2 OBJETOS DE APRENDIZAGEM EM EDUCAÇÃO AMBIENTAL: CONHEÇA O AMBIENTE ATRAVÉS DO WIKI Rosane Aragón de Nevado 1 ; Janaína Oppermann 2 RESUMO Os hábitos e costumes humanos tem alterado intensamente os ecossistemas

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente.

Começo por apresentar uma breve definição para projecto e para gestão de projectos respectivamente. The role of Project management in achieving Project success Ao longo da desta reflexão vou abordar os seguintes tema: Definir projectos, gestão de projectos e distingui-los. Os objectivos da gestão de

Leia mais

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS

DEMONSTRAÇÕES FINANCEIRAS COMBINADAS 24 DEMONSTRAÇÕES FINANCEIRAS COMBINADAS Os mercados de capitais na Europa e no mundo exigem informações financeiras significativas, confiáveis, relevantes e comparáveis sobre os emitentes de valores mobiliários.

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Visão Versão Histórico da Revisão Data Versão Descrição Autor 24/06/12

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Curso Técnico Superior Profissional em Desenvolvimento Web

Curso Técnico Superior Profissional em Desenvolvimento Web Curso Técnico Superior Profissional em Desenvolvimento Web PROVA DE AVALIAÇÃO DE CAPACIDADE REFERENCIAL DE CONHECIMENTOS E APTIDÕES Áreas relevantes para o curso de acordo com o n.º 4 do art.º 11.º do

Leia mais

2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade)

2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade) Escola Básica e Secundária de Velas Linhas de Exploração do Quadro de da Disciplina de Tecnologias de Informação e Comunicação (TIC) Oferta de Escola 2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

O AMBIENTE DE TRABALHO DO WINDOWS

O AMBIENTE DE TRABALHO DO WINDOWS O AMBIENTE DE TRABALHO DO WINDOWS O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador. Um computador que tenha o Windows instalado, quando arranca, entra directamente

Leia mais

Hardware & Software. SOS Digital: Tópico 2

Hardware & Software. SOS Digital: Tópico 2 Hardware & Software SOS Digital: Tópico 2 Os objetos digitais são acessíveis somente através de combinações específicas de componentes de hardware a parte física do computador software programas para operar

Leia mais

Em início de nova fase, forumb2b.com alarga a oferta

Em início de nova fase, forumb2b.com alarga a oferta Em início de nova fase, alarga a oferta Com o objectivo de ajudar as empresas a controlar e reduzir custos relacionados com transacções de bens e serviços, o adicionou à sua oferta um conjunto de aplicações

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

FEUP 2006/2007 Mestrado em Tecnologias Multimédia Doc. Apresentação V0

FEUP 2006/2007 Mestrado em Tecnologias Multimédia Doc. Apresentação V0 FEUP 2006/2007 Mestrado em Tecnologias Multimédia Doc. Apresentação V0 TÍTULO: Animatic - Marionetas Digitais Interactivas ORIENTADORES: Professor Doutor Aníbal Ferreira Professor Doutor Rui Torres ALUNO:

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Folha de Cálculo (Excel)

Folha de Cálculo (Excel) Tecnologias de Informação e Comunicação Folha de Cálculo (Excel) Professor: Rafael Vieira. 1. Introdução à folha de cálculo o nome folha de cálculo atribuído a este tipo de programas, deve-se, principalmente,

Leia mais