quantrs2_tytan/problem_dsl/
optimizer.rs

1//! Optimization hints and strategies for the problem DSL.
2
3use super::ast::Value;
4use std::collections::HashMap;
5
6/// Optimization hint
7#[derive(Debug, Clone)]
8pub enum OptimizationHint {
9    /// Variable ordering hint
10    VariableOrder(Vec<String>),
11    /// Symmetry breaking
12    Symmetry(SymmetryType),
13    /// Decomposition hint
14    Decomposition(DecompositionHint),
15    /// Solver preference
16    SolverPreference(String),
17    /// Custom hint
18    Custom { name: String, value: String },
19}
20
21#[derive(Debug, Clone)]
22pub enum SymmetryType {
23    /// Permutation symmetry
24    Permutation(Vec<String>),
25    /// Reflection symmetry
26    Reflection { axis: String },
27    /// Rotation symmetry
28    Rotation { order: usize },
29}
30
31#[derive(Debug, Clone)]
32pub struct DecompositionHint {
33    pub method: String,
34    pub parameters: HashMap<String, Value>,
35}