• Nenhum resultado encontrado

Curitiba PR

N/A
N/A
Protected

Academic year: 2022

Share "Curitiba PR"

Copied!
148
0
0

Texto

(1)

Nicollas Mocelin Sdroievski

$0/)&$*.&/50;&30&45"5¶45*$0&3&%6±¿&4&'*$*&/5&41"3"0 130#-&.".,51

Curitiba PR

2018

(2)

$0/)&$*.&/50;&30&45"5¶45*$0&3&%6±¿&4&'*$*&/5&41"3"0 130#-&.".,51

Dissertação apresentada como requisito parcial à ob- tenção do grau de Mestre em Informática no Programa de Pós-Graduação em Informática, Setor de Ciências Exatas, da Universidade Federal do Paraná.

Área de concentração: Ciência da Computação.

Orientador: Murilo Vicente Gonçalves da Silva.

Coorientador: André Luís Vignatti.

Curitiba PR

2018

(3)

!" #$%&'

()#*#-./0#0#

'12&'#$%34-#567"3

8#9$###:#;<

##=9>#-?/#:567"3

@##'-#A>$$3##B#CD-*

A3

73 0<0-3530-3!3#$

(E#3?3$###:3??3$'-#

A>$3???3AB#CD-*3?A3*-3

8866F37!7

:#A-'9G27G5"

(4)
(5)

O presente trabalho foi realizado com apoio do CNPq, Conselho Nacional de Desenvol- vimento Científico e Tecnológico - Brasil.

Agradeço aos orientadores Murilo Vicente Gonçalves da Silva e André Luís Vig- natti, pelos ensinamentos, pela paciência e pelas intermináveis reuniões que culminaram no desenvolvimento deste trabalho.

Agradeço à minha família, pela compreensão, pela oportunidade e pelo apoio incondici- onal. Em especial agradeço à minha noiva, Renata Camila de Toledo, e aos meus pais, Marta Rosa Mocelin e Gilson José Sdroievski, os meus maiores incentivadores.

Por fim, agradeço aos professores e membros do ARG, que contribuíram diretamente com a minha formação.

(6)

Nesta dissertação, estudamos a complexidade computacional de vários problemas candidatos aNP-intermediários. Mais precisamente, estudamos a relação destes problemas com a classe de complexidadeSZK, a classe dos problemas que admitem provas de conhecimento zero estatístico e suas subclasses. Além disso, estudamos reduções destes problemas para o problema também candidato aNP-intermediário MKTP, relacionado a uma versão limitada em tempo de complexidade de Kolmogorov denominadaKT. Além de realizar um levantamento de literatura, aplicamos as técnicas estudadas para obter resultados originais. Dentre esses destacamos uma redução aleatorizada do Problema do Subgrupo Oculto para MKTP, provas de conhecimento zero para duas versões de decisão do Problema do Subgrupo Oculto, reduções aleatorizadas dos problemas de Equivalência de Grupos e Equivalência de Grupos Simétricos para MKTP e uma indexação para resíduos quadráticos que é decodificável por circuitos de tamanho polinomial.

Palavras-chave: Complexidade Computacional, NP-intermediário, Provas de Conhecimento Zero, MKTP, Redução Aleatorizada, Problema do Subgrupo Oculto, Equivalência de Grupos, Indexação Eficientemente Decodificável.

(7)

In this dissertation, we study the computational complexity of variousNP-intermediate candidate problems. More precisely, we study these problem’s relations to the complexity class SZK, the class of problems that admit statistical zero knowledge proofs, and its subclasses. We also study reductions from these problems to theNP-intermediate candidate problem MKTP, which is related to a time-bounded version of Kolmogorov complexity named KT. Besides doing literature review, we apply the studied techniques to obtain original results. Of these we highlight a randomized reduction from the Hidden Subgroup Problem to MKTP, zero knowledge proofs for two decision versions of the Hidden Subgroup Problem, randomized reductions from the Group Equivalence and Permutation Group Equivalence problems to MKTP and an indexing for quadratic residues that is decodable by polynomial size circuits.

Keywords: Computational Complexity, NP-intermediate, Zero Knowledge Proofs, MKTP, Randomized Reduction, Hidden Subgroup Problem, Group Equivalence, Efficiently Decodable Indexing.

(8)

1 Introdução . . . . 9

1.1 Objetivos . . . 11

1.2 Estrutura do Trabalho . . . 12

2 Preliminares Gerais . . . 13

2.1 Probabilidade e Estatística . . . 13

2.2 Modelos de Computação e Complexidade Computacional . . . 15

2.2.1 Modelos de Computação . . . 16

2.2.2 Classes de Complexidade . . . 20

2.2.3 Tipos de Redução . . . 22

2.3 Teoria Algorítmica da Informação . . . 23

2.4 Teoria de Grupos e Permutações . . . 25

2.4.1 Subgrupos e o Teorema de Lagrange . . . 28

2.4.2 Homomorfismos e Isomorfismos . . . 32

2.4.3 Ações de Grupo . . . 33

2.4.4 Conjuntos Geradores Fortes e Amostragem em Grupos Simétricos . . . 35

2.4.5 Problemas Computacionais em Grupos Simétricos . . . 37

2.4.6 O Modelo Caixa-preta para Grupos. . . 41

2.4.7 Problemas Computacionais no Modelo Caixa-preta para Grupos . . . 42

2.4.8 O Problema do Subgrupo Oculto . . . 45

2.5 Teoria de Grafos. . . 46

2.5.1 Problemas Computacionais de Isomorfismo de Grafos. . . 46

2.6 Teoria de Números . . . 49

2.6.1 Grupo Multiplicativo dos Inteiros MóduloN . . . 49

2.6.2 O Teorema Chinês do Resto . . . 51

2.6.3 Resíduos Quadráticos . . . 53

2.6.4 Problemas Computacionais em Teoria de Números . . . 55

(9)

3.1 Provas Interativas . . . 58

3.2 Provas de Conhecimento Zero para Verificadores Honestos . . . 60

3.3 Provas de Conhecimento Zero (para Verificadores Desonestos) . . . 62

3.4 Problemas Completos paraSZK . . . 63

3.4.1 Um Sistema de Prova Básico . . . 65

3.4.2 Diferença de Entropia . . . 68

3.5 ProtocolosV-bit . . . 68

3.6 Conhecimento Zero Não-interativo . . . 70

3.6.1 Problemas Completos paraNISZK. . . . 71

3.6.2 Usando os Problemas Completos paraNISZK. . . . 72

3.7 Relações entre as Classes de Conhecimento Zero . . . 73

3.8 Problemas que Admitem Provas de Conhecimento Zero . . . 74

3.8.1 Isomorfismo de Grafos . . . 74

3.8.2 Não-isomorfismo de Grafos. . . 76

3.8.3 Grafos Rígidos . . . 78

3.8.4 Número de Fatores Primos . . . 78

3.8.5 Resíduo Quadrático . . . 79

3.8.6 Não-resíduo Quadrático. . . 81

3.8.7 Intersecção de Grupos (de Caixa-preta) . . . 83

3.8.8 Equivalência de Grupos Simétricos. . . 84

3.8.9 Equivalência de Grupos (de Caixa-preta). . . 84

4 O Problema MKTP em Relação aos Outros Problemas Estudados . . . 86

4.1 Reduções Clássicas para MKTP . . . 86

4.2 Outra Técnica de Redução . . . 90

4.2.1 A Ideia da Redução . . . 90

4.2.2 Definições de Probabilidade e Estatística . . . 91

4.2.3 Codificações, Indexações e Limitantes para o Valor de KT . . . 92

4.2.4 Formalizando o Algoritmo . . . 94

4.3 Estimação da Entropia de Distribuições Planas. . . 97

4.4 Um Mapeamento Aleatorizado para uma Subclasse deNISZK . . . 102

(10)

4.6 Reduções sem erro para problemas de isomorfismo . . . 107

4.6.1 Construção de Superestimadores para Problemas de Isomorfismo . . . 111

5 Resultados . . . 115

5.1 Uma Redução de KFQNR para MKTP . . . 115

5.2 Uma Indexação para Resíduos Quadráticos. . . 118

5.2.1 Consequências da Indexação para Resíduos Quadráticos. . . 121

5.3 Equivalência de Grupos e MKTP . . . 123

5.4 O Problema do Subgrupo Oculto e MKTP . . . 125

5.4.1 Um Superestimador para o Logaritmo da Ordem de um Subgrupo Oculto . . . . 127

5.5 Superestimadores para a Ordem de Grupos de Caixa-preta . . . 128

5.6 Problemas em Grupos e Conhecimento Zero . . . 130

6 Considerações Finais . . . 132

Referências . . . 133

Apêndice A: Demonstrações das Proposições . . . 137

A.1 Probabilidade e Estatística . . . 137

A.2 Teoria Algorítmica da Informação . . . 137

A.3 Teoria de Grupos e Permutações . . . 138

A.3.1 Subgrupos e o Teorema de Lagrange . . . 138

A.3.2 Homomorfismos e Isomorfismos . . . 140

A.3.3 Ações de Grupo . . . 141

A.4 Teoria de Grafos. . . 143

A.4.1 Problemas Computacionais de Isomorfismo de Grafos. . . 143

A.5 Teoria de Números . . . 144

A.5.1 Grupo Multiplicativo dos Inteiros MóduloN . . . 144

A.5.2 Resíduos Quadráticos . . . 145

(11)

1 Introdução

Complexidade computacional é a área que estuda a dificuldade de resolução de problemas computacionais em relação a recursos disponíveis, como tempo e espaço. Neste trabalho, em particular, estaremos mais interessados em recursos de tempo do que de espaço. Dentro desta ótica, problemas que admitem algoritmos cujo tempo de execução é limitado por um polinômio sobre o tamanho da entrada, ditos decidíveis em tempo polinomial, são considerados tratáveis e agrupados na classe de complexidadeP[AB09]. Uma série de outras classes de complexidade agrupando diferentes problemas são definidas na literatura, sendo que, além deP, certamente aquela mais conhecida na área é a classe dos problemas que admitem um procedimento de verificação de tempo polinomial, conhecida como a classeNP[AB09].

Um problema central da área de complexidade computacional é determinar a relação entre as classesPeNP. Especificamente, é um problema aberto determinar se as duas classes coincidem ou se a classePestá estritamente contida na classeNP, ou seja, se existem problemas que podem ser verificados porém não podem ser decididos em tempo polinomial. Problemas NP-completos são fundamentais nesta questão, por serem os problemas mais difíceis da classe NP. Caso exista algoritmo polinomial para algum problemaNP-completo, entãoP=NP.

Historicamente, vários problemas computacionais foram incluídos ou na classe P ou na classe dos problemasNP-completos. Isso sugere a conjectura de que todo problema computacional emNPé ouNP-completo ou está emP[AB09]. Ladner [Lad75], porém, mostrou que casoP=NP— a possibilidade mais aceita pela comunidade de complexidade computacional

— então existem problemas emNP\Pque não sãoNP-completos. SeP=NP, tais problemas são chamados deNP-intermediários. Alguns problemas candidatos a tal classificação são os problemas de testar se dois grafos são isomorfos [BHZ87], se um determinado número é um resíduo quadrático [GMR89] e se dois pontos de uma ação de grupo eficientemente computável possuem órbitas idênticas [AD08].

Provar incondicionalmente que determinado problema éNP-intermediário é uma tarefa muito difícil, pois isso implicaria na separação das classesPeNP, um problema que, segundo muitos pesquisadores, ainda está longe de ter solução [Aar13]. Portanto, muitos trabalhos estudam problemas candidatos aNP-intermediários, buscando obter relações entre a dificuldade de resolução destes problemas entre si, além de mostrar a pertinência desses problemas em diversas classes de complexidade. Uma dessas classes, a classeSZK— que contém os problemas

(12)

que admitem provas de conhecimento zero estatístico — é conjecturada estar precisamente entre as classesPeNP, de forma quePSZKNP.

A classeSZKé uma classe definida em termos de provas de conhecimento zero e é de importância central nesta dissertação. Provas de conhecimento zero e, de maneira geral, provas interativas são protocolos que definem como ocorre a interação entre uma estratégia de prova P e um verificadorV. Nesta interação P, sem limitações computacionais, tem o propósito de convencerV, um algoritmo com limite de tempo polinomial, de que determinada asserção (instância de um problema computacional) é verdadeira [AB09]. Dizemos que uma prova é de conhecimento zero quandoV não aprende nada além do fato de que a asserção é verdadeira. Tais provas de conhecimento zero são classificadas em perfeitas, estatísticas ou computacionais [Vad99]. Neste trabalho focamos em provas de conhecimento zero perfeitas e estatísticas, pois a classe das provas de conhecimento zero computacional é conjecturada ser muito maior até mesmo do que a classeNP[Vad99], não tendo a mesma importância no estudo de problemas candidatos aNP-intermediários.

Além dos problemas da classeSZK, estudamos um problema computacional relacionado à complexidade de Kolmogorov [LV97], conhecido como o problema MKTP (deMinimum KT Problem). Complexidade de Kolmogorov é uma medida de complexidade que tenta capturar a quantidade de informação contida em uma stringxlevando em consideração o tamanho do menor programa que produzx. Mais especificamente, tratamos neste trabalho de uma medida de complexidade que também leva em consideração o tempo de execução desse programa, a medida KT[ABK+06]. A intuição é que não apenas o espaço ocupado pelo programa, mas também o seu tempo de execução ao produzir uma string contribui para agregar informação ou complexidade à string. O problema MKTP é o problema de decidir, dados uma stringxe um inteirok, se KT(x)≤k. Esse problema também é candidato aNP-intermediário [MW14, HW15], porém aparenta ser mais difícil do que vários outros problemas da categoria. Caso o problema seja decidível em tempo polinomial, toda a classeSZK se torna decidível em tempo polinomial aleatorizado [AD17]. A Figura 1.1 apresenta as prováveis relações entre as classes comentadas.

Neste trabalho estudamos técnicas para provar que problemas computacionais perten- cem aSZK e suas subclasses, além de técnicas de redução para o problema MKTP. Como contribuições originais deste trabalho destacamos as seguintes: uma redução aleatorizada de tempo esperado polinomial do Problema do Subgrupo Oculto (Definição 2.4.66) para MKTP, provas de conhecimento zero para duas versões de decisão do Problema do Subgrupo Oculto (Definições 2.4.67 e 2.4.70), reduções aleatorizadas de tempo esperado polinomial dos problemas de decisão Equivalência de Grupos (Definição 2.4.62) e Equivalência de Grupos Simétricos (Definição 2.4.51) para MKTP e por fim, a existência de uma indexação para resíduos quadráticos que é eficientemente decodificável por circuitos de tamanho polinomial.

(13)

P

NP-completo

SZK

NP-intermediário NP-difícil

NP

MKTP

Figura 1.1: Relações conjecturadas entre a classeNP-intermediário, a classeSZKe o problema MKTP.

1.1 Objetivos

Objetivamos neste trabalho estudar diversos problemas que pertencem a classeSZK e sua relação com o problema MKTP. Isso é feito através do estudo de técnicas que permitem provar que problemas pertencem aSZKe suas subclasses, além de técnicas de redução para o problema MKTP. Buscamos adaptar e aplicar essas técnicas a outros problemas que até o momento ainda não foram colocados emSZKou para os quais não são conhecidas reduções para MKTP. Mais especificamente, objetivamos:

1. Prover fundamentação teórica para definir os problemas computacionais de interesse, em particular na área de teoria de grupos computacional, e classes de complexidade computacional relacionadas à computação determinística e aleatorizada.

2. Definir formalmente provas de conhecimento zero e diversas classes de complexidade relacionadas.

3. Estudar as provas de conhecimento zero para vários problemas clássicos da área.

4. Estudar diferentes técnicas de redução para o problema MKTP.

(14)

5. Aplicar as técnicas estudadas para mostrar que problemas candidatos aNP-intermediários estão na classeSZKe também para mostrar reduções desses problemas para o problema MKTP.

1.2 Estrutura do Trabalho

O trabalho está organizado da seguinte maneira: no Capítulo 2, apresentamos definições e resultados das áreas de probabilidade e estatística, complexidade computacional, teoria algorítmica da informação, teoria de grupos e permutações, teoria de grafos e teoria de números, a fim de prover fundamentação teórica a este trabalho e definir formalmente os problemas estudados.

Na sequência, no Capítulo 3, definimos o conceito de provas de conhecimento zero, classes de complexidade relacionadas e problemas completos para estas, além de mostrar provas deste tipo para vários dos problemas definidos no Capítulo 2. No Capítulo 4, apresentamos técnicas de redução para o problema MKTP, além de resultados que relacionam os problemas computacionais e as classes de conhecimento zero definidos nos Capítulos 2 e 3, respectivamente, com o problema MKTP. No Capítulo 5, apresentamos os resultados obtidos durante o desenvolvimento deste trabalho. Por último, no Capítulo 6, apresentamos as considerações finais desta proposta.

(15)

2 Preliminares Gerais

Neste capítulo introduzimos a notação e apresentamos definições e resultados de diversas áreas que serão importantes para o desenvolvimento da dissertação. Para que a leitura das definições e resultados possa fluir, movemos para o Apêndice A as demonstrações dos resultados enunciados como “Proposição”. Resultados enunciados com “Lema”, “Afirmação” ou “Teorema”

são demonstrados ou apresentam a referência de onde o resultado foi retirado. Estabelecemos como convenção que todos os logaritmos são base 2 epoli(n)indica uma função que, paran suficientemente grande, é estritamente menor quenc, para alguma constantecfixa e independente den.

2.1 Probabilidade e Estatística

Nesta seção apresentamos definições e resultados da área de probabilidade e estatística que serão úteis no decorrer do trabalho, baseamos esta seção em [Vad99].

Umespaço amostralUé o conjunto de todos os possíveis resultados de um experimento aleatório. Uma distribuição de probabilidade p em um espaço amostral U é uma função p:U →[0,1]com a propriedade de que

s∈Up(s) = 1. Uma distribuiçãopé ditauniforme em um espaço amostral finitoU sep(s) = 1/|U|para todos∈ U.

Umespaço finito de probabilidadeconsiste em um espaço amostral finitoU e uma distribuição de probabilidadepemU. Umavariável aleatóriaRé um mapeamento do espaço amostralU para um conjuntoT. A variável aleatóriaR junto da distribuição uniforme emU induz uma distribuiçãop emT. Neste trabalho, em algumas situações será conveniente nos referirmos à distribuição induzida porRcomo simplesmenteR. Para um conjuntoS ⊆T e uma variável aleatóriaR, definimosPr[R ∈S] =

rSPr[R =r].

Osuportede uma distribuição de probabilidade (ou variável aleatória)p, é o conjunto de valores para os quaispassocia uma probabilidade não nula. Uma distribuiçãopé ditaplanase é uniforme em seu suporte. Definimos aesperançade uma variável aleatóriaX :U →Rcomo E[X] =

iiPr[X =i], onde a soma é sobre o suporte de X e a variânciade uma variável aleatóriaXcomoV[X] = E[(X−E(X))2]. Há várias desigualdades relacionadas à esperança e variância de variáveis aleatórias que serão úteis neste trabalho, como as desigualdades de Markov e Chebyshev e o limitante de Chernoff. Essas desigualdades podem ser encontradas em [MU05].

(16)

O conceito dedistância estatísticaserá muito importante neste trabalho. Enquanto esse termo é normalmente utilizado para abarcar várias definições diferentes de distância, na área de Complexidade Computacional é usual usá-lo para denotar adistância total de variação. A Definição 2.1.1 apresenta esse conceito formalmente.

Definição 2.1.1. Adistância estatísticaentre duas distribuições de probabilidade (ou variáveis aleatórias)XeY definidas sobre o mesmo espaço amostralU é definida como

Δ(X, Y) = max

S⊆U{|Pr[X ∈S]−Pr[Y ∈S]|}.

O Lema 2.1.2 mostra algumas propriedades úteis a respeito da definição de distância estatística.

Lema 2.1.2. [Vad99] SejamX,Y eZtrês distribuições de probabilidade (ou variáveis aleatórias) em um espaço amostral comumU. Então

1. Δ(X, Y)0, com igualdade se e somente seXeY são identicamente distribuídas.

2. Δ(X, Y)1, com igualdade se e somente seXeY têm suportes disjuntos.

3. Δ(X, Y) = Δ(Y, X).

4. Δ(X, Z)Δ(X, Y) + Δ(Y, Z).

A Proposição 2.1.3 apresenta uma caracterização alternativa para a distância estatística entre duas distribuições de probabilidade.

Proposição 2.1.3. [Vad99] SejamXeY distribuições de probabilidade (ou variáveis aleatórias) em um espaço amostralU, seja SX = {x ∈ U : Pr[X = x] > Pr[Y = x]} , defina SY de maneira análoga, então

Δ(X, Y) = Pr[X ∈SX]Pr[Y ∈SX] = Pr[Y ∈SY]Pr[X ∈SY].

A Proposição 2.1.3 nos mostra outra maneira de enxergar distância estatística. Na Figura 2.1, apresentamos as funções de distribuição de probabilidade de duas distribuiçõesX e Y (tal que a área abaixo de cada uma é 1). Assumindo queΔ(X, Y) =δ, temos que a região acima deY e abaixo deX tem áreaδ, assim como a região acima deXe abaixo deY, enquanto a região abaixo de ambos tem área1−δ. Chamamos essas regiões deX-superior,Y-superior eregião comum, respectivamente.

A Definição 2.1.4 apresenta o conceito deentropiade uma distribuição de probabilidade ou variável aleatória. De maneira informal, a entropia mede quantidade média de bits aleatórios que podem ser extraídos de um resultado do experimento aleatório relacionado.

(17)

Figura 2.1: Distância estatística vista como área.

Fonte:traduzido de [Vad99].

Definição 2.1.4. (Entropia). SeXé uma distribuição de probabilidade discreta, então a entropia deX, denotada porH(X), é definida como:

H(X) =

x

Pr[X =x]·log 1

Pr[X =x] = E

log 1

Pr[X =x]

.

Onde o somatório é dado sobre o suporte deX.

Dadas duas distribuições de probabilidade ou variáveis aleatórias X e Y, podemos definir uma distribuição conjunta(X, Y)tal quePr[(X, Y) = (x, y)] = Pr(X =x) ˙Pr(Y =y | X =x) = Pr(Y =y) ˙Pr(X =x |Y =y). O Lema 2.1.5 apresenta algumas propriedades da função de entropia.

Lema 2.1.5. [Vad99] Para qualquer distribuiçãoX ou distribuição conjunta (X, Y) em um espaço amostralU:

1. H(X)0, com igualdade se e somente seX é constante.

2. H(X)log|U|, com igualdade se e somente seXé uniformemente distribuída emU. 3. H(X, Y)H(X) + H(Y), com igualdade se e somente seXeY são independentes.

2.2 Modelos de Computação e Complexidade Computacional

Apresentamos, nesta seção, definições formais dos modelos de computação presentes neste documento e de algumas classes de complexidade. Todas as definições e resultados, a menos que explicitamente indicado, são baseadas nas definições de [AB09].

(18)

Tipicamente problemas de decisão são definidos como linguagens sobre{0,1}. Nesta dissertação vamos trabalhar com uma definição um pouco mais genérica, a deproblemas de promessa. Um problema de promessaΠé um par(ΠS,ΠN)de conjuntos disjuntos de strings, que correspondem a instâncias sim e instâncias não, respectivamente. Definimos então um problema computacional da seguinte maneira: dadox, com a promessa de quex∈ΠSΠN, queremos decidir sex∈ΠSoux∈ΠN. Strings emΠSΠN são chamadas deinstânciasdeΠ.

Dado um algoritmo que decida um problema de promessaΠ, não há nenhum requerimento quanto ao seu comportamento caso seja fornecida como entrada uma string que não pertença aΠSΠN. Definimos aindaΠ(x) = 1se x ΠS e Π(x) = 0sex ΠN. Algumas vezes omitimos na definição formal de um problema de promessa os domínios de entrada (como o conjunto de todos os grafos ou os números naturais) para manter a definição concisa, nesses casos o domínio ou é claro pelo contexto ou é especificado junto da definição. Definimos ocomplementode um problema de promessaΠ = (ΠS,ΠN)comoΠ = (ΠS,ΠN)tal queΠS = ΠNN = ΠS.

Apesar de problemas de promessa aparentarem ser menos interessantes que linguagens, veremos mais adiante que estes surgem naturalmente quando estudamos classes de complexidade relacionadas a provas de conhecimento zero [Vad99]. Note ainda que toda linguagemL⊆ {0,1} pode ser definida através de um problema de promessaΠtal queΠS =LN ={0,1}\L.

Adaptamos as definições padrão de complexidade computacional para abranger problemas de promessa.

2.2.1 Modelos de Computação

O modelo de computação adotado neste documento é amáquina de Turing, considerado padrão na área de complexidade computacional por ser polinomialmente equivalente a todo outro modelo de computação fisicamente realizável, com exceção, possivelmente, de modelos de computação quântica [AB09], que não são utilizados neste trabalho. Neste trabalho, várias vezes faremos referência a algoritmos por estes serem mais convenientes e, como mencionado, equivalentes a máquinas de Turing. Usamos máquinas de Turing explicitamente quando lidamos com variantes de complexidade de Kolmogorov, caso em que uma definição mais precisa do modelo faz-se necessária. Formalizamos o conceito de máquina de Turing na Definição 2.2.1, a seguir.

Definição 2.2.1. (Máquina de Turing). Umamáquina de Turing comkfitasM é uma dupla (Q, δ), onde:

Qé oconjunto de estadosem queM pode estar, assumimos queM possui um estado inicialqstarte um estado de paradaqhalt.

δ :Q× {0,1,,}k Q× {0,1,,}k1 × {L, S, R}k, ondek 2, é a função de transiçãode M, que define o seu comportamento em cada passo computacional.

(19)

Nessa definição,{0,1,,}é oalfabetodas fitas deM, ondeé o símbolo especial brancoeé o símbolo que representa o início das fitas deM.

A fita de entradade M é a sua primeira fita e não pode ser modificada durante sua execução. Afita de saídadeM é a última fita deM. SeM está no estadoq∈Q,1, σ2, . . . , σk) são os símbolos sendo lidos nask fitas de M, e δ(q,1, σ2, . . . , σk)) = (q,2, . . . , σk), z), ondez ∈ {L, S, R}k, então no próximo passo, os símbolosσdeM em suas últimask−1fitas serão trocados pelo símbolo σ correspondente. Além disso M estará no estadoq e suas k cabeças vão se mover para a esquerda(L), direita(R)ou ficar na mesma posição(S), de acordo comz. SeM tenta mover alguma cabeça para a esquerda estando na posição mais à esquerda da fita, a cabeça ficará na mesma posição.

