Liking cljdoc? Tell your friends :D

org.soulspace.qclojure.domain.qubit-optimization

Functions for analyzing and optimizing qubit usage in quantum circuits.

This namespace provides utilities to analyze which qubits are actually used in a quantum circuit and to optimize the circuit by remapping qubit IDs to eliminate gaps and unused qubits.

Qubit Optimization:

  • Analyze qubit usage efficiency in a circuit
  • Remap qubit IDs to minimize total qubit count
  • Ensure circuit validity after optimization
Functions for analyzing and optimizing qubit usage in quantum circuits.

This namespace provides utilities to analyze which qubits are actually used
in a quantum circuit and to optimize the circuit by remapping qubit IDs to
eliminate gaps and unused qubits.

Qubit Optimization:
- Analyze qubit usage efficiency in a circuit
- Remap qubit IDs to minimize total qubit count
- Ensure circuit validity after optimization
raw docstring

analyze-qubit-usageclj

(analyze-qubit-usage circuit)

Analyze which qubits are actually used in a circuit.

Parameters:

  • circuit: Quantum circuit to analyze

Returns: Map containing:

  • :used-qubits - Set of qubit IDs that are actually used
  • :total-qubits - Total number of qubits declared in circuit
  • :unused-qubits - Set of qubit IDs that are declared but unused
  • :max-qubit-id - Highest qubit ID used
  • :qubit-usage-efficiency - Ratio of used qubits to total qubits
Analyze which qubits are actually used in a circuit.

Parameters:
- circuit: Quantum circuit to analyze

Returns:
Map containing:
- :used-qubits - Set of qubit IDs that are actually used
- :total-qubits - Total number of qubits declared in circuit
- :unused-qubits - Set of qubit IDs that are declared but unused
- :max-qubit-id - Highest qubit ID used
- :qubit-usage-efficiency - Ratio of used qubits to total qubits
sourceraw docstring

optimize-qubit-usageclj

(optimize-qubit-usage ctx)

Optimize a circuit to use the minimum number of qubits.

This function compacts qubit IDs to eliminate gaps and unused qubits, reducing the total number of qubits required for the circuit.

Parameters:

  • ctx: Map containing:
    • :circuit - Quantum circuit to optimize
    • :options - Map with options: :optimize-qubits? - Whether to perform qubit optimization (default: false)

Returns: Updated context with:

  • :circuit - Optimized circuit with remapped qubit IDs
  • :qubit-mapping - Map from old qubit IDs to new qubit IDs

Throws an exception if the optimization results in an empty circuit.

Example: (optimize-qubit-usage {:circuit my-circuit :options {:optimize-qubits? true}})

;=> {:circuit <optimized-circuit>, :qubit-mapping {0 0, 2 1, 3 2}}

Optimize a circuit to use the minimum number of qubits.

This function compacts qubit IDs to eliminate gaps and unused qubits,
reducing the total number of qubits required for the circuit.

Parameters:
- ctx: Map containing:
  - :circuit - Quantum circuit to optimize
  - :options - Map with options:
     :optimize-qubits? - Whether to perform qubit optimization (default: false)

Returns:
Updated context with:
- :circuit - Optimized circuit with remapped qubit IDs
- :qubit-mapping - Map from old qubit IDs to new qubit IDs

Throws an exception if the optimization results in an empty circuit.

Example:
(optimize-qubit-usage
 {:circuit my-circuit
  :options {:optimize-qubits? true}})

;=> {:circuit <optimized-circuit>, :qubit-mapping {0 0, 2 1, 3 2}}
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close