Decidi fechar este Blog… os Post foram transferidos para o meu site pessoal onde para além de complexidade falo também de muitas outras coisas. Por favor actualize os seus bookmarks para http://sixhat.net onde continuarei a falar de complexidade, redes e simulação multi-agente.

Estive a preparar alguns vídeos demostrativos para a WSCS. Este é o do jogo da vida do John Conway. Trata-se de um jogo de zero jogadores uma vez que o resultado é ditado à priori pela disposição das células vivas (a amarelo). As regras deste automato celular são muito simples:

1. Qualquer célula com menos que dois vizinhos morre de solidão.
2. Qualquer célula com mais do que 3 vizinhos morre de sufoco.
3. Qualquer célula com 2 ou 3 vizinhos vive no próximo tick.
4. Qualquer célula (viva ou morta) com exactamente 3 vizinhos vive no próximo tick.

Although the in Silico multi-agent simulations can be produced in almost any programming language, there are several frameworks available for doing Social Simulation that allow for an easy start. They make it easy to implement concepts like scheduling of events or actions, discrete or continuous worlds, network simulation and data output. Some even include analysis modules that do some sort of data analysis within the simulation. Some of the most important frameworks for social simulation are outlined here with some personal comments:

Mason – Is a fast discrete-event multiagent simulation library written in Java. It separates the models completely from the visualization modules allowing them to be deployed on a variety of platforms. Also models can be checkpointed for latter use, and the simulations recovered at a latter time. It requires some knowledge of Java programming.

Repast – With the latest version of Repast (Simphony) this framework as taken a new approach to Model development with a Java point-and-click model development and execution, allowing the development of Models for newcomers to programming, although models can still be written in the “old way” if one prefers. It is probably the framework that includes the highest number of libraries related with simulation available to use.

Netlogo – This is a simulation environment that is probably the easiest to learn without previous programming experience. Although written in Java, the modeling language is derived from the Logo language. Also, it allows for rapid testing of ideas as the mix of point and click elements, simple language and use of “turtles” as a metaphor for agents allows models to be built in a fraction of time of other languages. There exists another similar environment for modeling based in the Logo Language called StarLogo.

Swarm – This is self-called a platform instead of a framework. The main reason is that besides de software in itself there is a vast community of users and developers that share their ideas and experience in a Wiki style website. The Library is written in Objective-C and therefore might be a bit of a step to get into. It is one of the oldest Libraries developed for agent based simulation and seams that since 2005 it isn’t being actively developed, although many researchers still use it in their models. You also can use Java to program and use the Swarm Library, but you’ll have to compile Swarm with Java support yourself.

This list is far from completeness. I’ll try to update this list with more frameworks and comments. If you would like to add a review or some comment on any kind of framework please leave a comment or send it to me at david — at — sixhat — dot — net

This article was writen to the Complexity Sciences Winter School Blog

Vai decorrer em Janeiro a Winter School in Complexity do ISCTE. Foi criado um Blog para acompanhar as sessões e embora seja vocacionado para os participantes da Winter School, tem informação útil para quem estiver interessado em Complexidade, nomeadamente em redes.

Reblog this post [with Zemanta]

Uma plataforma de modelação de agentes pode ser mais ou menos útil até ser confrontada com a realidade da mudança. O caso do swarm é paradigmático porque quem pretender utiliza-lo hoje em dia num Mac leva com a mensagem de que funciona com Macs PowerPC e que no caso dos Intel funcionará sob o Rosetta (emulação). Sendo que a Apple já mudou de plataforma vai fazer 3 anos, e entretanto já lançou um sistema operativo novo… isto mostra que o Swarm simplesmente está parado no tempo e não tem developers interessados no projecto, infelizmente.

A escrita de documentos científicos e mais propriamente a minha tese está a ser feita em LaTeX. A vantagem? Não tenho que me preocupar com formatações e a inserção de fórmulas matemáticas é muito facilitada. A desvantagem? A curva de aprendizagem inicial é um pouco íngreme, mas pode-se sempre recorrer à inúmera documentação existente online. Um dos recursos muito práticos existentes online particularmente orientado para produção de formulação matemática é o Getting Started with LaTeX, da escola de matemática de Dublin.