Todas as fitas com exceção da fita de entrada são inicializadas com o símbolona sua primeira posição, e o símbolobrancoem todas as outras posições. A fita de entrada contém, no início da computação, o símbolo, uma stringx(a entrada deM) e o símbolobranco no resto de suas posições. Todas as cabeças começam na extremidade esquerda de suas fitas e a máquina começa no estadoqstart. Cada passo computacional é realizado aplicando a função δ, e o estadoqhaltpossui a propriedade de que, uma vez que a máquina esteja nesse estado, a função de transiçãoδnão mais permite que a máquina modifique suas fitas ou mude de estado, efetivamenteparandosua execução.

Dizemos que uma máquina de TuringM computa uma funçãof :{0,1} → {0,1}, se para todox∈ {0,1}, ao inicializarM comxem sua fita de entrada,M para com o resultado f(x)escrito em sua fita de saída. A saída de uma máquina de TuringM pode ser ainda denotada por M(x) e dessa forma dizemos que M computa a função f se M(x) = f(x) para todo x∈ {0,1}. Além disso, sendoT uma função nos naturais, dizemos queM computafem tempo T(n)seM computaf e executa no máximoT(|x|)passos para qualquer entradax∈ {0,1}.

Em relação a problemas de promessa, focamos em máquinas de Turing que computam funções do tipo f : {0,1} → {0,1}, isso é, dada uma máquina de Turing M e entrada x, M(x) = 1ouM(x) = 0para qualquerx∈ {0,1}. Dessa forma, dizemos que uma máquina de TuringM decideum problema de promessaΠseM computa a funçãofΠ:{0,1} → {0,1}, ondefΠ(x) = 1sex∈ ΠS efΠ(x) = 0sex∈ΠN (strings pertencentes a{0,1}\ΠSΠN não são consideradas).

