A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução de Engenharia de Software de Sistemas Multi-Agentes Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas.

Apresentações semelhantes


Apresentação em tema: "Introdução de Engenharia de Software de Sistemas Multi-Agentes Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas."— Transcrição da apresentação:

1 Introdução de Engenharia de Software de Sistemas Multi-Agentes Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas

2 2 © LES/PUC-Rio Objetivos (relembrando…) Exploração das vantagens que a tecnologia de agentes pode trazer para vários domínios de aplicação, –Autonomic Computing –Medicina –Telecomunicações –Simulação (ex: de meio-ambiente, …) –Etc. Engenharia de Software para Agentes Inteligentes Condução de experimentos Resultado: Prova de Conceito através de implementação e Monografia (entrega obrigatória)

3 3 © LES/PUC-Rio Agenda Introdução e conceitos básicos –Inteligência Artificial –Inteligência Artificial Distribuída –Agentes Inteligentes –Agentes de Software Exemplos Agent Pitfalls Engenharia de Software de SMA –Motivação –Desafios

4 Introdução e conceitos básicos

5 5 © LES/PUC-Rio O que é Inteligência Artificial? Rich & Knight (1994) IA é a área da Ciência da Computação orientada ao entendimento, construção e validação de sistemas inteligentes, isto é, que exibem, de alguma forma, características associadas ao que chamamos inteligência. Rich & Knight (1994) IA é a área da Ciência da Computação orientada ao entendimento, construção e validação de sistemas inteligentes, isto é, que exibem, de alguma forma, características associadas ao que chamamos inteligência.

6 6 © LES/PUC-Rio O que é Inteligência Artificial? Sistemas que pensam como humanos Modelagem Cognitiva Sistemas que agem como humanos Teste de Turing Sistemas que pensam racionalmente Leis do Pensamento => A lógica pode solucionar qualquer problema solúvel Sistemas que agem racionalmente Agente Racional Comportamento racional: fazer a coisa certa. Reúne todas as outras Sistemas que pensam como humanos Modelagem Cognitiva Sistemas que agem como humanos Teste de Turing Sistemas que pensam racionalmente Leis do Pensamento => A lógica pode solucionar qualquer problema solúvel Sistemas que agem racionalmente Agente Racional Comportamento racional: fazer a coisa certa. Reúne todas as outras ?

7 7 © LES/PUC-Rio Inteligência Artificial Distribuída Início dos anos 70: IA já oferecia técnicas robustas para o desenvolvimento de aplicações práticas envolvendo sistemas inteligentes –Prova de Teoremas –Sistemas Especialistas –Programação em Lógica –Redes Semânticas Herança do modelo computacional de von Neumann e das concepções da psicologia Concepção centralizada, sem reusabilidade de seus componentes e a sem abertura Visão de um sistema inteligente composto por apenas um centro de controle, um foco de atenção e uma única base de conhecimento

8 8 © LES/PUC-Rio Inteligência Artificial Distribuída Fim dos anos 70: esta metáfora de comportamento individual é contrabalançada –por um lado, trabalhos em redes neurais, que incluem distribuição e paralelismo –por outro lado, sistemas simbólicos baseados no chamado modelo de quadro negro, que são caracterizados por um controle distribuído

9 9 © LES/PUC-Rio Primeiras idéias de distribuição em IA + Maturidade alcançada pelas tecnologias de redes e de sistemas distribuídos IAD: métodos de IA para a solução distribuída de problemas Inteligência Artificial Distribuída

10 10 © LES/PUC-Rio Jennings (1995) Um agente inteligente é uma entidade de software que executa uma determinada tarefa empregando informação extraída de seu ambiente para agir de forma adequada no sentido de completar sua tarefa de modo bem sucedido. O agente deve ser capaz de adaptar-se dinamicamente às modificações ocorridas no ambiente. Jennings (1995) Um agente inteligente é uma entidade de software que executa uma determinada tarefa empregando informação extraída de seu ambiente para agir de forma adequada no sentido de completar sua tarefa de modo bem sucedido. O agente deve ser capaz de adaptar-se dinamicamente às modificações ocorridas no ambiente. Agentes Inteligentes

