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:
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
(analyze-qubit-usage circuit)Analyze which qubits are actually used in a circuit.
Parameters:
Returns: Map containing:
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
(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:
Returns: Updated context with:
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}}
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs | 
| ← | Move to previous article | 
| → | Move to next article | 
| Ctrl+/ | Jump to the search field |