Módulo determinante m

18

¿Cuáles son los algoritmos eficientes conocidos para calcular un determinante de una matriz entera con coeficientes en , el anillo de residuos módulo . El número puede no ser primo sino compuesto (por lo que los cálculos se realizan en anillo, no en un campo). mmZmmm

Hasta donde yo sé (lea a continuación), la mayoría de los algoritmos son modificaciones de la eliminación gaussiana. La pregunta es sobre la eficiencia computacional de estos procedimientos.

Si sucedió que hay un enfoque diferente, también tengo curiosidad al respecto.

Gracias por adelantado.

Actualizar:

Déjame explicarte la fuente de esta pregunta. Supongamos que es un número primo. Entonces es un campo. Y en este caso podemos realizar todos los cálculos utilizando números menores que , por lo que tenemos un buen límite superior en todas las operaciones en números: suma, multiplicación e inversión --- todas las operaciones necesarias para ejecutar la eliminación gaussiana.Z m mmZmm

Por otro lado, no podemos realizar inversiones para algunos números en caso de que no sea primo. Entonces necesitamos algunos trucos para calcular determinante.m

Y ahora tengo curiosidad por saber cuáles son los trucos conocidos para hacer el trabajo y si dichos trucos se pueden encontrar en documentos de libros.

Valeriy Sokolov
fuente
3
¿Qué quieres decir con `` eficiente ''? El problema es claramente en . P
David
2
¿Es una constante fija? ¿Cómo se da? m
Michael Blondin
2
¿Qué quieres decir con pequeño? ¿Podrían estar escritos en unario?
Michael Blondin
55
Aún no entiendo la pregunta. El determinante de una matriz entera se puede calcular en tiempo polinómico, por lo que puede tomar este valor módulo . No es necesario realizar divisiones en Z mo encontrar la factorización de m . mZmm
David
2
@ValeriySokolov: Eso es álgebra lineal básica. Por ejemplo, consulte el problema 11.5.3 de Complejidad computacional de Christos H. Papadimitriou.
Tsuyoshi Ito

Respuestas:

15

Si conoce la factorización de puede calcular el módulo de cada p e i i por separado y luego combinar los resultados con el resto chino. Si e i = 1 , entonces calcular el módulo p e i i es fácil, ya que este es un campo. Para e i más grande , puede usar el levantamiento Hensel. m=p1e1pnenpieiei=1pieiei

Markus Bläser
fuente
¡Gracias! Es como algo que estaba buscando. ¿Es esta una práctica común para los determinantes? (referencias son bienvenidas).
Valeriy Sokolov
66
Estas son técnicas estándar del álgebra computacional. Echa un vistazo a Álgebra de computadora moderna de von zur Gathen y Gerhard o cualquier otro libro sobre álgebra de computadora. Para su problema específico, consulte también el siguiente documento de Pan, Yu y Stewart comet.lehman.cuny.edu/vpan/pdf/pan146.pdf
Markus Bläser
17

Hay un algoritmo combinatorio de Mahajan y Vinay que funciona sobre anillos conmutativos: http://cjtcs.cs.uchicago.edu/articles/1997/5/contents.html

Sasho Nikolov
fuente
Gracias por su respuesta con un enlace a un artículo muy interesante.
Valeriy Sokolov
También creo que hay algoritmos más eficientes ya que los autores de este artículo resolvieron problemas más generales (para cualquier anillo conmutativo).
Valeriy Sokolov
por "hay", ¿quiere decir "conocido" o "existe" (pero aún no se ha encontrado)? es una suposición razonable, pero soy un poco escéptico de que la estructura del anillo de intigadores módulo un pequeño número compuesto pueda ayudarlo mucho. si me equivoco, eso me parece interesante.
Sasho Nikolov
1
@ValeriySokolov para ser justos, ya que la respuesta responde a su pregunta, podría considerar aceptarla (o si desea esperar posibles respuestas mejores que no serían irrazonables)
Suresh Venkat
mO(1)O(logm)O(1)
11

mAdet(A)

ωn×nZmO(nω)Zm

AZmn×ndet(A)O(nω)Zm

Cuando esto se escribió en 1996, no había una alternativa asintóticamente más rápida (el documento menciona la existencia previa de algoritmos con el mismo límite, pero no sé cuáles, o si son probabilísticos).

mm

O(log2m)O(M(logm)loglogm)M(t)tω

Juan Bermejo Vega
fuente
θω
Tal vez, no conozco la notación más común para esto.
Juan Bermejo Vega
Creo que tienes razón, lo cambiaré para que sea "mainstream"
Juan Bermejo Vega