• Nenhum resultado encontrado

2. AGENTES ADAPTATIVOS AO CONTEXTO

2.3. Considerações sobre o capítulo

As seções anteriores apresentaram um apanhado geral na literatura buscando contextualizar o uso da noção de contexto em sistemas computacionais adaptativos. Inicialmente, algumas definições para contexto foram apresentadas, esclarecendo as diversas interpretações dadas para o termo. Depois disso, discorreu-se sobre conceitos de adaptação e de sistemas adaptativos ao contexto. Sempre que considerado necessário, foram enfatizadas as definições/classificações aceitas pelos autores deste trabalho.

Em relação à adaptação, apenas uma breve contextualização foi apresentada. Como já foi dito, adaptação é um tema estudado há muitos anos em várias áreas de conhecimento e, sendo assim, possui uma vasta gama de trabalhos relacionados. Em [Eli06] e [Eli08] podem ser encontradas mais informações sobre a origem do termo adaptação e toda a epistemologia associada a ele.

Depois de apresentados os principais conceitos referentes à pesquisa, foram descritos alguns trabalhos relacionados. A Tabela 2.1 sumariza as características dos trabalhos relacionados citados nesse capítulo (as características cujos tratamentos não foram indicados explicitamente nos artigos foram marcadas com o símbolo “-”). Como se pode observar na tabela, diferentes tipos de soluções são propostas na literatura e a maioria dos trabalhos foca em aprendizado individual. Também, ainda são poucos os trabalhos que aplicam esforços para a verificação das adaptações realizadas (no sentido de avaliar o nível de satisfação alcançado). A definição de um metamodelo para classificar as informações contextuais também é uma questão que merece maior atenção da comunidade científica, visto que apenas em [Ran03] é detalhado o modelo de contexto utilizado.

Como pode ser visto na coluna “Escopo de adaptação”, o comportamento adaptativo de grande parte dos estudos analisados é realizado no nível de seleção (e conseqüentemente ativação) de entidades definidas em tempo de projeto (sejam elas funções, componentes, ou ações). De acordo com González e co-autores [Gon07], a utilização das tecnologias de programação disponíveis faz com que a adaptabilidade em tempo de execução seja, muitas vezes, um aspecto de projeto derivado da arquitetura do software. Isto porque, em todas as técnicas de programação existentes, os pontos de variação são fixados durante o projeto e pouco progresso tem sido obtido com respeito à influência mútua entre consciência do contexto e variabilidade dinâmica de sistemas. Por último, apenas Amor e Fuentes [Amo09] disponibilizam uma ferramenta para uso.

A última linha da Tabela 2.1 já antecipa as características apresentadas pela arquitetura proposta neste trabalho. Como pode ser visto, desenvolveu-se uma arquitetura para a criação de agentes de software adaptativos ao contexto, sendo que o aprendizado das melhores políticas de adaptação pode ser individual ou multiagentes (mediante compartilhamento de adaptadores). Outra característica da arquitetura é a verificação da satisfação atingida com a adaptação realizada. Também, a arquitetura poderá ser utilizada no desenvolvimento de sistemas multiagentes de diferentes domínios e de agentes conscientes de diferentes tipos de informações contextuais. O escopo de adaptação compreende, principalmente, os planos de ação e as ações dos agentes. No entanto, podem ser modificadas outras estruturas presentes na arquitetura interna dos agentes. A arquitetura desenvolvida ficará disponível para download mediante obtenção de licença.

Com base na análise das descrições dos trabalhos relacionados também foi possível identificar certos requisitos que deveriam ser contemplados por uma arquitetura para o desenvolvimento de aplicações adaptativas ao contexto. Alguns requisitos estavam explicitamente citados nos artigos, enquanto outros foram deduzidos a partir de citações dos autores. Os requisitos identificados estão listados a seguir.

Para o gerenciamento do contexto, a arquitetura deve:

