{"id":35306490,"url":"https://github.com/justinstarreveld/multistage-robustness-analysis","last_synced_at":"2026-05-21T02:01:47.280Z","repository":{"id":243865913,"uuid":"611170040","full_name":"JustinStarreveld/multistage-robustness-analysis","owner":"JustinStarreveld","description":"Demonstration of robustness analysis for (multistage) adaptive optimization","archived":false,"fork":false,"pushed_at":"2024-06-03T14:22:02.000Z","size":415,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-11T17:31:40.798Z","etag":null,"topics":["optimization","robustness-analysis"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JustinStarreveld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-08T09:09:27.000Z","updated_at":"2024-06-11T17:31:49.693Z","dependencies_parsed_at":"2024-06-11T17:31:46.346Z","dependency_job_id":"d065ae7b-6290-4072-ac27-fb8cebcd9edc","html_url":"https://github.com/JustinStarreveld/multistage-robustness-analysis","commit_stats":null,"previous_names":["justinstarreveld/multistage-robustness-analysis"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/JustinStarreveld/multistage-robustness-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinStarreveld%2Fmultistage-robustness-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinStarreveld%2Fmultistage-robustness-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinStarreveld%2Fmultistage-robustness-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinStarreveld%2Fmultistage-robustness-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JustinStarreveld","download_url":"https://codeload.github.com/JustinStarreveld/multistage-robustness-analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinStarreveld%2Fmultistage-robustness-analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33284879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-20T15:12:43.734Z","status":"online","status_checked_at":"2026-05-21T02:00:07.181Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["optimization","robustness-analysis"],"created_at":"2025-12-30T17:15:18.900Z","updated_at":"2026-05-21T02:01:47.274Z","avatar_url":"https://github.com/JustinStarreveld.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Robustness Analysis for Adaptive Optimization\n\n[![License: MIT][license-badge]][license]\n[![DOI][Zenodo-badge]][Zenodo-url]\n\nThis repository provides code for applying _Robustness_ _Analysis_ (RA). \nRA is used to analyze the performance of a particular solution under variation in the uncertain parameters of an optimization problem.\nThis can be done in a static manner, or a multistage adaptive manner, which allows some of the decisions to adapt to realizations of the uncertainty.\nThis differs from Sensitivity Analysis (SA), which analyzes how the optimal solution changes under variation in the uncertain parameters. \nThe methodology and problem are described in detail in an accompanying paper, available online [here](https://optimization-online.org/?p=26715). \n\n## Code\n\nThe code is written in `Python`, version 3.10.9. The dependency packages are listed in `requirements.txt`. The algorithms are implemented in `analysis.py` and the application to the toy problem is done in `main_illustrative_toy_problem.py`.\n\n\u003c!-- ## Installation\n\nThe recommended way to install `robist` in your (virtual) environment is with\nPython's `pip`:\n```\npip install robist\n```\nTo be able to run the numerical experiments, make sure to clone the repository and install with the examples-requirements:\n```\ngit clone https://github.com/JustinStarreveld/ROBIST.git\ncd robist\npip install \".[examples]\"\n``` --\u003e\n\n## Illustrative Example\n\nWe highlight the difference between SA, RA for static optimization and RA for adaptive optimization using the illustrative example as described in Section 2.2 of the [paper](https://optimization-online.org/?p=26715).  \n\nWe assume to have access to a randomly generated data set of $N=1000$ realizations of $(c_{A,1}, c_{A,2})$ and use this scenario data to analyze the performance of our nominal solution in a 3-stage setting. \nThen, using the same set of scenarios, we highlight the difference between SA, RA in a static setting and RA in an adaptive setting, by comparing the results from applying these three methods. \nThe objective value is analyzed and the results are shown in the following figures. \n\nResults from applying sensitivity analysis:\n\n![Sensitivity Analysis](https://github.com/JustinStarreveld/multistage-robustness-analysis/raw/main/docs/illustrative_figures/obj_hist_N=1000_SA.png)\n\nResults from applying robustness analysis in a static setting:\n\n  ![Robustness Analysis (static)](https://github.com/JustinStarreveld/multistage-robustness-analysis/raw/main/docs/illustrative_figures/obj_hist_N=1000_RA_static.png)\n  \nResults from applying robustness analysis in a 3-stage adaptive setting:\n  \n  ![Robustness Analysis (adaptive)](https://github.com/JustinStarreveld/multistage-robustness-analysis/raw/main/docs/illustrative_figures/obj_hist_N=1000_RA_adaptive.png)\n  \nThe script used to create the figures in this illustrative example is [`main_illustrative_toy_problem.py`](https://github.com/JustinStarreveld/multistage-robustness-analysis/blob/main/main_illustrative_toy_problem.py).\n\n## Contact Information\nThe code is not flawless. In case you have any questions or suggestions, please reach out at j.s.starreveld@uva.nl. \n\n## Citation\n\nWas our software useful to you? Great! You can cite us using:\n\n```\n@misc{RA_adaptive,\n  doi = {10.5281/zenodo.11448965},\n  year = {2024},\n  author = {Justin Starreveld, Gregor Brandt, Jaron Davelaar, Dick den Hertog, Zofia Lukszo and Nort Thijssen},\n  title = {Robustness Analysis for Adaptive Optimization},\n  url = {https://github.com/JustinStarreveld/multistage-robustness-analysis}\n}\n```\n\n[license]:              \t\thttps://opensource.org/license/mit/\n[license-badge]:        \t\thttps://img.shields.io/badge/license-MIT-blue\n[Zenodo-url]:           \t\thttps://doi.org/10.5281/zenodo.11448965\n[Zenodo-badge]: \t\t\t\thttps://zenodo.org/badge/494070848.svg\n[preprint-paper]:          \t\thttps://optimization-online.org/?p=26715\n\n\n\u003c!-- https://doi.org/10.5281/zenodo.10143595 --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinstarreveld%2Fmultistage-robustness-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustinstarreveld%2Fmultistage-robustness-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustinstarreveld%2Fmultistage-robustness-analysis/lists"}