10 votos

¿Cómo encontrar todas las soluciones de la ecuación matricial XAX=ATXAX=AT ?

Hace poco me pidieron que resolviera un problema en una entrevista de programación que implicaba cuadros de palabras y al reflexionar un poco más me di cuenta de que se podía reformular como una pregunta de álgebra lineal. Como mi solución tiene una complejidad de tiempo en el peor de los casos de O(n!)O(n!) si nn es la anchura de AA Por curiosidad personal, estoy tratando de encontrar una solución mejor, medida por la complejidad de tiempo en el peor de los casos.

Dado un nn por nn matriz cuadrada AA sobre los reales con n2n2 ¿hay un nn por nn matriz de permutación XX Satisfaciendo a XA=(XA)T?XA=(XA)T?

Desde (XA)T=ATXT(XA)T=ATXT y XX es una matriz de permutación, tenemos XT=X1XT=X1 Por lo tanto, esto equivale a preguntar si hay soluciones para XAX=ATXAX=AT que son matrices de permutación. Ingenuamente, esperaba que hubiera una solución única, pero las técnicas numéricas indican fuertemente una gran variedad de soluciones, incluso cuando existe una permutación satisfactoria.

Por desgracia, no parece que las soluciones formen un subespacio lineal. Por ejemplo, si XX es una solución, entonces (aX)A(aX)=a2AT(aX)A(aX)=a2AT para cualquier aa , por lo que la mayoría de los múltiplos de XX no son soluciones para la mayoría de las matrices AA . Existen problemas similares para las sumas de las soluciones. Teniendo esto en cuenta, no sé muy bien qué método se puede utilizar para enumerar las soluciones. Si no forman un subespacio lineal, no podemos simplemente enumerar una base.

Cualquier solución parcial, teorema, indicación en la dirección correcta o problemas relacionados sería de gran ayuda. No estoy familiarizado con lo que parece ser un no lineal ecuación matricial (si esa es la terminología correcta).

Actualización Esto parece ser un caso especial de algo llamado ecuación algebraica de Riccati como se indica en otra pregunta . Las técnicas que he encontrado hasta ahora hacen hincapié en uno de los dos enfoques:

  • Algoritmos para encontrar cualquier solución a partir de una conjetura inicial dada.
  • Algoritmos para encontrar la única solución estabilizadora, si es que existe.

Dada la base teórica de control de estos enfoques, suelen suponer que ATAT es simétrica. En mi caso, si ATAT fueran simétricos podría simplemente tomar XX que sea la identidad y se haga, y esa suposición simplifica demasiado el problema. Además, esas soluciones no parecen tener una forma limpia de enumerar todas las soluciones, lo que impide comprobar si alguna resulta ser una matriz de permutación. ¿Alguien tiene más consejos desde el punto de vista de la ecuación de Riccati?

Me gustaría añadir que, estrictamente hablando, se puede responder a la pregunta en tiempo finito simplemente enumerando todas las matrices de permutación del tamaño adecuado y comprobando si satisfacen XA=(XA)TXA=(XA)T . Por alguna razón que me cuesta describir, creo que esto no capta el espíritu de la pregunta.

Actualización @GCab señala que AA necesitaría una estructura muy peculiar para XX para ser una matriz de permutación. Así es, y AA tendría que ser simétrica en alguna permutación de filas o columnas. Esto nos da algunas ideas. Si XX es cualquier matriz de permutación, entonces (XAX)ij=Aji=(AT)ij(XAX)ij=Aji=(AT)ij para cualquier ii , jj para que Xij=1Xij=1 y esto no se cumple cuando Xij=0Xij=0 . En otras palabras, los elementos de AA vienen en pares, excepto posiblemente la diagonal principal de XAXA . De este modo, se pueden descartar muchas permutaciones posibles, ya que cualquier elemento que aparezca una sola vez en ATAT debe dar la ubicación de un 11 en XX .

Hay muchos otros trucos combinatorios de este tipo que pueden mejorar mucho el tiempo medio de ejecución. Del mismo modo, se puede observar que para una permutación XX para que exista como solución, debe existir una biyección ff entre las filas y columnas de AA para que si rr es una fila de AA entonces el recuento de cada elemento de rr es el mismo que su cuenta en f(r)f(r) . Esta heurística tiene el potencial de clasificar fácilmente una elección de AA como no tener una solución satisfactoria, pero todavía podría tomar una enorme cantidad de tiempo para confirmar que un determinado AA tiene una satisfactoria XX .

1 votos

Sólo una idea, pero (AX)2=AAT(AX)2=AAT . Si puedes calcular las raíces cuadradas de AATAAT se puede reducir la ecuación a AX=AATAX=AAT . Una forma de obtener la raíz cuadrada de AATAAT es ponerlo en la forma normal de Jordan como (MD1/2M1)2=MDM1(MD1/2M1)2=MDM1 .

1 votos

@abnry Me gusta esto. Da todas las soluciones posibles (como máximo 2n2n para los casos no degenerados) de forma limpia y comprensible y además admite una complejidad temporal subfactorial en el peor de los casos. Si quieres escribir esto como respuesta, lo aceptaré.

