Desenvolvimento de Sistemas Baseados em Conhecimento Metodologias Orientado a Agentes Conceitos Iniciais • Metodologia – Conjunto de métodos empregados por alguma área do conhecimento • Método – Procedimento para se obter algum resultado • Flexibilidade x Formalidade – A utilização de diversos métodos não constitui uma metodologia – Conhecimento e experiência não podem ser transferidas para outros projetos Conceitos Iniciais • Abordagens podem ser classificadas em três categorias – “Situational Method Engineering for Information system Project approaches” (Harmsen et al., 1994) Flexibilidade - Desenvolvimento ad hoc - Sem terminologia uniforme - Pouco guideline - Difícil gerenciamento e medição do projeto Flexibilidade Controlada - Blocos de construção uniformes -Guidelines para cada bloco -Terminologia uniforme -Gerenciamento e medições controladas Controlada - Metodologia padrão - Guidelines rígidos - Terminologia uniforme - Todos os projetos utilizam a mesma abordagem de medição Conceitos Iniciais • Uma metodologia tem o objetivo de descrever todos os elementos necessários para o desenvolvimento de um sistema • Geralmente são criadas na academia – Algumas são aceitas pela indústria – Existe uma estimativa da existência de quase mil abordagens » “Understanding and evaluating methodologies, NISAD: A systematic framework” (Jayaratna, 1994) – Ao todo elas podem ser agrupadas em 6 abordagens » “Beyond methodologies: Keeping up with information systems development approaches through dynamic classification” (Iivari, 1999) Conceitos Iniciais • A proposta do curso é apresentar as principais metodologias AO – Com certeza não todas (mais usadas e testadas) • Discussão e análise das principais características – Modelagem de um problema usando cada método – Artigo final com visão crítica/comparação » Foco na usabilidade para dado problema – Procura por meios de unificação e consolidação » Proposta para repositório de fragmentos de métodos OA Relembrando a Idéia de Agentes • Segundo AIMA – “Um agente é qualquer coisa que tem a capacidade de perceber o seu ambiente através de sensores e agir sobre esta ambiente através de efetuadores” • Segundo Hayes-Roth – “Agentes são entidades que continuamente realizam três funções: perceber condições dinâmicas do ambiente, agir para afetar as condições no ambiente e raciocinar para interpretar as percepções, resolver problemas, desencadear inferências e determinar ações” • Segundo Maes – "Agentes autônomos são sistemas computacionais que habitam algum ambiente dinâmico complexo, percebe e age de forma autônoma neste ambiente, e faz isso por realizar um conjunto de metas ou tarefas planejadas por eles" • . Relembrando a Idéia de Agentes • Segundo a Apple – “Entidade de software persistente dedicado a propósitos específicos. Persistência distingue agentes das sub-rotinas; agentes tem suas próprias idéias sobre como realizar tarefas e suas próprias agendas.” • Segundo IBM – “Agentes inteligentes são entidades de software que realizam algum conjunto de operações em favor de um usuário ou outro programa com algum grau de indenpencência ou autonomia...” • Segundo Coen – "Agentes são programas que se engajam em interações, negociam e coordenam transferência de informações". Características dos Agentes • Características chaves dos agentes Propriedade Autonomia Proatividade Dirigido a metas Situado Reatividade Temporalmente continuo Comunicativo Aprendiz/adaptativo Flexível Credível Móvel Outro nome Possui controle sobre suas próprias ações Decidir quando agir sem a necessidade de comandos externos Não apenas age em resposta ao ambiente. Agentes possuem metas bem definidas e seus comportamentos são direcionados a resolução de tais metas Agentes estão totalmente contidos dentro de um ambiente específico Respostas rápidas às modificações no ambiente È um processo que roda continuamente Interage com outros agentes e possivelmente com usuários humanos Mudanças no comportamento de acordo com experiências prévias Ações não são pré-definidas (sem script) Estados como emoções, personalidade e atitudes Capazes de se transportar de uma máquina para outra Características dos Agentes • Problemas de comportamentos emergentes • Agentes cognitivos X Agentes Reativos – Necessidade de balanceamento na maioria dos domínios Conceitos Iniciais • Agentes devem agir dentro de um ciclo de “perceberdecidir-agir” • Para tal, uma série de características de baixo nível devem ser consideradas: – Papel, estado mental, habilidades, capacidades, responsabilidades, atitudes, ... • Considerando o conceito de interação com outros agentes e ambiente – Comunicação, protocolos, esquemas de negociação, competição versus cooperação, etc. Sistemas Multiagentes • Sistema composto por múltiplos agentes inteligentes que interagem entre si. Este sistema é usado para resolver problemas que são difíceis ou impossíveis para um agente individual ou sistema monolítico. – Cooperativos (meta conjunta) – Competitivos • Exemplos: – Comércio eletrônico – Sistemas de busca e salvamento – Modelagens sociais Sistemas Multiagentes • . Interação Organização Recurso Agentes Esfera de Influência Ambiente Sistemas Multiagentes • Final conjunto de agentes geralmente não é definido em tempo de projeto – Definição em tempo de execução – Baseados em arquiteturas abertas » Novos agentes podem dinamicamente entrar no sistema » Agentes atuais podem dinamicamente sair do sistema • Abordagens OO também permitem quem objetos entrem e saiam do sistema dinamicamente – Agentes fazem isso de forma autônoma – Mostram comportamento proativo – Comportamento imprevisível Sistemas Multiagentes • Comportamento emergente – Comportamento que não pode ser predeterminado pela inspeção das partes individuais – Emerge da interação entre as partes • Algumas definições clássicas – “O todo é maior que a soma das partes” – “A estrutura (padrão, propriedade, função), não explicitamente representada ao nível de componentes individuais (baixo nível), e que aparece no nível de sistema (alto nível) Sistemas Multiagentes • Muitas metodologias OA utilizam a metáfora da organização humana – – – – Subdivisões Regras organizacionais Dependências sociais ... • Importantes tarefas da metodologia AO – Definição das interações – Modelos de cooperação – Captura das dependências Metodologia OA • Uma metodologia tem dois importantes componentes: – Elementos do processo – Produtos e documentos (UML) • Qualquer metodologia AO deve conter abstrações suficientes para completamente modelar agentes/MAS – Extensões OO não funcionam » Altamente restritas devido ao foco em classes/objetos – Foco deve ser em: » Papeis » Sociedade » Protocolos de interação Genealogia das Metodologias • Metodologias são baseadas em conceitos de IA e OO • Nemo • MASSIVE • Cassiopeia • CAMLE Principais Conceitos Teorias de Base • BDI e modelos similares oferecem descrições da estrutura interna de um agente – Rao, M. P. Georgeff. (1995). "BDI-agents: From Theory to Practice". Proceedings of the First International Conference on Multiagent Systems (ICMAS'95). • Teorias organizacionais suportam os modelos para MAS – Social Commitments » Cavedon, L. & Sonenberg, L. (1998). On social commitment, roles and preferred goals. In Proceedings of the Third International Conference on MultiAgent Systems (ICMAS), July 3-7, Paris (pp. 80-87). IEEE Computer Society. – Social Norms » Castelfranchi, C., Dignum, F., Jonker, C., & Treur, J. (2000). Deliberate normative agents: Principles and architectures. In N. Jennings & Y. Lespérance (Eds.), Intelligent agents VI (p. 364-378). Berlin: Springer-Verlag. Teorias de Base • Agentes precisam tanto competir quanto cooperar (como os humanos) “Although essentially selfish in their autonomy, agents act like humans: sometimes aiming to fulfill their own goals at the expense of all other agents/humans but mostly in a more social structure in which it is recognized that collaboration and sharing of work is mutually beneficial as well as individualistically profitable” • Exemplo Teorias de Base • Teamwork Theories – Joint Intentions, … Teorias de Base • Agentes estão operando em um ambiente comum – Comunicação é bem mais urgente do que entre objetos » Objetos reagem a eventos e mensagens de entrada » Agentes tem autonomia e proatividade para coordenar e cooperar com outros através da troca de mensagens • A principal diferente entre agentes e objetos – Agentes podem receber mensagens que não são pedidos para execução – Mensagens podem consistir de informações ou pedidos por informação – Mensagens são descritas em termos de um protocolo de comunicação e interação utilizando uma linguagem formal » KQML » FIPA Teorias de Base • Exemplo KQML Teorias de Base • Exemplo KQML Elementos do Processo • Definem o uso de vários termos como: – Ciclo de vida: número de fases e ordenação das mesmas – Análise: entendimento de alguma coisa já existente » Fase da descoberta – Projeto: parte do espaço das soluções na qual várias possíveis respostas são consideradas » Fase da invenção Metodologias • Tropos – • MAS-CommonKADS – • Agent Oriented Software Engineering with INGENIAS RAP – • ADELFE: a Methodology for Adaptive Multi-Agent Systems Engineering INGENIAS – • Developing Multiagent Systems: The GAIA Methodology ADELFE – • Prometheus: A Methodology for Developing Intelligent Agents Gaia – • Agile PASSI: An Agile Process for Designing Agents Prometheus – • Analysis and design of multiagent systems using MAS-CommonKADS PASSI – • Tropos: An Agent-Oriented Software Development Methodology Towards radical agent-oriented software engineering processes based on AOR modelling MaSE – An Overview of the Multiagent Systems Engineering Methodology Robocup Rescue • Ferramenta para desenvolvimento: – JADE (http://jade.tilab.com/) • Outros recursos – http://www.agentlink.org Seminário (s) • Escolher uma das metodologias e explicar sua utilização • Aplicar a modelagem no domínio do Robocup Rescue