Algoritmos probabilísticos

22
ALGORITMOS PROBABILÍSTICOS Danielli Maciel Fernandes Leonardo Apolinário Dutra de Oliveira Rodrigo Otávio Passos Ferreira ________________________________________________________________________ ____ FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO _________________________________________________________ ___

Transcript of Algoritmos probabilísticos

Page 1: Algoritmos probabilísticos

ALGORITMOS PROBABILÍSTICOSDanielli Maciel Fernandes

Leonardo Apolinário Dutra de OliveiraRodrigo Otávio Passos Ferreira

____________________________________________________________________________

FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

____________________________________________________________

Page 2: Algoritmos probabilísticos

_______________________________________________________________________________

● Algoritmos probabilísticos utilizam aleatoriedade como princípio do seu

funcionamento.

● Além do conjunto de dados que constituem a entrada do problema, é inserido um

conjunto de ‘bits aleatórios’ que definirá o comportamento do algoritmo e,

consequentemente, o resultado obtido para o problema.

● Isso significa que, utilizando-se os mesmos valores de entrada, se o algoritmo for

executado duas vezes, pode-se obter dois resultados distintos.

● São bastante aplicados em áreas em que os algoritmos deterministas não

produzem soluções satisfatórias.

INTRODUÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 3: Algoritmos probabilísticos

_______________________________________________________________________________

● Exemplo simples: dado um vetor de N elementos, preenchido por quantidade iguais

de letras A e B (N/2 letras A e N/2 letras B), que podem estar dispostas em qualquer

ordem. O objetivo é desenvolver um algoritmo que encontre uma letra A e retorne a

posição em que esta está. Seguem algumas possibilidades para o vetor:

INTRODUÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

A A A A A A A A B B B B B B B B

B B B B B B B B A A A A A A A A

B B A B B A A B A B B A A A B A

Page 4: Algoritmos probabilísticos

_______________________________________________________________________________

● Algoritmo determinista, como a busca linear: começa-se a percorrer o vetor a

partir da 1ª posição. Quando encontrar uma letra A, retorna sua posição.

Vantajoso se o vetor estiver ordenado em ordem crescente.

● Algoritmo aleatório: gera um numéro aleatório de 1 a N e verifica se é uma letra A.

Se for, retorna. Se não for, gera outro número aleatório e, assim, sucessivamente.

Vantajoso se o vetor estiver ordenado em ordem decrescente.

INTRODUÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 5: Algoritmos probabilísticos

_______________________________________________________________________________

1 - Algoritmos que NÃO garantem a exatidão da resposta

1.1 - Algoritmos probabilísticos numéricos

Tem como característica encontrar a resposta dentro de uma margem de

precisão e com uma probabilidade determinada.

Segundo Brandão (2007), “Com probabilidade de 90% a resposta correcta é

59 mais ou menos 3”.

1. 2 - Algoritmos de Monte Carlo

Sempre retorna uma resposta, mas não garante se é a correta.

CLASSIFICAÇÃO DOS ALGORITMOS

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 6: Algoritmos probabilísticos

_______________________________________________________________________________

2 - Algoritmos que garantem a exatidão da resposta

2.1 - Algoritmo Las Vegas

A execução sempre irá produzir um resultado correto, mas é

probabilístico o tempo de execução.

CLASSIFICAÇÃO DOS ALGORITMOS

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 7: Algoritmos probabilísticos

_______________________________________________________________________________

Modelo que utiliza matrizes

Aceitabilidade:

● Cada símbolo do alfabeto tem uma matriz associada. A matriz armazena a

probabilidade de transição do estado em questão para cada um dos demais

estados possíveis.

● O reconhecimento de uma palavra não é mais exato e sim, probabilístico.

● Segue exemplo de autômato para reconhecer palavras binárias da forma 00*11*00*.

AUTÔMATOS FINITOS PROBABILÍSTICOS

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

P(xyz)= q T inicial . Mx .My.Mz . q final

Page 8: Algoritmos probabilísticos

_______________________________________________________________________________

AUTÔMATOS FINITOS PROBABILÍSTICOS

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 9: Algoritmos probabilísticos

_______________________________________________________________________________

AUTÔMATOS FINITOS PROBABILÍSTICOS

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 10: Algoritmos probabilísticos

_______________________________________________________________________________

Aprendizado de Máquina

● Algoritmos que podem aprimorar a sua capacidade de desempenho em

determinada tarefa através da experiência.

● A experiência está relacionada a base de dados utilizada pelo algoritmo.

Aumentando-se a base de dados, aumenta-se o percentual de acerto do

algoritmo.

● São usados para reconhecimento de padrões, diagnóstico automático, controle

robótico, processamento de linguagem natural etc.

● Tipos de algoritmos: árvores de decisão, Naive-Bayes, KNN, SVM, Redes

Neurais etc.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 11: Algoritmos probabilísticos

_______________________________________________________________________________

Redes Neurais

● São modelos computacionais que simulam o comportamento do cérebro

humano. Sistema de neurônios interconectados que efetuam cálculos a partir

dos valores de entrada.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 12: Algoritmos probabilísticos

_______________________________________________________________________________

Algoritmos Genéticos

● São utilizados em problemas de otimização e busca.

● Fazem uso de procedimentos baseados no comportamento evolutivo de

sistemas biológicos (mutação, recombinação, seleção natural).

● A ‘população inicial’ de um problema em específico é constituída de ‘indivíduos’