Máquinas de Turing, por definição, apenas podem receber como entrada strings binárias.

Mesmo assim, muitas vezes nos referimos à execução de uma máquina de Turing com um objeto diferente, como um número inteiro ou um grafo, e até mesmo nos referimos a máquinas de Turing que recebem mais de um parâmetro. Nesses casos assumimos que há uma forma padrão de representação por strings binárias que permite a identificação e separação desses objetos.

Um resultado fundamental da teoria da computabilidade é a existência de umamáquina de Turing universal, que de forma análoga a um computador moderno, consegue simular o comportamento de qualquer outra máquina de Turing. Formalmente, uma máquina de Turing

(20)

Universal é uma máquina de Turing que, ao receber como entrada uma string que possui a descrição de uma máquina de TuringM e uma entradax, simula o comportamento da máquina M ao executar com a entradax. É importante notar que é possível construir uma máquina de Turing universal que simula qualquer outra máquina de TuringM comoverheadlogarítmico, ou seja, executando uma quantidade de passos que superaM por um fator logarítmico. No Teorema 2.2.2,Mα representa a máquina de Turing codificada pela stringα.

Teorema 2.2.2. [HS66] (Máquina de Turing Universal Eficiente). Existe uma máquina de TuringU tal que para todox, α ∈ {0,1},U(α, x) =Mα(x). Além disso, seMαpara com a entradaxem atéT passos, entãoU(α, x)para em atécTlogT passos, ondecé uma constante que independe dex, e depende apenas da quantidade de estados, símbolos e fitas deMα.

