COMPACTAÇÃO DE DADOS COM DETEÇÃO DE ERROS
|
|
- Stefany Cruz Camelo
- 6 Há anos
- Visualizações:
Transcrição
1 A pesquisa Operacional e os Recursos Renováveis 4 a 7 de novembro de 2003, Natal-RN COMPACTAÇÃO DE DADOS COM DETEÇÃO DE ERROS Paulo E. D. Pinto Universidade Estadual do Rio de Janeiro, RJ, Brasil. pauloedp@ime.uerj.br Fábio Protti IM e NCE, Universidade Federal do Rio de Janeiro, RJ, Brasil. Parcialmente financiado pelo CNPq e FAPERJ. fabiop@nce.ufrj.br Jayme L. Szwarcfiter IM, NCE e COPPE, Universidade Federal do Rio de Janeiro, RJ, Brasil. Parcialmente financiado pelo CNPq e FAPERJ. jayme@cos.ufrj.br Resumo. Hamming [3] propôs, em 1980, as Árvores Hamming Huffman, estruturas para compactação de dados, que integrassem as vantagens da compactação de Huffman com a proteção contra ruídos de Hamming. Essas estruturas teriam a propriedade de detetar erros de 1 bit introduzidos durante a transmissão de dados compactados. Este trabalho amplia essa proposta e discute as Árvores de Deteção Ímpar(ADI), cuja propriedade básica é poder detetar qualquer número ímpar de bits espúrios introduzidos em uma mensagem. É estudado o caso especial de frequências constantes e são caracterizadas todas as ADI ótimas para essa situação, evidenciando-se o baixo preço a pagar, em relação a Huffman, pela ampliação feita. É também discutido, sem detalhar, um algoritmo para o caso de frequências quaisquer. Keywords: Árvores Hamming Huffman, Árvores de Deteção Ímpar. Abstract. Hamming [3] proposed, in 1980, the Hamming Huffman Trees, structures for data compression, which can combine the Huffman encoding with the noise protection of Hamming encoding. Those structures can detect 1 bit-errors introduced during transmission of compressed data. This work extends that proposal and discusses the ODD Detection Tress (ODT), whose basic property is to detect any odd number of wrong bits introduced in a message. It is presented the special case where the frequencies are constant and the Optimum ODT are caracterized for this situation. It is highlighted the low cost for the addition of that feature, related to Huffman. It is also discussed one algorithm to the general case. Keywords: Hamming Huffman Trees, Odd Detection Trees Introdução A compactação de dados é uma área de interesse permanente na computação e, embora já tenha tido bons resultados desde a década de 1950 [4], continua a ter uma grande dinâmica, dado o surgimento de novos enfoques a problemas antigos e a novos problemas [1], especialmente no contexto da Internet, que lida com grandes volumes de dados e onde a compactação é um imperativo econômico [1]. O mais tradicional método de compactação é o método de Huffman, que é muito eficiente, baseado em estatísticas sobre a ocorrência de símbolos ou agregado de símbolos em um conjunto de dados. Este método constrói uma árvore binária para codificação/decodificação de símbolos e cada um destes ocupa uma folha da árvore, sendo sua
2 codificação dada pelo caminho da raiz até a folha, em termos de bits 0 ou 1. Não é de surpreender que se encontre na literatura um grande número de novas propostas e adaptações sobre este método [2]. Uma dessas propostas aparece no excelente livro de Richard Hamming, "Coding and Information Theory" [3]. Hamming é especialmente conhecido por seus estudos sobre métodos de deteção e correção de erros em transmissão de dados. Ele propõe no livro, sem chegar a desenvolver, uma nova estrutura de dados, as Árvores Hamming-Huffman, que integre as vantagens da compactação de dados de Huffman com a deteção de erros, tarefas hoje realizadas em etapas distintas nos processos de transmissão/recepção de dados em redes. O presente trabalho baseia-se nessa idéia, discute a estrutura proposta por Hamming e apresenta e discute uma alternativa, as Árvores de Deteção Ímpar (ADI). As Árvores Hamming Huffman As Árvores Hamming-Huffman (AHH) permitiriam ter-se os benefícios da compactação de Huffman com a proteção contra ruídos de Hamming. A idéia é que a própria codificação de dados contivesse redundâncias que permitissem a deteção de determinados tipos de erro. Na proposta de Hamming, bastante modesta, todos os erros de 1 bit nas codificações, introduzidos durante a transmissão, seriam detetados na recepção. A idéia é equivalente a de proibir certas codificações que, quando presentes na recepção, indicariam o erro. De forma análoga às Árvores de Huffman, as AHH seriam árvores estritamente binárias, contendo as codificações em folhas, mas haveria a introdução de folhas de erro tal que, para cada codificação, todas as trocas de 1 bit levem a folhas de erro, no processo de decodificação. Segue o exemplo apresentado no livro citado, onde supõe-se frequências de ocorrência constantes. A Tabela 1 mostra os dados com suas codificações respectivas e, a Figura 1, a AHH correspondente. Símbolo Codificação a 000 b 0110 c 1010 d 1100 e 1111 Tabela 1: Código Hamming Huffman a b c d Figura 1. Árvore Hamming Huffman e No exemplo mostrado, os prefixos 001, 010, 0111, 100, 1011, 1101 e 1110 são prefixos proibidos e, quando ocorrerem na decodificação, indicam troca de 1 bit em dada codificação. Aparentemente a idéia das AHH não foi explorada, pois não foram encontradas referências na literatura sobre a questão, muito importante, pelo menos do ponto de vista teórico. Este trabalho baseia-se na idéia apresentada, mas mostra uma alternativa, as Árvores de Deteção Ímpar (ADI), que ampliam a proposta inicial, visando detetar não apenas 1, mas todos os erros em número ímpar que tenham sido introduzidos em uma mensagem codificada. Inicialmente vamos caracterizar os Códigos de Deteção Ímpar. Códigos de Deteção Ímpar Seja S um alfabeto finito. Uma codificação para dado elemento s S, c, é uma sequência finita de 0's e 1's associada a s. Cada 0 ou 1 é um bit da codificacão. Os bits de uma codificacão são rotulados 1, 2, 3,..., da esquerda para a direita. Um Código de Deteção Ímpar (CDI) para S é um conjunto P de codificações distintas associadas aos elementos de S, com as seguintes propriedades: 2463
3 a. É um código de prefixos, isto é, nenhuma codificação é prefixo de qualquer outra. Isto é necessário para se evitar ambiguidade na decodificação de mensagens. b. Na recepção e decodificação de uma mensagem, permite a deteção de um número ímpar de bits espúrios (na mensagem codificada). As seguintes propriedades de um CDI são facilmente verificáveis: 1. Em um código CDI, P, para cada par de codificações distintas c i, c j P com c i c j, existe a seguinte propriedade: c i e o segmento inicial de c j, com comprimento c i são diferentes. Isso é decorrência direta do fato d e o Código ser de prefixos. 2. Codificações de mesmo tamanho têm mesma paridade (paridade de uma codificação é a paridade do número de 1's que contém). Isto é necessário para a deteção ímpar. Essas propriedades são necessárias, mas não suficientes para garantir que um código seja CDI. Entretanto, se restringimos a segunda propriedade, adotando apenas codificações com paridade par, elas passam a ser suficientes para garantir que um código seja CDI, conforme o seguinte teorema: Teorema 1: Se, em um código P existirem as seguinte propriedades: a) para cada par de codificações distintas c i, c j P com c i c j, c i e o segmento inicial de c j com tamanho c i são diferentes. b)todas as codificações têm paridade par então P é CDI. Prova: Seja P um código com as propriedades mencionadas. A primeira condição atesta que P é um código de prefixos. A segunda atesta que a mensagem terá, inicialmente, paridade par e que só haverá reconhecimento de um caracter durante a decodificação quando tivermos segmentos de paridade par. Após a troca de um númeroos ímpar de bits espúrios, a mensagem terá sua paridade trocada para ímpar. Então, na decodificação, ainda que alguns segmentos sejam decodificados erradamente, na pior das hipóteses o último segmento terá paridade ímpar e o erro será detetado. Logo, P deteta qualquer número ímpar de bits espúrios na mensagem e, portanto, P é CDI. Dado um código CDI, P, é fácil verificar que podemos encontrar um outro, P', equivalente (também CDI e existindo uma bijeção entre os elementos de P e P', tal que os elementos correspondentes tenham mesmo tamanho). Para encontrar P', basta ordenar as codificações por tamanho e fazer um procedimento em k etapas (k é o número de diferentes tamanhos de codificações), tomando a cada passo as codificações de comprimento d i e, caso as codificações com esse comprimento tenham paridade ímpar, troca-se o bit de ordem d i em todas as codificações com comprimento igual ou superior a d i. Como consequência dessa propriedade, pode-se utilizar apenas CDI com codificações de paridade par. O problema de compactação de dados, que é o de encontrar um CDI ótimo, busca minimizar o tamanho total de uma mensagem e pode ser assim definido: Entrada: Um alfabeto S = {s 1, s 2... s n }, n > 1, e um vetor (f 1, f 2... f n ) de frequências, onde f i é um inteiro não negativo, correspondente à frequência de s i. Saída: Um CDI P para S que minimiza a função objetivo f = Σ f i d i, 1 i n, onde d i é o tamanho da codificação atribuída a s i em P. CDI e Árvores de Deteção Ímpar Quando se trabalha com códigos de prefixo, estes podem ser representados em árvores binárias, o que permite deduzir propriedades dos códigos a partir das propriedades das árvores associadas. Esta associação e o estudo das árvores resultantes são mostrados a seguir, 2464
4 especialmente para se caracterizar os Códigos de Deteção Ímpar Ótimos. Todos os conceitos sobre árvores binárias aquí usados estão alinhados com Szwarcfiter & Markenzon [6]. Cada CDI pode ser representado por uma árvore estritamente binária enraizada, onde existem três tipos de nós: nós internos, folhas de codificação e folhas de erro. As folhas de codificação contêm os símbolos do alfabeto. O caminho da raiz para determinada folha é equivalente à codificação atribuída ao caracter representado por essa folha, onde cada bit 0 corresponde a uma aresta para a esquerda e cada 1 a uma aresta para a direita. Folhas de erro ocorrem sempre como irmãos de folhas de codificação do último nível da árvore e, eventualmente, como irmãos de folhas de codificação de outros níveis ou de nós internos. Um exemplo de uma ADI para 5 caracteres é mostrado nas Tabela 2 e Figura 2. Símbolo Codificação a 00 b 11 a c 011 c d 101 e e 1001 d Tabela 2: Código CDI p/ 5 caracteres Fig 2. ADI para o CDI da Tabela 2 b Denominamos Árvore de Deteção Ímpar tipo I (ADI), para n codificações, a uma árvore estritamente binária com n folhas com paridade par. As folhas com paridade oposta são folhas de erro. Uma Árvore de Deteção Ímpar tipo II (ADII), para n codificações, é uma árvore resultante da troca das subárvores esquerda e direita de uma ADI, o que resulta terem todas suas codificações paridade ímpar. A partir deste ponto passaremos a caracterizar as Árvores de Deteção Ímpar Ótimas, relacionadas aos CDIs ótimos. Uma Árvore de Deteção Ímpar Ótima tipo I, (ADIO), é uma ADI correspondente a um CDI ótimo. Uma Árvore de Deteção Ímpar Ótima tipo II, (ADIIO), é uma ADI resultante da troca das subárvores esquerda e direita de uma ADIO. A figura 2 mostra uma ADIO para 5 símbolos, com frequências constantes. O problema de determinar um CDI ótimo, pode ser reformulado em termos das ADIO. Dados n símbolos com suas frequências respectivas, o problema é encontrar uma ADI que tenha Caminho Externo de Codificações Ponderado(CECP) mínimo (parcela do caminho externo ponderado de uma ADI somente considerando as folhas de codificação). Vamos definir um tipo especial de ADI. Chamamos de ADI Equilibrada uma ADI que, quando temos n > 3, a subárvore esquerda é uma ADI equilibrada contendo n/2 folhas de codificação e, a subárvore direita, uma ADII equilibrada com n/2 codificações. Para n de 1 a 3, ela contém folhas com codificação {0}, {0, 11} e {0, 11, 101}, respectivamente. Uma ADII Equilibrada é uma ADII para uma ADI equilibrada. A ADI da Figura 2 é uma ADI equilibrada para 5 codificações. Inicialmente trataremos o caso especial de ADIO para frequências constantes. ADIO para codificações com frequências constantes Um princípio básico para a determinação de ADIO com frequências iguais, n codificações, é que, neste caso, as subárvores também apresentam a propriedade de otimalidade, apenas existindo pequenas especificidades a considerar. Isto permite desenvolver um algoritmo de Programação Dinâmica eficiente para o problema, baseado na recorrência do Teorema 2, a seguir. 2465
5 Teorema 2: Seja S(n) o CEC de uma ADIO para n codificações. Então S(n) = = 1, para n = 1; =3, para n = 2; = n + Min{S(n-1), Min{(S(i)+S(n-i)}}, 1< i < (n-1), para n > 2 Prova: Os resultados para n = 1 e 2 são facilmente verificáveis, correspondendo aos códigos {0} e {0, 11}, respectivamente. Para n > 2, a minimização mais externa refere-se a dois casos: a) a subárvore esquerda tem 1 codificação. Neste caso, a subárvore direita tem CEC equivalente ao da ADIO para (n-1) codificações, pois esta subárvore tem que ser ótima. Temos: S(n) = 1 + (n-1) + S(n-1) = n + S(n-1) já que, à 2466
6 n S K min K max n S K min K max n S K min K max n S K min K max Tabela 3: Dados de ADIO para frequências constantes O primeiro fato que pode ser comprovado é o de que as ADI equilibradas são uma solução ótima para a situação de frequências iguais. Vamos inicialmente mostrar uma fórmula fechada para S(n) quando a ADI é equilibrada e depois evidenciar que esse resultado vale para qualquer tipo de ADIO. No próximo teorema e no restante do trabalho, log n sempre refere-se à base 2. Teorema 3: Numa ADI equilibrada para n codificações, sendo S(n) o CEC, temos: S(n) = n.( log n/3 + 3) log n/3, se n > 2. Prova: A prova será feita por indução em n. Para n = 3, 4 e 5, os resultados da aplicação da fórmula coincidem com os da Tabela 3. Temos que analisar os casos em que n > 5. Hipótese de indução: A fórmula está correta para valores 2 < j < n. Passo de indução: Aplicando a definição e a hipótese de indução, temos: S(n) = n + S( n/2 )+ S( n/2 ) = n + n/2 ( log n/2 /3 + 3) log n/2 /3 log n/2 /3 + n/2 ( log n/2 /3 + 3) A análise pode se dividir em 2 casos: a) n é da forma n = 3.2 q Neste caso: log n/3 = q; log n/2 /3 = q-1; log n/2 /3 = q-2; n/2 = 3.2 q-2 ; Então: S(n) = n + n/2 (q ) q n/2 (q ) q - 1 = = n + ( n/2 + n/2 )(q )-3.2 q q q - 1 = n.(q + 3) q = n.( log n/3 + 3) log n/3. Ou seja, o resultado também vale para n. b) n não é da forma n = 3.2 q Neste caso: log n/3 = q; log n/2 /3 = q-1; log n/2 /3 = q-1; Então: S(n) = n + n/2 (q ) q n/2 (q ) q - 1 = = n + ( n/2 + n/2 )(q ) q q - 1 = n.(q + 3) q log n/3 = n.( log n/3 + 3) Ou seja, o resultado também vale para n. Em todos os casos, o resultado continua valendo para n, o que completa a prova por indução. Os dois próximos teoremas caracterizam totalmente as ADIO, no caso de frequências constantes. Nas caracterizações supõe-se que o número de folhas de codificação da subárvore esquerda nunca seja superior ao de folhas de codificação da subárvore direita. Entretanto, sempre que esse número for superior a 1, a ADI simétrica também é uma árvore ótima. Teorema 4: ADI equilibradas são ADIO, para freqüências constantes. A prova deste teorema é feita por indução no número de codificações, usando-se a recorrência básica para uma ADIO e a fórmula para o CEC de uma ADI Equilibrada. Mostra-se que a função para o CEC da ADIO, no caso de freqüências constantes, e considerando-se que suas subárvores sejam ADI Equilibradas, é uma função não crescente para i no intervalo [3, n/2 ], onde i é o número de codificações da subárvore esquerda. Consequentemente, a função é 2467
7 mínima para n/2, o que implica ser a árvore uma ADIO, finalizando, assim, a indução. Consequentemente, a solução da recorrência do Teorema 2 é dada pela fórmula fechada para uma ADI equilibrada. Teorema 5: Em uma ADIO para n codificações, n > 3, freqüências constantes, o número de folhas de codificação da subárvore esquerda varia entre i min e n/2, onde i min = 3.2 log n/3-1, quando n 9.2 log n/3-1. = n log n/3, quando n > 9.2 log n/3-1. A prova deste teorema decorre da prova do teorema anterior, verificando-se a partir de quais valores a mesma função usada na prova permanece constante e igual ao valor para n/2, o que possibilita determinar as expressões acima. Podemos ilustrar esses resultados apresentando a Tabela 4, para uma faixa de valores de 1 a 30, que mostra as configurações ótimas de número de codificações nas subárvores esquerda/direita de uma ADIO, para cada n. Note-se que, nesta tabela, sempre se colocou o número de codificações na subárvore esquerda como não superior ao da direita. Para a maioria dos casos é possível, também, a configuração simétrica. n Configurações ótimas n Configurações ótimas n Configurações ótimas 1 1/0 11 5/6 21 9/12 10/11 2 1/1 12 6/ /12 11/11 3 1/2 13 6/ /12 4 1/3 2/2 14 6/8 7/ /12 5 2/3 15 6/9 7/ /13 6 3/3 16 6/10 7/9 8/ /14 13/13 7 3/4 17 6/11 7/10 8/ /15 13/14 8 3/5 4/4 18 6/12 7/11 8/10 9/ /16 13/15 14/14 9 3/6 4/5 19 7/12 8/11 9/ /17 13/16 14/ /6 5/5 20 8/12 9/11 10/ /18 13/17 14/16 15/15 Tabela 4: Configurações ótimas para ADIO com frequências constantes Pode-se verificar, na tabela acima, que, para os números da forma n = 3.2 q, 3.2 q +1, 3.2 q -1, q > 0 inteiro, há apenas uma configuração ótima. Isto também ocorre para n = 1, 2 e 3 codificações. A seguir vamos caracterizar as profundidades máxima e mínima de uma ADIO para frequências constantes, n codificações. É bastante intuitivo que as ADIO de profundidade mínima e máxima podem ser obtidas a partir da seguinte idéia: a) As ADIO de profundidade mínima são construídas, de forma recorrente, utilizando subárvores esquerdas com o número máximo de codificações não superior ao da direita, o que corresponde às ADI equilibradas. b) As ADIO de profundidade máxima são construídas, também de forma recorrente, utilizando subárvores esquerdas com o mínimo de codificações. Sendo D min (n) a profundidade mínima de uma ADIO para frequências constantes, n codificações e D max (n) a profundidade máxima, temos as seguintes recorrências: a) D min (n)= 1, se n=1 1+ D min ( n/2 ), se n > 1. b) D max (n)= 1, se n = 1 1+ D max (n-n min ), se n > 1, n min = número mínimo de codificações na subárvore esquerda. A Tabela 5 foi construída com as recorrências acima e os dados da Tabela 3, para os valores de 1 a
8 n D min D max n D min D max n D min D max n D min D max Tabela 5: Profundidades mínima e máxima para ADIO com frequências constantes A seguir serão apresentadas fórmulas fechadas para D min e D max. Teorema 6: D min (n) = n, se n = 1; log n + 1, se n > 2. Prova: A prova será feita por indução em n. Usando a recorrência, obtemos: D min (1) = 1, D min (2) = 2, D min (3) = 3, o que concorda com os dados anteriores. Hipótese de indução: Para valores i inferiores a n e superiores a 1, temos D min (i) = log i + 1. Passo de indução: Então D min (n) = 1 + D min ( n/2 ) = 1 + log n/2 + 1, pois a árvore de profundidade mínima também tem que ter como subárvore direita uma subárvore de profundidade mínima e o valor usado, n/2, é o menor valor possível. Analisemos 2 possibilidades: a) n é par, n = 2k, k > 1, inteiro. Então: D min (n) = + log n/2 + 2 = log k + 2 = log 2k + 1 = log n + 1. b) n é ímpar, n = 2k+1, k > 1, inteiro. Então: D min (n) = log (2k+1)/2 + 2 = log (2k + 2)/2 + 2 = log (k+1) + 2 = log 2(k+1) + 1 = = log 2k = log n + 1. Portanto, em qualquer caso, o resultado também vale para n, o que finaliza a indução. Uma primeira comparação entre esse resultado e aquele para a árvore de Huffman, cuja profundidade é dada por DH min = log n, mostra a diferença de 1 que parece confirmar a intuição da necessidade de termos 1 bit a mais no caso das ADIO, devido à obrigação de paridade. Vejamos agora a fórmula fechada para a profundidade máxima. Teorema 7: D max (n) = n, se n 2; log n/3 + 3, se n > 2. Prova: A prova será feita por indução em n. Usando a recorrência, obtemos D max (1) = 1, D max (2) = 2, D max (3) = 3, D max (4) = 4, D max (5) = 4, o que concorda com os dados anteriores. Hipótese de indução: Para valores i inferiores a n e superiores a 5, temos D max (i) = log n/ Passo de indução: Então D max (n) = 1 + D max (n - n min ) onde (n - n min ), caracterizado anteriormente, é o número máximo de codificações que pode existir na subárvore direita e, consequentemente, a profundidade resultante é a maior possível. Analisemos 3 possibilidades, de acordo com o Teorema 5. a) n da forma n = 3.2 q < 9.2 log n/3-1, q inteiro. 2469
9 Neste caso n min é dado por n min = 3.2 log n/3-1, n - n min = n min = 3.2 log n/3-1, e D max (n) = 1 + log (3.2 q - 1 )/3 + 3 = log 2 q = q + 3 = log n/ b) n da forma n = 3.2 q-1 + p 9.2 log n/3-1, 1 p 3.2 q-2, p e q inteiros. Neste caso n min é dado por n min = 3.2 log n/3-1 = 3.2 q-2 ; n - n min = 3.2 q-2 + p, e D max (n) = 1 + log (3.2 q p)/3 + 3 = log (2 q p/3) + 4 = q = q + 3, dada a forma de p. Como log n/3 = q D max (n) = log n/ c) n é da forma n = 3.2 q-1 + p > 9.2 log n/3-1, 3.2 q-2 < p < 3.2 q-1, p e q inteiros. Neste caso n min é dado por n min = n log n/3 e n - n min = 3.2 log n/3. D max (n) = 1 + log (3.2 log n/3 )/3 + 3 = log 2 log n/3 + 4 = log n/3 + 4 = log n/ , dada a forma de n. D max (n) = log n/ Em todos os casos, o resultado continua válido para n, o que finaliza a indução. Podemos comparar, mais profundamente, as ADIO com as árvores de Huffman, no caso de frequências constantes. Sabemos que as árvores de Huffman são árvores estritamente binárias e completas. Considerando o Caminho Externo de uma árvore desse tipo, com n folhas, como o Caminho Externo de Codificação, também temos uma fórmula fechada, dada log n por CEC = n. log n - 2 [5]. A Tabela 6 apresenta dados de comparação entre as ADIO e as árvores de Huffman. São mostrados os CECs de cada uma delas, bem como o tamanho médio das codificações, dado por (CEC/n) e a diferença entre esses tamanhos médios, que é um parâmetro que mostra o custo adicional ao colocarmos a deteção de erros ímpares na árvore de Huffman. n CEC ADIO (a) a/n CEC Huffman(b) b/n Diferença ,8 34 3,4 0, ,67 0, , , ,67 0, , , , ,72 0, ,67 0, , ,98 0, , ,98 0, , ,36 0,41 Tabela 6. CEC ADIO x Huffman para frequências constantes Observando a tabela, constatamos que a diferença fica abaixo de 1, que seria o valor intuitivo esperado, já comentado. Vemos que, para os dados mostrados, a diferença situa-se no intervalo [0,33, 0,5]. A seguir vamos mostrar que esse é, de fato, o intervalo onde se situa essa diferença. Teorema 8: A diferença entre os tamanhos médios de codificação entre uma ADIO e uma árvore de Huffman, frequências constantes, ambas com n codificações, n > 1, varia no intervalo [1/3, 1/2], sendo mínima para n da forma n = 3. 2 k, k inteiro e máxima para n da forma n = 2 k. Prova: Consideremos 4 casos: a) n da forma n = 2 k, k > 1. Neste caso, temos: log n = k e log n/3 = log 2 k /3 = log 2 k-2.4/3 = (k-2) + log 4/3 = k - 1. Então, a diferença entre as codificações médias é: d = (n( log n/3 + 3) log n /3 - (n. log n - 2 log n ))/n = (2 k (k-1+3) k-1 - (2 k (k+1) - 2 k ))/2 k = (2 k.k +4.2 k k-1-2 k.k - 2 k + 2 k ))/2 k = 2 k-1 /2 k = 1/2. Este resultado também vale para n = 2. b) n da forma $n = 3.2 k, k
10 Neste caso, temos: log n = k + log 3 = k + 2 e log n/3 = log 3.2 k /3 = k. Então, a diferença entre as codificações médias é: d = (n( log n/3 + 3)-3.2 log n /3 -(n. log n - 2 log n ))/n = (3.2 k (k+3) k - (3.2 k (k+2+1) - 2 k+2 ))/3.2 k = (3.2 k.k +9.2 k k k.k k + 2 k+2 ))/3.2 k = (-3.2 k k )/3.2 k = 1/3. c) n da forma n = 2 k + p, 1 p < 2 k. Neste caso, temos: log n = k + 1, e log n/3 podendo ser = (k - 1) ou k, segundo a). c.1) Se log n/3 = (k - 1), temos: d = (n( log n/3 + 3) log n /3 - (n. log n - 2 log n ))/n = (n(k-1+3) k-1 - (n(k+1+1) - 2 k+1 ))/n = (n.k + 2n -3.2 k-1 - n.k - 2n + 2 k+1 ))/n = (-3.2 k k-1 )/n = 2 k-1 /(2 k + p) d < 1/2, pois p 1. c.2) Se log n/3 = k, temos: d = (n( log n/3 + 3) log n /3 - (n. log n - 2 log n ))/n = (n(k+3) k - (n(k+1+1) - 2 k+1 ))/n = (n.k + 3n -3.2 k - n.k - 2n + 2 k+1 ))/n = (n -3.2 k k )/n = (2 k +p - 2 k )/(2 k + p) = p/(2 k + p) d < 1/2, pois p < 2 k. Então, o valor máximo da diferença, para qualquer n > 1, é 1/2. d) n da forma n = 3. 2 k + p, 1 p < 3. 2 k. Neste caso, temos: log n pode ser (k+2) ou (k + 3), segundo b) e log n/3 = (k + 1). d.1) Se log n = (k+2), temos: d = (n( log n/3 + 3) log n /3 - (n. log n - 2 log n ))/n = (n(k+1+3) k+1 - (n(k+2+1) - 2 k+2 ))/n = (n.k + 4n -3.2 k+1 - n.k - 3n + 2 k+2 ))/n = (n -3.2 k k+1 )/n = (3.2 k +p-2 k+1 )/(3.2 k +p) = (2 k +p)/(3.2 k + p) = ((2 k +p/3)+ 2p/3)/(3.(2 k + p/3)) d > 1/3, pois p 1. d.2) Se log n = (k+3), temos: d = (n( log n/3 + 3) log n /3 - (n. log n - 2 log n ))/n = (n(k+1+3) k+1 - (n(k+3+1) - 2 k+3 ))/n = (n.k + 4n -3.2 k+1 - n.k - 4n + 2 k+3 ))/n = (-3.2 k k+1 )/n = 2 k+1 /(3.2 k +p) = (2.2 k )/(3.2 k + p) d > 1/3, pois p < 3.2 k. Então, a diferença mínima, para qualquer valor de n > 1, é 1/3. O Teorema 8 mostra que, no caso de frequências constantes, temos um resultado melhor do que a intuição sugere, pois a diferença no tamanho médio das codificações das duas árvores é limitada a 1/2, que se torna uma diferença desprezível para valores grandes de n. É, então, baixo o preço que se paga pelo acréscimo da funcionalidade de deteção de erros em número ímpar. Os resultados limites (1/3 e 1/2) podem ser explicados da seguinte forma, considerando ADI equilibradas: a) No caso de números de codificação da forma n = 2 k, a árvore de Huffman é uma árvore cheia, com todas as folhas tendo mesma profundidade log n. Já as ADIO, são constituídas por 2 k-1 subárvores equivalentes à ADIO para 2 codificações e, então, temos metade das folhas de codificação com a profundidade log n e metade com profundidade ( log n + 1), o que leva à diferença de 1/2. b) No caso de números de codificação da forma n = 3.2 k, a árvore de Huffman é uma árvore completa, com 2.2 k folhas com profundidade log n e 2 k com profundidade ( log n -1). Já as ADIO, são constituídas por 2 k subárvores equivalentes à ADIO para 3 codificações e, então, temos 2 k folhas de codificação com profundidade ( log n +1), 2 k com profundidade ( log n - 1), o que gera a diferença de 1/3. Para os demais valores de n, as árvores respectivas têm configurações intermediárias a essas configurações limite. 2471
11 ADIO para frequências quaisquer Embora não vá aquí ser discutido em detalhes o problema de determinar a ADIO para n codificações, frequências quaisquer, tal como foi feito para o caso de frequências constantes, vamos esboçar um limite superior para um algoritmo para esse problema. Esse limite pode ser obtido a partir de um lema, facilmente demonstrável: Lema 7: Dadas duas folhas de codificação de uma ADIO, c i e c j, com frequências de acesso respectivas f i e f j, e profundidades d i e d j, então se (f i f j ) (d i d j ). Esse princípio também é básico para as árvores de Huffman. Dele deriva um algoritmo de Programação Dinâmica, baseado em se procurar o melhor posicionamento da codificação de maior frequência, sabendo-se que, nesta configuração, a floresta induzida a partir do nível em que se encontra a referida chave, também é ótima, para as (n-1) codificações restantes. Muitos algoritmos desse tipo têm complexidade O(n 3 ), mas o desafio aquí é conseguir um algoritmo guloso. Bibliografia [1] R. Baeza e Y. Netto. Modern Information Retrieval. Addison Wesley, [2] M. J. Golin, C. Kenyon e N. E. Young. Huffman Coding with Unequal Letter Costs. Proceedings of the 34th Annual ACM Symposium of Theory of Computing, [3] R. W. Hamming. Coding and Information Theory. Prentice Hall, [4] D. A. Huffman. A Method for the Construction of Minimum Redundancy Codes. Proceedings of the IRE 40, (1951) [5] D. E. Knuth. The Art of Computer Programming Vol I. Addison Wesley, 2nd edition, [6] J. L. Szwarcfiter e L. Markenzon. Estruturas de Dados e Seus Algoritmos. LTC Editora,
Árvore Binária de Busca Ótima
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms
Leia maisCompactação de Dados. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Seção 12.5 em diante.
Compactação de Dados Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Seção 12.5 em diante. Compactação de Dados } Armazenar arquivos grandes (backup)
Leia maisMétodo Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo
Notas de aula da disciplina IME - ALGORITMOS E ESTRUTURAS DE DADOS II Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) Troco mínimo Dados os tipos de moedas de um país, determinar o número mínimo
Leia maisCompactação de Dados Letícia Rodrigues Bueno
Compactação de Dados Letícia Rodrigues Bueno UFABC Compactação de Dados: Introdução Objetivo: Compactação de Dados: Introdução Compactação de Dados: Introdução Objetivo: 1. minimizar espaço de memória
Leia maisCompressão Sem Perdas: Codificações Huffman e Aritmética. Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré
Compressão Sem Perdas: Codificações Huffman e Aritmética Adelar da Silva Queiróz Marcelo Teixeira Thiago da Silva Sodré Compressão Sem Perdas (Lossless Data Compression) Refere-se a métodos de compressão
Leia mais2 Teoria da Informação
2 Teoria da Informação Neste capítulo apresentamos alguns conceitos básicos sobre Teoria da Informação que utilizaremos durante este trabalho. 2.1 Alfabeto, texto, letras e caracteres Um alfabeto Σ = (σ
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Árvore digital Árvore digital binária
Leia maisÁrvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Leia maisAlgoritmos em Strings (compressão de texto)
Algoritmos em Strings (compressão de texto) R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Teoria da Informação O que é? É uma ferramenta matemática para determinar
Leia maisEXPRESSÕES RELACIONAIS
AULA 7 EXPRESSÕES RELACIONAIS 7.1 Operadores relacionais Uma expressão relacional, ou simplesmente relação, é uma comparação entre dois valores de um mesmo tipo. Esses valores são representados na relação
Leia maisCódigos de bloco. Luis Henrique Assumpção Lolis. 1 de novembro de Luis Henrique Assumpção Lolis Códigos de bloco 1
Códigos de bloco Luis Henrique Assumpção Lolis 1 de novembro de 2013 Luis Henrique Assumpção Lolis Códigos de bloco 1 Conteúdo 1 Códigos de bloco lineares 2 Códigos sistemáticos 3 Síndrome 4 Distância
Leia maisCódigos Corretores de Erros e Cliques de Grafos
Códigos Corretores de Erros e Cliques de Grafos Natália Pedroza Jayme Szwarcfiter Paulo Eustáquio UFRJ/UERJ 2016 Natália Pedroza (UFRJ/UERJ) Códigos Corretores 2016 1 / 32 Apresentação Códigos corretores
Leia maisEntropia, Entropia Relativa
Entropia, Entropia Relativa e Informação Mútua Miguel Barão (mjsb@di.uevora.pt) Departamento de Informática Universidade de Évora 13 de Março de 2003 1 Introdução Suponhamos que uma fonte gera símbolos
Leia maisINE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Leia maisÁrvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015
Árvores Binárias Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 17/03/2015 1 Introdução Árvore binárias são estruturas importantes toda vez que uma decisão binária deve
Leia maisCanais discretos sem memória e capacidade do canal
Canais discretos sem memória e capacidade do canal Luis Henrique Assumpção Lolis 17 de outubro de 2013 Luis Henrique Assumpção Lolis Canais discretos sem memória e capacidade do canal 1 Conteúdo 1 Canais
Leia maisTEORIA: 60 LABORATÓRIO: 0
Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA: BC1435 - Análise de Algoritmos
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Um pouco de Teoria dos Números
Leia maisUFSM-CTISM. Comunicação de Dados Aula-17
UFSM-CTISM Comunicação de Dados Aula-17 Professor: Andrei Piccinini Legg Santa Maria, 2012 Definição: Um código de Hamming adiciona um bloco de paridade a um bloco de dados, de forma a que, caso ocorram
Leia maisProblema de escalonamento
Problema de escalonamento Considere n tarefas indicadas pelos números 1,...,n Algoritmos p. 1 Problema de escalonamento Considere n tarefas indicadas pelos números 1,...,n t i : duração da tarefa i d i
Leia maisCompressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:
Compressão de Textos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM O volume
Leia maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 7 de outubro de 2016 Marco Antonio
Leia maisTarefa 06 Todos Subconjuntos
Tarefa 06 Todos Subconjuntos Disciplina: Estatística Básica para Bioinformática Discentes: Diego M Salvanha, Madeleine Ernst Enunciado da tarefa: Dado que o número de subconjuntos que podem ser feitos
Leia maisTeoria da Informação
Charles Casimiro Cavalcante charles@gtel.ufc.br Grupo de Pesquisa em Telecomunicações Sem Fio GTEL Programa de Pós-Graduação em Engenharia de Teleinformática Universidade Federal do Ceará UFC http://www.gtel.ufc.br/
Leia maisCapítulo 2: Procedimentos e algoritmos
Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo
Leia maisÁrvores B Parte III. Propriedades, Remoção & Inserção Revisitada. Adaptado e Estendido dos Originais de:
Estruturas de Dados Prof. Ricardo J. G. B. Campello Árvores B Parte III Propriedades, Remoção & Inserção Revisitada Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira
Leia maisÁrvores Vermelho-Preto
Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC)
Leia maisCódigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2
Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2 Códigos de bloco Prof. Diego da Silva de Medeiros São José, maio de 2012 Codificação
Leia maisCurvas Planas em Coordenadas Polares
Curvas Planas em Coordenadas Polares Sumário. Coordenadas Polares.................... Relações entre coordenadas polares e coordenadas cartesianas...................... 6. Exercícios........................
Leia maisBusca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência
Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1
Leia maisÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Leia maisAplicações de árvores/ Exercícios. 30/11 e 2/12 QuadTrees para representação de imagens e Algoritmo de Huffman para transmissão/compressão de dados
Aplicações de árvores/ Exercícios 30/11 e 2/12 QuadTrees para representação de imagens e Algoritmo de Huffman para transmissão/compressão de dados Representação de Imagens Definição mais intuitiva para
Leia maisINF1010 Lista de Exercícios 2
INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária
Leia maisHashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Leia maisINSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE
INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos Ano Lectivo de 2006/2007 2 o Semestre RESOLUÇÃO DO 2 o TESTE I. (2,0+2,0+2,0 = 6,0 val.) 1) Calcule o valor óptimo da função objectivo e o respectivo
Leia maisAula 10: Tratabilidade
Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas
Leia maisINTRODUÇÃO À TEORIA DA INFORMAÇÃO
INTRODUÇÃO À TEORIA DA INFORMAÇÃO SISTEMA DE TRANSMISSÃO DIGITAL Oscodificadores defonte possuem a finalidade de casar a fonte de dados com o sistema levando em consideração a estatística de acontecimento
Leia maisTRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO
TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO Aluno: Débora Almeida Oliveira Orientador: Weiler Alves Finamore 1.Introdução Este trabalho tem como objetivo demonstrar a utilização de códigos
Leia mais1 bases numéricas. capítulo
capítulo 1 bases numéricas Os números são representados no sistema decimal, mas os computadores utilizam o sistema binário. Embora empreguem símbolos distintos, os dois sistemas formam números a partir
Leia maisTópicos de Matemática Elementar
Tópicos de Matemática Elementar 2 a série de exercícios 2004/05. A seguinte prova por indução parece correcta, mas para n = 6 o lado esquerdo é igual a 2 + 6 + 2 + 20 + 30 = 5 6, enquanto o direito é igual
Leia maisTeoria da Informação
Charles Casimiro Cavalcante charles@gtel.ufc.br Grupo de Pesquisa em Telecomunicações Sem Fio GTEL Programa de Pós-Graduação em Engenharia de Teleinformática Universidade Federal do Ceará UFC http://www.gtel.ufc.br/
Leia maisInformações Importantes! INF TURMA A
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: ESTRUTURAS DE DADOS CÓDIGO: INF01203 CURSOS/PRE-REQUISITO: o Engenharia da Computação
Leia maisGrafo planar: Definição
Grafo planar Considere o problema de conectar três casas a cada uma de três infraestruturas (gás, água, energia) como mostrado na figura abaixo. É possível fazer essas ligações sem que elas se cruzem?
Leia maisDefinição. Árvores B Parte III. Propriedades Gerais. Propriedade (No. Mín. de Chaves) Leandro C. Cintra Maria Cristina F.
Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte III Eliminação, Redistribuição & Concatenação Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina
Leia maisPesquisa Linear. Adriano J. Holanda 15/3/2016
Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária
Leia mais8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38
8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados
Leia mais8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38
8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados
Leia maisEstudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas. Por: Charles Pereira
Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas Por: Charles Pereira Objetivos Principal: - Criar, implementar e avaliar heurísticas
Leia maisTextos de apoio às aulas práticas. Jaime Ramos, Francisco Miguel Dionísio
Computação e Programação Textos de apoio às aulas práticas Jaime Ramos, Francisco Miguel Dionísio DMIST, Dezembro de 2010 Parte I MATLAB 1 Capítulo 1 Exercícios preliminares 1. Defina a função conta divisores
Leia maisAlgoritmos de Compressão sem Perdas
Algoritmos de Compressão sem Perdas (continuação) Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Curso de Ciência da Computação
Leia maisPrincípios Básicos de Teoria da Informação
Princípios Básicos de Teoria da Informação Teorema da Codificação de Fonte Teorema Fundamental de Shannon Até que limite é possível comprimir um conjunto de dados? Qual a maior taxa de transmissão de informação
Leia maisAula 3 Propriedades de limites. Limites laterais.
Propriedades de ites. Limites laterais. MÓDULO - AULA 3 Aula 3 Propriedades de ites. Limites laterais. Objetivos Estudar propriedades elementares de ites, tais como: soma, produto, quociente e confronto.
Leia maisDefinição. Diremos que um número inteiro d é um divisor de outro inteiro a, se a é múltiplo de d; ou seja, se a = d c, para algum inteiro c.
Divisores Definição. Diremos que um número inteiro d é um divisor de outro inteiro a, se a é múltiplo de d; ou seja, se a = d c, para algum inteiro c. Quando a é múltiplo de d dizemos também que a é divisível
Leia maisTriangulação de Delauney
Triangulação de Delauney Um pedaço da superfície terrestre é chamado de terreno. Um terreno é uma superfície 2-dimensional em um espaço 3-dimensional com uma propriedade especial: cada linha vertical intercepta
Leia maisCOM29008 LISTA DE EXERCÍCIOS #
INSTITUTO FEDERAL DE SANTA CATARINA CAMPUS SÃO JOSÉ COORDENADORIA DE ÁREA DE TELECOMUNICAÇÕES ENGENHARIA DE TELECOMUNICAÇÕES COM29008 LISTA DE EXERCÍCIOS #1 2016.2 Exercícios 1. Verifique se os seguintes
Leia maisBCC242. Auômato Finito Determinístico
BCC242 Auômato Finito Determinístico Máquinas de Estados Finitos As máquinas de estados finitos são máquinas abstratas que capturam partes essenciais de algumas máquinas concretas. Tipos Tradutores máquinas
Leia maisCompressão de Dados. Prof. Flávio Humberto Cabral Nunes
Compressão de Dados Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Introdução 2. Compressão Unária 3. Compressão Elias-Gama 4. Run Length Encoding 5. Huffman 6. LZ77, LZ78 e LZW Capítulo: 12 (POSTIL).
Leia maisRedes de Telecomunicações (11382)
Redes de Telecomunicações (11382) Ano Lectivo 2014/2015 * 1º Semestre Pós Graduação em Information and Communication Technologies for Cloud and Datacenter Aula 2 07/10/2014 1 Agenda A camada física ou
Leia maisO limite de uma função
Universidade de Brasília Departamento de Matemática Cálculo 1 O ite de uma função Se s(t) denota a posição de um carro no instante t > 0, então a velocidade instantânea v(t) pode ser obtida calculando-se
Leia maisÁrvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1
Árvores (ordenadas) Recordemos que, uma árvore é grafo (não dirigido) em que o número de vértices excede em 1 o número de arcos. Um vértice é acessível a todos os outros: a raiz. Os vértices que são acessíveis
Leia mais5 Testes em Imagens. Figura 5.1: Esquema de proteção com detecção de erros LT Hamming. Imagem. Cod-Hamming SPIHT. Cod-LT. Canal.
5 Testes em Imagens Uma vez feito o estudo do desempenho do código LT quando é usado em um canal ruidoso, nosso objetivo agora, centra-se na análise de seu possível uso em um esquema para a transmissão
Leia maisTeoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.
Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos
Leia maisCada questão da parte A vale 4 pontos e cada questão da parte B vale 10 pontos (total de pontos do nível III-fase de seleção = 60 pontos).
III OLIMPÍADA REGIONAL DE MATEMÁTICA Nível III Ensino Médio DE RIEIRÃO PRETO FASE DE SELEÇÃO - 7 de setembro de 008 Cada questão da parte A vale 4 pontos e cada questão da parte vale 10 pontos (total de
Leia maisEfeitos da filtragem sobre sinais de onda quadrada
Efeitos da filtragem sobre sinais de onda quadrada Autores: Pedro Rodrigues e André F. Kohn Introdução O texto a seguir ilustra efeitos que diferentes sistemas lineares invariantes no tempo (SLIT) podem
Leia maisAula Distância entre duas retas paralelas no espaço. Definição 1. Exemplo 1
Aula 1 Sejam r 1 = P 1 + t v 1 t R} e r 2 = P 2 + t v 2 t R} duas retas no espaço. Se r 1 r 2, sabemos que r 1 e r 2 são concorrentes (isto é r 1 r 2 ) ou não se intersectam. Quando a segunda possibilidade
Leia mais3. Conteúdo de um vértice v é conteúdo dos filhos de v.
Árvore Hierárquica Em inglês é chamada de Heap. Representar: conjunto C de elementos com relação. Operações: Ins x,c (inserir x em C e ExMax C (extrair o máximo do conjunto). Chamado também de Fila de
Leia maisCálculo Numérico Noções básicas sobre erros
Cálculo Numérico Noções básicas sobre erros Profa. Vanessa Rolnik 1º semestre 2015 Fases da resolução de problemas através de métodos numéricos Problema real Levantamento de Dados Construção do modelo
Leia maisOPERADORES LINEARES ESPECIAIS: CARACTERIZAÇÃO EM ESPAÇOS DE DIMENSÃO DOIS*
OPERADORES LINEARES ESPECIAIS: CARACTERIZAÇÃO EM ESPAÇOS DE DIMENSÃO DOIS* FABIANA BARBOSA DA SILVA, ALINE MOTA DE MESQUITA ASSIS, JOSÉ EDER SALVADOR DE VASCONCELOS Resumo: o objetivo deste artigo é apresentar
Leia mais1 O esquema de Alamouti: Diversidade na transmissão
1 O esquema de Alamouti: Diversidade na transmissão 1.1 O Caso de uma antena receptora A Figura?? mostra a representação em banda básica do esquema de Alamouti com diversidade na transmissão. O esquema
Leia maisBCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.
Leia maisCapítulo 3. A camada de enlace de dados
slide 1 Capítulo 3 A camada de enlace de dados slide 2 Onde vive o protocolo de camada de enlace? slide 3 Questões de projeto da camada de enlace Serviços de rede da camada de enlace Quadros Controle de
Leia maisCÁLCULO I. 1 Concavidade. Objetivos da Aula. Aula n o 19: Concavidade. Teste da Segunda Derivada. Denir concavidade de uma função;
CÁLCULO I Prof. Marcos Diniz Prof. Edilson Neri Júnior Prof. André Almeida Aula n o 19: Concavidade. Teste da Segunda Derivada. Objetivos da Aula Denir concavidade de uma função; Denir ponto de inexão;
Leia maisSUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Leia mais4 Casamento de Padrões
4 Casamento de Padrões O casamento de padrões é uma técnica que tem por objetivo localizar os elementos constituintes de uma seqüência em um conjunto de outras seqüências. Chamemos de padrão a seqüência
Leia maisAcesso Sequencial Indexado
Acesso Sequencial Indexado Utiliza o princípio da pesquisa seqüencial cada registro é lido seqüencialmente até encontrar uma chave maior ou igual a chave de pesquisa. Providências necessárias para aumentar
Leia maisAnálise de algoritmos
Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência.
Leia maisCálculo Diferencial e Integral I
Cálculo Diferencial e Integral I Texto de apoio às aulas. Amélia Bastos, António Bravo Dezembro 2010 Capítulo 1 Números reais As propriedades do conjunto dos números reais têm por base um conjunto restrito
Leia maisAcrescenta um bit 1 ou um bit 0 às mensagem para que o número total de bits 1 seja par
Detecçã ção o de Erros Paridade Verificação de Paridade Esse tipo de detecção consiste em acrescentar um bit (de paridade) a cada conjunto de bits da mensagem (caractere) de modo a ter as seguintes características:
Leia maisAULA A 6 ESTRUTURA DE DADOS. Compressão de dados
AULA A 6 ESTRUTURA DE DADOS Compressão de dados Esperamos que, ao final desta aula, você seja capaz de: compreender a importância da compressão de dados; conhecer algoritmos de compressão de dados (freqüência
Leia maisEquação algébrica Equação polinomial ou algébrica é toda equação na forma anxn + an 1 xn 1 + an 2 xn a 2 x 2 + a 1 x + a 0, sendo x
EQUAÇÃO POLINOMIAL Equação algébrica Equação polinomial ou algébrica é toda equação na forma a n x n + a n 1 x n 1 + a n 2 x n 2 +... + a 2 x 2 + a 1 x + a 0, sendo x C a incógnita e a n, a n 1,..., a
Leia maisRedes de Computadores
Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de
Leia maisAnatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina
Anatomia do motor de um programa de xadrez Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina Conteúdo Objetivo O que é um motor de xadrez? Arquitetura Entrada e saída Representação do tabuleiro
Leia maisBC-0504 Natureza da Informação
BC-0504 Natureza da Informação Aula 3 Transmissão serial e paralela da informação e medida da informação transmitida Equipe de professores de Natureza da Informação Parte 0 Sistemas de numeração Decimal
Leia maisCálculo Diferencial e Integral Química Notas de Aula
Cálculo Diferencial e Integral Química Notas de Aula João Roberto Gerônimo 1 1 Professor Associado do Departamento de Matemática da UEM. E-mail: jrgeronimo@uem.br. ÍNDICE 1. INTRODUÇÃO Esta notas de aula
Leia mais4º 20/10/2003. ÍNDICE
Universidade Federal de Juiz de Fora UFJF. Departamento de Ciência da Computação DCC. Curso de Ciência da Computação. Análise e Projeto de Algoritmos 4º período. Filippe Jabour. Atualizado em 20/10/2003.
Leia maisPara simplificar a notação, também usamos denotar uma sequência usando apenas a imagem de :
Sequências Uma sequência é uma função f de em, ou seja. Para todo número natural i associamos um número real por meio de uma determinada regra de formação. A sequencia pode ser denotada por: Ou, por meio
Leia maisTransformada de Discreta de Co senos DCT
Transformada de Discreta de Co senos DCT O primeiro passo, na maioria dos sistemas de compressão de imagens e vídeo, é identificar a presença de redundância espacial (semelhança entre um pixel e os pixels
Leia maisUniversidade de Pernambuco Escola Politécnica de Pernambuco
Universidade de Pernambuco Escola Politécnica de Pernambuco TV Analógica e Digital Introdução Codificação de Canal Prof. Márcio Lima E-mail:marcio.lima@poli.br Introdução Visão Geral Introdução Motivação
Leia mais(versão preliminar) exceto possivelmente para x = a. Dizemos que o limite de f(x) quando x tende para x = a é um numero L, e escrevemos
LIMITE DE FUNÇÕES REAIS JOSÉ ANTÔNIO G. MIRANDA versão preinar). Revisão: Limite e Funções Continuas Definição Limite de Seqüências). Dizemos que uma seqüência de números reais n convergente para um número
Leia maisCapítulo Equações da reta no espaço. Sejam A e B dois pontos distintos no espaço e seja r a reta que os contém. Então, P r existe t R tal que
Capítulo 11 1. Equações da reta no espaço Sejam A e B dois pontos distintos no espaço e seja r a reta que os contém. Então, P r existe t R tal que AP = t AB Fig. 1: Reta r passando por A e B. Como o ponto
Leia maisÁrvore Binária de Busca
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvores binárias de busca do capítulo 4 do livro N. Wirth. Algorithms
Leia maisAnálise amortizada CLRS 17. Algoritmos p. 1
Análise amortizada CLRS 17 Algoritmos p. 1 Análise amortizada Serve para analisar uma sequência de operações ou iterações onde o pior caso individual não reflete o pior caso da sequência. Em outras palavras,
Leia maisDerivadas Parciais Capítulo 14
Derivadas Parciais Capítulo 14 DERIVADAS PARCIAIS Como vimos no Capítulo 4, no Volume I, um dos principais usos da derivada ordinária é na determinação dos valores máximo e mínimo. DERIVADAS PARCIAIS 14.7
Leia maisCapítulo 2. Conjuntos Infinitos
Capítulo 2 Conjuntos Infinitos Não é raro encontrarmos exemplos equivocados de conjuntos infinitos, como a quantidade de grãos de areia na praia ou a quantidade de estrelas no céu. Acontece que essas quantidades,
Leia maisNúmeros Reais. Víctor Arturo Martínez León b + c ad + bc. b c
Números Reais Víctor Arturo Martínez León (victor.leon@unila.edu.br) 1 Os números racionais Os números racionais são os números da forma a, sendo a e b inteiros e b 0; o conjunto b dos números racionais
Leia maisA inserção da chave 6 da árvore acima resulta na árvore abaixo.
149 Árvores B+ As operações nas árvores B+ não são muito diferentes das operações das árvores B. Inserir uma chave em uma folha que ainda tenha algum espaço exige que se coloque as chaves desta folha em
Leia maisExercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Leia maisMétodos de Ordenação Parte 3
Estrutura de Dados II Métodos de Ordenação Parte 3 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais do Prof. Robson Lins Classificação em Memória Primária
Leia maisMESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL. ENQ Gabarito
MESTRADO PROFISSIONAL EM MATEMÁTICA EM REDE NACIONAL ENQ 016. Gabarito Questão 01 [ 1,00 ] A secretaria de educação de um município recebeu uma certa quantidade de livros para distribuir entre as escolas
Leia maisé uma proposição verdadeira. tal que: 2 n N k, Φ(n) = Φ(n + 1) é uma proposição verdadeira. com n N k, tal que:
Matemática Discreta 2008/09 Vítor Hugo Fernandes Departamento de Matemática FCT/UNL Axioma (Princípio da Boa Ordenação dos Números Naturais) O conjunto parcialmente (totalmente) ordenado (N, ), em que
Leia mais