4 votos

Máxima Diagonalización de una matriz de matrices de permutación

Me he encontrado un interesante problema, basado en un proyecto que estoy trabajando en mi trabajo. Me gustaría compartir con ustedes y ver si alguien sabe si es conocido, o si alguien tiene alguna algoritmos o técnicas para acercarse a ella:

Deje $M$ $n \times n$ matriz cuadrada. Es suficiente con considerar el $M$ tener entradas de $0$ $1$ sólo y para ser bastante escasa.

Imaginemos que ese $M$ es de bloque-diagonal y que los bloques se $B_1, B_2, \cdots, B_k$, donde cada bloque de la matriz $B_i$ $m_i \times m_i$ matriz cuadrada. Definimos el "diagonality" de $M$ a ser el más pequeño de la suma de la $\sum_{i = 1}^k m_i^2$ podemos lograr

Tenemos que elegir el "más pequeño" valor ya que suelen tener alguna opción con el tamaño de la $B_i$'s. Un $2 \times 2$ matriz identidad, por ejemplo, puede ser considerada como uno $2 \times 2$ o dos cuadras $1 \times 1$ bloques, dando puntuaciones de $2^2 + 2^2 = 8$ $1^2 = 1$ respectivamente. Y así elegimos $1$ en este caso.

Así que una matriz diagonal siempre tendrá diagonality $n$, mientras que una matriz de todos los $1$'s tendrá un diagonality de $n^2$. El trivial triangular superior $2 \times 2$ matriz tendrán diagonality $4$. Etc.

Mi pregunta entonces es esta: a Partir de una matriz fija $M$, supongo que se me permite permutar las filas y las columnas a su antojo. Equivalentemente, se me permite pre - o post-multiplicar por cualquier permutación de la matriz. En hacer esto, ¿cómo iba yo a ir encontrando las permutaciones de las filas y/o columnas que minimizar el diagonality de la matriz resultante?

Por ejemplo, tomemos el $3 \times 3$ matriz

$$ \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} $$

Esto comienza a tener diagonality $9$.

Podría permutar fila $1$ y la de la fila $2$ para obtener:

\begin{bmatrix} 0 & 1 & 0 \\ 1 & 0 & 1 \\ 0 & 0 & 1 \\ \end{bmatrix}

Y entonces puedo permutar columna de $1$ y la columna $2$ para obtener:

\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \\ \end{bmatrix}

Y el resultado ahora ha diagonality $5$ en lugar de $9$.

Obviamente, el programa de instalación de aquí es mío, así que me imagino que si este tipo de cosas ha sido explorado, ha sido explorado en mayor generalidad. Me gustaría saber si alguien puede prestarme algunas visión de cómo se podría ir sobre la minimización de esta cantidad.

1voto

mathreadler Puntos 3517

Aquí es un enfoque para una solución. Se requerirá un poco de experiencia con la matriz de vectorización y la abstracción de la madurez, pero es muy potente.

La búsqueda de una matriz de permutación $P$, queremos que esta matriz de permutación para cumplir con una similitud: $PAP^{-1} = C$ donde $C$ es una matriz con más castigados entradas de la más de la diagonal de venir.

$$\min_{P,D}\{\|PAP^{-1}-C\|+\|Wvec(C)\|\}$$

Donde $W$ es una matriz diagonal de codificación de la diagonal-costo para cada entrada. Podemos aplicar una versión más débil de la $P$ matriz de permutación para forzar tanto es sumas de fila y columna de sumas 1: $$\|S_rvec(P)-1\| , \|S_cvec(P)-1\|$$ Donde suponemos $S_r,S_c$ son las matrices que realizar la suma de filas y columnas respectivamente (más de nuestra vectorización).

El plazo $\|PAP^{-1}-C\|$ puede parecer aterrador (no se ve lineal, ¿verdad?) pero recuerde que puede volver a escribir a: $\|PA - CP\|$ multiplicando ambos lados con $P$ desde la derecha.

Si sumamos todos los de arriba y elige la norma 2 podemos resolver esto con iterada lineal de mínimos cuadrados. (He resuelto muchos otros problemas similares como este, así que estoy seguro de que funciona.)


(Ahora se $P$ todo nuestro problema, es mejor reservar una lavandería, LOL!)

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