• Nenhum resultado encontrado

Ordenação com autômatos celulares unidimensionais

N/A
N/A
Protected

Academic year: 2017

Share "Ordenação com autômatos celulares unidimensionais"

Copied!
53
0
0

Texto

(1)

UNIVERSIDADE PRESBITERIANA MACKENZIE

PROGRAMA DE P ´

OS-GRADUAC

¸ ˜

AO EM

ENGENHARIA EL´

ETRICA

Carlos Eduardo Profeta de Carvalho

ORDENAC

¸ ˜

AO COM AUT ˆ

OMATOS CELULARES

UNIDIMENSIONAIS

Disserta¸c˜ao de Mestrado apresentada ao Programa de P´os-Gradua¸c˜ao em Engenharia El´etrica da Universidade Presbiteriana Mackenzie, como parte das Exigˆencias para Obten¸c˜ao do Grau de Mestre em Engenharia El´etrica e Computa¸c˜ao, na ´Area de Concen-tra¸c˜ao em Engenharia da Computa¸c˜ao.

Orientador: Pedro Paulo Balbi de Oliveira

(2)
(3)
(4)

AGRADECIMENTOS

Agrade¸co primeiramente a Deus por conduzir a minha vida e principalmente por dar discernimento para desenvolver esse projeto.

Agrade¸co aos meus pais Vitor Profeta de Carvalho e ´Aguida Maria Carvalho por me ensinarem o caminho que eu deveria andar e tamb´em por me apoiarem em todos os momentos de minha vida.

Agrade¸co `a minha esposa e companheira Fabiana Gouveia Martins de Carvalho por me apoiar e suportar incansavelmente durante essa jornada.

Aos colegas de curso especialmente Eduardo Lellis Queiros um grande amigo, Rafael, Taciano, Paulo e tamb´em `a Ana Carolina Lima por compartilhar conhecimento.

(5)

RESUMO

Autˆomatos celulares s˜ao sistemas complexos discretos e tamb´em sistemas computacio-nais totalmente distribu´ıdos, com processamento local arbitrariamente simples. Uma das computa¸c˜oes que se pode realizar com autˆomatos celulares ´e a ordena¸c˜ao de sequˆencias num´ericas. A ordena¸c˜ao ´e um tema bastante relevante e utilizado amplamente na com-puta¸c˜ao, como um de seus processos fundamentais. A presente pesquisa visou o desenvol-vimento de algoritmos de ordena¸c˜ao baseados em autˆomatos celulares unidimensionais. Foram propostas duas novas vers˜oes, de raios 1 e 3, inspirados por caracter´ısticas de tra-balhos existentes na literatura. Em an´alise realizada, os autˆomatos celulares propostos apresentam vantagens com rela¸c˜ao `as abordagens que lhes deram origem.

(6)

ABSTRACT

Cellular automata are discrete complex systems and also fully distributed computational systems, with arbitrarily simple local processing. One of computations that can be made with cellular automata is sorting of numerical sequences. Sorting is a quite relevant topic and widely used in computing, as one of its fundamental processes. This research aimed at the development of sorting algorithms based on one-dimensional cellular automata. Two new versions with range 1 and 3 have been proposed, inspired by the characteristics of existing studies in the literature. In the analysis carried out, the proposed cellular automata have advantages over the approaches that originated them.

(7)

Sum´

ario

1 INTRODUC¸ ˜AO 1

2 AUT ˆOMATOS CELULARES 3

2.1 Autˆomatos celulares elementares . . . 5

3 ORDENAC¸ ˜AO EM AUT ˆOMATOS CELULARES 8 3.1 Algoritmos de Gordillo e Luna . . . 8

3.1.1 Primeiro algoritmo de Gordillo e Luna . . . 9

3.1.2 Segundo algoritmo de Gordillo e Luna . . . 11

3.2 Algoritmos de Shakeri et al. (2008) . . . 12

3.2.1 Primeiro algoritmo de Shakeri et al. (2008) . . . 13

3.2.2 Segundo algoritmo de Shakeri et al. (2008) . . . 15

3.2.3 Terceiro algoritmo de Shakeri et al. (2008) . . . 16

3.3 Odd-even Transposition Sort em Autˆomatos Celulares: Algoritmo de Worsch e Nishio . . . 17

4 ODD-EVEN TRANSPOSITION SORT EM AC UTILIZANDO PROPAGAC¸ ˜AO DE SINAIS 22 4.1 AC utilizando propaga¸c˜ao de sinais com r=1 . . . 25

4.2 AC utilizando propaga¸c˜ao de sinais com r=3 . . . 30

4.3 An´alises e compara¸c˜oes . . . 35

5 CONCLUS ˜OES 41

(8)

Lista de Figuras

1 Dimens˜oes de um autˆomato celular (WOLFRAM, 2002a, p. 169). . . 3

2 Vizinhan¸ca de Moore (WEISSTEIN, 2013b). . . 4

3 Vizinhan¸ca de von Neumann (WEISSTEIN, 2013c). . . 5

4 Exemplo de transi¸c˜ao de estados em um autˆomato celular elementar. . . . 6

5 Exemplo de autˆomato celular unidimensional com condi¸c˜ao de contorno peri´odica. . . 7

6 Condi¸c˜ao inicial das c´elulas Xi,Xi+1 e Xi−1. . . 10

7 Atualiza¸c˜ao dos registradores de mem´oria das c´elulas Xi, Xi+1 e Xi−1. . . . 10

8 Altera¸c˜ao do estado das c´elulas Xi e Xi+1. . . 10

9 Condi¸c˜ao inicial das c´elulas Xi,Xi+1 e Xi−1. . . 13

10 Conserva¸c˜ao do estado das c´elulas Xi e Xi+1. . . 14

11 Custo temporal de GL2 e SDFR3, de n= 0 a n= 50000. . . 17

12 Exemplo de ordena¸c˜ao utilizando o algoritmo OETS (HARWOOD, 2011). . 17

13 Ordena¸c˜ao baseada na compara¸c˜ao de n´umeros bin´arios Worsch e Nishio (2010). . . 20

14 Comportamento dos n´umeros bin´arios nos registradores. . . 21

15 Compara¸c˜ao de c´elulas no AC de r= 1. . . 23

16 Dinˆamica dos ACs propostos neste trabalho. . . 24

17 Transi¸c˜oes de exemplo sendo aplicadas. . . 25

18 Simula¸c˜ao de ordena¸c˜ao do AC CP1. . . 29

19 Simula¸c˜ao de ordena¸c˜ao do AC CP2. . . 34

20 Custo temporal entre os ACs: GL2, SDFR3 e CP2. . . 35

(9)

Lista de Tabelas

1 Evolu¸c˜ao do AC GL1. . . 11

2 Evolu¸c˜ao do AC GL2. . . 12

3 Exemplo de execu¸c˜ao do AC SDFR1. . . 14

4 Transi¸c˜oes de estado de exemplo. . . 24

5 Transi¸c˜oes de estado do AC CP1. . . 26

6 Exemplo de ordena¸c˜ao para os elementos S={10,9, ...,6} de CP1. . . 28

7 Transi¸c˜oes de estado de CP2. . . 31

8 Exemplo de ordena¸c˜ao para os elementos S={17,16, ...,11} de CP2. . . . 33

9 Compara¸c˜ao entre os ACs de Gordillo e Luna (1994), Shakeri et al. (2008) e dos dois novos ACs. . . 36

10 Compara¸c˜ao de custo de mem´oria entre os ACs de Gordillo e Luna (1994), Shakeri et al. (2008) e dos dois novos ACs. . . 36

11 Ranking dos ACs considerando custo temporal e custo de processamento integralizado. . . 39

(10)

1

INTRODUC

¸ ˜

AO

Mitchell et al. (2005) descrevem os Autˆomatos Celulares (ACs) como sistemas com-plexos discretos que podem ser considerados sistemas totalmente distribu´ıdos computaci-onalmente e com processamento local bastante simples. Eles afirmam que a capacidade de compreender a forma como os ACs computam e como eles devem ser concebidos de modo a executar uma determinada tarefa computacional podem produzir um grande im-pacto sobre tecnologia da informa¸c˜ao e teoria da computa¸c˜ao, onde os ACs seriam um modelo completamente novo de computa¸c˜ao, totalmente paralelo, descentralizado e lo-cal. Wolfram (1983) complementa que um AC ´e uma estrutura (ouarray) uniforme que consiste em uma vari´avel discreta em cada c´elula. O estado de cada c´elula ´e alterado de acordo com o de suas c´elulas vizinhas no instante de tempo anterior, e todas as c´elulas s˜ao atualizadas de forma s´ıncrona regida por um conjunto de regras locais.

Uma das computa¸c˜oes realizadas por autˆomatos celulares estudadas ao longo do tempo ´e a ordena¸c˜ao (ousorting em inglˆes). Este tema ´e bastante relevante e utilizado no campo da computa¸c˜ao como um dos seus problemas fundamentais e tˆem sido utilizado ampla-mente em v´arios dom´ınios. Diferentes abordagens de ordena¸c˜ao tˆem sido apresentadas ao longo do tempo, sejam elas em s´erie ou em paralelo. Nesta pesquisa ser˜ao apresentadas somente abordagens paralelas (WORSCH; NISHIO, 2010; SHAKERI et al., 2008).

Este trabalho aborda a utiliza¸c˜ao de autˆomatos celulares na tarefa de ordena¸c˜ao. Na li-teratura j´a existem algumas abordagens de algoritmos de ordena¸c˜ao utilizando autˆomatos celulares, e o objetivo deste trabalho ´e propor novos algoritmos para obter ganho na quan-tidade de passos necess´arios para realizar ordena¸c˜ao e tamb´em no custo de processamento com rela¸c˜ao `as propostas existentes. As pesquisas existentes sobre o assunto foram pro-postas por Gordillo e Luna (1994) que trabalham dois novos ACs com registradores de mem´oria, Shakeri et al. (2008) que propuseram trˆes abordagens com registradores de mem´oria e Worsch e Nishio (2010) que apresentam ACs utilizando a t´ecnica Odd-even Transposition Sort na ordena¸c˜ao de n´umeros bin´arios. Essas abordagens motivaram este trabalho no sentido de comparar e buscar melhorias para os algoritmos existentes.

