ALGORITMOS PROBABILÍSTICOSDanielli Maciel Fernandes
Leonardo Apolinário Dutra de OliveiraRodrigo Otávio Passos Ferreira
____________________________________________________________________________
FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO
____________________________________________________________
_______________________________________________________________________________
● 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
_______________________________________________________________________________
● 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
_______________________________________________________________________________
● 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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
AUTÔMATOS FINITOS PROBABILÍSTICOS
____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO
ALGORITMOS PROBABILÍSTICOS
_______________________________________________________________________________
AUTÔMATOS FINITOS PROBABILÍSTICOS
____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO
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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
Problema do Jantar dos Criptógrafos
ÁREAS DE APLICAÇÃO
____________________________________________________________FUNDAMENTOS DE TEORIA DA COMPUTAÇÃO
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
_______________________________________________________________________________
Á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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
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
_______________________________________________________________________________
[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
Top Related