Giter Site home page Giter Site logo

nrealus / pstn-cc-dc Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 29 KB

PSTN risk-bounded / chance-constrained dynamic controllability

Python 100.00%
chance-constraints dynamic-controllability dynamic-scheduling simple-temporal-networks uncertainty

pstn-cc-dc's Introduction

PSTN risk-bounded / chance-constrained dynamic controllability

An implementation of the algorithm for risk-bounded (aka chance-constrained) dynamic controllability checking of Probabilistic Simple Temporal Networks (PSTN) from [1].

In addition to risk-bounded dynamic controllability checking, risk-bounded dynamic execution policies for PSTNs, as defined in [1], could be easily extracted from the outputs of the main function of the algorithm as well. However, this is descoped and not implemented in this repository.

On 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 with piecewise linearization, instead of a NLP solver. The second is the support for multiple separate chance constraints, not just a single global one. The third one is that we use a SAT solver to perform unit propagation when enumerating / branching over linear constraints composing disjunctive linear constraints. Finally, when the selected (linear) constraints lead to infeasibility of the MIP, [1] advises to use an irreducible infeasible set (IIS) of constraints, but descopes it, since IIS computation for LP/MIP and especially NLP is often only available in the most high-end commercial solvers. We use a simple general additive-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.

Please also note that our implementation differs a bit from the one presented in [1]. Indeed, instead of explicitly implementing the 3 layers described in [1], we "flattened" them into a single layer.

The code for STNU dynamic controllability checking with conflict extraction in stnu.py is (almost?) exactly the same as in this repository.

Final 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.

[1]: Wang, A.J. Risk-Bounded Dynamic Scheduling of Temporal Plans, 2022 (PhD Thesis)

[2]: Chinneck, J.W. Feasibility and Infeasibility in Optimization, 2007 (Tutorial for CP-AI-OR-07)

pstn-cc-dc's People

Contributors

nrealus avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.