Examples
========
This section provides comprehensive, real-world examples demonstrating OptiX's capabilities
across different optimization problem types and application domains.
.. raw:: html
🍎 Diet Problem
Classic Linear Programming example showcasing cost minimization with nutritional constraints.
Perfect introduction to LP concepts with historical context.
View Example →
🚌 Bus Assignment
Advanced Goal Programming example for public transportation systems.
Demonstrates multi-objective optimization with real-world complexity.
View Example →
🏭 Production Planning
Manufacturing optimization with resource constraints, inventory management,
and multi-period planning scenarios.
View Example →
📈 Portfolio Optimization
Financial portfolio optimization with risk constraints, diversification requirements,
and return maximization objectives.
View Example →
Example Categories
------------------
By Problem Type
~~~~~~~~~~~~~~~
**Linear Programming (LP)**
* :doc:`diet_problem` - Cost minimization with constraints
* :doc:`production_planning` - Resource allocation and planning
* Transportation and logistics examples
**Goal Programming (GP)**
* :doc:`bus_assignment` - Multi-objective transportation planning
* Workforce planning with multiple criteria
* Project selection with competing goals
**Constraint Satisfaction (CSP)**
* Scheduling and timetabling problems
* Configuration and assignment problems
* Feasibility checking examples
By Application Domain
~~~~~~~~~~~~~~~~~~~~
**Transportation & Logistics**
* :doc:`bus_assignment` - Public transit optimization
* Vehicle routing and scheduling
* Supply chain optimization
**Manufacturing & Production**
* :doc:`production_planning` - Manufacturing optimization
* Inventory management
* Capacity planning
**Finance & Investment**
* :doc:`portfolio_optimization` - Investment allocation
* Risk management
* Capital budgeting
**Healthcare & Resources**
* :doc:`diet_problem` - Nutritional planning
* Hospital resource allocation
* Treatment scheduling
By Complexity Level
~~~~~~~~~~~~~~~~~~
**Beginner** 📚
* :doc:`diet_problem` - Simple LP formulation
* Basic production planning
* Single-objective problems
**Intermediate** 🎯
* :doc:`bus_assignment` - Goal programming introduction
* Multi-constraint problems
* Database integration
**Advanced** 🚀
* :doc:`portfolio_optimization` - Complex financial modeling
* Multi-period optimization
* Stochastic programming
Complete Example List
--------------------
.. toctree::
:maxdepth: 2
diet_problem
bus_assignment
production_planning
portfolio_optimization
Quick Example Browser
--------------------
.. tabs::
.. tab:: Linear Programming
**Diet Problem** - Cost minimization
Classic optimization problem minimizing food costs while meeting nutritional requirements.
* **Complexity**: Beginner
* **Concepts**: Linear constraints, objective optimization
* **Domain**: Nutrition and health
**Production Planning** - Resource allocation
Manufacturing optimization balancing production costs, inventory, and demand.
* **Complexity**: Intermediate
* **Concepts**: Multi-period planning, capacity constraints
* **Domain**: Manufacturing
.. tab:: Goal Programming
**Bus Assignment** - Multi-objective transportation
Public transit optimization balancing cost, service quality, and resource utilization.
* **Complexity**: Intermediate
* **Concepts**: Goal constraints, deviation variables
* **Domain**: Transportation
.. tab:: Advanced Applications
**Portfolio Optimization** - Financial planning
Investment allocation with risk management and diversification requirements.
* **Complexity**: Advanced
* **Concepts**: Risk modeling, correlation constraints
* **Domain**: Finance
Example Features
----------------
Each example includes:
✅ **Complete Source Code** - Fully functional implementations
✅ **Mathematical Formulation** - Clear problem definition
✅ **Step-by-Step Explanation** - Detailed implementation guide
✅ **Real-World Data** - Practical datasets and scenarios
✅ **Solution Analysis** - Results interpretation and insights
✅ **Extensions** - Ideas for further development
✅ **Performance Tips** - Optimization best practices
Getting Started
---------------
1. **Choose by Interest**: Select examples matching your domain
2. **Start Simple**: Begin with Diet Problem for LP basics
3. **Progress Gradually**: Move to Bus Assignment for GP concepts
4. **Customize**: Adapt examples to your specific needs
5. **Experiment**: Try the suggested extensions and variations
Running Examples
---------------
All examples are located in the ``samples/`` directory:
.. code-block:: bash
# Navigate to examples
cd samples/
# Run diet problem
poetry run python diet_problem/01_diet_problem.py
# Run bus assignment
poetry run python bus_assignment_problem/03_bus_assignment_problem.py
Common Patterns
--------------
Variable Creation
~~~~~~~~~~~~~~~~
.. code-block:: python
# From data objects
for product in products_db:
problem.create_decision_variable(
var_name=f"production_{product.name}",
description=f"Production level for {product.name}",
lower_bound=0,
upper_bound=product.max_capacity
)
Constraint Patterns
~~~~~~~~~~~~~~~~~~
.. code-block:: python
# Resource constraints
problem.create_constraint(
variables=production_vars,
weights=resource_consumption,
operator=RelationalOperators.LESS_THAN_EQUAL,
value=available_resources
)
# Demand constraints
problem.create_constraint(
variables=[product_var],
weights=[1],
operator=RelationalOperators.GREATER_THAN_EQUAL,
value=minimum_demand
)
Solution Analysis
~~~~~~~~~~~~~~~~
.. code-block:: python
def analyze_solution(solution, problem):
print(f"Objective Value: {solution.objective_value}")
for variable in problem.variables:
value = solution.variable_values.get(variable.id, 0)
if abs(value) > 1e-6:
print(f"{variable.name}: {value:.2f}")
Best Practices
--------------
**Problem Modeling**
* Start with simple formulations
* Validate constraints early
* Use meaningful variable names
* Add comprehensive descriptions
**Performance**
* Monitor problem size (variables/constraints)
* Use appropriate variable bounds
* Choose optimal solver for problem type
* Profile large-scale problems
**Development**
* Implement validation functions
* Create visualization of results
* Add sensitivity analysis
* Document assumptions and limitations
Contributing Examples
--------------------
We welcome contributions of new examples! Please ensure:
* **Complete Implementation**: Working code with all dependencies
* **Clear Documentation**: Problem description and solution approach
* **Real-World Relevance**: Practical application scenarios
* **Educational Value**: Clear learning objectives
* **Code Quality**: Following project conventions
Submit examples via GitHub pull requests with:
1. Source code in ``samples/`` directory
2. Documentation in ``docs/source/examples/``
3. Test cases and validation
4. README with usage instructions
.. tip::
**Learning Path**: Start with Diet Problem → Bus Assignment → Production Planning → Portfolio Optimization
for a comprehensive understanding of OptiX capabilities.
.. note::
All examples include comprehensive error handling, input validation, and detailed output analysis
to demonstrate production-ready optimization applications.
See Also
--------
* :doc:`../quickstart` - Get started with basic concepts
* :doc:`../user_guide/index` - Understanding problem types and features
* :doc:`../tutorials/index` - Step-by-step learning modules
* :doc:`../api/index` - Complete API reference