45
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA Aplicação de Algoritmos Heurísticos na Ordenação e Particionamento de Coeficientes em Arquiteturas de Filtros FIR por Angelo Gonçalves da Luz Trabalho Individual I TI-2009/2-002 Orientador: Prof. Dr. Eduardo Antonio César Costa Co-Orientador: Prof. Dr. Marilton Sanchotene de Aguiar Pelotas, Fevereiro de 2010

Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

Embed Size (px)

Citation preview

Page 1: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

UNIVERSIDADE CATÓLICA DE PELOTAS

CENTRO POLITÉCNICO

PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

Aplicação de Algoritmos Heurísticos na Ordenação e Particionamento de

Coeficientes em Arquiteturas de Filtros FIR

por

Angelo Gonçalves da Luz

Trabalho Individual I

TI-2009/2-002

Orientador: Prof. Dr. Eduardo Antonio César Costa

Co-Orientador: Prof. Dr. Marilton Sanchotene de Aguiar

Pelotas, Fevereiro de 2010

Page 2: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

2

SUMÁRIO

LISTA DE FIGURAS .................................................................................................................................... 4

LISTA DE TABELAS .................................................................................................................................... 5

LISTA DE ABREVIATURAS E SIGLAS .......................................................................................................... 6

RESUMO .................................................................................................................................................. 7

ABSTRACT ................................................................................................................................................ 8

1 Introdução ................................................................................................................................... 9

2 Consumo de Potência em Circuitos CMOS .................................................................................. 11

2.1 Consumo de Potência Dinâmica .................................................................................................. 11

3 Codificação para Baixo Consumo de Potência ............................................................................. 14

3.1 Codificação Bus-Invert ................................................................................................................. 14

3.2 Codificação Gray .......................................................................................................................... 15

3.3 Codificação Híbrida ...................................................................................................................... 15

4 FILTROS DE RESPOSTA FINITA AO IMPULSO - FIR ......................................................................... 17

4.1 Características ............................................................................................................................. 17

4.2 Tipos de Filtros ............................................................................................................................. 19

5 Heurísticas .................................................................................................................................. 23

5.1 Heurísticas Construtivas .............................................................................................................. 23

5.1.1 Heurística do Vizinho mais Próximo .................................................................................. 23

5.1.2 Heurística de Bellmore e Nemhauser ................................................................................ 24

5.2 Metaheurísticas ........................................................................................................................... 25

5.2.1 Algoritmos Genéticos ......................................................................................................... 26

5.2.1.1 Representação ............................................................................................................... 27

5.2.1.2 Decodificação ................................................................................................................ 27

5.2.1.3 Avaliação da População................................................................................................. 27

5.2.1.4 Operadores Genéticos ................................................................................................... 28

5.2.1.4 Substituição da população ........................................................................................... 29

5.2.1.5 Critério de Parada .......................................................................................................... 29

5.2.2 GRASP ................................................................................................................................. 30

5.2.2.1 Fase de Construção........................................................................................................ 30

5.2.2.2 Fase de Busca Local ....................................................................................................... 32

5.2.2.3 Critério de Parada .......................................................................................................... 32

5.2.3 Outras Metaheurísticas ...................................................................................................... 33

5.2.3.1 Multi-Start ............................................................................................................................ 33

5.2.3.2 Simulated Annealing ............................................................................................................ 33

5.2.3.3 Busca Tabu ........................................................................................................................... 34

5.2.3.4 Colônia de Formigas ............................................................................................................. 35

6 Resultados .................................................................................................................................. 37

6.1 Resultados Obtidos com os Coeficientes Originais ..................................................................... 38

6.2 Resultados obtidos através da Codificação ................................................................................ 39

7 Trabalhos Relacionados .............................................................................................................. 41

Page 3: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

3

8 Conclusões .................................................................................................................................. 43

Referências .......................................................................................................................................... 44

Page 4: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

4

LISTA DE FIGURAS Figura 1. Caracterização da potência dinâmica de uma porta CMOS .............................12

Figura 2. Gráfico da variação das correntes dinâmicas com capacitâncias de carga e rampas ..............................................................................................................................13

Figura 3. Codificação Bus-Invert .....................................................................................15

Figura 4. Codificação Gray .............................................................................................15

Figura 5. Conversão entre codificação Binária e Híbrida ...............................................16

Figura 6. Exemplo de número de transições em codificação Binária e Híbrida .............16

Figura 7. Arquitetura do Filtro FIR totalmente paralelo ..................................................18

Figura 8. Arquitetura do filtro FIR totalmente sequencial...............................................19

Figura 9. Arquitetura do filtro FIR Semi-paralelo ...........................................................19 Figura 10. Filtro FIR passa baixa com 40 coeficientes ...................................................20

Figura 11. Filtro FIR passa baixa com 11 coeficientes ..................................................21

Figura 12. Filtro FIR passa alta .......................................................................................21 Figura 13. Filtro Passa Faixa ...........................................................................................22 Figura 14. Filtro Rejeita faixa..........................................................................................22 Figura 15. Exemplo de aplicação do operador crossover ................................................28

Figura 16. Exemplo de aplicação do operador de mutação .............................................29

Figura 17. Pseudocódigo do procedimento GRASP .......................................................30

Figura 18. Pseudocódigo da fase de construção. .............................................................32 Figura 19. Pseudocódigo da fase de busca local. ............................................................32 Figura 20. Relação entre temperatura e aceitação de movimentos .................................34

Figura 21. Ferramenta automática para ordenação e particionamento de coeficientes ...38

Page 5: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

5

LISTA DE TABELAS Tabela 1. Representação do código Híbrido (m=2) ........................................................16 Tabela 2. Vizinhança de Elementos .................................................................................23 Tabela 3. Natureza e Algoritmos Genéticos ....................................................................26 Tabela 4. Etapas de Algoritmos genéticos .......................................................................26 Tabela 5. Tipos de representação dos cromossomos .......................................................27

Tabela 6. Avaliação de aptidão ........................................................................................28 Tabela 7. Especificações dos Filtros FIR .........................................................................37 Tabela 8. Número de transições dos coeficientes originais .............................................38

Tabela 9. Número de transições dos coeficientes originais e codificados .......................39

Tabela 10. Número de transições dos coeficientes originais e codificados com a aplicação de Heurísticas ..................................................................................................40

Page 6: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

6

LISTA DE ABREVIATURAS E SIGLAS

FIR Finite Impulse Response.

DSP Digital Signal Processing.

PMOS P-type Metal Oxide Semiconductor.

CMOS Complementary Metal Oxide Semiconductor.

NMOS N-type Metal Oxide Semiconductor.

VLSI Very Large Scale Integration.

IIR Infinity Impulse Response.

DFT Transformada Discreta de Fourier

GRASP Greedy Randomized Adaptive Search Procedure

LRC Lista Restrita de Candidatos.

ASIC Application-Specific Integrated Circuit

TDF Transposed Direct-Forms

DF Direct Form

Page 7: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

7

RESUMO

Este trabalho tem como objetivo a implementação de algoritmos baseados em

heurísticas para encontrar a melhor ordenação e particionamento de coeficientes de

filtros FIR (Finite Impulse Response). Devido às características destes filtros, que

envolvem multiplicações de dados de entrada com coeficientes apropriados, em uma

operação conhecida como convolução, a busca pela melhor ordenação e particionamento

destes coeficientes pode contribuir para a redução da atividade de chaveamento nos

barramentos de dados, o que resulta na redução do consumo de potência nos filtros.

Desta forma, foram implementados quatro algoritmos para a busca da melhor ordenação

e do melhor particionamento dos coeficientes. Os resultados são apresentados em

termos da distância de Hamming entre os coeficientes consecutivos. Outra técnica

utilizada neste trabalho para a redução do consumo de potência nos filtros é a

codificação de operandos. Esta técnica é utilizada para reduzir o consumo de potência

na transmissão de informações em barramentos, reduzindo a atividade de chaveamento.

Em particular, algumas destas técnicas, tais como Bus-Invert, Gray e codificação

Híbrida foram utilizadas neste trabalho juntamente com heurísticas a fim de analisar o

seu impacto na redução do consumo de potência dos filtros.

Palavras-chave: Filtros FIR, convolução, ordenação e particionamento de coeficientes, codificação de operandos, redução de consumo de potência.

Page 8: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

8

ABSTRACT

This work aimed the implementation of heuristic-based algorithms for the best

ordering and partitioning of coefficients in Finite Impulse Response (FIR) filters. Due

to the characteristics of the FIR filter algorithms, which involve multiplications of input

data with appropriate coefficients, in an operation known as convolution, the search for

