• Nenhum resultado encontrado

Quando os AGs são aplicados na resolução de vários problemas complexos, são realizados estudos

experimentais ou observacionais, o que leva a uma coleção de dados numéricos (por exemplo, mé- dias, desvio padrão, etc.). Em muitos casos, a interpretação dos dados (resultados) obtidos através de um experimento não é uma tarefa trivial, pois o padrão de variação nestes dados não deixa óbvio se eles são realmente bons ou ruins.

Alguns métodos estatísticos podem ser utilizados na interpretação dos dados obtidos pelos AGs. Dentre eles, podemos citar o Intervalo de Confiança e o Teste de Hipótese [73], os quais foram utilizados, nos Capítulos 5 e 6, para interpretar e avaliar os dados obtidos através de resultados expe- rimentais.

O intervalo de confiança para um parâmetro populacional verdadeiro (mas desconhecido) for- nece um intervalo de valores plausíveis para este parâmetro baseado nos dados amostrais. Sendo assim, um intervalo de confiança de N% para um parâmetro populacional fornece um intervalo no qual estaríamos N% confiantes de cobertura do verdadeiro valor do parâmetro. Por exemplo, pode- mos implementar um AG para a minimização de uma função y = f(x) qualquer. Ao executar esse AG a partir de diferentes populações iniciais, diferentes valores de y podem ser obtidos. Suponha que em k execuções desse AG a média dos valores de y obtidos ao final de cada execução foi ¯y, com um desvio padrão σ associado a essa média. O intervalo de confiança é uma ferramenta estatística que nos permite dizer, por exemplo, que estamos 95% confiantes que ao executar o AG, o valor de y a ser obtido estará dentro de um intervalo [ymin, ymax], sendo que os valores de ymine ymaxdependem dos

valores de ¯y, σ e k.

Os testes de hipóteses têm como objetivo decidir, com base na informação fornecida pelos dados de uma amostra, sobre a aceitação ou não de uma dada hipótese. Intervalos de confiança e testes de hipóteses estão intimamente relacionados. Em geral, intervalos de confiança são a forma mais informativa de apresentar os achados principais de um estudo. Contudo, algumas vezes existe um particular interesse em decidir sobre a verdade ou não de uma hipótese específica (se dois grupos têm a mesma média ou não, ou se o parâmetro populacional tem um valor em particular ou não), e o teste de hipóteses fornece-nos a estrutura para que façamos isto. Por exemplo, se fizermos duas implementações diferentes de AG para minimizar a mesma função y = f(x) e executarmos cada AG implementado k vezes, obteremos dois intervalos de confiança diferentes, cada um associado a uma das implementações. Com base nesses intervalos, podemos aplicar o teste de hipóteses para definir- mos, por exemplo, que estamos 90% confiantes que uma execução da implementação 1 obterá um valor de y inferior ao obtido por uma execução da implementação 2.

Uma explicação mais detalhada sobre os intervalos de confiança e os testes de hipótese é apresen- tada no Apêndice A.

Este capítulo refere-se aos Autômatos Celulares (ACs), sistemas dinâmicos discretos de simples im- plementação, porém, capazes de fazer emergir um comportamento complexo. Na Seção 3.1 é apre- sentada uma breve introdução aos ACs, suas origens, motivações e principais pesquisadores. Na Seção 3.2 são apresentados os principais conceitos, definições e notações utilizadas. Na Seção 3.3 são apresentados os ACs unidimensionais e bidimensionais. Na Seção 3.4 é discutida a dinâmica dos ACs e a utilização de alguns parâmetros na previsão do comportamento dos mesmos. A Seção 3.5 discute a computação baseada em ACs. A Seção 3.6 apresenta a resolução da Tarefa de Classificação da Densidade (TCD) através da busca evolutiva de regras de ACs.

3.1 ACs: história, origens e motivação

Os autômatos celulares (ACs) são sistemas dinâmicos discretos (variáveis, tempo e espaço) forma- dos por componentes simples e idênticos (conhecidos como células) com conectividade local. Estes sistemas, além de serem de implementação simples, possuem uma série de parâmetros que podem ser diretamente manipulados, facilitando o estudo de sua dinâmica e incentivando a sua utilização, em diferentes áreas, na modelagem de diversos sistemas complexos reais [47, 118, 123]. Muitos pesquisadores observaram que, apesar da simplicidade de implementação, os ACs apresentam com- portamentos dinâmicos interessantes e complexos.

O autômato celular mais simples é formado por uma “linha” de células (o reticulado) onde cada

célula pode assumir o valor 0 ou 1. As células interagem localmente em um tempo discreto t, usu- almente de forma paralela (síncrona). O AC também é caracterizado por uma regra de transição de estados, que determina qual será o próximo estado do reticulado, a partir de seu estado atual.

