Randomised Algorithm
Randomised Algorithm
算法执行过程中面临选择时,随机选择比最优选择更省时,因此随机算法可以很大程度上降低算法的复杂度。主要分为四种随机算法:
- 数据概率算法:用于数值问题的求解,随着算法执行时间延长,其得到的近似解的结果与真实结果越相近。
- Las Vegas算法:一旦找到解,解一定正确,但有限度,一旦超过限度,则说明无法找到解,算法失败。
- Monte Carlo算法:一定能找到解,但解不一定正确,执行时间越久,解正确的概率越大。
- Sherwood算法:一定能找到正确的解,用于某确定性算法最坏时间复杂度与平均时间复杂度相差较大的情况,通过降低特定用例与最坏行为之间的关联度来完成优化,比如快速排序中,基准元素选择随机元素。
MonteCarlo
用蒙特卡洛算法求π 设有一个边长为2的正方形,正方形内有一个内切圆,则他们的面积比为4:π. 设有一个随机点,x y随机取到[0,1](只考虑第一象限)
则x y落在圆内的次数 : x y生成的总次数(足够多),就近似于4:π,设x y总生成次数为n 落在圆内次数为m 则m/n=4/π 因此:π=4m/n.
1 |
|
Las Vegas
用拉斯维加斯算法求N皇后问题的一个解,对于每个皇后的纵坐标,都用随机数来试探,直到试探出一组随机数使得条件成立,一旦成立就说明找到了解,否则说明没有找到,很符合Las Vegas算法,而且尝试的次数越多,越容易找到解。
1 |
|
Sherwood
用舍伍德算法优化快速排序,由于当快速排序选定的基准元素若为最大or最小值时,此时的时间复杂度最差,因此要避免这种极端情况,可以采用生成随机基准,降低特定实例(基准)与最坏行为(极端情况)的关联来改善快排的实际效率。
1 |
|
Randomised Algorithm
http://springbeara.top/2023/11/28/算法/RandomisedAlgorithm/