the best ordering and partitioning of these operations can contribute for the reduction of

the switching activity in data buses, what leads to the minimization of power

consumption in the filters. Thus, four algorithms were implemented for the ordering

and partitioning of the coefficients and all of them are based on some heuristic

approach. The results are presented in terms of the Hamming distance between the

consecutive coefficients. Another technique used in this work for the power reduction in

the filters is the data encoding. This technique is used for the decrease of power

consumed for transmitting information over buses by reducing the switching activity, we

have used some of these encoding techniques in the coefficients. Bus-Invert, Gray and

Hybrid encoding are used in order to verify the impact on reducing the switching

activity of the coefficients after using the implemented heuristic-based algorithms.

Keywords: FIR filters, convolution, Ordering and Partitioning of the Coefficients, encoding operands, reduce power consumption.

Page 9: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

9

1 INTRODUÇÃO

O consumo de potência é um dos principais parâmetros em projetos de circuitos

integrados, devido ao fato de não haver um crescimento da eficiência na tecnologia das

baterias na mesma velocidade com que há a demanda por equipamentos portáteis

operados por bateria.

Desta forma, há uma pressão natural para a redução do consumo de potência

nestes equipamentos, de tal forma que haja um aumento do tempo de vida útil das suas

baterias. Diante disso, surge o desafio de implementar arquiteturas que consumam o

mínimo de potência, sem comprometer o seu desempenho, para a utilização nestes

dispositivos operados por bateria.

Uma classe de algoritmos que tem merecido especial atenção, com aspectos de

baixa potência, são os de processamento digital de sinais (Digital Signal Processing –

DSP). Este interesse tem se intensificado desde a proliferação dos equipamentos

eletrônicos portáteis de alto desempenho operados por baterias, tais como telefones

celulares, leitores de CD´s, equipamentos biomédicos, etc.

Em aplicações DSP, uma das operações mais utilizadas inclui a filtragem dos

sinais com resposta finita ao impulso (FIR – Finite Impulse Response) [1], [2]. Dada a

natureza deste tipo de algoritmo, que inclui um elevado número de operações

aritméticas de soma e multiplicação, a sua implementação geralmente apresenta um

elevado consumo de potência. Este fato se deve principalmente aos circuitos

multiplicadores, que são responsáveis por uma parte significativa do consumo de

potência global dos equipamentos da área DSP. Desta forma, torna-se importante a

aplicação de técnicas de baixa potência em circuitos desta área.

No algoritmo de filtro FIR, que envolve o processo de convolução, a ordem da

computação dos produtos dos dados de entrada com os coeficientes afeta diretamente a

sequencia com que os coeficientes aparecem no barramento de dados. Por outro lado,

dado que a operação em filtros FIR é comutativa e associativa, a saída dos filtros FIR é

independente da ordem de computação dos produtos dos coeficientes. Desta forma, a

ordenação dos coeficientes pode ser utilizada como técnica para a redução do consumo

de potência, onde todos os coeficientes são ordenados em um circuito totalmente

sequencial, a fim de minimizar o número de transições no multiplexador de entrada e no

barramento de dados [3]. Em [4], esta técnica foi estendida para fazer a ordenação e

Page 10: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

10

também o particionamento de coeficientes a fim de poder ser utilizada em arquiteturas

de filtros FIR do tipo Semi-Paralela, onde o hardware é duplicado e os coeficientes são

divididos em grupos. Sendo assim, é escolhido para cada coeficiente em qual partição

ele se encaixa melhor, fazendo o cálculo do Hamming entre ele e todos outros

coeficientes, para então inseri-lo na melhor partição.

Embora as técnicas de [3] e [4] obtenham resultados satisfatórios com a

ordenação e particionamento dos coeficientes, estes algoritmos exploram todas as

possibilidades possíveis de ordenação, o que os limita a um pequeno grupo de

coeficientes, onde as permutações ainda são calculadas em um tempo razoável. No

entanto, para um maior número de coeficientes estes algoritmos exaustivos são menos

atraentes devido ao tempo necessário para processar um grande número de

combinações.

Neste trabalho foram implementados dois algoritmos baseados em heurísticas

chamados Vizinho Mais Próximo e Bellmore e Nemhauser [5], [6], a fim de alcançar

resultados o mais próximo possível de soluções ótimas para a ordenação e

particionamento de filtros com uma grande quantidade de coeficientes. Foi testado o uso

dos algoritmos na combinação de diferentes números de coeficientes e diferentes

larguras de operandos que foram obtidos a partir do algoritmo de Remez através da

ferramenta Matlab. A ferramenta proposta calcula automaticamente a distância de

Hamming entre coeficientes consecutivos.

Métodos de codificação de dados são bastante utilizados para a redução de

consumo potência nos barramentos, através da redução de atividade de chaveamento.

Sendo assim, foram utilizadas algumas dessas técnicas de codificação, tais como Bus-

Invert [7], Gray [8] e Codificação Hibrida [4] a fim de verificar o impacto na redução da

atividade de chaveamento dos coeficientes. Os resultados mostram que dependendo da

heurística utilizada, o número de transições pode ser reduzido consideravelmente. Com

o uso da heurística Bellmore e Nemhauser aplicado nos coeficientes da codificação

híbrida, mais de 70% de redução no número de transições pode ser alcançado.

Page 11: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

11

2 CONSUMO DE POTÊNCIA EM CIRCUITOS CMOS

Um dos principais parâmetros no projeto de circuitos digitais é o consumo de

potência. Sendo assim, a potência de pico é utilizada a fim de analisar a confiabilidade

dos circuitos, porém o fator mais importante é o consumo de potência médio durante

determinado tempo [9].

Existem três fontes principais de consumo de potência em circuitos CMOS,

sendo elas: consumo de potência estática, consumo de potência de curto circuito e o

consumo de potência dinâmica. O consumo de potência estática é causado pelas

correntes de fuga, o consumo de potência de curto circuito é causado pela corrente direta

da fonte de alimentação para o terra durante o processo de chaveamento de uma porta

lógica, e o consumo de potência dinâmica é dado pela carga e descarga das capacitâncias

dos circuitos.

Dentre estas fontes de consumo de potência, a responsável pelo maior gasto de

energia, na maioria dos casos, é o consumo de potência dinâmica, para tecnologias

acima de 100nm.

2.1 Consumo de Potência Dinâmica

Este trabalho tem por objetivo reduzir a potência dinâmica em filtros FIR, pois

esta parcela representa a maior fonte de consumo de potência em circuitos digitais

CMOS para tecnologias acima de 100nm.

A potência dinâmica consumida ocorre pela carga e descarga da capacitância dos

circuitos. A componente de chaveamento dinâmica de dissipação de potência (Pdin) em

uma transição na saída de uma porta carregada por um capacitor CL é dada de acordo

com a Equação 1, onde A não é simplesmente f (frequência), mas em geral uma

probabilidade de atividade normalizada a (menor do que 1 para modelo de atraso zero) é

computada como função da estatística de entrada e modelos lógicos, pois nem todos os

nós mudam em um determinado ciclo de relógio.

P��� =�

�CAV��

� =�

�afCV��

� (1)

A componente de chaveamento de energia drenada da fonte de alimentação para

uma transição 0 → ���� na saída de uma porta CMOS é dada por �����

� , onde �� é a

capacitância de carga no nó de saída. A Figura 1 mostra um modelo de circuito

destacando a componente de potência de chaveamento [10].

Page 12: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

12

Figura 1. Caracterização da potência dinâmica de uma porta CMOS

Considerando uma transição 0 → ��� na saída do circuito, pode-se estabelecer a

potência instantânea (ignorando a potência de curto-circuito) de acordo com a Equação

2, onde �� é a corrente drenada da fonte de alimentação ��� e que circula no capacitor ��

e é dada de acordo com a Equação 3 [10].

���� =��

��= ����� (2)

�� = �������

�� (3)

A energia drenada da fonte de alimentação para uma transição 0 → ��� no nó de

saída é dada de acordo com a Equação 4.

� →� = ! ����"� = ��� ! ��"�#$� = �������%%

&

(4)

Para a transição na saída do circuito, a energia armazenada no capacitor de carga

de saída, capE é dada pela Equação 5.

∫ ∫ ∫ ====T T vdd

ddLoutoutLi

outcapcap VCdVVCdttLVdttPE0 0 0

2

2

