Tensor cross-interpolation (TCI)#

Tensor cross-interpolation, known as TCI or TT-Cross, is a method that computes the tensor-train representation of a black-box function by sampling some of its elements along some patterns known as crosses. As it does not act on the explicit tensor representation, it provides an exponential advantage over the standard Schmidt decomposition and evades the curse of dimensionality.

There are several variants available for TCI. Each shows different advantages and disadvantages in terms of computational cost and accuracy for different initial conditions. This library implements three:

  1. cross_dmrg(): Based on two-site optimizations combining the skeleton decomposition and the Schmidt decomposition. It is efficient for structures of low physical dimension, such as binary MPS, as it can increase the bond dimension by several units for each sweep. Inefficient for structures of large physical dimension due to its computational complexity. Has an associated parameter dataclass given by CrossStrategyDMRG.

  2. cross_greedy(): Based on two-site optimizations performing greedy searches for maximum-volume pivots. Efficient for structures of large physical dimension, such as tensor-trains with dense modes, due to its advantageous computational complexity. Inefficient for structures of reduced physical dimension, as it increases the bond dimension by one each sweep. Has an associated parameter dataclass given by CrossStrategyGreedy.

  3. cross_maxvol(): Based on rank-adaptive one-site optimizations using the rectangular skeleton decomposition. Can be seen as a middle ground between the former two methods. Has an associated parameter dataclass given by CrossStrategyMaxvol.

Moreover, this method performs the decomposition of a given input black-box. This black-box can take several different forms and serve for different application domains. This library implements the class BlackBox and the following subclasses:

  1. BlackBoxLoadMPS: Required to load functions with quantized degrees of freedom in MPS. Allows for both the serial and interleaved qubit orders.

  2. BlackBoxLoadMPO: Required to load bivariate functions in MPO, by computing the equivalent MPS representation. This MPS is of square physical dimension (e.g. 4 for a MPO of dimenson 2) and can be unfolded in the end to the required MPO.

  3. BlackBoxComposeMPS: Required to compose scalar functions on collections of MPS.

An example on how to use TCI for all these scenarios is shown in TCI.ipynb.

cross_dmrg(black_box[, cross_strategy, ...])

Computes the MPS representation of a black-box function using the tensor cross-approximation (TCI) algorithm based on two-site optimizations in a DMRG-like manner.

cross_greedy(black_box[, cross_strategy, ...])

Computes the MPS representation of a black-box function using the tensor cross-approximation (TCI) algorithm based on two-site optimizations following greedy updates of the pivot matrices.

cross_maxvol(black_box[, cross_strategy, ...])

Computes the MPS representation of a black-box function using the tensor cross-approximation (TCI) algorithm based on one-site optimizations using the rectangular maxvol decomposition.

BlackBoxLoadMPS

Black-box representing a multivariate scalar function discretized on a Mesh object.

BlackBoxLoadMPO

Black-box representing a 2-dimensional function discretized on a 2D Mesh and quantized in a MPO with physical dimensions given by base_mpo.

BlackBoxComposeMPS

Black-box representing the composition of a multivariate scalar function with a collection of MPS objects.

CrossStrategyDMRG

CrossStrategyGreedy

CrossStrategyMaxvol