Máquinas de Turing também podem ser utilizadas como modelo para formalizar computação aleatorizada. Uma variação de máquina de Turing comum, utilizada para formalizar algoritmos probabilísticos é amáquina de Turing probabilística. Formalizamos esse conceito na Definição 2.2.3.

Definição 2.2.3. (Máquina de Turing Probabilística). Umamáquina de Turing probabilís- ticaé uma máquina de Turing com duas funções de transiçãoδ0eδ1. Para executar uma máquina de Turing probabilísticaM com uma entradax, escolhemos em cada passo computacional, com probabilidade1/2aplicar a função de transiçãoδ0e com probabilidade1/2aplicar a função de transiçãoδ1. Cada escolha é feita independentemente das escolhas anteriores. Denotamos por M(x)a variável aleatória que corresponde ao valor queM responde no final desse processo.

Para uma funçãoT :NN, dizemos queM executa em tempoT(n)se, para qualquer entrada x∈ {0,1}, M executando comxpara em atéT(|x|)passos, independentemente de suas escolhas aleatórias.

Uma máquina de Turing probabilística permite, a cada passo computacional, obter um bit distribuído de maneira aleatória e uniforme, de maneira que, quando um algoritmo amostra elementos de conjuntos, estes são os bits utilizados para fazer a amostragem. Uma dificuldade encontrada com este tipo de definição, porém, é amostrar elementos distribuídos de maneira uniforme de um conjunto cujo tamanho não é uma potência de 2. Para contornar essa dificuldade, seguindo [GT14], assumimos que as máquinas de Turing probabilísticas deste trabalho possuem uma fita extra de amostragem e um estadoqsample. Quando a máquina escreve um número em binárioN na fita de amostragem e muda para o estadoqsample, no próximo passo o conteúdo da fita é substituído por uma amostra aleatória e uniforme em[N] ={1,2,3, . . . , N}. Máquinas de Turing probabilísticas ainda são equivalentes a máquinas de Turing que possuem como entrada adicional uma sequência de bits aleatórios (tantos quanto necessário), que podem ser utilizados durante a computação.

