UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA"

Transcrição

1 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

2 SUMÁRIO LISTA DE FIGURAS... 4 LISTA DE TABELAS... 5 LISTA DE ABREVIATURAS E SIGLAS... 6 RESUMO... 7 ABSTRACT Introdução Consumo de Potência em Circuitos CMOS Consumo de Potência Dinâmica Codificação para Baixo Consumo de Potência Codificação Bus-Invert Codificação Gray Codificação Híbrida FILTROS DE RESPOSTA FINITA AO IMPULSO - FIR Características Tipos de Filtros Heurísticas Heurísticas Construtivas Heurística do Vizinho mais Próximo Heurística de Bellmore e Nemhauser Metaheurísticas Algoritmos Genéticos Representação Decodificação Avaliação da População Operadores Genéticos Substituição da população Critério de Parada GRASP Fase de Construção Fase de Busca Local Critério de Parada Outras Metaheurísticas Multi-Start Simulated Annealing Busca Tabu Colônia de Formigas Resultados Resultados Obtidos com os Coeficientes Originais Resultados obtidos através da Codificação Trabalhos Relacionados

3 8 Conclusões Referências

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 Figura 19. Pseudocódigo da fase de busca local Figura 20. Relação entre temperatura e aceitação de movimentos...34 Figura 21. Ferramenta automática para ordenação e particionamento de coeficientes

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

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 6

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. 7

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. 8

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 9

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. 10

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 (P din ) em uma transição na saída de uma porta carregada por um capacitor C L é 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 = C AV = afc V (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]. 11

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) = 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. de saída, = = = Para a transição na saída do circuito, a energia armazenada no capacitor de carga E cap é dada pela Equação 5. E cap = T T vdd i Pcap t) dt = V L( t) dt = CLVoutdVout = out (3) (4) 1 2 ( CLVdd (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 V 0 dd 1 energia armazenada no capacitor ( 2 C na saída, nenhuma carga é drenada da fonte de alimentação e a V 2 L dd ) é dissipada na rede NMOS pull-down. A Figura 2 mostra que a componente dinâmica normalizada é linearmente proporcional à capacitância de carga C e a extrapolação para C = 0 L L é somente 12

13 dependente dos fatores parasitas da porta, de acordo com a Equação 4 [11]. Deste modo, a potência dinâmica ( P din) pode ser macro modelada, para um projeto baseado em células, de acordo com a Equação 6, onde carga extrínseca da porta e CL é a capacitância de Ci é a carga intrínseca para uma célula lógica dada. 1 2 P din = afvdd ( Ci + CL ) (6) 2 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 ( T 0ns) até uma variação mais lenta na entrada T=2ns (isto é, entrada T in = 0,4ns / V para V dd = 5V ), 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 13

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 14

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 15

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 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 16

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 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 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. N 1 i= 0 Y [ n] = H[ i] X [ n i] (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 17

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. Figura 7. Arquitetura do Figura Filtro FIR 5. totalmente paralelo 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. 18

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 19

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 20

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

22 Figura 13. Filtro Passa Faixa Figura 14. Filtro Rejeita faixa 22

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 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 E E E E E E Aplicando a heurística do Vizinho mais Próximo aos elementos da Tabela 2, temse então como ordem de menor custo encontrada ([E1] [E3] [E4] [E5] [E6] [E2]) através 23

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) = 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 24

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) = 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. 25

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. Tabela 3. A analogia entre o sistema natural e os algoritmos genéticos é apresentada na Tabela 3. Natureza e Algoritmos Genéticos Natureza Algoritmos Genéticos Cromossomo Gene Alelo Loco Genótipo Fenótipo Indivíduo Geração Palavra binária, vetor, etc Característica do Problema Valor da característica Posição da palavra, vetor, etc Estrutura Estrutura submetida ao problema Soluçã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. 26

27 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 Números Reais Permutação de Símbolos Símbolos Repetidos Numéricos, Inteiros Numéricos Baseados em Ordem Grupamento 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 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, 27

28 o que implica que ele está mais apto que C2. Tabela 6. Avaliação de aptidão Cromossomo x f(x) C C 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 28

29 desta aplicação pode ser visto na Figura 16. Figura 16. Exemplo de aplicação do operador de mutação 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 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. 29

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 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 30

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. 31

32 Figura 18. Pseudocódigo da fase de construção 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 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. 32

33 5.2.3 Outras Metaheurísticas Algumas das outras metaheurísticas existentes na literatura serão apresentadas a seguir: 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 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, 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. 33

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 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. 34

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 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 35

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 =[ ] 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. Onde: = [ ] [ ] [ ] [ ] ϵn (8) (t) é a quantidade de feromônio no arco (i,j) na iteração t. = é o valor heurístico, é o peso do arco (i, j). N é o conjunto de nós vizinhos ao nó i; e 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 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 for muito alto, a formiga tende a eleger a cidade mais próxima. 36

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 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. 37

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br

Leia mais

A Otimização Colônia de Formigas

A Otimização Colônia de Formigas A Otimização Colônia de Formigas Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN 22/04/2008 Índice A Inspiração Biológica O Ant System Aplicado ao PCV O Ant System Aplicado

Leia mais

1 Problemas de transmissão

1 Problemas de transmissão 1 Problemas de transmissão O sinal recebido pelo receptor pode diferir do sinal transmitido. No caso analógico há degradação da qualidade do sinal. No caso digital ocorrem erros de bit. Essas diferenças

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro AULA 2: Transmissão de Dados 1.

Leia mais

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH

DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH UNIVERSIDADE FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA ELÉTRICA DECODIFICADOR DE DISPLAY DE 7 SEGMENTOS COM LATCH Projeto para a matéria TE130 Projeto de Circuitos Integrados Digitais, ministrada pelo

Leia mais

Inteligência Computacional Aplicada a Engenharia de Software

Inteligência Computacional Aplicada a Engenharia de Software Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br Introdução Em alguns ambientes industriais, pode ser necessário priorizar

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Filtros Digitais. Capítulo 6.0 PDS Prof. César Janeczko (2 o semestre 2009) 10 A

Filtros Digitais. Capítulo 6.0 PDS Prof. César Janeczko (2 o semestre 2009) 10 A Capítulo 6.0 PDS Prof. César Janeczko (2 o semestre 2009) Filtros Digitais Filtros digitais são usados em geral para dois propósitos: 1 o separação de sinais que foram combinados, por exemplo, modulados;

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

1. Sistemas de numeração

1. Sistemas de numeração 1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

Leia mais

Filtros de sinais. Conhecendo os filtros de sinais.

Filtros de sinais. Conhecendo os filtros de sinais. Filtros de sinais Nas aulas anteriores estudamos alguns conceitos importantes sobre a produção e propagação das ondas eletromagnéticas, além de analisarmos a constituição de um sistema básico de comunicações.

Leia mais

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO Amanda 5ª Atividade: Codificador e codificação de linha e seu uso em transmissão digital Petrópolis, RJ 2012 Codificador: Um codoficador

Leia mais

1 Transmissão digital em banda base

1 Transmissão digital em banda base 1 Transmissão digital em banda base A transmissão digital oferece algumas vantagens no que diz respeito ao tratamento do sinal, bem como oferecimento de serviços: Sinal pode ser verificado para avaliar

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

CONTROLE DIGITAL DE VOLUME 1.-----------------------------------------------------------------------------

CONTROLE DIGITAL DE VOLUME 1.----------------------------------------------------------------------------- CONTROLE DIGITAL DE VOLUME 1.----------------------------------------------------------------------------- Uma boa gama de aplicações atuais utiliza o controle de volume digital. Não nos referimos apenas

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Caracterização temporal de circuitos: análise de transientes e regime permanente. Condições iniciais e finais e resolução de exercícios.

Caracterização temporal de circuitos: análise de transientes e regime permanente. Condições iniciais e finais e resolução de exercícios. Conteúdo programático: Elementos armazenadores de energia: capacitores e indutores. Revisão de características técnicas e relações V x I. Caracterização de regime permanente. Caracterização temporal de

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

Sinal analógico x sinal digital. Sinal analógico. Exemplos de variações nas grandezas básicas. Grandezas básicas em sinais periódicos

Sinal analógico x sinal digital. Sinal analógico. Exemplos de variações nas grandezas básicas. Grandezas básicas em sinais periódicos Plano Redes de Computadores Transmissão de Informações nálise de Sinais ula 04 Introdução Dados, sinais e transmissão Sinal analógico x sinal digital Sinais analógicos Grandezas básicas Domínio tempo x

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro AULA 6: Switching Uma rede corporativa

Leia mais

Inteligência de Enxame: ACO

Inteligência de Enxame: ACO Inteligência de Enxame: ACO! Otimização colônia de formigas é uma meta-heurística: «baseada em população «inspirada no comportamento forrageiro das formigas.! Muitas espécies de formigas são quase cegas.!

Leia mais

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001 47 5 Redes Neurais O trabalho em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o começo pelo reconhecimento de que o cérebro humano processa informações

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Disciplina: Introdução à Informática Profª Érica Barcelos

Disciplina: Introdução à Informática Profª Érica Barcelos Disciplina: Introdução à Informática Profª Érica Barcelos CAPÍTULO 4 1. ARQUITETURA DO COMPUTADOR- HARDWARE Todos os componentes físicos constituídos de circuitos eletrônicos interligados são chamados

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

Meta-heurísticas. Métodos Heurísticos José António Oliveira zan@dps.uminho.pt. meta-heurísticas

Meta-heurísticas. Métodos Heurísticos José António Oliveira zan@dps.uminho.pt. meta-heurísticas Meta-heurísticas 105 meta-heurísticas Propriedades e Características: são estratégias que guiam o processo de pesquisa; - o objectivo a atingir é a exploração eficiente do espaço de pesquisa de modo a

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

MODULAÇÃO AM E DEMODULADOR DE ENVELOPE

MODULAÇÃO AM E DEMODULADOR DE ENVELOPE 204/ MODULAÇÃO AM E DEMODULADOR DE ENVELOPE 204/ Objetivos de Estudo: Desenvolvimento de um modulador AM e um demodulador, utilizando MatLab. Visualização dos efeitos de modulação e demodulação no domínio

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA 136 ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA FILITTO, Danilo 1 Resumo: Os algoritmos Genéticos inspiram-se no processo de evolução natural e são utilizados para resolver problemas de busca e otimização

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br IA Colônia de Formigas Prof. Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Sumário Introdução O Experimento da Ponte Binária. Ant System Aplicado ao PCV. Elitist Ant System. Introdução Otimização colônia

Leia mais

Universidade Federal do Rio de Janeiro. Princípios de Instrumentação Biomédica. Módulo 4

Universidade Federal do Rio de Janeiro. Princípios de Instrumentação Biomédica. Módulo 4 Universidade Federal do Rio de Janeiro Princípios de Instrumentação Biomédica Módulo 4 Faraday Lenz Henry Weber Maxwell Oersted Conteúdo 4 - Capacitores e Indutores...1 4.1 - Capacitores...1 4.2 - Capacitor

Leia mais

INSTRUMENTAÇÃO INDUSTRIAL 1. INTRODUÇÃO / DEFINIÇÕES

INSTRUMENTAÇÃO INDUSTRIAL 1. INTRODUÇÃO / DEFINIÇÕES 1 INSTRUMENTAÇÃO INDUSTRIAL 1. INTRODUÇÃO / DEFINIÇÕES 1.1 - Instrumentação Importância Medições experimentais ou de laboratório. Medições em produtos comerciais com outra finalidade principal. 1.2 - Transdutores

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1 Carlos Alexandre Mello 1 Modelagem no Domínio da Frequência A equação diferencial de um sistema é convertida em função de transferência, gerando um modelo matemático de um sistema que algebricamente relaciona

Leia mais

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2. Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

4 Arquitetura básica de um analisador de elementos de redes

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

Márcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

5 A Utilização da Técnica do Espaço Nulo e dos Atributos Baseados na Escolha de Coeficientes de Autocorrelações

5 A Utilização da Técnica do Espaço Nulo e dos Atributos Baseados na Escolha de Coeficientes de Autocorrelações 5 A Utilização da Técnica do Espaço Nulo e dos Atributos Baseados na Escolha de Coeficientes de Autocorrelações Este capítulo apresenta uma nova proposta que consiste em empregar os atributos baseados

Leia mais

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento Ramon Pereira Lopes Rangel Silva Oliveira 31 de outubro de 2011 1 Introdução O presente documento refere-se ao relatório

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Multiplexação. Multiplexação. Multiplexação - FDM. Multiplexação - FDM. Multiplexação - FDM. Sistema FDM

Multiplexação. Multiplexação. Multiplexação - FDM. Multiplexação - FDM. Multiplexação - FDM. Sistema FDM Multiplexação É a técnica que permite a transmissão de mais de um sinal em um mesmo meio físico. A capacidade de transmissão do meio físico é dividida em fatias (canais), com a finalidade de transportar

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais

Memórias Prof. Galvez Gonçalves

Memórias Prof. Galvez Gonçalves Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Introdução Todos sabemos que existem diferentes tipos de números: fraccionários, inteiros positivos e negativos, etc. Torna-se necessária a representação destes dados em sistema

Leia mais

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata

Leia mais

Aula 8 Circuitos Integrados

Aula 8 Circuitos Integrados INTRODUÇÃO À ENGENHRI DE COMPUTÇÃO PONTIFÍCI UNIVERSIDDE CTÓLIC DO RIO GRNDE DO SUL FCULDDE DE ENGENHRI ula Circuitos Integrados Introdução Portas Lógicas em Circuitos Integrados Implementação de Funções

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de Escola Secundária c/3º CEB José Macedo Fragateiro Curso Profissional de Nível Secundário Componente Técnica Disciplina de Sistemas Digitais e Arquitectura de Computadores 29/21 Módulo 1: Sistemas de Numeração

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerenciamento de Memória Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos Sementille, Paula Prata e nas transparências

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Minicurso SBSE 2012:

Minicurso SBSE 2012: Campus de Ilha Solteira Faculdade de Engenharia de Ilha Solteira Departamento de Energia Elétrica Minicurso SBSE 2012: Metaheurísticas em sistemas elétricos de potência: introdução ao estudo e aplicações

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

Tecnologia de faixa para falha

Tecnologia de faixa para falha Tecnologia de faixa para falha Por Tom Bell e John Nankivell Índice 1. Introdução 1 2. Equipamento de teste / processo de teste de PIM existente 2 3. Nova análise de RTF / limitações técnicas 3 4. Fluxograma

Leia mais

:: Telefonia pela Internet

:: Telefonia pela Internet :: Telefonia pela Internet http://www.projetoderedes.com.br/artigos/artigo_telefonia_pela_internet.php José Mauricio Santos Pinheiro em 13/03/2005 O uso da internet para comunicações de voz vem crescendo

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

dv dt Fig.19 Pulso de tensão típico nos terminais do motor

dv dt Fig.19 Pulso de tensão típico nos terminais do motor INFLUÊNCIA DO INVERSOR NO SISTEMA DE ISOLAMENTO DO MOTOR Os inversores de freqüência modernos utilizam transistores (atualmente IGBTs) de potência cujos os chaveamentos (khz) são muito elevados. Para atingirem

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores ARQUITETURA DE COMPUTADORES Sistemas de Numeração 1 Sistemas de Numeração e Conversão de Base Sistema Decimal É o nosso sistema natural. Dígitos 0,1,2,3,4,5,6,7,8 e 9. Números superiores a 9; convencionamos

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

Problema de Otimização Combinatória

Problema de Otimização Combinatória Problema de Otimização Combinatória Otimização é o processo de encontrar e comparar soluções factíveis até que nenhuma solução melhor possa ser encontrada. Essas soluções são ditas boas ou ruins em termos

Leia mais

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS ALGORITMOS GENÉTICOS INTRODUÇÃO São métodos adaptativos que podem ser usados para resolver problemas de busca e otimização. Na natureza a combinação de boas características provenientes de diferentes indivíduos

Leia mais

Quadro de consulta (solicitação do mestre)

Quadro de consulta (solicitação do mestre) Introdução ao protocolo MODBUS padrão RTU O Protocolo MODBUS foi criado no final dos anos 70 para comunicação entre controladores da MODICON. Por ser um dos primeiros protocolos com especificação aberta

Leia mais

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3.1 - Conceitos Básicos Entendemos como algoritmo um conjunto predeterminado e bem definido de regras

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio: ELETRÔNICA DIGITAl I 1 SISTEMAS DE NUMERAÇÃO INTRODUÇÃO A base dos sistemas digitais são os circuitos de chaveamento (switching) nos quais o componente principal é o transistor que, sob o ponto de vista

Leia mais

Erros. Número Aproximado. Erros Absolutos erelativos. Erro Absoluto

Erros. Número Aproximado. Erros Absolutos erelativos. Erro Absoluto Erros Nenhum resultado obtido através de cálculos eletrônicos ou métodos numéricos tem valor se não tivermos conhecimento e controle sobre os possíveis erros envolvidos no processo. A análise dos resultados

Leia mais

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP 1 INTRODUÇÃO Devido ao crescimento da Internet, tanto do ponto de vista do número de usuários como o de serviços oferecidos, e o rápido progresso da tecnologia de comunicação sem fio (wireless), tem se

Leia mais

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1 Introdução à Organização e Arquitetura de Computadores Prof. Leonardo Barreto Campos 1 Sumário Introdução; Evolução dos Computadores; Considerações da Arquitetura de von Neumann; Execução de uma instrução

Leia mais

Capítulo 4 - Roteamento e Roteadores

Capítulo 4 - Roteamento e Roteadores Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou

Leia mais

Manual AGENDA DE BACKUP

Manual AGENDA DE BACKUP Gemelo Backup Online DESKTOP Manual AGENDA DE BACKUP Realiza seus backups de maneira automática. Você só programa os dias e horas em que serão efetuados. A única coisa que você deve fazer é manter seu

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação 36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas

Leia mais

Sistemas de Numeração

Sistemas de Numeração Universidade Tecnológica Federal do Paraná Bacharelado em Ciência da Computação IC3A Introdução à Ciência da Computação Sistemas de Numeração Marcos Silvano O. Almeida Baseado no material do prof. Rogério

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

APLICAÇÕES DA DERIVADA

APLICAÇÕES DA DERIVADA Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,

Leia mais