Já estão actualizados para agora incorporar ferramentas de SIGs… No caso do Repast Simphony da NASA World Wind e no NetLogo a extensão de SIGs está já incluída.

Estas são talvez as duas ferramentas mais utilizadas em simulação multi-agente e embora o Repast tenha optado pela escolha do eclipse para base ( o que a mim me faz confusão ) continua a ser um dos toolkits mais simpático para ABM. O Netlogo por outro lado apesar da sua simplicidade continua a oferecer um ambiente de desenvolvimento rápido, nomeadamente para o desenhar de protótipos, muito embora a linguagem utilizada (logo) não seja muito simpática para quem já programa há algum tempo. Em todo o caso é altura de actualizar o software que por aqui anda.

A BCNet Workshop decorre entre 10-12 de Dezembro deste ano sendo que a inscrição e submissão de abstracts será feita até 1 de Novembro e a inscrição a 15 de Outubro… (Early Registration) ou 1 de Dezembro (Late Registration)

O python facilita muito a vida para desenvolvimento rápido de grafos e redes, principalmente quando estas tem que ser construídas a partir de ficheiros externos de dados. Normalmente uma combinação do python com o awk pode resolver todos os problemas numa fracção do tempo que outras linguagens pediriam.

No entanto para trabalhar e desenhar redes há dois pacotes que decidi serem importantes:

* netowrkx – está excelente desde que se utilize a versão SVN as versões normais para download tem 1 bug muito importante que é não ser possível exportar os grafos para um formato que se possa utilizar posteriormente. Na versão do SVN esse problema parece já estar corrigido e portanto pode-se utilizar o pacote para exportar o grafo no formato GML

* pyNetConv – Este software pode ser integrado como módulo mas tem também uma GUI para fazer conversões entre formatos de redes. A minha utilização serve para converter o formato GML para Pajek (.net) uma vez que algum software que utilizo não conhece o GML.

Com estes dois pacotes é possível utilizar python para redes. De outra forma, continuaria a ser possível mas um pouco mais complicado…

Holger Ebel – Tem dois papers interessantes: Dynamics of Social Networks e Scale-Free topology of email networks.
Mark Newman – Professor de física na Universidade do Michigan. Este homem é só Redes, Redes, Redes…
Ulrike von Luxburg – Faz parte do Max Plank Institute for Biological Cybernetics, tem um artigo técnico de 30 páginas a discutir a utilização de decomposição hierárquica espectral para determinação de comunidades, convenientemente intitulado: A Tutorial on Spectral Clustering. Para além disso o artigo aborda ainda as vantagens e desvantagens de diversos algoritmos de clustering…
Mariana Meila – Professora Assistente na Universidade de Washington. O site inclui uma série de artigos sobre Spectral Clustering, alguns que escreveu com Susan Shortreed (ver a seguir)
Susan Shortreed – Tem um tese em Learning in Spectral Clustering. e escreveu com Marina Meila “Unsupervised Spectral Learning”. Ambos podem ser encontrados nas publicações sobre Spectral Clustering da Universidade Washington.

Um paper escrito para a Encyclopedia of Complexity and System Science, Springer Verlag, 2008 aborda o problema do formalismo matemático utilizado em simulação de agentes.

Abstract: Many complex systems can be modeled as multiagent systems in which the constituent entities (agents) interact with each other. The global dynamics of such a system is determined by the nature of the local interactions among the agents. Since it is difficult to formally analyze complex multiagent systems, they are often studied through computer simulations. While computer simulations can be very useful, results obtained through simulations do not formally validate the observed behavior. Thus, there is a need for a mathematical framework which one can use to represent multiagent systems and formally establish their properties. This work contains a brief exposition of some known mathematical frameworks that can model multiagent systems. The focus is on one such framework, namely that of finite dynamical systems. Both, deterministic and stochastic versions of this framework are discussed. The paper contains a sampling of the mathematical results from the literature to show how finite dynamical systems can be used to carry out a rigorous study of the properties of multiagent systems and it is shown how the framework can also serve as a universal model for computation.