11 11 © LES/PUC-Rio Definições Agente de software é uma entidade que está situada em um ambiente e capaz de ação autônoma neste ambiente para atingir seus objetivos projetados. Wooldridge & Jennings A entidade Agente é qualquer coisa que possa perceber o ambiente e agir sobre o mesmo. Russell & Norvig

12 12 © LES/PUC-Rio Características de Agentes Autonomia –Operam sem intervenção humana ou de outros agentes –Tem algum tipo de controle sobre suas ações e seu estado interno

13 13 © LES/PUC-Rio Framework básico para um Agente function SKELETON-AGENT(percept) returns action static: memory memory:= UPDATE-MEMORY(memory, percept) action:= CHOOSE-BEST-ACTION(memory) memory:= UPDATE-MEMORY(memory, action) return action

14 14 © LES/PUC-Rio Considerações… Mapeamento simples dos sensores em ações –Tabelas podem ficar muito grandes –Todo o trabalho é feito pelo projetista –Sem autonomia, todas as ações são pré-determinadas –Aprendizado poderia levar muito tempo –Alterações no ambiente => agente pode perder-se

15 15 © LES/PUC-Rio Tipos de Agentes Diferentes formas de fazer o mapeamento Diferentes níeis de complexidade Agentes reflexivos simples Agentes baseados em modelo Agentes baseados em objetivos Agentes baseados em utilidades Agentes de aprendizagem

16 16 © LES/PUC-Rio Agente Reflexivo Simples Ao invés de especificar o mapeamento individual de uma tabela explícita, associações de entrada-saída são registradas –Se percepção então ação –Ambiente precisa ser totalmente observador –Entra em loop facilmente

17 17 © LES/PUC-Rio Agente Reflexivo Simples

18 18 © LES/PUC-Rio Agente baseado em modelo Mantêm um estado interno que será combinado com as novas percepções. O estado interno reflete o conhecimento do agente sobre ambiente –Este conhecimento é chamado modelo –Pode conter informação sobre mudanças no ambiente Causado por ações do agente Independente do comportamento do agente

19 19 © LES/PUC-Rio Agente baseado em modelo

20 20 © LES/PUC-Rio Agente baseado em objetivos O agente procura atingir um estado desejável, o objetivo –Pode ser definido pelo usuário, projetista ou ambiente –Pode ser gerado pelo próprio agente Resultado de todas as ações possíveis são consideradas em relação ao objetivo –what-if scenarios –search, reasoning or planning Muito flexível mas não muito eficiente

21 21 © LES/PUC-Rio Agente baseado em objetivos

22 22 © LES/PUC-Rio Agente baseado em utilidade Uma função de utilidade mapeia estados em um número real –Grau de satisfação Permite ações racionais para tarefas mais complexas –Resolução de conflitos entre objetivos (tradeoff)

23 23 © LES/PUC-Rio Agente baseado em utilidade

24 24 © LES/PUC-Rio Learning Agent Elemento de desempenho –Seleciona as ações baseado em percepção, estado interno, conhecimento adquirido –Pode ser um dos agentes descritos anteriormente Elemento de aprendizagem –Identifica melhorias Crítico –Provê feedback sobre desempenho do agente –Pode ser externo ao agente, ex., parte do ambiente Gerador de problema –Sugere ações –Necessário para soluções inovadoras

25 25 © LES/PUC-Rio Learning Agent

26 26 © LES/PUC-Rio Modelo BDI Agentes devem representar ou raciocinar sobre outros agentes, humanos ou softwares. Presença de atitudes mentais –Beliefs –Desires –Intentions Beliefs –Crenças (opiniões) dos agentes sobre o mundo –Permite a inferência de regras

27 27 © LES/PUC-Rio Modelo BDI Desires –Desejos ou objetivos representam o estado de motivação do agente. –Situações em que os agentes desejam alcançar ou trazer (futuro estados). –Exemplos: Achar o melhor preço, ir para a festa ou tornar-se rico. Intentions –Intenção do agente. –Aquilo que o agente selecionou para fazer (ações futuras). –Exemplo: Planos.

28 28 © LES/PUC-Rio Modelo BDI Alguns frameworks de SMAs que aplicam BDI –JADEX –JACK –SPARK –ASF –Etc.

