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 |