use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MarketplaceOptimizationConfig {
pub enable_optimization: bool,
pub optimization_strategies: Vec<AlgorithmOptimizationStrategy>,
pub hardware_optimization: HardwareOptimizationConfig,
pub multi_objective_config: MultiObjectiveOptimizationConfig,
pub pipeline_config: OptimizationPipelineConfig,
pub collaborative_optimization: CollaborativeOptimizationConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HardwareOptimizationConfig {
pub enable_hardware_optimization: bool,
pub target_hardware: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MultiObjectiveOptimizationConfig {
pub objectives: Vec<String>,
pub weights: Vec<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OptimizationPipelineConfig {
pub pipeline_stages: Vec<String>,
pub parallel_execution: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CollaborativeOptimizationConfig {
pub enable_collaboration: bool,
pub sharing_policies: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub enum AlgorithmOptimizationStrategy {
GeneticAlgorithm,
SimulatedAnnealing,
ParticleSwarmOptimization,
BayesianOptimization,
GradientBased,
HybridApproach,
MachineLearning,
ReinforcementLearning,
}