This is the codebase for the paper titled "Scalable Distributional Robustness in a Class of Non Convex Optimization with Guarantees" 

utils.py contains the implementation of all proposed algorithms and baselines used in the paper.

Synthetic SSG dataset experiments : 
1. Run SSG_num_clusters.py for checking convergence of solutions with number of clusters.
2. Run SSG_num_pieces.py for checking convergence of solutions with number of clusters.
3. Run SSG_clustering_vs_sampling.py for analysing the differences between solution quality via clustering and stratified sampling.
4. Run SSG_comparisons.py for comparing proposed methods with baselines.

Real Facility Dataset :
1. Run main_FLP.py for the Max Capture Facility Location Problem.
2. Run main_FCP.py for the Max Capture Facility Cost Problem.

Requirements : All our implementations are build on the following libraries : gurobi, pytorch, numpy, scipy, sklearn