UniversidadeEstadualdoOestedoParaná ... · CAPÍTULO1. ÁLGEBRALINEARSOBRECORPOSFINITOS 5...

51
Universidade Estadual do Oeste do Paraná Centro de Engenharias e Ciências Exatas Especialização emEducação Matemática Códigos Lineares Alex de Oliveira Ornold Foz do Iguaçu-PR 2008

Transcript of UniversidadeEstadualdoOestedoParaná ... · CAPÍTULO1. ÁLGEBRALINEARSOBRECORPOSFINITOS 5...

Universidade Estadual do Oeste do Paraná

Centro de Engenharias e Ciências Exatas

Especialização em Educação Matemática

Códigos Lineares

Alex de Oliveira Ornold

Foz do Iguaçu-PR

2008

Códigos Lineares

Alex de Oliveira Ornold

Monografia apresentada como requisito par-

cial à obtenção do grau de especialista em Ed-

ucação Matemática, Programa de Especial-

ização em Educação Matemática, Centro de

Engenharias e Ciências Exatas, Universidade

Estadual do Oeste do Paraná.

FOZ DO IGUAÇU-PR

2008

Agradecimentos

Agradeço a Deus, pela vida que este me proporciona.

Aos meus pais por tudo que eles sempre fizeram para que eu pudesse ter

chegado a este momento.

i

Resumo

No presente trabalho vamos apresentar uma introdução à teoria dos Códi-

gos, que é uma parte da matemática utilizada na área de transmissão de

informações. Falaremos especificamente de uma classe de códigos, os códigos

lineares e seus conceitos. Estaremos trabalhando com o espaço vetorial Fnq

das n-uplas sobre o corpo finito Fq. Faremos uma abordagem inicial sobre os

corpos finitos Fq. Os códigos binários de Hamming também serão abordados.

Palavras-chave: Códigos lineares, corpos finitos, código binário de Ham-

ming.

ii

Sumário

Resumo ii

Introdução v

1 Álgebra Linear sobre Corpos Finitos 1

1.1 Números Inteiros . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Divisores . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.2 Máximo Divisor Comum (MDC) . . . . . . . . . . . . . 3

1.1.3 Números Primos . . . . . . . . . . . . . . . . . . . . . 4

1.1.4 Congruência . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.1 Subgrupos . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3 Anéis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.4 Espaços Vetoriais . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Corpo Finito 20

3 Códigos Lineares 24

3.1 Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2 Matriz geradora e de paridade . . . . . . . . . . . . . . . . . . 31

iii

SUMÁRIO iv

3.3 Código de Hamming . . . . . . . . . . . . . . . . . . . . . . . 37

3.4 Código de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . 39

3.5 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . 40

Referências Bibliográficas 41

Introdução

O estudo inicial sobre a teoria dos códigos se dá no final dos anos 40 do século

XX, especificamente em 1948 com o matemático e engenheiro estadunidense

Claude Elwood Shannon (1916 - 2001), com seu trabalho “A Mathematical

Theory of Communication” (Uma Teoria Matemática da Comunicação), a

partir deste trabalho a matemática ganha uma nova área a Teoria da Infor-

mação.

Claude Elwood Shannon procurou em seu trabalho em detectar e corrigir

erros durante o armazenamento e transmissão das mensagens.

Entre os mais variados tipos de códigos, a classe mais utilizada e mais

fáceis de descrever, codificar e decotificar são os códigos lineares, que são

definidos como um subespaço vetorial de Fn. A partir da década de 50,

novos códigos começaram a surgir, como exemplo temos o código binário de

Hamming, que foi inserido à Teoria dos Códigos pelo matemático Richard

Wesley Hamming (1915 - 1998).

Atualmente notamos que a Teoria dos Códigos esta cada vez mais presente

no dia-a-dia da sociedade. Vemos que ela está se popularizando ao meio

a uma velocidade incrível, através de códigos que estão sendo usados na

transmissão de informações, imagens, no audio-visual, etc.

Como exemplo tivemos em 1972 a transmissão de imagens de Marte com

v

SUMÁRIO vi

64 tonalidades de cinza pela espaçonave Mariner, através do código Reed-

Muller, e em 1979 a espaçonave Voyager enviou imagens com 4096 tonalidades

de cores de Júpiter e Saturno utilizando o código de Golay [3].

O presente trabalho será descrito em 03 capítulos, sendo que no primeiro

capítulo abordaremos conceitos de algebra, definições e conceitos que nos

servirão como alicerce para a leitura do trabalho.

No segundo capítulo, faremos uma introdução a teoria dos corpos finitos,

mostrando suas definições, para que fique mais claro o estudo posterior de

códigos lineares que será visto no terceiro capítulo.

Capítulo 1

Álgebra Linear sobre Corpos

Finitos

A álgebra linear é fundamental para o estudo da teoria dos códigos, pois a

mesma nos dá ferramentas essencias para entedermos os processos de cod-

ificação e decodificação, responsáveis pela confiabilidade da transmissão de

informações de grande parte dos novos sistemas de comunicação. Portanto,

vamos relembrar conceitos elementares sobre o conjunto dos números inteiros,

anéis, corpos e espaços vetoriais.

1.1 Números Inteiros

Seja

N = {1, 2, 3, . . .}

o conjunto dos números naturais e

Z = {. . . ,−3,−2,−1, 0, 1, 2, 3, . . .}

1

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 2

o conjunto dos números inteiros. Considerando em Z1 as operações usuais

de adição “+” e multiplicação “·”, destacamos em relação a estas operações,as seguintes propriedades elementares (bem conhecidas).

Para todo a, b, c ∈ Z, valem:

(A1) Associativa: a+ (b+ c) = (a+ b) + c;

(A2) Comutativa: a+ b = b+ a;

(A3) Elemento neutro: a+ 0 = a;

(A4) Simétrica: a+ (−a) = 0;

Também valem:

(M1) Associativa: a · (b · c) = (a · b) · c;

(M2) Comutativa: a · b = b · a;

(M3) Distribuitiva: a · (b+ c) = a · b+ a · c;

(M4) Elemento Neutro: a · 1 = a.

Todo conjunto A não vazio equipado com duas operações, denotadas

usualmente por + e ·, que satisfazem as propriedades (A1)-(A4) e (M1)-

(M4) é chamado de anel. Neste sentido (Z,+, ·) é um anel.

Se em um anel (K,+, ·) vale a propriedade de que para todo 0 �= x ∈ Kexiste y ∈ K tal que x · y = 1, então diremos que (K,+, ·) é um corpo. O

elemento y é denotado por x−1 e chamado de elemento simétrico de x.

1A letra Z que representa o conjunto dos números inteiros, provém da palavra alemã

“Zahlen” que significa número ou algarismo.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 3

Example 1 (a) (Z,+, ·), (Q,+, ·), (R,+, ·), (C,+, ·) são anéis;

(b) Qualquer corpo é um anel comutativo.

1.1.1 Divisores

Sejam a, b, c ∈ Z. Se c = a · b, então diremos que a divide c (ou c é múltiplode a) e denotaremos por a | c.Considerando a divisão exata entre dois números inteiros quaisquer, segue

as seguintes propriedades, ∀ a, b, c ∈ Z:

(a) Se a �= 0, a | a;

(b) Se a, b ≥ 0, a | b e b | a então a = b;

(c) Se a | b e b | c então a | c;

(d) Se a | b e a | c então a | (xb+ yc), para todo x, y ∈ Z.

1.1.2 Máximo Divisor Comum (MDC)

O maior divisor comum positivo de dois ou mais números inteiros quaisquer

é chamado de máximo divisor comum desses números e é indicado por mdc

(a, b).

Definição 1.1 Sejam a, b ∈ Z. Então d ∈ Z é o máximo divisor comum de

a e b se:

(a) d ≥ 0;

(b) d | a e d | b;

(c) Se d′ ∈ Z tal que d′|a e d′|b, então d′|d.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 4

Proposição 1.1 Dois inteiros a e b são primos entre si se, e somente se,

existem inteiros x0 e y0 tais que ax0 + by0 = 1.

