API Reference¶
Complete API documentation for all LumiX modules with auto-generated documentation from source code.
API Modules
Core Module¶
The Core Module API module provides the fundamental building blocks for optimization models:
LXModel- Model builder with fluent APILXVariable- Type-safe variable familiesLXConstraint- Data-driven constraintsLXLinearExpression- Linear expressionsLXQuadraticExpression- Quadratic expressionsLXVarType- Variable type enumerationLXConstraintSense- Constraint sense enumerationLXObjectiveSense- Objective sense enumeration
Solvers Module¶
The Solvers Module API module provides a unified interface to multiple optimization solvers:
LXOptimizer- Main optimizer interfaceLXSolverInterface- Base solver interfaceLXSolverCapability- Solver capability descriptionsLXSolverFeature- Solver feature flags
Supported solvers: OR-Tools, Gurobi, CPLEX, GLPK, CP-SAT
Indexing Module¶
The Indexing Module API module provides multi-dimensional indexing capabilities:
LXIndexDimension- Single dimension with filteringLXCartesianProduct- Multi-dimensional cartesian products
Nonlinear Module¶
The Nonlinear Module API module provides nonlinear term definitions:
LXAbsoluteTerm- Absolute value operations xLXMinMaxTerm- Min/max over multiple variablesLXBilinearTerm- Products of two variables x*yLXIndicatorTerm- Conditional (if-then) constraintsLXPiecewiseLinearTerm- Piecewise-linear function approximations
Linearization Module¶
The Linearization Module API module provides automatic linearization of nonlinear terms:
LXLinearizer- Main linearization engineLXLinearizerConfig- Configuration settingsLXLinearizationMethod- Available methodsLXNonLinearFunctions- Pre-built function approximationsLXBilinearLinearizer- Bilinear product linearizationLXPiecewiseLinearizer- Piecewise-linear approximation
Utils Module¶
The Utils Module API module provides utility classes for enhanced functionality:
LXModelLogger- Enhanced logging for optimization modelsLXORMContext- Type-safe ORM query interfaceLXTypedQuery- Fluent query builder with type safetyLXRationalConverter- Float-to-rational conversion
Solution Module¶
The Solution Module API module provides solution handling and mapping utilities:
LXSolution- Solution container with variable values and metadataLXSolutionMapper- Utilities for mapping solutions to model instances
Analysis Module¶
The Analysis Module API module provides comprehensive post-optimization analysis tools:
LXSensitivityAnalyzer- Sensitivity analysis with shadow prices and reduced costsLXScenarioAnalyzer- Systematic scenario comparisonLXWhatIfAnalyzer- Interactive what-if explorationLXVariableSensitivity- Variable sensitivity resultsLXConstraintSensitivity- Constraint sensitivity resultsLXScenario- Scenario definitionLXWhatIfResult- What-if analysis results
Goal Programming Module¶
The Goal Programming Module API module provides automatic LP-to-Goal Programming conversion:
LXGoal- Goal instance with metadataLXGoalMetadata- Goal configuration (priority, weight, sense)LXGoalMode- Solving modes (WEIGHTED, SEQUENTIAL)RelaxedConstraint- Relaxed constraint with deviationsLXGoalProgrammingSolver- Sequential goal programming solverrelax_constraint()- Constraint relaxation functionbuild_weighted_objective()- Build weighted objectivesbuild_sequential_objectives()- Build sequential objectives
Quick Links¶
Most Commonly Used Classes
- Core:
lumix.core.model.LXModel- Start here to build modelslumix.core.variables.LXVariable- Define decision variableslumix.core.constraints.LXConstraint- Add constraintslumix.core.expressions.LXLinearExpression- Build expressions
- Solvers:
lumix.solvers.base.LXOptimizer- Solve models with any solverlumix.solvers.capabilities.LXSolverCapability- Query solver capabilities
- Indexing:
lumix.indexing.dimensions.LXIndexDimension- Single dimension indexinglumix.indexing.cartesian.LXCartesianProduct- Multi-dimensional products
- Nonlinear:
lumix.nonlinear.terms.LXAbsoluteTerm- Absolute value termslumix.nonlinear.terms.LXBilinearTerm- Bilinear productslumix.nonlinear.terms.LXPiecewiseLinearTerm- Piecewise-linear approximations
- Linearization:
lumix.linearization.engine.LXLinearizer- Automatic linearization enginelumix.linearization.config.LXLinearizerConfig- Linearization configurationlumix.linearization.functions.LXNonLinearFunctions- Pre-built functions
- Utils:
lumix.utils.logger.LXModelLogger- Model logging utilitieslumix.utils.orm.LXORMContext- ORM integrationlumix.utils.rational.LXRationalConverter- Rational conversion
- Solution:
lumix.solution.solution.LXSolution- Solution container and accesslumix.solution.mapping.LXSolutionMapper- Solution mapping utilities
- Analysis:
lumix.analysis.sensitivity.LXSensitivityAnalyzer- Sensitivity analysislumix.analysis.scenario.LXScenarioAnalyzer- Scenario comparisonlumix.analysis.whatif.LXWhatIfAnalyzer- What-if exploration
- Goal Programming:
lumix.goal_programming.goal.LXGoal- Goal instanceslumix.goal_programming.goal.LXGoalMetadata- Goal metadatalumix.goal_programming.solver.LXGoalProgrammingSolver- Sequential solverlumix.goal_programming.relaxation.relax_constraint()- Constraint relaxation
Quick Reference¶
For quick help with any class:
Use IDE Autocomplete: LumiX is fully type-annotated
Check Docstrings: All classes and methods have comprehensive docstrings
Browse Source: The source code is well-documented
See Examples: The examples directory shows practical usage
Example: Getting Help¶
from lumix import LXModel
# In Python, use help() to see docstrings
help(LXModel)
# Or in IPython/Jupyter
LXModel?
# For method signatures
LXModel.add_variable?