2voto

Domingo Puntos 471

Si su ecuación es resoluble, entonces necesariamente hay una solución para (AX)2=AAT(AX)2=AAT . (Obsérvese que sólo existe una equivalencia directa si AA es invertible).

Así, si podemos calcular todas las matrices BiBi tal que B2i=AATB2i=AAT entonces debemos buscar soluciones para AX=BiAX=Bi . Si AAT=NDN1AAT=NDN1 es una descomposición normal de Jordan, entonces Bi=ND1/2iN1Bi=ND1/2iN1 es una raíz cuadrada donde D1/2iD1/2i es una raíz cuadrada de DD . En el caso de DD diagonal, hay 2n2n posibles raíces cuadradas. No estoy seguro de la teoría que hay detrás de la búsqueda de raíces cuadradas de matrices. Puede que estas sean todas las raíces cuadradas pero no lo sé.

Sin embargo, en nuestro caso podemos utilizar el hecho de que AATAAT es semidefinido positivo, lo que simplifica mucho. En este caso, AAT=NDN1AAT=NDN1 donde DD es diagonal. Se sabe que en este caso hay una única raíz cuadrada semidefinida positiva. No sé si todas las raíces cuadradas se generan a partir de ésta.

Si la restricción de XX es que es una matriz de permutación, entonces debería ser fácil determinar si AX=BiAX=Bi tiene una solución. Una vez que encontramos una solución, debemos comprobar que satisface nuestra ecuación original XAX=ATXAX=AT si AA no es invertible.

1voto

G Cab Puntos 51

Si XX es una matriz de permutación, entonces su acción sobre una matriz AA es permutar (intercambiar) las filas del mismo si se multiplica por la izquierda ( XAXA ), o sus columnas cuando se multiplican por la derecha ( AXAX ).

Así que no se puede obtener de intercambiar las filas con las columnas ( ATAT ), a menos que la matriz tenga una estructura peculiar.

Empecemos con n=2n=2 . Además de la identidad, el otro PM es la matriz de intercambio J=(0110)J=(0110)

Y JA=(0110)(a1,1a1,2a2,1a2,2)=(a2,1a2,2a1,1a1,2)JAJ=(a2,1a2,2a1,1a1,2)(0110)=(a2,2a2,1a1,2a1,1)AT=(a1,1a2,1a1,2a2,2)JA=(0110)(a1,1a1,2a2,1a2,2)=(a2,1a2,2a1,1a1,2)JAJ=(a2,1a2,2a1,1a1,2)(0110)=(a2,2a2,1a1,2a1,1)AT=(a1,1a2,1a1,2a2,2)

lo que significa que AA tendrá una diagonal constante.

Toda permutación puede expresarse mediante el producto de Transposiciones y en particular por el producto de Transposiciones adyacentes .
Una matriz de transposición adyacente consiste en una matriz de identidad en la que a 2×22×2 bloque diagonal se sustituye por JJ .

Entonces supongo que puedes continuar desde aquí.

0 votos

Es la parte de "continuar a partir de ahí" la que me cuesta. La matriz AA tendría que tener una estructura muy peculiar -- tendría que ser simétrica bajo alguna permutación de filas (o equivalentemente alguna permutación de columnas). Sin embargo, no encuentro ninguna forma de describir esa estructura de forma más compacta que simplemente comprobar todas esas permutaciones.

1voto

Dejemos que AMn(R) . ¿Existe una matriz de permutación X s.t. XA ¿es simétrico?

XA resulta en una permutación de las filas de A entonces necesariamente, A=[ai,j] tiene como máximo n(n+1)/2 entradas distintas ai,j . En consecuencia, si A se elige al azar, entonces no hay soluciones. Más concretamente

Existe una solución de permutación si A=PS donde P es una permutación y S es simétrica.

Método 1. (El peor). Consideramos el sistema algebraico

() XA es simétrica, XTX=In . En general, este sistema tiene 2n soluciones. Queda por ver si, entre las soluciones, hay permutaciones; por desgracia, es difícil encontrar todas las soluciones (incluso aproximaciones) y es prácticamente imposible cuando n10 .

Método 2. Podemos probar sucesivamente todas las permutaciones. Cada prueba es muy rápida, por lo que es factible cuando (por ejemplo) n=10 y quizás hasta n=20 ( 20!2.1018 ). Pero más allá, eso es imposible;

Método 3. Hay un caso fácil. Suponemos que A tiene exactamente n entradas que aparecen exactamente una vez.

Por supuesto, estas entradas son los elementos de la diagonal de S (si hay soluciones). En la fila del índice i debe existir exactamente una entrada de este tipo: ai,ki . Además, la secuencia k1,,kn debe ser una permutación σ de 1,,n . Finalmente, si existe una solución, entonces es única y es igual a X=UT , donde U es la matriz de permutación asociada a σ .

Por supuesto, este método tiene una complejidad muy pequeña; sólo necesita comparaciones e intercambios.

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