Expand description
§ruqu-vq-nas - Variational Quantum Neural Architecture Search
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:
- Search space definition works correctly
- Architecture search runs and produces valid circuits
§Crate Features
default- Includes parallel processing via rayonparallel- Enable parallel evaluation and searchruqu-integration- Integration with the ruQu quantum simulation cratefull- 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