算法设计之概率算法

算法设计之概率算法

  • 1.为什么需要概率算法?

与确定性算法相比,若冒险,可能做得更好!

  • 概率算法的分类?
  1. 数字算法。
    求数字问题的近似解求数字问题的近似解
  2. Monte Carlo算法 (MC算法)
    这里我们指的MC算法是: 若问题只有1个正确的解,而无近似解的可能时使用MC算法。
    特点:MC算法总是给出一个答案,但该答案未必正确,成功(即答案是正确的)的概率正比于算法执行的时间。
    缺点:一般不能有效地确定算法的答案是否正确。

    常见的场景:素数测定
    在这里插入图片描述

所以MC算法的基本思想是:为了增加一个一致的、p-正确算法成功的概率,只需多次调用同一算法,然后选择出现次数最多的解。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
3. Las Vegas(LV)
LV算法绝不返回错误的答案。
特点:获得的答案必定正确,但有时它仍根本就找不到答案。
与MC算法一样,成功的概率正比于算法的执行时间。
常见问题:N皇后问题。
4.Sherwood算法
当某些确定算法解决一个特殊问题平均的时间比最坏时间快得多时,我们可以使用Sherwood算法来减少,甚至是消除好的和坏的实例之间的差别。
常见的场景: 离散对数计算,搜索有序表
将输入实例随机化,从概率上消除实例的差异:
可将随机预处理使用到f的计算上:
① 使用函数u将x加密为某一随机实例y
② 将y提交给f计算出f(y)的值
③ 使用函数v转换为f(x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值