Outra variação de máquina de Turing que permite definir formas mais fortes de redução é amáquina de Turing com oráculo. Estas são extensões de máquinas de Turing que possuem

(21)

acesso a um “oráculo” capaz de decidir em apenas um passo computacional instâncias de um dado problema de promessaO. Como o problema de promessaOpode até mesmo ser indecidível, oráculos não necessariamente possuem correspondência no mundo físico, porém são ferramentas matemáticas importantes no estudo de complexidade computacional. A Definição 2.2.4 apresenta esse conceito formalmente.

Definição 2.2.4. (Máquina de Turing com Oráculo). Umamáquina de Turing com oráculo é uma máquina de TuringM que possui uma fita especial de escrita e leitura que é chamada de fita oráculodeM e três estadosqquery,qyeseqno. Associado à fita de oráculo, há um problema de promessaO. QuandoM entra no estado qquery, a máquina se move para o estadoqyes se q∈OS e para o estadoqnoseq ∈ON, ondeqé o conteúdo da fita oráculo deM. É importante notar que independente da escolha deO, uma consulta ao oráculo paraOconta somente como um passo computacional. Muitas vezes vamos nos referir ao problema de promessaOassociado à fita de oráculo comooráculo O. SejamM uma máquina de Turing com Oráculo, O um problema de promessa ex ∈ {0,1}, então denotamos a saída deM com a entradax e com oráculoOporMO(x).

Outro modelo de computação que será extensivamente utilizado nesta dissertação é o modelo decircuito Booleano, ou somentecircuito, cuja definição formal apresentamos a seguir, na Definição 2.2.5.

Definição 2.2.5. (Circuitos Booleanos). Para todo n N, um circuito Booleano C de m entradas ensaídas é um grafo acíclico direcionado1commfontes(vértices para os quais nenhum arco aponta) en destinos (vértices dos quais não partem nenhum arco). Todos os vértices não-destino são chamados deportase possuem uma etiqueta ∧,∨ou¬, que representam as operações booleanas E, OU e NÃO, respectivamente. Cada porta possui um número de arcos de entrada, denominadofan-in, e de saída, denominadofan-out. Vértices com etiqueta¬possuem fan-in1 efan-out ilimitado, enquanto vértices com as etiquetasepossuemfan-inefan-out ilimitados. O tamanho deC, denominado por|C|, é o número de arcos emC.

Um circuito booleanoCcomputa uma função de{0,1}m para{0,1}n. Sex∈ {0,1}m é uma entrada paraC, então a saída de C comx, denotada por C(x), é definida através das operações das portas. Mais formalmente, para cada vérticev deC associamos um valor val(v), da seguinte maneira: Sevé oi-ésimo vértice fonte, então val(v) =xi, caso contrário val(v)é definido recursivamente ao aplicar as operações lógicas dev nos valores dos vértices conectados av. A saídaC(x)é a string correspondente aos valores dos vértices destino, de forma que sev é oi-ésimo vértice destino, então oi-ésimo bit da string de saída é val(v).

Circuitos diferem de máquinas de Turing em um aspecto fundamental: enquanto máquinas de Turing podem receber como entrada uma string de qualquer tamanho, circuitos são

1Na definição de circuitos booleanos assumimos familiaridade do leitor com a noção intuitiva do que seja um grafo acíclico. Na Seção 2.5 apresentamos algumas definições formais de grafos, mas iremos focar apenas em apresentar aquelas que são relevantes para os problemas computacionais tratados mais adiante no trabalho.

(22)

limitados a um tamanho de entrada. Quando pensamos em circuitos como modelo de computação, normalmente definimos umafamília infinita de circuitosCque decide um problema de promessa Π. Nessa família há um circuito diferente para cada tamanho de entrada que computa corretamente as instâncias desse tamanho deΠ.

Um circuitoCcom uma entradaxpode ser avaliado (ou seja,C(x)pode ser computado) por uma máquina de Turing em tempo polinomial no tamanho deC. Além disso, porém, existe uma correspondência de um para um entre circuitos e um tipo específico de máquina de Turing que possui uma string de entrada adicional, chamada deconselho. Esse tipo de máquina de Turing é apresentada a seguir, na Definição 2.2.6.

Definição 2.2.6. (Máquina de Turing com conselho). Umamáquina de Turing com conselho M[y]é uma máquina de TuringM junto de uma string de conselho arbitráriay, que pode ser acessada porM durante sua execução com a string de entrada. Denotamos a computação de uma stringxpela máquina com conselhoM[y]porM[y](x).

Fixada uma máquina M e dada uma string de entrada x, normalmente definimos o conselhoyem função dex. Quando esse conselho não pode ser obtido em tempo polinomial a partir dex, o chamamos deconselho não-uniforme. Relembramos que quando falamos de problemas decididos por famílias infinitas de circuitos, definimos um circuito diferente para cada tamanho de entrada. Quando usamos máquinas de Turing com conselho para lidar com tais problemas, definimos o conselhoyem função de|x|.

