Module circuit_optimizer

Module circuit_optimizer 

Source
Expand description

Circuit optimization framework for quantum circuits

This module provides a comprehensive framework for optimizing quantum circuits through various transformation passes that preserve circuit equivalence while reducing gate count, depth, and execution time.

§Optimization Passes

  • Gate Cancellation: Remove inverse gate pairs (H-H, X-X, CNOT-CNOT)
  • Gate Fusion: Combine adjacent single-qubit rotations
  • Gate Commutation: Reorder gates using commutation rules
  • Template Matching: Replace gate sequences with optimized equivalents
  • Two-Qubit Reduction: Minimize expensive two-qubit gates

§Example

use quantrs2_sim::circuit_optimizer::{CircuitOptimizer, OptimizationPass};

let optimizer = CircuitOptimizer::new()
    .with_pass(OptimizationPass::CancelInverses)
    .with_pass(OptimizationPass::FuseRotations)
    .with_pass(OptimizationPass::CommutativeReordering);

let optimized_circuit = optimizer.optimize(&circuit)?;

Structs§

Circuit
Quantum circuit
CircuitOptimizer
Circuit optimizer
Gate
Quantum gate instruction
OptimizationStats
Optimization statistics

Enums§

GateType
Quantum gate type
OptimizationPass
Optimization pass types