quantrs2_ml/
lib.rs

1#![recursion_limit = "8192"]
2#![allow(warnings)]
3
4//! # Quantum Machine Learning
5//!
6//! This crate provides quantum machine learning capabilities for the QuantRS2 framework.
7//! It includes quantum neural networks, variational algorithms, and specialized tools for
8//! high-energy physics data analysis, plus cutting-edge quantum ML algorithms.
9//!
10//! ## Core Features
11//!
12//! - Quantum Neural Networks
13//! - Variational Quantum Algorithms
14//! - High-Energy Physics Data Analysis
15//! - Quantum Reinforcement Learning
16//! - Quantum Generative Models
17//! - Quantum Kernels for Classification
18//! - Quantum-Enhanced Cryptographic Protocols
19//! - Quantum Blockchain and Distributed Ledger Technology
20//! - Quantum-Enhanced Natural Language Processing
21//! - Quantum Anomaly Detection and Outlier Analysis
22//!
23//! ## Cutting-Edge Quantum ML Algorithms
24//!
25//! - **Quantum Neural ODEs**: Continuous-depth quantum neural networks using quantum circuits to parameterize derivative functions
26//! - **Quantum Physics-Informed Neural Networks (QPINNs)**: Quantum neural networks that enforce physical laws and solve PDEs
27//! - **Quantum Reservoir Computing**: Leverages quantum dynamics for temporal data processing with quantum advantages
28//! - **Quantum Graph Attention Networks**: Combines graph neural networks with quantum attention mechanisms for complex graph analysis
29
30use fastrand;
31use std::error::Error;
32use thiserror::Error;
33
34pub mod barren_plateau;
35pub mod blockchain;
36pub mod classification;
37pub mod crypto;
38pub mod enhanced_gan;
39pub mod gan;
40pub mod hep;
41pub mod kernels;
42pub mod nlp;
43pub mod optimization;
44pub mod qcnn;
45pub mod qnn;
46pub mod qsvm;
47pub mod reinforcement;
48pub mod vae;
49pub mod variational;
50
51pub mod adversarial;
52pub mod anneal_integration;
53pub mod anomaly_detection;
54pub mod attention;
55pub mod autodiff;
56pub mod automl;
57pub mod benchmarking;
58pub mod boltzmann;
59pub mod circuit_integration;
60pub mod classical_ml_integration;
61pub mod clustering;
62pub mod computer_vision;
63pub mod continual_learning;
64pub mod continuous_rl;
65pub mod device_compilation;
66pub mod diffusion;
67pub mod dimensionality_reduction;
68pub mod domain_templates;
69pub mod error;
70pub mod error_mitigation;
71pub mod explainable_ai;
72pub mod federated;
73pub mod few_shot;
74pub mod gnn;
75#[cfg(feature = "gpu")]
76pub mod gpu_backend_impl;
77pub mod industry_examples;
78pub mod keras_api;
79pub mod lstm;
80pub mod meta_learning;
81pub mod model_zoo;
82pub mod onnx_export;
83pub mod pytorch_api;
84pub mod quantum_advanced_diffusion;
85pub mod quantum_continuous_flows;
86pub mod quantum_graph_attention;
87pub mod quantum_implicit_neural_representations;
88pub mod quantum_in_context_learning;
89pub mod quantum_llm;
90pub mod quantum_memory_networks;
91pub mod quantum_mixture_of_experts;
92pub mod quantum_nas;
93pub mod quantum_neural_odes;
94pub mod quantum_neural_radiance_fields;
95pub mod quantum_pinns;
96pub mod quantum_reservoir_computing;
97pub mod quantum_self_supervised_learning;
98pub mod quantum_transformer;
99pub mod recommender;
100pub mod scirs2_integration;
101pub mod simulator_backends;
102pub mod sklearn_compatibility;
103pub mod tensorflow_compatibility;
104pub mod time_series;
105pub mod transfer;
106pub mod tutorials;
107
108// Internal utilities module
109mod utils;
110
111/// Re-export error types for easier access
112pub use error::MLError;
113pub use error::Result;
114
115/// Prelude module for convenient imports
116pub mod prelude {
117    pub use crate::adversarial::{
118        create_comprehensive_defense, create_default_adversarial_config, AdversarialTrainingConfig,
119        QuantumAdversarialExample, QuantumAdversarialTrainer, QuantumAttackType,
120        QuantumDefenseStrategy, RobustnessMetrics,
121    };
122    pub use crate::anneal_integration::{
123        AnnealingClient, AnnealingParams, AnnealingResult,
124        AnnealingSchedule as MLAnnealingSchedule, CircuitOptimizationProblem,
125        FeatureSelectionProblem, HyperparameterProblem, IsingProblem, OptimizationResult,
126        PortfolioOptimizationProblem, QuantumMLAnnealer, QuantumMLOptimizationProblem,
127        QuantumMLQUBO,
128    };
129    pub use crate::anomaly_detection::{
130        AnomalyDetectionMethod, AnomalyMetrics, AnomalyResult, PerformanceConfig,
131        PreprocessingConfig as AnomalyPreprocessingConfig, QuantumAnomalyConfig,
132        QuantumAnomalyDetector, QuantumAnomalyMetrics, QuantumAutoencoder,
133        QuantumEnhancementConfig, QuantumIsolationForest, QuantumLOF, QuantumOneClassSVM,
134        RealtimeConfig, SpecializedDetectorConfig,
135    };
136    pub use crate::automl::{
137        create_comprehensive_automl_config, create_default_automl_config, AdvancedAutoMLFeatures,
138        AlgorithmSearchSpace, EnsembleSearchSpace, EvaluationConfig, HyperparameterSearchSpace,
139        MLTaskType, OptimizationObjective, QuantumAutoML, QuantumAutoMLConfig, QuantumConstraints,
140        QuantumEncodingMethod, SearchBudgetConfig, SearchSpaceConfig,
141    };
142    pub use crate::benchmarking::{
143        Benchmark, BenchmarkCategory, BenchmarkConfig, BenchmarkFramework, BenchmarkReport,
144        BenchmarkResults, BenchmarkRunResult, BenchmarkSummary, ScalingType,
145    };
146    pub use crate::blockchain::{ConsensusType, QuantumBlockchain, QuantumToken, SmartContract};
147    pub use crate::boltzmann::{
148        AnnealingSchedule, DeepBoltzmannMachine, QuantumBoltzmannMachine, QuantumRBM,
149    };
150    pub use crate::circuit_integration::{
151        BackendManager, DeviceTopology, ExpressionvityMetrics, HardwareAwareCompiler,
152        MLCircuitAnalyzer, MLCircuitOptimizer, OptimizationPass, ParameterizedLayer, QuantumLayer,
153        QuantumMLExecutor, QubitProperties, RotationAxis, TrainabilityMetrics,
154    };
155    pub use crate::classical_ml_integration::{
156        utils as pipeline_utils, AutoOptimizationConfig, ClassicalModel, DataPreprocessor,
157        DatasetInfo, EnsembleStrategy, HybridModel, HybridPipeline, HybridPipelineManager,
158        MinMaxScaler, ModelRegistry, ModelType, OptimizedPipeline, PerformanceProfile,
159        PipelineConfig, PipelineRecommendation, PipelineStage, PipelineTemplate,
160        ResourceConstraints, StandardScaler, ValidationStrategy, WeightedVotingEnsemble,
161    };
162    pub use crate::classification::{ClassificationMetrics, Classifier};
163    pub use crate::clustering::{
164        ClusteringAlgorithm, CoreClusteringMetrics as QuantumClusteringMetrics, QuantumClusterer,
165        QuantumClusteringConfig,
166    };
167    pub use crate::computer_vision::{
168        AugmentationConfig, ColorSpace, ComputationalMetrics, ConvolutionalConfig,
169        ImageEncodingMethod, ImagePreprocessor, PreprocessingConfig, QuantumConvolutionalNN,
170        QuantumEnhancement, QuantumFeatureExtractor, QuantumImageEncoder, QuantumMetrics,
171        QuantumSpatialAttention, QuantumVisionConfig, QuantumVisionPipeline, ResidualBlock,
172        TaskOutput, TaskTarget, TrainingHistory, VisionBackbone, VisionMetrics, VisionTaskConfig,
173    };
174    pub use crate::continual_learning::{
175        create_continual_task, generate_task_sequence, ContinualLearningStrategy, ContinualTask,
176        Experience, ForgettingMetrics, MemoryBuffer, MemorySelectionStrategy,
177        ParameterAllocationStrategy, QuantumContinualLearner, TaskMetrics, TaskType,
178    };
179    pub use crate::continuous_rl::{
180        ContinuousEnvironment, Experience as RLExperience, PendulumEnvironment, QuantumActor,
181        QuantumCritic, QuantumDDPG, QuantumSAC, ReplayBuffer,
182    };
183    pub use crate::crypto::{
184        ProtocolType, QuantumAuthentication, QuantumKeyDistribution, QuantumSignature,
185    };
186    pub use crate::device_compilation::{
187        CompilationMetrics, CompilationOptions, CompiledModel, DeviceCharacterization,
188        DeviceCompiler, QuantumMLModel, QubitMapping, RoutingAlgorithm, SynthesisMethod,
189    };
190    pub use crate::diffusion::{
191        NoiseSchedule, QuantumDiffusionModel, QuantumScoreDiffusion, QuantumVariationalDiffusion,
192    };
193    pub use crate::dimensionality_reduction::{
194        AutoencoderArchitecture, DRTrainedState, DimensionalityReductionAlgorithm,
195        DimensionalityReductionMetrics, ManifoldMetrics, QAutoencoderConfig, QCCAConfig,
196        QFactorAnalysisConfig, QFeatureSelectionConfig, QICAConfig, QKernelPCAConfig, QLDAConfig,
197        QManifoldConfig, QNMFConfig, QPCAConfig, QSpecializedConfig, QUMAPConfig, QtSNEConfig,
198        QuantumDimensionalityReducer, QuantumDistanceMetric as DRQuantumDistanceMetric,
199        QuantumEigensolver, QuantumEnhancementLevel as DRQuantumEnhancementLevel,
200        QuantumFeatureMap, ReconstructionMetrics,
201    };
202    pub use crate::domain_templates::{
203        utils as domain_utils, CreditRiskModel, Domain, DomainModel, DomainTemplateManager,
204        DrugDiscoveryModel, FraudDetectionModel, MaterialPropertyModel, MedicalImageModel,
205        ModelComplexity, MolecularPropertyModel, PortfolioOptimizationModel, ProblemType,
206        SmartGridModel, TemplateConfig, TemplateMetadata, VehicleRoutingModel,
207    };
208    pub use crate::error::{MLError, Result};
209    pub use crate::error_mitigation::{
210        AdaptiveConfig, CalibrationData, CircuitFoldingMethod, CoherenceTimeModel, ErrorType,
211        ExtrapolationMethod, GateErrorModel, MeasurementErrorModel, MitigatedInferenceData,
212        MitigatedTrainingData, MitigationStrategy, NoiseModel, QuantumMLErrorMitigator,
213        ReadoutCorrectionMethod,
214    };
215    pub use crate::explainable_ai::{
216        create_default_xai_config, AggregationMethod, AttributionMethod, CircuitExplanation,
217        ExplanationMethod, ExplanationResult, LRPRule, LocalModelType, PerturbationMethod,
218        QuantumExplainableAI, QuantumStateProperties,
219    };
220    pub use crate::few_shot::{
221        DistanceMetric, Episode, FewShotLearner, FewShotMethod, QuantumMAML,
222        QuantumPrototypicalNetwork,
223    };
224    pub use crate::gan::{Discriminator, GANEvaluationMetrics, Generator, QuantumGAN};
225    pub use crate::hep::{
226        AnomalyDetector, EventReconstructor, HEPQuantumClassifier, ParticleCollisionClassifier,
227    };
228    pub use crate::industry_examples::{
229        utils as industry_utils, BenchmarkResult, BusinessImpact, DataRequirements, ExampleResult,
230        ImplementationComplexity, Industry, IndustryExampleManager, PerformanceMetrics,
231        QuantumAdvantageMetrics, ROIEstimate, ROISummary, ResourceRequirements, UseCase,
232    };
233    pub use crate::keras_api::{
234        utils as keras_utils, Activation, ActivationFunction, Callback, DataType, Dense,
235        EarlyStopping, InitializerType, Input, KerasLayer, LayerInfo, LossFunction, MetricType,
236        ModelSummary, OptimizerType, QuantumAnsatzType, QuantumDense, Sequential,
237        TrainingHistory as KerasTrainingHistory,
238    };
239    pub use crate::kernels::{KernelMethod, QuantumKernel};
240    pub use crate::meta_learning::{
241        ContinualMetaLearner, MetaLearningAlgorithm, MetaLearningHistory, MetaTask,
242        QuantumMetaLearner, TaskGenerator,
243    };
244    pub use crate::model_zoo::{
245        utils as model_zoo_utils, IrisQuantumSVM, MNISTQuantumNN, ModelCategory, ModelMetadata,
246        ModelRequirements, ModelZoo, PortfolioQAOA, QuantumModel, TrainingConfig, H2VQE,
247    };
248    pub use crate::nlp::{NLPTaskType, QuantumLanguageModel, SentimentAnalyzer, TextSummarizer};
249    pub use crate::onnx_export::{
250        utils as onnx_utils, ExportOptions, ImportOptions, ModelInfo, ONNXAttribute, ONNXDataType,
251        ONNXExporter, ONNXGraph, ONNXImporter, ONNXNode, ONNXTensor, ONNXValueInfo,
252        QuantumBackendTarget, TargetFramework, UnsupportedOpHandling, ValidationReport,
253    };
254    pub use crate::optimization::{ObjectiveFunction, OptimizationMethod, Optimizer};
255    pub use crate::pytorch_api::{
256        ActivationType as PyTorchActivationType, DataLoader, InitType, MemoryDataLoader, Parameter,
257        QuantumActivation, QuantumConv2d, QuantumCrossEntropyLoss, QuantumLinear, QuantumLoss,
258        QuantumMSELoss, QuantumModule, QuantumSequential, QuantumTrainer,
259        TrainingHistory as PyTorchTrainingHistory,
260    };
261    pub use crate::qnn::{QNNBuilder, QNNLayer, QuantumNeuralNetwork};
262    pub use crate::qsvm::{
263        FeatureMapType, QSVMParams, QuantumKernel as QSVMKernel, QuantumKernelRidge, QSVM,
264    };
265    pub use crate::quantum_llm::{
266        GenerationConfig, GenerationStatistics, MemoryRetrievalType, ModelScale,
267        QLLMTrainingConfig, QualityMetrics, QuantumAnalogyEngine, QuantumAssociativeMemory,
268        QuantumLLM, QuantumLLMConfig, QuantumMemoryConfig, QuantumMemorySystem,
269        QuantumParameterUpdate, QuantumReasoningConfig, QuantumReasoningModule, Vocabulary,
270    };
271    pub use crate::quantum_nas::{
272        create_default_search_space, AcquisitionFunction, ArchitectureCandidate,
273        ArchitectureMetrics, ArchitectureProperties, QuantumNAS, QuantumTopology, QubitConstraints,
274        RLAgentType, SearchSpace, SearchStrategy,
275    };
276    pub use crate::quantum_transformer::{
277        create_causal_mask, create_padding_mask, ActivationType, AttentionOutput,
278        PositionEncodingType, QuantumAttentionInfo, QuantumAttentionType, QuantumFeedForward,
279        QuantumMultiHeadAttention, QuantumPositionEncoding, QuantumTransformer,
280        QuantumTransformerConfig, QuantumTransformerLayer,
281    };
282    pub use crate::recommender::{
283        BusinessRules, FeatureExtractionMethod, ItemFeatures, ProfileLearningMethod,
284        QuantumEnhancementLevel, QuantumRecommender, QuantumRecommenderConfig, Recommendation,
285        RecommendationAlgorithm, RecommendationExplanation, RecommendationOptions,
286        SimilarityMeasure, UserProfile,
287    };
288    pub use crate::reinforcement::{Environment, QuantumAgent, ReinforcementLearning};
289    pub use crate::scirs2_integration::{
290        SciRS2Array, SciRS2DistributedTrainer, SciRS2Optimizer, SciRS2Serializer, SciRS2Tensor,
291    };
292    pub use crate::simulator_backends::{
293        BackendCapabilities, BackendSelectionStrategy, GradientMethod, MPSBackend, Observable,
294        SimulationResult, SimulatorBackend, StatevectorBackend,
295    };
296    pub use crate::sklearn_compatibility::{
297        model_selection, pipeline, QuantumKMeans, QuantumMLPClassifier, QuantumMLPRegressor,
298        QuantumSVC, SklearnClassifier, SklearnClusterer, SklearnEstimator, SklearnRegressor,
299    };
300    pub use crate::tensorflow_compatibility::{
301        tfq_utils, DataEncodingType, PQCLayer, PaddingType, ParameterInitStrategy,
302        QuantumCircuitLayer, QuantumConvolutionalLayer, QuantumDataset, QuantumDatasetIterator,
303        RegularizationType, TFQCircuitFormat, TFQGate, TFQLayer, TFQLossFunction, TFQModel,
304        TFQOptimizer,
305    };
306    pub use crate::time_series::{
307        generate_synthetic_time_series, AnomalyPoint, AnomalyType, DiversityStrategy,
308        EnsembleConfig, EnsembleMethod, FeatureEngineeringConfig, ForecastMetrics, ForecastResult,
309        QuantumEnhancementLevel as TSQuantumEnhancementLevel, QuantumTimeSeriesConfig,
310        QuantumTimeSeriesForecaster, SeasonalityConfig, TimeSeriesModel,
311    };
312    pub use crate::transfer::{
313        LayerConfig, PretrainedModel, QuantumModelZoo, QuantumTransferLearning, TransferStrategy,
314    };
315    pub use crate::tutorials::{
316        utils as tutorial_utils, CodeExample, DifficultyLevel, Exercise, ExerciseResult,
317        ExerciseType, ExperienceLevel, InteractiveElement, InteractiveType, TestCase, Tutorial,
318        TutorialCategory, TutorialManager, TutorialProgress, TutorialSection, TutorialSession,
319        UserBackground,
320    };
321    pub use crate::variational::{VariationalAlgorithm, VariationalCircuit};
322
323    // New cutting-edge quantum ML algorithms
324    pub use crate::quantum_graph_attention::{
325        AttentionAnalysis, AttentionConfig as QGATAttentionConfig,
326        BenchmarkResults as QGATBenchmarkResults, Graph, PoolingConfig, QGATConfig,
327        QuantumAttentionType as QGATQuantumAttentionType, QuantumGraphAttentionNetwork,
328        TrainingMetrics as QGATTrainingMetrics,
329    };
330    pub use crate::quantum_in_context_learning::{
331        AdaptationResult, AdaptationStrategy, AdaptationTarget, ContextExample, ContextMetadata,
332        ContextModality, ContextRetrievalMethod, EntanglementPattern, InContextLearningMetrics,
333        InContextLearningOutput, InContextLearningStatistics, InterpolationMethod,
334        MetaUpdateStrategy, QuantumAttentionMechanism, QuantumContextAttention,
335        QuantumContextEncoder, QuantumContextEncoding, QuantumContextState, QuantumDistanceMetric,
336        QuantumEpisodicMemory, QuantumInContextLearner, QuantumInContextLearningConfig,
337        QuantumTaskAdapter, TransferLearningResults,
338    };
339    pub use crate::quantum_memory_networks::{
340        AddressingConfig, AddressingType, BenchmarkResults as QMANBenchmarkResults,
341        ControllerArchitecture, ControllerConfig as QMANControllerConfig, EpisodicMemory,
342        HeadConfig, HeadType as QMANHeadType, MemoryInitialization, QMANConfig, QMANTrainingConfig,
343        QuantumMemoryAugmentedNetwork, ReadParams, TrainingMetrics as QMANTrainingMetrics,
344        WriteParams,
345    };
346    pub use crate::quantum_neural_odes::{
347        AnsatzType as QNODEAnsatzType, BenchmarkResults as QNODEBenchmarkResults,
348        IntegrationMethod, OptimizationStrategy as QNODEOptimizationStrategy, QNODEConfig,
349        QuantumNeuralODE, TrainingMetrics as QNODETrainingMetrics,
350    };
351    pub use crate::quantum_pinns::{
352        BoundaryCondition, DerivativeResults, InitialCondition, LossWeights, PhysicsEquationType,
353        QPINNConfig, QuantumPINN, TrainingMetrics as QPINNTrainingMetrics,
354    };
355    pub use crate::quantum_reservoir_computing::{
356        BenchmarkResults as QRCBenchmarkResults, DynamicsAnalysis, InputEncoding, QRCConfig,
357        QuantumReservoirComputer, ReadoutConfig, ReservoirDynamics,
358        TrainingMetrics as QRCTrainingMetrics,
359    };
360
361    pub use crate::quantum_advanced_diffusion::{
362        DenoisingArchitecture, ErrorMitigationStrategy, GenerationMetrics,
363        QuantumAdvancedDiffusionConfig, QuantumAdvancedDiffusionModel, QuantumGenerationOutput,
364        QuantumNoiseSchedule, QuantumTrainingConfig,
365    };
366
367    pub use crate::quantum_continuous_flows::{
368        FlowArchitecture, FlowSamplingOutput, FlowTrainingConfig, QuantumContinuousFlow,
369        QuantumContinuousFlowConfig, QuantumODEFunction,
370    };
371
372    pub use crate::quantum_neural_radiance_fields::{
373        QuantumNeRF, QuantumNeRFConfig, QuantumRenderOutput, QuantumRenderingMetrics,
374    };
375
376    pub use crate::quantum_mixture_of_experts::{
377        InterferencePattern, MoEOutput, MoEStatistics, MoETrainingConfig,
378        QuantumCombinationMetrics, QuantumGatingMechanism, QuantumMixtureOfExperts,
379        QuantumMixtureOfExpertsConfig, QuantumRoutingStrategy,
380    };
381
382    pub use crate::quantum_self_supervised_learning::{
383        ContrastiveLossFunction, QuantumAugmentationStrategy, QuantumAugmenter, QuantumDecoder,
384        QuantumEncoder, QuantumMaskingStrategy, QuantumProjector, QuantumSSLMethod,
385        QuantumSSLMetrics, QuantumSelfSupervisedConfig, QuantumSelfSupervisedLearner,
386        QuantumSimilarityMetric, RepresentationEvaluationResults, SSLLearningOutput,
387        SSLTrainingConfig,
388    };
389
390    pub use crate::quantum_implicit_neural_representations::{
391        AdaptationOutput, CompressedRepresentation, CompressionConfig, CompressionManager,
392        EntanglementManager, INRQueryOutput, INRTrainingConfig, INRTrainingOutput,
393        MetaLearningConfig, OptimizationConfig, QuantumActivationConfig, QuantumGradientEstimator,
394        QuantumINRConfig, QuantumINRMetrics, QuantumImplicitNeuralRepresentation,
395        QuantumLayerConfig, QuantumOptimizer, QuantumPositionalEncoding, QuantumStateManager,
396        RepresentationMethod, SignalType,
397    };
398}