概率分析
概述
概率分析(Probabilistic Analysis)是利用概率论分析算法期望运行时间的方法。其核心工具是指示器随机变量和期望的线性性。即使算法本身是确定性的,只要输入服从某种概率分布,就可以使用概率分析。概率分析不同于随机化算法——前者分析输入的随机性,后者在算法中引入随机性。
定义
概率分析(Probabilistic Analysis)
概率分析是在假设输入服从某种概率分布的前提下,分析算法的期望性能。它不修改算法本身,而是对输入建立概率模型。
核心工具:
- 指示器随机变量(Indicator Random Variable):对事件 ,定义
则 。
- 期望的线性性:对任意随机变量 (不必独立):
核心性质
| 性质 | 描述 | 备注 |
|---|---|---|
| 期望的线性性 | 和的期望等于期望之和,不要求独立性 | 概率分析中最常用的工具 |
| 指示器随机变量 | 将复杂事件的计数分解为简单事件的期望之和 | 大大简化分析过程 |
| 输入分布假设 | 需要对输入的概率分布做出假设 | 不同分布可能导致不同的期望复杂度 |
| 期望 vs 最坏 | 期望时间是平均情况,最坏时间是上界 | 期望时间通常优于最坏时间 |
应用场景
-
- 假设所有排列等概率出现,或使用随机 pivot
- 期望比较次数
- 通过指示器随机变量分析: 表示 与 是否比较,
-
哈希表:
- 简单均匀散列假设下,成功搜索的期望时间为 ( 为装载因子)
- 不成功搜索的期望时间为
-
雇佣问题:面试 个候选人,期望雇佣次数为
概率分析 vs 摊还分析
| 比较维度 | 概率分析 | 摊还分析 |
|---|---|---|
| 是否使用概率 | 是 | 否 |
| 分析对象 | 单次操作的期望代价 | 操作序列的平均代价 |
| 假设 | 输入服从概率分布 | 不假设输入分布 |
| 保证 | 期望意义下的保证 | 最坏情况下的平均保证 |