kosmos.circuit_runner.qiskit_runner

Classes

class QiskitRunner(backend: qiskit.providers.BackendV2, num_shots: int = 1024, gradient_method: kosmos.ml.models.vqc.circuit.qiskit_circuit.gradient_method.GradientMethod | None = None)

Bases: kosmos.circuit_runner.circuit_runner.CircuitRunner

General Qiskit circuit runner.

Initialize the Qiskit runner.

Parameters:
  • backend (Backend) – The backend to use.

  • num_shots (int) – Number of shots. Defaults to 1024.

  • gradient_method (GradientMethod | None) – The gradient method to use when running VQCs. Uses ParameterShiftRule() if None. Defaults to None.


Properties

property framework

The framework used by the circuit runner.


Methods

run_sampler(circuits: list[qiskit.QuantumCircuit]) qiskit_ibm_runtime.RuntimeJobV2

Run circuits using Sampler primitive.

Parameters:

circuits (list[QuantumCircuit]) – The circuits to run.

Returns:

The submitted job.

Return type:

RuntimeJob

expectation_values(circuits: list[qiskit.QuantumCircuit]) list[numpy.ndarray]

Compute Z-basis expectation values for the given circuits.

Parameters:

circuits – The circuits to run.

Returns:

A list of arrays, where each array contains the expectation

values for one circuit in the job.

Return type:

list[np.ndarray]

get_gradient_method(parameterized_circuit: QiskitParameterizedCircuit) kosmos.ml.models.vqc.circuit.qiskit_circuit.gradient_method.GradientMethod

Get the gradient method instance.

Parameters:

parameterized_circuit (QiskitParameterizedCircuit) – The Qiskit parameterized circuit.

Returns:

The gradient method instance.

Return type:

GradientMethod


class AerSimulatorRunner(num_shots: int = 1024, gradient_method: kosmos.ml.models.vqc.circuit.qiskit_circuit.gradient_method.GradientMethod | None = None)

Bases: QiskitRunner

Qiskit circuit runner using the AerSimulator using density matrix simulation.

Initialize the AerSimulator runner.

Parameters:
  • num_shots (int) – Number of shots. Defaults to 1024.

  • gradient_method (GradientMethod | None) – The gradient method to use when running VQCs. Uses ParameterShiftRule() if None. Defaults to None.


Properties

property framework

The framework used by the circuit runner.


class IBMRuntimeRunner(qiskit_runtime_service: qiskit_ibm_runtime.QiskitRuntimeService, backend_name: str | None = None, min_num_qubits: int | None = None, num_shots: int = 1024, gradient_method: kosmos.ml.models.vqc.circuit.qiskit_circuit.gradient_method.GradientMethod | None = None)

Bases: QiskitRunner

Qiskit circuit runner using an IBM Runtime backend.

Initialize the IBM Runtime runner.

Parameters:
  • qiskit_runtime_service (QiskitRuntimeService) – The Qiskit Runtime service instance.

  • backend_name (str | None) – The name of the backend. Returns the least busy backend if None. Defaults to None.

  • min_num_qubits (int | None) – The minimum number of qubits. Defaults to None.

  • num_shots (int) – Number of shots. Defaults to 1024.

  • gradient_method (GradientMethod | None) – The gradient method to use when running VQCs. Uses ParameterShiftRule() if None. Defaults to None.


Properties

property framework

The framework used by the circuit runner.