Expand description
High-level quantum annealing interface inspired by Tytan for the QuantRS2 framework.
This crate provides a high-level interface for formulating and solving quantum annealing problems, with support for multiple backend solvers. It is inspired by the Python Tytan library.
§Features
- Symbolic Problem Construction: Define QUBO problems using symbolic expressions
- Higher-Order Binary Optimization (HOBO): Support for terms beyond quadratic
- Multiple Samplers: Choose from various solvers
- Auto Result Processing: Automatically convert solutions to multi-dimensional arrays
§Recent Updates (v0.1.0-rc.1)
- Refined SciRS2 v0.1.0-rc.1 integration for enhanced performance
- High-performance sparse matrix operations via SciRS2
- Parallel optimization using
scirs2_core::parallel_ops - SIMD-accelerated energy calculations
§Example
Example with the dwave feature enabled:
use quantrs2_tytan::sampler::{SASampler, Sampler};
use quantrs2_tytan::symbol::symbols;
use quantrs2_tytan::compile::Compile;
use quantrs2_tytan::auto_array::AutoArray;
// Define variables
let mut x = symbols("x");
let mut y = symbols("y");
let z = symbols("z");
// Define expression (3 variables, want exactly 2 to be 1)
let two = 2.into();
let h = (x + y + z - 2).pow(&two);
// Compile to QUBO
let (qubo, offset) = Compile::new(h).get_qubo().expect("Failed to compile QUBO");
// Choose a sampler
let solver = SASampler::new(None);
// Sample
let mut result = solver.run_qubo(&qubo, 100).expect("Failed to run QUBO sampler");
// Display results
for r in &result {
println!("{:?}", r);
}Basic example without the dwave feature (no symbolic math):
use quantrs2_tytan::sampler::{SASampler, Sampler};
use std::collections::HashMap;
use scirs2_core::ndarray::Array;
// Create a simple QUBO matrix manually
let mut matrix = Array::<f64, _>::zeros((2, 2));
matrix[[0, 0]] = -1.0; // Linear term for x
matrix[[1, 1]] = -1.0; // Linear term for y
matrix[[0, 1]] = 2.0; // Quadratic term for x*y
matrix[[1, 0]] = 2.0; // Symmetric
// Create variable map
let mut var_map = HashMap::new();
var_map.insert("x".to_string(), 0);
var_map.insert("y".to_string(), 1);
// Choose a sampler
let solver = SASampler::new(None);
// Sample by converting to the dynamic format for hobo
let matrix_dyn = matrix.into_dyn();
let mut result = solver.run_hobo(&(matrix_dyn, var_map), 100).expect("Failed to run HOBO sampler");
// Display results
for r in &result {
println!("{:?}", r);
}Re-exports§
pub use advanced_error_mitigation::create_advanced_error_mitigation_manager;pub use advanced_error_mitigation::create_lightweight_error_mitigation_manager;pub use advanced_error_mitigation::AdvancedErrorMitigationManager;pub use advanced_error_mitigation::ErrorMitigationConfig;pub use advanced_performance_analysis::create_comprehensive_analyzer;pub use advanced_performance_analysis::create_lightweight_analyzer;pub use advanced_performance_analysis::AdvancedPerformanceAnalyzer;pub use advanced_performance_analysis::AnalysisConfig;pub use advanced_visualization::create_advanced_visualization_manager;pub use advanced_visualization::create_lightweight_visualization_manager;pub use advanced_visualization::AdvancedVisualizationManager;pub use advanced_visualization::VisualizationConfig;pub use analysis::calculate_diversity;pub use analysis::cluster_solutions;pub use analysis::visualize_energy_distribution;pub use grover_amplitude_amplification::GroverAmplificationConfig;pub use grover_amplitude_amplification::GroverAmplifiedSampler;pub use grover_amplitude_amplification::GroverAmplifiedSolver;pub use optimize::calculate_energy;pub use optimize::optimize_hobo;pub use optimize::optimize_qubo;pub use quantum_adiabatic_path_optimization::AdiabaticPathConfig;pub use quantum_adiabatic_path_optimization::PathInterpolation;pub use quantum_adiabatic_path_optimization::QuantumAdiabaticPathOptimizer;pub use quantum_adiabatic_path_optimization::QuantumAdiabaticSampler;pub use sampler::ArminSampler;pub use sampler::DWaveSampler;pub use sampler::GASampler;pub use sampler::MIKASAmpler;pub use sampler::SASampler;pub use scirs_stub::SCIRS2_AVAILABLE;pub use tensor_network_sampler::create_mera_sampler;pub use tensor_network_sampler::create_mps_sampler;pub use tensor_network_sampler::create_peps_sampler;pub use tensor_network_sampler::TensorNetworkSampler;pub use visual_problem_builder::BuilderConfig;pub use visual_problem_builder::ConstraintType;pub use visual_problem_builder::ExportFormat;pub use visual_problem_builder::ObjectiveExpression;pub use visual_problem_builder::VariableType;pub use visual_problem_builder::VisualProblem;pub use visual_problem_builder::VisualProblemBuilder;
Modules§
- adaptive_
noise_ calibration - Adaptive Noise Models and Calibration
- adaptive_
optimization - Adaptive optimization framework that automatically adjusts algorithms and parameters.
- advanced_
error_ mitigation - Advanced Error Mitigation and Calibration
- advanced_
performance_ analysis - Advanced Performance Analysis and Benchmarking
- advanced_
problem_ decomposition - Advanced Problem Decomposition for QUBO Optimization
- advanced_
visualization - Advanced Visualization and Analysis
- ai_
assisted_ optimization - AI-Assisted Quantum Optimization
- analysis
- Analysis utilities for quantum annealing results.
- applications
- Industry-specific application modules for quantum optimization.
- auto_
array - Automatic conversion of sample results to multi-dimensional arrays.
- benchmark
- Hardware benchmarking suite with SciRS2 analysis
- coherent_
ising_ machine - Coherent Ising Machine (CIM) simulation for quantum-inspired optimization.
- compile
- Compilation of symbolic expressions to QUBO/HOBO models.
- constraints
- Constraint programming enhancements for optimization problems.
- encoding
- Variable encoding schemes for optimization problems.
- gpu
- GPU acceleration for QUBO/HOBO optimization.
- gpu_
benchmark - GPU benchmarking framework for performance testing and analysis.
- gpu_
kernels - CUDA and OpenCL kernels for GPU-accelerated optimization.
- gpu_
memory_ pool - GPU memory pooling for efficient allocation and reuse.
- gpu_
performance - GPU performance optimization and profiling.
- gpu_
samplers - GPU-accelerated samplers with SciRS2 integration.
- grover_
amplitude_ amplification - Grover-Inspired Amplitude Amplification for QUBO Optimization
- hybrid_
algorithms - Hybrid quantum-classical algorithms for optimization.
- ml_
guided_ sampling - Machine learning guided sampling algorithms
- multi_
objective_ optimization - Multi-Objective QUBO Optimization
- optimization
- Optimization strategies for quantum annealing
- optimize
- Optimization utilities for QUBO/HOBO problems.
- parallel_
tempering - Parallel tempering implementation for enhanced sampling.
- parallel_
tempering_ advanced - Advanced parallel tempering implementation
- performance_
optimization - Performance optimization module for critical paths.
- performance_
profiler - Performance profiler for quantum optimization.
- problem_
decomposition - Problem decomposition methods for large-scale optimization.
- problem_
dsl - Problem modeling DSL for quantum optimization.
- quantum_
adiabatic_ path_ optimization - Quantum Adiabatic Optimization with Dynamic Path Optimization
- quantum_
advantage_ analysis - Quantum Advantage Analysis Suite
- quantum_
advantage_ prediction - Quantum Advantage Prediction System
- quantum_
annealing - Simulated Quantum Annealing implementation with SciRS2
- quantum_
circuit_ annealing_ compiler - Quantum Circuit to Annealing Compiler
- quantum_
classical_ hybrid - Quantum-Classical Hybrid Refinement
- quantum_
error_ correction - Advanced Quantum Error Correction for Optimization
- quantum_
inspired_ ml - Quantum-inspired machine learning algorithms.
- quantum_
ml_ integration - Quantum Machine Learning integration for optimization.
- quantum_
neural_ networks - Advanced Quantum Neural Networks for Optimization
- quantum_
optimization_ extensions - Extended quantum optimization algorithms.
- quantum_
state_ tomography - Quantum State Tomography and Characterization
- realtime_
performance_ dashboard - Real-time Performance Dashboard
- realtime_
quantum_ integration - Real-time Quantum Computing Integration
- sampler
- Samplers for solving QUBO/HOBO problems.
- sampler_
framework - Sampler framework extensions for advanced optimization strategies.
- scirs_
stub - Stub for SciRS2 integration
- sensitivity_
analysis - Sensitivity analysis for optimization parameters.
- solution_
clustering - Solution clustering algorithms
- solution_
debugger - Solution debugger for quantum optimization.
- solution_
statistics - Solution statistics and analysis
- symbol
- Symbolic representation of variables for quantum annealing problems.
- tensor_
network_ sampler - Tensor Network-Based Quantum Annealing Sampler
- testing_
framework - Automated testing framework for quantum optimization.
- topological_
optimization - Topological optimization for quantum computing.
- variable_
correlation - Variable correlation analysis
- variational_
quantum_ factoring - Variational Quantum Factoring (VQF) implementation.
- visual_
problem_ builder - Visual problem builder for interactive QUBO construction.
- visualization
- Advanced visualization for quantum annealing results
Macros§
Structs§
- Ising
Model - Represents an Ising model for quantum annealing
- Qubo
Builder - A builder for creating QUBO problems
- Qubo
Model - Represents a Quadratic Unconstrained Binary Optimization (QUBO) problem
Enums§
- Ising
Error - Errors that can occur when working with Ising models
- Qubo
Error - Errors that can occur when formulating QUBO problems
Traits§
- Qubo
Formulation - Trait for problems that can be formulated as QUBO
Functions§
- is_
available - Check if the module is available
- is_
gpu_ available - version
- Print version information
Type Aliases§
- Ising
Result - Result type for Ising model operations
- Qubo
Result - Result type for QUBO problem operations