O PDF está disponível em arXiv:0801.0249v1

Estive hoje num Workshop sobre Complexidade em Sistemas Sociais, que vai decorrer até amanhã no ISCTE. Vários investigadores vieram mostrar os seus trabalhos e entre eles vários mostraram simulações executadas em Repast.

Para quem não sabe, o Repast é uma biblioteca Java para facilitar a vida na programação de sistemas multi-agente.

Ora acontece que o Repast está agora na versão Simphony 1.0. A criação desta versão foi uma grande alteração em relação à anterior 3.1 (sim, a numeração é mesmo assim… O Simphony é um “novo” produto) uma vez que agora o Simphony deixou de ser uma biblioteca java que podia ser logo utilizada, para agora ser um pacote com o editor Eclipse integrado. Isto não facilita em nada a utilização do Repast, uma vez que quem até agora não utilizava o Eclipse não pode desde logo continuar a utilizar o mesmo IDE para o desenvolvimento das suas simulações.

Mas isto podia ser embirração minha com o eclipse, mas ao falar hoje com quem lida mais com a ferramenta, a opinião é quase unânime: “Foi erro acoplar o Repast o Eclipse. É mais pesado, lento e obriga a aprendizagem do Eclipse por parte de quem programa noutras linguagens. O Download também aumentou de tamanho (por culpa do Eclipse) e as funcionalidades 3D não são suficientes para justificar tanta chatice”. Muitos dizem mesmo que continuam a utilizar a versão 3.1 e que não pensam fazer o upgrade…

Isto mostra um pouco que o acoplamento do que até agora era uma boa biblioteca de java a um editor particular vai afastar algumas pessoas. Naturalmente que para utilizava o Eclipse anteriormente isto não coloca problemas, mas nem todos estão dispostos a fazer esta transição.

Mathematical Tools For Forecasting Stock Market Work For Ecology Too: “Unlike financial stocks, where trades are meticulously recorded, scientists began estimating animal populations only a few decades ago. But a new technique makes it possible to use the same tools some banks use to forecast the stock market and apply them to ecology”

Vencer o jogo da bolsa é o grande desafio de quem trabalha em economia. Garantidamente meio caminho andado para um Nobel da economia. Mas as ferramentas utilizadas no estudo e previsão dos mercados podem ser também utilizados. Neste artigo os autores utilizaram um técnica denominada “Dewdrop Regression” (Como é que isto se traduz?) para estimar as populações de peixes obtendo excelentes resultados.

Biology-Inspired techniques for Self-Organization in dynamic Networks

Complexity of Modern Network Information Systems….

COSI – Complexity in Social Science

Possui um glossário com definições úteis das ciências da complexidade.

Mais uma definição de complexidade e outras definições úteis

A definition would be nice. So would an ordinal if not a cardinal measure. Is it clear that humans are more complex than whales? Than chimpanzees? Than termites? Than termite mounds?

Já está disponível o Repast Simphony para simulação baseada em agentes… mas… parece que alguém se enganou… porque 314MB de Download? estão a gozar comigo… é bom que isto não seja só eye candy senão fico-me pelo repast 3 ou mudou-me para outra framework…

Última actualização: 13/08/2008

Hancock – Linux
Linguagem baseada em C da AT&T destinada a trabalhar dados que sejam uniformes em quantidade.

Open Graph Drawing Framework
Biblioteca em C++ para gerar automaticamente diagramas, utilizando diversos algoritmos

uDraw(Graph)
Criação de gráficos, diagramas e visualização de estruturas

Collective Dynamics Group
Lista de software na universidade de Columbia

Network WorkBench

Software para análise, modelação e visualização de redes de grande escala: A minha primeira impressão é que é muito bom, implementando muitos dos algoritmos de visualização mais utilizados.

My Twitter Social Ego Networks

O meu trabalho de Tese vai andar em torno de Redes. Aqui está um exemplo do que ando a fazer. A minha rede social do Twitter… Nada mau.