Expand description
Phantom types for compile-time optimization state verification
§Phantom Types for Optimization State
This module provides phantom types that encode optimization problem properties at compile time, ensuring type safety and preventing invalid operations.
§Mathematical Background
Optimization problems can be characterized by several properties:
- Constraints: Whether the problem has constraints or is unconstrained
- Objectives: Single-objective vs multi-objective optimization
- Convexity: Whether the problem is convex or non-convex
- Manifold: Whether optimization occurs on a manifold
These properties affect which optimization algorithms are applicable and what guarantees can be made about convergence.
Structs§
- Constrained
- Optimization problem has constraints
- Convex
- Problem is convex
- Euclidean
- Optimization on Euclidean space
- Multi
Objective - Optimization is multi-objective
- NonConvex
- Problem is non-convex
- Optimization
Problem - Optimization problem with compile-time properties
- Riemannian
- Optimization on a Riemannian manifold
- Single
Objective - Optimization is single-objective
- Statistical
- Optimization on a statistical manifold (information geometry)
- Unconstrained
- Optimization problem is unconstrained
Traits§
- Constraint
State - Marker trait for constraint states
- Convexity
State - Marker trait for convexity states
- Handles
Constrained - Marker trait for algorithms that can handle constrained problems
- Handles
Multi Objective - Marker trait for algorithms that can handle multi-objective problems
- Handles
Statistical - Marker trait for algorithms that work on statistical manifolds
- Handles
Unconstrained - Marker trait for algorithms that can handle unconstrained problems
- Manifold
State - Marker trait for manifold states
- Objective
State - Marker trait for objective states
- Requires
Convex - Marker trait for algorithms that require convex problems