前提:
拉斯维加斯属于概率算法的一种,那么对于概率算法就需要了解概率算法的特点和概率算法和确定性算法的区别。
我理解的概率算法和确定性算法的区别:
确定性算法对于每个输入实例的执行步骤,执行结果都是一定的。但概率算法是不定的。对于确定性算法有“平均执行时间”,对于概率算法有“期望执行时间”。
平均执行时间:输入规模一定的所有输入实例是等概率出现时,算法的平均执行时间。
期望执行时间:反复解同一个输入实例所花的平均时间。
概率算法的特点:
1.不可再现性:在同一个输入实例上,每次执行结果不尽相同。
2.分析困难:要求又概率论,统计学和数论的知识。
Las Vegas算法是概率算法的一种。
特点:算法获得的答案必定正确,但有时它仍根本就找不到答案。找不到答案时或者说陷入僵局时,可以重复运行算法,每次都有独立的机会求出解。所以成功的概率随着执行时间的增加而增加。
Las Vegas算法一般能比确定性算法更有效率,夸张的时候甚至是对于每一个输入实例都是如此。但它大的缺点是:算法的时间上界可能不存在,并且是在排除较小实例和特别好使的实例概率很小从而忽略不计的这两情况下,算法的时间上界不存在。
可以采用LV(x,y,success)来表示算法运行。