• Nenhum resultado encontrado

Mon´oides e o Algoritmo de Exponencia¸c˜ao

N/A
N/A
Protected

Academic year: 2022

Share "Mon´oides e o Algoritmo de Exponencia¸c˜ao"

Copied!
23
0
0

Texto

(1)

Mon´oides e o Algoritmo de Exponencia¸ao

Mon´ oides e o Algoritmo de Exponencia¸ c˜ ao

Lu´ıs Fernando Schultz Xavier da Silveira

Departamento de Inform´atica e Estat´ıstica - INE - CTC - UFSC

12 de maio de 2010

(2)

Mon´oides e o Algoritmo de Exponencia¸ao

Conte´ udo

1 Mon´oides Defini¸c˜ao Propriedades Exemplos

2 Produt´orios e Exponencia¸c˜ao em Mon´oides Defini¸c˜ao

Propriedades

3 O Algoritmo de Exponencia¸c˜ao Enunciado

Prova de Corretude An´alise da Complexidade Implementa¸c˜ao

4 Aplica¸c˜oes

Exponencia¸c˜ao Modular

C´alculo Eficiente dos N´umeros de Fibonacci

(3)

Mon´oides e o Algoritmo de Exponencia¸ao Mon´oides

Defini¸ao

Defini¸c˜ ao

Defini¸c˜ao

SejaM um conjunto e·:M →M uma fun¸c˜ao. Dizemos que(M,·)´e um mon´oide se as seguintes propriedades forem satisfeitas:

·´e associativa.

Existe um elemento 1∈M tal que, para todox∈M,1·x=x·1 =x.

(4)

Mon´oides e o Algoritmo de Exponencia¸ao Mon´oides

Propriedades

Propriedades

Proposi¸c˜ao (Unicidade da Unidade)

Seja(M,·) um mon´oide e1,10∈M tais que, para todox∈M, 1·x=x·1 = 10·x=x·10=x. Ent˜ao1 = 10.

Demonstra¸c˜ao.

Temos que 1·10= 1 e 1·10= 10, logo 1 = 10. Com isso podemos definir a unidade de um mon´oide.

(5)

Mon´oides e o Algoritmo de Exponencia¸ao Mon´oides

Exemplos

Exemplos

S˜ao exemplos de mon´oides:

(R,·) onde 1 = 1.

(Z,+) onde 1 = 0.

(R2×2,·), onde 1 =

»1 0 0 1 –

. (Σ,·), onde 1 =ε.

(F(A, A),◦), onde 1(x) =x.

(L(A, A),◦), onde 1(x) =x.

(B(A, A),◦), onde 1(x) =x.

(2A,∪), onde 1 ={}.

(2A,∩), onde 1 =A.

(2A,⊕), onde 1 ={}.

(6)

Mon´oides e o Algoritmo de Exponencia¸ao Produt´orios e Exponencia¸ao em Mon´oides

Defini¸ao

Produt´ orios e Exponencia¸c˜ ao em Mon´ oides

Defini¸c˜ao

Seja(M,·)um mon´oide ef:Z→M uma fun¸c˜ao. Definimos indutivamente

b

Y

i=a

f(i) = 8

><

>:

1, b < a

f(a)·

b

Y

i=a+1

f(i)

!

, sen˜ao,

ondea, b∈Z.

Defini¸c˜ao

Seja(M,·) um mon´oide,k∈Num n´umero natural ex∈M um elemento qualquer. Definimos

xk=

k−1

Y

i=0

x.

(7)

Mon´oides e o Algoritmo de Exponencia¸ao Produt´orios e Exponencia¸ao em Mon´oides

Propriedades

Propriedades dos Produt´ otios em Mon´ oides

Proposi¸c˜ao

Seja(M,·) um mon´oide,f:Z→M uma fun¸c˜ao ea, c, b∈Zn´umeros inteiros satisfazendoa6c6b. Ent˜ao

c−1

Y

i=a

f(i)

!

·

b−1

Y

i=c

f(i)

!