(11)

O processo de agrupamento de dados classifica, sem qualquer conhecimento pr´evio, uma massa de dados em grupos ou clusters. Os clusters s˜ao claramente dissemelhantes aos demais grupos e seus objetos s˜ao altamente semelhantes aos outros objetos do cluster. Utilizando o exemplo do algoritmo de agrupamento, para realizar essa tarefa com ACs seria necess´ario apenas definir transi¸c˜oes de estados com objetivo de agrupar c´elulas se-melhantes. Como o processo ocorre sem qualquer interferˆencia externa, esse ´e um ponto a ser explorado na ´area de autˆomatos celulares (XU; CHEN; HE, 2005).

(12)

2

AUT ˆ

OMATOS CELULARES

Wolfram (1994) define autˆomatos celulares como modelos matem´aticos elementares oriundos de sistemas naturais, formados em uma rede ou malha, com indiv´ıduos idˆenticos e discretos, em que cada c´elula assume valores sobre um conjunto finito, por exemplo, de valores inteiros. Os indiv´ıduos evoluem em espa¸cos de tempo discretos, e obedecem a regras determin´ısticas que regem os valores de cada c´elula baseado nos valores de sua vizinhan¸ca. A natureza discreta dos autˆomatos celulares igualmente permite a analogia com computadores digitais, pois os agentes podem ser considerados como computadores com processamento paralelo e de arquitetura simplificada (WOLFRAM, 1994).

Nos autˆomatos celulares o tempo ´e discreto e a cada itera¸c˜ao, as c´elulas devem ter seu estado atualizado que ´e determinado pelo estado presente das c´elulas vizinhas da c´elula em quest˜ao. A fun¸c˜ao que determina o estado de todas as c´elulas ´e chamada de regra local e o estado das c´elulas em um determinado instante ´e chamado de estado global do autˆomato ou simplesmente configura¸c˜ao (SARKAR, 2000).

Para que a atualiza¸c˜ao do estado de uma determinada c´elula seja realizada ´e necess´ario definir a estrutura do autˆomato celular. A seguir s˜ao apresentadas as dimens˜oes e os tipos de vizinhan¸ca para um AC. Como pode ser visto na Figura 1, um AC pode possuir uma dimens˜ao qualquer, tipicamente, uma ou duas dimens˜oes. Os componentes de um autˆomato celular tamb´em podem ter v´arias formas como quadrangular, triangular ou hexagonal. Em geral, todas as c´elulas de um AC possuem a mesma forma, isto ´e, se a forma adotada para um determinado autˆomato celular for triangular, todas as suas c´elulas dever˜ao ser triangulares.

(13)

De acordo com Packard e Wolfram (1985), dois tipos de vizinhan¸ca em autˆomatos celulares bidimensionais bastante utilizados s˜ao a de von Neumann e Moore, conhecidos tamb´em como vizinhan¸ca de cinco vizinhos e nove vizinhos, respectivamente.

Al´em de adotar o tipo de vizinhan¸ca do autˆomato celular, tamb´em ´e necess´ario definir o seu raio (ourange), ou seja, o alcance da vizinhan¸ca de cada c´elula para a atualiza¸c˜ao de seu estado, usualmente denotado por r. As Figuras 2 e 3, representam respectiva-mente a vizinhan¸ca de Moore e von Neumann. Apesar de as figuras evidenciarem que as vizinhan¸cas seguem uma l´ogica de forma¸c˜ao, pode-se tamb´em considerar vizinhan¸cas arbitr´arias.

Figura 2: Vizinhan¸ca de Moore (WEISSTEIN, 2013b).

Na Figura 3 ´e poss´ıvel observar a vizinhan¸ca de von Neumann com r = 0, r = 1,

(14)

Figura 3: Vizinhan¸ca de von Neumann (WEISSTEIN, 2013c).

´

E preciso tamb´em especificar a quantidade de estados distintos que o autˆomato celular pode assumir, que pode ser representado por k. Em geral k ´e um n´umero inteiro, no intervalo [0, k−1] e o autˆomato celular bin´ariok = 2 ´e a escolha mais simples a ser feita. Para autˆomatos celulares bin´arios (comk = 2), geralmente a cor “branca” representa valor 0 e o valor 1 pela cor “preta”. Naturalmente os autˆomatos celulares com k > 2 podem ser representados com outras cores (WEISSTEIN, 2013a). As Figuras 2 e 3 ilustram o caso com k= 2 nas cores branca e preta.

Al´em do AC cl´assico, que foi definido acima, existe tamb´em o AC em Bloco, que de acordo com Wolfram (2002b) pode ser definido como um autˆomato celular que a cada itera¸c˜ao atualiza um bloco de c´elulas ao inv´es de apenas uma c´elula, ou seja, as transi¸c˜oes de estado se aplicam a blocos de c´elulas.

2.1

Autˆ

omatos celulares elementares

(15)

S ={0, ..., k −1}

ondeS´e o alfabeto definido para o autˆomato celular eka quantidade de poss´ıveis estados. A vizinhan¸ca de um AC sempre s˜ao 2r+ 1 c´elulas, onder´e o raio e essa vizinhan¸ca pode ser representada como (−r,−r+ 1, ..., r−1, r).

De acordo com Wolfram (1983), um autˆomato celular elementar ´e um AC unidimen-sional com dois valores poss´ıveis (S ={0,1}) em cada c´elula. Neste caso, a vizinhan¸ca ´e a pr´opria c´elula e as adjacentes imediatas a ela `a esquerda e `a direita, ou seja, com raio

r= 1.

Figura 4: Exemplo de transi¸c˜ao de estados em um autˆomato celular elementar.

A Figura 4 mostra um exemplo de transi¸c˜ao de estado baseada na regra φ comr = 1, onde a primeira linha apresenta os estados das c´elulas i, i−1 e i+ 1 no instante t = 0. J´a a segunda linha exibe o estado das c´elulasi,i−1 e i+ 1 no instante t= 1 atualizados de acordo com a regra utilizada, ou seja, a Figura 4 exibe a configura¸c˜ao inicial (t= 0) e final (t = 1) de autˆomato celular elementar baseado em uma regra (φ).

Para os autˆomatos celulares elementares existem 256 poss´ıveis regras de transi¸c˜ao. Uma regra de transi¸c˜ao pode ser demonstrada conforme a seguir:

xti+1 =φ(xt i−1, x

(16)

em que xti+1 ´e o estado da c´elula i no instante t+ 1 e φ representa a regra local que ´e aplicada na c´elulai.

Um outro ponto a ser considerado nos autˆomatos unidimensionais ´e a condi¸c˜ao de contorno. Uma possibilidade ´e utilizar condi¸c˜ao peri´odica, que pode ser definida por

i1 = in+1, onde i representa as c´elulas e n a quantidade de elementos do AC, ou seja, o

vizinho da direita da ´ultima c´elula ´e a primeira c´elula. Outra alternativa ´e a condi¸c˜ao de contorno fixa, onde a primeira e a ´ultima c´elulas do reticulado n˜ao s˜ao vizinhas. Para os ACs com condi¸c˜ao de contorno fixa, pode-se utilizar um estado quiescente (ou de background), que ´e aquele em que, se a vizihan¸ca da c´elula central ´e formada apenas por c´elulas do mesmo estado, o pr´oximo estado se repete. E isso possibilita que as c´elulas do limite esquerdo e direito do reticulado fiquem em repouso, ou seja, c´elulas `a esquerda da primeira c´elula e `a direita da ´ultima c´elula.

Conforme pode ser visto na Figura 5, a condi¸c˜ao de contorno peri´odica em um AC unidimensional faz com que a ´ultima c´elula seja vizinha da primeira c´elula.

Figura 5: Exemplo de autˆomato celular unidimensional com condi¸c˜ao de contorno peri´odica.

(17)

3

ORDENAC

¸ ˜

AO EM AUT ˆ

OMATOS CELULARES

Um algoritmo ´e uma s´erie finita de instru¸c˜oes que processam parˆametros de entrada e retornam uma sa´ıda. O processo de ordena¸c˜ao ´e considerado como uma das opera¸c˜oes fundamentais da ciˆencia da computa¸c˜ao, podendo ser utilizado como passos intermedi´arios de diversos processos. Um algoritmo de ordena¸c˜ao pode ser descrito como uma s´erie de procedimentos que rearranjam uma sequˆencia de itens em ordem crescente ou decrescente (BENIWAL; GROVER, 2013).

Alnihoud e Mansi (2010) apresentam algumas raz˜oes para os algoritmos de ordena¸c˜ao serem considerados como problema fundamental:

• A necessidade de classificar informa¸c˜oes ´e inerente em diversas aplica¸c˜oes.

• Muitos problemas de engenharia s˜ao encontrados quando um algoritmo de ordena¸c˜ao ´e implementado.

• A ordena¸c˜ao geralmente faz parte de alguns algoritmos.

Embora o processo de ordena¸c˜ao possa ser considerado como um problema j´a resol-vido, novos algoritmos e t´ecnicas ainda s˜ao propostos na literatura. A seguir s˜ao apresen-tadas algumas implementa¸c˜oes de ordena¸c˜ao utilizando autˆomatos celulares. Para cada AC abordado na pr´oxima se¸c˜ao, ser´a informada a quantidade necess´aria de passos de tempo para ordenar os elementos em perfeita ordem decrescente dada sua pior condi¸c˜ao inicial, e.g., para a condi¸c˜ao inicial S = {5,4,3,2,1} o AC X reordena os elementos em

S = {1,2,3,4,5} utilizando n+ 3 passos de tempo. A quantidade de passos de tempo ser´a considerada como custo temporal.

3.1

Algoritmos de Gordillo e Luna

(18)

A condi¸c˜ao de contorno do AC de Gordillo e Luna n˜ao est´a expl´ıcita em Gordillo e Luna (1994), portanto a condi¸c˜ao de contorno foi inferida como sendo fixa a partir do seguinte entendimento: como pode ser visto na pr´oxima se¸c˜ao, de forma global, a tarefa a ser realizada ´e ordenar os elementos de forma crescente atrav´es das transi¸c˜oes de estado, sendo que, a medida que AC evolui, os maiores n´umeros devem ser deslocados para a direita e os menores para a esquerda do reticulado. Com base nisso, caso o AC possu´ısse condi¸c˜ao de contorno peri´odica, os autores deveriam apresentar uma defini¸c˜ao para o AC considerar as suas extremidades, pois em algum momento a primeira e ´ultima c´elula do reticulado seriam certamente comparadas. No entanto, em todo o trabalho de Gordillo e Luna (1994), n˜ao ´e sinalizado em momento algum qualquer defini¸c˜ao a respeito de tratamento ou bloqueio das extremidades do reticulado.

3.1.1 Primeiro algoritmo de Gordillo e Luna

Gordillo e Luna (1994) apresentam dois algoritmos de ordena¸c˜ao com autˆomatos ce-lulares. O primeiro AC ´e unidimensional, com vizinhan¸car = 1, processamento paralelo e o estado de cada c´elula pode ser qualquer n´umero inteiro. Este AC ser´a referenciado no restante do texto como “GL1”, e cada c´elula possui, al´em do conte´udo sujeito ao processo de ordena¸c˜ao, dois registradores (direita e esquerda), e a cada itera¸c˜ao, os estados dos registradores s˜ao atualizados conforme regra a seguir:

Sr i =     

1 Se Xi > Xi+1

0 Caso contr´ario

Sl i =     

1 Se (Xi < Xi−1 ∧ Xi ≤Xi+1) 0 Caso contr´ario

onde Xi representa o conte´udo da c´elula i, e Sil e Sir representam os registradores de

mem´oria da esquerda e da direita da c´elulai, respectivamente. Na express˜ao acima Xi+1

´e o conte´udo do vizinho da direita da c´elula i eXi−1 o do vizinho da esquerda.

Ap´os a atualiza¸c˜ao do estado dos registradores de mem´oria, ´e aplicada a seguinte regra de transi¸c˜ao para a c´elulaXi:

Xi =

            

Xi+1 Se (Sir = 1 ∧ Sil+1 = 1)

Xi−1 Se (S

l

i = 1 ∧ Sir−1 = 1)

(19)

Conforme pode ser visto na regra de transi¸c˜ao acima, a c´elulaXi pode ter seu estado

alterado para Xi+1, Xi−1 ou Xi conforme os estados de seus registradores de mem´oria e tamb´em de seus vizinhos. A seguir ´e apresentado como ocorre a atualiza¸c˜ao de estado dos registradores e como a regra de transi¸c˜ao ´e aplicada.

Figura 6: Condi¸c˜ao inicial das c´elulas Xi, Xi+1 eXi−1.

A Figura 6 exibe o estado inicial das c´elulas Xi, Xi+1 e Xi−1. O pr´oximo passo ´e atualizar o valor dos registradores not1 conforme a regra informada anteriormente. Essa

atualiza¸c˜ao pode ser vista na Figura 7.

Figura 7: Atualiza¸c˜ao dos registradores de mem´oria das c´elulasXi, Xi+1 eXi−1.

Ap´os atualizar os registradores de mem´oria, a pr´oxima etapa ´e, finalmente, alterar o estado das c´elulas conforme transi¸c˜ao de estado descrita anteriormente.

Figura 8: Altera¸c˜ao do estado das c´elulasXi e Xi+1.

A Figura 8 mostra o estado das c´elulas ap´os aplicada a regra de transi¸c˜ao, que ocorre de acordo com os registradores Sl e Sr. Como pode ser visto na Figura 8, a c´elula X

i

recebeu o valor 1 e a c´elulaXi+1 o 4, mostrando uma troca de estados que contribui para

(20)

Gordillo e Luna (1994) afirmam que dada a pior condi¸c˜ao inicial para ordena¸c˜ao crescente dos elementos S = {n, ...,2,1}, esse algoritmo necessita de 2n−3 passos de tempo para ordenar todos os elementos. A Tabela 1 apresenta a evolu¸c˜ao de GL1 para a pior condi¸c˜ao inicial dos elementosS ={5,4, ...,1} para ordena¸c˜ao crescente.

Tabela 1: Evolu¸c˜ao do AC GL1.

Passos Sl 5 Sr Sl 4 Sr Sl 3 Sr Sl 2 Sr Sl 1 Sr

1 0 5 1 0 4 1 0 3 1 0 1 1 1 2 0

2 0 5 1 0 4 1 0 1 1 1 3 0 0 2 0

3 0 5 1 0 1 1 1 4 0 0 2 1 1 3 0

4 0 1 1 1 5 0 0 2 1 1 4 0 0 3 0

5 0 1 0 0 2 1 1 5 0 0 3 1 1 4 0

6 0 1 0 0 2 0 0 3 1 1 5 0 0 4 0

7 0 1 0 0 2 0 0 3 0 0 4 1 1 5 0

Conforme pode ser visto na Tabela 1, os estados das c´elulas s˜ao alterados a cada itera¸c˜ao conforme o valor dos registradoresSl eSr de cada c´elula.

3.1.2 Segundo algoritmo de Gordillo e Luna

O segundo algoritmo proposto por Gordillo e Luna (1994) ´e um AC unidimensional de processamento paralelo e com vizinhan¸ca r = 1.5, em que fazem parte da vizinhan¸ca o primeiro vizinho da esquerda e os dois primeiros da direita. Este AC ser´a mencionado no restante do texto como “GL2”, e o estado de cada c´elula tamb´em pode ser qualquer n´umero inteiro e cada c´elula tamb´em possui dois registradores (direita e esquerda). Para este AC, os estados dos registradores s˜ao atualizados conforme regra a seguir:

Sr i =     

1 Se (Xi > Xi+1 ∧ Xi+i ≤Xi+2)

0 Caso contr´ario

Sl i =     

1 Se (Xi < Xi−1 ∧ Xi ≤Xi+1) 0 Caso contr´ario

onde Xi representa a c´elula i, Sir ´e o registrador de mem´oria da direita da c´elula i, e Sil

representa o registrador de mem´oria da esquerda da c´elula i. Na express˜ao acima Xi+1

(21)

Ap´os a atualiza¸c˜ao do estado dos registradores de mem´oria, ´e aplicada a seguinte regra de transi¸c˜ao para a c´elulaXi:

Xi =

            

Xi+1 Se Sir = 1

Xi−1 Se S

l i = 1 Xi Caso contr´ario

O comportamento deste AC ´e similar ao GL1 e possui funcionamento conforme as Figuras 6, 7 e 8. Deve ser notado na regra de transi¸c˜ao acima que, mesmo a c´elula Xi

tendo raio r = 1.5, seu estado ´e alterado somente para os valores Xi+1, Xi−1 ou Xi, ou seja, Xi+2 ´e utilizado apenas como referˆencia no processo, n˜ao participando diretamente

da ordena¸c˜ao. Este AC requer⌈3n

2 ⌉ −2 passos de tempo para ordenar todos os elementos

dada sua pior condi¸c˜ao inicial. A Tabela 2 apresenta a evolu¸c˜ao das c´elulas de GL2 para a pior condi¸c˜ao inicial dos elementos S = {5,4, ...,1} para ordena¸c˜ao crescente. A cada itera¸c˜ao deste algoritmo, os estados das c´elulas s˜ao alterados conforme o valor de seus registradoresSl eSr.

Tabela 2: Evolu¸c˜ao do AC GL2.

Passos Sl 5 Sr Sl 4 Sr Sl 3 Sr Sl 2 Sr Sl 1 Sr

1 0 4 1 1 5 0 0 3 0 0 1 1 1 2 0

2 0 4 0 0 3 1 1 5 0 0 1 0 0 2 0

3 0 3 1 1 4 0 0 1 1 1 5 0 0 2 0

4 0 3 0 0 1 1 1 4 0 0 2 1 1 5 0

5 0 1 1 1 3 0 0 2 1 1 4 0 0 5 0

6 0 1 0 0 2 1 1 3 0 0 4 0 0 5 0

3.2

Algoritmos de Shakeri et al. (2008)

Em 2008 Shakeri et al. (2008) propuseram trˆes autˆomatos celulares de ordena¸c˜ao baseados no trabalho de Gordillo e Luna (1994); esses trˆes ACs se diferenciam dos que lhes deram origem principalmente pelo fato de serem ACs em Bloco.

(22)

pr´oxima se¸c˜ao, de maneira global, o objetivo das transi¸c˜oes de estado deste AC ´e realizar a ordena¸c˜ao crescente deslocando os maiores n´umeros para a direita e os menores para a esquerda do reticulado. Com base nisso, caso o AC possu´ısse condi¸c˜ao de contorno peri´odica, deveria existir uma defini¸c˜ao para o AC contemplar as suas extremidades, pois em algum momento a primeira e ´ultima c´elula do reticulado seriam certamente compara-das. No entanto, em Shakeri et al. (2008) n˜ao ´e apresentado em momento algum qualquer informa¸c˜ao a respeito de tratamento ou bloqueio das extremidades do reticulado.

3.2.1 Primeiro algoritmo de Shakeri et al. (2008)

O primeiro AC de Shakeri et al. (2008) que ser´a citado como “SDFR1” no restante do texto, ´e um AC unidimensional de processamento paralelo, com vizinhan¸car= 1, que altera o estado de suas c´elulas conforme o crit´erio a seguir:

Se (Xit1 < X

t

i ∧ X

t i > X

t i+1)

Ent˜ao{Xt+1

i =X

t

i+1 ∧ X

t+1

i+1 =X

t i}

Caso contr´ario{Xt+1

i =X

t

i ∧ X

t+1

i+1 =X

t i+1}

A regra de transi¸c˜ao acima apresenta as condi¸c˜oes para altera¸c˜ao dos estados das c´elulasXi eXi+1, sendo Xi a c´elula em referˆencia do AC, Xi+1 a primeira c´elula vizinha

`a direita, t o instante atual do AC e t+ 1 o pr´oximo instante.

Figura 9: Condi¸c˜ao inicial das c´elulas Xi, Xi+1 eXi−1.

(23)

Figura 10: Conserva¸c˜ao do estado das c´elulas Xi eXi+1.

Como pode ser verificado na Figura 10, o estado da c´elulaXi not0 ´e menor queXi+1

e maior que Xi−1, portanto nesse caso os estados das c´elulas Xi e Xi+1 s˜ao conservados not1.

Tabela 3: Exemplo de execu¸c˜ao do AC SDFR1. Passos 7 6 5 4 3 2 1

1 6 7 5 4 3 2 1

2 6 5 7 4 3 2 1

3 5 6 4 7 3 2 1

4 5 4 6 3 7 2 1

5 4 5 3 6 2 7 1

6 4 3 5 2 6 1 7

7 3 4 2 5 1 6 7

8 3 2 4 1 5 6 7

9 2 3 1 4 5 6 7

10 2 1 3 4 5 6 7

11 1 2 3 4 5 6 7

A Tabela 3 exibe a evolu¸c˜ao de SDFR1 para a pior condi¸c˜ao inicial dos elementos

S = {7,6, ...,1}. O custo temporal para este autˆomato celular realizar a ordena¸c˜ao

(24)

3.2.2 Segundo algoritmo de Shakeri et al. (2008)

O segundo autˆomato celular proposto por Shakeri et al. (2008) ´e um AC unidimensi-onal de processamento paralelo, com raior= 1.5, fazendo parte da vizinhan¸ca o primeiro vizinho da esquerda e os dois primeiros da direita. Este AC ser´a mencionado no restante do texto como “SDFR2”.

Assim como os ACs propostos por Gordillo e Luna (1994), este autˆomato celular utiliza registradores de mem´oria para as c´elulas. O primeiro passo deste AC ´e determinar o valor do registrador S para cada c´elula conforme o procedimento a seguir:

Se [(Xit

−1 < X

t

i ∧ X

t i > X

t i+1)

∨ (Xit> Xit+1 ∧ X

t

i+1 < X

t i+2)]

Ent˜aoSi = 1

Caso contr´arioSi = 0

ondeXi´e o estado da c´elula em referˆencia,Xi+1representa o estado do primeiro vizinho da

direita,Xi+2 o estado do segundo vizinho da direita, e Xi−1 o estado do primeiro vizinho da esquerda. Na express˜ao acimatindica o instante atual eSi representa o registrador da

c´elulaXi. Este Autˆomato Celular utiliza somente um registrador de mem´oria e necessita

de⌈3n

2 ⌉−2 passos de tempo para realizar ordena¸c˜ao crescente da sua pior condi¸c˜ao inicial.

A equa¸c˜ao abaixo apresenta a regra de transi¸c˜ao deste AC:

Se (Si = 1 ∧ Si−1 = 0) Ent˜ao{Xt+1

i =X

t

i+1 ∧ X

t+1

i+1 =X

t i}

Caso contr´ario{Xt+1

i =X

t

i ∧ X

t+1

i+1 =X

t i+1}

Para o procedimento acima,Si representa o registrador de mem´oria da c´elulai eSi−1 o registrador da primeira c´elula a esquerda da c´elula i. O estado atual da c´elula i ´e representado porXt

(25)

3.2.3 Terceiro algoritmo de Shakeri et al. (2008)

O terceiro e ´ultimo AC proposto por Shakeri et al. (2008) ´e um AC unidimensional de processamento paralelo com raio r = 2.5, sendo sua vizinhan¸ca as duas primeiras c´elulas da direita e as trˆes primeiras c´elulas da esquerda. Este AC ser´a referenciado como “SDFR3” no restante do texto.

O AC SDFR3 tamb´em trabalha com registradores de mem´oria e a atualiza¸c˜ao dos registradores se d´a pela rela¸c˜ao a seguir:

Se [(Xi−1 < Xi ∧ Xi > Xi+1)

∨ (Xi−3 < Xi−2 ∧ Xi−2 > Xi−1 ∧ Xi−1 > Xi ∧ Xi > Xi+1)

∨ (Xi−2 > Xi−1 ∧ Xi−1 > Xi ∧ Xi > Xi+1 ∧ Xi+1 < Xi+2)] Ent˜aoSi = 1

Caso contr´arioSi = 0

ondeSi representa o registrador da c´elulaieXi o estado atual da c´elulai. De acordo com

o estado das c´elulas vizinhas da c´elula i, o estadoSi ´e atualizado. Ap´os os registradores

de mem´oria serem atualizados, o procedimento abaixo ´e utilizado para atualizar o estado das c´elulas do AC.

Se (Si = 1 ∧ Si−1 = 0) Ent˜ao{Xt+1

i =X

t

i+1 ∧ X

t+1

i+1 =X

t i}

Caso contr´ario{Xt+1

i =X

t

i ∧ Xt

+1

i+1 =X

t i+1}

De acordo com o procedimento acima, os estados das c´elulas i ei+ 1 s˜ao atualizados de acordo com os registradores Si e Si−1. Este AC requer ⌈n+

n

4⌉ −1 passos de tempo

para realizar ordena¸c˜ao crescente da sua pior condi¸c˜ao inicial.

(26)

Figura 11: Custo temporal de GL2 e SDFR3, de n = 0 an = 50000.

3.3

Odd-even Transposition Sort em Autˆ

omatos Celulares:

Al-goritmo de Worsch e Nishio

O algoritmo Odd-even Transposition Sort (OETS) opera com duas fases que se al-ternam (fase ´ımpar e fase par). Na fase par, elementos com ´ındice par (o segundo, o quarto, o sexto, etc.) s˜ao comparados com seu vizinho da direita. Por outro lado, na fase ´ımpar, elementos com ´ındice ´ımpar (o primeiro, o terceiro, o quinto, etc.) s˜ao comparados com seu vizinho da direita. Ap´os a compara¸c˜ao, o menor elemento assume a posi¸c˜ao da esquerda e o maior a da direita. A Figura 12 apresenta um exemplo de execu¸c˜ao do algoritmo Odd-even Transposition Sort iniciando na fase ´ımpar.

Figura 12: Exemplo de ordena¸c˜ao utilizando o algoritmo OETS (HARWOOD, 2011).

(27)

ser˜ao ordenados pelo algoritmo. A cada itera¸c˜ao, os elementos s˜ao comparados com seu vizinho conforme indica¸c˜ao das setas, onde o vizinho da esquerda sempre assume o menor e o da direita o maior n´umero. Com isso, o algoritmo termina quando todos os elementos est˜ao devidamente ordenados e n˜ao h´a mais trocas a serem realizadas. Neste caso, ap´os oito itera¸c˜oes, os oito elementos foram ordenados em ordem crescente.

Worsch e Nishio (2010) propuseram um autˆomato celular que tem como objetivo a or-dena¸c˜ao de n´umeros bin´arios. O AC apresentado por Worsch e Nishio (2010) utiliza o me-canismo de ordena¸c˜ao do OETS na compara¸c˜ao bin´aria, sendo um AC unidimensional de processamento paralelo com raior= 1 e possuindo alfabetoS ={0,1,0h,1h,0i,1i,0|,1|,|0,|1}. Cada n´umero bin´ario a ser comparado ´e representado por w conforme a seguir:

w=w1· · ·wn =hx1y1z1| · · · hxnynzn|

onde wn ´e cada n´umero que ser´a comparado no AC, xn o primeiro elemento ou bit do

n´umero, zn o ´ultimo bit bin´ario e yn os demais bits posicionados entre xn e zn.

O AC proposto por Worsch e Nishio (2010) trabalha com trˆes registradores conforme a seguir:

• Para os trˆes registradores as c´elulas do meio s˜ao chamadas de L eR conforme pode ser visto na Figura 13. As c´elulas identificadas como L e R servir˜ao de aux´ılio na compara¸c˜ao de n´umeros bin´arios conforme ser´a descrito nos pr´oximos par´agrafos.

• O primeiro registrador chamado de lef t, ir´a assumir os valores do n´umero bin´ario

w

i como pode ser visto Figura 13, j´a o segundo registrador chamado de right, ir´a

assumir os valores do n´umero bin´ario −→wi.

• O terceiro registrador chamado de comp realiza a compara¸c˜ao das c´elulas e pode assumir os valores =, < ou>.

A dinˆamica deste AC ´e os bits serem movidos nos registradores lef te right em suas dire¸c˜oes correspondentes ←w−i (esquerda) e −→wi (direita) e, ap´os a compara¸c˜ao, o menor

n´umero estar no registrador lef t e o maior no right. O comportamento do registrador

(28)

R.comp=             

< se R.right < L.lef t

= se R.right=L.lef t

> se R.right > L.lef t

ondeR.right´e a c´elulaRdo registradorrighteL.lef ta c´elulaLdo registradorlef t. Para

os demais bits dos n´umeros que est˜ao sendo comparados, o valor do registrador R.comp

´e alterado da seguinte forma:

• Se a c´elula R.comp possui os valores >ou <, ent˜ao seu valor n˜ao ´e alterado.

• No entanto, se a c´elula R.comp possui o valor =, ent˜ao seu valor n˜ao ´e alterado conforme a regra citada acima para R.comp.

Outra informa¸c˜ao importante ´e que R.comp e L.comp possuem sempre o mesmo conte´udo, ou seja, a regra acima se aplica tamb´em para L.comp. J´a a c´elula R.lef t

tem seu valor alterado de acordo com a regra a seguir:

R.lef t=

            

R.right se R.comp ´e <

R.right se R.comp ´e =

L.lef t se R.comp ´e >

E a c´elula L.righttem seu valor alterado de acordo com a regra a seguir:

L.right=             

L.lef t se L.comp ´e <

L.lef t se L.comp ´e =

(29)

Figura 13: Ordena¸c˜ao baseada na compara¸c˜ao de n´umeros bin´arios Worsch e Nishio (2010).

(30)

Figura 14: Comportamento dos n´umeros bin´arios nos registradores.

(31)

4

ODD-EVEN TRANSPOSITION SORT EM AC

UTI-LIZANDO PROPAGAC

¸ ˜

AO DE SINAIS

As pesquisas de Gordillo e Luna (1994), Shakeri et al. (2008) e Worsch e Nishio (2010) inspiraram este trabalho no sentido de buscar e propor novas abordagens de ordena¸c˜ao de dados utilizando autˆomatos celulares unidimensionais. Neste trabalho s˜ao propostos dois autˆomatos celulares unidimensionais com fun¸c˜ao de ordena¸c˜ao de n´umeros inteiros utilizandoOdd-even Transposition Sort, sendo o primeiro AC de r= 1 e o segundor = 3. A motiva¸c˜ao para o desenvolvimento dos ACs propostos nesse trabalho ´e realizar a ordena¸c˜ao de n´umeros inteiros utilizando um autˆomato celular unidimensional de forma que seja realizado atrav´es de processamento paralelo e que seja mais eficiente que as abordagens existentes de ordena¸c˜ao em AC unidimensional, ou seja, que possua um custo menor para ordenar n elementos. Observando os trabalhos de Gordillo e Luna (1994), Shakeri et al. (2008) e Worsch e Nishio (2010) procurou-se extrair as funcionalidades relevantes de cada trabalho e apresentar um novo AC que una essas caracter´ısticas em apenas um algoritmo.

Com base nisso, o conceito de registradores trabalhado por Gordillo e Luna (1994) e Shakeri et al. (2008) foi abstra´ıdo e culminou no uso de propaga¸c˜ao de sinais, que s˜ao informa¸c˜oes adicionais aos estados das c´elulas que auxiliam na tarefa de ordena¸c˜ao. J´a a t´ecnica de OETS abordada por Worsch e Nishio (2010), foi utilizada neste trabalho para ordenar n´umeros inteiros ao inv´es de n´umeros bin´arios.

(32)

Figura 15: Compara¸c˜ao de c´elulas no AC de r = 1.

(33)

Figura 16: Dinˆamica dos ACs propostos neste trabalho.

Para facilitar a compreens˜ao do processo de propaga¸c˜ao de sinais desse AC, foram criadas trˆes transi¸c˜oes de exemplo, mostradas na Tabela 4, em que i representa a c´elula central,i−1 a vizinha da esquerda e i+ 1 a da direita. Esse AC possui r= 1 e condi¸c˜ao de contorno fixa.

Tabela 4: Transi¸c˜oes de estado de exemplo.

Transi¸c˜ao i−1 i i+ 1 i em t+ 1

1 . xi xi+1 xi >

2 xi−1 > xi xi+1 xi <

3 xi−1 < xi xi+1 xi >

(34)

Figura 17: Transi¸c˜oes de exemplo sendo aplicadas.

Como pode se verificar na Figura 17, a Transi¸c˜ao 1 primeiramente ´e aplicada no n´umero 4. De acordo com aTransi¸c˜ao 1, quando a c´elula central for um n´umero qualquer, sua vizinha esquerda for a extremidade esquerda do AC e `a sua direita for um n´umero qualquer, o seu estado no pr´oximo passo ser´a “xi >”, ou seja, o n´umero 4 com o sinal>,

que ´e “4 >”. J´a a Transi¸c˜ao 2 ´e aplicada no n´umero 3, pois sua vizinha da esquerda ´e uma c´elula com o sinal > e da direita um n´umero qualquer, com isso seu estado no pr´oximo passo ser´a “xi <”, que ´e “3<”. Por fim, aTransi¸c˜ao 3´e aplicada no n´umero 2,

pois sua vizinha da esquerda ´e uma c´elula com o sinal<e da direita um n´umero qualquer, com isso seu estado no pr´oximo passo ser´a “xi >”, que ´e “2>”.

4.1

AC utilizando propaga¸c˜

ao de sinais com r=1

O primeiro AC proposto neste trabalho ´e um autˆomato celular de processamento paralelo e possui raior = 1. Este AC ser´a referenciado como “CP1” no restante do texto.

(35)

elementos, se o algoritmo for executado 2n−1 passos, o autˆomato celular ir´a convergir. As transi¸c˜oes de estado desse AC est˜ao descritas na Tabela 5. Nesta tabela s˜ao apresentadas somente as transi¸c˜oes ativas, nas demais transi¸c˜oes, o estado da c´elula central n˜ao ´e alterado.

Tabela 5: Transi¸c˜oes de estado do AC CP1.

Transi¸c˜ao i−1 i i+ 1 i em t+ 1

1 . xi xi+1 xi >

2 . xi < # xi >

3 xi−1 > xi xi+1 xi <

4 xi−1 < xi xi+1 xi >

5 xi−1 xi . xi <

6 # xi > . xi <

7 xi−1 > xi xi+1 < xi <

8 xi−1 > xi xi+1 > xi <

9 # xi > xi+1 < M in(xi >, xi+1 <)<

10 xi−1 > xi < # M ax(xi−1 >, xi <)>

Pode-se verificar na Tabela 5, que as transi¸c˜oes de estado podem ser segregadas em trˆes grupos:

Inicializa¸c˜ao: Compreende as transi¸c˜oes 1, 2, 5 e 6. O grupo ´e de inicializa¸c˜ao devido `as serem caracterizadas por iniciar a propaga¸c˜ao de sinais do AC, pois tratam as c´elulas que est˜ao nas bordas, ou seja, na extremidade esquerda e direita.

Propaga¸c˜ao de sinais: As transi¸c˜oes 3, 4, 7 e 8 comp˜oem esse grupo. O objetivo delas ´e realizar a propaga¸c˜ao de sinais nas c´elulas que ainda n˜ao possuem nenhum sinal.

Compara¸c˜ao: Grupo formado pelas transi¸c˜oes 9 e 10. ´E respons´avel por realizar a compara¸c˜ao dos n´umeros, deslocando o menor elemento para a c´elula da esquerda e o maior para a c´elula da direita.

(36)

direita. A express˜aoi em t+ 1 deve ser entendida como o estado da c´elula ino pr´oximo instante de tempo. Nas transi¸c˜oes de estado, deve-se entender a nota¸c˜ao utilizada para descrevˆe-las conforme a seguir:

- Estado que pode ser um n´umero inteiro qualquer: x

- Estado quiescente (ou de background): .

- Modificadores de estados originais: > e <

- Um estado qualquer: #

- O menor elemento dos argumentos: M in

- O maior elemento dos argumentos: M ax

Os sinais > e < s˜ao propagados pelas c´elulas a cada itera¸c˜ao alterando os estados originais das c´elulas gerando novos estados. Esses sinais permitem que a ordena¸c˜ao seja realizada em um AC unidimensional utilizando a t´ecnica de OETS.

As transi¸c˜oes de estado apresentadas na Tabela 5 devem ser entendidas conforme a seguir:

Ex. transi¸c˜ao # 1 Se (xti

−1, x

t i, x

t

i+1) = (., xi, xi+1)

Ent˜aoxti+1 =xti >

Ex. transi¸c˜ao # 8 Se (xti

−1, x

t i, x

t

i+1) = (#, xi >, .)

Ent˜aoxti+1 =xti <

(37)

Tabela 6: Exemplo de ordena¸c˜ao para os elementos S ={10,9, ...,6}de CP1.

t i i+ 1 i+ 2 i+ 3 i+ 4

t0 10 9 8 7 6

t1 10> 9 8 7 6<

t2 10> 9< 8 7 6<

t3 9< 10> 8> 7 6<

t4 9> 10> 8> 7< 6<

t5 9> 10> 7< 8> 6<

t6 9> 7< 10> 6< 8>

t7 7< 9> 6< 10> 8<

t8 7> 6< 9> 8< 10>

t9 6< 7> 8< 9> 10<

(38)
(39)

4.2

AC utilizando propaga¸c˜

ao de sinais com r=3

J´a o segundo autˆomato celular proposto nesta pesquisa, tamb´em unidimensional e de processamento paralelo, possui r = 3. Este AC ser´a citado no restante do texto como “CP2”

O crit´erio de parada de CP2 pode ser definido da seguinte forma: para um AC de n

elementos, o autˆomato celular ir´a convergir emn−1 passos para uma quantidade par de c´elulas en+ 1 para uma quantidade ´ımpar de c´elulas. A Tabela 7 exibe suas transi¸c˜oes de estado. O funcionamento deste AC ´e bem semelhante ao CP1, diferenciando apenas o

(40)

Tabela 7: Transi¸c˜oes de estado de CP2.

Transi¸c˜ao i−3 i−2 i−1 i i+ 1 i+ 2 i+ 3 i em t+ 1

1 . . . xi xi+1 xi+2 xi+3 xi >

2 . . xi−1 > xi xi+1 xi+2 xi+3 xi >

3 . xi−2 > xi−1 xi xi+1 xi+2 xi+3 xi <

4 xi−3 > xi−2 > xi−1 < xi xi+1 xi+2 xi+3 xi < 5 xi−3 > xi−2 < xi−1 < xi xi+1 xi+2 xi+3 xi >

6 xi−3 < xi−2 < xi−1 xi xi+1 xi+2 xi+3 xi >

7 xi−3 < xi−2 > xi−1 > xi xi+1 xi+2 xi+3 xi <

8 xi−3 > xi−2 > xi−1 xi xi+1 xi+2 xi+3 xi <

9 xi−3 > xi−2 > xi−1 > xi xi+1 xi+2 xi+3 xi <

10 . . . xi < # # # xi >

11 . . xi−1 < xi < # # # xi >

12 # # # xi > . . . xi <

13 # # # xi > xi+1 > . . xi <

14 # # # xi > xi+1 > xi+2 < xi+3 < M in1(i, i+ 1, i+ 2, i+ 3) <

15 # # xi−1 > xi > xi+1 < xi+2 < # M in2(i−1, i, i+ 1, i+ 2)<

16 # xi−2 > xi−1 > xi < xi+1 < # # M ax1(i−2, i−1, i, i+ 1)>

17 xi−3 > xi−2 > xi−1 < xi < # # # M ax2(i−3, i−2, i−1, i)> 18 # # # xi > xi+1 > xi+2 < . M in1(i, i+ 1, i+ 2, i+ 3) <

19 # # xi−1 > xi > xi+1 < . . M in2(i−1, i, i+ 1, i+ 2)<

20 # xi−2 > xi−1 < xi < . . . M ax2(i−3, i−2, i−1, i)>

´

E possivel segregar as transi¸c˜oes de estado da Tabela 7 em quatro grupos:

Inicializa¸c˜ao: Transi¸c˜oes 1, 2 e 3.

Propaga¸c˜ao de sinais: Transi¸c˜oes 4, 5, 6, 7, 8 e 9.

Manuten¸c˜ao de extremidades: Transi¸c˜oes 10, 11, 12 e 13.

(41)

Somente o grupo de ’manuten¸c˜ao de extremidades’ possui caracter´ıstica diferente das j´a apresentadas na Tabela 5; as transi¸c˜oes desse grupo visam alterar o estado somente das c´elulas localizadas na extremidade esquerda ou direita.

A interpreta¸c˜ao da Tabela 7 ´e semelhante `a da 5, pois deve-se entender que cada linha ´e uma transi¸c˜ao de estado da c´elulai, ondeirepresenta a c´elula em quest˜ao,i−1, i−2, i−3 os vizinhos da esquerda, e i+ 1, i+ 2, i+ 3 os da direita. Nas transi¸c˜oes de estado, o que muda s˜aoM in1 o menor elemento dos argumentos,M in2 o segundo menor elemento,

M ax2 o segundo maior elemento e M ax1 o maior elemento dos argumentos. A seguir ´e apresentado um exemplo de transi¸c˜ao de estado para o AC der = 3 conforme a Tabela 7:

Ex. transi¸c˜ao # 2 Se (xti

−3, x

t i−2, x

t i−1, x

t i, x

t i+1, x

t i+2, x

t i+3) =

