Skip to content

mvcisback/improvisers

Repository files navigation

Improvisers

Library for synthesizing Entropic Reactive Control Improvisers for stochastic games.

Build Status Docs codecov PyPI version License: MIT

About

Example of Reactive Control Improvisation (RCI) due to [1].

Note: The example above was generated using the rci project. The goal is to soon port this example to the improvisers library.

Installation

If you just need to use improvisers, you can just run:

$ pip install improvisers

For developers, note that this project uses the poetry python package/dependency management tool. Please familarize yourself with it and then run:

$ poetry install

Usage

from improvisers import solve
from improvisers import ExplicitGameGraph  # Any class adhearing to the GameGraph protocol below works.

game_graph = ExplicitGameGraph(
    root=5,
    graph={
        0: (False, {}),
        1: (True, {}),
        2: ('env', {0: 2/3, 1: 1/3}),
        3: ('p1', {0, 2}),
        4: ('p2', {2, 3}),
        5: ('p1', {4, 3}),
    }
)

actor = solve(game_graph, psat=1/3)
policy = actor.improvise()  # Co-routine for the improvisation protocol.

References

[1]: Fremont, Daniel J., and Sanjit A. Seshia. "Reactive control improvisation." International conference on computer aided verification. Springer, Cham, 2018.

About

A Python library for creating and modeling controlled improvisers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages