introdução de engenharia de software de sistemas multi-agentes seminários 2007 – 2º semestre...

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

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

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

Introdução deEngenharia de Software de

Sistemas Multi-Agentes

Seminários 2007 – 2º Semestre

Agentes Inteligentes

Inovações Tecnológicas

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

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)

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

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

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

Introdução e conceitos básicos

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

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”.

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

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

?

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

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

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

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

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

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

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

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

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

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

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

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

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

13© LES/PUC-Rio

Framework básico para um Agente

function SKELETON-AGENT(percept) returns actionstatic: memory

memory := UPDATE-MEMORY(memory, percept)action := CHOOSE-BEST-ACTION(memory)memory := UPDATE-MEMORY(memory, action)

return action

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

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

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

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

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

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

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

17© LES/PUC-Rio

Agente Reflexivo Simples

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

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

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

19© LES/PUC-Rio

Agente baseado em modelo

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

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

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

21© LES/PUC-Rio

Agente baseado em objetivos

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

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)

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

23© LES/PUC-Rio

Agente baseado em utilidade

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

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

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

25© LES/PUC-Rio

Learning Agent

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

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

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

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.

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

28© LES/PUC-Rio

Modelo BDI

• Alguns frameworks de SMAs que aplicam BDI– JADEX

– JACK

– SPARK

– ASF

– Etc.

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

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

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

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

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

34© LES/PUC-Rio

Intelligent Agents

Agency Agent Interactivity Service Interactivity Application Interactivity Data Interactivity User Representation Asynchrony Agency: Degree of agent behavior in terms of application structure and design

Preference Reasoning Learning Intelligence

Intelligence: Degree of reasoning and learned behavior exhibited by the agent

Threshold of Intelligence Agency

are software entities whose intelligence and agency exceed certain threshold

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

35© LES/PUC-Rio

Agente vs. Objeto

• Similaridade

– Entidades computacionais

– Encapsulam estado

– Realizam ações

– Se comunicam via troca de mensagens

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

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

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

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

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

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

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

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.

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

Exemplos

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

41© LES/PUC-Rio

Internet Agents

Web search agents: provide search services to users Web 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 Information retrieval agents: deliver a personalized package of information Notification agents: notify events of interest to a user Service agents: provide specialized services to users Mobile agents: travel from one place to another to execute user-specified

tasks

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

42© LES/PUC-Rio

TAC Classic

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

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: http://website.lineone.net/~john.montgomery/demos/ants.html

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

Agent Pitfalls

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

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/522355.html )

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

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 …

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

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

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

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)

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

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

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

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”

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

Engenharia de Software deSistemas Multiagentes

Introdução

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

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

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

53© LES/PUC-Rio

ES de Sistemas Multiagentes:Motivação

• Sistemas Complexos

– Interação é provavelmente a característica mais importante de sistemas complexos

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

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

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

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

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

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)

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

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)

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

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?

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

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

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

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 ?

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

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

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

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

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

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

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

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

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

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...

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

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

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

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

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

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

http://wiki.les.inf.puc-rio.br/index.php/Sistemas_Multiagentes

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

Fim

Seminários 2007 – 2º Semestre

Agentes Inteligentes

Inovações Tecnológicas