En primer lugar: no va a haber ninguna respuesta única sobre cómo factorizarlos. Para tomar un ejemplo muy simple,
$\begin{align} [0\;\;6\;\;0\;\;0] = \left\{\begin{array}{c} [6\;\;0] \otimes [0\;\;1] \\ \\ [2\;\;0] \otimes [0\;\;3] \\ \\ [1\;\;0] \otimes [0\;\;6] \end{array}\right.\end{align}$
por lo que cualquiera de los productos de la derecha (¡así como un continuo de otros!) podría ser una respuesta válida. Sólo podemos remediar esta situación generalizando su criterio para una factorización, exigiendo una función que mapee cualquier vector del producto de Kronecker $\mathbf p$ una salida consistente en un escalar $s \in \mathbb C$ y dos vectores unitarios $\mathbf v, \mathbf w \in \mathbb C^2$ tal que $\mathbf p = s \, (\mathbf v \otimes \mathbf w)$ . Con el fin de $\mathbf v$ y $\mathbf w$ para ser única, también tenemos que fijar el grado de libertad en sus coeficientes representados por el argumento complejo, exigiendo que el primer coeficiente no nulo sea un real positivo. Y si $s = 0$ , arreglaremos $\mathbf v = \mathbf 0$ y $\mathbf w = \mathbf 0$ en lugar de vectores unitarios. Es torpe... pero entonces, tiene sentido hablar de una función.
En segundo lugar, tenemos que tener alguna forma de identificar si un vector $\mathbf p$ es un producto de Kronecker en absoluto. En realidad, hay una forma bastante sencilla de hacer esto. Considere la definición del producto de Kronecker, en términos de bloques:
$\mathbf v \otimes \mathbf w = [\;v_1 \mathbf w \;\;|\;\; v_2 \mathbf w \;\;|\;\; \cdots \;\;|\;\; v_m \mathbf w\;]$
donde $\mathbf v \in \mathbb C^m$ y $\mathbf w \in \mathbb C^n$ . Si tomáramos esos bloques y los convirtiéramos en filas separadas, obtendríamos una matriz:
$\begin{bmatrix} v_1 \mathbf w \\ \hline v_2 \mathbf w \\ \hline \vdots \\ \hline v_m \mathbf w\end{bmatrix} = \mathbf v^\top \mathbf w$ .
Hay un isomorfismo entre los elementos de $\mathbb C^m \otimes \mathbb C^n$ y m × n matrices; el mapeo sólo baraja los coeficientes. Los productos de Kronecker, como vemos, se convierten en productos externos de vectores, y lo más destacado de estas matrices es que sus filas son múltiplos de un vector fila común (y lo mismo ocurre con las columnas), por construcción. Para ver si una matriz (no nula) es un producto exterior, basta con saber si tiene rango 1. Para saber si es un producto exterior de se puede encontrar cualquier fila no nula $\mathbf r_\ast\,$ y encontrar los coeficientes de un vector $\mathbf q_\ast$ tal que la matriz es igual a $\mathbf q_\ast^\top \mathbf r_\ast\,$ . Puede hacer lo mismo para cualquier vector del producto de Kronecker; y para devolver un resultado "canónico", debe calcular los vectores unitarios $\mathbf v \propto \mathbf q_\ast$ y $\mathbf w \propto \mathbf r_\ast$ (junto con el factor escalar $s$ ). Si se hace esto para la matriz, se obtiene también una respuesta para el producto de Kronecker.
A partir de estas observaciones, debería quedar bastante claro que deshacer un producto de Kronecker es en $\mathsf P$ ya que se trata de simples cálculos sobre m × n matrices.