< Return to home

Introdução a Agentes


Um agente é qualquer entidade que percepciona o seu ambiente através de sensores, e que consegue atuar sobre o mesmo (através de atuadores). Podemos pensar, por exemplo, nos humanos como agentes: os seus recetores são, entre outros, os olhos e o nariz, atuando através das mãos, pés e por aí fora. Um robô, por outro lado, teria câmaras e/ou infravermelhos como recetores, atuando através das respetivas partes motoras.

Função Agente

Dizemos que o comportamento de um agente pode ser descrito por uma função, a função agente:

\[𝑓:P∗→A\]

O programa agente é executado numa arquitectura física para produzir acção. Tem-se, portanto, que um agente é composto por uma arquitetura ou plataforma e por um programa.

Agentes Racionais


Agentes racionais procuram sempre realizar as ações que, segundo a informação que lhes é dada e os conhecimentos que têm, resultarão idealmente em cenários mais desejáveis/numa maior expectativa de sucesso, segundo um conjunto de medidas objetivas de desempenho (performance) - entra aqui a noção de fazer a escolha certa. Em relação ao exemplo do aspirador, poderíamos introduzir medidas de desempenho ao agente: tempo gasto, quantidade de sujidade aspirada, entre outras.

Devemos, contudo, atentar que tal como nós, como seres humanos, não sabemos sempre a decisão certa (apesar de poder raciocinar sobre a mesma), os agentes também não: agentes racionais devem responder com a decisão ótima dentro do que sabem, mas não são omniscientes - não sabem tudo - pelo que a decisão que tomam pode não ser a ideal. Mais ainda, racionalidade não implica clarividência, isto é, a ação tomada pode não resultar no que pretendemos, já que imprevistos acontecem e nem sempre conseguimos escapar deles. Se estivermos numa estrada e de repente houver um acidente que corta todas as faixas, infelizmente, ficamos umas horas presas no trânsito, mesmo tendo verificado que em teoria seguir essa estrada traduzir-se-ia no caminho mais curto antes de sair de casa. Podemos, portanto, a partir dos dois pontos aqui levantados, afirmar que o raciocínio nem sempre leva ao sucesso.

Agentes racionais devem explorar, aprender e ser autónomos. No exemplo do aspirador, o agente precisa experimentar diferentes ações e locais, aprendendo com as tentativas para otimizar suas decisões. Se encontrar um local sujo e apenas mudar de posição sem limpar, perceberá que não é a ação ideal e tentará outra abordagem na próxima vez. A autonomia não implica ausência de regras iniciais, mas sim a capacidade de desenvolver estratégias através da exploração e aprendizagem, testando ações e inferindo o que o aproxima do objetivo de forma mais eficiente.

Caracterização de um Agente


Para modelar agentes racionais, é útil ter um standard para o fazer: algo que nos permita descrever o agente segundo um conjunto de características. Vamos aqui utilizar a descrição PEAS: Performance, Environment, Actuators, Sensors. De seguida, seguem-se alguns exemplos de agentes segundo esta descrição:

Agente Performance Ambiente Atuadores Sensores
Condutor de Táxi (Automatizado) Maximizar o Lucro; Conforto; Segurança. Estradas; Tráfego; Peões; Clientes. Motor; Acelerador; Buzina. Câmaras; GPS; Velocímetro.
Robô Professor Feedback dos Alunos; Notas dos Alunos. Alunos; Ambiente de Testes. Monitor. Teclado.
Robô que joga Futebol Golos Marcados; Golos (não) sofridos; Pontos ganhos. Campo; Colegas de Equipa; Adversários; Árbitro. Motores; Articulações. Câmaras; Sensores de proximidade; Sensores de infravermelhos.

Tipos de ambientes


Ambientes Completamente Observáveis vs Parcialmente Observáveis: dizemos que um agente consegue observar completamente um ambiente caso este consiga, através dos seus sensores, detetar tudo o que é relevante para resolver o problema em questão, tornando-se assim desnecessário guardar estado interno sobre o que vai observando, já que tem sempre tudo "na palma da mão".

