{"id":43615611,"url":"https://github.com/nrealus/pstn-cc-dc","last_synced_at":"2026-02-04T12:26:28.176Z","repository":{"id":200123418,"uuid":"704865488","full_name":"nrealus/pstn-cc-dc","owner":"nrealus","description":"PSTN risk-bounded / chance-constrained dynamic controllability","archived":false,"fork":false,"pushed_at":"2023-10-14T13:17:22.000Z","size":29,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-01-25T12:09:28.952Z","etag":null,"topics":["chance-constraints","dynamic-controllability","dynamic-scheduling","simple-temporal-networks","uncertainty"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nrealus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-14T10:37:32.000Z","updated_at":"2023-10-19T11:40:17.000Z","dependencies_parsed_at":"2023-10-15T20:58:11.060Z","dependency_job_id":"d940395e-e990-4d75-97d1-4d0ef834edad","html_url":"https://github.com/nrealus/pstn-cc-dc","commit_stats":null,"previous_names":["nrealus/pstn-cc-dc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nrealus/pstn-cc-dc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrealus%2Fpstn-cc-dc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrealus%2Fpstn-cc-dc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrealus%2Fpstn-cc-dc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrealus%2Fpstn-cc-dc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nrealus","download_url":"https://codeload.github.com/nrealus/pstn-cc-dc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nrealus%2Fpstn-cc-dc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29084223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["chance-constraints","dynamic-controllability","dynamic-scheduling","simple-temporal-networks","uncertainty"],"created_at":"2026-02-04T12:26:28.048Z","updated_at":"2026-02-04T12:26:28.167Z","avatar_url":"https://github.com/nrealus.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PSTN risk-bounded / chance-constrained dynamic controllability\n\nAn implementation of the algorithm for risk-bounded (aka chance-constrained) dynamic controllability checking of Probabilistic Simple Temporal Networks (PSTN) from [1].\n\nIn addition to risk-bounded dynamic controllability checking, risk-bounded dynamic execution policies for PSTNs, as defined in [1], could be easily extracted from the\noutputs of the main function of the algorithm as well. However, this is descoped and not implemented in this repository.\n\nOn the other hand, we have implemented some improvements and extensions discussed in chapter 8 of [1]. The first is that we use a MIP solver\nwith piecewise linearization, instead of a NLP solver. The second is the support for multiple separate chance constraints, not\njust a single global one. The third one is that we use a SAT solver to perform unit propagation when enumerating / branching over\nlinear constraints composing disjunctive linear constraints. Finally, when the selected (linear) constraints lead\nto infeasibility of the MIP, [1] advises to use an irreducible infeasible set (IIS) of constraints, but descopes it,\nsince IIS computation for LP/MIP and especially NLP is often only available in the most high-end commercial solvers. We use a simple general\nadditive-deletion filter [2] to return an IIS only composed of some of the linear constraints selected for the MIP. Indeed, there is no need to include the reformulated chance constraint and linearization constraints in our set of conflicting constraints, because they must always hold at the top level.\n\nPlease also note that our implementation differs a bit from the one presented in [1].\nIndeed, instead of explicitly implementing the 3 layers described in [1], we \"flattened\" them into a single layer.\n\nThe code for STNU dynamic controllability checking with conflict extraction in `stnu.py` is (almost?) exactly the same as in [this repository](https://github.com/nrealus/stnu-conflicts).\n\nFinal note: the code is still a bit unclean, and almost uncommented / undocumented. This should be improved. Also, it would be nice to have some more tests.\n\n[1]: [Wang, A.J. Risk-Bounded Dynamic Scheduling of Temporal Plans, 2022 (PhD Thesis)](https://dspace.mit.edu/handle/1721.1/147542)\n\n[2]: [Chinneck, J.W. Feasibility and Infeasibility in Optimization, 2007 (Tutorial for CP-AI-OR-07)](https://www.sce.carleton.ca/faculty/chinneck/docs/CPAIOR07InfeasibilityTutorial.pdf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnrealus%2Fpstn-cc-dc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnrealus%2Fpstn-cc-dc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnrealus%2Fpstn-cc-dc/lists"}