Linear Tensor Networks
At a Glance
- Linear tensor networks represent high-dimensional tensors as chains of smaller tensors connected by contractions.
- Matrix Product State (MPS) represents state vectors and wavefunctions in 1D quantum systems.
- Matrix Product Operator (MPO) represents operators and Hamiltonians in 1D quantum systems.
- Many interesting observables and Hamiltonians have an exact MPO representation.
- The bond dimension controls the compression ratio and approximation quality.
- Great tools for efficient simulation of low-dimensionnal quantum many-body systems.
Overview
A tensor network is a structured representation of high-dimensional tensors as chains of lower-order tensors. In 1D systems, this takes the form of either a Matrix Product State (MPS) for state vectors or a Matrix Product Operator (MPO) for operators.
Rather than storing a tensor of dimension directly, a linear tensor network decomposes it into smaller tensors connected by "bond" indices. This hierarchical structure enables:
- Compression: Approximations with reduced bond dimension dramatically lower memory usage. With bond dimensions , the memory requirement becomes .
- Efficient algorithms: Operations like variational optimization become tractable.
For an introduction to tensors and their representation in Aleph, see the Tensor concept page. For compression techniques using factorization, see Factorization.
The Key Concept: Bond Dimension
The structure of a linear tensor network is defined by its bond dimensions (also called bond indices). At each connection between neighboring tensors, there is a shared index of size . These bond dimensions can vary across the chain:
- Memory usage: With varying bond dimensions , memory scales as where is the physical dimension at site . Alternatively, using the maximum bond dimension , memory is roughly where is the number of sites.
- Approximation quality: Larger bond dimensions allow more information and better approximations
- Computational cost: Operations typically scale with the maximum bond dimension
For exact representations, equals the effective matrix rank at bond . For approximations, bond dimensions are truncated to balance accuracy and efficiency. Importantly, optimal representations often have smaller bonds near the boundaries and larger bonds in the center.
Code example:
// Create a random MPS with physical dimension 2 (e.g., spin-1/2)
// and bond dimension 16
var psi = make_random_mps(10, 2, 16, as_complex)
print(psi.size()) // Number of sites
print(psi.max_bond()) // Maximum bond dimension
Matrix Product States (MPS)
An MPS decomposes a quantum state vector as a chain of tensors:
where:
- Each is a site tensor with indices: bond-left