squlearn.encoding_circuit.PrunedEncodingCircuit

class squlearn.encoding_circuit.PrunedEncodingCircuit(encoding_circuit: EncodingCircuitBase, pruned_parameters: list)

Class for pruning redundant parameter of encoding circuits.

This class is designed to accept a encoding circuit and selectively prune parameters based on a provided list of indices. The pruned encoding circuit can be used as a usual encoding circuit.

Example: Pruned Hubregtsen Encoding Circuit

from squlearn.encoding_circuit import HubregtsenEncodingCircuit,PrunedEncodingCircuit
fm = HubregtsenEncodingCircuit(4,2)
PrunedEncodingCircuit(fm,[4,7,11,15]).draw("mpl", num_features=2)
../../_images/squlearn.encoding_circuit.PrunedEncodingCircuit_0_0.png
Parameters:
  • encoding_circuit (EncodingCircuitBase) – EncodingCircuit from which the parameters are removed

  • pruned_parameters (list) – list with indices of the redundant parameters

compose(x, concatenate_features=False, concatenate_parameters=False, num_circuit_features: Tuple[int, int] = (None, None))

Composition of encoding circuits with options for handling features and parameters

Number of qubits and features have to be equal in both encoding circuits! The special function and properties of the both encoding circuits are lost by this composition.

Parameters:
  • self (EncodingCircuitBase) – right / first encoding circuit

  • x (EncodingCircuitBase) – left / second encoding circuit

  • concatenate_features (bool) – If True, the features of both encoding circuits are concatenated (default: False). If False, the features of both encoding circuits are taken

  • concatenate_parameters (bool) – If True, the parameters of both encoding circuits are concatenated (default: False). If False, the parameters of both encoding circuits are taken

  • num_circuit_features (Tuple[int, int]) – Tuple of the number of features for both encoding circuits. This has to be provided if concatenate_features is True otherwise an error is raised.

Returns:

Returns the composed encoding circuit as special class ComposedEncodingCircuit

draw(output: str = None, num_features: int = None, feature_label: str = 'x', parameter_label: str = 'p', decompose: bool = False, **kwargs) None

Draws the encoding circuit using the QuantumCircuit.draw() function.

Parameters:
  • output (str) – Output format of the drawing (default: None).

  • num_features (int) – Number of features to draw the circuit with (default: None).

  • feature_label (str) – Label for the feature vector (default:”x”).

  • parameter_label (str) – Label for the parameter vector (default:”p”).

  • decompose (bool) – If True, the circuit is decomposed before printing (default: False).

  • kwargs – Additional arguments from Qiskit’s QuantumCircuit.draw() function.

Raises:

ValueError – Raised if the number of features is not provided.

Returns:

Returns the circuit in qiskit QuantumCircuit.draw() format

generate_initial_parameters(num_features: int, seed: int | None = None) ndarray

Generates random parameters for the pruned encoding circuit.

Parameters:
  • num_features (int) – Number of features in the input data

  • seed (Union[int,None]) – Seed for the random number generator (default: None)

Returns:

The randomly generated parameters

get_circuit(features: ParameterVector | ndarray, parameters: ParameterVector | ndarray) QuantumCircuit

Generates and returns the circuit of the pruned encoding circuit.

Parameters:
  • features (Union[ParameterVector,np.ndarray]) – Input vector of the features from which the gate inputs are obtained

  • param_vec (Union[ParameterVector,np.ndarray]) – Input vector of the parameters from which the gate inputs are obtained

Returns:

The circuit in Qiskit’s QuantumCircuit format of the pruned encoding circuit.

get_feature_bounds(num_features: int) ndarray

Returns the feature bounds expanded for a given number of features.

get_params(deep: bool = True) dict

Returns hyper-parameters and their values of the encoding circuit.

Parameters:

deep (bool) – If True, also the parameters for contained objects are returned (default=True).

Returns:

Dictionary with hyper-parameters and values.

inverse()

Returns the inverse of the encoding circuit.

Returns:

The inverse of the encoding circuit

set_params(**params) EncodingCircuitBase

Sets value of the encoding circuit hyper-parameters.

Parameters:

params – Hyper-parameters and their values, e.g. num_qubits=2.