Tabela de conteúdos
Idéias
(Esta seção contém idéias que ainda estão em fase de rabisco)
- Um agente poderia ter funções dependente do seu estado interno. Por exemplo, uma função play poderia ser implementada dentro de um estado, e desta forma o seu comportamento seria condicionado ao estado atual. Esta função também poderia ser implementada fora dos estados, de forma que o agente reagirá desta forma em todos os estados em que esta função não for implementada. Isto pode ser feito em lua com listas indefinidas, de forma que o agente primeiro verifica se a função está implementada no seu estado atual, e depois verifica se existe uma função “global”.
- A função save do TerraME é muito lenta, pois toda vez que ela é executada, uma nova conexão com o banco de dados tem que ser estabelecida. Seria mais interessante o TerraME armazenar de alguma forma o ponteiro para o TeDatabase no CellularSpace, aproveitando a conexão e deixando o código bem mais rápido.
- Questão do “ApplyNeighbourhoodConstraint” para restrição por atributo na vizinhança.
- Conceito de vizinhança e(ou) Trajectory dinâmicos, no sentido que eles são recalculados toda vez que vão ser usados.
Por exemplo, eu poderia dizer que os vizinhos de um agente são os agentes mais ricos que ele na célula que ele está.(colocar um exemplo melhor) - em uma eventual ferramenta de visualização temporal do modelo, a célula poderia ter alguma barra indicando o nível de preenchimento, caso ela possua um valor máximo de agentes registrados. tipo uma barra enchendo de baixo pra cima, em cada célula. isto poderia ser transparente, para possibilitar colocar mais informações na célula.
- da mesma forma que se tem um Trajectory para o espaço, podemos ter “trajectories” para agentes. isto definiria com quais agentes dentro de um grupo o agente pode se comunicar, e também, definir a ordem de comunicação. Por exemplo, um agente pode ter uma seqüência de bancos que ele pode pedir empréstimo. Esta ordem pode ser definida por fatores como taxa de juros, valor máximo do empréstimo, etc. Esta trajetória poderia ser construída passando-se um “espaço”, e seriam testados todos os agentes que estão registrados neste espaço.
- estudar intersecções entre o conceito de grupo de agentes e escala.
Sumário Reunião Tiago/Laércio na UFOP (28/jun)
- Múltiplos arquivos como parâmetros: TerraME executa os arquivos passados como parâmetro seqüencialmente. No eclipse basta colocar mais de um arquivo na linha de File (no Run…)
- Trajectory em cima de Trajectory: Documentação será feita via wiki cooperativamente.
- Argumento do ForEachNeighbour: Será feito.
- Encontrar layer a partir do theme na criação CellularSpace: Não funcionou quando tentado. Talvez seja porque pode haver themes com mesmo nome em vistas separadas obtidos de layers diferentes.
- Retorno de Message: A implementação atual deve estar retornando como default o valor true. Se não estiver, será corrigido.
- Modo silencioso na execução do TerraME: Será incluído na API TerraME um flag true/false.
- Documentação de código: Será feito.
- Documentação de usuário: Será criado um template para ser preenchido cooperativamente no wiki.
- Tutorial LUA para TerraME com funções básicas essenciais do LUA para TerraME: Será montado um tutorial TerraME “for dummies” em português.
Time
Aristotle and others (including, especially, Leibniz) have argued that time does not exist independently of the events that occur in time. This view is typically called either “Reductionism with Respect to Time” or “Relationism with Respect to Time,” since according to this view, all talk that appears to be about time can somehow be reduced to talk about temporal relations among things and events. The opposing view, normally referred to either as “Platonism with Respect to Time” or as “Substantivalism with Respect to Time” or as “Absolutism with Respect to Time,” has been defended by Plato, Newton, and others. On this view, time is like an empty container into which things and events may be placed; but it is a container that exists independently of what (if anything) is placed in it. html
Vizinhanças entre Agentes
The neighbourhood in TerraME has a function addCell, which takes as arguments the index (a x,y coord), the cellular space, and a weight. The same construction can be used for indexing agents in a neighbourhood.
Agent representing geospatial entities
cs = CellularSpace { layer, db, ...} cs:load() behaviour = { ... } as = Society { behsviour, layer} e = Environment{ cs, society } e:execute()
corrigir nomes de funções e parâmetros
funcao | parametro |
---|---|
move | newCell |
CellularSpace | xDim, yDim |
loadGalNeighborhood | fileName |
createMxNNeighborhood | m, n |
save2PNG | fileName, attrRange, attrClim |
PNG
Mudar o savePNG para o observer, evitando as dependencias do TerraME ao gd.
LOOP
Estudar a Lua Object Oriented Language, para ver se pode ser útil, pelo menos para a modelagem baseada em agentes.
CellularSpace::load
Verificar a questão das maiúsculas e minúsculas quando for ler os atributos do banco de dados. MySQL não diferencia maiúsculas de minúsculas. Uma solução é ler os atributos como sao descritos no código Lua (é assim que funciona?). Outra questão é o id: cell.id deveria sempre existir?
Nome dos métodos
Verificar os nomes dos métodos get, set, add (por exemplo, existem 'add' e 'getAgent' na Society, deveriam ser 'addAgent' e 'getAgent' ou 'add' e 'get').