martes, 10 de marzo de 2015

En el espacio (de Hilbert) nadie puede oír tus gritos

El espacio de Hilbert es más grande de lo que imaginas [No dibujado a escala, ni siquiera logarítmica]. Imagen de R. Orus

Imagínate que vives en un espacio de Hilbert. Uno muy grande. Muy muy grande. Es más, exponencialmente grande. Pongamos por caso un vaso de agua. En él tendrás del orden de 1023 moléculas. Si cada molécula pudiera estar solo en dos estados (lo cual es una simplificación muy grande), necesitarías una base con \(2^{10^{23}} = 10 ^{3\cdot 10^{22}}\) vectores. Evidentemente no se puede escribir tantos vectores, ya que el universo "solo" tiene unos \(10^{80}\) átomos: no hay papel ni memoria de ordenador suficiente para tanta información. Por supuesto, solo una fracción minúscula del espacio de Hilbert albergará a los estados que realmente existan en la naturaleza. ¿Cómo podemos encontrarlos y calcular cosas con ellos? No es factible buscarlos por simple tanteo, llamándolos para que vengan a nosotros (el espacio de Hilbert es tan grande y está tan despoblado que nadie oirá tus gritos). La única opción es emplear un mapa del tesoro, las llamadas redes de tensores. Hay redes de tensores adecuadas para cada situación. La que os voy a contar, MPS, sirve para sistemas de una dimensión.


¿Qué es un tensor?

Un tensor es un objeto matemático con varios índices, \(A_{\alpha\beta\gamma\cdots}\). Es la generalización de una matriz, pero en vez de organizar los números en un rectángulo, se organizan en paralelepípedos o en hiper-paralelepípedos (que por supuesto, no os voy a dibujar porque no soy capaz :P ).  Los índices son las coordenadas en cada una de las direcciones para encontrar el número en cuestión, y el valor máximo que pueden tomar es la dimensión de ese índice.
 La operación básica entre tensores es la contracción de índices (para lo cual los índices contraídos deben tener la misma dimensión): \[ C_{\beta \gamma \cdots \mu \nu \cdots} = \sum_\alpha A_{\alpha \beta \gamma \cdots} B_{\alpha \mu \nu \cdots} \newcommand{\ket}[1]{\left|#1\right\rangle} \]
El caso más elemental de contracción es el producto de matrices, \(C_{\alpha\gamma} = \sum_\beta A_{\alpha\beta} B_{\beta\gamma}\), donde la matriz \(A\) tiene dimensión \(d\) en el índice \(\alpha\) y \(D\) en el índice \(\beta\), mientras que \(B\) tiene dimensión \(d\) en el índice \(\gamma\), con lo cual \(C\) tiene dimensión \(d\) en ambos índices: para escribir \(C\) hace falta especificar \(d^2\) elementos, y para \(AB\), hay que especificar \(2dD\) elementos.

Un tensor se puede representar con dibujitos como un objeto con una pata por cada índice. De este modo, la contracción de dos tensores se simboliza uniendo las patas:
Izquierda: Un tensor con dos índices (matriz). Derecha: contracción de dos tensores (producto de matrices).

Construyendo un MPS

Vamos a  ver una red unidimensional, en la que en cada sitio de red existe una partícula con un espacio de Hilbert \(\mathcal{H}_1\) parametrizado por una base de autoestados \(\{\ket{i}\}, i=1,\cdots,d\). El espacio de Hilbert de la red en su conjunto se obtiene haciendo productos tensoriales de los espacios de una partícula, por lo que será \(\mathcal{H} = {\mathcal{H}_1}^N\), con base \(\{\ket{i_1}\otimes\ket{i_2}\otimes \cdots\otimes\ket{i_N}\}\). En consecuencia, cualquier estado de dicho espacio es de la forma \begin{equation} \ket{\psi} = \sum C_{i_1 i_2 \cdots i_n} \ket{i_1}\otimes\ket{i_2}\otimes \cdots\otimes\ket{i_N} \end{equation} Los coeficientes \(C\) necesarios para expresar el estado en términos de los elementos de la base son un tensor de \(N\) índices, por lo que contiene \(d^N\) elementos. El objetivo es expresar este tensor como la contracción de \(N\) tensores de tres índices, de los cuales uno tenga dimensión \(d\) y los otros dos dimensión \(D\) (dimensión de enlace o bond dimension). El estado reescrito de este modo se denomina MPS (matrix product state).

Descomposición de un tensor de \(N\) índices con dimensión \(d\) en la contracción de \(N\) tensores de tres índices de dimensiones \(d\) y \(D\).
\begin{equation} \ket{\psi} = \sum A_{\alpha n_1}^{i_1} A_{n_1 n_2}^{i_2} \cdots A_{n_{N-1} \beta}^{i_N} \ket{i_1}\otimes\ket{i_2}\otimes \cdots\otimes\ket{i_N} \end{equation} Frente a los \(d^N\) elementos que eran necesarios antes, en el caso de un estado MPS se necesitan \(NdD^2\) elementos. El procedimiento matemático con el que se obtiene tal descomposición es la SVD, descomposición en valores singulares.

La descomposición SVD se va realizando secuencialmente, separando cada sitio de la red de los siguientes mediante una pata (contracción de tensores) de dimensión \(D\). En este paso se está tratando la red como un sistema bipartito, en el que las dos partes están separadas por la contracción. Aquí viene lo interesante: en un sistema de varios componentes puede aparecer entrelazamiento cuántico, que en el caso de sistemas bipartitos podemos caracterizar facilmente, por ejemplo, mediante la entropía de entrelazamiento. Pues bien, la dimensión \(D\) de los índices tensoriales que estamos contrayendo está directamente relacionada con esta entropía: \[S \leq \log D\]

La realidad es un holograma

¿Esto cómo nos  ayuda? Muy sencillo: en un gran número de hamiltonianos, los estados de mínima energía (el fundamental y los primeros excitados), la entropía de entrelazamiento sigue la llamada ley de área: la entropía escala como el tamaño del borde del sistema, y no como el tamaño de su contenido. Esto puede parecer chocante al principio, ya que en los objetos cotidianos la entropía aumenta con el volumen. Sin embargo, esto no es siempre así: ya lo descubrieron Bekenstein y Hawking, la entropía de un agujero negro depende de su superficie. Esto se conoce como principio holográfico, ya que al igual que en un holgrama, se está almacenando información sobre un sistema en un objeto con una dimensión menos que ese sistema.

Los MPS incorporan de manera automática la ley de área, ya que se puede elegir el valor de \(D\) empleado. Con un valor de \(D\) muy elevado (que dependa exponencialmete con el tamaño del sistema) se puede describir cualquier estado. Al restringirse a valores pequeños, por el contrario, se obtienen solo los estados significativos, y además de forma computacionalmente eficiente.


Para saber más