-
Notifications
You must be signed in to change notification settings - Fork 7
Description
When there are inactive chance states (zero probability) in the model, the model currently creates path probability variables and fixes them to zero. We could avoid creating the fixed variables altogether by using a dictionary (as a sparse multidimensional array) instead of (a dense, multidimensional) array of path probability variables. We can then efficiently create decision models (faster and less memory usage) create decision models when there are many inactive chance states. Also, there is less unnecessary variables or constraints for the solver to remove.
These improvements do not require changes to API, only some changes to the internals of the following functions in decision_model.jl:
path_probability_variables: Create path probability variables by deterministically iterating over paths without inactive chance states. Store variable in the dictionary. We also need to implement the deterministic iterator.probability_cutactive_paths_cutexpected_valueconditional_value_at_risk
We need to check that the changes do not cause any performance regressions.