The Per Bak and Kim Sneppen evolution model is one of the most simple and at the same time more elegant ways to show self-organised criticality.
The above demo is part of a vaster set of animations illustrating complex systems that I’m in the process of coding in javascript and P5. I had coded a Bak-Sneppen model a long time ago in Java, but this is nicer.
If you would like to see a particular example coded, or want to contribute, head on to github and either fork the dave.complexity or make your suggestions in the issues.
Embora seja o melhor sistema operativo do planeta, a percepção que se tem da utilização e da procura do linux nem sempre é compreendida. O site distrowatch.com possui um ranking das várias distribuições de linux que permite ao utilizador perceber o “momentum” que cada distro vive.
Este ranking é baseado no número de Page Hits e embora não sendo rigoroso quanto à penetração no mercado das várias distros, permite ter uma ideia geral sobre o assunto. Tendo andado a brincar recentemente com leis de escala e leis sem escala, decidi olhar para estes rankings sob a perspectiva da matemática.
Antes de começar o estudo do ranking da distrowatch, tinha uma ideia que queria confirmar. Será que o número de page hits de cada distribuição obedece a uma lei de potências?
O tipo de fenómeno parecia ajustar-se perfeitamente a estas leis pelo que o primeiro passo foi representar o histograma do page hits em função da posição no ranking. O distrowatch possui um Top 100 na página inicial, mas permite também aceder às listagens completas e assim escolhi utilizar os dados dos últimos 12 meses para fazer esta análise.
A representação do dados num gráfico mostrou logo que estava no bom caminho:
As 359 distribuições apresentam um comportamento típico de leis sem escala, ou leis de potência. Estas distribuições aparecem numa série de fenómenos naturais. Os tremores de terra, por exemplo que são dados pela lei de Gutemberg-Ritcher:
Outros modelos incluem por exemplo a actividade neuronal, ou o tamanho dos seres, ou ainda o caso de avalanches em modelos matemáticos como o de Bak-Sneppen.
O próximo passo foi naturalmente representar os mesmos dados em escala logarítmica a fim de verificar se nesta escala eles se apresentavam como uma linha recta com um determinado declive:
O comportamento observado continuou a ser típico de uma lei de escala, embora ficasse um pouco surpreendido com a observação de que parecia haver duas zonas distintas, com declives diferentes. No fim o cut-off seria natural. As leis sem escala verificam-se sempre numa determinada gama. Para além disso verifica-se o cut-off. Mas normalmente estamos muito afastados desse cut-off. Se este cut-off não existisse isso queria dizer por exemplo que no modelo dos tremores de terra existiria certamente um tremor de terra com energia suficiente parra fazer explodir a terra. Ora a energia acumulada na terra não é ilimitada e naturalmente tem que existir um cut-off.
Representando as duas secções importantes da e ajustando-as a uma lei de potências obtive o seguinte:
Como se pode ver os r^2 são ambos muito altos. No entanto parece que o top é regido por duas leis diferentes com expoentes diferentes. Enquanto o expoente da primeira parte é muito próximo de -1, o segundo é muito próximo de -2.
Conclusão
Pensando no porquê desta diferença e porquê da transição em torno do valor 100 do ranking, presumi que o efeito se deve à presença do Top 100 na página inicial do DistroWatch, levando que as distros que estão nesta página tenham muito mais visibilidade e daí recebam mais hits que as restantes que não conseguem assim tanta visibilidade de consequentemente hits.
Andámos todos de volta do modelo do Merton, que nem tive tempo para outras coisas, mas agora que a entrega no passado, pus-me a brincar com o modelo Bak-Sneppen, falado na aula de Matemática. Queria ver o boneco a funcionar… e depois de o implementar, não é que funciona?
Para quem quiser experimentar, criei o projecto no NetBeans e podem fazer download do projecto para o correr no vosso computador.