29 29 © LES/PUC-Rio Características de Agentes ES Básicas –Autonomia Capacidade de agir sem intervenção externa –Reatividade Capacidade de perceber o ambiente e responder às mudanças que ocorrem nele –Pró-atividade Atuam não somente em resposta ao ambiente – são orientados a objetivos –Interatividade Se comunicam com outros agentes e com o ambiente –Adaptação São capazes de modificar, em algum grau, o seu comportamento devido à mudanças do ambiente e de outros agentes

30 30 © LES/PUC-Rio Características de Agentes ES Adicionais –Aprendizado São capazes de modificar o seu comportamento baseados em sua experiência (não é necessariamente relacionado às mudanças no ambiente) –Racionalidade São capazes de selecionar suas ações baseados em seus objetivos –Mobilidade São capazes de se mover de um ambiente para outro

31 31 © LES/PUC-Rio Uma população de indivíduos evolui ao longo de uma seqüência de gerações buscando atingir um ponto ótimo coletivo, Com base em uma função de adequação, os indivíduos mais qualificados são selecionados para reprodução, Dois operadores de recombinação genética são empregados no processo: cruzamento e mutação. Uma população de indivíduos evolui ao longo de uma seqüência de gerações buscando atingir um ponto ótimo coletivo, Com base em uma função de adequação, os indivíduos mais qualificados são selecionados para reprodução, Dois operadores de recombinação genética são empregados no processo: cruzamento e mutação. Algoritmos Genéticos

32 32 © LES/PUC-Rio O Algoritmo Genético Canônico

33 33 © LES/PUC-Rio Aplicação de AG

34 34 © LES/PUC-Rio Intelligent Agents are software entities whose intelligence and agency exceed certain threshold

35 35 © LES/PUC-Rio Agente vs. Objeto Similaridade –Entidades computacionais –Encapsulam estado –Realizam ações –Se comunicam via troca de mensagens

36 36 © LES/PUC-Rio Agente vs. Objeto Diferenças –Autonomia Objetos são passivos –Objetos são obedientes Agentes: Go and No –Objetos não encapsulam ativação de comportamento –Um objeto provê mínimo suporte para estruturas coletivas (ex. hierarquia e relacionamentos) Enquanto agentes dão suporte para estruturas coletivas: organizações

37 37 © LES/PUC-Rio Sistemas Multi-Agentes Um agente, em geral, não é encontrado completamente sozinho em uma aplicação, mas formando conjunto com outros agentes. Sistema Multi-Agente (MAS)

38 38 © LES/PUC-Rio Multiagent Systems, a Definition A multiagent system is one that consists of a number of agents, which interact with one-another In the most general case, agents will be acting on behalf of users with different goals and motivations To successfully interact, they will require the ability to cooperate, coordinate, and negotiate with each other, much as people do

39 39 © LES/PUC-Rio Auto-organização Um sistema auto-organizável modifica sua estrutura em função de sua experiência e seu relacionamento com o meio-ambiente, A auto organização ocorre em função da dinâmica do sistema, rumo a uma configuração otimizada para o fim proposto.

40 Exemplos

41 41 © LES/PUC-Rio Internet Agents nWeb search agents: provide search services to users nWeb server agents: reside at a specific Web site to provide agent services Information filtering agents: filter out electronic information according to a user s specified preferences nInformation retrieval agents: deliver a personalized package of information nNotification agents: notify events of interest to a user nService agents: provide specialized services to users Mobile agents: travel from one place to another to execute user-specified tasks

42 42 © LES/PUC-Rio TAC Classic

43 43 © LES/PUC-Rio Agente reativos – Inteligência social emergente Colônia de formigas procurando por comida Cada formiga é um agente Se comunicam através do ambiente Toda vez que elas acham comida liberam um hormônio chamado feromônio no ambiente As outras seguem o feromônio E a sociedade converge para o local da comida URL:

44 Agent Pitfalls

