Crate ruqu_vq_nas

Crate ruqu_vq_nas 

Source
Expand description

This crate provides tools for automated quantum circuit architecture discovery using neural architecture search techniques. It enables finding optimal variational quantum circuit designs for quantum machine learning tasks.

§Features

  • Search Space Definition: Define quantum gate primitives, layer templates, and connectivity constraints for circuit architectures.

  • Architecture Encoding: Encode architectures as discrete choices, continuous relaxations, or embedding vectors for different search strategies.

  • Search Algorithms:

    • Random search (baseline)
    • Evolutionary search with mutation and crossover
    • Regularized evolution (aging-based)
    • Bayesian optimization interface
    • Differentiable architecture search
  • Evaluation Metrics:

    • Circuit expressibility (KL divergence from Haar random)
    • Entanglement capability (Meyer-Wallach measure proxy)
    • Training convergence proxy
    • Hardware cost estimation
  • Circuit Builder: Build variational quantum circuits from architecture specifications with parameter initialization and gradient computation helpers.

§Quick Start

use ruqu_vq_nas::{
    search_space::{SearchSpace, GateType},
    search::{SearchAlgorithm, SearchConfig},
};
use rand::SeedableRng;
use rand_chacha::ChaCha8Rng;

// Create a search space
let space = SearchSpace::hardware_efficient(4, 5).unwrap();

// Configure search
let config = SearchConfig::quick();

// Run random search
let mut rng = ChaCha8Rng::seed_from_u64(42);
let mut search = SearchAlgorithm::random(space, config);
let result = search.search(&mut rng).unwrap();

println!("Best fitness: {}", result.best_evaluation.fitness);
println!("Evaluations: {}", result.num_evaluations);

§Search Space Example

use ruqu_vq_nas::search_space::{
    SearchSpaceBuilder, GateType, ConnectivityGraph, LayerTemplate
};

// Build a custom search space
let space = SearchSpaceBuilder::new(4)
    .depth_range(2, 8)
    .gate_set(vec![GateType::RY, GateType::RZ, GateType::CNOT])
    .connectivity(ConnectivityGraph::linear(4))
    .build()
    .unwrap();

§Circuit Building Example

use ruqu_vq_nas::circuit::{
    CircuitBuilder, HardwareEfficientAnsatz, InitializationStrategy
};
use ruqu_vq_nas::search_space::GateType;
use rand::SeedableRng;
use rand_chacha::ChaCha8Rng;

// Build a hardware-efficient ansatz
let ansatz = HardwareEfficientAnsatz::new(4, 3);
let circuit = ansatz.build();

println!("Qubits: {}", circuit.num_qubits);
println!("Parameters: {}", circuit.num_parameters);
println!("Two-qubit gates: {}", circuit.two_qubit_gate_count());

// Or use the builder pattern
let mut rng = ChaCha8Rng::seed_from_u64(42);
let circuit = CircuitBuilder::new(4)
    .rotation_layer(&[ruqu_vq_nas::search_space::GateType::RY, ruqu_vq_nas::search_space::GateType::RZ])
    .entangling_layer_linear(ruqu_vq_nas::search_space::GateType::CNOT)
    .rotation_layer(&[ruqu_vq_nas::search_space::GateType::RY, ruqu_vq_nas::search_space::GateType::RZ])
    .build_with_strategy(InitializationStrategy::Small { scale: 0.1 }, &mut rng);

§Evaluation Example

use ruqu_vq_nas::circuit::HardwareEfficientAnsatz;
use ruqu_vq_nas::evaluation::{CircuitEvaluator, EvaluationConfig};
use rand::SeedableRng;
use rand_chacha::ChaCha8Rng;

let mut rng = ChaCha8Rng::seed_from_u64(42);
let circuit = HardwareEfficientAnsatz::new(4, 2).build();

let evaluator = CircuitEvaluator::with_config(EvaluationConfig::fast());
let result = evaluator.evaluate(&circuit, &mut rng).unwrap();

println!("Expressibility: {:.4}", result.expressibility);
println!("Entanglement: {:.4}", result.entanglement_capability);
println!("Fitness: {:.4}", result.fitness);

§Tier 3 Capability (Score 74)

This crate implements Tier 3 quantum capabilities for automated circuit architecture discovery. The two-week validation tests are:

  1. Search space definition works correctly
  2. Architecture search runs and produces valid circuits

§Crate Features

  • default - Includes parallel processing via rayon
  • parallel - Enable parallel evaluation and search
  • ruqu-integration - Integration with the ruQu quantum simulation crate
  • full - All features enabled

Re-exports§

pub use circuit::CircuitBuilder;
pub use circuit::GradientComputer;
pub use circuit::HardwareEfficientAnsatz;
pub use circuit::InitializationStrategy;
pub use circuit::QuantumCircuit;
pub use circuit::StronglyEntanglingLayers;
pub use encoding::ArchitectureEmbedding;
pub use encoding::ArchitectureEncoder;
pub use encoding::ContinuousEncoding;
pub use encoding::DiscreteEncoding;
pub use error::CircuitError;
pub use error::EncodingError;
pub use error::EvaluationError;
pub use error::Result;
pub use error::SearchError;
pub use error::SearchSpaceError;
pub use error::VqNasError;
pub use evaluation::BatchEvaluator;
pub use evaluation::CircuitEvaluator;
pub use evaluation::EntanglementCalculator;
pub use evaluation::EvaluationConfig;
pub use evaluation::EvaluationResult;
pub use evaluation::ExpressibilityCalculator;
pub use evaluation::FitnessWeights;
pub use evaluation::HardwareCost;
pub use search::BayesianOptimization;
pub use search::DifferentiableSearch;
pub use search::EvolutionaryConfig;
pub use search::EvolutionarySearch;
pub use search::RandomSearch;
pub use search::RegularizedEvolution;
pub use search::RegularizedEvolutionConfig;
pub use search::SearchAlgorithm;
pub use search::SearchConfig;
pub use search::SearchResult;
pub use search_space::ConnectivityGraph;
pub use search_space::EntanglementPattern;
pub use search_space::GateOperation;
pub use search_space::GateType;
pub use search_space::LayerTemplate;
pub use search_space::SearchSpace;
pub use search_space::SearchSpaceBuilder;

Modules§

circuit
Circuit builder for variational quantum circuits.
encoding
Architecture encoding for variational quantum circuits.
error
Error types for VQ-NAS operations.
evaluation
Evaluation module for quantum circuit architectures.
prelude
Prelude module for convenient imports.
search
Search algorithms for quantum neural architecture search.
search_space
Search space definition for quantum neural architecture search.

Constants§

VERSION
Crate version