Ambientes Determinísticos vs Estocásticos: um ambiente diz-se determinístico caso o próximo estado do mesmo seja apenas ditado pelo seu estado atual e pela ação seguinte do agente, sem qualquer grau de incerteza associado nem outras ações do exterior que o possam perturbar.
Mais ainda, dizemos que um ambiente continua a ser determinístico (mas, mais concretamente, estratégico) caso estejamos num ambiente multi-agente onde o próximo estado pode estar também dependente das ações de outros agentes (como é o caso do xadrez). O ambiente que rodeia um taxista é, claro, estocástico - não podemos prever o tráfego a parar abruptamente, um pneu a rebentar, entre outros, pelo que o ambiente pode alterar sem que a ação do agente tenha uma influência direta sobre ele.

Ambientes Episódicos vs Sequenciais: dizemos que um ambiente é episódico caso cada estado seja atómico - isto é, estamos num estado, realizamos uma ação, e o estado seguinte não vai ter qualquer dependência em relação às ações tomadas no estado anterior.

Ambientes Estáticos vs Dinâmicos: ambientes estáticos não se alteram a não ser através da ação do(s) agente(s), ou seja, enquanto os agentes estão a pensar sobre que decisão tomar o ambiente mantém-se inalterado.

Por fim, notar que os ambientes podem ser de agente único (vs multi-agente) - num jogo de sudoku, por exemplo, existe apenas um agente a atuar, enquanto que no caso do robô taxista existem vários agentes a atuar pela estrada fora, sejam eles iguais a este ou não.

Ambiente Observável? Agentes? Determinístico? Episódico? Estático? Contínuo?
Palavras Cruzadas Completamente Observável Agente Único Determinístico Sequencial Estático Discreto
Poker Parcialmente Observável Multi-Agente Estocástico Sequencial Estático Discreto
Mundo Real Parcialmente Observável Multi-Agente Estocástico Sequencial Dinâmico Contínuo

Tipos de Agentes


Agente reactivo puro

Este tipo de agente é o mais elementar, tomando decisões com base apenas nas perceções atuais, sem considerar um histórico de perceções. No exemplo do aspirador, trata-se de um agente de reflexos simples: ele não precisa recordar perceções anteriores, pois suas ações dependem apenas da sujidade do chão e da sua localização no momento.

Agente reactivo baseado em modelos

Em ambientes parcialmente observáveis, o agente precisa manter um estado interno que mapeia as partes do mundo já observadas, mesmo que não estejam visíveis no momento. Isso o diferencia dos agentes de reflexos simples, pois agora ele armazena um histórico de perceções. Essa distinção é útil em problemas onde um agente de reflexos simples não é capaz de executar tarefas, já que, em certos casos, o estado atual não contém todas as informações necessárias. Mesmo assim, a complexidade do agente não aumenta drasticamente, sendo uma extensão suave do modelo anterior, o que justifica o nome "agente de reflexos simples com estado interno".

Agente deliberativo com objectivo

Nem sempre é possível criar um programa que saiba quais ações tomar em qualquer situação, especialmente quando os objetivos não são constantes, como no caso do aspirador, cujo objetivo é sempre limpar o chão. Para esses cenários, surgem os agentes baseados em objetivos. Esses agentes recebem um objetivo arbitrário e, com uma lógica semelhante aos agentes baseados em modelos (que mantêm um estado interno), conseguem determinar ações que os aproximam de alcançar o objetivo específico dado naquele momento.

Agente deliberativo com função de utilidade

Muito semelhantes aos agentes baseados em objetivos, os agentes baseados em utilidade vão além ao incluir uma função de utilidade. Esta função atua como uma "medida" que permite diferenciar entre várias ações possíveis numa mesma situação, mesmo que todas levem ao mesmo objetivo. A função considera um conjunto de preferências definidas inicialmente.


- mauricio

10/09/2024

< Return to home