Demonstração A implicação é imediata da identidade de Bezout (sejam

quais forem os inteiros a, b ∈ Z e sendo d o máximo divisor desses inteirosé possível garantir a existência de inteiros x0 e y0 tais que d = ax0 + by0).

Vejamos a recíproca.

Suponha que existam inteiros x0 e y0 de forma que ax0 + by0 = 1. Como

mdc (a, b)|a e mdc(a, b)|b, então mdc(a, b)|(ax0+ by0). Portanto mdc(a, b)|1,donde segue que mdc(a, b) = 1. �

1.1.3 Números Primos

Definição 1.2 Um número p ∈ Z é considerado primo se:

(a) p �= 0;

(b) p �= ±1;

(c) os únicos divisores de p são ±1,±p, e estes são chamados divisorestriviais de p.

Por exemplo, o número 7 é primo pois seus divisores inteiros são ±1 e±7. Se um inteiro é diferente de 1 e não é primo, diz-se que ele é um númerocomposto.

Uma metodologia utilizada para se encontrar números primos2 é através

do Crivo de Eratóstenes [5]. Método este que permite obter uma tabela de2Atualmente o maior primo encontrado é o número 232.582.657−1 descoberto pela equipe

de colaboradores formado pelos doutores Curtis Cooper e Steven Boone, número este que

fora descoberto em 4 de setembro de 2006, contendo 9.808.358 dígitos. É o 44o número

primo de Mersenne (dado um número Mp, este é primo de Mersenne, se Mp for primo,

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 5

números primos. Escreve-se a sucessão natural dos números inteiros até ao

número desejado. Suprime-se o número 1. O número 2 é o menor número

primo. A partir do que lhe segue o 3, cortam-se todos os múltiplos de 2.

O número 3, o primeiro que não foi cortado, é primo. A partir dos que lhe

seguem cortamos todos os múltiplos de três. O primeiro não riscado é 5, que

será número primo, e a partir de 6 cortamos todos os múltiplos de cinco e

assim sucessivamente.

1.1.4 Congruência

As congruências estão presentes em nosso cotidiano nos mais variados mo-

mentos de nossas vidas, com as mais variadas atividades. Como exemplo

fácil de se observar temos, os relógios, que trabalham com módulos 12 ou 24

para as horas e módulo 60 para os minutos e segundos.

A linguagem da congruência foi desenvolvida pelo matemático, astrônomo

e físico alemão Carl Friedrich Gauss (1777 - 1855) no início do século XIX.

Gauss era conhecido como o príncipe dos matemáticos.

Definição 1.3 Seja m > 1 um número inteiro. Dados a, b ∈ Z, dizemos quea é congruente a b módulo m, e escrevemos a ≡ b (mod m), se m|(a− b).

Vejamos algumas propriedades da relação de congruência, sejam a, b, c, d ∈Z, temos:

sendo que Mp = 2p − 1, para um primo positivo p).

Aos interessados em conhecerem os demais 43 números primos de Mersenne, in-

dicamos o sitio: http://www.profcardy.com/artigos/mersenne.php. E para os mais cu-

riosos e entendiados ressaltamos que a fundação The Electronic Frontier Foundation

(http://www.eff.org/), oferece um prêmio de U$$ 100 mil a primeira pessoa ou grupo

que encontrar um primo com 10 milhões de casas decimais, boa sorte e não esqueça de

nós.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 6

Definição 1.4 (a) Reflexiva: a ≡ a (mod m);

(b) Simétrica: a ≡ b (mod m), então b ≡ a (mod m);

(c) Transitiva: a ≡ b (mod m) e b ≡ c (mod m), então a ≡ c (mod m);

(d) a ≡ b (mod m) e c ≡ d (mod m), então a+ c ≡ b+ d (modm);

(e) a ≡ b (mod m), então ac ≡ bc (mod m);

(f) a ≡ b (mod m), então ar ≡ br (mod m).

Exemplo 1.1 (a) 10 ≡ 2 (mod 4), porque 10 − 2 = 8, e 8 é divisível por4;

(b) −1 ≡ 9 (mod 5), porque −1− 9 = −10, e −10 é divisível por 5;

(c) 12 ≡ 2 (mod 5), porque 12− 2 = 10 que é divisível por 5;

(d) 72 ≡ 52 (mod 12), por que 49− 25 = 24 que é divisível por 12.

1.2 Grupos

Grupos estão por trás de muitas estruturas algébricas, como corpos e espaços

vetoriais, sendo que sua estrutura é parte essencial para a teoria de códigos,

ou seja, papel fundamental na geração, codificação, decodificação e análise

de desempenho de códigos.

A origem histórica do conceito de grupo vem da Teoria de Galois, que

deve-se ao matemático francês Evariste Galois (1811 - 1832).

O objetivo da teoria de Galois é estudar as soluccões da equação polino-

mial

f(t) = tn + an−1tn−1 + ...+ a1t+ a0 = 0

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 7

e a idéia principal de Galois é olhar os polinomios simétricos de f(t), os quais

formam um grupo [6], mais conhecido como grupo de Galois, assim dando

início a Teoria dos Grupos.

Podemos descrever um grupo como sendo um conjunto com uma oper-

ação binária que satisfaz certos axiomas. Uma operação binária ∗ sobre umconjunto W é uma regra que associa algum elemento de W a cada par orde-

nado (a, b) de elementos de W (a ∗ b denotará o elemento associado a (a, b)através de ∗).

Definição 1.5 Um grupo (G, ∗) é um par ordenado, sendo G um conjunto

não vazio, junto com uma operação binária ∗ sobre G, tal que as seguintessentenças são satisfeitas:

(i) ∀ a, b, c ∈ G, (a ∗ b) ∗ c = a ∗ (b ∗ c), (Associativa);

(ii) ∃ e ∈ G,∀ a ∈ G, e ∗ a = a ∗ e = a, (Elemento Neutro);

(iii) ∀ a ∈ G, ∃ a′ ∈ G, a ∗ a′ = a′ ∗ a = e, (Elemento Simétrico).

Exemplo 1.2 (a) O conjunto dos números inteiros é um grupo com re-

lação à operação de adição;

(b) A operação de adição usual é uma operação binária sobre o conjunto

dos números reais. Por outro lado ela não é uma operação binária

sobre R∗ = R\{0} já que, por exemplo, 5 + (−5) não pertence a R∗.

Definição 1.6 Um grupo G é abeliano3 se a sua operação binária for comu-

tativa, ou seja, a ∗ b = b ∗ a para todo a e b em G.3Os grupos abelianos são assim chamados devido ao brilhante matemático norueguês

Niels Henrik Abel (1802 - 1829), que aos dezesseis anos começou, por conta própria, a

degustar integralmente os maiores trabalhos de seus predecessores, como dos renomados

matemáticos: Isaac Newton, Leonhard Euler e Lagrange.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 8

Proposição 1.2 Dado um grupo (G, ∗), então:

(a) O elemento neutro é único;

(b) Para cada a ∈ G, o simétrico de a é único e (a′)′ = a;

(c) ∀ a, b ∈ G; (a ∗ b)′ = b′ ∗ a′;

(d) Todo elemento de G é regular: a ∗ x = a ∗ y se, e somente se, x = y.

Demonstração (⇒)Provaremos apenas o item (d), os demais itens ficam a

cargo do leitor. Suponha que x ∗ a = y ∗ a, com x, y ∈ G. Então:

(x ∗ a) ∗ a′ = (y ∗ a) ∗ a′

=⇒ x ∗ (a ∗ a′) = y ∗ (a ∗ a′)

=⇒ x ∗ e = y ∗ e

=⇒ x = y.

Exemplo 1.3 (a) (R,+), (Z,+), (Q,+) e (C,+) são grupos abelianos;

(b) (R∗, ·), (Q∗, ·) e (C∗, ·) são grupos abelianos;

(c) Mm × n(R) = {(aij)/aij ∈ R} é um grupo aditivo abeliano;

(d) O grupo das rotações em torno de um eixo formam um grupo abeliano.

Teorema 1.1 O conjunto Zn é um grupo sob a operação adição módulo n.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 9

Teorema 1.2 Sem for um número primo, então o conjunto Z∗

m = {1, 2, ...,m−1} é um grupo sob a operação multiplicação módulo m.

Demonstração (⇒): (Z∗

m, ·) é um grupo e m não é primo então

∃ r · s > 1 tal que r · s = m

=⇒ r · s = r · s = m = 0

Absurdo pois 0 /∈ (Z∗

m, ·).(⇐): i) assotividade (obvia); ii) 1 ∈ Z∗

