This repository contains the datasets and scripts used to analyze how training data quality, particularly simulation uncertainty, affects the performance of surrogate models in high-fidelity Monte Carlo–driven optimization workflows. The repository includes all notebooks used for data preparation, surrogate hypertuning, optimization, validation, and 10-run uncertainty analysis for both converter and reflector benchmark cases.
Erdem, O. F., Broughton, D. P., Svoboda, J., Huang, C., & Radaideh, M. I. (2025).
Surrogate-driven design optimization with uncertainty constraints in Monte Carlo simulations.
Energy and AI.
https://www.sciencedirect.com/science/article/pii/S2666546825001879?via%3Dihub
A single Conda environment is used for all steps of the pipeline.
conda env create -f environment.yml
conda activate surrogate_uncertaintyBoth Converter and Reflector subdirectories contain an identical workflow consisting of six steps. Running the notebooks in order will fully reproduce the datasets, surrogate models, optimization runs, and uncertainty analyses presented in the paper.
Below, the Converter workflow is shown. Repeat the same steps under the Reflector/ directory to generate the reflector results.
Directory: Converter/Data/
Notebook: 1. conv_data_plot.ipynb
nohup jupyter nbconvert --to notebook --execute --inplace "1. conv_data_plot.ipynb" > output.log 2>&1 &Directory: Converter/Surrogate Hypertuner/
Notebook: 2. conv_hypertuner.ipynb
nohup jupyter nbconvert --to notebook --execute --inplace "2. conv_hypertuner.ipynb" > output.log 2>&1 &Directory: Converter/
Notebook: 3. converter_optimizer.nbconvert.ipynb
nohup jupyter nbconvert --to notebook --execute --inplace "3. converter_optimizer.nbconvert.ipynb" > output.log 2>&1 &Directory: Converter/Validation/
Notebook: 4. conv_model_predictions.ipynb
nohup jupyter nbconvert --to notebook --execute --inplace "4. conv_model_predictions.ipynb" > output.log 2>&1 &Directory: Converter/Test with 10 runs/
Notebook: 5. converter_10fold_uncertainty_runner.ipynb
nohup jupyter nbconvert --to notebook --execute --inplace "5. converter_10fold_uncertainty_runner.ipynb" > output.log 2>&1 &Directory: Converter/Test with 10 runs/
Notebook: 6. converter_10fold_postprocessor.ipynb
nohup jupyter nbconvert --to notebook --execute --inplace "6. converter_10fold_postprocessor.ipynb" > output.log 2>&1 &To reproduce the reflector results, repeat Steps 1–6 under the Reflector/ directory.
The file structure and notebook names are identical.