qilisdk.functionals.quantum_reservoirs

Classes

ReservoirInput

Input-only parameter used to inject layer-wise data into a reservoir program.

ReservoirLayer

Single reservoir layer template.

QuantumReservoir

Reservoir functional executed over a sequence of input layers.

Module Contents

class ReservoirInput(label: str, value: qilisdk.core.types.RealNumber)[fuente]

Bases: qilisdk.core.Parameter

Input-only parameter used to inject layer-wise data into a reservoir program.

This parameter behaves like a standard Parameter but is always created as non-trainable, so optimizers do not update it.

Create a non-trainable reservoir input parameter.

Parámetros:
  • label (str) – Parameter label used to reference input values.

  • value (RealNumber) – Default numerical value.

class ReservoirLayer(evolution_dynamics: qilisdk.analog.Schedule, input_encoding: qilisdk.digital.Circuit | None = None, output_encoding: qilisdk.digital.Circuit | None = None, qubits_to_reset: list[int] | None = None)[fuente]

Bases: qilisdk.core.parameterizable.Parameterizable

Single reservoir layer template.

A reservoir layer can contain up to three ordered stages: input_encoding -> evolution_dynamics -> output_encoding. It also stores the observables measured after each layer and optional qubits to reset.

Build a reservoir layer description.

Parámetros:
  • evolution_dynamics (Schedule) – Main analog schedule block driving the reservoir dynamics.

  • input_encoding (Circuit | None) – Optional single-qubit pre-processing circuit. Defaults to None.

  • output_encoding (Circuit | None) – Optional single-qubit post-processing circuit. Defaults to None.

  • qubits_to_reset (list[int] | None) – Optional qubit indices to reset between consecutive layers. Defaults to None.

Muestra:

ValueError – If the input or output encoding circuit contains measurements, multi-qubit gates, or acts on more qubits than the evolution dynamics.

property input_parameter_names: list[str][fuente]

Input-driven (non-trainable) parameter names for this layer.

property nqubits: int[fuente]

Number of qubits acted on by this layer.

property input_encoding: qilisdk.digital.Circuit | None[fuente]

Optional pre-processing circuit, or None if not set.

property output_encoding: qilisdk.digital.Circuit | None[fuente]

Optional post-processing circuit, or None if not set.

property observables_as_qtensor: list[qilisdk.core.QTensor][fuente]

Measured observables converted to qubit-sized QTensor operators.

property qubits_to_reset: list[int] | None[fuente]

Qubit indices reset between layers, or None if not set.

property evolution_dynamics: qilisdk.analog.Schedule[fuente]

Main analog dynamics schedule for each layer.

property reservoir_dynamics: qilisdk.analog.Schedule[fuente]

Backward-compatible alias for evolution_dynamics.

set_parameters(parameters: dict[str, qilisdk.core.types.RealNumber]) None[fuente]

Update a subset of parameters by label.

Parámetros:

parameters (dict[str, float]) – Mapping from parameter labels to updated numeric values.

Muestra:

ValueError – If an unknown parameter label is provided or constraints are violated.

set_parameter_bounds(ranges: dict[str, tuple[float, float]]) None[fuente]

Update the allowable ranges for the specified parameters.

Parámetros:

ranges (dict[str, tuple[float, float]]) – Mapping from parameter label to (lower, upper) bounds.

Muestra:

ValueError – If an unknown parameter label is provided.

class QuantumReservoir(initial_state: qilisdk.core.QTensor, reservoir_layer: ReservoirLayer | None = None, input_per_layer: list[dict[str, float]] | None = None)[fuente]

Bases: qilisdk.functionals.functional.PrimitiveFunctional

Reservoir functional executed over a sequence of input layers.

Each element in input_per_layer is applied to the underlying ReservoirLayer before executing one pass of dynamics and measurement.

Construct a quantum reservoir functional.

Parámetros:
  • initial_state (QTensor) – Initial quantum state before the first layer.

  • reservoir_layer (ReservoirLayer | None) – Reservoir layer definition repeated at each step. Defaults to None.

  • input_per_layer (list[dict[str, float]] | None) – Input parameter assignments for each layer. Defaults to None.

Muestra:

ValueError – If reservoir_layer or input_per_layer is None, if input_per_layer is empty, or if the initial state qubit count does not match the reservoir layer.

property nqubits: int[fuente]

Number of qubits in the reservoir.

property initial_state: qilisdk.core.QTensor[fuente]

Initial quantum state used before the first layer.

property reservoir_layer: ReservoirLayer[fuente]

Reservoir pass definition applied at each layer.

property input_per_layer: list[dict[str, float]][fuente]

Layer-ordered input parameter assignments.

property input_parameter_names: list[str][fuente]

Input-driven (non-trainable) parameter names expected per layer.

set_inputs_per_layer(input_per_layer: list[dict[str, float]]) None[fuente]

Sets the reservoir’s input per layer.

Parámetros:

input_per_layer (list[dict[str, float]]) – the new list of inputs per-layers.

add_inputs_per_layer(input_per_layer: list[dict[str, float]] | dict[str, float]) None[fuente]

Add a list of per-layer inputs to the current list of inputs.

Parámetros:

input_per_layer (list[dict[str, float]] | dict[str,float]) – the new list of inputs to be added.