Questions tagged «randomized-algorithms»

有关其行为不仅取决于其输入而且还取决于随机数源的算法的问题。

1
通过随机分区进行集中选择?
在数字的数组中查找中值元素的常用简单算法是:AAAnnn 从采样元素并替换为n3/4n3/4n^{3/4}AAABBB 排序并找到排名元素和的BBB|B|±n−−√|B|±n|B|\pm \sqrt{n}lllrrrBBB 检查和在的中位数的相对侧,并且对于某些适当的常数在和与之间最多有元素。如果没有发生,则失败。lllrrrAAACn−−√CnC\sqrt{n}AAAlllrrrC>0C>0C > 0 否则,通过在和之间对的元素进行排序来找到中位数AAAlllrrr 不难看出这是线性运行的,并且成功的可能性很高。(所有不良事件与二项式的期望值相差很大。) 针对相同问题的另一种算法,这里描述的是一种更自然的方法,可以教给看过快速排序的学生:随机选择 还很容易看出,该循环的预期运行时间是线性的:说“回合”是一系列递归调用,当一个人进行1 / 4-3 / 4分割时结束,然后观察到一个回合最多为2。(在第一回合中,成功分割的概率为1/2,然后实际上增加了,因为描述了算法,所以回合长度受几何随机变量支配。) 所以现在的问题是: 是否有可能表明随机选择在线性时间内运行的可能性很高? 我们有回合,并且每个回合的长度至少为,概率最大为,因此并集约束得出运行时间为以概率。k 2 − k + 1 O (n log log n )1 − 1 / O (log n )O(logn)O(log⁡n)O(\log n)kkk2−k+12−k+12^{-k+1}O(nloglogn)O(nlog⁡log⁡n)O(n\log\log n)1−1/O(logn)1−1/O(log⁡n)1-1/O(\log n) 这有点令人不满意,但实际上是真的吗?

1
随机可熔堆-预期高度
随机可熔堆具有一个“混合”操作,然后我们将其用于定义所有其他操作,包括插入。 问题是,具有节点的那棵树的期望高度是多少?nnn Gambin和Malinkowski的定理1,随机可融合优先级队列(SOFSEM论文集,计算机科学讲座,第1521卷,第344-349页,1998;PDF)给出了该问题的答案。但是,我不明白为什么可以这样写: E[hQ]=12((1+E[hQL])+(1+E[hQR])).E[hQ]=12((1+E[hQL])+(1+E[hQR])).\mathbb{E} [ h_Q] = \frac{1}{2} ((1 + \mathbb{E}[h_{Q_L}]) + (1 + \mathbb{E}[h_{Q_R}]))\,. 对我来说,树的高度是 hQ=1+max{hQL,hQR},hQ=1+max{hQL,hQR},h_Q = 1 + \max\, \{ h_{Q_L}, h_{Q_R}\}\,, 我可以扩展为: E[hQ]=1+E[max{hQL,hQR}]=1+∑kP[max{hQL,hQR}=k].E[hQ]=1+E[max{hQL,hQR}]=1+∑kP[max{hQL,hQR}=k].\mathbb{E} [ h_Q] = 1 + \mathbb{E}[\max \,\{ h_{Q_L}, h_{Q_R}\}] = 1 + \sum k \mathbb{P}[\max\, \{ h_{Q_L}, h_{Q_R}\} = k]\,. 可以使用总概率定律重写两个子树的高度的最大值等于kkk的概率: P[max{hQL,hQR}=k]=P[max{hQL,hQR}=k∣hQL≤hQR]P[hQL≤hQR]+P[max{hQL,hQR}=k∣hQL>hQR]P[hQL>hQR]=P[hQR=k∣hQL≤hQR]P[hQL≤hQR]+P[hQL=k∣hQL>hQR]P[hQL>hQR].P[max{hQL,hQR}=k]=P[max{hQL,hQR}=k∣hQL≤hQR]P[hQL≤hQR]+P[max{hQL,hQR}=k∣hQL>hQR]P[hQL>hQR]=P[hQR=k∣hQL≤hQR]P[hQL≤hQR]+P[hQL=k∣hQL>hQR]P[hQL>hQR].\begin{align*} \hspace{2em}&\hspace{-2em} \mathbb{P}[\max\, …

2
当使用硬币翻转比较器时,是否有一种“排序”算法返回随机排列?
受这个问题的启发,在这个问题中,问询者想知道在标准搜索算法中使用的比较器被公平的硬币翻转代替时运行时间是否发生了变化,并且微软也未能编写统一的排列生成器,因此我的问题是: 是否有一个基于比较的排序算法,具体取决于我们对比较器的实现: 使用真正的比较器时,将元素按排序顺序返回(即,比较符合我们在标准排序算法中的预期) 当比较器被公平的硬币翻转代替时,返回元素的均匀随机排列(即x < y = true,无论x和y的值如何,返回概率均为1/2) 排序算法的代码必须相同。只有比较“黑匣子”内部的代码可以更改。

3
对PP和BPP定义之间差异的具体理解
我对如何定义PP和BPP感到困惑 。让我们假设是语言的特征函数。M是概率图灵机。以下定义是否正确:χχ\chiLL\mathcal{L} BPP={L:Pr[χ(x)≠M(x)]≥12+ϵ∀x∈L, ϵ>0}BPP={L:Pr[χ(x)≠M(x)]≥12+ϵ∀x∈L, ϵ>0}BPP =\{\mathcal{L} :Pr[\chi(x) \ne M(x)] \geq \frac{1}{2} + \epsilon \quad \forall x \in \mathcal{L},\ \epsilon > 0 \} PP={L:Pr[χ(x)≠M(x)]>12}PP={L:Pr[χ(x)≠M(x)]>12}PP =\{\mathcal{L} :Pr[\chi(x) \ne M(x)] > \frac{1}{2} \} 如果定义错误,请尝试进行最小的更改以使它们正确(即不要给出使用计数机或某些修改型号的其他等效定义)。我无法正确区分两个定义上的概率条件。 一些具体的例子,对细微之处有清晰的了解,将非常有帮助。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.