一、分类
1)数字算法
利用随机性求数字问题的近似解,概率算法获得的答案是近似的,通常执行时间越长,精度就越高,误差就越小。
举例:Pi值的估计;数字积分(计算定积分的值);概率计数(求集合X的势)
2)Sherwood算法
总是给出正确的答案。减少消除好的和坏的实例之间的差别,即平滑不同输入实例的执行时间。比起确定性算法A,概率算法B为取得均匀性增加了时间成本S(n),所以平均的执行时间略微增加。
举例:选择和排序(划分元的选取);随机预处理;搜索有序表
3)Las Vegas算法
比起Sherwood,Las Vegas算法一般能获得更有效率的算法,但是要冒着找不到解的风险,要么返回正确的解,要么随机决策导致一个僵局。
和Monte Carlo算法相同,成功的概率随着执行时间的增加而增加。
举例:8皇后问题;模p平发根;整数的因数分解
4)Monte Carlo算法
可能会返回错误的答案,对任何实例均以高概率找到正确解。随着重复次数的增加,正确概率增加。算法的时间表示为实例大小和可接受错误概率的函数。
有偏算法:偏真算法(true-biased)、偏y0算法
举例:主元素问题;素数测定;矩阵乘法验证