m e é o elemento neutro; iii) como

m é primo então todo a ∈ Z∗

m tem simétrico. Agora provamos que (Z∗

m, ·) éfechado em relação a operação “ · ”. Sejam r, s ∈ Z∗

m tal que r · s = 0 então

r · s ≡ 0 (mod m)

=⇒ r · s− 0 = m · q

=⇒ r · s = m · q

=⇒ m | rs,

como m é primo então m | r ou m | s então r = 0 ou s = 0. Absurdo, poisr e s ∈ Z∗

m. �

1.2.1 Subgrupos

Definição 1.7 Se um subconjunto H não vazio de um grupo G é fechado

sob a operação binária de G e se H forma um grupo, então diz-se que H é

um subgrupo de G e denota-se isto por H ≤ G.

Exemplo 1.4 (a) (C,+) é um grupo abeliano e Z, Q e R são subgrupos

de C;

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 10

(b) (C∗, ·) é um grupo abeliano e Q∗ e R∗ são subgrupos de C∗;

(c) Consideremos o grupo multiplicativo (R∗, ·). Mostremos que H = {x ∈R, x > 0} é um subgrupo de (R∗, ·):

Sejam a, b ∈ H então a > 0 e b > 0 então a > 0 e 1/b > 0 =⇒a ∗ b′ =⇒ a.1/b > 0 =⇒ a/b > 0,

logo a/b ∈ H então é um grupo.

Definição 1.8 Seja G um grupo finito. A ordem de G, denotada por | G |,é o número de elementos de G.

Definição 1.9 Dado um elemento a em um grupo G, se acontecer que G =

{an | n ∈ Z} então dizemos que G é um grupo cíclico gerado por a.Neste

caso escrevemos G = 〈a〉.

Definição 1.10 A ordem n de um elemento a em um grupo G {(multiplica-

tivo) ou (com identidade e)} é o menor inteiro positivo tal que an = e.

Definição 1.11 Em um grupo G, um subconjunto S de elementos com a

propriedade de que todo elemento de G pode ser escrito como um produto de

elementos de S é denominado um conjunto de geradores de G. Denota-se

isto por G = 〈S〉 e diz-se que G é gerado por S.

Exemplo 1.5 (a) (Zm,+) é cíclico, ∀ m > 1.

Zm = {0, 1, . . . , (m− 1)}. Tomando como exemplo Z2 temos que

Z2 = {0, 1}, que é gerado por 1. Vejamos: 0 · 1 = 0 e 1 · 1 = 1. E Z3,Z4, . . ., Zm, também são gerado por 1, logo temos que para m ∈ Zme a ∈ {0, 1, . . . , (m− 1)}, temos Zm = {a · 1 tal que a ∈ Zm}. Assimcomo 1 gera o grupo (Zm,+), logo (Zm,+) é cíclico.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 11

(b) Se G = 〈a〉 é um grupo cíclico de ordem 6. Sendo H = 〈a2〉, construaa tábua do grupo G/H:

· H aH

H H aH

aH aH H

Sendo G = {e, a, a2, a3, a4, a5} eH = {e, a2, a4}. EntãoG/H = {e, a2, a4} =H, G/H = {a, a3, a5} = a.H, G/H = {a2, a4, a6} = {a2, a4, e} = H,

como G é abeliano então xH = Hx, ∀ x ∈ G.

(c) Considere o conjunto dos números inteiros Z sob a operação de adição

usual. Claramente o conjunto 4Z forma um subgrupo de Z. As classes

laterais de 4Z em Z são dadas por:

0 = 0 + 4Z = {. . . ,−12,−8,−4, 0, 4, 8, 12, . . .},

1 = 1 + 4Z = {. . . ,−11,−7,−3, 1, 5, 9, 13, . . .},

2 = 2 + 4Z = {. . . ,−10,−6,−2, 2, 6, 10, 14, . . .},

3 = 3 + 4Z = {. . . ,−9,−5,−1, 3, 7, 11, 15, . . .},

4 = 4 + 4Z = 0.

O conjunto dessas classes laterais Z/4Z = {0, 1, 2, 3} forma então umgrupo quociente cuja tabela de Cayley é ilustrada abaixo:

∗ 0 1 2 3

0 0 1 2 3

1 1 2 3 0

2 2 3 0 1

3 3 0 1 2

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 12

1.3 Anéis

O estudo de anéis tem seu ponto de partida a partir da teoria de anéis de

polinômios e da teoria de inteiros algébricos, sendo que o conceito de anel

surge com o matemático alemão Julius Wilhelm Richard Dedekind (1831 -

1916).

O termo anel (Zahlring) foi estabelecido no artigo Die Theorie der al-

gebraischen Zahlkörper, Jahresbericht der Deutschen Mathematiker Vere-

iningung, Vol. 4, 1897, do matemático alemão David Hilbert (1862− 1943),

mas somente em 1914 surge a primeira definição axiomática de anéis que

foi dada pelo matemático israelense Adolf Abraham Halevi Fraenkel (1891−1965).

Definição 1.12 Um anel (A,+, ·) é um conjunto A não vazio, junto com

duas operações binárias, adição “+” e multiplicação “ ·”, tal que as seguintescondições são satisfeitas: ∀ a, b, c ∈ R:

(a) (A,+) é um grupo abeliano (A tem um elemento neutro, denotado por

0, e todo x ∈ A tem um inverso aditivo, denotado por −x);

(b) a · (b · c) = (a · b) · c;

(c) a · (b+ c) = a · b+ a · c e (b+ c) · a = b · a+ c · a.

Definição 1.13 Um anel no qual a multiplicação é comutativa, a ·b = b ·a, ∀a, b ∈ A, é um anel comutativo. Um anel A com uma identidade multiplica-

tiva 1, (∃ 1 ∈ A, ∀ a ∈ A, a · 1 = a = 1 · a) é um anel com unidade. Uma

identidade multiplicativa em um anel é uma unidade.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 13

Exemplo 1.6 (a) (Z,+, ·), (Q,+, ·), (R,+, ·), (C,+, ·) e (Zm,⊕,⊙), m >

1, são anéis comutativos com unidades;

(b) R[x] = {∑n

i=1 aixi tal que ai ∈ R, n ∈ N}, é um anel comutativo com

unidade;

(c) Mn(R) = {(aij) tal que aij ∈ R}, é um anel não comutativo com

unidade In;

(d) Qualquer corpo é um anel comutativo.

Definição 1.14 Seja (A,+, ·) um anel e B ⊆ A, B �= ∅. Dizemos que B é

um subanel de A se, e somente se,

(a) B é fechado para as operações de A, isto é, a+ b e a · b ∈ B;

(b) (B,+, ·) também é um anel.

Proposição 1.3 Sejam A um anel e, B ⊆ A, B �= ∅. Então B é um subanel

de A se e somente se,∀ a, b ∈ B, temos que:

a− b ∈ B e a · b ∈ B.

Demonstração (⇒): Se B é um subanel então B é um subgrupo de A, então

∀ a, b ∈ B, temos que a− b ∈ B. Ainda como L é subanel então B é fechado

em relação à segunda operação, ou seja, a · b ∈ B.(⇐): ∀ a, b ∈ B, temos que a − b ∈ B então L é um grupo de A. Logo

a + b ∈ B e a · b ∈ B. Para terminarmos esta prova resta mostrar que Bé um anel além de ser grupo, como já mostramos. Mas ∀ a, b, c ∈ B ⊂ A

temos a · (b · c) = (a · b) · c e a · (b+ c) = a · b+ a · c, pois A é um anel. �

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 14

Exemplo 1.7 (a) Z[i] = {a + bi : a, b ∈ Z} é um subanel de C, chamado

