- new virtual environment
python3 -m venv env - activate virtual environment:
source env/bin/activate(windows:env\Script\activate) - install requirements:
pip install requirements.txt
- To solve non-linear convex model please install
ipoptin your computer first (for non-linear uncertainty set)
- Robust optimization is a methodology handles uncertainty without distributional assumptions
- You can choose your own uncertainty set (must be convex), supported sets are listed below:
- Box:
robustoptimization.components.uncertaintyset.box - Ball:
robustoptimization.components.uncertaintyset.ball - others: refer to the reference
./refsand inheritrobustoptimization.components.uncertaintyset.UncertaintySeton your own
- Box:
- Metrics for RO solution qualities are defined in
./robustoptimization/utils/metrics.py, including:mean_value_of_robustization: The mean objective value improvement of RO compared to deterministic optimizationimprovement_of_std: The objective std improvement of RO compared to deterministic optimizationrobust_rate: Proportion of solutions feasible using RO but infeasible using deterministic optimization
- supply chain network model
- mathematical formulation provided at
./scn.md - code definition (OOP wrapper) provided at
supplychainnetworkmodel.py - entry point:
python3 main.py --scn
- mathematical formulation provided at
- machine scheduling model
- mathematical formulation provided at
./scheduling.md - code definition (OOP wrapper) provided at
./schedulingmodel.py - entry point:
python3 main.py --sch
- mathematical formulation provided at
- only variable >= 0 supported
- check dim consistency
- check variable and parameter naming
- math simplification
- box robustness parameter
- simplify parameter object to uncertain param
- sympy https://stackoverflow.com/questions/30225348/how-to-rearrange-sympy-expressions-containing-a-relational-operator
- bind uncertainty set with constraint as class
- small cases and big ones to demonstrate package util.