Hintergrund
Lassen S
Die Anzahl der unterschiedlichen Permutationen von S
Frage
Gibt es einen effizienten Algorithmus, um zwei diffuse, gestörte Permutationen P
Eine Permutation P
P ist diffus, wenn für jedes einzelne Element ii von PP die Instanzen von ii ungefähr gleichmäßig in PP .Angenommen, S=(1424)={1,1,1,1,2,2,2,2}
S=(1424)={1,1,1,1,2,2,2,2} .- {1,1,1,2,2,2,2,1}
{1,1,1,2,2,2,2,1} ist nicht diffus - {1,2,1,2,1,2,1,2}
{1,2,1,2,1,2,1,2} ist diffus
Strenger:
- Wenn ni=1
ni=1 , gibt es nur eine Instanz von ii , die in P "abgesetzt" werden kann PP , also sei Δ(i)=0Δ(i)=0 . - Andernfalls wäre d(i,j)
d(i,j) der Abstand zwischen Instanz jj und Instanz - j+1j+1 von ii in PP . Subtrahieren Sie den erwarteten Abstand zwischen den Instanzen von ii , indem Sie Folgendes definieren: δ(i,j)=d(i,j)−nniΔ(i)=ni−1∑j=1δ(i,j)2Wenn iδ(i,j)=d(i,j)−nniΔ(i)=∑j=1ni−1δ(i,j)2 i in P gleichmäßig beabstandet ist PP , sollte Δ(i)Δ(i) Null sein, oder sehr nahe bei Null, wenn ni∤nni∤n .
Definieren Sie nun die Statistik , um zu messen, wie viel jedes in gleichmäßig verteilt ist . Wir nennen diffus, wenn nahe Null ist, oder ungefähr . (Man kann eine Schwelle wählen, die spezifisch für so dass diffus ist, wenn .)s(P)=∑ci=1Δ(i)
s(P)=∑ci=1Δ(i) ii PP PP s(P)s(P) s(P)≪n2s(P)≪n2 k≪1k≪1 SS PP s(P)<kn2s(P)<kn2 Diese Einschränkung erinnert an ein strengeres Echtzeit-Planungsproblem, das als Pinwheel-Problem bezeichnet wird, mit Multiset (so dass ) und Dichte . Ziel ist es, eine zyklische unendliche Folge so dass jede Teilfolge der Länge mindestens eine Instanz von . Mit anderen Worten, ein praktikabler Zeitplan erfordert alle ; wenn dicht ist ( ), dann ist und . Das Windradproblem scheint NP-vollständig zu sein.A=n/S
A=n/S ai=n/niai=n/ni ρ=∑ci=1ni/n=1ρ=∑ci=1ni/n=1 PP aiai ii d(i,j)≤aid(i,j)≤ai AA ρ=1ρ=1 d(i,j)=aid(i,j)=ai s(P)=0s(P)=0 - {1,1,1,2,2,2,2,1}
Zwei Permutationen und sind gestört, wenn eine Störung von ; das heißt, für jeden Index .P
P QQ PP QQ Pi≠QiPi≠Qi i∈[n]i∈[n] Angenommen, .S=(1222)={1,1,2,2}
S=(1222)={1,1,2,2} - {1,2,1,2}
{1,2,1,2} und sind nicht verändert{1,1,2,2}{1,1,2,2} - {1,2,1,2}
{1,2,1,2} und sind gestört{2,1,2,1}{2,1,2,1}
- {1,2,1,2}
Erkundungsanalyse
Ich interessiere mich für die Familie der Multisets mit und für . Insbesondere sei .n=20
Die Wahrscheinlichkeit , dass zwei zufällige Permutationen und von sind deranged beträgt etwa 3%.P
P QQ DD Dies kann wie folgt berechnet werden, wobei das te Laguerre-Polynom ist: Siehe hier für eine Erklärung.Lk
Lk kk |DD|=∫∞0dte−tc∏i=1Lni(t)=∫∞0dte−t(L4(t))3(L3(t))(L2(t))(L1(t))3=4.5×1011|SD|=n!c∏i=11ni!=20!(4!)3(3!)(2!)(1!)3=1.5×1013p=|DD|/|SD|≈0.03|DD||SD|p=∫∞0dte−t∏i=1cLni(t)=∫∞0dte−t(L4(t))3(L3(t))(L2(t))(L1(t))3=4.5×1011=n!∏i=1c1ni!=20!(4!)3(3!)(2!)(1!)3=1.5×1013=|DD|/|SD|≈0.03 Die Wahrscheinlichkeit , dass eine zufällige Permutation von ist diffuse beträgt etwa 0,01%, die willkürliche Schwelle bei etwa Einstellung .P
P DD s(P)<25s(P)<25 Unten ist eine empirische Wahrscheinlichkeitsdarstellung von 100.000 Abtastwerten von wobei eine zufällige Permutation von .s(P)
s(P) PP DD Bei mittleren Stichprobengrößen .s(P)∼Gamma(α≈8,β≈18)
s(P)∼Gamma(α≈8,β≈18) Ps(P)cdf(s(P)){1,8,2,3,4,1,5,2,3,6,1,4,2,3,7,1,5,2,4,3}119≈1<10−5{8,2,3,4,1,6,5,2,3,4,1,7,1,2,3,5,4,1,2,3}1409≈16<10−4{3,6,5,1,3,4,2,1,2,7,8,5,2,4,1,3,3,2,1,4}6509≈72<10.05{3,1,3,4,8,2,2,1,1,5,3,3,2,6,4,4,2,1,7,5}12239≈136<10.45{4,1,1,4,5,5,1,3,3,7,1,2,2,4,3,3,8,2,2,6}16979≈189<10.80
P{1,8,2,3,4,1,5,2,3,6,1,4,2,3,7,1,5,2,4,3}{8,2,3,4,1,6,5,2,3,4,1,7,1,2,3,5,4,1,2,3}{3,6,5,1,3,4,2,1,2,7,8,5,2,4,1,3,3,2,1,4}{3,1,3,4,8,2,2,1,1,5,3,3,2,6,4,4,2,1,7,5}{4,1,1,4,5,5,1,3,3,7,1,2,2,4,3,3,8,2,2,6}s(P)119≈11409≈166509≈7212239≈13616979≈189cdf(s(P))<10−5<10−4<10.05<10.45<10.80
Die Wahrscheinlichkeit, dass zwei zufällige Permutationen gültig sind (sowohl diffus als auch gestört), liegt bei
.v≈(0.03)(0.0001)2≈10−10
Ineffiziente Algorithmen
Ein üblicher "schneller" Algorithmus zum Erzeugen einer zufälligen Störung einer Menge basiert auf Zurückweisung:
do P ← zufällige_Permutation ( D ) bis is_derangement ( D , P ) return P
Das dauert ungefähr Iterationen, da es ungefähr mögliche Abweichungen gibt. Ein auf Zurückweisung basierender randomisierter Algorithmus wäre für dieses Problem jedoch nicht effizient, da er Iterationen in der Größenordnung von .e
Im Algorithmus von verwendeten Sage , eine zufällige Störung eines multiset „wird durch die Wahl eines Elements nach dem Zufallsprinzip aus der Liste aller möglichen Störungen gebildet.“ Doch auch das ist ineffizient, da es gültige Permutationen, um sie , und außerdem würde man einen Algorithmus brauchen, um das trotzdem zu tun.v|SD|2≈1016
Weitere Fragen
Wie komplex ist dieses Problem? Kann es auf ein bekanntes Paradigma wie Netzwerkfluss, Grafikfärbung oder lineare Programmierung reduziert werden?