45 45 © LES/PUC-Rio Pitfalls of Agent Development MAS is a philosophy … Developing MAS is in essence software engineering –how to engineer MAS is work in progress … –abstractions Pitfall categories: –political –management –conceptual –analysis and design –micro (agent) level –macro (society) level –implementation Software Engineering with Agents: Pitfalls and Pratfalls M. Wooldridge, N. Jennings (http://citeseer.ist.psu.edu/ html )

46 46 © LES/PUC-Rio Political pitfalls you oversell agents / you get religious about agents –agents are not magic! –agents may make it easier to solve certain classes of problems…but they do not make the impossible possible –for many applications, conventional software paradigms (e.g., OO) are more appropriate –given a problem for which an agent and a non-agent approach appear equally good, prefer non-agent solution! believe agents = silver bullet …

47 47 © LES/PUC-Rio Analysis and design pitfalls Forget agents are Software –Mundane software engineering (requirements analysis, specification, design, verification, testing) is forgotten –Frequent (but bad) justification: software engineering for agent systems is non-existent Forget agents are Distributed –Distributed systems = one of the most complex classes of computer system to design and implement –Problems of distribution do not go away, just because a system is agent-based

48 48 © LES/PUC-Rio Agent-level pitfalls you want your own architecture you think your architecture is generic –different architectures good for different problems –any architecture that is truly generic is by definition not an architecture… use too much AI –temptation to focus on the agent-specific aspects of the application –result: an agent framework too overburdened with experimental AI techniques to be usable –NLP/planning/theorem provers/… –the lesson … build agents with a minimum of AI; progressively evolve them into richer systems agents were made dumber and dumber and dumber, until they made money (Etzioni)

49 49 © LES/PUC-Rio Implementation pitfalls you obsess on implementation infrastructure you think you can start from scratch ignore de facto standards –e.g. CORBA HTML KQML FIPA

50 50 © LES/PUC-Rio Essence of MAS MAS is in essence a solution strategy a basis for a software architecture –for systems with high-priority to (non-functional) requirements such as adaptability reliability scalability … in a –distributed world –very dynamic world flexible and adaptive to change NOT FOR FREE ! owning a hammer does not make one an architect

51 Engenharia de Software de Sistemas Multiagentes Introdução

52 52 © LES/PUC-Rio Evoluções na Engenharia de Software A ES é uma disciplina que se preocupa com todos os aspectos do desenvolvimento de software Engenharia de Software OO –Linguagens Orientadas a Objetos. –Novos métodos para design de sistemas. Software está cada vez mais complexo: os sistemas de software deverão estar –Em todo o lugar –Sempre conectados (disponíveis) –Sempre ativos para executar requisições de usuários

53 53 © LES/PUC-Rio ES de Sistemas Multiagentes: Motivação Sistemas Complexos –Interação é provavelmente a característica mais importante de sistemas complexos

54 54 © LES/PUC-Rio Benefícios da abstração de Agentes Entidade Pró-Ativa Fraco acoplamento –Comunicação através de mensagens Flexibilidade de customização –individual de agentes –protocolos de comunicação –algoritmos de aprendizado

55 55 © LES/PUC-Rio O paradigma de SMAs Oferece: –Um modelo de decomposição –Uma abstração para o desenvolvimento de software baseado no domínio do problema –Um modelo para desenvolvimento de sistemas como uma composição de unidades organizacionais –Um modelo de descentralização para reduzir o acoplamento Modulariza em termos de objetivos Comunicação através de mensagens

56 56 © LES/PUC-Rio Uma pergunta… Será que o paradigma e técnicas atuais de ES serão suficientes para atacar o problema da produção eficiente da próxima geração de sistemas de software? Agents are 99% computer science, and 1% A.I. (Etzioni)

57 57 © LES/PUC-Rio Agent Design, Society Design How do we build agents capable of independent, autonomous action, so that they can successfully carry out tasks we delegate to them? How do we build agents that are capable of interacting (cooperating, coordinating, negotiating) with other agents in order to successfully carry out those delegated tasks, especially when the other agents cannot be assumed to share the same interests/goals? The first problem is agent design, the second is society design (micro/macro)

58 58 © LES/PUC-Rio Multiagent Systems In Multiagent Systems, we address questions such as: –How can cooperation emerge in societies of self-interested agents? –What kinds of languages can agents use to communicate? –How can self-interested agents recognize conflict, and how can they (nevertheless) reach agreement? –How can autonomous agents coordinate their activities so as to cooperatively achieve goals?

59 59 © LES/PUC-Rio Multiagent Systems vs. Social Sciences? While these questions are all addressed in part by other disciplines (notably economics and social sciences), what makes the multiagent systems field unique is that it emphasizes that the agents in question are computational, information processing entities. –Therefore: Algorithm studies, complexity issues, just like traditional CS theory

60 60 © LES/PUC-Rio MAS: Issues and Challenges How do we decompose problems into behaviour for individual agents? How do we ensure agents act coherently in making decision or taking action ? –do local actions have harmful global effects –avoiding unstable system behaviour How to enable agents to communicate and interact ? –communication languages and protocols –interoperation of heterogeneous agents –finding useful existing agents in open environments How does agent decide what to do ? –action selection mechanisms How do we build agents ? –actions, plans, and knowledge –coordination actions How do we compromise different views and conflicting goals of agents trying to coordinate ? How do we engineer multiagent systems ?

61 61 © LES/PUC-Rio Abstrações da Engenharia de Software Software lida com entidades abstratas, que possuem um espelho no mundo real –Números, pessoas, documentos, etc Como se deve modelar tais entidades, i.e. quais são as abstrações que devem ser usadas para se desenvolver um software? –Dados, funções, objetos, etc As abstrações devem ser independentes de uma tecnologia específica, p. ex. arquiteturas e linguagens de programação

62 62 © LES/PUC-Rio Evolução dos Paradigmas de ES Tempo Abstrações determinadas pela arquitetura da máquina Abstrações determinadas pelo domínio do problema Linguagens Assembler Abstração Funcional Programação Estruturada Orientação a Objetos Componentes... Agentes de Software

63 63 © LES/PUC-Rio A Abordagem Orientada a Agentes O desenvolvimento de SMA deve explorar conceitos coerentes com as caracterizações acima –Agentes: entidades autônomas, com controle local, situados em um ambiente e interativos –Controle local: objetivos, ações e planejamento –Ambientes: lugar onde estão os recursos usados pelos agentes –Protocolos de interação: regras para a interação entre agentes

64 64 © LES/PUC-Rio O Estado da Arte Engenharia de software para sistemas multiagentes –Muitas propostas e pouco consenso Desenvolvimento ad-hoc ou desenvolvimento proprietário Falta de avaliação do impacto do uso do paradigma multiagente Experimentação – Estudos de Caso Necessidade de um desenvolvimento de uma ES para o paradigma

65 65 © LES/PUC-Rio Pesquisa até então... Desenvolvimento de ES para sistemas multiagentes –Linguagens de modelagem –Metodologias de desenvolvimento –Arquiteturas de desenvolvimento –Padrões de projeto –Plataformas e Frameworks –Métodos formais –Melhores práticas –Processos de desenvolvimento Necessário amadurecimento...

66 66 © LES/PUC-Rio Alguns Tópicos de Pesquisa em ES para SMA Relacionamento entre a abstração de agentes com outras abstrações, p. ex. objetos Linguagens de modelagem para agentes (UML) Metodologias para a análise e o projeto de SMA Experiências de desenvolvimento de aplicações reais Levantamento de um conjunto de boas práticas para o desenvolvimento orientado a agentes

67 67 © LES/PUC-Rio Alguns Tópicos de Pesquisa em ES para SMA APIs, linguagens de programação ou plataformas padronizadas para agentes Ambientes de desenvolvimento de software e ferramentas CASE para agentes Abordagens de reuso para o desenvolvimento de SMA, incluindo frameworks, padrões, componentes e arquiteturas Integração de software orientado a agentes a processos de negócios já existentes (legados) e as suas implicações

68 68 © LES/PUC-Rio Pesquisa em andamento no LES Arquiteturas, frameworks e ferramentas para regular SMA Governança, normas e reputação Dependability em Sistemas Multiagentes Abertos Agentes inteligentes, ontologias, simulação e ambientes para SMA regulados por normas Ubiqüidade e Context-aware Sistemas Multiagentes para Medicina –Útero virtual –Células-tronco Leski

69 Fim Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas


Carregar ppt "Introdução de Engenharia de Software de Sistemas Multi-Agentes Seminários 2007 – 2º Semestre Agentes Inteligentes Inovações Tecnológicas."

Apresentações semelhantes


Anúncios Google