1)()( (5)

Conclui-se que metade da energia drenada da fonte de alimentação é armazenada

no capacitor de carga, e metade da energia é dissipada na rede PMOS. Para uma

transição 0→ddV na saída, nenhuma carga é drenada da fonte de alimentação e a

energia armazenada no capacitor ( 2

2

1ddLVC ) é dissipada na rede NMOS pull-down.

A Figura 2 mostra que a componente dinâmica normalizada é linearmente

proporcional à capacitância de carga LC e a extrapolação para 0=LC é somente

Page 13: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

13

dependente dos fatores parasitas da porta, de acordo com a Equação 4 [11].

Deste modo, a potência dinâmica (dinP ) pode ser macro modelada, para um

projeto baseado em células, de acordo com a Equação 6, onde LC é a capacitância de

carga extrínseca da porta e iC é a carga intrínseca para uma célula lógica dada.

)(2

1 2Lidddin CCafVP += (6)

Como pode ser visto na Figura 2, a rampa de entrada não afeta significativamente

a componente de potência dinâmica, quando esta é controlada para ser rápida o

suficiente em relação à saída. Para uma rampa de entrada infinita )0( nsT ≅ até uma

variação mais lenta na entrada T=2ns (isto é, entrada VnsTin /4,0= para VVdd 5= ), a

potência dinâmica tem como fator de controle fundamentalmente a carga/descarga do

capacitor externo. Para rampas de entrada extremamente lentas (T=25ns ou mais),

observa-se a condição que tende ao regime de chaveamento adiabático [12]. Neste

regime, pode-se ter uma componente dinâmica tão pequena quanto se queira, ao custo

de circuitos extremamente lentos (como mostrado para uma rampa de entrada de 25ns

na Figura 2). O regime adiabático não é considerado na modelagem da potência

dinâmica, dado que neste regime, a principal componente de dissipação de potência é o

curto-circuito.

Figura 2. Gráfico da variação das correntes dinâmicas com capacitâncias de carga e rampas

Page 14: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

14

3 CODIFICAÇÃO PARA BAIXO CONSUMO DE POTÊNCIA

Codificação tem sido muito utilizada em sistemas de comunicação para controlar

as estatísticas dos símbolos de dados transmitidos, ou em outras palavras, para controlar

o espectro do sinal transmitido [8].

Técnicas para baixo consumo de potência na comunicação global em CMOS

VLSI utilizando métodos de codificação de dados podem ser encontradas em [9], onde é

comprovado que essas técnicas podem reduzir a energia consumida para a transmissão

de informações sobre os caminhos de carga pesada de comunicação (barramento),

reduzindo a atividade de chaveamento. Neste trabalho foram utilizadas as codificações

Bus-Invert, Gray e a codificação híbrida, com os seguintes objetivos: i) verificar o

impacto na redução da atividade de chaveamento dos coeficientes de um filtro FIR e ii)

verificar a melhor ordenação dos coeficientes quando utilizando-se os algoritmos

heurísticos.

3.1 Codificação Bus-Invert

O método de codificação Bus-Invert faz a codificação das palavras a fim de

reduzir o consumo de potência, onde cada uma das palavras pode ter o seu valor

invertido antes da sua transmissão, se isso proporcionar uma redução no número de

transições [7]. Neste método uma linha extra de barramento é utilizada, chamada invert.

O método faz a analise de duas palavras de dados consecutivas do barramento. Se a

distância de Hamming entre a palavra seguinte e a atual for menor do que W/2, a palavra

seguinte é enviada como está, com invert igual a 0. Caso contrário, cada bit da palavra

seguinte é invertido e o invert recebe valor igual a 1, indicando que a palavra foi

invertida. O método Bus-Invert é explorado em [7] em seqüências de palavras para

minimizar transições. Por exemplo, palavras podem ser invertidas, reordenadas e então

transmitidas. A Figura 3 mostra um exemplo de aplicação de Bus-Invert

Page 15: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

15

Figura 3. Codificação Bus-Invert

3.2 Codificação Gray

Um dos métodos de codificação mais utilizado para redução da atividade de

chaveamento é a codificação Gray [8]. Em uma seqüência de contagem em código Gray

apenas um bit muda de representação entre valores consecutivos, podendo produzir,

desta forma, uma redução bastante significativa no número de transições em relação ao

código binário.

Um exemplo de transformada de codificação binária em codificação Gray é

apresentada na Figura 4.

Figura 4. Codificação Gray

3.3 Codificação Híbrida

A idéia da codificação híbrida é dividir os operandos em grupos de m-bits,

codificando cada grupo utilizando código Gray e usando o método binário para propagar

o carry entre estes grupos [4]. Desta forma, o número de transições dentro de cada

grupo é minimizado e uma estrutura regular pode ser facilmente construída. A Tabela 1

Page 16: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

16

exemplifica a codificação híbrida para 4 bits com m=2.

Tabela 1. Representação do código Híbrido (m=2) Dec Hyb Dec Hyb Dec Hyb Dec Hyb

0 0000 4 0100 8 1100 12 1000

1 0001 5 0101 9 1101 13 1001

2 0011 6 0111 10 1111 14 1011

3 0010 7 0110 11 1110 15 1010

O código híbrido pode facilmente ser aplicado em barramentos, onde economia

de energia pode ser mais facilmente alcançada quando existe um maior grau de

correlação entre os bits. Uma característica da codificação híbrida é que a conversão

entre Binário e Híbrido é muito simples, como mostra a Figura 5. Transformando

palavras de W bits entre Binário e Híbrido em qualquer direção, tudo que é necessário é

uma porta EXOR em cada grupo de m=2. Desta forma, o overhead em termos de

transcodificação é reduzido. Fazer esta codificação é muito desejável mesmo em caso de

endereços de barramentos. A Figura 6 mostra um exemplo de numero de transições

necessárias para os códigos Binários e Híbridos.

Figura 5. Conversão entre codificação Binária e Híbrida

Figura 6. Exemplo de número de transições em codificação Binária e Híbrida

Page 17: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

17

4 FILTROS DE RESPOSTA FINITA AO IMPULSO - FIR

Em processamento de sinais, há muitos casos em que um determinado sinal de

entrada para um determinado sistema apresenta informações desnecessárias ou mesmo

ruídos adicionais que podem degradar a qualidade do que se deseja transmitir. Nestes

casos, pode-se remover ou filtrar as amostras inúteis. Por exemplo, no caso do sistema

de telefonia, não há razão para transmitir freqüências muito altas desde que todos os

sinais estejam dentro de uma determinada faixa (400 a 3.400 Hertz). Portanto, neste

caso, todas as frequências acima e abaixo dessas frequências são filtradas. A faixa de

freqüência entre 400 e 3.400 Hz, as quais não são filtradas, são conhecidas como banda

passante (“passband”) e a banda de freqüência que é bloqueada é conhecida como

banda rejeitada (“stopband”). Alguns filtros podem ser utilizados para realizar a

operação necessária de filtragem do sinal dentro de uma determinada faixa útil. Alguns

exemplos são filtros de resposta finita ao impulso (FIR – Finite Impulse Response),

filtros de resposta infinita ao impulso (IIR – Infinite Impulse Response) e filtros

adaptativos. Neste trabalho, os filtros FIR são utilizados como estudo de caso para o

uso das técnicas de redução da atividade de chaveamento nos barramentos de dados. A

seguir são apresentadas as principais características deste tipo de filtro.

4.1 Características

A operação de filtragem de resposta finita ao impulso (FIR) é realizada a partir

do processo de convolução das amostras dos dados de entrada com a resposta ao

impulso unitária.

Um filtro FIR pode ser matematicamente expresso pelo somatório dos pesos das

ultimas N amostras de dados de entrada, como apresentado na Equação 7.

∑−

=

−=1