Transformar um circuito em uma máquina de Turing com conselho é fácil, basta fixar uma máquina de Turing que realize avaliação de circuitos e o conselho é a string que representa o circuito. A transformação contrária é mais complexa mas também é possível, podemos transformar uma máquina de Turing com conselho em uma família de circuitos, um para cada tamanho de entrada da máquina de Turing. Os circuitos e máquinas de Turing com conselho obtidos desta maneira são polinomialmente equivalentes, isto é, circuitos de tamanho polinomial em sua entrada correspondem a máquinas de Turing com conselho, também ambos de tamanho polinomial e tempo de execução polinomial [AB09]. Circuitos obtidos desta maneira a partir de máquinas de Turing com conselho não-uniforme também são chamados de não-uniformes. A equivalência entre os dois modelos nos permite provar a existência de um circuito através de um algoritmo que possui entrada adicional, que não necessariamente precisa ser computada em tempo polinomial a partir da entrada do algoritmo.

2.2.2 Classes de Complexidade

Apresentamos nas Definições 2.2.7 e 2.2.8 as classesPeNP, respectivamente.

Definição 2.2.7. (Classe P).Pé a classe dos problemas de promessa decidíveis por máquinas de Turing de tempoO(nc)que decideΠ, ondecé uma constante fixa independente den.

(23)

Definição 2.2.8. (Classe NP). Um problema de promessaΠestá emNPse existe um polinômio p:NNe uma máquina de TuringM de tempo polinomial (chamada deverificadordeΠ) tal que para todox∈ΠS ΠN:

x∈ΠS ↔ ∃u∈ {0,1}p(|x|);M(x, u) = 1.

Sex∈ΠS eu∈ {0,1}p(|x|) satisfazemM(x, u) = 1, então chamamosudecertificadopara a stringx(em relação ao problema de promessaΠe à máquinaM).

Apresentamos também nas Definições 2.2.9 e 2.2.10 as classesBPP(Bounded-error Probabilistic Polynomial time), RP(Randomized Polynomial time) e co-RP, relacionadas a computação aleatorizada.

Definição 2.2.9. (Classe BPP). ParaT :NNe um problema de promessaΠ, dizemos que uma máquina de Turing probabilísticaM decideΠem tempoT(n)se para todox∈ΠSΠN, quandoM executa comxa máquina para em atéT(|x|)passos independentemente das escolhas aleatórias que realiza e Pr[M(x) = Π(x)]2/3. DefinimosBPPcomo a classe dos problemas de promessa decidíveis por máquinas de Turing probabilísticas em tempoO(nc), ondecé uma constante fixa independente den.

Definição 2.2.10. (Classes RP e co-RP).RPé a classe dos problemas de promessaΠpara os quais existe uma máquina de Turing probabilísticaM de tempoO(nc), ondecé uma constante fixa independente den, tal que

x∈ΠS Pr[M(x) = 1] 2 3 x∈ΠN Pr[M(x) = 1] = 0 Defina ainda co-RP=

Π|ΠRP .

A constante 2/3 das definições deBPP,RPe co-RPé arbitrária, no sentido de que pode ser trocada por qualquer outra constante estritamente maior que1/2, e até mesmo por 1/2 + 1/poli(n), onde n é o tamanho da string de entrada, que as classes continuam sendo as mesmas. Isso ocorre pois existe um procedimento que envolve a repetição da execução da máquina de Turing probabilística um número polinomial de vezes e garante que sua probabilidade de acerto se torna exponencialmente próxima de 1 [AB09].

Apresentamos ainda, na Definição 2.2.11, a classe ZPP (Zero-error Probabilistic Polynomial time).

Definição 2.2.11. (Classe ZPP).ZPPé a classe dos problemas de promessaΠpara os quais existe uma máquina de Turing probabilística M de tempo esperado O(nc), onde c é uma constante fixa independente den, tal queM decideΠ.

(24)

Um resultado clássico de computação aleatorizada indica que ZPP = RP co-RP [AB09]. Apresentamos a intuição deste resultado: tendo acesso a duas máquinas de Turing probabilísticas, tal que uma consegue detectar com alta probabilidade instâncias do tipo sim e a outra instâncias do tipo não (o que indica que este problema está emRPco-RP), basta executar as duas até obter certeza de um dos casos. Para a volta, basta executar a máquina de tempo esperado polinomial por uma certa quantidade de passos, e caso essa ainda não tenha obtido resposta, responder o resultado que não introduz erro para as instâncias não no caso de RPe sim no caso de co-RP.

Definimos para todas as classes de complexidade sua variação com um oráculo arbitrário O. Por exemplo,ΠPOse existe uma máquina de TuringMcom oráculoOde tempo polinomial que decideΠ. Seja aindaC uma classe de complexidade, definimos co-C =

Π|Π∈ C

. Ainda estendemos as definições de classes de complexidade para funções em geral e problemas de busca, nos quais o objetivo é computar uma função. Por exemplo,f é computável emPse existe uma máquina de TuringM de tempo polinomial que computaf.

Além das classes de complexidade definidas nesta seção, veremos várias classes definidas em termos de provas de conhecimento zero. Estas classes serão centrais neste trabalho e serão vistas em detalhes no Capítulo 3. Além disso, é comum usar uma classe de complexidade como um modelo computacional. Por exemplo, é possível dizer que multiplicar dois números inteiros é computável emP, o que indica que há um algoritmo polinomial que computa a função de multiplicação. Da mesma forma, poderíamos dizer que é possível testar a identidade de dois polinômios emBPP, o que indica que há um algoritmo probabilístico polinomial que realiza essa tarefa corretamente com alta probabilidade.

2.2.3 Tipos de Redução

Apresentamos, nesta seção, o conceito dereduçãoe diferentes tipos de redução que serão utilizados neste trabalho. O tipo mais comum de redução é a redução polinomial, porém mesmo nesse caso há algumas variações. A primeira dessas é aredução Cook, apresentada na Definição 2.2.12.

Definição 2.2.12. (Redução Cook). Dizemos que um problema de promessaΠéCook-redutível a um problema de promessaΓseΠPΓ.

A redução Cook possui esse nome por ser o tipo de redução utilizada por Cook em sua demonstração clássica de que o problema SAT éNP-completo [AB09]. Note que nesse tipo de redução, o oráculo paraΓ pode ser invocado várias vezes pelo algoritmo polinomial que decideΠ. Um tipo mais restrito de redução, que pode ser vista como uma redução Cook que faz apenas uma chamada de oráculo no fim da execução, é aredução Karp, que apresentamos na Definição 2.2.13.

(25)

Definição 2.2.13. (Redução Karp). Dizemos que um problema de promessaΠéKarp-redutível a um problema de promessaΓ, denotado porΠp Γ, se existe uma máquina de Turing de tempo polinomialM tal que

x∈ΠS →M(x)ΓS x∈ΠN →M(x)ΓN.

Os dois tipos de redução apresentados até o momento são transitivos. O conceito de redução Karp ainda é útil para definir o que é um problemacompletopara uma classe de complexidade, conceito que definimos formalmente na Definição 2.2.14

Definição 2.2.14. (Problemas Completos). Dizemos que um problema de promessaΠédifícil para uma classe de complexidadeC se para todoΓ∈ Cp Π. QuandoΠ ∈ CeΠé difícil paraC, dizemos queΠécompletoparaC.

Notamos que essa redução de completude não é a mais adequada para classes contidas em ou iguais aP, pois normalmente é utilizado um tipo mais fraco de redução do que o tipo de computação que a classe permite2. Ainda assim, como nossa discussão foca em classes de complexidade que conjectura-se estarem fora deP, adotamos essa definição mais simples.

