A metodologia adotada neste trabalho para o projeto de sistemas seq¨uenciais foi estruturada em trˆes etapas principais: (i) A implementa¸c˜ao do Algoritmo Evolucion´ario Inspirado na Com- puta¸c˜ao Quˆantica (AEICQ); (ii) A adapta¸c˜ao da implementa¸c˜ao do AEICQ para ser aplicado na resolu¸c˜ao do problema de atribui¸c˜ao de estados e (iii) A adapta¸c˜ao da implementa¸c˜ao do AEICQ para ser aplicado na s´ıntese autom´atica de circuitos digitais evolucion´arios.
O Algoritmo Evolucion´ario Inspirado na Computa¸c˜ao Quˆantica (AEICQ), utilizado nos experimentos apresentados neste trabalho, segue a estrutura b´asica dos algoritmos evolucion´a- rios inspirados nos princ´ıpios da computa¸c˜ao quˆantica que encontram-se descritos na literatura. Os indiv´ıduos s˜ao representados de forma probabil´ıstica por meio de um conjunto de bits quˆan- ticos ou Ó-bits. A porta rota¸c˜ao foi utilizada como um operador de varia¸c˜ao pelo AEICQ. Foram implementados tamb´em dois mecanismos que tˆem como objetivo permitir que o AEICQ escape de solu¸c˜oes locais: a restri¸c˜ao de probabilidades e a migra¸c˜ao global. A restri¸c˜ao de probabi- lidade evita a ocorrˆencia de uma convergˆencia prematura dos Ó-bits para os estados 0 ou 1. Nas opera¸c˜oes de migra¸c˜ao global as melhores solu¸c˜oes obtidas por cada um dos Ó-indiv´ıduos e que s˜ao utilizadas no processo de atualiza¸c˜ao das amplitudes de probabilidade dos Ó-bits s˜ao substitu´ıdas pela melhor solu¸c˜ao encontrada at´e a gera¸c˜ao atual. Esta opera¸c˜ao ´e executada pelo AEICQ sempre que a processo evolucion´ario permanece um n´umero pr´e-determinado de gera¸c˜oes sem conseguir obter uma solu¸c˜ao melhor que a obtida at´e a gera¸c˜ao atual. Desta
6.1 Conclus˜oes 107 forma, a migra¸c˜ao global permite aumentar a diversidade da popula¸c˜ao e, por conseq¨uˆencia, a convergˆencia do processo.
A primeira aplica¸c˜ao do AEICQ foi na resolu¸c˜ao do problema de atribui¸c˜ao de estados. O objetivo neste caso foi a obten¸c˜ao de atribui¸c˜oes de estados capazes de conduzirem a imple- menta¸c˜oes de l´ogicas de controle otimizadas para m´aquinas de estados finitos. Os indiv´ıduos correspondentes `as atribui¸c˜oes poss´ıveis foram representados por um conjunto de Ó-bits de tamanho adequado para identificar todos os estados da m´aquina de estados. Para avaliar a aptid˜ao das atribui¸c˜oes evolu´ıdas, o AEICQ utilizou duas heur´ısticas que atribuem c´odigos ad- jacentes aos estados que tˆem o mesmo pr´oximo estado e tamb´em aos estados que tˆem o mesmo estado antecessor (ARMSTRONG, 1962) e (HUMPHREY, 1958) para avalia¸c˜ao das atribui¸c˜oes.
Para a valida¸c˜ao do desempenho do AEICQ foram realizados v´arios experimentos, uti- lizando m´aquinas de estados finitos citadas como referˆencia nas pesquisas envolvendo siste- mas seq¨uenciais e dispon´ıveis em (ACM/SIGDA, 1989). Os resultados alcan¸cados pelo AEICQ (ARAUJO; NEDJAH; MOURELLE, 2008b) e (ARAUJO; NEDJAH; MOURELLE, 2008c) foram expres- sivos, tendo sido, na maioria dos casos, superiores aos obtidos pelos algoritmos gen´eticos e pela ferramenta NOVATM.
Na segunda aplica¸c˜ao, o AEICQ foi adaptado para ser usado na s´ıntese da l´ogica de controle das m´aquinas de estados finitos (ACM/SIGDA, 1989). Segundo a terminologia utilizada na eletrˆonica evolucion´aria, estes experimentos s˜ao classificados como extr´ınsecos. A unidade de circuito manipulada pelo AEICQ ´e a porta l´ogica, caracterizando portanto uma aplica¸c˜ao no n´ıvel de portas l´ogicas. Os circuitos foram representados atrav´es de matrizes de c´elulas, onde cada c´elula codifica uma porta l´ogica assim como o mapeamento dos seus respectivos sinais de entrada. A fun¸c˜ao de avalia¸c˜ao das solu¸c˜oes utilizada pelo AEICQ possui dois objetivos, os quais s˜ao: (i) O circuito evolu´ıdo deve ser totalmente funcional; (ii) O circuito deve ser otimizado com rela¸c˜ao `a ´area ocupada e ao atraso de propaga¸c˜ao dos sinais de sa´ıda. Para a otimiza¸c˜ao dos circuitos foi utilizada a t´ecnica da soma ponderada para agregar os objetivos relacionados `a ´area e ao atraso de propaga¸c˜ao dos mesmos.
Durante os experimentos, a s´ıntese da l´ogica de controle de algumas das m´aquinas de estados finitos foi mais explorada. Para estas m´aquinas buscou-se um ajuste ´otimo de todos os parˆametros relacionados ao AEICQ, tais como: n´umero m´aximo de gera¸c˜oes; ˆangulo da porta rota¸c˜ao; tamanho da popula¸c˜ao; e o momento em que deve acontecer a migra¸c˜ao global. Com o uso destes parˆametros, os resultados alcan¸cados pelo AEICQ foram superiores aos obtidos por outros m´etodos, mostrando que esta ´e uma ferramenta promissora nas aplica¸c˜oes envolvendo
a eletrˆonica evolucion´aria. Os experimentos foram ent˜ao estendidos para outras m´aquinas de estados finitos. Devido aos tempos de simula¸c˜ao serem relativamente longos, n˜ao foi poss´ıvel, dentro do tempo dispon´ıvel para esta pesquisa, obter parˆametros otimizados para cada uma das m´aquinas, sendo ent˜ao realizadas apenas algumas varia¸c˜oes em torno dos parˆametros utilizados naquelas m´aquinas. Ainda assim, os resultados alcan¸cados pelo AEICQ (ARAUJO; NEDJAH; MOURELLE, 2008a) foram compat´ıveis com os resultados obtidos pelos algoritmos gen´eticos, pela programa¸c˜ao gen´etica e com a ferramenta n˜ao evolucion´aria ABCTM. Estes resultados
demostram que os algoritmos evolucion´arios inspirados na computa¸c˜ao quˆantica s˜ao robustos quanto ao ajuste dos seus parˆametros. Vale ressaltar que o problema da escalabilidade, o qual ´e citado nos trabalhos (ALI, 2003), (ZEBULUM, 1999) e (YAO; HIGUCHI, 1999), tamb´em foi percebido nos experimentos envolvendo as m´aquinas de estados mais complexas, realizados neste trabalho.
Em resumo, o principal objetivo deste trabalho foi atingido. Um nova t´ecnica utili- zando os algoritmos evolucion´arios inspirados na computa¸c˜ao quˆantica foi implementada para o projeto de sistemas seq¨uenciais s´ıncronos. A t´ecnica proposta atingiu resultados compar´aveis com os de outras t´ecnicas e muitas vezes superiores.