Documente Academic
Documente Profesional
Documente Cultură
Maringá - PR
2018
MAYCOW GONÇALVES CARNEIRO
Maringá - PR
2018
À minha esposa, minha mãe, irmão e irmãs.
Agradecimentos
Agradeço primeiramente à Deus por tudo! Agradeço também ao professor Eduardo Brandani por
aceitar me orientar sem me conhecer pessoalmente, e sabendo que eu só teria 2 anos de afastamento
para me dedicar em tempo integral ao doutorado. Também gostaria de agradecer ao professor Emer-
son Vitor Castelani pela ajuda com a parte computacional para gerar os exemplos apresentados.
Agradeço ainda à todo apoio recebido de amigos e familiares ao longo do processo de disciplinas,
qualificação e da preparação da tese. Por fim, e não menos importante, muito pelo contrário, agra-
deço à minha esposa, pela ajuda de todas as formas imagináveis para que eu conseguisse alcançar
meus objetivos!
ii
“O único lugar onde o sucesso vem antes do trabalho é no dicionário.”
Albert Einstein
“Quanto mais aumenta nosso conhecimento, mais evidente fica nossa ignorância”
John F. Kennedy
“Talvez não tenha conseguido fazer o melhor, mas lutei para que o melhor fosse feito.
Não sou o que deveria ser, mas Graças a Deus, não sou o que era antes”
Marthin Luther King
Resumo
Desde que foi proposto por A. Terras em [13], o Semi-Plano Superior Finito só foi utilizado
em um trabalho, [35], como ambiente para gerar códigos corretores de erros. Neste trabalho,
analisamos algumas propriedades do modelo proposto por Terras para então gerar duas classes
de códigos corretores de erros: a primeira baseada no trabalho de Tiu e Wallace [35], sendo
lineares e binários e a segunda utilizando as propriedades geométricas do ambiente proposto
por A. Terras, gerando códigos não lineares e não binários sobre o Semi-Plano Superior Finito.
iv
Abstract
Since it was proposed by A. Terras in [13] , the finite upper half plane was used only once,
[35], as an environment in order to generate error correcting codes. In the present work, we
analize some properties of the model proposed by Terras to generate then two classes of error
correcting codes, the first one based in the work of Tiu and Wallace [35], being linear and
binary and the second one using the geometric properties of the environment proposed by A.
Terras, generating non linear and non binary codes over Finite Upper Half Planes.
v
Sumário
Resumo iv
Abstract v
Introdução 1
5 Considerações Finais 52
Referências Bibliográficas 58
vi
Introdução
Após o trabalho de C. E. Shannon [30] em 1948, a teoria dos códigos corretores de erros
passou a ser fortemente estudada por matemáticos e engenheiros.
Sempre que vamos transmitir ou armazenar dados, fazemos uso dos códigos corretores de
erros, os quais introduzem dados extras aos dados originais, a fim de que possamos recuperar
os dados originais de forma correta, mesmo que tenham ocorrido erros devido à ruídos durante
a transmissão ou armazenamento dos dados. O estudo concentra-se então em determinar uma
forma eficaz e eficiente de se introduzir tais dados extras nos dados originais.
Para se introduzir tais dados extras, tomamos um conjunto A com q elementos, chamado
alfabeto, e em seguida determinamos o conjunto Ak , com k natural, e identificamos cada dado
com um elemento de Ak . Tal conjunto é chamado código da fonte. Em seguida, introduzimos
redundâncias aos elementos do código da fonte, que permitam detectar e corrigir erros. O
novo código obtido após este processo, é então, um subconjunto próprio de An , com n natural
e n > k, chamado código de canal. O canal é o meio físico pelo qual se transmitirá os dados.
Neste sentido, da transmissão dos dados pelo canal, em um sistema de comunicação,
a informação transmitida é prejudicada, como mencionado, por um ruído agindo no canal
de transmissão. Apesar de suas características físicas, o ruído é tratado por um modelo
probabilístico, especificando sua função densidade de probabilidade. Assim, o sinal que será
transmitido é processado com o objetivo de controlar a ação do ruído. Um componente
muito importante do transmissor é o modulador. Para uma modulação eficiente do sinal, o
modulador utiliza uma constelação de sinais, a qual é um conjunto finito associado à uma
estrutura algébrica. Como mencionado, geralmente, o sistema é modulado em um ambiente
Euclidiano. Porém, considerar ambientes não Euclidianos também têm se mostrado ser uma
possibilidade promissora.
Uma destas possibilidades é considerar constelações de pontos no plano hiperbólico. O
trabalho [32] foi o primeiro a propor um sistema de comunicação tendo como ambiente o
plano hiperbólico. O principal potencial para a teoria dos códigos no plano hiperbólico é a
1
2
para o caso onde o corpo finito tem característica ímpar, [13], [29], [34], quanto para o caso
onde a característica é par, [2], [14]. Além disso, provamos alguns resultados que só foram
considerados para o caso ímpar em [29] e [34] , mas que serão utilizados neste trabalho para
o caso par.
No capítulo 3, utilizamos a idéia do trabalho de Tiu e Wallace [35], onde os autores
geram um código linear binário considerando a norma dos elementos do Semi-Plano Superior
Finito com a característica ímpar, tomando a entrada da matriz igual a 1 se tal norma é um
não quadrado no corpo finito. Como para corpos de característica par tal construção não é
possível, apresentamos então, resultados que nos mostram que conseguimos gerar códigos de
forma semelhante também no caso par. Além disso, mostramos que os códigos que obtemos
neste caso, são códigos quase-cíclicos, algo não apresentado por Tiu e Wallace no caso ímpar.
Por fim, no Capítulo 4, apresentamos uma nova classe de códigos considerando a geometria
do Semi-Plano Superior Finito. Tais códigos não são lineares e não são binários e utilizam
grupos Fuchsianos, definidos dentro deste ambiente, para serem gerados.
Capítulo 1
Neste capítulo, veremos alguns resultados básico sobre códigos corretores de erros bem
como sobre corpos finitos, os quais serão necessários no decorrer deste trabalho. Os resultados
apresentados neste capítulo sobre corpos finitos, podem ser encontrados em sua maioria em
[8], [22] e [31], enquanto que os resultados sobre os códigos corretores de erros podem ser
encontrados principalmente em [16], [18] e [23]
d : X × X −→ R
4
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 5
(i) Temos por definição d(u, v) = |{i : ui 6= vi , 1 ≤ i ≤ n}| ≥ 0. Caso d(u, v) = 0 teremos
ui = vi para i = 1, ..., n logo u = v. Por outro lado, se u = v então uj = vj para
j = 1, ..., n portanto d(u, v) = 0.
(iii) Para demonstrar esta propriedade podemos analisar apenas a i-ésima coordenada de u,
v e w. Temos dois casos para analisar, se a contribuição de ui e vi para d(u, v) é zero
ou um. Caso a contribuição seja zero, então a contribuição das i-ésimas coordenadas de
d(u, w) + d(w, v) certamente será maior ou igual à contribuição da i-ésima coordenada
de d(u, v). Por outro lado, se a contribuição é igual a 1 então ui 6= vi , logo, se wi = ui ,
teremos wi 6= vi , da mesma forma, se wi = vi , teremos wi 6= ui , portanto a contribuição
da i-ésima coordenada de d(u, w) + d(w, v) certamente será maior ou igual a 1 e temos
o resultado.
Definição 1.3. Dados um elemento c ∈ An e um número real r > 0 definimos a bola e a esfera
de centro c e raio r como sendo, respectivamente, os conjuntos:
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 6
B(c, r) = {u ∈ An : d(u, c) ≤ r}
S(c, r) = {u ∈ An : d(u, c) = r}
d = min{d(u, v) : u, v ∈ C e u 6= v}
Definição 1.5. Um código C ⊂ Fnq será chamado código linear se for um subespaço vetorial
de Fnq .
Definição 1.6. Dado x ∈ Fnq , definimos o peso de x como sendo o número inteiro
T : Fkq −→ Fnq
x 7→ xG
Definição 1.8. Dizemos que uma matriz geradora G de um código C está na forma padrão
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 8
se tivermos
G = (Idk |A),
Nem sempre conseguimos uma matriz geradora para um código C na forma padrão,
0
porém, conseguimos um código equivalente C com matriz geradora na forma padrão. Este
resultado é provado em [16], página 87.
Como visto na Definição 1.5, um código é linear se for um subespaço vetorial de Fnq .
Porém, se não tivermos tal restrição, ainda assim podemos ter um código com parâmetros
(n, M, d), onde n é o comprimento do código, M é o número de palavras e d é o maior
número tal que, quaisquer duas palavras do código diferem em pelo menos d coordenadas,
onde utilizamos a distância de Hamming vista em 1.2. Portante, neste caso, a soma de duas
palavras do código pode não ser uma palavra do mesmo, ao contrário do caso linear. Como
mencionado, neste trabalho obteremos uma família de códigos lineares, onde para isto, utili-
zaremos um corpo finito de caracterísca par para a construção do código, tornando-o binário
em seguida, conforme veremos, e uma família de códigos não lineares, onde utilizaremos um
corpo podendo ter característica par ou ímpar.
a + (b + c) = (a + b) + c;
ii Existe um elemento neutro e ∈ R com respeito à operação +, ou seja, tal que para todo
a ∈ R temos
a + e = e + a = a;
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 9
a + d = d + a = e;
a + b = b + a;
a · (b · c) = (a · b) · c;
a · (b + c) = a · b + a · c e (a + b) · · · c = a · · · c + b · · · c.
ii Para cada elemento a ∈ F existe um elemento a−1 ∈ F tal que a · a−1 = a−1 · a = 1.
Neste trabalho, utilizaremos apenas corpos finitos, ou seja, um corpo F com um número
finito de elementos.
Definição 1.12. A característica do corpo F é o menor inteiro n tal que n.a = 0 para todo
a ∈ F. Se não existe tal inteiro, dizemos que F tem característica 0.
Teorema 1.2. [22] Um corpo finito possui como característica um número primo.
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 10
(a + b)p = ap + bp .
n n n
O resultado anterior pode ser estendido para (a + b)p = ap + bp . Como mencionado
anteriormente, trabalharemos com corpos da forma F2r , ou seja, um corpo de característica
2. Assim, pelo teorema anterior, obtemos (x + y)2 = x2 + y 2 .
Pela Definição 1.11, para p primo, podemos tomar Fp = {0, 1, 2, . . . , p − 1}, ou seja, o
conjunto dos inteiros módulo p. Porém, como trabalharemos com Fpr , e pr não é primo para
r > 1, precisaremos de outra forma para representar os elementos do corpo Fpr . Para isto,
precisamos da noção de polinômios irredutíveis sobre corpos finitos.
Primeiramente, lembramos que um polinômio sobre o corpo F é uma expressão da forma
p(x) = a0 + a1 x + a2 x2 + · · · + an xn onde ai ∈ F para 0 ≤ i ≤ n e n ∈ N. O anel formado
por polinômios sobre F com as operações de soma e multiplicação de polinômios, é chamado
anel de polinômios sobre F e denotado por F[x].
Definição 1.13. Um polinômio p(x) ∈ F[x] é dito irredutível sobre F (ou irredutível em F[x]),
se p(x) tem grau positivo e p(x) = f (x)g(x) com f (x), g(x) ∈ F[x], implica que f (x) ou g(x)
é um polinômio constante.
Teorema 1.4. [22] Um elemento α ∈ F é uma raíz múltipla de um polinômio p(x) ∈ F[x] se,
0
e somente se, é raíz de ambos, p(x) e p (x).
Dizemos que um elemento ζ ∈ F é algébrico sobre K se este elemento satisfaz uma equação
polinomial não trivial sobre K, ou seja, a0 + a1 ζ + · · · + an−1 ζ n−1 + an ζ n = 0, com ai ∈ K
não todos nulos. Uma extensão L de K, onde todos os elementos são algébricos sobre K, é
chamada de extensão algébrica de K.
Afim de construirmos o corpo Fpr , utilizaremos estes conceitos conforme o resultado
abaixo.
Teorema 1.5. [22] Seja p(x) ∈ F[x] um polinômio irredutível sobre F. Então existe uma
extensão algébrica simples de F com uma raíz de p(x) como elemento definidor.
Teorema 1.6. [23] Seja p(x) um polinômio irredutível de grau r sobre Fp . Então o conjunto
de todos os polinômios de grau menor ou igual a r − 1 com coeficientes em Fp e operações
realizadas módulo p(x), formam um corpo de ordem pr .
Exemplo 1.3. Como exemplo, vejamos o caso de F8 = F23 , para isto consideremos o polinômio
p(x) = x3 + x + 1 que é irredutível sobre F2 , então os polinômios mônicos de grau menor ou
igual a 3 − 1 = 2 são: 0, 1, x, x2 , 1 + x, 1 + x2 , 1 + x + x2 , x + x2 e considerando as operações de
soma e multiplicação destes polinômios módulo p(x), obtemos a representação dos elementos
de F8 como polinômios, F8 = {0, 1, x, x2 , 1 + x, 1 + x2 , 1 + x + x2 , x + x2 }. Note que se
considerarmos ζ uma raíz do polinômio p(x) = x3 + x + 1 obtemos uma extensão algébrica
de F2 dada por F2 (ζ) = {0, 1, ζ, ζ 2 , 1 + ζ, 1 + ζ + ζ 2 , ζ + ζ 2 }.
Note que, no exemplo anterior, os corpos obtidos foram essencialmente os mesmo, apenas
representados de forma diferente. Além disso, se tomarmos outro polinômio irredutível para
construirmos o corpo, obteremos um corpo isomorfo ao anterior, o que é confirmado pelo
teorema a seguir.
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 12
Lembrando que a ordem de um corpo finito é o número de elementos deste corpo, temos
o seguinte resultado.
Consideremos o corpo finito Fq . Denotaremos por F∗q o conjunto dos elementos não nulos
de Fq .
Lembremos que um grupo multiplicativo finito é cíclico se o mesmo consiste dos elementos
1, a, a2 , . . . , aq−1 com aq = 1, onde a é um elemento não nulo do grupo. Neste caso, a é o
gerador do grupo e escrevemos G = hai.
Teorema 1.8. [23] F∗q é um grupo multiplicativo cíclico de ordem pr − 1, dado que q = pr .
Definição 1.16. Um gerador do grupo multiplicativo cíclico F∗q é chamado elemento primitivo
de Fq .
Teorema 1.10. [22] Seja Fp um corpo finito e Fq uma extensão finita do corpo. Então Fq
é uma extensão algébrica simples de Fp e todo elemento primitivo de Fq serve como um
elemento definidor de Fq sobre Fp .
Pelos teoremas acima, se tomarmos α um elemento primitivo de Fpr , então este será
um elemento definidor de Fpr sobre Fp , ou seja, os elementos de Fpr serão dados por Fpr =
r
{0, α0 = 1, α, α2 , . . . , αp −2 }. Utilizaremos esta representação para os elementos de Fpr , ou
seja, como potências de um elemento primitivo.
Assim, para construirmos os elementos de Fpr , tomaremos um polinômio irredutível p(x)
de grau r sobre Fp cuja raíz, digamos α, em Fpr é um elemento primitivo de Fpr . Neste caso
teremos a representação desejada dos elementos de Fpr como potências de um único elemento.
Exemplo 1.4. Novamente, se utilizarmos p(x) = x3 +x+1 para construirmos o corpo F8 = F23 ,
então, tomando α uma raíz deste polinômio, podemos escrever os elementos de F8 como
sendo potências de α. Temos que F8 = {0, 1, α, α2 , α3 , α4 , α5 , α6 }. Note que, como p(α) = 0,
obtemos α3 = α + 1, α4 = α2 + α, α5 = α2 + α + 1 e α6 = α2 + 1, e assim podemos
representar os elementos de F8 como potências de α mais o elemento nulo, ou seja, F8 =
{0, 1, α, α2 , α3 , α4 , α5 , α6 } e este corpo é essencialmente o mesmo obtido no Exemplo 1.3.
Porém q(x) = x3 + x2 + 1 também é irredutível sobre F2 , logo também pode ser utilizado
para construir um corpo com 8 elementos, onde se γ é uma raíz de q(x), então os elementos
deste corpo serão {0, 1, γ, γ 2 , γ 3 = γ 2 + 1, γ 4 = 1 + γ + γ 2 , γ 5 = 1 + γ, γ 6 = γ + γ 2 }. Note
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 13
que γ 3 também é raíz de p(x), logo podemos tomar a aplicação que leva α ↔ γ 3 a qual é um
isomorfismo e assim os corpos são isomorfos.
Assim, utilizamos este resultado para determinar se podemos escolher qualquer polinômio
irredutível de grau r sobre Fp na construção do corpo Fpr .
Exemplo 1.6. Consideremos o corpo F8 . Então, pelo teorema anterior, este corpo possui
φ(7) = 7(1 − 71 ) = 6 elementos primitivos, como este corpo possui 8 elementos, se tirarmos
os elementos 0 e 1, todos os demais elementos serão elementos primitivos, logo para qualquer
polinômio irredutível de grau 3 sobre F2 que escolhermos, vamos ter que uma raíz será um
elemento primitivo.
Por outro lado, como vimos, F16 terá φ(15) = 15(1 − 13 )(1 − 15 ) = 8 elementos primitivos,
e como este corpo possui 16 elementos, não podemos escolher qualquer polinômio irredutível
para tomarmos uma raíz.
Teorema 1.12. [22] Seja q = pr . Então o corpo finito Fq é o (q − 1)-ésimo corpo ciclotômico
sobre Fp .
xq−1 − 1 =
Y
Qd (x),
d|(q−1)
onde q − 1 não é divisível pela característica de Fq , ou seja, por p e Qd (x) é o d-ésimo polinô-
mio ciclotômico sobre Fq , com coeficiente no corpo Fp . Para encontrarmos tais polinômios
utilizaremos um resultado que necessita da Função de Moebius, a qual é definida como:
1 se n = 1
µ(n) = (−1) se n se escreve como produto de k primos distintos
0 se n se escreve como o quadrado de um primo
Teorema 1.13. [22] Seja Fq um corpo com característica p e n um inteiro não divisível por
p. Então o n-ésimo polinômio ciclotômico Qn (x) sobre Fq satisfaz
Exemplo 1.7. Consideremos o corpo F16 e n = 15, então temos que o polinômio ciclotômico
Q15 (x) sobre F16 é dado por
(x15 − 1)(x − 1)
(xd −1)µ(n/d) = (x−1)µ(15) (x3 −1)µ(5) (x5 −1)µ(3) (x15 −1)µ(1) =
Y
Q15 (x) = =
d|n
(x5 − 1)(x3 − 1)
x + x + x + x4 + x3 + x + 1.
8 7 5
Teorema 1.14. [22] Considere o (q − 1)-ésimo corpo ciclotômico Fq sobre Fp . Então este é
uma extensão algébrica simples sobre Fp e além disso, se M DC(p, q − 1) = 1 então Qq−1 (x)
se fatora em φ(q−1)
d
polinômios irredutíveis de mesmo grau d sobre Fp [x], onde d é tal que
pd = 1mod(q − 1) e assim Fq é o corpo de divisão sobre Fp de qualquer um desses fatores.
Pelo teorema anterior, para encontrarmos um elemento primitivo para gerarmos o corpo
Fq , basta encontramos Qq−1 (x) e fatorarmos este polinômio em polinômios irredutíveis de
grau r, onde q = pr , sobre F2 e tomarmos o elemento primitivo como sendo uma raíz de
qualquer um destes polinômios.
Exemplo 1.8. No exemplo anterior vimos que F16 é o 15-ésimo corpo ciclotômico. Como
16 = 24 e Q15 (x) = x8 + x7 + x5 + x4 + x3 + x + 1, o qual se fatora em φ(15)
4
= 2 polinômio
4 3
irredutíveis de grau 4 sobre F2 [x], e f (x) = x + x + 1 é irredutível sobre F2 [x] temos que
Q15 (x) = (x4 + x3 + 1)(x4 + x + 1) e podemos utilizar a raíz de qualquer um destes dois
polinômios como elemento primitivo.
Teorema 1.15. [22] Seja f um polinômio irredutível sobre Fp de grau r. Então f possui uma
raíz α na extensão Fpr e além disso todas as raízes de f são dadas pelos r elementos distintos
2 r−1
α, αp , αp , . . . , αp de Fpr .
2
Definição 1.17. Seja Fpr uma extensão de Fp e α ∈ Fpr . Então os elementos α, αp , αp , . . .,
r−1
αp são chamados conjugados de α com respeito a Fp .
Definição 1.18. Para α ∈ Fpr , onde Fp é o subcorpo primo de Fpr , o traço T rFp (α) de α sobre
Fp é dado por
r−1
T rF (α) = α + αp + · · · + αp .
Assim, o traço de um elemento α sobre Fp é a soma dos seus conjugados. Outra definição
importante é a da norma de um elemento, que nada mais é que o produto de seus conjugados.
Definição 1.19. Para α ∈ Fpr , onde Fp é o subcorpo primo de Fpr , a norma NF (α) de α sobre
Fp é dada por
r−1
NFp (α) = α · αp · · · · · αp .
De posse destas definições, podemos agora apresentar alguns resultados específicos para
polinômios de grau 2, como mencionado.
Teorema 1.16. [22] Seja Fq um corpo finito com característica p e a ∈ Fq . Então o trinômio
xp − x − a é irredutível em Fq [x] se, e somente se, T rF (a) 6= 0.
Como iremos trabalhar com o corpo F2r , cuja característica é 2, e em F2r temos que
−1 = 1, o resultado anterior nos diz que o polinômio x2 + x + a é irredutível sobre F2r se,
e somente se, T rF (a) 6= 0. Além disso, trabalharemos com a representação dos elementos de
F2r como potências de um elemento primitivo. Assim, o próximo resultados nos auxiliará na
escolha de tal elemento primitivo.
Tal resultado aparece em [23] como um corolário e sua demonstração pode ser encontrada
em [26].
Assim, ao construirmos o corpo F2r , escolheremos como elemento definidor α, um elemento
primitivo com traço igual a 1, obtendo assim o polinômio irredutível p(x) = x2 + x + α sobre
F2r .
Exemplo 1.9. Pelo exemplo 1.8, temos duas opções de polinômios irredutíveis sobre F2 de
grau 4 para construirmos F16 , onde os elementos de F16 serão dados por potências de uma
raíz de um destes polinômios. Se tomarmos o polinômio f (x) = x4 + x + 1 e γ uma raíz
deste, então T rF2 (γ) = γ + γ 2 + γ 4 + γ 8 = 0, porém se tomarmos p(x) = x4 + x3 + 1 e α uma
raíz deste, teremos T rF2 (α) = α + α2 + α4 + α8 = 1. Logo escolheremos α para gerar F16 e
neste caso, pelo teorema anterior teremos que x2 + x + α será irredutível sobre F16 .
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 17
Outros resultados relacionados à corpos finitos que utilizaremos em nosso trabalho são
apresentados a seguir.
Definição 1.20. Para qualquer corpo finito Fq , a função valor inteiro υ em Fq é definida por
Lema 1.18. [22] Seja q par e a ∈ Fq com T rFq (a) = 1 e b ∈ Fq . Então o número de soluções
em Fq de x2 + xy + ay 2 = b é dado por q − υ(b).
Definição 1.21. Dados dois elementos x e y de um grupo G, dizemos que estes elementos são
conjugados se existe g ∈ G tal que gxg −1 = y.
uma aplicação
G × X −→ X
.
(g, x) 7→ gx
Neste caso, se considerarmos X = GL2 (Fq ), G = GL2 (Fq ) e a ação dada pela conjugação,
G × G −→ G
ou seja, , teremos que as classes de equivalência serão as G-órbitas,
(a, b) 7→ aba−1
também chamadas de classes de conjugação. O número de classes de conjugação de G =
GL2 (Fq ) é o número de G-órbitas ou classes de conjugação distintas e pode ser determinado
analisando o polinômio característico p(x) e minimal m(x) de g ∈ G.
(iii) Se g ∈ GL2 (Fq ) é tal que p(x) = m(x)= (x −a)(x − b) com a 6= b, um representante
a 0
para a classe de conjugação de g é g = e o número de classes é 12 (q −1)(q −2)
0 b
2
cada uma com q + q elementos;
(iv) Se g ∈ GL2 (Fq ) é tal que p(x) = x2 + ax + b é irredutível sobre Fq , então considerando a
extensãoquadrática Fq2 e α ∈ Fq2 \Fq , um representante para a classe de conjugação de
0 αq+1 2
gég=
q
e o número de classes é q 2−q cada uma com q 2 − q elementos.
−1 α + α
Capítulo 2
O Semi-Plano Superior Finito foi introduzido por Terras em [13], e foi posteriormente
estudado em uma série de trabalhos, Celniker [12], Poulos [27], Angel e Velasquez [3], [4],
Terras [33], [34] onde consideram q = pr um número ímpar com p primo e Fq um corpo com
q elementos, e em seguida analisam as propriedades geométricas e analíticas do que chamam
de Semi Plano Superior Finito, o qual é obtido substituindo-se R por Fq no Semi Plano de
Poincaré. Angel [2] e Evans [14] também consideram os casos de corpos com característica
par. Inicialmente, veremos os resultados para p ímpar e em seguida para p = 2.
Quando estudamos geometria hiperbólica, nos deparamos com o modelo do Semi-Plano
Superior ou, também chamado por alguns como Semi-Plano Superior de Poincaré. Tal Semi-
Plano Superior é definido como
√
H = {x + iy, x, y ∈ R, y > 0}, onde i = −1.
Definição 2.1. Sejam p um número primo ímpar, q = pr , Fq um corpo finito com q elementos
e ς um não quadrado em Fq . Definimos o Semi-Plano Superior Finito Hq como
√
Hq = {x + y ς, x ∈ Fq , y ∈ F∗q }.
Note que, pela definição, Hq possui q(q − 1) elementos. Seguindo o modelo do Semi-Plano
19
Capítulo 2. Modelo do Semi-Plano Superior Finito 20
√
Superior, define-se uma ”pseudo-distância” em Hq . Considerando z = x + y ς ∈ Hq , assim
como no modelo do Semi-Plano Superior, dizemos que a parte imaginária de z é Im(z) = y.
√
Tomamos ainda z = x − y ς e consideramos a norma N (z) = zz. Com tais elementos
obtemos uma definição para uma distância neste modelo proposto.
Definição 2.2. Sejam z, w ∈ Hq . Definimos a ”distância” entre z e w por
N (z − w)
d(z, w) = .
Im(z)Im(w)
Vale ressaltar que esta distância retorna um elemento do corpo, por isso consideramos a
mesma como uma "pseudo-distância".
Exemplo 2.1. Consideremos F3 = {0, 1, 2}, então 2 é um não quadrado em F3 e temos
√ √ √ √ √
que H3 = {z1 = 2, z2 = 2 2, z3 = 1 + 2, z4 = √ 1 + 2 2, z
√5 = 2 + 2, z6 √
= 2+
√ N (z3 − z6 ) N ((1 + 2) − (2 + 2 2)) N (2 + 2 2)
2 2}. Logo, d(z3 , z6 ) = = = =
√ √ Im(z3 )Im(z4 ) 1.2 2
(2 + 2 2)(2 − 2 2)
= 1.
2
√ √
De fato, sejam z = x + y ς e w = u + v ς pertencentes a Hq . Então, pelas definições
az + b aw + b
dadas, temos que Im(z) = y, Im(w) = v, g(z) = , g(w) = , Im(g(z)) =
cz + d cw + d
(ad − bc)Im(z) (ad − bc)Im(w)
, Im(g(w)) = .
N (cz + d) N (cw + d)
Assim
(az+b)(cw+d)−(aw+b)(cz+d)
N (g(z) − g(w)) N (cz+d)(cw+d)
d(g(z), g(w)) = = (ad−bc)2 Im(z)Im(w)
=
Im(g(z))Im(g(w))
N (cz+d)N (cw+d)
O Semi-Plano Superior Finito está intimamente ligado à teoria dos grafos, e isso foi uma
das motivações para sua definição.
Definição 2.3. Fixe a ∈ Fq , com a 6= 0, 4ς. Define-se o grafo Xq (ς, a) como sendo o grafo
tendo como vértices os elementos de Hq e dois vértices z e w sendo adjacentes se d(z, w) = a.
Os artigos [13], [33], [34], trabalham em sua maioria, com propriedades destes grafos para
q ímpar. Como neste trabalho não utilizaremos tanto os conceitos de grafos, iremos omitir a
maioria dos resultados, apresentando apenas alguns a seguir.
Primeiramente vejamos alguns conceitos gerais sobre grafos. Dizemos que o grau de um
vértice v de um grafo é o número de vértices que são adjacentes à este vértice v no grafo.
Se este número é o mesmo, digamos k, para todos os vértices, dizemos que o grafo é k-
regular, além disso, se para quaisquer dois vértices v e u conseguirmos um caminho formado
por vértices adjacentes começando em v e terminando em u, dizemos que o grafo é conexo.
Temos ainda que se G é um grupo finitamente gerado e S é um subgrupo gerador, então o
grafo tendo como vértices os elementos de G e vértices adjacentes v e u se u = sv, com s ∈ S,
é chamado grafo de Cayley.
Agora colocaremos em um único teorema, vários resultados obtidos para os grafos cons-
truídos em Hq .
Teorema 2.1. [33] Sejam q = pr , com p primo ímpar, Fq um corpo com q elementos, ς um
não quadrado em Fq e a ∈ Fq .
iii Seja τ um elemento do grupo de Galois Gal(Fq /Fp ), então os grafos Xq (ς, a) e Xq (τ (ς), τ (a)
são isomorfos;
usando os geradores
y x
Sq (ς, a) = |x, y ∈ Fq , y 6= 0, x2 = ay + ς(y − 1)2 .
0 1
Outro resultado importante obtido é o próximo teorema. Lembrando que um grafo conexo
k-regular é Ramanujan se o segundo maior auto-valor, em módulo, da matriz de adjacência
√
do grafo satisfaz |λ| ≤ 2 k − 1.
Teorema 2.2. [19] Seja ς um não quadrado em Fq , com q = pr potência de um primo ímpar
e a ∈ Fq , a 6= 0, 4ς. Então o grafo Xq (ς, a) é Ramanujan.
Como as propriedades que utilizaremos, em sua maioria, valem para ambos os casos,
vamos considerar
√
ς, ς não quadrado em Fq se q é ímpar
Hq = {x + δy| x, y ∈ Fq , y 6= 0}, δ =
θ, raíz de x2 + x + α em F 2 se q é par
q
(2.1)
No próximo capítulo construiremos nossas famílias de códigos, como mencionado anteri-
ormente, construiremos uma família de códigos lineares para o caso em que q é par, e uma
família de códigos não lineares considerando ambos os casos. Assim, vejamos mais alguns
resultados sobre Hq para ambos os casos. Primeiramente, vejamos um resultado sobre a
distância definida, provado por Evans em [14] para o caso par e por Terras em [13] para o
caso ímpar. Utilizaremos Hq como apresentado em (2.1), e vamos considerar como origem
de Hq o elemento z0 = δ.
Demonstração: De fato, temos que Im(z) = y, Im(z0 ) = 1 e que por definição do grafo
Xq (δ, a), os elementos são adjacentes se, e somente se, d(z, z0 ) = a para ambos os casos.
Assim temos
N (z − z0 ) N (x + δy − δ)
a = d(z, z0 ) ⇔ a = ⇔a= ⇔ ay = N (x + δ(y − 1)).
Im(z)Im(z0 ) y.1
Se q é ímpar, temos
Em [2], Angel prova separadamente, vários resultados sobre os grafos para o caso p par,
entre eles os resultados do Teorema 2.1 para q par. Assim, como fizemos no Teorema 2.1,
colocaremos vários destes resultados como itens de um único teorema e utilizaremos o Semi-
Plano Superior Finito Hq apresentado em (2.1).
Teorema 2.4. [2] Seja q = 2r , F2r um corpo com 2r elementos, a ∈ F2r , H2r como em (2.1)
e considere o conjunto S(δ, a) = {z ∈ H2r |d(z, δ) = a}.
(ii) Se δ1 = c + dδ2 , com c, d ∈ F2r , então X2r (δ1 , a) = X2r (δ2 , da2 );
τ (a)
(iii) Seja τ ∈ Gal(F2r /F2 ), então os grafos X2r (δ, a) e X2r (δ, (Imτ (δ))2
) são isomorfos;
(vi) Se a 6= 0, 1, então o grafo X2r (δ, a) é conexo. Na verdade X2r (δ, a) é um grafo de Cayley
para o grupo afim, Aff(F2r ) usando os geradores
y x
S= |x + δy ∈ S(δ, a)
0 1
Teorema 2.5. [14] Seja a ∈ F2r com a 6= 0, 1. Então o grafo X(δ, a) é Ramanujan.
Para a construção da família de códigos não lineares e não binários que faremos no capítulo
4, utilizaremos os conceitos geométricos apresentados por Terras em [34] e Shaheen em [29],
[28]. Nos referidos trabalhos considera-se apenas o caso q ímpar, porém consideraremos
também o caso onde q é par, e por isso provaremos os resultados.
Quando estudamos a geometria hiperbólica no Semi-Plano Superior, nos deparamos com
os grupos fuchsianos e os domínios fundamentais para a ação destes grupos sobre o Semi-
Plano Superior. Nos referidos trabalhos [34], [29], [28], os autores adaptam estes conceitos
ao Semi-Plano Superior Finito. Como estamos trabalhando com corpos finitos, e qualquer
subconjunto finito de GL(2, Fq ) é discreto, estes serão grupos fuchsianos. Então, assim como
no caso do Semi-Plano Superior, podemos definir um domínio fundamental para a ação de
um grupo discreto Γ ⊆ GL(2, Fq ) sobre Hq .
Antes de falarmos sobre o domínio fundamental para Hq , precisamos definir uma ordem em
Fq . Para isto, consideremos α um elemento primitivo, logo, gerador do grupo multiplicativo
Capítulo 2. Modelo do Semi-Plano Superior Finito 26
Note que na definição dos conjuntos acima, precisamos de um elemento z0 ∈ Hq que não
é fixado por nenhum elemento de Γ 0 , o qual sempre existe.
De fato, pela Proposição 1.19 temos que os representantes para
as classes
de conjugação
a 1 a 0
de GL(2, Fq ), que não são múltiplos da identidade, são g1 = , g2 =
0 a 0 b
0 αq+1
com a, b ∈ Fq , a 6= b e g3 = com α ∈ Fq2 \Fq . Agora note que se γ
−1 α + αq
pertence à classe de conjugação de g1 ou g2 então nenhum elemento de Hq é fixado, pois
γ(z) = z ⇔ a0 z + b0 = c0 z 2 + d0 z a qual não tem solução nestes dois casos. Se γ pertence à
classe de conjugação de g3 , então γ(z) = z ⇔ z 2 − (α + αq )z + αq+1 = 0, a qual possui como
solução a origem de Hq e seu "conjugado". Portanto qualquer elemento de Hq diferente da
origem ou seu conjugado, não é fixado por nenhum elemento de Γ 0 .
Temos então que os conjuntos apresentados são os análogos às regiões de Dirichlet, para
o semi-plano superior finito. Outro resultado obtido por Terras em [34] nos ajuda a definir
um dominínio fundamental para Hq e o mesmo é provado pelos autores apenas para q ímpar,
assim apresentamos a demonstração considerando-se também o caso par.
Lema 2.6. Dado z ∈ Hq , existe γ ∈ Γ tal que γz ∈ DΓ (z0 ). Além disso, se z, w ∈ DΓ (z0 ) e
γz = w para algum γ ∈ Γ , então γ é um elemento trivial.
0 0
Demonstração: Seja γ ∈ Γ tal que d(z0 , γz) ≤ d(z0 , γ z) ∀γ ∈ Γ . Tal γ existe pois Γ é finito.
0
Como múltiplos da identidade fixam todos os elementos de Hq , podemos supor que γ ∈ Γ
ou que γ = I, onde I é a matriz identidade. Vamos provar que este é o γ procurado.
0 0
De fato, escolha outro elemento γ ∈ Γ , pela invariância de d sob a ação de Γ , temos que
0 0
d(γ z0 , γz) = d(z0 , (γ )−1 γz). Temos então dois casos para analisarmos:
Caso 1 : γ = I
Capítulo 2. Modelo do Semi-Plano Superior Finito 27
0 0
d(γ z0 , z) = d(z0 , (γ )−1 z) ≥ d(z0 , z).
Caso 2 : γ 6= I
0 0
Novamente, pela invariância de d sob a ação de Γ , temos d(γ z0 , γz) = d(z0 , (γ γz)).
0 0 0
Agora, se γ γ ∈ Γ ∪ {I}, pela escolha de γ, temos que d(z0 , γ γz) ≥ d(z0 , γz) e assim
0
d(z0 , γz) ≤ d(γ z0 , γz).
0 0 0
Agora, se γ γ = λI, então γ = γ ◦ (λI), donde segue que γ z = γz e então
0 0 0
d(γ z0 , γz) = d(γ z0 , γ z) = d(z0 , z) ≥ d(z0 , γz).
Portanto, γz ∈ DΓ (z0 ).
0
Para a segunda parte, suponha que z, w ∈ DΓ (z0 ) com w = γz e γ ∈ Γ . Então, d(z0 , z) <
0
d(γz0 , z) ∀γ ∈ Γ . Por outro lado, como γz ∈ DΓ (z0 ), então
Com este lema, temos que DΓ (z0 ) é quase um domínio fundamental para a ação de Γ ⊆
GL(2, Fq ) sobre Hq , sendo necessário, em alguns casos, retirar alguns elementos de forma
a satisfazer as condições da seguinte definição, obtida a partir da definição no Semi-Plano
Superior.
Definição 2.5. Seja Γ ⊆ GL(2, Fq ) um subgrupo e z0 ∈ Hq um ponto que não é fixado por
nenhum γ ∈ Γ 0 . Diremos que D é um Domínio Fundamental para Γ sobre Hq , se D for um
menor subconjunto tal que DΓ (z0 ) ⊆ D ⊆ DΓ (z0 ) e satisfaz:
[
1. γ(D) = Hq ;
γ∈Γ
DΓ (z0 ) = {1 + δ} ,
Então
Γ (z0 ) = {γ1 z0 = 1 + δ, γ2 z0 = δ, γ3 z0 = α2 + δ, γ4 z0 = α + δ},
Γ (z1 ) = {γ1 z1 = 1 + αδ, γ2 z1 = αδ, γ3 z1 = α2 + αδ, γ4 z1 = α + αδ},
Γ (z2 ) = {γ1 z2 = 1 + α2 δ, γ2 z2 = α2 δ, γ3 z2 = α2 + α2 δ, γ4 z2 = α + α2 δ},
Γ (z3 ) = {γ1 z3 = α + αδ, γ2 z3 = α2 + αδ, γ3 z3 = αδ, γ4 z3 = 1 + αδ},
Γ (z4 ) = {γ1 z4 = α2 + α2 δ, γ2 z4 = α + α2 δ, γ3 z4 = 1 + α2 δ, γ4 z4 = α2 δ}.
◦ ◦
γ(DΓ (z0 )) = H4 , D ∩γ(D) = ∅, ∀γ ∈ Γ 0 . Porém
[
Se tomarmos DΓ (z0 ), teremos que
γ∈Γ
visto que Γ (z1 ) = Γ (z3 ) e Γ (z2 ) = Γ (z4 ), então DΓ (z0 ) não é um menor subconjunto que
satisfaz as condições da definição, ou seja, precisamos excluir elementos.
Portanto, se tomarmos D = {1 + δ, 1 + δα, 1 + δα2 }, que é um conjunto com um
[ ◦ ◦
representante de cada γ-órbita, teremos que γ(D) = H4 e como D= {1 + δ} então D
γ∈Γ
◦
0
∩γ(D) = ∅, ∀γ ∈ Γ e assim D será um menor subconjunto que satisfaz as propriedades da
definição. Logo obtemos um domínio fundamental para a ação de Γ sobre H4 .
1 0 α 0 α2 0 1 α 0 α α2 α
γ1 = , γ2 = , γ3 = , γ4 = , γ5 = , γ6 =
0 1 0 α 0 α2 1 0 1 1 1 α
α α α α2 α2 α2 0 α2 1 α2
γ7 = , γ8 = , γ9 = , γ10 = , γ11 = ,
1 α2 α 0 α 1 α α α α2
α2 1 α 1 1 1 0 1
γ12 = 2 , γ13 = 2 , γ14 = 2 , γ15 = 2 ,
α 0 α 1 α α α α2
Note que, neste caso, não podemos retirar pontos de DΓ (z0 ) pois a condição (1) da defi-
nição 2.5 não será satisfeita. Além disso, é fácil verificar que a condição (2) é satisfeita, logo
D = DΓ (z0 ) é um domínio fundamental para Γ = K sobre H4 .
(z − z1 )(z2 − z3 )
T (z, z1 , z2 , z3 ) = ,
(z − z3 )(z2 − z1 )
onde z1 , z2 , z3 ∈ Hq são três pontos distintos de Hq e neste caso, são levados respectivamente
em 0, 1, e∞. Com esta aplicação e considerando-se Fq2 = Fq (δ), onde δ é dado em (2.1),
conseguimos o seguinte resultado.
(α2 + δ) + (α + δ) (α2 + δ) + (1 + δ)
c= + =δ
(αδ) + (α + αδ) (αδ) + (1 + δ)
(α + δ)((α2 + δ) + (1 + δ)) (1 + δ)((α2 + δ) + (α + δ))
d= + = α2 δ.
(αδ) + (α + αδ) (αδ) + (α + αδ)
Neste capítulo veremos uma família de códigos quase-cíclicos que podem ser obtidos trabalhando-
se com o Semi-Plano Superior Finito Hq . Iremos considerar q = 2r e construiremos uma
família de códigos quase-cíclicos binários sobre Hq .
3.1.1 Construção
r
Consideremos o corpo F2r = {0, 1 = α0 , α, α2 , . . . , α2 −2 } construído como no capítulo an-
terior, α um elemento primitivo com T r(α) = 1. Como vimos, a fim de construirmos H2r ,
tomamos o polinômio x2 + x + α, que pelo Teorema 1.16 é irredutível sobre F2r , e consi-
derando θ uma raíz deste polinômio sobre a extensão quadrática de F2r . Assim temos que
H2r = {x + θy| x, y ∈ F2r , y 6= 0}. A fim de melhorarmos a notação ao longo do capítulo,
vamos identificar os elementos de H2r por zij = x + θy, onde i, j são as potência de α tais
que x = αi e y = αj , caso x = 0, tomaremos i = ∗, ou seja, representaremos 0 = α∗ .
32
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 33
Note que no exemplo acima, os elementos estão ordenados segundo esta ordem.
Agora, para cada elemento αi ∈ Fq , consideremos o bloco:
.
r r
Como θ + θ2 = 1 e θθ2 = α, temos que, para z = x + yθ ∈ H2r , N (x + yθ) =
x2 + (θ + θ)xy + θθy 2 = x2 + xy + αy 2 .
Podemos então passar à construção da Matriz G que utilizaremos para gerar nosso código.
Faremos isto da seguinte forma:
A primeira linha de G, denotada por L0 , será formada pelos blocos Ci ordenados da
seguinte maneira, L0 = [C∗ C0 C1 · · · C2r −2 ]. As próximas 2r −1 linhas serão obtidas através
de um shift para a direita, dos blocos da linha anterior, ou seja, L1 = [C2r −2 C∗ C0 · · · C2r −3 ],
· · · , L2r −1 = [C0 C1 C2 · · · C∗ ].
Assim, a matriz G será da forma:
C∗ C0 C1 C2 · · · C2r −2
C2r −2 C∗ C0 C1 · · · C2r −3
G=
.. .. .. .. .. ..
. . . . . .
C0 C1 C2 C3 · · · C∗
(3.2)
Teorema 3.1. Seja G a matriz (3.2). A matriz A2r ×2r construída tomando-se a coluna k,
com 1 ≤ k ≤ 2r − 1 e as colunas k + (2r − 1)m, com 1 ≤ m ≤ 2r − 1 é uma matriz circular.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 34
Demonstração: De fato, note primeiramente que, em blocos, G é circular. Temos ainda que
cada bloco Ci possui o mesmo comprimento 2r − 1 e, a entrada referente à coluna k em cada
bloco, é o elemento zi(k−1) . Assim, tomando em cada bloco a k-ésima coluna, obtemos a
matriz
z∗(k−1) z0(k−1) z1(k−1) . . . z(2r −2)(k−1)
z(2r −2)(k−1) z∗(k−1) z0(k−1) . . . z(2r −3)(k−1)
Ak =
.. .. .. .. .. , (3.3)
. . . . .
z0(k−1) z1(k−1) z2(k−1) . . . z∗(k−1)
que é circular.
Exemplo
3.2. Se considerarmos
o Exemplo 3.1 então a matriz G será dada por
∗
C C0 C1 C2
C2 C∗ C0 C1
G=
C1 C2 C∗ C0
C0 C1 C2 C∗
z∗0 z∗1 z∗2 z00 z01 z02 z10 z11 z12 z20 z21 z22
z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02 z10 z11 z12
=
z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02
z00 z01 z02 z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2
θ αθ α2 θ 1+θ 1 + αθ 1 + α2 θ α+θ α + αθ α + α2 θ α2 + θ α2 + αθ α 2 + α2 θ
α2 + θ α2 + αθ α + α2 θ
2 θ αθ α2 θ 1+θ 1 + αθ 1 + α2 θ α+θ α + αθ α + α2 θ
=
α+θ α + αθ α + α2 θ α2 + θ α2 + αθ α2 + α2 θ θ αθ α2 θ 1+θ 1 + αθ 1 + α2 θ
.
1+θ 1 + αθ 1 + α2 θ α+θ α + αθ α + α2 θ α2 + θ α2 + αθ α 2 + α2 θ θ αθ α2 θ
A partir do Lema 3.2 vemos que o número de 1’s tomando todos os blocos Ci é 2r . Agora,
se considerarmos a matriz N (G), vemos que verticalmente, a cada 2r − 1 colunas temos todos
os blocos Ci como linhas, logo o número de 1’s em cada bloco de linhas também é 2r . Assim
obtemos o próximo resultado.
Demonstração: Note que precisamos analisar apenas as primeiras 2r − 1 colunas, visto que
as mesmas se repetem a menos da ordem de seus elementos, umas vez que a matriz Ak
em (3.3) é circular. Agora, como consequência do lema anterior, temos que existem 2r 1’s
entre as entradas destas primeiras 2r − 1 colunas. Temos ainda que os elementos da k-ésima
coluna são da forma zi(k−1) , onde i percorre todos os elementos de {∗, 0, 1, . . . , 2r − 1}. Logo,
a k-ésima coluna terá um 1 na entrada zi(k−1) se (αi )2 + αi αk−1 + α2k−1 = αj , ou seja, se
considerarmos αi = x, temos uma equação de grau 2 em uma variável x e tal equação possui
duas ou nenhuma solução em F2r , uma vez que (a + b)2 = a2 + b2 em F2r . Assim, cada coluna
não nula possui 0 ou duas entradas não nulas. Agora, temos 2r entradas não nulas no bloco
r
analisado, portanto temos 22 = 2r−1 colunas não nulas entre as primeiras 2r − 1 colunas,
as quais se repetem nos blocos seguintes. Portanto, apenas 22r−1 colunas de N (G) são não
nulas. A segunda parte segue diretamente da matriz G ser circular por blocos.
Assim, podemos excluir as colunas nulas da matriz N (G) e conseguimos uma nova matriz
0
G com 2r linhas e 22r−1 colunas, a qual será a matriz geradora do código.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 36
Exemplo 3.3. Consideremos a matriz G obtida no Exemplo 3.2. Devemos escolher um ele-
mento αl ∈ F∗4 e em seguida colocar 1 na entrada zij se N (zij ) = αl e 0 caso contrário. Vamos
escolher o elemento α2 ∈ F∗4 . Então temos que os elementos zij ∈ H4 tais que N (zij ) = α2
são {z∗1 , z10, z20 , z22 }. Então, como
∗0
z z ∗1 z∗2 z 00 z01 z02 z10 z11 z12 z20 z21 z22
z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02 z10 z11 z12
G= , teremos
z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02
z00 z01 z02 z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2
0 0 1 0 0 0 1 0 0 1 0 1
1 0 1 0 0 1 0 0 0 1 0 0
N (G) = e
1 0 0 1 0 1 0 0 1 0 0 0
0 0 0 1 0 0 1 0 1 0 0 1
0 1 0 0 1 0 1 1
1 1 0 1 0 0 1 0
G0 =
1 0 1 1 0 1 0 0
0 0 1 0 1 1 0 1
Teorema 3.4. Seja G0 a matriz 2r × 22r−1 obtida de N (G). Então, entre as 2r linhas de G0 ,
quaisquer 2r − 1 linhas são linearmente independentes.
r
onde a0 = 1 e ai são as 2r -ésimas raízes da unidade, e sendo f (x) = f0 + f1 x + · · · + f2r −1 x2 −1
com a primeira linha de Ak sendo dada por [ f0 f1 · · · f2r −1 ], temos que M −1 Ak M é a
matriz diagonal M −1 Ak M = diag[f (a0 ), f (a1 ), . . . , f (a2r −1 )]. Agora, note que apenas dois
fi ’s são não nulos, logo f (a0 ) = 0 e f (ai ) 6= 0 para 1 ≤ i ≤ 2r − 1, visto que os ai ’s são as
2r -ésimas raízes da unidade. Logo a matriz Ak tem posto 2r − 1 e como encontramos uma
submatriz de G0 com posto 2r − 1 temos que 2r − 1 ≤ posto(G0 ) < 2r e portanto quaisquer
2r − 1 linhas de G0 são linearmente independentes.
Teorema 3.5. Seja C o código linear binário cuja matriz geradora é a matriz G0 obtida nos
resultados anteriores. Então C é um [22r−1 , 2r − 1, 2r ]-código quasi-cíclico.
Demonstração: De fato, pelo Teorema 3.3 temos que o comprimento do código é 22r−1 e
pelo Teorema 3.4 que a dimensão do código é 2r − 1. Além disso, pela forma como a matriz
foi construída, obtemos diretamente que o código é quasi-cíclico. Resta provarmos que a
distância mínima é 2r . Pelo Lema 3.2 temos que ω(C ) ≤ 2r . Assim, resta provarmos que
ω(C ) ≥ 2r . Para isto, considere as 2r−1 matrizes circulares Ak formadas como em 3.3, a
partir das 2r−1 primeiras colunas de G0 . Para cada uma dessas matrizes, temos que o peso
de cada linha e cada coluna é 2, e além disso, como o posto de cada uma destas matrizes é
2r − 1, a soma de quaisquer l linhas, 1 ≤ l ≤ 2r − 1, deve ter peso par. Assim, para cada
uma das 2r−1 matrizes circulares o peso deve ser maior que, ou igual a 2, ao considerarmos
todas as matrizes circulares obtidas, ao mesmo tempo, devemos ter ω(C ) ≥ (2r−1 )2 = 2r .
Portanto a distância mínima do código é 2r .
Apesar do código obtido não possuir uma distância mínima e um dimensão tão eleva-
dos a princípio, o método de decodificação torna-se muito simples como veremos a seguir.
Também veremos que conseguimos melhorar a distância mínima, chegando bem próximo dos
parâmetros dos melhores códigos quasi-cíclicos conhecidos.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 38
Demonstração: De fato, segue diretamente do Teorema 2.4, uma vez que o grafo X2r (δ, αl )
é um grafo (q + 1)−regular se αl 6= 0, 1.
Proposição 3.7. Entre as colunas não nulas de cada bloco da matriz Dluv (G), uma coluna
possui peso 1 e as demais possuem peso 2.
Demonstração: De fato, vamos analisar o primeiro bloco da matriz, assim como no caso da
norma. Primeiramente, note que se zij = x + δy e zuv = m + δn então
Agora, m = αu e n = αv são fixos, e se a k-ésima coluna é não nula então y = αk−1 também
é fixo, o que nos deixa com uma equação do segundo grau em uma variável. Tal equação
l
possui apenas uma solução se y = n, neste caso teremos αl n2 + m2 = x2 ⇔ (α 2 v + m)2 =
l
x2 ⇔ x = α 2 v + u, caso contrário a equação terá duas soluções, provando assim o resultado.
Demonstração: De fato, pela Proposição 3.7, entre as colunas não nulas de cada bloco, uma
possui peso 1 e as outras peso 2. Agora, pelo Teorema 3.6, cada bloco tem 2r + 1 coordenadas
não nulas, o que nos fornece por bloco, 1 coluna com peso 1 e 2r−1 colunas com peso 2. Logo,
em cada bloco temos
2r − 1 − (1 + 2r−1 ) = 2r−1 − 2
colunas nulas e como temos 2r blocos, então a matriz possui 2r (2r−1 − 2) colunas nulas.
Vamos denotar por Dluv (G0 ) a matriz obtida ao se excluir as colunas nulas de Dluv (G).
Então conseguimos o seguinte resultado.
Teorema 3.10. Seja C o código linear binário cuja matriz geradora é a matriz Dluv (G0 ) obtida
nos resultados anteriores. Então C é um [2r (1 + 2r−1 ), 2r , 2r ]-código quasi-cíclico.
Demonstração: A demonstração é análoga ao caso da norma. Pelo Teorema 3.6 temos que
ω(C ) ≤ 2r + 1. Porém, ao somarmos todas as linhas, como existe uma coluna com peso 1 em
cada bloco, e as demais com peso 2, obteremos um elemento com peso 2r , portanto ω(C ) ≤
2r . Agora, considerando-se novamente as matrizes Ak , obtemos ω(C ) ≥ 2r , provando-se o
resultado.
3.3 Decodificação
Vejamos então como decodificar nosso código para ambos os casos.
Suponha que temos o código C com paramêtros [22r−1 , 2r − 1, 2r ] construído como expli-
cado ao longo da primeira seção deste capítulo, ou seja, estamos utilizando a norma. Agora,
note que o peso de cada coluna da matriz G0 é 2 e considere as 2r−1 matrizes circulares Ak ,
1 ≤ k ≤ 2r−1 obtidas a partir das primeiras 2r−1 colunas de G0 . Temos que em cada uma
destas matrizes, se na primeira coluna temos as posições referentes às linhas Li e Lj não
nulas, 0 ≤ i, j ≤ 2r − 1, então na próxima coluna teremos as posições referentes às linhas
L(i+1)mod2r e L(j+1)mod2r sendo não nulas, e assim sucessivamente para as demais colunas de
cada uma destas matrizes circulares.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 41
Agora suponha que a palavra c foi codificada via matriz G0 e que recebemos a palavra
r = c + e, onde e foi o erro introduzido no decorrer da transmissão. Vamos representar cada
uma das 2r (2r − 1) entradas da palavra r por rxy onde x representa o bloco Cx e y a coluna
deste bloco, referente à primeira linha da matriz G0 . Assim, para cada matriz Ak , tomaremos
uma sequência de coordenadas da palavra r, sendo esta sequência dada por r∗k , r0k , r1k , . . . ,
r(2r −2)k e resolveremos o sistema
(Li + Lj )mod2 = r∗k
(L(i+1)mod2r + L(j+1)mod2r )mod2 = r0k
.. .. ..
. . .
(L(i+2r−1 )mod2r + L(j+2r−1 )mod2r )mod2 = r(2r −2)k
Note que resolver tal sistema é muito simples, uma vez que nossa matriz Ak tem 2r linhas
e posto 2r−1 , ao somarmos todas as linhas temos a palavra nula. Assim, se r é combinação de
l linhas de N (G), também podemos escrever r como combinação das linhas complementares,
uma vez que ao somarmos as l linhas com as suas complementares o resultado deve ser a
palavra nula. Portanto, tanto faz a escolha que fazemos para começar a resolver o sistema.
Por exemplo, se r∗k = 1, tanto faz tomarmos Li = 1 e Lj = 0 ou Li = 0 e Lj = 1 e a
partir da solução escolhida para a primeira linha do sistema, determinamos as demais. Note
que Li = 1 e Lj = 0 significa que estamos tomando a linha i para escrever a combinação
linear que resulta na palavra r e não estamos tomando a linha j. Assim escolhemos uma das
opções e vamos substituindo nas demais linhas do sistema de forma a resolvermos o sistema.
Além disso, não precisamos, a princípio, resolver todos os sistemas. Podemos escolher um k
e resolver.
Agora, se para o k escolhido o sistema for possível e possuir apenas duas soluções, obtenha
a palavra c0 que é combinação das linhas de G0 referentes à uma das soluções do sistema e
j r k j r k
calcule c0 + r. Se ω(c0 + r) ≤ 2 2−1 , a palavra enviada foi c0 . Se ω(c0 + r) > 2 2−1 , ou
o sistema é impossível, repita o processo para outro k. Temos ainda a opção do sistema
possuir mais que duas soluções, neste caso encontramos as possíveis soluções e verificamos
j r k
qual destas soluções satisfaz ω(c0 + r) ≤ 2 2−1 ou escolhemos outro k.
j k j k
2r −1 2r −1
Como a distância mínima é 2r , temos que C corrige até 2
erros. Agora, <
j2 r k
r−1 r−1 0 2 −1
2 , e como temos 2 colunas em cada bloco da matriz G , conseguiremos corrigir até 2
j r k
erros. Se o sistema for impossível para todos os valores de k, ou possível mas ω(c0 +r) > 2 2−1
j r k
para toda solução do sistema, então ocorreram mais que 2 2−1 erros e não conseguimos
determinar a palavra enviada.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 42
Exemplo 3.6. Vamos construir o corpo F16 com o polinômio x4 + x3 + 1 irredutível sobre F2 .
Em seguida encontraremos todas as soluções de N (x + θy) = αi para ∗ < 0 < i < 14 no GAP
conforme apresentado no apêndice A e construiremos a matriz G.
Agora, a partir da matriz G, utilizaremos o software Julia com as linhas de comando
apresentadas no apêndice A, elaboradas pelo professor Emerson, para obtermos todas as dis-
tâncias possíveis para escolhas de 8 dos 15 elementos não nulos de F16 para construirmos a
matriz N (G), e vemos que se escolhermos 8 elementos, aqueles que nos fornecem a melhor
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 44
1, α, α5 , α6 , α7 , α8 , α9 , α13 .
Com este exemplo vemos que podemos melhorar a distância do nosso código, porém
teremos que utilizar todas as colunas, aumentando então o comprimento do nosso código.
Com isso, ficamos com a distância mínima muito próxima da distância do melhor código
binário quasi-cíclico conhecido com mesmo comprimento e dimensão que neste caso é 104.
Com o exemplo para q = 8, obtemos um código binário quasi-cíclico de comprimento 56,
dimensão 7 e distância mínima 24 se escolhemos 3 ou 4 elementos para construirmos a matriz
N (G). Os elementos escolhidos para obtermos estes resultados neste caso são:
3 elementos :
1, α, α3 − [56, 7, 24]
1, α2 , α4 − [56, 7, 24]
1, α3 , α4 − [56, 7, 24]
1, α3 , α5 − [56, 7, 24]
1, α5 , α6 − [56, 7, 24]
α, α2 , α3 − [56, 7, 24]
α, α2 , α4 − [56, 7, 24]
α, α4 , α6 − [56, 7, 24]
α2 , α3 , α4 − [56, 7, 24]
α3 , α4 , α6 − [56, 7, 24]
4 elementos
1, α, α3 , α5 − [56, 7, 24]
1, α, α4 , α6 − [56, 7, 24]
1, α2 , α4 , α6 − [56, 7, 24]
1, α4 , α5 , α6 − [56, 7, 24]
α, α2 , α3 , α4 − [56, 7, 24]
α, α3 , α4 , α6 − [56, 7, 24]
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 45
α3 , α4 , α5 , α6 − [56, 7, 24]
Os exemplos mostram-se promissores com relação aos códigos binários já existentes. Po-
rém ainda não conseguimos uma relação entre os elementos que devem ser escolhidos.
Para o caso onde construímos a matriz G utilizando a distância, podemos fazer o mesmo
procedimento. Porém vemos que se escolhermos um número ímpar de elementos, a distância
será sempre fixa em q. Assim, podemos acrescentar como sendo 1 também a entrada cuja
distância até o elemento fixado é 0 ou 1, porém fazendo isto, reduzimos a dimensão do código
e também conseguimos obter os mesmos parâmetros do caso utilizando a norma.
Uma desvantagem de melhorarmos a distância desta forma é que o método de decodifi-
cação também não poderá mais ser utilizado, sendo necessário a busca por outro método.
Capítulo 4
Neste capítulo construiremos uma nova família de códigos sobre Hq porém, diferentemente
do capítulo anterior, estes códigos não são lineares, não são binários e q pode ser ímpar.
Além disso, aqui não utilizaremos a notação do capítulo anterior.
4.1 Construção
Seja Hq construído como em (2.1), Γ ⊆ GL(2, Fq ) e D um domínio fundamental para a
ação de Γ sobre Hq . Considerando a ordem apresentada em (2.2), iremos ordenar os elementos
de Hq da seguinte forma: dados z = x + δy, w = u + δv ∈ Hq , diremos que z < w se, e
somente se, x < u ou y < v caso x = u.
Agora, seja D um domínio fundamental para a ação de Γ sobre Hq e consideremos os
elementos de D ordenados em ordem crescente, ou seja, sejam z1 < z2 < · · · < zn os
elementos de D e tomemos o vetor c0 = [z1 , z2 , . . . , zn ], onde |D| = n. Tal vetor será o vetor
gerador de nosso código.
Para obtermos as palavras do código, tomaremos γ ∈ Γ e aplicaremos em todas as entradas
de c0 . Note, pelos exemplos no Capítulo 2, que podemos ter γi (c0 ) = γj (c0 ), para isto, basta
que γi−1 ◦ γj = c.Id. Então, tomaremos como palavras do código todos os elementos distintos
obtidos ao se aplicar γ ∈ Γ em c0 .
46
Capítulo 4. Códigos Não-Lineares e Não-Binários sobre Hq 47
Em [34] Terras apresenta uma tabela para o caso q ímpar. Porém, como neste trabalho
utilizamos ambos os casos, consideraremos a tabela acima.
Vemos pelo Corolário 4.2 que não obtemos um bom código ao tomarmos Γ = GL(2, Fq )
agindo sobre Hq , visto que teremos n=1, mesmo se consideramos Γ ⊂ GL(2, Fq ), os parâme-
tros do código obtido não serão bons, visto que da forma como o código foi construído, o
número de palavras será baixo.
respectivos domínios fundamentais, teremos que |D1 | = |Γ1 \Hq | = q − 1 e |D2 | = |Γ2 \Hq | = q.
Agora, como Hq possui q(q −1) elementos, então teremos q palavras no código tomando-se D1
como domínio fundamental e distância mínima q, visto que neste caso, nenhum elemento de
D1 é fixado por elementos de Γ1 = N , logo o número de palavras é dado por M = q(q−1) q−1
=q
e tomamos apenas as palavras distintas, então temos que γi (zk ) 6= γj (zk ), logo d = q − 1.
Assim, conseguimos um código com parâmetros (q − 1, q, q − 1).
Se considerarmos D2 como domínio fundamental, como visto, temos dois elementos que
são fixados por γ do tipo 4, logo o número de palavras será M = q(q−1)−2
q−2
e neste caso a distân-
cia mínima será d = q − 2. Assim, conseguimos um código com parâmetros (q, q(q−1)−2
q−2
, q − 2),
o que se confirma no Exemplo 4.1.
O exemplo acima nos mostra que os parâmetros de fato não são bons devido ao baixo
número de palavras no código. Podemos melhorar tal número de palavras para até n − 1
vezes o número original, mantendo o comprimento n e distância mínima d obtidos. Aqui
estamos considerando a distância de Hamming. Para se obter tal aumento no número de
palavras, podemos considerar o vetor gerador do código c0 = [z1 , z2 , . . . , zn ] e obter mais
n − 2 vetores fazendo-se um "shift"para a direita em cada coordenada, obtendo-se os vetores
c1 = [zn , z1 , . . . , zn−1 ], . . . , cn−2 = [z2 , z3 , . . . , z1 ], em seguida, aplicamos o procedimento de
criação do código nesses vetores. Assim, teremos M (n − 1) palavras no novo código obtido.
Veremos mais adiante um método de decodificação para o primeiro caso, porém tal método
é perdido se fizermos tal procedimento no aumento do número de palavras, como veremos.
Contudo, se considerarmos Γ -Tesselações, por exemplo, Γ = GL(2, Fq ) agindo sobre Hq2
então teremos resultados melhores nos parâmetros e poderemos manter o método de decodi-
ficação que veremos.
Para analisarmos o caso de Γ -Tesselações, vamos considerar os corpos finitos Fq e Fq2 =
Fq (δ) onde δ é dado como em (2.1). Note que agora, para construirmos Hq2 , precisaremos
de um elemento δ1 raíz de um polinômio irredutível x2 + t1 x + n1 sobre Fq2 se q é par ou
√
δ1 = ς1 se q é ímpar, onde ς1 é um não quadrado em Fq2 , ou seja, Hq2 = {x + δ1 y | x, y ∈
Fq2 = Fq (δ), y 6= 0}.
Lema 4.4. Seja D um domínio fundamental para a ação de Γ = GL(2, Fq ) agindo sobre Hq2 .
Então
|D| = |Γ \Hq2 | = q
Teorema 4.5. Sejam D um domínio fundamental para a ação de Γ = GL(2, Fq ) sobre Hq2
e c0 = [z1 , z2 , . . . , zn ] o vetor com elementos de D em ordem crescente. Então o código C
obtido tomando-se os elementos distintos, após aplicarmos os elementos de Γ em c0 , possui
parâmetros (n = q, M = q(q 2 − 1), d = q).
Note que novamente, neste caso, podemos aumentar o número de palavras do código para
até q − 1 vezes o número original fazendo o "shift"q − 1 vezes para a direita nas coordenadas
das palavras do código original. Porém, assim como mencionado anteriormente, perdemos o
método de decodificação que será apresentado a seguir.
4.1.1 Decodificação
Para decodificarmos uma palavra recebida r, utilizaremos a Proposição 2.7. Assim, sejam
e = [e1 , e2 , . . . , en ] e r = [r1 , r2 , . . . , rn ] as palavras enviada e recebida respectivamente. Note
que e = γ(c0 ), ou seja, ei = γ(zi ), i = 1, 2, . . . , n para alguma γ ∈ Γ . Logo, pela Proposição
0 0 0 0
2.7 basta tomarmos ri , rj , rk e determinarmos γ tal que γ (zi ) = ri , γ (zj ) = rj , γ (zk ) =
0
rk . Em seguida verificamos se γ ∈ GL(2, Fq ), em caso negativo, ao menos um erro ocorreu
Capítulo 4. Códigos Não-Lineares e Não-Binários sobre Hq 51
0 0
e tomamos outra combinação de ri , rj , rk . Se γ ∈ GL(2, Fq ), verificamos se ω(γ (c0 ) − r) ≤
j k
d−1
2
, onde ω(w) é o peso de Hamming de w. Em caso afirmativo a palavra enviada foi
0
e = γ (c0 ). Caso contrário as três coordenadas estão erradas e escolhemos outros elementos
ri , rj , rk diferentes destes. Em seguida realizamos o procedimento novamente. Note que, para
j k
que este método consiga corrigir até d−1 2
erros, precisamos tomar q ≥ 4 se n = d = q ou
q ≥ 5 se d = q − 2, pois neste caso existirão ao menos três elementos que foram enviados
corretamente e pela unicidade de γ dada na Proposição 2.7, conseguiremos determinar a
aplicação γ correta.
Utilizando este método, teremos no máximo q(q−1)(q−2)
6
comparações, se precisarmos fazer
todas as combinações de n = q elementos tomados 3 a 3.
Capítulo 5
Considerações Finais
Ao longo deste trabalho, estudamos o Semi-Plano Superior Finito proposto por A. Terras
[13] e encontramos duas classes de códigos corretores de erros obtidos sobre este modelo. A
primeira classe, dos códigos lineares e binários obtidos no Capítulo 3, considerando-se Hq
com q par e a segunda classe, dos códigos obtidos no Capítulo 4 considerando-se Hq com q
podendo ser par ou ímpar.
No que se refere aos códigos lineares obtidos, vemos que os parâmetros se aproximam
muito dos melhores códigos existentes com mesmo comprimento e dimensão quando toma-
mos 2q elementos para considerar na construção do código. Assim, essa classe de códigos
mostra-se promissora. Porém, como vimos, determinar quais são esses elementos que devem
ser escolhidos no caso geral ainda não foi possível. Além disso, perdemos o método de de-
codificação proposto quando aumentamos o número de elementos tomados. Logo, sugerimos
como possíveis trabalhos futuros, determinar uma ligação, caso exista, entre os elementos
que devem ser escolhidos bem como determinar um método de decodificação para o nosso
código, bem como para o código apresentado por Tiu e Wallace [35], visto que este também
não possui um método de decodificação específico.
Quanto aos códigos obtidos no Capítulo 4, não conseguimos comparar tais códigos com
outros devido às suas especificidades. Este códigos têm seus parâmetros facilmente determi-
nados, inclusive quanto à distância mínima, o que é uma vantagem. Além disso, o método de
decodificação proposto, apresenta um número reduzido de comparações em relação ao mé-
todo ML. Novamente, ao aumentarmos o número de palavras, perdemos o método utilizado
na decodificação. Assim como sugestão de trabalho futuro, propomos determinar um método
utilizando as propriedades geométricas de Hq para decodificar o código após o aumento do
52
Capítulo 5. Considerações Finais 53
número de palavras.
Vemos então que o modelo de Semi-Plano Superior Finito pode ser utilizado na construção
de códigos corretores de erros com bons parâmetros e que este ainda pode ser utilizado dentro
da teoria de códigos.
Apêndice A
Com mencionado no Capítulo 3, ainda não conseguimos dizer quais os elementos tomar na
melhora da distância através de uma relação entre os mesmos, assim, apresentamos aqui as
linhas de comando utilizadas no GAP para determinar a matriz G e também as linhas de
comando utilizadas no Julia para determinar quais elementos tomar.
H16
54
Apêndice A. Linhas de Comando GAP e Julia 55
[[0∗Z(2), Z(24 )8 ], [Z(2)0 , 0∗Z(2)], [Z(2)0 , Z(24 )], [Z(22 )2 , Z(24 )2 ], [Z(22 )2 , Z(24 )9 ], [Z(24 ), Z(24 )3 ],
[Z(24 ), Z(24 )6 ], [Z(24 )4 , Z(24 )], [Z(24 )4 , Z(24 )2 ], [Z(24 )8 , Z(24 )8 ], [Z(24 )8 , Z(24 )12 ], [Z(24 )9 , Z(24 )3 ],
[Z(24 )9 , Z(24 )12 ], [Z(24 )11 , Z(24 )4 ], [Z(24 )11 , Z(24 )6 ], [Z(24 )13 , Z(24 )4 ], [Z(24 )13 , Z(24 )9 ]]
..
.
gap > Concatenation(List(resa14, x− > List(x[2], y− > [x[1], y])));
[[0∗Z(2), Z(24 )], [Z(24 ), Z(22 )], [Z(24 ), Z(24 )], [Z(24 )2 , Z(22 )], [Z(24 )2 , Z(24 )11 ], [Z(24 )3 , Z(22 )2 ],
[Z(24 )3 , Z(24 )2 ], [Z(24 )4 , Z(24 )12 ], [Z(24 )4 , Z(24 )14 ], [Z(24 )6 , Z(24 )2 ], [Z(24 )6 , Z(24 )12 ], [Z(24 )8 , 0∗
Z(2)],
[Z(24 )8 , Z(24 )9 ], [Z(24 )9 , Z(24 )11 ], [Z(24 )9 , Z(24 )14 ], [Z(24 )12 , Z(22 )2 ], [Z(24 )12 , Z(24 )9 ]]
usingCombinatorics
include(”arvore.jl”)
f unctionsomamod2(ind, mat, n)
vs = zeros(n)
f oriinind
vs = vs + mat[i, :]
end
returnsum(mod.(vs, 2))
end
f unctionbusca(ent, mat)
(m, n) = size(mat)
saida = zeros(m, n)
f oriinent
Apêndice A. Linhas de Comando GAP e Julia 56
f ork = 1 : m
f orj = 1 : n
if i == mat[k, j]
saida[k, j] = 1
end
end
end
end
lista = buildtree(m)
aux_vsum = 0.0
vsum = 2000.0
f orelinlista
vi = f ind(el)
aux_vsum = somamod2(vi, saida, n)
if vsum > aux_vsum&&aux_vsum > 0.0
vsum = aux_vsum
end
end
returnvsum
end
f unctionmain(nc, mat)
v = [0, 1, ”a”, ”a2”, ”a3”, ”a4”, ”a5”, ”a6”, ”a7”, ”a8”, ”a9”, ”a10”, ”a11”, ”a12”, ”a13”, ”a14”]
output = ”output_combinations_$nc.dat”
outputg100 = ”output_combinations_g100_$nc.dat”
g = open(output, ”w”)
g100 = open(outputg100, ”w”)
list = combinations(v, nc)
f orcombinlist
sol = busca(comb, mat)
println(comb, , sol)
println(g, comb, , sol)
if sol >= 100
println(g100, comb, , sol)
end
Apêndice A. Linhas de Comando GAP e Julia 57
end
close(g)
close(g100)
end
A = readdlm(”tab1.csv”)
main(8, A)
Nesta última linha de comando especificamos quantos elementos estamos tomando para
gerar todas as combinações possíveis com estes elementos.
Referências Bibliográficas
[1] Albuquerque, C. D. Palazzo Jr., R., and Silva, E. B. Topological quantum codes on
compact surfaces with genus g > 2. Journal of Mathematical Physics vol. 50 (2009), p.
023513.
[2] Angel, J. Finite upper half planes over finite fields. Finite Fields and Their Applications
2, 1 (1996), 62 – 86.
[4] Angel, J. Poulos, S. T. A. T. C., and Velasquez, E. Spherical functions and transforms
on finite upper half planes: Eigenvalues of of the combinatorial laplacian, uncertainty,
traces. Contemp. Math. 173 (1994), 15–70.
[6] Bhandari, M. C., Gupta, M. K., and Lal, A. K. Some results on nqr codes. Designs,
Codes and Cryptography 16, 1 (Jan 1999), 5–9.
[7] Blanco-Chacon, I. Rem ´ on, D. H. C., and Alsinac ´, M. Nonuniform fuchsian codes
for noisy channels. J. Frankl. Inst. 351 (2014), 5076–5098.
[8] Carmichael, R. D. Introducion to the Theory of Groups of Finite Order. Dover Publi-
cations, Inc., 2000.
[9] Carvalho, E. D., and Andrade, A. A. Hyperbolic lattices: A new propose for coding
theory. Internat. J. App. Math v. 24 (2011), p. 65–72.
[10] Cavalcante, R. G. Lazari, H. L. J. D., and R. Palazzo, . A new approach to the design
of digital communication systems. AMS-DIMACS Series v. 68 (2005), p. 145–177.
58
Referências Bibliográficas 59
[11] Cavalcante, R. G., and Palazzo Jr., R. Performance analysis of mpsk signal constellations
in riemannian varieties. Lect. Notes Comp. Science vol. 2643 (2003), 191–203.
[12] Celniker, N. Ph.D. thesis. PhD thesis, University of California, San Diego, 1991.
[13] Celniker, N., Poulos, S., Terras, A., Trimble, C., and Velasquez, E. Is there life on finite
upper half planes. Contemp. Math. 143 (01 1993), 65 – 88.
[14] Evans, R. Spherical functions for finite upper half planes with characteristic 2. Finite
Fields and Their Applications 1, 3 (1995), 376 – 394.
[15] HAMMING, R. W. Error detecting and error correcting codes. BELL SYSTEM TE-
CHNICAL JOURNAL 29, 2 (1950), 147–160.
[16] Hefez, A., and Villela, M. Códigos correctores de erros. Computação e matematica.
IMPA, 2008.
[17] Hesbo, O. E., and Oduor, O. M. On cunjugacy and order structure of certain classes
of finite groups. International Journal of Pure and Applied Mathematics 91, 4 (2014),
435–458.
[19] Katz, N. Estimates for soto–andrade sums. J. Reine Angew. Math. 438 (1993), 143–161.
[20] Lane, S., and Birkhoff, G. Algebra. Chelsea Publishing Series. Chelsea Publishing
Company, 1999.
[21] Lazari, H., and Palazzo Jr., R. Geometrically uniform hyperbolic codes. Comp. Appl.
Math vol. 24(2) (2005), 173–192.
[22] Lidl, R., and Niederreiter, H. Finite Fields. No. v. 20,pt. 1 in Encyclopedia of Mathe-
matics and its Applications. Cambridge University Press, 1997.
[23] MacWilliams, F., and Sloane, N. The Theory of Error-Correcting Codes, 2nd ed. North-
holland Publishing Company, 1978.
[24] Martin, P. A. Grupos, corpos e teoria de galois, vol. 2. Editora Livraria da Física, 2010.
[25] Medrano, A., Myers, P., Stark, H., and Terras, A. Finite analogues of euclidean space.
Journal of Computational and Applied Mathematics 68, 1 (1996), 221 – 238.
Referências Bibliográficas 60
[27] Poulos, S. Ph.D. thesis. PhD thesis, University of California, San Diego, 1991.
[28] Shaheen, A. M. Finite Planes and Finite Upper Half Planes: Their Geometry, a Trace
Formula, Modular Forms, and Eisenstein Series. PhD thesis, University of California,
San Diego, 2005.
[29] Shaheen, A. M. A trace formula for finite upper half planes. J. Ramanujan Math. Soc.
4 (2006), 343–363.
[31] Shparlinski, I. Finite Fields: Theory and Computation The Meeting Point of Number
Theory, Computer Science, Coding Theory and Cryptography, 1st ed. Springer Pu-
blishing Company, Incorporated, 2010.
[32] Silva, E. B. Firer, M. C. S. R., and Palazzo Jr., R. Signal constellations in the hyperbolic
plane: A proposal for new communication systems. J. Franklin Inst. 343 (2006), 69–82.
[33] Terras, A. Fourier Analysis on Finite Groups and Applications. London Mathematical
Society St. Cambridge University Press, 1999.
[34] Terras, A. Harmonic Analysis on Symmetric Spaces - Euclidean Space, the Sphere, and
the Poincaré Upper Half-Plane. Springer New York, 2013.
[35] Tiu, P. D., and Wallace, D. I. Norm quadratic-residue codes. IEEE Transactions on
Information Theory 40, 3 (May 1994), 946–949.
[36] Yucas, J. L., and Mullen, G. L. Irreducible polynomials over gf(2) with prescribed
coefficients. Discrete Mathematics 274, 1 (2004), 265 – 279.