de anel dos inteiros de Gauss.

Definição 1.15 Seja (A,+, ·) um anel, então:

(a) Dizemos que um elemento x �= 0, x ∈ A, é um divisor de zero se existe

um elemento y �= 0 em A, tal que x · y = 0 ou y · x = 0;

(b) Em um anel comutativo (A,+, ·), com unidade, não contendo divisor

de zero diferente de zero é chamado anel de integridade ou domínio de

integridade ou simplesmente domínio, se A satisfaz a seguinte condição:

a · b = 0 então a = 0 ou b = 0;

(c) Considere que A seja um anel com unidade. Um elemento a de A

é denominado inversível em A se existir a−1 em A tal que a · a−1 =a−1 · a = 1. Se todo elemento não nulo é inversível o anel é chamadode anel de divisão.

Exemplo 1.8 (a) O anel Z dos números inteiros não tem divisores de

zero;

(b) Seja n um número natural maior do que 1 e seja Zn = {0, 1, . . . , n−1}com a adição e o produto assim definidos: se a, b ∈ Zn, então a+ b éo resto da divisão por n da soma dos números inteiros a e b e a · b éo resto da divisão por n do produto dos números inteiros a e b. Então

Zn tem divisores de zero quando e só quando n for primo. Se n não

for primo e se a e b forem números naturais tais que a · b = n então,em Zn, a · b = 0;

(c) (Z,+, ·), (Q,+, ·), (R,+, ·) e (C,+, ·) são anéis de integridade;

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 15

(d) Todo corpo é um domínio;

(e) Zm é um domínio, se e somente se, m é um número primo;

(f) Se A é um domínio então A[x] = {∑n

i=1aix

i | ai ∈ A;n ∈ N} é umdomínio. (Anel dos Polinômios com coeficientes em A na variável x).

1.4 Espaços Vetoriais

A noção comum de vetores como objetos com tamanho, direção e sentido,

juntamente com as operações de adição e multiplicação por números reais

forma o conceito básico de um espaço vetorial. Deste ponto de partida en-

tão, para definirmos um espaço vetorial, precisamos de uma uma estrutura

(V,+, ·) formada por um conjunto V de elementos, assim temos apenas que

especificar o conjunto, o corpo F, e definir as operações sobre os elementos

deste conjunto, adição em V e multiplicação por escalar em V .

Definição 1.16 Seja F um corpo. Um espaço vetorial sobre F consiste de

um grupo abeliano V sob as operações binárias, adição e multiplicação por

escalar, de cada elemento de V por cada elemento de F à esquerda, satis-

fazendo as seguintes propriedades, ∀ u, v, w ∈ V e a, b ∈ F:

(a) Associatividade: (u+ v) + w = u+ (v + w);

(b) Comutatividade: u+ v = v + u;

(c) Elemento neutro: ∃ 0 ∈ V ; u+ 0 = 0 + u = u;

(d) Elemento inverso: ∃ − u ∈ V ; u+ (−u) = (−u) + u = 0;

(e) Se 1 é a unidade de F: 1.u = u.1 = u;

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 16

(f) a · (b · u) = (a · b) · u;

(g) (a+ b) · u = au+ bu;

(h) a(u+ v) = au+ av.

Exemplo 1.9 (a) Todo corpoK é um espaço vetorial sobre o próprio corpo

K com as operações usuais de adição e multiplicação de K;

(b) O corpo R dos números reais é um espaço vetorial sobre o corpo Q dos

números racionais com as operações de adição e multiplicação de R;

(c) O corpo C dos números complexos é um espaço vetorial sobre o corpo

R dos números reais com as operações de adição e multiplicação de C;

(d) O conjunto P [K] de todas as funções polinomiais da forma:

p(x) = a0 + a1x+ a2x2 + ...+ anx

n

onde ai ∈ K ( i = 0, 1, 2, ..., n) é um espaço vetorial sobre o corpo K;

(e) O conjunto F, dado por Fn

q = {(a1, a2, ..., an); ai ∈ Fq; 1 ≤ i ≤ n},formado por n-uplas de elementos em Fq com as operações:

(a1, a2, ..., an) + (b1, b2, ..., bn) =

(a1 + b1, a2 + b2, ..., an + bn)

e

a · (a1, a2, ..., an) = (a · a1, a · a2, ..., a · an)

determina um espaço vetorial sobre o corpo Fq, onde q é uma potência

de primo.

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 17

Como veremos futuramente, um código linear de comprimento n sobre Fq

nada mais é do que um subespaço vetorial do espaço de todas as n-uplas Fnq .

Definição 1.17 Seja (V,+, ·) um espaço vetorial. Um subconjunto W ⊆ V, não vazio, será um subespaço vetorial de V , se as seguintes propriedades

são satisfeitas:

(a) Se o vetor nulo (0) ∈W ;

(b) Se u, v ∈W =⇒ u+ v ∈W ;

(c) ∀ a ∈ R; ∀ u ∈W =⇒ a · u ∈W .

Observação 1.1 Obviamente {0} e V são subespaços vetoriais do espaço

vetorial V , e são chamados de subespaços vetoriais triviais.

Exemplo 1.10 (a) Seja P ∗n ⊂ Pn, dado por P ∗n = {p(x) ∈ Pn; p(0) = 0}.Verifiquemos que P ∗n é, de fato, um subespaço vetorial de Pn.

(i) O polinomio nulo se anula em x = 0, logo, pertence a P ∗n ;

(ii) Se p(x), q(x) ∈ P ∗n =⇒ p(0) + q(0) = 0 e, portanto, p(x) + q(x) ∈P ∗n ;

(iii) Se p(x) ∈ P ∗n =⇒ λp(0) = 0, para qualquer λ ∈ R. Assim,

λp(x) ∈ P ∗n .

(b) Verifiquemos que S = {(x, y, z) ∈ R3; x + y + z = 0} é um subespaço

vetorial de R3.

(i) É claro que (0, 0, 0) satisfaz 0 + 0 + 0 = 0;

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 18

(ii) Se (x, y, z), (u, v, w) ∈ S então

(x+ u) + (y + v) + (z + w) =

(x+ y + z) + (u+ v + w) = 0,

portanto, (x, y, z) + (u, v, w) ∈ S;

(iii) Se (x, y, z) → S então λx + λy + λz = λ(x + y + z) = 0, para

qualquer λ ∈ R. Assim λ(x, y, z) ∈ S.

(c) Considere o seguinte conjunto S = {y ∈ C2(R;R); y” − y = 0} ondey” representa a derivada de segunda ordem de y. Verifiquemos que S

é um subespaço vetorial de C2(R;R).

(i) Claramente a função nula satisfaz 0”− 0 = 0;

(ii) Se y1, y2 ∈ S entao (y1+y2)”−(y1−y2) = (y”1−y1)−(y”2−y2) = 0.Logo, y1 + y2 ∈ S;

(iii) Se y ∈ S e λ ∈ R entao (λy)”− λy = λ(y”− y) = 0. Portanto, λy ∈ S.

Definição 1.18 Seja V �= {0} um espaço vetorial. Uma base de V é uma

sequência de vetores linearmente independentes (LI) (α1v1+ ...+αnvn = 0⇒α1 = ... = αn = 0) de V que também gera V .

Exemplo 1.11 (a) Os vetores de B = {(1, 0, 0), (0, 1, 0), (0, 0, 1)} formamuma base de R3. Vê-se facilmente que os vetores de B são LI, e que

todo (x, y, z) ∈ R3 se escreve como

(x, y, z) = x(1, 0, 0) + y(0, 1, 0) + z(0, 0, 1);

CAPÍTULO 1. ÁLGEBRA LINEAR SOBRE CORPOS FINITOS 19

(b) Os vetores e1, ..., en ∈ Rn onde e1 = (1, 0, . . . , 0), e2 = (0, 1, 0, . . . , 0),

. . . , en = (0, . . . , 0, 1) formam uma base de Rn.

Proposição 1.4 Sejam v1, v2, ..., vn vetores não nulos que geram um espaço

vetorial V . Então dentre estes vetores sempre podemos extrair uma base para

