书上侧边栏给出了关于蒙特卡罗方法和拉斯维加斯方法的提示:
拉斯维加斯方法和蒙特卡罗方法是两个以著名赌城名字命名的随机化方法两者的主要区别是:若有时间限制,以拉斯维加斯方法或者给出满足要求的解,或者不给出解,而蒙特卡罗方法一定会给出解,虽然给出的解未必满足要求;若无时间限制,则两者都能给出满足要求的解.
蒙特卡罗算法与拉斯维加斯算法都是随机算法,在采样不全时,通常不能保证找到最优解,只能说是尽量找。那么根据怎么个“尽量”法儿,我们把随机算法分成两类:
- 蒙特卡罗算法:采样越多,越接近最优解;(强调每一个iteration都在进步,提高的过程)
- 拉斯维加斯算法:采样越多,越有可能找到最优解;(强调直接想要最优解)
举个例子,筐里有100个苹果,每次随机拿1个,找到最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于蒙特卡罗算法——尽量找好的,但不保证是最好的。
而拉斯维加斯算法,则是另一种情况。假如有一把锁,给我100把钥匙,只有1把是对的。于是我每次随机拿1把钥匙去试,打不开就再换1把。我试的次数越多,打开(最优解)的机会就越大,但在打开之前,那些错的钥匙都是没有用的。这个试钥匙的算法,就是拉斯维加斯的——尽量找最好的,但不保证能找到。
区别:
1、蒙特卡洛算法运行固定数量的次数
2、拉斯维加斯算法无限循环运行,直到找到正确的结果
3、可以使用提前终止将拉斯维加斯算法转换为蒙特卡洛算法
随机算法补充移步随机算法优缺点_FitzFitzFitz的博客-CSDN博客