=

b−1

Y

i=a

f(i).

(8)

Mon´oides e o Algoritmo de Exponencia¸ao Produt´orios e Exponencia¸ao em Mon´oides

Propriedades

Propriedades dos Produt´ otios em Mon´ oides

Demonstra¸c˜ao.

Por indu¸c˜ao emc−a. No caso basea=c, logo

c−1

Y

i=a

f(i)

!

·

b−1

Y

i=c

f(i)

!

=

a−1

Y

i=a

f(i)

!

·

b−1

Y

i=a

f(i)

!

= 1·

b−1

Y

i=a

f(i)

!

=

b−1

Y

i=a

f(i).

(9)

Mon´oides e o Algoritmo de Exponencia¸ao Produt´orios e Exponencia¸ao em Mon´oides

Propriedades

Propriedades dos Produt´ otios em Mon´ oides

Demonstra¸c˜ao.

Para o passo indutivo, assumaa < c. Portanto

c−1

Y

i=a

f(i)

!

·

b−1

Y

i=c

f(i)

!

= f(a)·

c−1

Y

i=a+1

f(i)

!!

·

b−1

Y

i=c

f(i)

!

=f(a)· c−1

Y

i=a+1

f(i)

!

·

b−1

Y

i=c

f(i)

!!

=f(a)·

b−1

Y

i=a+1

f(i)

!

=

b−1

Y

i=a

f(i).

(10)

Mon´oides e o Algoritmo de Exponencia¸ao Produt´orios e Exponencia¸ao em Mon´oides

Propriedades

Propriedades da Exponencia¸c˜ ao em Mon´ oides

Corol´ario.

Seja(M,·) um mon´oide,x∈M um elemento qualquer em, n∈Nn´umeros naturais. Ent˜ao

xm+n=xm·xn. Demonstra¸c˜ao.

xm·xn=

m−1

Y

i=0

x

!

·

n−1

Y

i=0

x

!

=

m−1

Y

i=0

x

!

· 0

@

(m+n)−1

Y

i=m

x 1 A=

(m+n)−1

Y

i=0

x

=xm+n.

(11)

Mon´oides e o Algoritmo de Exponencia¸ao Produt´orios e Exponencia¸ao em Mon´oides

Propriedades

Propriedades da Exponencia¸c˜ ao em Mon´ oides

Proposi¸c˜ao

Seja(M,·) um mon´oide,x∈M um elemento qualquer em, n∈Nn´umeros naturais. Ent˜ao

(xm)n=xmn.

Demonstra¸c˜ao.

A prova ser´a por indu¸c˜ao emn. Paran= 0 o resultado ´e trivial.

Sejan∈Nqualquer e assuma que (xm)n=xmn. Ent˜ao

(xm)(n+1)= (xm)n·(xm)1=xmn·xm=xmn+m=xm(n+1).

(12)

Mon´oides e o Algoritmo de Exponencia¸ao Produt´orios e Exponencia¸ao em Mon´oides

Propriedades

Propriedades da Exponencia¸c˜ ao em Mon´ oides

Como uma observa¸c˜ao final, note que 0x´e 1 para todox. Inclusive, 00= 1.

(13)

Mon´oides e o Algoritmo de Exponencia¸ao O Algoritmo de Exponencia¸ao

Enunciado

Enunciado

Seja (M,·) um mon´oide,x∈M em elemento qualquer ek∈Num n´umero natural. Considere ent˜ao o seguinte algoritmo:

exp(x, k) 0 a, n, p←x, k,1 1 enquanton6= 0fa¸ca 2 senmod 2 = 1ent˜ao

3 p←p·a

4 a←a·a 5 n←¨n

2

˝ 6 retornep

(14)

Mon´oides e o Algoritmo de Exponencia¸ao O Algoritmo de Exponencia¸ao

Prova de Corretude

Prova de Corretude

Teorema

O algoritmo anterior corretamente computa o valorxk.

Demonstra¸c˜ao.

A prova ser´a atrav´es da seguinte invariante de loop:

“Sempre que o algoritmo passa pela linha 1,p·an=xk.”

Na primeira vez que ele chega `a linha 1, essa invariante ´e trivialmente satisfeita, poisp= 1,a=xen=kem virtude da atribui¸c˜ao na linha 0.

(15)

Mon´oides e o Algoritmo de Exponencia¸ao O Algoritmo de Exponencia¸ao

Prova de Corretude

Prova de Corretude

Demonstra¸c˜ao.

Suponha que o algoritmo chegou `a linha 1 satisfazendo a invariante. Vamos mostrar que se ele retornar, a invariante ainda continua sendo satisfeita.

O algoritmo ir´a voltar `a linha 1 se, e somente se,n6= 0. Iremos, portanto, assumir este fato.

Se ele voltar, os novos valores paraa,nepser˜ao a0=a·a, p0=p·anmod 2, n0=

jn 2 k

. Mas ent˜ao

p0·a0n0 =p·anmod 2·(a·a)bn2c=p·anmod 2·(a2)bn2c

=p·anmod 2·abn2c=p·anmod 2·an−(nmod 2)

=p·an=xk.

(16)

Mon´oides e o Algoritmo de Exponencia¸ao O Algoritmo de Exponencia¸ao

Prova de Corretude

Prova de Corretude

Demonstra¸c˜ao.

Portanto, ao fim do algoritmo,xk=p·an, mas comon= 0,

xk=p·a0=p·1 =p. Logo o algoritmo corretamente retornap=xk.

(17)

Mon´oides e o Algoritmo de Exponencia¸ao O Algoritmo de Exponencia¸ao

An´alise da Complexidade

An´ alise da Complexidade

Este algoritmo pode ter sua complexidade analisada com o Teorema Mestre atrav´es da recorrˆencia

T(n) =T

“n 2

” + Θ(1).

Como Θ(1) = Θ(nlog21), temos

T ∈Θ(logn).

(18)

Mon´oides e o Algoritmo de Exponencia¸ao O Algoritmo de Exponencia¸ao

Implementa¸ao

Detalhes de Implementa¸ c˜ ao

Senestiver representado na base 2, este algoritmo pode ser eficientemente implementado.

Paran escrito em uma base geral b, precisamos adaptar o algoritmo como segue:

expb(x, k) 0 a, n, p←x, k,1 1 enquanton6= 0fa¸ca 2 p←p·anmodb 3 a←ab

4 n←¨n

b

˝ 5 retornep

A demonstra¸c˜ao de que ele funciona e roda em Θ(logn) para todobfica como exerc´ıcio.

(19)

Mon´oides e o Algoritmo de Exponencia¸ao Aplica¸oes

Exponencia¸ao Modular

Exponencia¸ c˜ ao Modular

V´arios protocolos de criptografia assim´etrica precisam computar eficiente- mente o valor deabmodnpara valoresn∈N\ {0}ea, b∈Zn.

Observando que (Zn,·) ´e um mon´oide, esse problema pode facilmente ser resolvido com o algoritmo que estudamos.

(20)

Mon´oides e o Algoritmo de Exponencia¸ao Aplica¸oes

alculo Eficiente dos N´umeros de Fibonacci

C´ alculo Eficiente dos N´ umeros de Fibonacci

On-´esimo n´umero de Fibonacci ´e definido recursivamente por

fn= 8

><

>:

0, n= 0

1, n= 1

fn−2+fn−1, sen˜ao.

Gostar´ıamos de ser capazes de computar eficientemente on-´esimo n´umero de Fibonaccifnpara um dadon∈N.

(21)

Mon´oides e o Algoritmo de Exponencia¸ao Aplica¸oes

alculo Eficiente dos N´umeros de Fibonacci

C´ alculo Eficiente dos N´ umeros de Fibonacci

Conhecemos um algoritmo capaz de fazer isso, mas ele executa Θ(n) somas.

Ainda, o n-´esimo n´umero de Fibonacci tem da ordem de Θ(n) d´ıgitos em qualquer base. Se levarmos isso em conta este algoritmo leva Θ(n2) para concluir.

Iremos mostrar um algoritmo para calcular on-´esimo n´umero de Fibonacci usando apenas Θ(logn) somas e multiplica¸c˜oes. Ainda, se considerarmos que uma multiplica¸c˜ao de dois n´umeros de n d´ıgitos pode ser executada emO(nlognlog logn), este algoritmo leva apenasO(nlog2nlog logn) para terminar, sendo bastante mais r´apido.

Mesmo usando o algoritmo de Karatsuba para multiplicar faz com que esse algoritmo rode emO(nlog23logn), o que ainda ´e bem mais r´apido.

(22)

Mon´oides e o Algoritmo de Exponencia¸ao Aplica¸oes

alculo Eficiente dos N´umeros de Fibonacci

C´ alculo Eficiente dos N´ umeros de Fibonacci

A principal id´eia por traz desse algoritmo vem da seguinte igualdade

»fn+2

fn+1

=

»1 1 1 0

– »fn+1

fn

– . Por indu¸c˜ao obt´em-se

»fn+1

fn

=

»1 1 1 0

n» f1

f0

– .

Mas como (N2×2,·) ´e um mon´oide, segue que podemos calcular

»1 1 1 0

n

rapidamente, usando apenas Θ(logn) vezes a opera¸c˜ao do mon´oide, que ´e um produto matricial 2×2 e que portanto pode ser implementado com Θ(1) somas e multiplica¸c˜oes.

(23)

Mon´oides e o Algoritmo de Exponencia¸ao Aplica¸oes

alculo Eficiente dos N´umeros de Fibonacci

C´ alculo Eficiente dos N´ umeros de Fibonacci

Outra observa¸c˜ao interessante ´e que comof0= 0,f1= 1,f2= 1 e

»fk+1

fk

=

»1 1 1 0

k» f1

f0

– ,

»fk+2

fk+1

=

»1 1 1 0

k» f2

f1

– ,

obt´em-se que, parak>1,

»1 1 1 0

k

=

»fk+1 fk

fk fk−1

– ,

e como os n´umero de Fibonacci s˜ao n˜ao decrescentes, temos que o maior n´umero que aparece em uma matriz no algoritmo de exponencia¸c˜ao ´efn+1, que tem Θ(n) d´ıgitos em qualquer base.

SeM(n) ´e o tempo que um algoritmo de multiplica¸c˜ao leva para multiplicar dois inteiros den d´ıgitos eM´e da classe de complexidade de uma fun¸c˜ao assintoticamente n˜ao decrescente, segue que podemos implementar esse al- goritmo emO(M(n) logn).

Referências

Documentos relacionados

Pela regra da multiplica¸ c˜ ao, o n´ umero de m˜ aos de cinco cartas com quatro cartas do mesmo tipo ´ e o produto do n´ umero de maneiras de escolher um tipo (de entre os 13 tipos

A sensibilização a pólens destaca-se nesta po- pulação alérgica, não só porque a sensibilização a gramíneas é a mais prevalente em todos os grupos etários, mas também porque

Partição - operação de divisão do disco rígido necessária para a instalação do Linux e implica a perda de todos os dados do mesmo. Existem 2 formas de criar partições durante

[r]

A formação de professores no Brasil tem dos anos 2000, a tendência da Ação. Assim, temos como objetivo compreender o papel da reflexão no processo de Ação

O n´umero de escolhas erradas em relac¸˜ao ao pr´oximo salto no algoritmo ARESTA ´e um pouco maior do que no algoritmo RADR com poucos n´os, como mostram as Figuras 5(a), 5(b), 5(c)

Disse que também discorda da verba contratualizada com a AMP e que o Orçamento não comporta os apoios comunitários que o município poderá vir a contratualizar no Portugal 2020,

Tais projetos serão implementadas no exercício financeiro de 2021 e terão por finalidade o cumprimento das metas eleitas para as modalidades representadas