Definimos também reduções nas quais o processo de redução é aleatorizado. Esse processo pode, assim como uma redução Cook, realizar várias chamadas de oráculo. Neste caso temos, por exemplo, apenas queΠBPPΓ. É comum que nesse tipo de redução seja realizada apenas uma chamada ao oráculo paraΓcomo último passo do algoritmo. Nesse caso percebe-se que há um processo aleatorizado que transforma uma instância do problemaΠem uma instância do problemaΓ. Chamamos reduções desse tipo demapeamentos aleatorizados.

2.3 Teoria Algorítmica da Informação

Ateoria algorítmica da informação, assim como a teoria da comunicação de Shannon, visa determinar a quantidade de informação de objetos [LV97]. A principal diferença entre as duas teorias diz respeito ao seu objeto de estudo. Enquanto a teoria da comunicação analisa objetos que são provenientes de distribuições de probabilidade, a teoria algorítmica da informação foca na quantidade de informação presente em um objeto, mais precisamente em uma string que descreva o objeto. Para a teoria algorítmica da informação, uma medida de informação deve obedecer a alguns requisitos: a quantidade de informação deve ser relacionada a uma descrição mínima do objeto, além disso, é importante que o tamanho dessa descrição seja uma característica intrínseca do objeto e não dependa de alguma linguagem de especificação. Uma medida de informação que obedece a esses requisitos é acomplexidade de Kolmogorov[LV97].

2Com a nossa definição, é evidente que todo problema emPéP-completo.

(26)

A ideia central é que a complexidade de um objeto é definida pelo tamanho do menor programa que “constrói” o objeto (ou seja, tem como saída a string que descreve o objeto).

Definimos, nesse momento, uma versão de complexidade de Kolmogorov diferente da definição mais usual de [LV97]. Apesar de suas diferenças, comentadas a seguir, essa versão ainda captura a essência da definição de complexidade de Kolmogorov. Essa modificação torna mais natural a definição da medida de complexidadeKT, que será central neste trabalho.

Na definição que será apresentada, a complexidade de Kolmogorov de uma string x é o tamanho da menor descriçãod(vista como um programa) que quando executada por uma máquina de Turing universalUpermite reconhecer corretamente cada bit dex, dado queU possui acesso indexado a descriçãod. Além disso,U deve ser capaz de reconhecer quando um índice dado como entrada é maior do que o tamanho dex, caso em que deve responder∗. Formalmente, dizemos que uma máquina de TuringU possui acesso indexado a uma stringd, indicado pela notaçãoUd, quando U possui uma fita de endereçamento na qual pode escrever uma posição dedem binário e em um passo computacional acessar a posição desejada. A Definição 2.3.1 formaliza o conceito de complexidade de Kolmogorov.

Definição 2.3.1. [ABK+06](Complexidade de Kolmogorov)SejaU uma máquina de Turing universal fixa ex∈ {0,1}. Defina

K(x) = min

|d| | ∀b ∈ {0,1,∗},∀i≤ |x|+ 1 |Ud(i, b)aceita ssexi =b .

A Proposição 2.3.2, normalmente enunciada para a versão mais clássica de complexidade de Kolmogorov, também é válida para essa versão, e terá papel importante neste trabalho.

Proposição 2.3.2. [LV97] Sejak N. Todo conjunto finito Ade cardinalidade mtem pelo menosm(1−2k) + 1elementosxtais queK(x)logm−k.

A Proposição 2.3.2 indica que ao escolher de maneira aleatória e uniforme um elemento xdeA, a probabilidade de escolher um elemento tal queK(x) logm−k é maior do que 12k. Uma consequência desse resultado, apresentada no Corolário 2.3.3, é a de que a grande maioria das strings possui complexidade de Kolmogorov próxima do seu tamanho.

Corolário 2.3.3. Sejamn, k N. O conjunto {0,1}n contém pelo menos 2n(12k) + 1 elementosxtal queK(x)≥n−k.

De maneira parecida com a Proposição 2.3.2, esse corolário indica que, escolhendo de maneira aleatória e uniforme uma stringxde tamanhon, a probabilidade de essa string possua K(x)≥n−ké maior do que12k. Apresentamos na Definição 2.3.4 a complexidadeKT, uma medida de complexidade de Kolmogorov limitada em tempo que tem conexões importantes com vários problemas que trataremos nesta dissertação.

(27)

Definição 2.3.4. [ABK+06](KT)SejaU uma máquina de Turing universal fixa comoverhead de simulação logarítmico. Defina

KT(x) = min

|d|+t| ∀b∈ {0,1,∗},∀i≤ |x|+ 1 |Ud(i, b)aceita em t passos ssexi =b .

É fácil notar queKT(x)K(x)para toda stringx, pois a medidaKTconsidera o tempo de execução deU com a descriçãod, enquanto a complexidade de Kolmogorov desconsidera esse valor. Além disso, a medida de complexidadeKT tem conexões importantes com outro problema computacional, o problema de minimização de circuitos [ABK+06], e com os conceitos de funções unidirecionais e geradores pseudo-aleatórios [AB09]. Veremos uma consequência dessas conexões em mais detalhes no Capítulo 4.

2.4 Teoria de Grupos e Permutações

Nesta seção apresentamos conceitos relacionados à teoria de grupos e permutações. A menos que explicitamente indicado, as definições e resultados são baseados em [Rot06]. Grupos são estruturas algébricas compostas por um conjunto e uma operação binária que respeita certas propriedades. A generalidade com a qual grupos são tratados permite provar resultados que se aplicam a várias situações. A Definição 2.4.1 apresenta formalmente esse conceito.

Definição 2.4.1. (Grupo). Um grupo é um conjunto G junto de uma operação binária

:G×G→Ge de um elementoe∈G, chamado deidentidade, tal que 1. a operaçãoéassociativa: para todosa, b, c∈G,

a∗(b∗c) = (a∗b)∗c;

2. e∗a =apara todoa∈G;

3. para todoa∈G, existea ∈Gcoma ∗a=e.

Chamamos o elementoa deinversodea, e o denotamos pora1. Além disso, existe um único elemento identidadee ∈Ge um único inverso a1 Gpara cadaa G. Quando conveniente, podemos escreverabno lugar dea∗b. Podemos ainda nos referir a uma operação qualquer de grupo como multiplicação. Quando a operaçãode um grupo também écomutativa, chamamos esse degrupo comutativoougrupo abeliano. As propriedades da Definição 2.4.1 garantem que todo grupo obedece àLei do Cancelamento, que indica que sea, b, x ∈GeGé um grupo, entãoxa=xbouax=bximplica quea=b.

Apresentamos nas Afirmações 2.4.2 e 2.4.3 mais algumas propriedades válidas para todos os grupos.

Afirmação 2.4.2. [Rot06] SejaGum grupo ea∈Gsatisfaza∗a=a, entãoa=e.

(28)

Afirmação 2.4.3. [Rot06] SejaGum grupo com operação∗e identidadee.

1. a∗a1 =epara todoa∈G.

2. a∗e =apara todoa∈G.

3. See0 ∈Gsatisfaze0∗a=apara todoa∈G, entãoe0 =e.

4. (a1)1 =apara todoa ∈G.

Como cada grupo possui um único elemento identidade, iremos a partir de agora nos referir à identidade por1ao invés deequando nos referirmos a grupos em geral. Um tipo de grupo muito estudado é o grupo simétrico de permutaçõesSn. Para poder definir e estudar esse grupo, apresentamos algumas definições preliminares. A Definição 2.4.4 apresenta o conceito de permutação e a Definição 2.4.5 apresenta o conceito de grupo simétrico.