que são soluções criadas aleatoriamente.

● A cada geração, os ‘indivíduos’ se recombinam e sofrem mutações, alterando

as características dos descendentes, criando algoritmos mais eficientes.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 13: Algoritmos probabilísticos

_______________________________________________________________________________

Problema do Jantar dos Criptógrafos

● Proposto em 1988 por David Chaum na Revista de Criptologia da International

Association for Cryptologic Research.

● Consiste de 3 criptógrafos sentados em torno de uma mesa redonda de um

restaurante.

● O jantar será pago pela NSA ou por apenas um dos criptógrafos. Se um dos

criptógrafos pagar o jantar, esta informação deve ser mantida anônima. Os não-

pagantes não podem saber quem pagou. Se a NSA pagar, todos podem saber.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 14: Algoritmos probabilísticos

_______________________________________________________________________________

Problema do Jantar dos Criptógrafos

● Cada criptográfo lança uma moeda entre ele o criptógrafo a sua direita, de modo

que somente os dois vejam o resultado do lançamento.

● Assim, ao todo, 3 moedas são lançadas.

● Cada criptógrafo, fica sabendo do resultado do lançamento de duas das moedas: a

que ele próprio lançou e mostrou o resultado ao criptógrafo a sua direita e a que o

criptógrafo a sua esquerda lançou e mostrou a ele.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 15: Algoritmos probabilísticos

_______________________________________________________________________________

Problema do Jantar dos Criptógrafos

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 16: Algoritmos probabilísticos

_______________________________________________________________________________

Problema do Jantar dos Criptógrafos

● Cada criptógrafo deve anunciar se os valores dos resultados de lançamento das

duas moedas que cada um vê foram iguais ou diferentes.

● Se as duas moedas deram cara ou deram coroa, o criptógrafo deve anunciar 'igual'.

Se uma das moedas deu cara e a outra coroa, deve anunciar 'diferente'.

● Se o criptógrafo for o pagante, ele deve anunciar o inverso da realidade.

● Substituindo os valores das moedas por 0 e 1, tem-se a operação XOR (OU

exclusivo).

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 17: Algoritmos probabilísticos

_______________________________________________________________________________

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Moeda 1 Moeda 2 Moeda 3

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

A B A XOR B

0 0 0

0 1 1

1 0 1

0 0 0

Cript. 1 Cript. 2 Cript. 3

0 0 0

1 0 1

0 1 1

1 1 0

1 1 0

0 1 1

1 0 1

0 0 0

Sem transmissão:

Cara = 0 Coroa = 1

Page 18: Algoritmos probabilísticos

_______________________________________________________________________________

Protocolo DC-Net

● Esse protocolo estabelecido foi nomeado, por David Chaum, como 'Dining

Cryptographers Network' ou DC-Net.

● O protocolo pode ser estendido para N participantes, de modo que eles possam se

comunicar de maneira sigilosa.

● A mensagem é recebida por todos os outros sem que ninguém conheça o

remetente.

● É realizada a operação XOR (mod 2) com as declarações de todos os participantes.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 19: Algoritmos probabilísticos

_______________________________________________________________________________

Protocolo DC-Net

Características:

● Os bits da mensagem tem de ser enviados um a um, o que causa lentidão e é

inviável em certas aplicações.

● Pares de participantes devem compartilhar um bit secreto aleatório (correspondente

a analogia do lançamento da moeda). Criam-se chaves para para distribuir vários

bits de uma vez só.

● Para valores grandes de N, a quantidade de chaves fica impraticável.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 20: Algoritmos probabilísticos

_______________________________________________________________________________

Protocolo DC-Net

Características:

● Se 2 participantes enviaram mensagens ao mesmo tempo, estas colidirão. E terão

de ser retransmitidas.

● Necessidade de se ter disponível um canal seguro para distribuição dessas chaves.

● Se houver participantes desonestos que alterem suas declarações finais, a

mensagem será corrompida. Ocorrerá envio de uma mensagem formada por bits

aleatórios em vez de um texto com sentido.

● Além disso, podem conspirar para revelar a identidade do remetente.

ÁREAS DE APLICAÇÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 21: Algoritmos probabilísticos

_______________________________________________________________________________

Os algoritmos probabilísticos tem se apresentado como uma alternativa interessante na solução de uma gama de problemas computacionais.

Principalmente para os problemas que são inviáveis de se resolver com os recursos computacionais atualmente disponíveis. Além disso, há também os problemas que tem uma natureza de incerteza, nos quais há apenas a probabilidade de se ocorrer um evento e não há garantia de ocorrência do mesmo.

CONCLUSÃO

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS

Page 22: Algoritmos probabilísticos

_______________________________________________________________________________

[1] http://en.wikipedia.org/wiki/Randomized_algorithm

[2] http://pt.wikipedia.org/wiki/Algoritmo_probabil%C3%ADstico

[3] http://www.cise.ufl.edu/~nemo/anonymity/papers/chaum-dc.pdf

[4] http://www.rbrandao.uac.pt/BioCompII_2007_08/AlgoritmosProbabilisticosParteI.pdf

[5] http://www2.dc.ufscar.br/~zorzo/download/Apres21_08_07Claudio.pdf

[6] http://en.wikipedia.org/wiki/Dining_cryptographers_problem

BIBLIOGRAFIA

____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO

ALGORITMOS PROBABILÍSTICOS