Examples¶
The LumiX examples demonstrate key features and best practices through practical, real-world optimization problems. Each example is fully documented with source code, mathematical formulations, and learning objectives.
Quick Start Guide¶
New to LumiX? Start with these examples in order:
Basic LP (Basic Linear Programming Example) - The simplest introduction
Production Planning (Production Planning Example) - Single-model indexing
Driver Scheduling (Driver Scheduling Example) - Multi-model indexing (KEY FEATURE)
Examples by Topic¶
Fundamentals
Advanced Techniques
Available Examples¶
The LumiX repository includes 11 comprehensive examples demonstrating various features:
Basic Examples¶
Production Planning (
01_production_planning/)Single-model indexing
Data-driven modeling
Resource capacity constraints
Profit maximization
Driver Scheduling (
02_driver_scheduling/)Multi-dimensional indexing
Complex scheduling constraints
Assignment problems
Facility Location (
03_facility_location/)Binary decision variables
Fixed costs vs. variable costs
Facility location optimization
Basic Linear Programming (
04_basic_lp/)Simple LP formulation
Getting started example
Basic constraints
Assignment Problems¶
CP-SAT Assignment (
05_cpsat_assignment/)Using CP-SAT solver
Integer programming
Assignment constraints
Advanced Techniques¶
McCormick Bilinear Linearization (
06_mccormick_bilinear/)Bilinear term linearization
McCormick envelopes
Non-linear optimization
Piecewise Linear Functions (
07_piecewise_functions/)Piecewise-linear approximations
Non-linear function modeling
SOS2 constraints
Analysis Examples¶
Scenario Analysis (
08_scenario_analysis/)Comparing multiple scenarios
Scenario management
Side-by-side comparison
Sensitivity Analysis (
09_sensitivity_analysis/)Parameter sensitivity
Shadow prices
Reduced costs
Range analysis
What-If Analysis (
10_whatif_analysis/)Quick what-if scenarios
Impact analysis
Decision support
Goal Programming¶
Goal Programming (
11_goal_programming/)Multi-objective optimization
Weighted goals
Sequential (lexicographic) goals
Goal priorities
Running Examples¶
Each example is self-contained and can be run directly:
# Clone the repository
git clone https://github.com/tdelphi1981/LumiX.git
cd LumiX
# Install LumiX with a solver
pip install -e .[ortools]
# Run an example
python examples/01_production_planning/production_planning.py
Example Structure¶
Each example directory typically contains:
Main script: The optimization model and solution
Sample data: Data classes and sample datasets
README (coming soon): Detailed explanation
What You’ll Learn¶
From Basic Examples¶
How to define variables with type safety
Building expressions and constraints
Creating and solving models
Accessing solution values
Working with different data structures
From Advanced Examples¶
Multi-dimensional indexing strategies
Automatic linearization techniques
Solver-specific features
Performance optimization
Complex constraint modeling
From Analysis Examples¶
Sensitivity analysis workflows
Scenario comparison techniques
What-if analysis for decision making
Interpreting optimization results
Example Categories¶
By Difficulty¶
Beginner
Basic LP (
04_basic_lp/)Production Planning (
01_production_planning/)
Intermediate
Driver Scheduling (
02_driver_scheduling/)Facility Location (
03_facility_location/)CP-SAT Assignment (
05_cpsat_assignment/)
Advanced
McCormick Bilinear (
06_mccormick_bilinear/)Piecewise Functions (
07_piecewise_functions/)Goal Programming (
11_goal_programming/)
By Feature¶
Indexing
Single: Production Planning
Multi-dimensional: Driver Scheduling
Variable Types
Continuous: Production Planning, Basic LP
Integer: CP-SAT Assignment
Binary: Facility Location
Linearization
Bilinear: McCormick example
Piecewise: Piecewise functions example
Analysis
Sensitivity: Sensitivity Analysis example
Scenario: Scenario Analysis example
What-If: What-If Analysis example
Multi-Objective
Goal Programming: Goal Programming examples
Documentation Features¶
Each example now includes:
✓ Detailed walkthrough - Step-by-step code explanation ✓ Problem descriptions - Real-world business context ✓ Mathematical formulations - LaTeX equations and constraints ✓ Solution interpretation guides - How to read and use results ✓ Comprehensive README files - Quick reference in each example directory ✓ API cross-references - Links to relevant LumiX classes and methods
Coming Soon:
Jupyter notebook versions
Interactive visualizations
Performance comparisons across solvers
Contributing Examples¶
Have an interesting use case? We welcome example contributions!
Open an issue to discuss your example idea
Follow the existing example structure
Include sample data and clear comments
Submit a pull request
Getting Started¶
Step 1: Choose Your Starting Point
Complete beginner? → Start with Basic Linear Programming Example
Know linear programming? → Jump to Production Planning Example
Ready for advanced features? → Explore Driver Scheduling Example
Step 2: Run the Examples
# Clone the repository
git clone https://github.com/tdelphi1981/LumiX.git
cd LumiX
# Install LumiX with a solver
pip install -e .[ortools]
# Run an example
python examples/04_basic_lp/basic_lp.py
Step 3: Explore and Modify
Read the documentation page for detailed explanations
Review the source code and README files
Try the suggested modifications
Adapt patterns to your own problems
Next Steps¶
After completing the examples:
Review the User Guide for detailed feature documentation
Explore the API Reference for complete API reference
Join the community and share your use cases
Contribute your own examples via pull request