In analysis of algorithms, probabilistic analysis of algorithms is an approach to estimate the computational complexity of an algorithm or a computational problem. It starts from an assumption about a probabilistic distribution of the set of all possible inputs. This assumption is then used to design an efficient algorithm or to derive the complexity of a known algorithm. This approach is not the same as that of probabilistic algorithms, but the two may be combined.
For non-probabilistic, more specifically deterministic, algorithms, the most common types of complexity estimates are the average-case complexity and the almost-always complexity. To obtain the average-case complexity, given an input distribution, the expected time of an algorithm is evaluated, whereas for the almost-always complexity estimate, it is evaluated that the algorithm admits a given complexity estimate that almost surely holds.
In probabilistic analysis of probabilistic (randomized) algorithms, the distributions or average of all possible choices in randomized steps is also taken into account, in addition to the input distributions.
See also
editReferences
edit- Frieze, Alan M.; Reed, Bruce (1998), "Probabilistic analysis of algorithms", in Habib, Michel; McDiarmid, Colin; Ramirez-Alfonsin, Jorge; Reed, Bruce (eds.), Probabilistic Methods for Algorithmic Discrete Mathematics, Algorithms and Combinatorics, vol. 16, Springer, pp. 36–92, doi:10.1007/978-3-662-12788-9_2, ISBN 9783662127889
- Hofri, Micha (1987), Probabilistic Analysis of Algorithms: On Computing Methodologies for Computer Algorithms Performance Evaluation, Springer, doi:10.1007/978-1-4612-4800-2, ISBN 9781461248002
- Frieze, A. M. (1990), "Probabilistic analysis of graph algorithms", in Tinhofer, G.; Mayr, E.; Noltemeier, H.; Syslo, M. M. (eds.), Computational Graph Theory, Computing Supplementa, vol. 7, Springer, pp. 209–233, doi:10.1007/978-3-7091-9076-0_11, ISBN 9783709190760