[CML]Redes de Mapas Acoplados
CML (Coupled Map Lattices)

 

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.