V .

Demonstração Se v1, v2, . . . , vn são LI, então por definição eles formam

uma base. Se v1, v2, . . . , vn são LD, então deve existir uma combinação linear

desses vetores com algum coeficiente diferente de zero, satisfazendo x1v1 +

...+ xnvn = 0. Suponha xn �= 0. Da equação acima,

vn = −x1xnv1 − . . .−

xn−1xn

vn−1

onde, vn é combinação linear de v1, v2, . . . , vn−1 e portanto v1, v2, . . . , vn−1

geram V . Se {v1, v2, . . . , vn−1} for LD, então existe uma combinação linearnão nula desses vetores resultando no vetor nulo. Portanto, podemos extrair

aquele vetor que corresponde a este coeficiente. Seguindo dessa forma, após

uma quantidade finita de passos, chegamos a um subconjunto de {v1, v2, . . . , vr}formado por r(r ≤ n) vetores LI, que ainda geram V , ou seja, formamos umabase. �

Definição 1.19 Seja V um espaço vetorial finitamente gerado. Se V =

{0} definimos a dimensão de V como sendo 0. Se V �= {0} definimos adimensão de V como sendo o número de elementos de uma base qualquer de

V . Indicaremos por dimV para designar a dimensao de V .

Definição 1.20 Um espaço vetorial V sobre um corpo F tem dimensão finita,

se existe um subconjunto finito de V cujos vetores geram V .

Capítulo 2

Corpo Finito

Entre os mais variados tipos de corpos estaremos nos detendo aos que mais

nos interessam neste trabalho, o corpos finitos.

Definição 2.1 Seja (K,+, ·) um anel comutativo, com unidade, tal que todo

elemento não nulo é inversível, dizemos que K é um corpo, se

∀ a �= 0 ∈ K, ∃ b = a−1 ∈ K,

tal que a · a−1 = 1.

Definição 2.2 Seja K um corpo e L �= ∅ ⊆ K. Então, L é um subcorpo de

K se, e somente se, (L,+, ·) é um corpo,

∀ a, b ∈ L; a− b e a · b ∈ L e ∀ a ∈ L\{0}; a−1 ∈ L.

Exemplo 2.1 (a) Os anéis (Q,+, ·), (R,+, ·) e (C,+, ·) são corpos;

(b) Q[i] = {a+ bi tal que a, b ∈ Q} é um subcorpo de C;

(c) Q[√p] = {a+ b√p tal que a, b ∈ Q} é um subcorpo de R se p > 0 e é

um subcorpo de C se p < 0.

20

CAPÍTULO 2. CORPO FINITO 21

Equivalentemente, podemos definir:

Definição 2.3 SejaK um conjunto não vazio sobre o qual podem ser definidas

as operações binárias ⊕ e ⊗, a estrutura (K, ⊕, ⊗) é um corpo se:

(a) (K, ⊕) é um grupo abeliano;

(b) (K− {0}, ⊗) é um grupo abeliano;

(c) ⊗ é distribuitiva em relação à operação ⊕.

Exemplo 2.2 (a) O conjunto K = {0, 1, 2, 3} munido com as operações

de adição ⊕ e multiplicação ⊗, definidas pelas tabelas:

⊕ 0 1 2 3

0 0 1 2 3

1 1 2 3 0

2 2 3 0 1

3 3 0 1 2

e

⊗ 0 1 2 3

0 0 0 0 0

1 0 1 2 3

2 0 2 0 1

3 0 3 2 1

representa um estrutura de corpo com uma quantidade finita de ele-

mentos.

Os corpos são ferramentas de suma importância para o estudo da teoria

dos códigos, a seguir estaremos trazendo uma abordagem mais aprofundada

sobre corpos finitos, sobre os quais os códigos estão definidos, mais especi-

ficamente os corpos Zp, que será a base para o entendimento do proxímo

capítulo.

Um corpo finito é um corpo em que o conjunto dos elementos é finito,

sendo que a sua estrutura se aplica em muitas áreas, entre elas a teoria

dos códigos (podemos nos deter aqui ao corpo binário), geometria projetiva,

CAPÍTULO 2. CORPO FINITO 22

combinatória, criptografia (estudo dos Sistemas Criptográficos Baseados em

Curvas Elípticas).

Um exemplo bem familiar é o corpo finito Fp = (Zp) dos inteiros módulo

p (p primo).

Existem corpos finitos com cardinalidade não prima (por exemplo, existe

corpo com 4 elementos). De forma geral, para todo primo p e para todo in-

teiro positivo m, existe um corpo finito com pm elementos (este é o conhecido

teorema de Galois da teoria dos corpos finitos). Mais ainda, se K é um corpo

finito, então a cardinalidade de K é uma potência de primo (seK é um corpo

finito então sua característica é um número primo p; consequêntemente existe

um subcorpo K ′ ⊆ K isomorfo a Zp; desta forma temos que K é um espaço

vetorial sobre o corpo Zp; como dimZp (K) é finita, digamos m, concluímos

que |K| = pm).

Exemplo 2.3 Seja f = z4 + z + 1. Afirmamos que o anel quociente

Z2 [x]

〈f〉

é um corpo finito com 24 elementos:

0 z2 z3 z3 + z2

1 z2 + 1 z3 + 1 z3 + z2 + 1

z z2 + z z3 + z z3 + z2 + z

z + 1 z2 + z + 1 z3 + z + 1 z3 + z2 + z + 1

Multiplicação: (z3 + z2 + 1).(z2 + z + 1) = z2 + 1, já que (z3 + z2 + 1).(z2 +

z + 1) = z5 + z + 1, e (z5 + z + 1) mod (z4 + z + 1) = z2 + 1, a tabela da

multiplicação fica como exercício ao leitor; Inversão: (z3 + z2 + 1)−1 = z2,

já que (z3 + z2 + 1) · z2mod(z4 + z + 1) = 1.

CAPÍTULO 2. CORPO FINITO 23

Após esta analise dos corpos finitos, onde já exemplificamos os de ordem

prima e binária, devemos ressaltar que existem outros corpos finitos muito

comuns no estudo de códigos lineares, que são os corpos: ternário com 3

elementos (q = 3) e o quaternário, de 4 elementos (q = 4), que serão exem-

plificados a seguir:

Exemplo 2.4 (a) O corpo ternário F3 com os elementos {0, 1, 2} tem as

seguintes tabelas de adição e multiplicação no módulo 3:

+ 0 1 2

0 0 1 2

1 1 2 0

2 2 0 1

e

. 0 1 2

0 0 0 0

1 0 1 2

2 0 2 1

;

(b) O corpo quaternário F4 com os elementos {0, 1, a, b}, admite as seguintestabelas de adição e multiplicação (F4 não é o anel dos inteiros módulo

4):

+ 0 1 a b

0 0 1 a b

1 1 0 b a

a a b 0 1

b b a 1 0

e

. 0 1 a b

0 0 0 0 0

1 0 1 a b

a 0 a b 1

b 0 b 1 a

Devemos evidenciar que não existe nenhum corpo finito em que a ordem

não seja uma potência de número primo, como exemplo, evidenciamos que

não existe um corpo de ordem 6. No entanto, temos uma infinita sequência

de corpos Zm finitos, dado por:

Z2, Z3, Z5, Z7, Z11, ... (m ∈ Z, m é primo).

Capítulo 3

Códigos Lineares

No ano de 1948, com a publicação do artigo “A Mathematical Theory of

Communication”, do engenheiro e matemático estadunidense Claude Elwood

Shannon (considerado fundador da teoria da informação), surge a teoria dos

códigos, que trabalha com sistemas de comunicação, transmissão de dados,

codificação, correção de erros, etc.

A teoria dos códigos através da sua estrutura trata da codificação, decod-

ificação, detecção e correção de erros, durante a transmissão e recepção de

dados (informações).

Hoje em nosso meio, a quase todo momento de nosso cotidiano, estamos

utilizando algum tipo de código, dos mais variados que existem, podemos nos

referir quando usamos algum meio digital, como exemplos podemos citar:

quando estamos utilizando a internet, enquanto ouvimos música de um CD