(., ., xi−1 >, xi, xi+1, xi+2, xi+3) Ent˜aoxti+1 =xti >

Outro exemplo de transi¸c˜ao de estado para o AC de r = 3 conforme a Tabela 7 pode ser visto a seguir:

Ex. transi¸c˜ao # 15 Se (xti

−3, x

t i−2, x

t i−1, x

t i, x

t i+1, x

t i+2, x

t i+3) =

(#,#, xi−1 >, xi >, xi+1 <, xi+2 <,#) Ent˜aoxt+1

i =M in2(i−1 t, it, i

+ 1t, i+ 2t)<

A Tabela 8 exibe um exemplo de ordena¸c˜ao para a pior condi¸c˜ao inicial dos elementos

(42)

Tabela 8: Exemplo de ordena¸c˜ao para os elementosS ={17,16, ...,11} de CP2.

t i i+ 1 i+ 2 1 + 3 1 + 4 1 + 5 1 + 6

t0 17 16 15 14 13 12 11

t1 17> 16 15 14 13 12 11

t2 17> 16> 15< 14 13 12 11

t3 17> 16> 15< 14< 13 12 11

t4 14< 15< 16> 17> 13> 12> 11

t5 14> 15> 16> 17> 13> 12> 11<

t6 14> 15> 16> 17> 11< 12< 13>

t7 14> 15> 11< 12< 16> 17> 13<

t8 11< 12< 14> 15> 13< 16< 17>

t9 11> 12> 13< 14< 15> 16> 17<

(43)
(44)

4.3

An´

alises e compara¸c˜

oes

Ap´os apresentados os ACs de Gordillo e Luna (1994), Shakeri et al. (2008) e Worsch e Nishio (2010) que inspiraram este trabalho, foi realizada uma compara¸c˜ao entre o melhor AC de Gordillo e Luna (1994) “GL2”, de Shakeri et al. (2008) “SDFR3” e desta pesquisa, que ´e o “CP2”. O resultado desta compara¸c˜ao pode ser visto na Figura 20, que exibe o custo temporal para realizar a ordena¸c˜ao crescente da pior condi¸c˜ao inicial den = 0 at´e

n= 50000. Esta compara¸c˜ao ´e uma extens˜ao da Figura 11.

Figura 20: Custo temporal entre os ACs: GL2, SDFR3 e CP2.

(45)

Tabela 9: Compara¸c˜ao entre os ACs de Gordillo e Luna (1994), Shakeri et al. (2008) e dos dois novos ACs.

AC Vizinhan¸ca Estados Registradores Tipo de AC Passos de tempo

GL1 3 n 2 Cl´assico 2n−3

GL2 4 n 2 Cl´assico ⌈3n÷2⌉ −2

SDFR1 3 n 0 AC em Bloco 2n−3

SDFR2 4 n 1 AC em Bloco ⌈3n÷2⌉ −2

SDFR3 6 n 1 AC em Bloco ⌈n+n÷4⌉ −1

CP1 3 3n 0 Cl´assico 2n−1

CP2 7 3n 0 Cl´assico n−1 ou n+ 1

Observe-se na Tabela 9 que os novos ACs possuem mais estados que os demais, isto ´e devido aos sinais “<” e “>”, pois o n´umero 9 por exemplo pode ser “9”, “9 >” ou “9<”. Em contrapartida, os demais ACs – exceto o SDFR1 – necessitam de registradores de mem´oria, que tamb´em constituem informa¸c˜oes adicionais que auxiliam na tarefa de ordena¸c˜ao.

A quantidade de estados se relaciona `a quantidade de mem´oria necess´aria para a execu¸c˜ao do AC. A Tabela 10 exibe uma compara¸c˜ao do custo de mem´oria entre os ACs apresentados neste trabalho.

Tabela 10: Compara¸c˜ao de custo de mem´oria entre os ACs de Gordillo e Luna (1994), Shakeri et al. (2008) e dos dois novos ACs.

AC Custo de Mem´oria

GL1 3n

GL2 3n

SDFR1 n

SDFR2 2n

SDFR3 2n

CP1 3n

CP2 3n

(46)

que os utilizam – e nos ACs CP1 e CP2 os sinais “<” e “>”. Com base isso, os ACs GL1 e GL2 utilizam 3n, pois cada c´elula possui dois registradores. O SDFR2 e SDFR3 que possuem somente um registrador, tˆem custo de mem´oria 2n, CP1 e CP2 possuem custo 3n por cada c´elula poder possuir os sinais “<” e “>”, e por fim, SDFR1 que N˜ao possui registrador, apresenta custo de mem´orian.

Por outro lado, a vizinhan¸ca, registradores, tipo de AC e custo temporal influenciam diretamente no tempo de processamento do AC. Dessa maneira, uma forma emp´ırica de avaliar o custo de processamento dos ACs foi definida pela express˜ao

C =V ×M ×T ×P

onde C simboliza o custo de processamento, M os registradores de mem´oria, V a vizi-nhan¸ca, T o tipo de AC e P a quantidade de passos. Vale observar que V ×M ser´a a vizinhan¸ca efetiva, uma vez que se considera tamb´em os registradores na transi¸c˜ao de estados para os ACs que fazem uso dos registradores. Este custo foi definido neste tra-balho como custo de processamento integralizado, que ´e uma medida para avaliar o custo temporal levando em conta o processamento em cada passo.

Para encontrar o custo de processamento C, ´e necess´ario observar os valores contidos na Tabela 9. J´a que a vari´avelnnas express˜oes de custo da tabela representa a quantidade elementos a serem ordenados, considera-se aqui que o “Tipo de AC” deve ser contabilizado de acordo com o seguinte esquema de pontua¸c˜ao:

AC Cl´assico: 1 // AC em Bloco: 2

Essa pontua¸c˜ao ´e oriunda do AC Cl´assico atualizar somente uma c´elula a cada itera-cao, e o AC em Bloco – no caso desta pesquisa – duas c´elulas.

Deve-se considerar ainda a seguinte pontua¸c˜ao relativa aos “Registradores”: Nenhum registrador: 1

Um registrador: 2 Dois registradores: 3

(47)

Tal defini¸c˜ao considera a quantidade de c´elulas que s˜ao alteradas a cada itera¸c˜ao do AC, quais sejam, uma c´elula para o Cl´assico e duas para o AC em Bloco. A t´ıtulo de exemplo, a seguir obtemos o custo de processamento de GL1 comn = 5:

GL1 com n= 5 Vizinhan¸ca: 3

Registradores: Dois (custo 3) Tipo de AC: Cl´assico (custo 1) Quantidade de passos: 2n−3

C =V ×M×T ×P = 3×3×1×(2n−3) = 63

Abaixo segue-se outro exemplo de c´alculo do custo de processamento, no caso, o AC em Bloco SDFR2 comn = 5:

SDFR2 com n= 5 Vizinhan¸ca: 4

Registradores: Um (custo 2)

Tipo de AC: AC em Bloco (custo 2) Quantidade de passos: (⌈3n÷2⌉)−2

C =V ×M ×T ×P = 4×2×2×(⌈3n÷2⌉)−2 = 128

Como evidenciado nos dois exemplos de c´alculo de custo processamento integralizado, o GL1, que necessita de 7 passos para realizar a ordena¸c˜ao para 5 elementos, possui custo de processamento integralizado menor que o SDFR2, que necessita de 6 passos; ou seja, realizar menos passos n˜ao necessariamente implica menor custo de processamento integralizado. A Figura 21 ilustra o custo de processamento de todos os ACs, den = 0 a

(48)

Figura 21: Compara¸c˜ao do custo de processamento de n= 0 a n = 50000.

A Tabela 11 apresenta um ranking de todos os ACs abordados no trabalho, levando em considera¸c˜ao custo temporal e custo de processamento integralizado paran = 50000.

Tabela 11: Ranking dos ACs considerando custo temporal e custo de processamento integralizado.

Posi¸c˜ao Custo temporal Custo de processamento integralizado

1 CP2 CP1

2 SDFR3 CP2

3 GL2 e SDFR2 SDFR1

4 GL1 e SDFR1 GL1

5 CP1 GL2

6 SDFR2

7 SDFR3

(49)

Tabela 12: Complexidade assint´otica para a pior condi¸c˜ao inicial.

Algoritmo Complexidade

Bubble Sort O(n2

)

Selection Sort O(n2

)

Insertion Sort O(n2

)

Merge Sort O(n log n)

Quick Sort O(n2

)

Bucket Sort O(n2

) Quick Sort Paralelo O(n2

p )

Bubble Sort Paralelo O(n2

p )

Merge Sort Paralelo O(log n) Bucket Sort Paralelo O(log n)

CP2 O(n)

CP2 O(n)

Como pode ser visto na Tabela 12, a complexidade do CP1 e CP2 ´e linear, sendo que os algoritmos cl´assicos em geral possuem complexidade quadr´atica e n log n para a pior condi¸c˜ao inicial. O denominador p na complexidade dos algoritmos Quick Sort Paralelo e Bubble Sort Paralelo, representa a quantidade de processamentos que ser˜ao executados em paralelo.

(50)

5

CONCLUS ˜

OES

Pode-se concluir que um autˆomato celular realizar a tarefa de ordena¸c˜ao em menos passos, pode n˜ao indicar o menor custo de processamento integralizado efetivo. A quanti-dade de passos ´e apenas uma vari´avel do m´etodo de avalia¸c˜ao de custo de processamento integralizado adotado neste trabalho. Esta afirma¸c˜ao fica evidenciada na Tabela 11, que mostra o CP2 como sendo o primeiro AC noranking de quantidade de passos e o segundo quando refere-se ao custo de processamento integralizado. J´a o CP1 que est´a na ´ultima coloca¸c˜ao de quantidade de passos, fica em primeiro no ranking de custo de processa-mento integralizado. Outro ponto interessante ´e o SDFR3 ser o segundo em quantidade de passos e o ´ultimo no ranking de custo de processamento integralizado.

Conclui-se tamb´em que os ACs propostos neste trabalho (CP1 e CP2) destacam-se na compara¸c˜ao com os demais ACs aqui apresentados, sendo CP2 o melhor AC quando avaliada o custo temporal, ou o segundo melhor no ranking de custo de processamento, e o CP1 o melhor no custo de processamento.

O fato do CP2 estar pr´oximo do CP1 quando avaliado o custo de processamento integralizado, ´e um ponto relevante a ser investigado, seja na busca pela diminui¸c˜ao da quantidade de passos mantendo a vizinhan¸ca e o tipo de AC cl´assico, ou aprimorando as transi¸c˜oes de estado, no intuito de reduzir a quantidade e complexidade das transi¸c˜oes.

Pode-se verificar que neste trabalho a quantidade de estados foi desconsiderada no c´alculo do custo, devido a afetar somente a mem´oria utilizada durante a execu¸c˜ao do autˆomato celular.

Tanto nos trabalhos de Gordillo e Luna (1994) e Shakeri et al. (2008), como nos ACs propostos nesta pesquisa, os ACs trabalham com ordena¸c˜ao de n´umeros inteiros. No entanto, os ACs propostos neste trabalho podem realizar a ordena¸c˜ao de qualquer s´ımbolo, para o qual os sinais “>” e “<” tenham sentido em termos lexicogr´aficos.

Como fruto desta pesquisa, foi publicado um artigo de Carvalho e de Oliveira (2015) apresentando os ACs propostos neste trabalho e seus resultados e discuss˜oes.

(51)
(52)

REFERˆ

ENCIAS BIBLIOGR ´

AFICAS

ALNIHOUD, J.; MANSI, R. An enhancement of major sorting algorithms. International Arab Journal of Information Technology, v. 7, n. 1, p. 55–62, 2010.

BENIWAL, S.; GROVER, D. Comparison Of Various Sorting Algorithms: A review. In: International Journal of Emerging Research in Management and Technology. India: Advanced Research International, 2013. v. 2, p. 83–86.

de Carvalho, C. E. P.; de Oliveira, P. P. B. Sorting with one-dimensional cellular automata using odd-even transposition. In: Advances in Intelligent Systems and Computing. (Proc. of WorldCIST’15 - 3rd World Conference on Information Systems and Technologies). [S.l.]: Springer: Heidelberg, 2015. A ser publicado.

GORDILLO, J. L.; LUNA, J. V. Parallel sort on a linear array of cellular automata. In: IEEE International Conference on Systems, Man, and Cybernetics. [S.l.: s.n.], 1994. v. 2, p. 1903–1907.

HARWOOD, A. Odd-even Transposition Sort. 2011. Dispon´ıvel em: < http://ww2.cs-.mu.oz.au/˜aaron/subjects/comp90025 2011 sm2/lectures/node111.html>.

MITCHELL, M.; GRAMSS, T.; BORNHOLT, S.; GROSS, M.; PELLIZZARI, T. Computation in cellular automata: A selected review. Wiley-VCH Verlag GmbH Co. KGaA, p. 95–140, 2005.

PACKARD, N.; WOLFRAM, S. Two-dimensional cellular automata. Journal of Statistical Physics, Kluwer Academic Publishers-Plenum Publishers, v. 38, n. 5-6, p. 901–946, 1985.

SAREEN, P. Comparison of sorting algorithms (on the basis of average case). International Journal of Advanced Research in Computer Science and Software Engineering, v. 3, p. 522–532, 2013.

(53)

SHAKERI, M.; DELDARI, H.; FOROUGHI, H.; REZVANIAN, A. Parallel Sorting On Linear Cellular Automata. In: Parallel and Distributed Processing Techniques and Applications. [S.l.: s.n.], 2008. p. 377–383.

WEISSTEIN, E. W. Cellular Automaton. MathWorld - A Wolfram Web Resource, 2013. Dispon´ıvel em: <http://mathworld.wolfram.com/CellularAutomaton.html>.

WEISSTEIN, E. W.Moore Neighborhood. MathWorld - A Wolfram Web Resource, 2013. Dispon´ıvel em: <http://mathworld.wolfram.com/MooreNeighborhood.html>.

WEISSTEIN, E. W.von Neumann Neighborhood. MathWorld - A Wolfram Web Resource, 2013. Dispon´ıvel em: < http://mathworld.wolfram.com/vonNeumannNeighborhood-.html>.

WOLFRAM, S. Statistical mechanics of cellular automata. Reviews of Modern Physics, American Physical Society, v. 55, p. 601–644, Jul 1983.

WOLFRAM, S. Computation theory of cellular automata. Communications in Mathematical Physics, Springer-Verlag, v. 96, n. 1, p. 15–57, 1984. ISSN 0010-3616. WOLFRAM, S. Cellular automata and complexity: collected papers. In: . Reading, MA: Addison-Wesley, 1994. p. 608.

WOLFRAM, S. A new kind of science. In: . Champaign, Ilinois, US, United States: Wolfram Media Inc., 2002. p. 169. ISBN 1579550088.

WOLFRAM, S. A new kind of science. In: . Champaign, Ilinois, US, United States: Wolfram Media Inc., 2002. p. 459. ISBN 1579550088.

WORSCH, T.; NISHIO, H. Real-time sorting of binary numbers on one-dimensional ca. In: Journ´ees Automates Cellulaires. [S.l.: s.n.], 2010. p. 214–225.

Imagem

Figura 1: Dimens˜oes de um autˆomato celular (WOLFRAM, 2002a, p. 169).
Figura 2: Vizinhan¸ca de Moore (WEISSTEIN, 2013b).
Figura 3: Vizinhan¸ca de von Neumann (WEISSTEIN, 2013c).
Figura 4: Exemplo de transi¸c˜ao de estados em um autˆomato celular elementar.
+7

Referências

Documentos relacionados

Mas, na medida em que ele faz parte da linguagem, o significante é um sinal que remete a um outro sinal, que é como tal estruturado para significar a ausên- cia de um outro sinal,

Combinados, o rádio portátil APX 8000XE habilitado para todas bandas e o microfone falante remoto XE500 criam uma solução de missão crítica incomparável, projetada para o pessoal

Se no cadastro da administradora, foi selecionado na aba Configurações Comissões, para que as comissões fossem geradas no momento da venda do contrato, já é

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

II - os docentes efetivos, com regime de trabalho de 20 (vinte) horas semanais, terão sua carga horária alocada, preferencialmente, para ministrar aulas, sendo o mínimo de 8 (oito)

Para o Planeta Orgânico (2010), o crescimento da agricultura orgânica no Brasil e na América Latina dependerá, entre outros fatores, de uma legislação eficiente

Considerando que a maioria dos dirigentes destas entidades constituem-se de mão de obra voluntária e na maioria das vezes sem formação adequada para o processo de gestão e tendo