0

][][][N

i

inXiHnY

(7)

Na equação 7, “X” representa o sinal de entrada, “H” os coeficientes do filtro,

“Y” o sinal de saída, “n” é a posição atual, “N” é o numero de coeficientes (taps) do

filtro. Essa é uma operação de convolução dos coeficientes do filtro sobre o sinal. Os

coeficientes do filtro FIR são obtidos pela Transformada Discreta de Fourier (DFT –

Discrete Fourier Transform) da freqüência necessária da função de transferência,

aplicando algum método de janelamento. Nesse trabalho foram utilizados algoritmos de

Page 18: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

18

Remez para o cálculo dos coeficientes.

A forma mais direta de implementação de filtros FIR é a partir da arquitetura

totalmente paralela, onde unidades de atraso são usadas para armazenar previamente

amostras de sinal. Na forma direta, em cada ciclo de relógio uma nova amostra e os

correspondentes coeficientes do filtro são simultaneamente aplicados a cada

multiplicador. O resultado de todos multiplicadores são somados simultaneamente. Essa

arquitetura é apresentada na figura 7.

Na implementação totalmente seqüencial um conjunto de operações de

multiplicações e somas é realizado para cada amostra de dados de sinal de entrada. Isso

é realizado, multiplicando-se as “N” amostras de entrada pelos coeficientes e somando

os resultados parciais para gerar o sinal de saída. Na implementação totalmente

seqüencial a idéia básica é de reduzir os requisitos do hardware reutilizando-o o

máximo possível. A Figura 8 mostra a arquitetura totalmente seqüencial do filtro FIR.

A fim de acelerar as computações do filtro FIR, uma arquitetura semi-paralela

pode ser implementada, onde os requisitos de hardware são duplicados com relação à

totalmente seqüencial, permitindo que duas amostras possam ser processadas

simultaneamente. A figura 9 mostra a arquitetura semi-paralela do filtro FIR.

Figura 5. Figura 7. Arquitetura do Filtro FIR totalmente paralelo

Page 19: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

19

Figura 8. Arquitetura do filtro FIR totalmente sequencial

Figura 9. Arquitetura do filtro FIR Semi-paralelo

4.2 Tipos de Filtros

Existem vários diferentes tipos de respostas de filtros. Cada um apresenta uma

resposta única baseada: i) na freqüência de corte do tipo do filtro, ii) no número de

coeficientes utilizado e iii) no nível de tolerância utilizado. Para melhor entendimento

pode-se observar estes atributos na Figura 10, e o comportamento obtido pelos

diferentes tipos de filtros também serão mostrados a seguir.

A Figura 10 demonstra a curva de um filtro FIR passa baixa com 40 coeficientes

Page 20: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

20

(taps) onde, “passband ripple” representa a tolerância da banda passante, “stopband

ripple” a banda de parada e “stopband attenuation” representa a atenuação na banda de

parada. A Figura 11 apresenta o mesmo filtro FIR da Figura 10 (passa baixa), porém

representado com apenas 11 coeficientes, o que mostra uma grande redução na precisão

do sinal. Isso mostra a importância do número de coeficientes na resposta do filtro, que

é representada pelo processo de convolução.

A representação de um filtro que rejeita as baixas freqüências e aceita as altas

freqüências é apresentado na Figura 12. Este filtro é chamado de Passa Alta. A Figura 13

apresenta um filtro do tipo passa faixa (passband), que rejeita as freqüências extremas e

aceita as freqüências intermediarias. O filtro rejeita faixa (stopband) mostrado na Figura

14 apresenta comportamento inverso ao passband, aceitando apenas as freqüências das

extremidades e rejeitando as freqüências intermediárias.

Figura 10. Filtro FIR passa baixa com 40 coeficientes

Page 21: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

Figura

Figura 11. Filtro FIR passa baixa com 11 coeficientes

Figura 12. Filtro FIR passa alta

21

Page 22: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

22

Figura 13. Filtro Passa Faixa

Figura 14. Filtro Rejeita faixa

Page 23: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

23

5 HEURÍSTICAS

Heurísticas são algoritmos que têm por objetivo encontrar boas soluções,

ocasionalmente a melhor, sem grande custo computacional para problemas que exigem

alto poder computacional para encontrar soluções ótimas.

Existem muitas heurísticas na literatura, as quais podem ser classificadas como

construtivas ou de refinamento. Neste trabalho apenas heurísticas construtivas são

utilizadas.

5.1 Heurísticas Construtivas

Heurísticas construtivas [5], [6] têm por características a construção de soluções

do tipo elemento a elemento, ou seja, faz escolhas ótimas locais, escolhendo sempre a

melhor solução para o elemento atual, sem tratamento em busca de ótimos globais.

Algumas heurísticas construtivas encontradas na literatura são: Heurística do

Vizinho mais Próximo, Heurística de Bellmore e Nemhauser e Heurística da Inserção

Mais Barata.

Dentre as heurísticas construtivas apresentadas acima, foram implementadas

neste trabalho, a do Vizinho Mais Próximo e a de Bellmore e Nemhauser.

5.1.1 Heurística do Vizinho mais Próximo

Nesta heurística parte-se de um elemento inicial e adiciona-se como elemento

seguinte o considerado melhor vizinho levando em conta uma determinada função de

custo. Tomando como exemplo os valores inseridos na Tabela 2 como sendo o custo

para inserção de um elemento.

Tabela 2. Vizinhança de Elementos Elemento E1 E2 E3 E4 E5 E6

E1 0 2 1 4 9 1

E2 2 0 5 9 7 2

E3 1 5 0 3 8 6

E4 4 9 3 0 2 5

E5 9 7 8 2 0 2

E6 1 2 6 5 2 0

Aplicando a heurística do Vizinho mais Próximo aos elementos da Tabela 2, tem-

se então como ordem de menor custo encontrada ([E1] [E3] [E4] [E5] [E6] [E2]) através

Page 24: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

24

dos seguintes passos (considerando como elemento inicial o E1):

Passo 1: Adiciona-se E3, como elemento seguinte, já que é o elemento com

menor custo na vizinhança de E1. Lista atual ([E1] [E3]).

Passo 2: Adiciona-se o E4, já que o E1, que é o elemento de menor custo, já foi

inserido, sendo assim então é inserido o segundo melhor vizinho. Lista atual ([E1] [E3]

[E4]).

Passo 3: Adiciona-se E5, já que é o melhor vizinho de E4 disponível. Lista atual

([E1] [E3] [E4] [E5]).

Passo 4: Adiciona-se E6, já que é o melhor vizinho de E5 disponível. Lista atual

([E1] [E3] [E4] [E5] [E6]).

Passo 5: Adiciona-se E2, que é o único elemento restante. Lista final ([E1] [E3]

[E4] [E5] [E6] [E2]).

O custo total dos elementos da lista é dado por:

CustoTotal = custo (E1,E3) + custo(E3, E4) + custo(E4, E5) + custo(E5, E6) +

custo(E6, E2) = 12.

5.1.2 Heurística de Bellmore e Nemhauser

Nesta heurística, parte-se de um elemento inicial, fazendo-se então a inserção de

seu melhor vizinho. A partir daí sempre são analisados os dois extremos da lista, onde

caso o melhor custo seja o da inserção do melhor vizinho do extremo esquerdo da lista,

é inserido então este vizinho como elemento extremo esquerdo da lista. Caso o extremo

direito que tenha o melhor vizinho, então é inserido o elemento como extremo direito da

lista.

Considerando-se os valores da Tabela 1, tem-se como resposta a seguinte

seqüência de elementos ([E2] [E6] [E1] [E3] [E4] [E5]), que são adquiridos através dos

seguintes passos (partindo de E1 como elemento inicial):

Passo 1: Adiciona-se E3, já que é o melhor vizinho de E1. Lista atual ([E1]

[E3]).

Passo 2: Adiciona-se E6, pois dentre os elementos ainda não adicionados,

analisando os melhores vizinhos de cada extremo da lista, tem-se que o melhor vizinho

de E1 é E6 com custo igual a 1, enquanto no outro extremo da lista tem-se E3 com seu

melhor vizinho E4 com custo 3. Desta forma, adiciona-se E6 ao extremo esquerdo da

rota. Lista atual ([E6] [E1] [E3]).

Passo 3: Adiciona-se E2 no extremo esquerdo da lista, pois dos elementos ainda

Page 25: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

25

não adicionados, o melhor vizinho de E6 é E2 com custo igual a 2, e a que tem menor

distância de E3 é E4 com custo 3. Lista atual ([E2] [E6] [E1] [E3]).

Passo 4: Adiciona-se E4 no extremo direito da lista, pois o melhor vizinho de E2

é E5 com custo igual 7 e a que tem menor distância de E3 é E4 com custo igual a 3.

Lista atual ([E2] [E6] [E1] [E3] [E4]).

Passo 5: Como o único elemento restante é o E5, basta ver em qual extremo sua

inserção possui menor custo. Como vizinho de E2 seu custo é igual a 7, e como vizinho

de E4 seu custo é 2, então é inserido no extremo direito. Lista final ([E2] [E6] [E1] [E3]

[E4] [E5]).

O custo total é dado por:

CustoTotal = custo(E2,E6) + custo(E6, E1) + custo(E1, E3) + custo(E3, E4) +

custo(E4, E5) = 16

5.2 Metaheurísticas

Metaheurísticas são procedimentos destinados a encontrar uma boa solução,

eventualmente a ótima, consistindo na aplicação, em cada passo, de uma heurística

subordinada, a qual tem que ser modelada para cada problema específico [16].

Contrariamente às heurísticas convencionais, as metaheurísticas são de caráter

geral e têm condições de escapar de ótimos locais. Para isso, utiliza-se de técnicas que