Definição 2.4.4. Umapermutaçãode um conjuntoX é uma bijeçãoα :X →X.

Definição 2.4.5. A família de todas as permutações de um conjunto X, denotada porSX, é chamada degrupo simétrico emX. QuandoX = {1,2, . . . , n},SX é usualmente denotado porSne chamado degrupo simétrico emn.

A razão de chamarmosSX de grupo simétrico é queSX é um grupo quando aliado a operação de composição de funções3, como indicado pela Proposição 2.4.6.

Proposição 2.4.6. SX forma um grupo junto da operação de composição de funções◦.

Há várias maneiras de representar um elemento deSn. Uma das maneiras é através da representação em duas linhas de Cauchy, como é o caso do exemplo a seguir.

1 2 3 4 5 4 3 1 5 2 .

Nesse exemplo representamos o elemento π Sn, tal que π(1) = 4, π(2) = 3, π(3) = 1, π(4) = 5eπ(5) = 2. Além dessa representação, podemos usar outra, mais compacta. Para poder definir essa representação, apresentamos nas Definições 2.4.7, 2.4.8 e 2.4.9 alguns conceitos preliminares.

Definição 2.4.7. Se α Sn e i ∈ {1,2, . . . , n}, entãoα fixa ise α(i) = i, eα movei caso contrário.

3Note que definimos a operação de composição de forma que(fg)(x) =f(g(x)), ou seja, aplicamos primeiro a permutação à direita depois a à esquerda. Alguns autores definem a operação de composição à direita, de forma que(fg)(x) =g(f(x)), ou até mesmo escrevendo(x)(fg) = ((x)f)g. Resultados usando uma definição podem normalmente ser transpostos para a outra.

(29)

Definição 2.4.8. Sejam i1, i2, . . . , ir inteiros distintos em {1,2, . . . , n}. Se α Sn fixa os inteiros (se houver) do conjunto{1,2, . . . , n} \ {i1, i2, . . . , ir}e se

α(i1) =i2, α(i2) = i3, . . . , α(ir1) = ir, α(ir) = i1,

entãoαé chamado der-ciclo. Também dizemos queαé um ciclo detamanhor.

Definição 2.4.9. Duas permutações α, β ∈Sn sãodisjuntasse todoimovido por uma delas é fixado pela outra, ou seja, seα(i) =i, entãoβ(i) = i, e seβ(j) = j, entãoα(j) = j. Um conjuntoα1, α2, . . . , αtde permutações édisjuntose cada par delas é disjunto.

Denotaremos umr-cicloαporα = (i1 i2 . . . ir). Note que nem toda permutação é um ciclo, mesmo assim a Afirmação 2.4.10, apresentada a seguir, nos permite usar a notação de ciclos para representar qualquer permutação.

Afirmação 2.4.10. [Rot06] Toda permutaçãoα∈Sné ou um ciclo ou a composição de ciclos disjuntos.

Apresentamos um exemplo de permutação α ∈Snjunto da sua representação como uma composição de ciclos disjuntos.

1 2 3 4 5 6 7 8 9 6 4 7 2 5 1 8 9 3 ,

que pode ser representada pela composição de ciclosα= (1 6)(2 4)(3 7 8 9)(5).

Voltamos nossa atenção para grupos em geral. A Definição 2.4.11 apresenta a operação de exponenciação em um grupo.

Definição 2.4.11. SejaGum grupo ea∈G, definaanpara um inteiron 1indutivamente, a1 =aean+1 =aan

Definimos aindaa0 = 1e, sené um inteiro positivo, definimos an= (a1)n = (an)1.

Essa operação possui propriedades semelhantes às propriedades de exponenciação com números reais. Apresentamos essas propriedades na Afirmação 2.4.12.

Afirmação 2.4.12. [Rot06] (Leis dos Expoentes). SejaGum grupo,a∈Ge inteirosm, n≥1, então

1. seaebcomutam, ou seja, seab=ba, então(ab)n=anbn. 2. am+n=aman.

(30)

3. (am)n =amn.

Também relacionada à exponenciação em grupos temos a Proposição 2.4.13, a seguir.

Proposição 2.4.13. SejaGum grupo finito ea∈G, entãoak = 1para algum inteirok≥1.

Usamos a propriedade da Proposição 2.4.13 para definir aordemde um elemento de um grupo, conforme apresentado na Definição 2.4.14.

Definição 2.4.14. SejaGum grupo ea∈G. Definimos aordemdeacomo o menor expoente k≥1que respeitaak = 1. Caso não exista valor dekque satisfaça a equação, dizemos quea possuiordem infinita.

Note que, como todo grupo finito respeita a Proposição 2.4.13, todo elemento de um grupo finito possui ordem finita.

Em nossas aplicações dos conceitos vistos até o momento sobre grupos será comum amostrar de maneira uniforme elementos aleatórios de um grupo finitoG. Quandor∈Gé um elemento amostrado dessa maneira, temosPr[r =x] = 1/|G|para todox∈G. Argumentamos que a distribuição uniforme se mantém mesmo quando multiplicamos o elemento sorteadorpor um elemento fixoy∈G. Isso ocorre pois para todox∈G,Pr[ry =x] = Pr[r =xy1] = 1/|G|, assim como desejado.

2.4.1 Subgrupos e o Teorema de Lagrange

Nessa seção definimos o conceito desubgrupoe exploramos algumas propriedades dessa construção. De maneira informal, um subgrupo é um subconjunto de um grupoGque também é um grupo sob a mesma operação. As Definições 2.4.15 e 2.4.16 ajudarão a tornar essa explicação mais precisa.

Definição 2.4.15. Seja uma operação em um conjuntoG e sejaS G. Dizemos queS é fechado sobsex∗y∈Spara todosx, y ∈S.

Definição 2.4.16. Um subconjuntoHde um grupoGé umsubgrupodeG, indicado porH ≤G, se

1. 1∈H;

2. sex, y ∈H, entãox∗y∈H, ou seja,Hé fechado sob; 3. sex∈H, entãox1 ∈H.

Não é difícil perceber que as três condições da Definição 2.4.16 (junto do fato de que todo subgrupo herda elementos e a operação binária do grupo original) garantem que todo subgrupo é um grupo. Podemos ainda verificar se um subconjunto de um grupoGé um subgrupo através da Afirmação 2.4.17, a seguir.

Referências

Documentos relacionados

Identificar a produção do conhecimento em enfermagem no período pós-parto imediato período Greenberg, nos últimos 5 anos, de 2005 a 2009;Demonstrar os resultados da

Sentido a necessidade de organizar melhor os louvores de grupo decidi trabalhar neste documento utilizando ferramentas gratuitas.. Por n˜ ao ser vers˜ ao final, n˜ ao deve ser

Que razões levam os gestores das Universidades Corporativas a optarem pela utilização da educação a distância por meio de cursos on-line na modalidade auto estudo?.

A média de pacientes que apresentaram cefaléia durante as sessões de hemodiálise foi de 7,62%, em um estudo realizado sobre cefaléia relacionada à hemodiálise observa-se que os

Users who join Reddit earlier post more and longer comments than those who join later, while users who survive longer start out both more active and more likely to comment than

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

Os estudos originais encontrados entre janeiro de 2007 e dezembro de 2017 foram selecionados de acordo com os seguintes critérios de inclusão: obtenção de valores de

Limitador de binário e acoplamento hidráulico AR e AT Base oscilante MK Edição 05/2003 Instruções de Operação 1121 4252 / PT... 2.1 Accionamento com limitador de binário