19 votos

¿Cómo puedo generar permutaciones aleatorias de [n] con k ciclos, donde k es mucho mayor que log n?

Últimamente he estado pensando mucho en las permutaciones aleatorias. Es bien sabido que la media y la varianza del número de ciclos de una permutación elegida uniformemente al azar entre S n son ambos asintóticamente log n, y la distribución es asintóticamente normal.

Quiero saber qué "aspecto" tiene (en términos de estructura de ciclos) una permutación típica de [n] con k(n) ciclos, donde k(n)/(log n) → ∞ a medida que n → ∞. El caso especial que tengo en mente son las permutaciones de [n] con n 1/2 ciclos, ya que me he encontrado con este tipo de permutaciones en otro contexto, pero también tengo curiosidad por el problema más general. Para ello me gustaría disponer de un algoritmo que genere permutaciones de n con k ciclos uniformemente al azar --es decir, que genere cada una con probabilidad 1/S(n,k) donde S(n,k) es un número de Stirling de primer orden-- para poder experimentar con ellas. (Estaría dispuesto a conformarme con una cadena de Markov que converja a esta distribución si lo hace razonablemente rápido).

Desgraciadamente la única forma que conozco de hacerlo es tomar una permutación de [n] uniformemente al azar (esto es fácil) y luego desecharla si no tiene k ciclos. Si k está lejos de log(n) esto es muy ineficiente, ya que esas permutaciones son raras.

He encontrado algunas referencias relacionadas: Este documento de Granville examina las permutaciones con o(n 1/2-ε ) ciclos o Ω(n 1/2+ε ) y muestra que la longitud de sus ciclos tiene una "distribución de Poisson", pero en torno a n 1/2 es una zona de transición. Y este artículo de Kazimirov estudia "el comportamiento asintótico de varias estadísticas" bajo la distribución que he reclamado, pero aún no lo he leído porque no sé leer ruso y estoy esperando la traducción al inglés. Por último, el algoritmo que busco podría estar en uno de los fascículos del volumen 4 de Knuth, pero nuestra biblioteca no los tiene.

1voto

Thomi Puntos 5434

No estoy seguro de que esto te ayude, pero puedes calcular las probabilidades relativas de los tipos de ciclo mediante Fórmula de muestreo de Ewens (con θ=1).

0voto

Bill Puntos 7824

Sin saber casi nada de aleatoriedad, así es como yo elegiría una permutación aleatoria de [k] con exactamente n ciclos:

1) Elige n elementos de k, eliminando cada elemento del conjunto que elijas. 2) Para los elementos restantes, elija un elemento al azar, a continuación, elija un índice i de [n] al azar. Añade el elemento al ciclo en i.

Por desgracia, no sé cómo analizar las probabilidades de esta configuración, ni comprobar qué tipo de distribución da.

0voto

Chris Cudmore Puntos 634

Mira el siguiente documento: Moni Naor, Omer Reingold: Constructing Pseudo-Random Permutations with a Prescribed Structure. J. Cryptology 15(2): 97-102 (2002) Puede encontrarlo en el sitio de Moni.

0voto

Ben Puntos 299

El artículo de Naor y Reingold, mencionado en esta respuesta sólo explica cómo construir una permutación aleatoria con un fijo estructura prescrita a partir de una permutación aleatoria dada $P$ .

Esto se hace tomando la permutación más simple posible con la estructura que se desea obtener, y conjugándola mediante $P$ .

Esto reduce el problema a elegir un $k$ -ciclos estructura de ciclo con la distribución correcta, que no parece ser más fácil para mí.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X