serão apresentadas a seguir, que dão a possibilidade de alcançar os ótimos globais.

O que diferencia uma Metaheurísticas de outra é a técnica utilizada para escapar

dos ótimos locais. As metaheurísticas podem ser classificadas em duas categorias de

acordo com o princípio usado para explorar o espaço de soluções: busca local e busca

populacional.

Nas metaheurísticas de Busca Local, a exploração do espaço de soluções é feita

através de movimentos, os quais são aplicados a cada passo da solução atual, a fim de

gerar soluções melhores que a atual. Algumas Metaheurísticas baseadas nesta técnica

encontradas na literatura são: Multi-Start, Simulated Annealing e Busca Tabu.

As metaheurísticas de Busca Populacional têm por característica manter um

conjunto de boas soluções e combiná-las para a produção de soluções melhores. Um

exemplo deste tipo de algoritmo são os Algoritmos Genéticos e GRASP.

Algumas destas metaheurísticas serão apresentadas nas próximas seções, onde as

de maior interesse e maior detalhamento neste trabalho serão: Algoritmos Genéticos e

GRASP.

Page 26: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

26

5.2.1 Algoritmos Genéticos

Os algoritmos genéticos [15], [16], [20] são técnicas baseadas na teoria da

evolução, nos quais as variáveis são representadas como genes de um cromossomo.

Juntamente com estratégias evolucionárias e programação evolutiva formam uma classe

de pesquisa baseado em evolução natural.

Algoritmos Genéticos são métodos que simulam, através de algoritmos, os

processos de evolução natural e genética buscando resolver problemas de otimização

onde o espaço de busca é muito grande e os métodos convencionais não se demonstram

eficientes.

O algoritmo básico foi estruturado de forma que as informações referentes a um

determinado sistema pudessem ser codificadas de maneira análoga aos cromossomos

biológicos.

A analogia entre o sistema natural e os algoritmos genéticos é apresentada na

Tabela 3.

Tabela 3. Natureza e Algoritmos Genéticos Natureza Algoritmos Genéticos

Cromossomo Palavra binária, vetor, etc

Gene Característica do Problema

Alelo Valor da característica

Loco Posição da palavra, vetor, etc

Genótipo Estrutura

Fenótipo Estrutura submetida ao problema

Indivíduo Solução

Geração Ciclo

Eles ocupam lugar de destaque entre os paradigmas da computação evolutiva.

Além disso, têm resultados bastante aceitáveis com relação aos recursos empregados e

pela ampla gama de problemas aplicáveis.

O Algoritmo Genético para um determinado problema deve ter os componentes

e etapas da Tabela 4:

Tabela 4. Etapas de Algoritmos genéticos 1 Uma representação genética para a solução do problema;

2 Decodificação do cromossomo;

3 Avaliação;

5 Operadores genéticos;

6 Substituição da população.

Page 27: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

27

5.2.1.1 Representação

A representação das possíveis soluções do espaço de busca de um problema

define a estrutura do cromossomo a ser manipulado pelo algoritmo [20]. Este

cromossomo depende do tipo de problema e do que, essencialmente, se deseja

manipular geneticamente. Alguns tipos de representação são apresentados na Tabela 5.

Tabela 5. Tipos de representação dos cromossomos

Representação Problemas

Binária Numéricos, Inteiros

Números Reais Numéricos

Permutação de Símbolos Baseados em Ordem

Símbolos Repetidos Grupamento

5.2.1.2 Decodificação

A decodificação do cromossomo consiste basicamente na construção de uma

solução real do problema a partir do cromossomo. O processo de decodificação constrói

a solução para que esta seja avaliada pelo problema.

5.2.1.3 Avaliação da População

A função objetivo gera uma avaliação do grau de adaptação de cada cromossomo

da população. Esta função está diretamente ligada às especificações do problema.

A função efetua a avaliação de modo que é atribuído um valor de aptidão as

possíveis soluções através de uma função de aptidão, que é definida conforme o

problema que se tem a intenção de solucionar.

A geração desta avaliação de aptidão torna-se a parte mais importante para o

procedimento do Algoritmo Genético.

O retorno desta função, que ordena os indivíduos conforme a sua adaptação, é

uma característica intrínseca ao indivíduo, que indicará biologicamente, qual é a

habilidade que um indivíduo possui para sobreviver e produzir a melhor resposta.

No Algoritmo Genético essa etapa é a mais crítica, pois já que as funções

deverão ser avaliadas para cada cromossomo de cada população durante todo o processo

evolutivo.

Em um exemplo de função de avaliação podemos considerar uma função f(x) =

x², que mede a aptidão de cada cromossomo, onde a Tabela 6 apresenta a aptidão de dois

cromossomos, onde podemos notar que a função retornou um valor bem maior para C1,

Page 28: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

28

o que implica que ele está mais apto que C2.

Tabela 6. Avaliação de aptidão Cromossomo x f(x)

C1 0 0 1 0 0 1 9 81

C2 0 0 0 1 0 0 4 16

5.2.1.4 Operadores Genéticos

O principal objetivo dos operadores genéticos é de serem capazes de formar uma

nova população através de sucessivas operações para que obtenha um resultado

satisfatório no final do processo.

Os operadores são de extrema importância para que se tenha uma diversificação

da população e manter as características de adaptação adquiridas das antigas gerações.

Um exemplo de operador é o operador Crossover, onde pares de genitores são

escolhidos aleatoriamente da população, baseado na aptidão, e novos indivíduos são

criados a partir da troca do material genético, sendo assim, os descendentes serão

diferentes de seus pais, mas com características genéticas de ambos.

A Figura 15 apresenta um exemplo simples de utilização deste operador, onde é

selecionado aleatoriamente um ponte de corte entre os dois genitores, gerando dois

novos indivíduos, onde de acordo com a função de avaliação vista anteriormente D1 é

um cromossomo mais apto que seus genitores, entretanto, D2 é um individuo medíocre

(baixa avaliação em f(x) = x²).

Figura 15. Exemplo de aplicação do operador crossover

Os cromossomos criados a partir do operador de crossover são então submetidos

