quantrs2_ml/
lib.rs

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