qml.estimator.templates.MPSPrep

class MPSPrep(num_mps_matrices, max_bond_dim, precision=None, wires=None)[source]

Bases: ResourceOperator

Resource class for the MPSPrep template.

The resource operation for preparing an initial state from a matrix product state (MPS) representation.

Parameters:
  • num_mps_matrices (int) – the number of matrices in the MPS representation

  • max_bond_dim (int) – the bond dimension of the MPS representation

  • precision (float | None) – the precision used when loading the MPS matricies

  • wires (WiresLike | None) – the wires the operation acts on

Resources:

The resources for MPSPrep rely on a decomposition which uses the generic QubitUnitary. This decomposition is based on the routine described in arXiv:2310.18410.

See also

MPSPrep

Example

The resources for this operation are computed using:

>>> mps = qre.MPSPrep(num_mps_matrices=10, max_bond_dim=2**3)
>>> print(qre.estimate(mps, gate_set={"CNOT", "RZ", "RY"}))
--- Resources: ---
 Total wires: 13
    algorithmic wires: 10
    allocated wires: 3
         zero state: 3
         any state: 0
 Total gates : 1.654E+3
  'RZ': 728,
  'RY': 152,
  'CNOT': 774

resource_keys

resource_params

Returns a dictionary containing the minimal information needed to compute the resources.

resource_keys = {'max_bond_dim', 'num_mps_matrices', 'precision'}
resource_params

Returns a dictionary containing the minimal information needed to compute the resources.

Returns:

A dictionary containing the resource parameters:
  • num_mps_matrices (int): the number of matrices in the MPS representation

  • max_bond_dim (int): the bond dimension of the MPS representation

  • precision (float | None): the precision used when loading the MPS matrices

Return type:

dict

resource_decomp(num_mps_matrices, max_bond_dim)

Returns a list representing the resources of the operator.

resource_rep(num_mps_matrices, max_bond_dim)

Returns a compressed representation containing only the parameters of the Operator that are needed to compute the resources.

tracking_name(num_mps_matrices, ...)

Returns a name used to track the operator during resource estimation.

classmethod resource_decomp(num_mps_matrices, max_bond_dim, precision=None)[source]

Returns a list representing the resources of the operator. Each object in the list represents a gate and the number of times it occurs in the circuit.

Parameters:
  • num_mps_matrices (int) – the number of matrices in the MPS representation

  • max_bond_dim (int) – the bond dimension of the MPS representation

  • precision (float | None) – the precision used when loading the MPS matrices

Resources:

The resources for MPSPrep are estimated according to the decomposition, which uses the generic QubitUnitary. The decomposition is based on the routine described in arXiv:2310.18410.

Returns:

A list of GateCount objects, where each object represents a specific quantum gate and the number of times it appears in the decomposition.

Return type:

list[GateCount]

classmethod resource_rep(num_mps_matrices, max_bond_dim, precision=None)[source]

Returns a compressed representation containing only the parameters of the Operator that are needed to compute the resources.

Parameters:
  • num_mps_matrices (int) – the number of matrices in the MPS representation

  • max_bond_dim (int) – the bond dimension of the MPS representation

  • precision (float | None) – the precision used when loading the MPS matrices

Returns:

the operator in a compressed representation

Return type:

CompressedResourceOp

classmethod tracking_name(num_mps_matrices, max_bond_dim, precision)[source]

Returns a name used to track the operator during resource estimation.

Contents

Using PennyLane

Release news

Development

API

Internals