ou de uma rádio, quando assistimos a um programa de televisão, falamos ao

celular, entre muitos outros. Mas em determinados momentos podem surgir

alguns tipos de erros, como chuvisco, ruídos, turbulência, etc, podendo assim

nos dar uma informação não desejada. Diante disso a teoria dos códigos vem

24

CAPÍTULO 3. CÓDIGOS LINEARES 25

para detectar e corrigir estes erros para que possamos receber a mensagem

correta.

Um significado em termos gerais para um determinado código, para uma

melhor visualização do leitor, é a idéia de substituição simples de palavras ou

frases por algum tipo de alfabeto, por exemplo, podemos substituir a frase

“Atacar imediatamente” por “Sou Brasileiro”.

Para o envio de umamensagem, necessitamos de um sistema de comunicaao,

que segue a seguinte ordem na transmissão de dados: a mensagem será envi-

ada de uma determinada fonte, que é processada pelo codificador da fonte,

que codifica os dados em determinados símbolos (palavra código da fonte),

logo os dados passam ao codificador de canal, transformando a palavra

código da fonte em palavra código do canal, em seguida o modulador con-

verte cada símbolo da palavra código do canal, que é transmitida pelo canal

de comunicaccao ao demodulador, que converte cada símbolo da palavra

código do canal, cometendo as vezes alguns erros, após demoluda, a palavra

recebida passa ao decodificador do canal, que corrige os erros, após feita

a correção, o decodificador da fonte (operação inversa do codificador da

fonte), transmiti a mensagem para o determinado destino.

Neste capítulo estaremos abordando a classe dos códigos lineares, que são

os mais utilizados entre as famílias de códigos, utilizando-se aqui o conteúdo

estudado nos capítulos anteriores.

Um corpo finito será designado por Fq. O espaço vetorial sobre Fq de

dimensão n ∈ N será denotado por Fnq .

CAPÍTULO 3. CÓDIGOS LINEARES 26

3.1 Preliminares

Podemos representar nossa mensagem por uma sequência de dados, chamado

de Alfabeto do codigo e denotado por A. O alfabeto mais usado em teoria

dos códigos é o dos corpos binários. Esta sequência pode ser escrita por

uma informação binária, sendo que podemos definir as operações de soma e

produtdo deste alfabeto binário através dos anéis dos inteiros módulo m.

A critério de exemplo temos A = {0, 1}, e para que esta informação con-tenha o mínimo de erros, partimos para o acrescímo de símbolos ao alfabeto,

como podemos ver no código de repetição, que acrescenta o mesmo símbolo

n vezes a informação, por sua vez nosso alfabeto A poderia ser escrito por:

0 → 0000

1 → 1111

logo nosso código seria C = {0000, 1111}.

Definição 3.1 Um código C ⊂ Fnq será chamado de código linear se for umsubespaço vetorial de F

n

q .

Um código, cujo seu tamanho seja T , é designado pelo seu comprimento

n, e por sua dimensão K, denotado por [n, k]− codigo, na maioria das vezesT = 2k(k ∈ Z), e tem qk palavras códigos, sendo que a soma de duas palavras-código quaisquer é uma palavra-código e o produto de qualquer palavra-

código por elemento de Fq é uma palavra-código, de um determinado código.

Dado um código de dimensão K e {u1, u2, ..., uk} a base de C, temos:C = {λ1u1, λ2u2, ..., λkuk;λ1, ..., λ1 ∈ Fq}.

Exemplo 3.1 Seja C o [n, k] - código

C = {00000, 01011, 10110, 11101},

CAPÍTULO 3. CÓDIGOS LINEARES 27

assim temos que n = 5, k = 2 e T = 4.

Definição 3.2 Dados dois vetores u, v ∈ Fnq , a distância entre u e v é de-nominada distância de Hamming, definida como:

d (u, v) = |{i : ui �= vi}|

onde u = (u1, ..., un) e v = (v1, ..., vn).

A distância de Hamming entre duas palavras-código, u e v, é o número de

coordendas distintas entre estes vetores, sendo que distância mínima (menor

distância de Hamming entre quaisquer duas palavras-código) de um código

C, determina o número de erros para serem corrigidos, ou seja, um código

pode detectar até d − 1 erros e corrigir até t erros, onde t = [d − 12]. Um

[n, k]− codigo com distância mínima d é denotado por [n, k, d]− codigo.

Exemplo 3.2 (a) Calculando a distância de Hamming das palavras-código

durante uma certa transmissão de dados, sendo u = (11101) enviada e

v = (10110) recebida, então temos:

d(11101, 10110) = 3;

(b) Dado o código linear C = {(00000), (01011), (11101)} , devemos encon-trar a distância mínima entre as palavras-códigos e o número de erros

a serem corrigidos:

d(00000, 01011) = 3;

d(00000, 11101) = 4;

d(01011, 11101) = 3;

d(c) = min{d(x, y)} = 3;

t = [d − 1

2] =

3 − 12

= 1.

CAPÍTULO 3. CÓDIGOS LINEARES 28

Definição 3.3 Dados um elemento a ∈ Fnq e um número natural t > 0 ,

definimos o disco e a esfera de centro a e raio t como sendo, respectivamente,

os conjuntos:

(a) D(a, t) = {u ∈ Fnq : d(u, a) ≤ t};

(b) S(a, t) = {u ∈ Fnq : d(u, a) = t}

Exemplo 3.3 (a) Considere

F42 = {(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 1, 0, 0), (1, 0, 0, 0),

(1, 0, 0, 1), (1, 0, 1, 0), (1, 1, 0, 0), (0, 1, 0, 1), (0, 1, 1, 0),

(0, 0, 1, 1), (1, 1, 1, 0), (0, 1, 1, 1), (1, 0, 1, 1), (1, 1, 0, 1),

(1, 1, 1, 1)},

Assim, para a = (0, 0, 0, 0) e t = 1, temos que :

D(a, 1) = {(0, 0, 0, 0), (0, 0, 0, 1),

(0, 0, 1, 0), (0, 1, 0, 0), (1, 0, 0, 0)}

e

S(a, 1) = {(0, 0, 0, 1), (0, 0, 1, 0),

(0, 1, 0, 0), (1, 0, 0, 0)}

Note que Fnq = D(a, 4).

(b) Considere

F32 = {(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1),

(1, 0, 1), (1, 1, 0), (0, 1, 1), (1, 1, 1)}

CAPÍTULO 3. CÓDIGOS LINEARES 29

Assim, para a = (0, 0, 0) temos que :

D(a, 2) = {(0, 0, 0), (0, 0, 1), (1, 0, 0), (0, 1, 0),

(1, 0, 1), (1, 1, 0), (0, 1, 1)}

e

S(a, 2) = {(1, 0, 1), (0, 1, 1), (1, 1, 0)}.

Definição 3.4 Seja C ⊂ Fnq um código com distância mínima d e seja t =

[d − 12]. O código C será dito perfeito se: ∪c ∈ CDt(c, t) = Fnq .

Exemplo 3.4 O código C = {(000), (111)} ⊂ F32 que possui raio de empa-

cotamento t = 1 é perfeito. Como c e c′ são palavras distintas de C, entãoDt(c) ∩Dt(c′) = :

D1(000) ∩D1(111) = {(000), (100), (010), (001)} ∩

{(111), (110), (011), (101)}

=

e

D1(000) ∪D1(111) = F32.

Logo C é perfeito.

Definição 3.5 Seja α ∈ Fnq , define-se o peso de Hamming de α como suadistância à palavra nula, dado pelo número inteiro:

w(α) = |{i : αi �= 0}| , ou seja, w(α) = d(α, 0).

Definição 3.6 O peso mínimo de um código C é o inteiro:

w(C) = min{w(v) : v ∈ C − {0}}.

CAPÍTULO 3. CÓDIGOS LINEARES 30

Proposição 3.1 Seja um código linear C ⊂ Fnq , com distância mínima d,

temos que:

(a) Para quaisquer u, v ∈ Fnq , d(u, v) = w(u− v);

(b) d(C) = w(C).

Demonstração O item a provém das definições de métrica e peso de Ham-