1. Apoiar a coleta de informações contextuais de diferentes sensores e a entrega dessas informações para os agentes [Ran03].

2. Permitir a implantação e o uso de novos sensores durante a execução do sistema (baseado em [Ran03]).

3. Utilizar um metamodelo de contexto que permita, além da instanciação das informações contextuais de domínio, a visualização dos tipos de informações contextuais, suas propriedades (como precisão e dinamicidade) e origens (baseado em [Ran03, Abo00]).

4. Utilizar uma forma de representação para informações contextuais que seja robusta e de rápida atualização (baseado em [Gon07]).

5. Dar suporte ao processamento das informações contextuais de forma a obter informações em um nível de abstração maior do que o provido pelos sensores [Ran03].

6. Permitir interoperabilidade sintática e semântica entre diferentes agentes (através do uso de ontologias) (afirmado por [Ran03] e corroborado em [Gon07]).

Tabela 2.1 – Sumarização das características dos trabalhos relacionados.

Fonte Tipo de solução aprendizado Tipo de Avaliação da adaptação genérica Solução Contexto Escopo da adaptação Ferramenta disponível

A bo rd ag em p aram etri zad a

[Ler03] Mecanismo / algoritmo Individual - - Memórias passadas Execução de ações Não

[Sim08] Linguagem de programação Individual Sim Sim Eventos ocorridos durante a execução

Execução de ações (de forma a aumentar o número de "prêmios" recebidos) Não [Wey08] Comparação de duas abordagens para a atribuição dinâmica de tarefas

Multiagentes - Não Informações do ambiente físico Execução de ações, como as direções a seguir. Não

[Ran03] Middleware Individual Sim (humana) Sim

Diverso (contexto físico, do sistema, do dispositivo, entre outros) Execução de ações (métodos) - A bo rd ag em c om po si ci on al [Gun08a] Arquitetura Individual e multiagentes (há interação entre os agentes) - Sim - Adição e remoção de capabilities de acordo com os comandos do itinerário / Migração de agentes Não [Han07] Abordagem (processo de adaptação + plataforma em desenvolvimento)

- Sim (humana) Sim - Adição e remoção de componentes Não

[Amo09] Arquitetura Individual - Sim Componentes e aspectos ativos no agente Mecanismos de codificação de mensagens (aspecto de comunicação dos agentes) Sim Solução

proposta Arquitetura Individual e multiagentes Sim Sim

Diverso (contexto físico, do sistema, do dispositivo, do usuário, entre outros)

Plano de ação, ações e outras estruturas

7. Definir meios para o armazenamento e tratamento de informações contextuais históricas (baseado em [Cha06, Mik06]).

Já para a adaptação ao contexto, é necessário:

8. Possibilitar a realização de adaptações em diferentes estruturas da arquitetura interna dos agentes (segundo Gunasekera e co-autores [Gun08b], agentes de software adaptativos são ainda limitados por causa das possibilidades de adaptação disponíveis).

9. Verificar dependências entre o componente de software que está sendo modificado e os demais componentes do agente antes da realização de qualquer adaptação (baseado em [Han07]).

10. Permitir aos agentes utilizar diferentes tipos de mecanismos para raciocínio ou aprendizado [Ran03].

11. Disponibilizar um repositório de adaptações (variações inseridas na arquitetura) que possa ser expandido pelo agente por meio de aprendizado ou por colaboração com outros agentes (baseado em [Gun08b]).

12. Permitir que o agente avalie as adaptações realizadas, de forma a atender as expectativas dos usuários e melhorar seu desempenho (baseado em [Sit07]).

13. Realizar as modificações no agente sem que os atrasos adicionados pela adaptação possam ser percebidos pelo usuário (baseado em [Aye08]). Para o desenvolvimento da arquitetura K2, foram observados os requisitos acima listados, conforme discutido no próximo capítulo (que apresenta o modelo conceitual da arquitetura).

3.

MODELO DE ARQUITETURA PARA A ADAPTAÇÃO DE AGENTES