Os autômatos celulares foram originalmente propostos por John von Neumann, na década de 50, como modelos formais de organismos com a capacidade de auto-reprodução. As estruturas estudadas eram, na maioria das vezes, grades unidimensionais e bidimensionais, embora dimensões maiores também fossem consideradas. O interesse de von Neumann na época era identificar um tipo de or- ganização lógica para um autômato que fosse capaz de fazê-lo se auto-reproduzir. Neste contexto, ele prôpos-se a encontrar uma máquina de Turing capaz da sua auto-reprodução [74]. Paralelo aos trabalhos de von Neumann, outro pesquisador, Stannislaw Ulam, estudava vários jogos matemáticos dispostos em uma grade bidimensional onde o estado de cada ponto (célula) na grade era atualizado de acordo com o seu próprio estado e os estados de seus pontos vizinhos. O estado de um determi- nado ponto, juntamente com os estados de seus vizinhos, formavam a vizinhança deste ponto. Ulam estudava diferentes maneiras de formação da vizinhança, com diversos números de estados possíveis por células e regras de transição variadas.

Através de seus estudos, Ulam sugeriu a von Neumann o conceito de uma grade artificial, se- melhante a um tabuleiro de xadrez, na qual cada quadrado (casa) poderia ser visto como uma célula (ou ponto), e cada célula apresentando um comportamento individual, baseado em um conjunto de regras, que seria aplicado a todas as células da grade individualmente. A atualização do estado das células seria realizada em passos discretos de tempo. Cada célula da grade “olharia” o seu próprio estado e o estado de suas células vizinhas e, a cada passo de tempo, um conjunto de regras de tran- sição seria consultado para decidir qual o próximo estado de cada célula da grade. Um conjunto de células nesta grade poderia ser considerado como um organismo artificial. Seguindo a sugestão de Ulam, von Neumann construiu o primeiro modelo de autômato celular, que resolvia a questão da auto-reprodução. Neste modelo, que encapsulava uma máquina universal de Turing, a vizinhança de cada célula era formada por 5 células e cada célula podia assumir um de 29 estados possíveis. Os re- sultados encontrados através da aplicação deste AC foram publicados após a morte de von Neumann, por seu colaborador Arthur Burks [74]. Anos depois, vários pesquisadores deram continuidade a esta pesquisa, encontrando ACs menos complexos, que também eram capazes de se auto-reproduzir

binário (cada célula só pode assumir o valor 0 ou 1) com uma regra de transição bastante simples, onde células no estado 0 são interpretadas como “mortas” e as no estado 1 como “vivas”. Através do Life, Conway popularizou o AC nos meios acadêmicos, pois este modelo de AC, apesar de ser relativamente simples, mostrou sua habilidade em produzir padrões complexos e estruturas que se assemelhavam a organismos artificiais.

Na década de 80, destacam-se os estudos feitos sobre o comportamento dinâmico do autômatos celulares [118, 119, 120, 121, 123, 124]. Estes estudos, liderados por Sthepen Wolfram, tornaram-se fonte de referência de todos os trabalhos posteriores nesta área. Uma das principais contribuições de Wolfram, que mudou o rumo das pesquisas na área, foi demonstrar que mesmo os modelos de ACs mais simples (unidimensionais, binários e vizinhança formada por 3 células) seriam capazes de exibir padrões interessantes, com um comportamento emergente. Recentemente, Wolfram provou que esses mesmos ACs possuem computabilidade universal [125].

Devido à sua simplicidade de implementação e dinâmica complexa, pesquisadores têm utilizado os autômatos celulares para modelar fenômenos reais, derivando importantes resultados dos modelos obtidos. Alguns exemplos de modelamentos através de ACs são: proliferação de epidemias [38], simulação de fenômenos físicos [111], simulação de tráfego urbano [115] e formação de padrões em conchas e peles de animais [67, 125].

Vida Artificial(VA) é um ramo relativamente recente da computação que estuda sistemas criados artificialmente que incorporem pelo menos alguns componentes característicos da vida real [62]. Atualmente, os ACs são muito utilizados em VA [62, 64, 108], por se tratarem de sistemas cuja dinâmica permite uma analogia com a dos sistemas vivos.

Dentre as habilidades dos ACs que mais atraem o interesse dos pesquisadores, está a sua capaci- dade de realizar computações baseadas em interações puramente locais. Por se tratarem de estruturas paralelas, com uma lógica simples, os ACs têm sido cogitados como uma opção para arquiteturas des- centralizadas de computadores. Porém, o entendimento de como o AC consegue realizar computação

é algo ainda não trivial e, na busca de ACs com habilidades computacionais específicas, a utilização de técnicas evolutivas tem sido um abordagem bem sucedida [70].

Além do modelamento de fenômenos reais, os ACs têm sido utilizados na resolução de tarefas computacionais pré-definidas, tais como, a tarefa de Classificação da Densidade (TCD) [69, 71, 72], a tarefa de Sincronização [22], o escalonamento de tarefas em sistemas multiprocessadores [93, 95, 96, 97, 102, 104] e a criptografia [30, 47, 122].