O estudo de CMLs compreende a inter-conexão entre unidades de dinâmica complexa, onde mapas da série temporal (ou outros) são dispostos em uma rede, geralmente um vetor ou matriz de 2 ou mais dimensões, de forma que dada uma regra de acoplamento, o estado no instante t+1 não depende apenas do estado no instante t, mas tambem do estado dos vizinhos em dado instante.
Neste exemplo, introduz-se a constante E, ou constante de acoplamento que, na série temporal, indica qual a influência da vizinhança próxima para o calculo do estado no proximo instante. Para iteração consideramos vizinhança de 8, e um parâmetro Mu, que define o comportamento da "célula" na rede.
Tais mapas podem ser empregados em diversas aplicações em reconhecimento de sinais, padrões, tratamento de imagens e remoção de ruído, e em estudos teóricos, de fenômenos de perturbação, dissipação, amortecimento e, entre outros, em vida artificial.
Aplicando uma analogia ao estudo de autômatas celulares, porém, com o uso de osciladores caóticos acoplados (de acordo com a regra estabelecida pelo "kernel", como explicado adiante), podemos relevar vários fatores emergentes em redes, como estabilidade, convergência ou divergência, auto-sustentação, entre outros, de acordo com a entropia do sistema, representada aqui pelo parâmetro Mu, e a constante de acoplamento E.
Ressaltamos que diferentemente do caso de autômatas celulares discretos, aqui, cada célula obedece regras estupuladas pela série temporal aplicada à célula e aos vizinhos, podendo assumir qualquer valore entre 0 e 1. Logo, foram criadas representações gráficas alternativas, como a acima, onde tons de cinza criam a analogia ao valor, no caso, intensidade. Esquemas de cores alternativas estão disponíveis tanto no applet como nos programas em Matlab.
Linha de comando em matlab: cml(mu,E,step,colormap)
O mapa é acoplado com os vizinhos sempre em fase, de forma que antes é feita a iteração de toda a matriz e posteriormente é feito o acoplamento na forma de uma convolução bi-dimensional, com o uso do kernel escolhido.
0
|
E
|
0
|
E
|
4*(1-E)
|
E
|
0
|
E
|
0
|
kernel para vizinhança de 4 (Von Newmann). Deve-se normalizar a matriz dividindo-a por 4
E
|
E
|
E
|
E
|
8*(1-E)
|
E
|
E
|
E
|
E
|
kernel para vizinhança de 8 (Moore). Deve-se normalizar a matriz dividindo-a por 8
OBS: Para o caso de acoplamento feito com os vizinhos, considerando os valores anteriores, surge uma diferença de fase de 1 período, gerando um padrão quadriculado no mapa.
Programas em Matlab para o cálculo de um mapa acoplado em duas dimensoões estão disponíveis: cml.m, e cmla.m que gera saídas bitmap sequenciais para criação de animações (como a acima, no topo da página).
Outro exemplo de animação feita com o programa cmla.m: cml2.gif (1.1 Mb).
Os parâmetros são mu, a constante de acoplamento E, o intervalo de amostragem e o mapa com palete alternativa. Na ausência de parâmetros, os valores padrão são: mu=3.9 E=0.9 e step=4, com colormap gray.
O applet para vizinhança 8 aceita parâmetros passados por código HTML, que podem ser verificados no gerador de código. A fonte está disponível: cml.java
O apple para vizinhança 4 funciona de maneira semelhante, e seu código cml.java está disponível.
É interessante experimentar vários valores de mu e acoplamento, mudando tambem a fase amostrada, notando que aumentando mu, aumentamos a entropia do sistema, e aumentando o acoplamento, aumentamos as tendência a entrar em fase. Vale observar se seu sistema oscila em período 2, 4, 8, 16 ou maiores, uma vez que o acoplamento pode aumentar ou diminuir o período nominal de oscilação para mu. Ajuste o valor do intervalo de amostragem para vários ciclos e experimente utilizar um acoplamento negativo.
Alguns testes ilustrativos (vizinhança 8), prontos para rodar em JAVA.
Para exploradores mais interessados, a mudança do kernel pode proporcionar comportamentos interessantes e úteis. Lembrando que é necessário normalizar o kernel para obter valores de X sempre entre 0 e 1.
<< Indice >> Fractal em java