ao operador de mutação (com uma probabilidade '().

Mutação é um operador exploratório que tem por objetivo aumentar a

diversidade da população.

O operador de mutação troca o conteúdo de uma posição do cromossomo, com

uma determinada probabilidade, que normalmente é baixa (menor que 1%), um exemplo

Page 29: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

29

desta aplicação pode ser visto na Figura 16.

Figura 16. Exemplo de aplicação do operador de mutação

5.2.1.4 Substituição da população

A substituição consiste na alteração da antiga população pela nova população

gerada com os cromossomos escolhidos e modificados na fase dos operadores

genéticos, formando uma nova população.

Os critérios com que selecionam os pais não necessariamente têm que ser os

mesmos usados para selecionar os filhos. Para atender o critério de substituição existem

quatro modelos:

• Substituição Imediata: onde os descentes substituem seus progenitores.

• Substituição por Fator Cheio: onde os descentes substituem aqueles da

população que são mais parecidos com eles.

• Substituição por Inserção: os membros da população de criadores são

selecionados para serem eliminados sendo substituídos pelos seus decentes.

• Substituição por Inclusão: onde os descendentes são somados aos

progenitores gerando uma única população, de onde serão selecionados

apenas os melhores.

5.2.1.5 Critério de Parada

Um critério de parada de um algoritmo genético é verificado através de um teste,

e se a condição de parada for satisfatória é parada a execução do algoritmo. Caso não

seja atingido o critério de parada estabelecido, a população retorna às fases do algoritmo

para que se ache a melhor solução.

Outro critério da parada pode ser quando o Algoritmo Genético atingir um dado

número de gerações ou quando a função objetivo chegar a um determinado valor

definido previamente. Outro critério poderá ser a convergência, ou seja, quando não

ocorrer melhoramento significativo no cromossomo de maior aptidão por um dado

numero de gerações, o processamento pára.

Page 30: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

30

5.2.2 GRASP

A metaheurística GRASP [15],[16],[17] (Greedy Randomized Adaptive Search

Procedure) é um algoritmo muito aplicado a problemas de otimização combinatória.

Esta metaheurística consiste em criar uma solução inicial construtiva, onde uma solução

viável para o problema, e depois efetuar uma busca local para melhorar a qualidade da

solução. Seu diferencial para outros métodos está na geração dessa solução inicial,

baseada nas três primeiras iniciais de sua sigla em inglês: gulosa (Greedy), aleatória

(Randomized) e adaptativa (Adaptive).

Algoritmos GRASP são ditos construtivos por privilegiar a geração de uma

solução inicial de melhor qualidade para utilizar a busca local apenas para pequenas

melhorias.

A estratégia de construção de uma solução no GRASP consiste na definição de

um critério de avaliação dos elementos que podem ser inseridos em um conjunto que, ao

final do processo, será uma solução para o problema de otimização que se pretende

resolver. Esse critério adapta-se à solução já construída, de forma que a valorização dos

elementos muda durante a construção da solução. Entretanto, esse critério não é tomado

como referência absoluta para a decisão do próximo elemento a ser inserido, havendo

uma escolha aleatória entre os melhores elementos a cada iteração.

A melhor solução obtida ao final da execução do GRASP é a solução final. A

Figura 17 mostra um pseudocódigo para o GRASP.

Figura 17. Pseudocódigo do procedimento GRASP

5.2.2.1 Fase de Construção

A fase de construção do GRASP é também iterativa, onde uma solução é

construída elemento a elemento. Cada inserção de um novo elemento é feita através da

Page 31: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

31

escolha aleatória em uma lista restrita de candidatos (LRC). Considere para a construção

da LRC que o problema aqui tratado é de maximização de uma função f. A LRC é

composta de elementos candidatos à solução, avaliados de acordo com o benefício

associado a sua inclusão na solução parcial através de uma função gulosa g. Os

elementos participantes da LRC podem ser escolhidos através de duas formas: pelo

número de elementos ou pela qualidade dos elementos [18].

Na primeira forma, os elementos candidatos são ordenados em ordem

decrescente de benefício segundo a função g e os p primeiros elementos são incluídos

na LRC. O valor de p é definido como p = 1 + a (a – 1), onde a é número total de

candidatos (a é um dado de entrada que tem valores definidos no intervalo [0,1]). Note

que, se a = 0 um algoritmo totalmente guloso é executado, já que só é possível a

escolha de um único elemento a ser inserido na solução. Por outro lado, se a = 1, a lista

conterá todos os possíveis candidatos, o que resultará em um algoritmo aleatório.

Na segunda forma, considerando um problema de maximização, emin

= min{g(e)} o menor incremento a solução parcial de acordo com g e emax

= max{g(e)}, o maior incremento, a LRC será constituída dos elementos candidatos à

solução cujo valor retornado pela função g esteja no intervalo [(1 – a)(emin – emax) +

emax , emax].

Como já citado, a é um valor definido no intervalo [0,1]. Neste caso, se a = 1,

estará sendo executado um algoritmo absolutamente guloso, já que somente elementos

de maior incremento emax podem ser inseridos na solução e se a = 0, a lista conterá

todos os possíveis candidatos, o que resultará em um algoritmo aleatório.

Portanto é perceptível que a escolha do valor de a é um ponto importante no

desempenho da metaheurística GRASP. A influência desta escolha na qualidade da

solução construída é estudada em [18]. Na Figura 18 é mostrado o pseudocódigo da

rotina de construção de uma solução.

Page 32: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

32

Figura 18. Pseudocódigo da fase de construção.

5.2.2.2 Fase de Busca Local

A busca local é uma tentativa de melhoria da solução obtida na fase de

construção (Solução). Nesta fase, percorre-se a vizinhança da solução corrente buscando

uma solução de melhor qualidade. Por exemplo, em um problema onde o objetivo é a

maximização de uma função f, entende-se que uma solução t é a melhor solução se f (t)

> f (Solução). Se não existir uma melhor solução na vizinhança, a solução corrente é

considerada um ótimo local. A busca termina quando um ótimo local for atingido. O

pseudocódigo da busca local é apresentado na Figura 19.

Figura 19. Pseudocódigo da fase de busca local.

5.2.2.3 Critério de Parada

O critério de parada do algoritmo é normalmente dado por um valor N de

iterações indicado pelo usuário. Este valor corresponde à quantidade de soluções

factíveis encontradas pela fase construtiva em que foram aplicadas a busca local. Dentre

as soluções geradas é escolhida aquela de melhor resultado gerou.

Page 33: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

33

5.2.3 Outras Metaheurísticas

Algumas das outras metaheurísticas existentes na literatura serão apresentadas a

seguir:

5.2.3.1 Multi-Start

Esta é uma metaheurística que consiste em fazer amostragens do espaço de

soluções, aplicando às soluções procedimentos de refinamento [16].

As amostras normalmente são obtidas aleatoriamente, a fim de gerar amostras

bem diversificadas com o intuito de escapar das soluções ótimas locais.

Como critério de parada neste método, normalmente é utilizado um tempo

máximo de execução ou um número N de iterações que se considere suficiente.

Este método tem como principal vantagem a sua simplicidade de implementação.

5.2.3.2 Simulated Annealing

Uma das técnicas mais populares de busca local é a chamada Simulated

Annealing [15],[16], que é uma analogia à técnica utilizada na termodinâmica, ao

simular o resfriamento de um conjunto de átomos aquecidos, operação conhecida como

recozimento.

Esta técnica é inicializada a partir de uma solução inicial qualquer, que pode ser

obtida aleatoriamente. Em seguida, o procedimento principal consiste de um loop que

gera aleatoriamente, em cada uma das iterações, um único vizinho s’ da solução corrente

s.

Considerando esta técnica para um problema de minimização, sendo ∆ a variação

de valor da função objetivo ao mover-se para uma solução vizinha candidata, ou seja,

∆= *�+,� − *�+�.

Se ∆ < 0 o movimento é aceito e a solução vizinha passa a ser a nova solução

corrente. Caso ∆ ≥ 0 a solução pode também ser aceita, mas com uma probabilidade

dada por ./∆0, onde T é um parâmetro da função que regula a probabilidade de se aceitar

soluções de pior custo chamado temperatura. Esta probabilidade de aceitar movimentos

de pior custo é utilizada a fim de escapar dos ótimos locais.

A temperatura T é reduzida gradativamente quando o número de iterações

aumenta para diminuir a aceitação de movimentos de piora conforme o algoritmo

evolui.

Page 34: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

34

A Figura 6 mostra a relação entre temperatura e a probabilidade de aceitação de

um movimento, onde se pode claramente notar que quanto menor for a temperatura,

menor é a probabilidade de aceitar o movimento, até que quando a temperatura fica

próxima a zero a aceitação de novos movimentos se torna praticamente nula também.

Sendo assim, o critério de parada do algoritmo é dado pela sua aproximação da

temperatura ao valor 0.

Figura 20. Relação entre temperatura e aceitação de movimentos

5.2.3.3 Busca Tabu

O Busca Tabu [14],[15],[16], é um método de busca local que explora as

soluções movendo-se de um vizinho para o seu melhor vizinho.

Esta técnica, juntamente com uma estrutura de memória para armazenar as

soluções geradas possibilita escapar dos ótimos locais.

O membro s’ de uma vizinhança V com melhor valor nessa região segundo a

função f(.) torna-se a nova solução corrente mesmo que s’ seja pior que s, isto é, que

f(s’) > f(s) para um problema de minimização.

O critério de escolha do melhor vizinho é utilizado para escapar de um ótimo

local. Porém, isto pode fazer com que o algoritmo entre em um processo de ciclagem,

ou seja, acabe sempre gerando a mesma solução.

Page 35: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

35

Para evitar este problema, foi criada uma lista chamada “Tabu”, que é uma lista

que contém movimentos proibidos. Ela é uma lista que contém os movimentos reversos

aos últimos |T| movimentos realizados, e é uma fila de tamanho fixo, que quando cheia,

ao inserir um novo elemento, o mais antigo é retirado da lista, podendo novamente ser

escolhido.

A lista Tabu, embora reduza significativamente o risco de ciclagem, por não

deixar ser feita a escolha de uma mesma solução por N iterações, ela introduz um novo

problema ao algoritmo, que ao proibir os movimentos da lista, podem também proibir

que o algoritmo passe por novos caminhos que poderiam levar a uma melhor escolha.

Para contornar este problema inserido pela lista Tabu, é utilizada uma função de

aspiração, que em determinadas circunstâncias permite a remoção do movimento da

lista Tabu. Para cada movimento v a função de aspiração retorna um valor A(v), que

representa o valor aspirado pelo algoritmo.

Um exemplo de utilização da função de aspiração é a permissão de movimentos

Tabu apenas se ele conduzir a um vizinho melhor que o melhor vizinho encontrado até o

momento.

O critério de parada deste algoritmo é normalmente dado ao atingir determinado

número de iterações.

5.2.3.4 Colônia de Formigas

Esta técnica [15], [16] tem por objetivo simular o comportamento de uma

colônia de formigas, que cooperam entre si para resolver um problema de otimização

por meio de comunicação muito simples.

No comportamento das formigas, ao deslocarem-se, elas deixam um rastro de

uma substância chamada feromônio, que é usada para se comunicarem quimicamente.

Na computação, se considera um conjunto de m formigas, cada uma localizada

em diferentes áreas de interesse (no nosso caso coeficientes), que se move de um ponto

para outro. O algoritmo executa N iterações, onde N é o número total de pontos. Em

cada iteração do algoritmo, m formigas constroem uma solução em N. Estando em um

ponto i, a formiga faz uma escolha probabilística do próximo ponto j e o arco (i, j) é

adicionado à solução.

A quantidade de feromônios depositada no arco (i,j), representa a atratividade de

escolher este caminho. As formigas depositam uma quantidade de feromônios

proporcional à qualidade da solução produzida. Sendo assim, quanto menor for o custo

Page 36: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

36

do caminho percorrido, maior será a quantidade de feromônio depositado sobre seus

arcos, o que ajuda a dirigir a busca para soluções satisfatórias.

Para não repetir caminhos as formigas possuem um esquema de memória

baseado no mecanismo de Busca Tabu, o que evita que a formiga passe duas vezes no

mesmo caminho em uma mesma rota.

A tabela de decisão 12 = [124���]|78| do nó i é obtida pela composição dos

valores locais de feromônios com os valores heurísticos locais, como mostra a Equação

8.

924��� =[&8:���];[<8:]=

∑ [&8:���]?[<8:]=@A8

∀CϵN� (8)

Onde:

F24(t) é a quantidade de feromônio no arco (i,j) na iteração t.

G24 = �

�8: é o valor heurístico, "24 é o peso do arco (i, j).

N� é o conjunto de nós vizinhos ao nó i;

H e J são os parâmetros que controlam o peso relativo entre o feromônio e a

distância entre os dois pontos. Assim, um alto valor de H significa que o valor do

feromônio é muito importante, e deste modo, as formigas tendem a escolher caminhos

pelos quais outras formigas já passaram. E se o valor de J for muito alto, a formiga

tende a eleger a cidade mais próxima.

Page 37: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

37

6 RESULTADOS

Nesta seção são apresentados os resultados obtidos com a utilização dos

algoritmos baseados em heurísticas que foram descritos anteriormente. Estes algoritmos

foram aplicados para a redução da distancia de Hamming entre coeficientes

consecutivos, onde o distancia de Hamming representa os bits que diferem entre duas

palavras consecutivas. Os coeficientes dos filtros foram gerados a partir da ferramenta

MATLAB utilizando algoritmo de Remez. Foram utilizados os mesmos filtros FIR

apresentados em [10]. As cinco colunas da Tabela 7 apresentam as especificações do

filtro, onde Filter é apenas um identificador do filtro, passband e stopband são

freqüências normalizadas, #tap é o numero de coeficientes de cada filtro e width é o

número de bits utilizado para representação das palavras de cada coeficiente.

Tabela 7. Especificações dos Filtros FIR Filter passband stopband #tap width

1 0.10 0.25 27 10

2 0.15 0.25 18 12

3 0.10 0.15 25 14

4 0.15 0.25 29 14

5 0.10 0.15 48 16

6 0.15 0.20 29 14

7 0.15 0.20 49 16

8 0.10 0.12 49 16

9 0.10 0.12 60 18

10 0.24 0.25 53 12

11 0.20 0.25 36 8

12 0.20 0.25 36 12

Com a finalidade de incluir os dois algoritmos baseados em heurísticas e as

codificações utilizadas neste trabalho, e gerar a ordenação e particionamento dos

coeficientes automaticamente, foi implementada uma ferramenta. Esta ferramenta

recebe como entrada os coeficientes de filtros FIR (em decimal ou em binário) e estes

são ordenados e/ou particionados de acordo com a técnica selecionada e a codificação

selecionada. A saída da ferramenta é a distância de Hamming dos coeficientes gerada

pela melhor ordenação alcançada pelos algoritmos heurísticos. A Figura 21 mostra a

interface da ferramenta proposta.

Page 38: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

38

Figura 21. Ferramenta automática para ordenação e particionamento de coeficientes

6.1 Resultados Obtidos com os Coeficientes Originais

A Tabela 8 mostra os resultados que foram obtidos, em termos do número de

transições, dos coeficientes originais e depois utilizando as heurísticas Bellmore e

Nemhauser e Vizinho Mais Próximo para a ordenação e o particionamento dos

coeficientes. O particionamento de coeficientes divide os coeficientes em duas metades

(como um filtro FIR semi-paralelo é implementado, como mostrado anteriormente na

Figura 9).

Tabela 8. Número de transições dos coeficientes originais

Filtro

Número de transições entre os coeficientes

(distância de Hamming)

Coeficientes

Originais

Bellmore e Nemhauser Vizinho mais Próximo

Ordenação/

Particionamento

Ordenação/

Particionamento

1 85 53/52 56/53

2 67 44/42 47/45

3 102 71/69 74/71

4 139 79/76 81/78

5 249 149/146 157/155

6 150 89/87 93/92

7 276 147/144 152/151

8 294 177/174 182/179

9 398 231/228 242/239

10 204 95/93 98/96

11 56 33/32 34/33

12 137 83/81 87/86

Page 39: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

39

Como pode ser observado na Tabela 4, apesar das duas aplicações de heurísticas

reduzirem significativamente o número de transições dos coeficientes, a heurística de

Bellmore e Nemhauser se mostrou mais eficiente para todos os filtros testados. Isto

ocorre porque este algoritmo faz uma busca mais ampla procurando por melhores

vizinhos de dois coeficientes distintos a fim de inserir apenas um. Como também pode

ser observado na Tabela 4 o particionamento dos coeficientes também implicou em uma

redução no número de transições em todos os filtros, porque a busca pela melhor

ordenação ocorre em um específico pequeno grupo de coeficientes. Isto é um importante

problema para a implementação de filtros FIR semi-paralelos, porque estas arquiteturas

podem operar rapidamente (duas amostras processadas por vez) com um reduzido

número de transições entre os coeficientes (provavelmente menor consumo de potência).

6.2 Resultados obtidos através da Codificação

Os resultados obtidos através da codificação dos coeficientes são apresentados

na Tabela 9, onde pode ser observado que o número de transições é reduzido para quase

todos os filtros, após a aplicação da codificação nos coeficientes. Em particular, a

técnica Bus-Invert apresentou os melhores resultados. Na verdade, as codificações Gray

e Hibrido não apresentaram reduções significativas no número de transições dos

coeficientes, devido ao fato destas técnicas serem mais efetivas quando há correlação

entre coeficientes consecutivos. Para o conjunto de coeficientes selecionado, este

aspecto não foi considerado.

Tabela 9. Número de transições dos coeficientes originais e codificados

Filtro

Coeficientes

Originais

Híbrido

Gray

Bus-Invert

1 85 82 82 81

2 67 65 70 64

3 102 122 120 100

4 139 140 145 139

5 249 244 256 246

6 150 135 158 146

7 276 289 279 272

8 294 285 301 276

9 398 403 402 387

10 204 216 202 197

11 56 62 66 51

12 137 147 140 131

Page 40: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

40

Foram realizados testes também com a aplicação dos algoritmos heurísticos nos

coeficientes codificados. Os principais resultados são mostrados na Tabela 10, onde em

vários casos podemos notar que houve ainda maior redução do hamming total, com

relação a apenas aplicação dos métodos heurísticos.

Tabela 10. Número de transições dos coeficientes originais e codificados com a aplicação de Heurísticas

Filtro

Número de transições entre os coeficientes

(distância de Hamming)

Coeficientes

Originais

Bellmore and

Nemhauser

Vizinho mais Próximo

Ordenação/

Particionamento

Ordenação/

Particionamento

Híbrido Gray Bus-Invert Híbrido Gray Bus-Invert

1 85 50/49 58/56 52/51 56/55 60/58 56/55

2 67 47/45 42/39 42/40 51/49 46/44 44/42

3 102 73/71 74/72 75/74 78/74 74/70 80/76

4 139 85/83 93/91 79/76 90/87 95/91 81/78

5 249 146/143 146/143 162/161 150/148 146/144 158/157

6 150 92/90 98/95 95/93 93/91 102/98 100/99

7 276 150/149 159/158 163/160 155/153 158/153 165/161

8 294 180/177 172/169 191/188 186/182 180/177 198/195

9 398 232/229 244/242 251/248 233/228 248/244 257/252

10 204 99/97 108/106 109/108 101/104 114/112 112/111

11 56 35/34 39/38 38/36 36/35 41/39 41/40

12 137 79/77 88/87 82/80 80/78 90/88 87/86

Page 41: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

41

7 TRABALHOS RELACIONADOS São encontrados na literatura alguns trabalhos relacionados que utilizam heurísticas

ou alguma outra técnica algorítmica para reduzir consumo de potência em arquiteturas

de filtros FIR. Em [3], por exemplo, foi proposta a ordenação dos coeficientes afim de

reduzir o consumo de potência nas arquiteturas de filtros FIR. Porém, esta ordenação

gera apenas soluções ótimas, o que limita o algoritmo à geração da ordenação para um

número limitado de coeficientes. Além disso, a sua utilização se limita a apenas filtros

totalmente seqüenciais.

No algoritmo de ordenação de coeficientes apresentado em [4], foi proposta uma

extensão da idéia apresentada em [3], onde a função de custo que determina a melhor

seqüência de coeficientes continua sendo calculada para todas as combinações dos

coeficientes, mas adiciona o particionamento dos coeficientes, o que possibilita a sua

utilização em filtros semi-paralelos. Este algoritmo, para um filtro FIR de 8ª ordem

usado como exemplo em [4], ainda é razoável, pois encontra a solução ótima de forma

exaustiva. Entretanto, para um maior número de coeficientes este algoritmo não se torna

atrativo devido ao tempo necessário para processar o alto número de combinações.

Em [13], também foi realizada a ordenação dos coeficientes em arquiteturas de

filtros FIR para a redução do consumo de potência, e utilizando técnicas heurísticas.

Porém, o foco do trabalho é mostrar a diferença de ganho em redução de consumo de

potência das implementações DF (forma direta) sobre as implementações TDF (forma

direta transposta), onde é mostrado que, em aplicações TDF consegue-se uma redução

de até 34% de consumo de potência, porém ao custo de um overhead em área de 56%.

Por outro lado, na implementação DF, a redução no consumo de potência alcançou uma

redução de apenas 19% mas sem introduzir nenhum overhead. Entretanto, neste trabalho

não é apresentado especificamente qual tipo de heurística foi utilizada para realizar a

ordenação dos coeficientes, são apenas apresentados os resultados.

Em [19], foi proposto um algoritmo que insere perturbações nos coeficientes, onde

os bits de última ordem tem seu valor alterado para 1, e então, o conjunto de

coeficientes é divido em subconjuntos de tamanho t, e em seguida é feita uma média de

todos os bits da posição k de cada subconjunto de coeficientes que está sendo analisada.

Em seguida, todos os bits da posição k, recebem como valor, a média que é calculada no

algoritmo. Porém nem sempre esta substituição pode ser realizada. Existe uma lista de

restrições que indica o que não pode ocorrer, como por exemplo, um coeficiente

Page 42: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

42

simétrico, tem que se manter simétrico durante toda a execução. De acordo com [19],

com a utilização deste algoritmo foi possível obter reduções de até 50% na atividade de

chaveamento dos coeficientes.

Page 43: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

43

8 CONCLUSÕES

Neste trabalho foram implementados dois algoritmos baseados em Heurísticas

chamadas Vizinho Mais Próximo e Bellmore e Nemhauser, para a ordenação e

particionamento de filtros do tipo FIR. Os resultados mostraram que os algoritmos

podem encontrar as funções de melhor custo para a ordenação e particionamento dos

coeficientes. Desta forma, a distância de Hamming entre coeficientes consecutivos pode

ser significativamente reduzida. Uma ferramenta foi proposta para que os algoritmos

heurísticos possam ser aplicados de tal forma que a geração da melhor ordenação e do

melhor particionamento dos coeficientes possam ser geradas automaticamente.

A ferramenta automática também está apta a aplicar algumas técnicas de

codificação de coeficientes. Em particular, as codificações Gray, Hibrido e Bus-Invert

foram usadas com o propósito de reduzir o número de transições dos coeficientes. Os

resultados mostraram que a codificação Bus-Invert pode ser eficiente na redução do

número de transições quando comparado com os coeficientes originais. Depois de

aplicar a técnica de codificação seguida do algoritmo baseado em heurística, pode ser

observado que em muitos casos foi possível obter resultados melhores do que com

apenas a aplicação de heurísticas.

Como trabalho futuro, pretende-se fazer a implementação em ASIC

(Application-Specific Integrated Circuit) dos filtros com coeficientes originais e

ordenados (para filtros FIR sequenciais) e particionados (para filtros FIR semi-

paralelos) a fim de analisar o impacto na redução de potência dos filtros com a redução

do número de transições dos coeficientes. Também se tem por objetivo, a

implementação de outros algoritmos baseados em metaheurísticas.

Page 44: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

44

REFERÊNCIAS

[1] M. Mehendale, S. Sherlekar, G. Venkatesh. Low Power Realization of FIR Filters on

Programmable DSP’ s. IEEE Transactions on Very Large Scale Integration (VLSI)

Systems, 6(4):546-553. December 1998.

[2] A. Erdogan and T. Arslan. High Throughput FIR Filter Design for Low Power SOC

Applications. In: 13th Annual IEEE International ASIC/SOC Conference, pp. 21-24.

2000.

[3] M. Mehendale, S. Sherlekar, G. Venkatesh. Techniques for Low Power Realization

of FIR Filters. In: Asia and South Pacific Design Automation Conference, ASPDAC,

1995. Proceedings… New York: ACM, 1995. p.447-450.

[4] E. Costa, J. Monteiro , and S. Bampi. Gray Encoded Arithmetic Operators Applied

to FFT and FIR Dedicated Datapaths. In: 11th IEEE/IFIP International Conference on

Very Large Scale Integration. VLSI-SoC. 2003.

[5] Ansari, Nirwan and Hou, E. Computational Intelligence for Optimization. Kluwer

Academic Publishers, 1997.

[6] Reeves, C.R. Modern Heuristic Techniques for Combinatorial Problems. Blackwell

Scientif Publications, 1993.

[7] M. Stan; W. Burleson. Bus-Invert Coding for Low Power I/O. IEEE Transactions on

Very Large Scale Integration (VLSI) Systems, New York, 1995, P. 49-58.

[8] A. Chandrakasan and R. Brodersen. Low Power Digial CMOS Design. Kluwer

Academic Publishers. 1995.

[9] M. Stan and W. Burleson. Low-Power Encodings for Global Communication in

CMOS VLSI. IEEE Transactions on VLSI Systems. March 1997.

[10] E. Costa, P. Flores, and J. Monteiro. Maximal Sharing of Partial Terms in MCM

under Minimal Signed Digit Representation. In: European Conference on Circuit Theory

and Design. pp. 221-224. 2005.

[11] E. Costa, L. Carro, S. Bampi. Avaliação de Potência em Circuitos CMOS Digitais.

Trabalho Individual de Pesquisa (Doutorado em Ciência da Computação), UFRGS.

1999.

[12] A. Dickson, S. Denker. Adiabatic Dynamic Logic. IEEE Journal of Solid-State

Circuits, p. 311 – 315. 1995.

[13] A. T. Erdogan, T. Arslan. Low Power FIR Filter Implementations Based on

Page 45: Aplicação de Algoritmos Heurísticos na Ordenação e ...ppginf.ucpel.tche.br/TI-arquivos/2009/PPGINF-UCPel-TI-2009-2-002.pdf · natureza deste tipo de algoritmo, ... Um dos principais

45

Coefficient Ordering Algorithm. IEEE Transactions on Very Large Scale Integration

(VLSI) Systems. 2004.

[14] Glover, F., Laguna, M. & Taillard, E. Tabu Search. Annals of Operations Research,

v.41, J.C.Baltzer,1993

[15] Glover, F. and Kochenberger, G. Iterated Local Search. In: Handbook of

Metaheuristics. Kluwer Academic Publishers, 2003

[16] Ribeiro, C.C. Metaheuristics and Applications. Advanced School on Artificial

Intelligence. Estoril, Portugal, 1996

[17] Nascimento, M.C.V. Uma heurística GRASP para o problema de dimensionamento

de lotes com múltiplas plantas, Dissertação de Mestrado, 2007.

[18] Resende, M. & Ribeiro, C. Greedy randomized adaptive search procedures

(GRASP). In: Handbook of Metaheuristics [edited by F. Glover and G. Kochenberger],

Kluwer Academic Publishers, 219-249, 2002

[19] Kasturi, N. Power Reducing Algorithms in FIR Filters (Dissertação de mestrado,

MIT), 1997.

[20] Pacheco, M. A. C. Algoritmos Genéticos: princípios e aplicações, PUC-RJ (Notas

de aula), 2008.