ming, e o item b além da métrica de Hamming, decorre do peso do código C,

de fato temos:

(a) d(u, v) = |{i : ui �= vi}| = |{i : ui − vi �= 0}|

(b) ∀ u, v ∈ C, com u �= v , temos que u− v = z ∈ C então d(u, v) = w(z).Logo, o conjunto {w(z) : z ∈ C − {0}} = {d(u, v) : u, v ∈ C e u �= v}então d = min{d(u, v) : u, v ∈ C e u �= v} = min{w(z) : z ∈ C −{0}} = w(C).

Antes de entrarmos no proxímo sub item deste capítulo, vamos verificar

a maneira de como podemos representar um código linear.

Com vimos anteriormente, já sabemos por definição que um código linear

C é um subespaço vetorial do espaço vetorial Fnq , então pela álgebra lin-

ear, temos duas maneiras de descrevê-lo, sendo como imagem (Im) ou como

núcleo (Ker) de uma transformação linear. Para descrever o código linear

C como a imagem, tomamos uma base v1, v2, . . . , vk ∈ C e consideramos a

transformação linear T :

CAPÍTULO 3. CÓDIGOS LINEARES 31

T : Fkq → Fnq

(x1, . . . , xk) �→ (x1v1 + . . .+ xkvk)

Como o núcleo de T é nulo, temos que T é injetora. No entanto para

construirmos C ⊂ Fn

q basta mostrarmos uma transformação linear injetora

T : Fkq → Fnq , definindo o código linear C = Im(T ).

Considerando a transformação linear:

T : F22 → F42

(a1, a2) �→ (a1, a2, a2, a1),

Temos que T (a1, a2) = (0, 0, 0, 0), se (a1, a2, a2, a1) = 0, ou seja, a1 =

a2 = 0. Logo Ker(T ) = {(0, 0)} e Im(T ) = C. Portanto T é injetora. Comoa1, a2 ∈ F2 , temos que |C| = 22 = 4 e:

C = {(0, 0, 0, 0); (1, 0, 0, 1); (0, 1, 1, 0); (1, 1, 1, 1)}

Como d(C) = w(C) = 2 então C corrige t = 0 erros, ou seja, é um código

ineficiente.

3.2 Matriz geradora e de paridade

Como um código linear é um subespaço vetorial, logo o que o gera é um

conjunto de vetores que forma uma base para este subespaço. Se C é um

[n, k, d] − codigo em Fnq , podemos tomar uma base ordenada {vi, ..., vk} =B ⊂ C onde vi = (vi1, vi2, ..., vin), com 1 ≤ i ≤ k. Logo definimos a matrizde ordem k × n, cujas linhas são os vetores da base, da seguinte forma:

CAPÍTULO 3. CÓDIGOS LINEARES 32

G =

vi...

vk

=

v11 v12 · · · v1n...

.... . .

...

vk1 vk2 · · · vkn

,

A matriz G é denominada de matriz geradora de C.

Ressaltamos que a matriz geradora não é única, ela varia de acordo com

a base escolhida.

Podemos obter uma nova matriz G′ para gerar o mesmo código, através

de sequências de operações elementares de escalonamento: permutação de

duas linhas, multiplicação de uma linha por um elemento não nulo de Fq,

substituição de uma linha por ela mesma somada a um múltiplo escalar de

outra linha.

Consideremos a transformação linear definida por:

T : Fk

q → Fn

q

a �→ a ·G

Temos então que C = {a ·G : a ∈ Fkq}.

Definição 3.7 Uma matriz geradora G de um [n, k]−codigo C está na formapadrão se G = (Idk|A), sendo que Idk é a matriz indentidade k×k e A umamatriz k × (n− k).

Exemplo 3.5 Seja a matriz geradora G na forma padrão:

G =

1 0 0 0 1 1

0 1 0 1 0 1

0 0 1 1 1 0

,

CAPÍTULO 3. CÓDIGOS LINEARES 33

então temos k = 3 e n = 6, ou seja, [n, k] = [6, 3] − codigo. Dado um vetor

u = (101), temos que

C = u ·G =

u1 · v11 + u2 · v21 + u3 · v31, ...,

u1 · v16 + u2 · v26 + u3 · v36= (101101).

Para definição a seguir, denotaremos o produto interno entre dois vetores

por 〈a, b〉, ou seja, ∀ u, v, w ∈ Fnq e λ ∈ Fq, temos:

〈u, v〉 = u1v1 + u2v2 + ...+ unvn = u · v =∑

i = 1

n

uivi,

desta operação temos algumas propriedades usuais:

(a) 〈u, v〉 = 〈v, u〉;

(b) 〈u+ w, v〉 = 〈u, v〉+ 〈w, v〉;

(c) 〈λu, v〉 = λ 〈u, v〉.

Definição 3.8 Dado o código linear C ⊂ Fnq , define-se o código dual da

seguinte forma:

C⊥ = {v ∈ Fnq : 〈v, u〉 = 0, ∀ u ∈ C}.

Através da dimensão de um código dual, que é dada por n−k, podemos es-crever uma base {h1, h2, . . . , hn−k} paraC⊥, sendo onde hi = (hi1, hi2, ..., hin),

CAPÍTULO 3. CÓDIGOS LINEARES 34

com 1 ≤ i ≤ n − k, assim podemos escrever a matriz geradora de C⊥, de

ordem (n− k)× n:

H =

h1...

hn−k

=

h11 h12 · · · h1n...

.... . . · · ·

h(n−k)1 h(n−k)2 · · · h(n−k)n

Esta matriz H recebe o nome de matriz verificação de paridade do código

C, a partir dela podemos concluir que se uma n-upla é uma palavra-código

do código C. Logo uma n-upla será uma palavra-código se e só se, H ·xt = 0(vetor nulo), onde xt denota a transposta de x.

Teorema 3.1 Seja C ⊂ Fnq um código de dimensão k gerado pela matriz

G = (Idk|A). Então H = (−AT |Idn−k) matriz verificação de paridade de Cé a matriz geradora de C⊥.

Demonstração De fato por Idn−k as linhas de H são LI, logo geram um

subespaço vetorial W de dimensão n − k. As linhas de H são ortogonais as

linhas de G, pois H.GT = 0. Portanto os vetores formados pelas linhas de H

estão contidos em C⊥, logoW ⊂ C⊥. Como a dimW = n−k = dim(C⊥) en-tão estes subespaços coicidem e concluímos que H =

(−AT |Id

n−k

)gera C⊥.�

Não podemos nos esquecer que como existem inúmeras maneiras de se

escolher uma base para ummesmo código, então um número igual de matrizes

geradoras G também é possível, logo podemos concluir que existe mais de

uma matriz de paridade H.

CAPÍTULO 3. CÓDIGOS LINEARES 35

Exemplo 3.6 (a) Considere a matriz G na forma padrão, dada por:

G =

1 0 0 1 0

0 1 0 0 1

0 0 1 1 1

,

então temos que

H =

1 0 1 1 0

0 1 1 0 1

.

(b) Suponha o código C sobre F2 com matriz geradora G abaixo. Vamos

determinar se o vetor v = (1010101) ∈ F72 pertence a C.

G =

1 0 0 0 1 0 1

0 1 0 0 1 1 1

0 0 1 0 0 1 1

0 0 0 1 1 1 0

= (Id4|A) =⇒ −At

=

1 1 0 1

0 1 1 1

1 1 1 0

,

logo podemos escrever H,

H =

1 0 0 1 1 0 1

0 1 0 0 1 1 1

0 0 1 1 1 1 0

= (Id3| −AT ),

Agora basta verificar se H · vt = 0, então:

CAPÍTULO 3. CÓDIGOS LINEARES 36

H · vt =

1 0 0 1 1 0 1

0 1 0 0 1 1 1

0 0 1 1 1 1 0

·

1

0

1

0

1

0

1

=

1 + 1 + 1

1 + 1

1 + 1

=

1

0

0

�= (000),

logo não obtivemos o vetor nulo, portanto v não é uma palavra código

de C.

