背景
假设我有两个相同批次的大理石。每个大理石可以是种颜色之一,其中。令表示每批中颜色为i的大理石的数量。
令为多集代表一批。在频率表示中,也可以写为。
\ msS的不同置换数由多项式给出:
题
是否有一个有效的算法来生成两个弥漫,错乱排列和的随意?(分布应均匀。)
甲置换是漫如果对于每个不同的元件的,的实例在大致均匀间隔的出。
例如,假设。
- 不扩散
- 是分散的
更严格地:
- 如果,则只有一个实例要在 “间隔” ,所以让。
- 否则,令是实例之间的距离 和实例 的在。从中减去期望的实例之间的距离,定义以下内容:
如果在均匀分布,则应该为零,或者如果为非常接近零。
现在定义统计量来衡量每个在均匀间隔的数量。如果接近零,或大致,我们称弥散。(可以选择特定于的阈值,以便在使扩散。)
此约束想起了更严格的实时调度问题,称为风车问题,具有多重集(因此)和密度。目的是调度循环无限序列,使得长度为任何子序列都包含至少一个实例。换句话说,可行的时间表要求所有;如果是密集的(),则且。风车问题似乎是NP完全的。
两个置换和是走火入魔,如果是紊乱的 ; 也就是说,每个索引。
例如,假设。
- 和不错乱
- 和排列混乱
探索性分析
我对和的多集族感兴趣。特别是让。
这两个随机排列的概率和的被错乱是约3%。
可以如下计算,其中是第个Laguerre多项式: 参见此处的说明。
的概率的随机排列的是漫是约0.01%,设置在大致任意的阈值。
下面是的100,000个样本的经验概率图,其中是的随机排列。
在中等样本大小下,。
两个随机置换有效(扩散和无序)的概率约为 。
低效的算法
常见的“快速”算法会生成一个随机的集合失序,它是基于拒绝的:
做 P ←random_permutation(D) 直到is_derangement(D,P) 返回P
由于大约有可能的排列,因此大约需要次迭代。然而,基于拒绝的随机算法对于该问题将不是有效的,因为它将采用迭代的数量级。
在Sage使用的算法中,多集的随机排列“是通过从所有可能排列的列表中随机选择一个元素形成的。” 但这仍然是无效的,因为有有效的排列来枚举,此外,无论如何,都需要一种算法来做到这一点。
进一步的问题
这个问题的复杂性是什么?可以将其简化为任何熟悉的范例,例如网络流,图形着色或线性编程吗?