Estoy buscando un algoritmo de una pasada que calcule la paridad de una permutación. Supongo que una permutación de entrada viene dada por la secuencia . La salida debe ser la paridad de la permutación. La pregunta que me interesa es cuánta memoria debe usar un algoritmo determinista. ¿Hay algún algoritmo aleatorio para el problema?
Sé que calcular el número de inversiones en una pasada usa memoria . El límite superior se puede obtener fácilmente con cualquier BST. El límite inferior se presenta aquí: http://citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.112.5622
Por desgracia, la prueba del límite inferior en el documento no puede extenderse al caso de paridad (o no es tan obvio para mí).
También sé que la paridad informática en un espacio pequeño con acceso aleatorio a una permutación se puede hacer en tiempo y memoria mediante algoritmo determinista o en tiempo y memoria O ( log n ) aleatoria. Ver http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256
La idea principal es que la paridad de una permutación se puede calcular mediante la fórmula , donde c es el número de ciclos yn es el tamaño. Los autores realizan el ciclo de descomposición de una permutación. Entonces uno puede calcular fácilmente el número de ciclos.
¿Alguien conoce un algoritmo efectivo o límite inferior en la memoria para calcular la paridad en el modelo de transmisión? Los algoritmos aleatorios mejores que las monedas aleatorias también me interesan.
fuente
Respuestas:
Me gustaría pedirles a todos que no voten esto, ya que esta no es una respuesta, sino un comentario extendido, en el que me gustaría argumentar por qué esta pregunta no recibió ninguna respuesta. Mi punto principal es que un límite inferior de complejidad de comunicación no funcionará. Con esto quiero decir que no importa cómo cortamos la entrada en dos partes y se la damos a dos jugadores, A y B, A puede transferir un solo bit a B desde el cual puede calcular la paridad de la permutación. (Esto sigue simplemente considerando inversiones).
Las pruebas que usan otro límite son difíciles. Vea este comentario aquí de Noam Nisan (para la versión no determinista): limita el tamaño del NFA más pequeño para L_k-distinct ,
Hermann Gruber respondió a esta pregunta relacionada, que muestra que el límite inferior de la complejidad de la comunicación puede estar muy lejos de la verdad (nuevamente en la versión no determinista). Límite inferior para NFA que acepta lenguaje de 3 letras .
También relacionado con que decidir si la permutación es un ciclo único, parece ser difícil, vea este documento de FOCS de Ran Raz y Boris Spieker: http://www.computer.org/csdl/proceedings/focs/1993/4370/00 /0366870-abs.html .
Entonces, también estoy muy interesado en conocer la respuesta a esta pregunta.
fuente