Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introdução
Algoritmos aleatórios ou probabilı́sticos é uma das áreas que tem recebido grande
atenção dos pesquisadores de otimização e teoria da computação nos últimos anos.
Isto se deve às novas técnicas que têm surgido, de caráter mais genérico, no desen-
volvimento de algoritmos para problemas em grafos. Estas técnicas têm sido usadas
recentemente para problemas de projeto sistemas computacionais, onde bons resul-
tados têm sido desenvolvidos, tanto na teoria como na prática.
Geração de números pseudo-aleatórios. Como o computador é uma máqui-
na que realiza operações deterministicamente, torna-se impossı́vel gerar números
realmente aleatórios. Duas alternativas surgem então: podemos utilizar algum
componente fı́sico com objetivo de gerar seqüências realmente aleatórias, ou pode-
mos fazer com que um computador gere seqüências que “pareçam” aleatórias, e por
isso tais seqüência geradas por computador são chamadas de pseudo-aleatórias.
Como não existe consenso sobre uma definição de aleatoriedade, muito menos
uma definição de seqüência de números aleatórios, existem métodos diferentes uti-
lizados para geração de números pseudo-aleatórios. De fato, existem três teorias
diferentes que tratam da noção de aleatoriedade. A primeira teoria, iniciada por
Shannon [8], é baseada na teoria da probabilidade e basicamente analisa distri-
buições que não são perfeitamente aleatórias utilizando para isso vários testes es-
tatı́sticos. Um tratamento completo desta teoria é encontrado em [5].
A segunda teoria, iniciada por Kolmogorov [6], Solomonov [9] e Chaitin [2], é ba-
seada na teoria da computação e especificamente na noção de linguagem universal
(que equivale às noções de máquina de Turing universal). Uma idéia central dessa
teoria é medir a complexidade de objetos em termos do menor programa que é ca-
paz de gerar um objeto (o seqüência). Por exemplo, a string 1n tem Complexidade
de Kolmogorov O(1) + log2 n. Isso porque, o programa “imprima n 1’s” tem ta-
manho dominado pela codificação de n (em binário, por exemplo), ou seja, quando
aumentamos o tamanho de n, nosso programa aumenta em log2 n. Por outro lado,
a maioria das strings com n-bits de tamanho tem Complexidade de Kolmogorov
pelo menos n, pois os programas utilizados para gerar essas strings nem sempre
conseguem achar um padrão na geração da string.
1
2 BOLSISTA: ANDRÉ LUÍS VIGNATTI
3. Conclusão
O uso de aleatoriedade não somente simplifica alguns aspectos do modelo for-
mal de problemas que surgem em projetos de sistemas computacionais como, as
vezes, fornece a única solução eficiente, mesmo que aproximada, para alguns desses
problemas difı́ceis.
Com esse estudo, aprendemos a comparar teoricamente os métodos aleatórios
se consideramos apenas os limitantes teóricos, como ordem de complexidade, ve-
locidade de convergência e razão de aproximação. Por outro lado, seria necessário
implementar tais métodos e compará-los para que possamos analisar o quanto es-
tas técnicas geram de fato soluções satisfatórias ou para verificarmos resultados
probabilı́sticos previstos na literatura.
Devido ao grande volume de material teórico a ser estudado, não havı́amos pla-
nejado implementar os diversos algoritmos. Assim, adquirimos conhecimento sufi-
ciente para possivelmente no futuro implementarmos aplicações práticas da aleato-
riedade em projeto de redes. Futuramente, poderão ser implementados algoritmos
que realizam a comparação entre os diversos métodos e essas implementações po-
derão ser feitas através do uso de instâncias disponı́veis na internet, redes locais, e
outras instâncias geradas computacionalmente.
Referências
[1] M. Blum, S. Micali. How to generate cryptographically strong sequences of pseudo-random
bits. SIAM Journal on Computing, 13(4):850–864, November 1984.
[2] G. J. Chaitin. On the length of programs for computing finite binary sequences: Statistical
considerations. Journal of the ACM, 16(1):145–159, January 1969.
[3] S. Goldwasser, S. Micali. Probabilistic encryption. Journal of Computer Security, 28:270–299,
1984.
[4] A. Gupta, A. Kumar, T. Roughgarden. Simpler and better approximation algorithms for
network design. Proceedings of the thirty-fifth ACM symposium on Theory of computing,
2003.
[5] D. E. Knuth. The Art of Computer Programming, vol.2. Addison-Wesley series in computer
science and = information processing. Addison-Wesley, 1981.
[6] A. N. Kolmogorov. Three approaches to the quantitative definition of information. Problems
of Information and Transmission, 1(1):1–7, 1965.
[7] Arantes, Jr G. M.; França, F. M. G.; Martinhon C. A. J. Algoritmos randômicos para a
geração de orientações acı́clicas em sistemas distribuı́dos. In Anais do XXXIV SBPO, 2002.
[8] C. E. Shannon. The Mathematical Theory of Communication. Univ of Illinois Pr., 1963.
ISBN: 0–252–72548–4.
[9] R. J. Solomonoff. A formal theory of inductive inference. Information and Control, 7(1):1–22,
March 1964.
[10] Bellare, M.; Garay, J.A.; Rabin T. Distributed pseudo-random bit generators - a new way to
speed-up share coin tossing. In Proceedings of the 15th Annual Symposium on the Principle
of Distributed Computing, 1996.
[11] A. C. Yao. Theory and applications of trapdoor functions. In Proceedings of the 23rd Sym-
posium on Foundations of Computer Science (FOCS), pages 80–91. IEEE Computer Society
Press, 1982.