TerraME - Agentes
TerraME - Agentes Simples
Gilberto Câmara 21/02/07
1. O Pedro implementou os conceitos de Agentes no TerraME. Ele tem um exemplo muito bom sobre segregação. A implementação do Pedro é um caso que ilustra o conceito de programação multi-paradigma em TerraME. Funcionalidades de agentes já haviam sido previstas pelo Tiago em suas noções de (“Global Automata” e “Local Automata”). Considerando a lógica de permitir programação “top-down” e “bottom-up”, seria bom ter os dois conceitos em paralelo na nova versão do TerraME.
TerraME - Agentes Inteligentes
Tiago Carneiro 21/02/07
1. Já se perguntaram qual a diferença dos agentes implementados pelo Pedro e um objeto(ou tabela) qualquer? (Nao tento, nem de longe, diminuir o trabalho do Pedro, quero colaborar). Eles não se comunicam, não possuem fluxo de execução independente, não são autônomos. Então, porque são agentes? Somente porque o nome da classe (função construtora) é Agent? A autonomia é requisito básico para a noção de emergência! Se os agentes não são autônomos, então existe um algoritmo que os controla. Se eles não se comunicam, então não são capazes de colaborar ou agir socialmente. Se existe somente um fluxo de excução, o modelo é inerentemente sequencial. Talvez, a falta dessas características permita que um bom modelador possa fazer um prognóstico sobre o comportamento do módelo apenas lendo seu código. Então, a simulação de processos emergentes seria limitada por essas questões.
2. Até mesmo nos automatos celulares, cada autômato é autônomo. Ele detem o controle sobre seu estado(discreto) interno, é ele quem decide quando deve mudar de estado. Tais autômatos somente são influenciados pelos que existem em outras células, se o modelador assim desejar e implementar regras dependentes da vizinhaça. Mas é ele quem avalia sua vizinhaça, e nunca o contrário, alguém de sua vizinhaça lhe ordena uma mudança.
3. Ao meu ver, as máquinas de estado são o modelo mais simplificado de autonomia, esse é um dos motivos que me levaram a adotá-las em detrimento dos Agentes na forma clássica proposta pela área de Inteligência Artificial.
4. Não acredito em agentes inteligentes, que necessitam representar internamente aquilo que conhecem do mundo que habitam, e que tomam decisões com base nesse conhecimento. Eles são demasiadamente difíceis de codificar, em 40 anos de pesquisa, ainda não foi encontrada um representação computacional para o conhecimento que tenha completude e ao mesmo tempo seja eficiente. Marvin Minsky tentou e não conseguiu, mas apontou vários caminhos futuros e mostrou que a lógica de predicados (ou lógica de primeira ordem) é insuficiente. Por que então devemos seguir nesta direção? Finalizo com uma frase que encabeça o artigo de Rodney A. Brooks do MIT Artificial Intelligence Laboratory: “Elephants don't play chess”.
5. Acredito que a real inteligência seja um fenômeno emergente de ações básicas tomadas por agents simplificados que sejam leves e eficientes. Acredito que não seja necessário manter uma representação interna do conhecimento do agente. O que o agente sabe é o que ele percebe em combinação com seu estado interno. Por esse motivo, adotei a idéia de “agentes situados” que na verdade, são implementados como máquinas de estados cujo estado(discreto) é correlacionado ao estado (continuo e discreto) do mundo por ele habitado: autômatos situados, como propostos por Stanley J. Rosenschein and Leslie Pack Kaelbling do Department of Electrical Engineering and Computer Science do Massachusetts Institute of Technology.
6. Algumas questões: Como processos simultâneos no espaço, isto é, processos que ocorrem simultaneamente em todos os locais do espaço (como a regeneração de uma floresta) poderia ser simulado por um único agente? Um agente pode estar em mais de um local no mesmo instante? (Haveria como garantir, de forma elegante e eficiente, que a avaliação desse agente na célula anterior, e a provavel alteração do seu estado, não afetaria sua avaliação na célula seguinte?) Se vc vai usar vários agentes para resolver este problema, então vc ocupará mais memória, terá que codificar a gerência dos agentes (criar, destruir, amarzenar lista de referências aos agentes, etc), terá que coordená-los e ainda garantir exclusão mútua no acesso a varáveis compartilhadas.
7. Sugestões para leitura (na ordem que deveriam ser lidos):
- Wooldridge, M. J. and N. R. Jennings (1995). “Intelligent agents: Theory and practice.” Knowledge Engineering Review 10(2) (http://www.csc.liv.ac.uk/~mjw/pubs/ker95.pdf)
- Brooks, R. A., “Elephants Don't Play Chess”, Robotics and Autonomous Systems (6), 1990, pp. 3–15.(http://people.csail.mit.edu/brooks/papers/elephants.pdf)
- Rosenschein, S. J. and L. P. Kaelbling (1995). “A situated view of representation and control.” Artificial Intelligence 73(149-73).(http://people.csail.mit.edu/lpk/papers/sitaut.ps)
TerraME - Diferentes Tipos de Agentes
Antonio Miguel 22/02/07
1. A questão do uso do framework TerraME para explorar modelos que envolvam a utilização de “agentes” é bastante interessante. Independentemente do que queira se definir como um “agente”, e literatura, como mostrou o Tiago, está cheio destas definições, o TerraME possui vários mecanismos interessantes para se desenvolver, não um modelo de agente único, mas na verdade vários, e isso é que é o interessante ali.
2. Podemos ter sim agentes reativos, agentes situados, agentes cognitivos, enfim é possível explorar em TerraME um universo com o equivalente (mal comparando) a uma programação “multi-paradigma” para agentes e mais interessante, fácil de construir diferentes modelos de agentes. O fácil se refere não a “programação”de modelos multi-agentes por modeladores, mas para a experimentação ainda no ambiente TerraME. Por exemplo, agentes do tipo que temos no REPAST são possíveis no TerraME. Os mecanismos permitem. O que não temos é a maneira de construção destes agentes como o REPAST proporciona. Ou seja, precisamos neste momento é estudar mais os ambientes disponíveis para a criação de sistemas com agentes, e verificar com nossos problemas, o que precisamos, o que já temos, o que podemos facilitar, no universo TerraME, para quem deseja trabalhar com “agentes” em seus modelos.
3. - É preciso utilizar TerraME também como plataforma de inovação! Uma coisa é mante-la simples e com possibilidade de uso por vários setores e a outra e não nos restringirmos a pensar e criar mais idéias, que os mecanismos nos permitem: precisamos EXERCITÁ-LOS ao mesmo tempo em que tornamos seu uso mais simples.