lumix.analysis.scenario.LXScenario¶
- class lumix.analysis.scenario.LXScenario(name, modifications=<factory>, description='')[source]¶
Type-safe scenario definition for what-if analysis.
A scenario represents a set of modifications to a base model that allow you to explore different business conditions or assumptions.
Examples
Create a high-capacity scenario:
high_capacity = ( LXScenario[Product]("high_capacity") .modify_constraint_rhs("capacity", multiply=1.5) .describe("Increase capacity by 50%") )
Create a low-cost scenario:
low_cost = ( LXScenario[Product]("low_cost") .modify_constraint_rhs("min_production", set_value=50.0) .modify_variable_bound("production", lower=10.0) .describe("Lower minimum production requirements") )
Create a combined scenario:
optimistic = ( LXScenario[Product]("optimistic") .modify_constraint_rhs("capacity", multiply=1.3) .modify_constraint_rhs("budget", add=10000.0) .describe("Optimistic market conditions") )
- Parameters:
name (str)
modifications (List[LXScenarioModification])
description (str)
- __init__(name, modifications=<factory>, description='')¶
- Parameters:
name (str)
modifications (List[LXScenarioModification])
description (str)
- Return type:
None
Methods
__init__(name[, modifications, description])add_custom_modification(modification)Add custom modification.
describe(description)Add description to scenario.
modify_constraint_rhs(constraint_name[, ...])Modify constraint right-hand side.
modify_variable_bound(variable_name[, ...])Modify variable bounds.
Attributes
-
modifications:
List[LXScenarioModification]¶
- describe(description)[source]¶
Add description to scenario.
- Parameters:
description (
str) – Human-readable description- Return type:
Self- Returns:
Self for chaining
- modify_constraint_rhs(constraint_name, set_value=None, add=None, multiply=None, description='')[source]¶
Modify constraint right-hand side.
- Parameters:
- Return type:
Self- Returns:
Self for chaining
Examples
# Set capacity to 1000 scenario.modify_constraint_rhs(“capacity”, set_value=1000.0)
# Increase capacity by 200 scenario.modify_constraint_rhs(“capacity”, add=200.0)
# Increase capacity by 50% scenario.modify_constraint_rhs(“capacity”, multiply=1.5)
- modify_variable_bound(variable_name, lower=None, upper=None, description='')[source]¶
Modify variable bounds.
- Parameters:
- Return type:
Self- Returns:
Self for chaining
Examples
# Set lower bound scenario.modify_variable_bound(“production”, lower=100.0)
# Set both bounds scenario.modify_variable_bound(“inventory”, lower=50.0, upper=500.0)
- add_custom_modification(modification)[source]¶
Add custom modification.
- Parameters:
modification (
LXScenarioModification) – Custom modification to add- Return type:
Self- Returns:
Self for chaining
- __init__(name, modifications=<factory>, description='')¶
- Parameters:
name (str)
modifications (List[LXScenarioModification])
description (str)
- Return type:
None