MCZA035-17 Algoritmos Probabilísticos
2026-3
Jair Donadelli --- jair.donadelli@ufabc.edu.br --- Sala 546 torre 2 bloco A
4ª 8h00 sala S-206-0 e 6ª 10h00 sala S-206-0

A aleatoriedade consolidou-se como um dos paradigmas centrais no projeto de algoritmos eficientes. Em muitos problemas computacionais, algoritmos aleatorizados são mais simples, mais rápidos e utilizam menos memória do que suas contrapartes determinísticas. Em outros, especialmente em aplicações de larga escala, constituem a única abordagem computacionalmente viável. Atualmente, algoritmos aleatorizados estão presentes em inúmeras tecnologias utilizadas diariamente, desde mecanismos de busca na Web, bancos de dados e sistemas distribuídos até criptografia, inteligência artificial, aprendizado de máquina e processamento de grandes volumes de dados. Ao longo do curso, serão estudados tanto os fundamentos teóricos quanto aplicações em problemas práticos, evidenciando como a aleatoriedade pode ser utilizada para obter soluções eficientes e confiáveis.


E-mails: Toda comunicação ‘aluno → professor’ por email deve ser com o endereço oficial.

Os comunicados gerais ‘professor → aluno’ serão pelo sigaa.


Objetivos

Esta disciplina propõe uma mudança conceitual no raciocínio algorítmico, substituindo garantias determinísticas e absolutas por análises probabilísticas de desempenho e erro. O objetivo pedagógico central do curso não é a mera apresentação de um catálogo de algoritmos, mas o desenvolvimento de uma intuição probabilística: um arcabouço analítico que capacite o estudante a projetar e avaliar soluções sob condições de incerteza, aproximação e escala. A capacidade de identificar quando e como substituir a certeza absoluta por ganhos expressivos em tratabilidade computacional constitui uma das competências mais relevantes para a formação do profissional, preparando-o para enfrentar os desafios computacionais mais complexos da atualidade.

image-20260806182211831

Objetivos específicos

Esta disciplina tem como objetivo apresentar os fundamentos dos algoritmos aleatorizados, capacitando o aluno a compreender, analisar e projetar algoritmos que utilizam aleatoriedade como ferramenta para obter soluções eficientes para problemas computacionais. Ao final do curso, o aluno deverá ser capaz de:

Programação da disciplina

Ementa

Revisão de probabilidade discreta. Exemplos de algoritmos aleatorizados: Algoritmo para Identidade polinomial; Sigilo perfeito; MAX 3-SAT. Leis de desvios e aplicações em algoritmos e estruturas de dados: hashing universal; treaps. Modelos de computação e classes probabilísticas de complexidade. Aplicações de Cadeias de Markov. Passeios aleatórios em grafos. Algoritmos distribuídos probabilísticos.

Calendário

image-20260806182003853

Reposição de feriados

image-20260806182211831 image-20260806182211831

 

 

 

 

 

Programação das Aulas

SemanaMódulo temáticoTópicos principaisReferênciasLeitura e exercícios
1FundamentosProbabilidade discreta, RVs, esperança, linearidade, Markov, Chebyshev; Monte Carlo/Las VegasMotwani & Raghavan, Cap. 1Notas de aula e exercícios.
2Análise Probabilística de AlgoritmosQuicksort aleatorizado, esperança, variância, concentração/cauda, grandes desviosMotwani & Raghavan, Cap. 2Notas de aula e exercícios.
3Concentração e amplificaçãoChernoff–Hoeffding, independência, amplificação de sucessoMitzenmacher & Upfal, Cap. 4Notas de aula e exercícios.
4Balls and BinsBirthday paradox, coupon collector, ocupação, maximum load, PoissonMitzenmacher & Upfal, Cap. 5Notas de aula e exercícios.
5Hashing e estruturas aleatorizadasUniversal hashing, skip lists, Bloom filters e análise de falso positivo, Cuckoo hashingMotwani & Raghavan, Cap. 8; Mitzenmacher & UpfalNotas de aula e exercícios.
6Fingerprinting e métodos algébricosFingerprinting, Freivalds, identidade polinomial, Schwartz–ZippelMotwani & Raghavan; Mitzenmacher & UpfalNotas de aula e exercícios.
7Algoritmos aleatorizados em grafosKarger; análise de probabilidade de sucesso e amplificaçãoMotwani & Raghavan, Cap. 7Notas de aula e exercícios.
8Passeios aleatórios e MarkovRandom walks, Markov chains, hitting/cover time, distribuição estacionáriaMotwani & Raghavan; Levin, Peres & WilmerNotas de aula e exercícios.
9Mixing e Monte CarloCoupling, mixing times, MCMC; Metropolis–Hastings como exemploLevin, Peres & Wilmer; Mitzenmacher & UpfalNotas de aula e exercícios.
10Redução de dimensionalidade ou Algoritmos aleatorizados para grandes volumes de dados ou Complexidade computacionalProjeções aleatórias, Lema de Johnson–Lindenstrauss
ou
streaming, sketches, estimação de frequência, elementos distintos
ou
classes de complexidade, P, NP,RP, ZPP, BPP.
Vershynin, Arora & Barak; Dubahshi & Panconesi; Motwani & Raghavan; Mitzenmacher & UpfalNotas de aula e exercícios.
11Redução de dimensionalidade ou Algoritmos aleatorizados para grandes volumes de dados ou CriptografiaLocality Sensitive Hashing e approximate nearest neighbors
ou
streaming, heavy hitters, estimação de frequência, elementos distintos
ou
funções one-way; geradores pseudoaleatórios seguros;criptografia de chave pública. Provas com conhecimento zero.
Vershynin, Arora & Barak; Dubahshi & Panconesi; Motwani & Raghavan; Mitzenmacher & UpfalNotas de aula e exercícios.
12Prova e Sub
13Avaliação recuperativa em 11/12Todo conteúdo