(c) Seja um [5, 2]− codigo ∈ F2, onde temos a seguir a matriz de paridadeH. Verificaremos se z = (10110) pertence ao código.

H =

1 0 1 0 0

1 1 0 1 0

0 1 0 0 1

,

basta então verificar se H · zt = 0:

H · zt =

1 0 1 0 0

1 1 0 1 0

0 1 0 0 1

·

1

0

1

1

0

CAPÍTULO 3. CÓDIGOS LINEARES 37

=

1 + 0 + 1 + 0 + 0

1 + 0 + 0 + 1 + 0

0 + 0 + 0 + 0 + 0

=

0

0

0

= (000),

ou seja, z ∈ C.

Proposição 3.2 (Limitante de Singleton): A distância mínima (peso mín-

imo) de um [n, k, d]− codigo linear C ⊂ Fnq satisfaz:

d ≤ n− k + 1

Demonstração Considere um subespaço linear W ⊆ Fnq dado por W =

{(a1, . . . , an) ∈ Fnq | ai = 0; ∀i ≥ d} e d o menor peso de uma palavra-código não nula. Logo para um a ∈ W temos que w(a) ≤ d − 1, portantoW ∩ C = {0}. Como dimW = d− 1 temos,

dimC + dimW = dim(C +W ) + dim(C ∩W )

= dim(C +W ) ≤ n

Logo k + d− 1 ≤ n =⇒ k + d ≤ n+ 1 =⇒ d ≤ n− k + 1. �

Satisfazendo a igualdade do Limitante de Singleton (d = n − k + 1),temos excelentes códigos os denominados MDS (maximum distance separa-

ble), como exemplo o código de Reed-Solomon.

3.3 Código de Hamming

Vamos nos deter aqui ao código binário de Hamming, que é definido sobre

o corpo Z2, que serve para a detecção de erros em transmissões de dados

CAPÍTULO 3. CÓDIGOS LINEARES 38

binários, mas não apenas para detectar o erro de um bit, mas também para

a localização do bit errado . Este código foi implementado por Richard

Hamming em 1950.

Proposição 3.3 Seja C um código binário e seja H uma matriz de teste

para C. Se todas as colunas de H são não-nulas e distintas, então a distância

mínima de C é pelo menos três.

Um código binário de Hamming, é um exemplo de código cuja a distância

mínima é pelo menos 3, sendo que a sua matriz verificação de paridade é a

matriz Hr de ordem r × n, onde:

Hr = {x ∈ F2r−12 : Hr · xt = 0}

O comprimento das palavras deste código é n = 2r − 1, pois o númerode colunas da matriz Hr é 2r − 1, a dimensão é k = n − r = 2r − r − 1, ecomo a distância é pelo menos 3, temos então que os parâmetros de Hr são

[2r − 1, 2r − r − 1, 3], para qualquer r > 1.

Exemplo 3.7 (a) Seja r = 2, então:

Hr =

1 0 1

0 1 1

é a matriz verificação de paridade do código H2 = {(000), (111)}. Ob-serve que quaisquer duas colunas de Hr são LI e que h3 = h1 + h2.

Portanto d(H2) = 3 e os parâmetros de H2 são [3, 1, 3].;

CAPÍTULO 3. CÓDIGOS LINEARES 39

(b) Dado o código [7, 4], a matriz verificação de paridade que gera o código

H3 é:

H3 =

1 0 0 0 1 1 1

0 1 0 1 0 1 1

0 0 1 1 1 0 1

.

Teorema 3.2 (Limitante de Hamming) Seja um [n, k, d]− codigo C ⊂ Fn2 eseja t = [d - 1

2] então:

qn−k ≥(n

0

)+

(n

1

)+ ...+

(n

t

).

Logo o código que obter a igualdade na expressão acima, será dito que é

um código perfeito, assim podemos concluir que o código de Hamming Hr é

perfeito.

3.4 Código de Reed-Solomon

O código de Reed-Salomon é um código corretor de erros, que foi desenvolvido

para efetuar a correção de erros múltiplos em diversos sistemas. Este código

é uma importante subclasse dos códigos de blocos não-binários BCH (Bose-

Chaudhuri-Hocquenghem).

O código de Reed-Salomon é uma forma de FEC (Forward Correction

Error: procura inferir e imediatamente corrigir erros pela característica do

sinal recebido) e é utilizado em diversas aplicações em comunicação digital e

armazenamento, como é o caso do ADSL e comunicação via celular.

Um código de Reed-Solomon é denotado como RS, com símbolos de b-

bits, onde n é o número total de bits por palavra do código e k é o número

de bits de informação por palavra de código.

CAPÍTULO 3. CÓDIGOS LINEARES 40

Por exemplo, se forem utilizados grupos de 6 bits, pode-se gerar códigos

de Reed-Solomon. Um código RS − [64, 40] consisti em palavras código de

64×6 = 384 bits, cada uma contendo 240 bits de informação, tratados como40 símbolos de 6 bits. Um decodificador Reed-Solomon pode corrigir até

t símbolos incorretos, onde t = n−k2, ou seja, pode-se corrigir então neste

exemplo t = 64 − 402

= 12 símbolos.

Exemplo 3.8 (a) Dado um RS − [255, 223], então teremos, 223 bits deinformação, 32 bits de correcção de erros e corrige até 16 bits errados.

Teorema 3.3 Seja Am (m um natural menor do que q) um conjunto de

polinômios, que tem grau no maxímo m,

Am = {a0 + a1x+ ...+ amxm : ai ∈ Fq},

então da aplicação

ϕ : Am → Fqq

p �→ (p (0) , p (α1) , . . . , p (αq−1))

que é linear e injetora, temos que a imagem de ϕ é o código Reed-Solomon

[q,m+ 1, q −m].

3.5 Considerações Finais

A teoria dos códigos cresce gradativamente, junto a evolução dos meios de

comunicação (telefone, celular, internet, televisão) e a cada dia se tornando

mais acessível a toda sociedade. Por causa deste acesso, logo nossos pro-

fessores de matemática do ensino secundário poderão instigar seus alunos a

uma pesquisa sobre códigos lineares.

CAPÍTULO 3. CÓDIGOS LINEARES 41

Nosso trabalho visa em relembrar conceitos de algebra e mostrar as definições

de códigos lineares, para que o leitor ganhe interesse pelo assunto, para que

o mesmo possa posteriormente degustar de uma leitura mais profunda.

Como a teoria dos códigos é um assunto muito novo esperamos que este

assunto seja tema de muitas monografias a serem escritas, pois existe muito

a se descobrir.

Referências Bibliográficas

[1] BERLEKAMP, E. R. Key papers in the development of coding theory.

IEEE Press, 1974.

[2] BOLDRINI, J. L. et al. Álgebra linear. Editora Harbra Ltda, 1980.

[3] CRISSAFF, Lhaylla.Uma construção algébrica de códigos geométri-

cos. Dissertação (Mestrado). Orientador: Nicolau Corção Saldanha; co-

orientador: Miriam Del Milagro Abdón. Rio de Janeiro : PUC-Rio, De-

partamento de Matemática, 2005.

[4] DOMINGUES, H. H.; IEZZI, G. Álgebra moderna. Atual Editora, 1982.

[5] GUNDLACH, B. H. História dos números e numerais. Trad. Hygino H.

Domingues. São Paulo, Atual, 1992.

[6] MELO, F. D. A Teoria de Galois e os Números Algébricos. Ar-

tigo (Pós-Graduação). Orientador: Trajano Pires da Nóbrega Neto.

IBILCE/UNESP - Sao José do Rio Preto - SP, Brasil.

[7] PLESS, V. S.; HUFFMAN, W. C. Handbook of coding theory. Elsevier,

1998.

[8] SHANNON, C. E. A mathematical theory of communication. Bell System

Tech. J. 27 (1948), 379-423.

42

REFERÊNCIAS BIBLIOGRÁFICAS 43

[9] VERA, Paula Fernanda. Código Binário de Golay Estendido em Es-

paços Poset. Monografia (Graduação). Orientador: Luciano Panek. Foz

do Iguaçu: UNIOESTE-PR, Centro de Engenharias e Ciências Exatas,

2007.