NOTAS DE AULA (contruída no decorrer da disciplina)

Bibliografia

  1. DUBHASHI, Devdatt; PANCONESI, Alessandro. Concentration of measure for the analysis of randomized algorithms. Cambridge: Cambridge University Press, 2009.

  2. MITZENMACHER, Michael; UPFAL, Eli. Probability and computing: randomized algorithms and probabilistic analysis. Cambridge: Cambridge University Press, 2005.

  3. MOTWANI, Rajeev; RAGHAVAN, Prabhakar. Randomized algorithms. Cambridge: Cambridge University Press, 1995.

Bibliografia complementar

  1. HROMKOVIČ, Juraj. Design and analysis of randomized algorithms: introduction to design paradigms. Berlin: Springer, 2005. (online)

  2. ARORA, Sanjeev; BARAK, Boaz. Computational complexity: a modern approach. Cambridge: Cambridge University Press, 2009.

  3. BLUM, Avrim; HOPCROFT, John; KANNAN, Ravindran. Foundations of data science. Cambridge: Cambridge University Press, 2020. (online)

  4. VERSHYNIN, Roman. High-dimensional probability: an introduction with applications in data science. Cambridge: Cambridge University Press, 2018. (online, soluções)

  5. HÄGGSTRÖM, Olle. Finite Markov chains and algorithmic applications. Cambridge: Cambridge University Press, 2002.


Atendimento

Quartas das 10h às 12h ou em horário previamente combinado, pessoalmente ou por email.


Avaliação

3 provas. 1/10, 1/11, 1/12 (tentativa) - datas e critérios na 3ª semana.

As avaliações são individuais, presenciais e sem consulta. Avalia-se a capacidade do aluno de analisar algoritmos probabilísticos de forma rigorosa, com ênfase em demonstrações, garantias probabilísticas e raciocínio matemático estruturado. Critérios e Pesos:

CritérioPeso
Correção matemática40%
Rigor e completude das provas30%
Uso adequado de ferramentas probabilísticas20%
Clareza, organização e notação10%

Expectativas formais : – Escrita matemática clara, precisa e bem organizada. – Uso consistente de notação. – Argumentos probabilísticos explícitos e justificados. – Definição clara de eventos, variáveis aleatórias e espaços de probabilidade.

Observações específicas: - Resultados conhecidos podem ser utilizados apenas se explicitamente citados. - Demonstrações parciais corretamente estruturadas podem receber crédito proporcional. - Respostas corretas sem justificativa não recebem pontuação.

Conceito final

Instruções para as provas

  1. Podem utilizar lápis, desde que a escrita seja legível, ou caneta, exceto na cor vermelha.

  2. Podem responder às questões em qualquer ordem.

  3. Podem usar parte da folha de resposta como rascunho, identificando-a no topo da página com a palavra Rascunho.

  4. Podem entregar a prova a qualquer momento, desde que assinem a lista de presença.

  5. Devem trazer um documento com foto atual.

  6. Devem deixar as mochilas no chão, com o celular dentro (desligado ou silenciado). É proibido o uso de eletrônicos (celular, calculadoras, smartwatches, etc), bem como bonés e chapéus.

  7. Devem entregar a folha de questões juntamente com a folha de respostas.

  8. Devem deixar sobre a carteira somente lápis, caneta, borracha, documento e garrafa d'água. Qualquer outro objeto deve ser guardado.

  9. Ida ao banheiro apenas mediante a entrega definitiva da prova.

  10. Todo aluno poderá, eventualmente e a critério do professor, ser arguido oralmente sobre as soluções apresentadas na prova e essa arguição será parte da avaliação.

O não cumprimento das instruções implica anulação da prova.

Na constatação de fraude, o aluno será reprovado.


Recuperação

Tem direito ao exame recuperação, que engloba todo o conteúdo da disciplina, aqueles que foram aprovados com D ou reprovados com F e obtiveram frequência mínima. O resultado do exame é um conceito que compõe com o conceito final M obtido na avaliação regular da disciplina como segue:

image-20260825103756873

A prova será em 9/12. O aluno interessado em realizar a recuperação deverá se manifestar de 04/12 a 07/12 por email ou através de formulário de acordo com as instruções que serão enviadas em um momento apropriado durante a disciplina.


Substitutiva

Nos casos previstos em resolução, mediante a devida comprovação. O aluno que perder prova e tiver interesse em fazer a substitutiva deve entrar em contato com o professor.


Material de ofertas anteriores
Notícias relacionadas
Material online
A.P. em outras instituições

 

image-20260806182211831


Numbers that fool the Fermat test are called Carmichael numbers, and little is known about them other than that they are extremely rare. There are 255 Carmichael numbers below 100,000,000. The smallest few are 561, 1105, 1729, 2465, 2821, and 6601. In testing primality of very large numbers chosen at random, the chance of stumbling upon a value that fools the Fermat test is less than the chance that cosmic radiation will cause the computer to make an error in carrying out a “correct” algorithm. Considering an algorithm to be inadequate for the first reason but not for the second illustrates the difference between mathematics and engineering. [ Abelson e Sussman em SICP (o “livro dos magos”)]