Skip to main content

pgeon / pgeon-xai

Tormos, A., Abalos, V., Gnatyshak, D., & Alvarez-Napagao, S. (2023, October). Policy graphs in action: explaining single- and multi-agent behaviour using predicates. In XAI in Action: Past, Present, and Future Applications.

pgeon (pgeon-xai) is a Python package that produces explanations for opaque agents using Policy Graphs (PGs).

A Policy Graph is a means to obtain a representation of the behavior of an opaque agent, in the form of a directed graph. Discrete states are mapped to nodes and actions to edges.

Getting started

  • Install pgeon with pip: pip install pgeon-xai

or:

  1. Download the pgeon/ folder and move it into the root directory of your project.
  2. Install pgeon's requirements with pip install -r PATH_TO_PGEON_REQUIREMENTS.

Example usage

Generating a Policy Graph

Given a Gymnasium environment and a discretizer, you can generate a PG to describe an opaque agent's behavior with fit().

from pgeon import PolicyGraph

pg = PolicyGraph(environment, discretizer)
pg = pg.fit(agent, num_episodes=1000)

Creating and using a PG-based policy

There exist two PG-based policies. You can select one or the other with PGBasedPolicyMode.

from pgeon import PGBasedPolicy, PGBasedPolicyMode

greedy_policy = PGBasedPolicy(pg, mode=PGBasedPolicyMode.GREEDY)
stochastic_policy = PGBasedPolicy(pg, mode=PGBasedPolicyMode.STOCHASTIC)

# Passing the policy an observation to get an action
obs, _ = environment.reset()
action = greedy_policy.act(obs)

More examples

You can check examples/cartpole/demo.ipynb for a complete breakdown of pgeon's features.

To run the notebook yourself:

  1. Download the entire repository.
  2. Install pgeon's requirements with pip install -r requirements.txt.
  3. Install an extra dependency, rllib, with pip install "ray[rllib]".
  4. Open and execute examples/cartpole/demo.ipynb.

Citation

If you use the pgeon library, please cite:

@inproceedings{tormos2023policy,
  title={Policy graphs in action: explaining single-and multi-agent behaviour using predicates},
  author={Tormos, Adrian and Abalos, Victor and Gnatyshak, Dmitry and Alvarez-Napagao, Sergio},
  booktitle={XAI in Action: Past, Present, and Future Applications},
  year={2023},
  url={https://openreview.net/forum?id=QPqL9xsYOf}
}

Release files for pgeon-xai 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pgeon-xai 1.0.1
File Size Uploaded
pgeon_xai-1.0.1.tar.gz 3.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pgeon-xai 1.0.1
File Interpreter ABI Platform
pgeon_xai-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.5 MB

Release files / pgeon_xai-1.0.1.tar.gz

Download URL pgeon_xai-1.0.1.tar.gz
Size 3.5 MB
Tags Source
SHA-256 checksum
How to use checksums
7c8d675f0ee264143740a434ea6c0e072ad1b4f607e6fd51f02ceab6442dd3c9
BLAKE2b-256 checksum
How to use checksums
3cbab0b5cd960494d91396fe711bab4b4447b21733526f3ffcaa7849a8be81a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.7

Release files / pgeon_xai-1.0.1-py3-none-any.whl

Download URL pgeon_xai-1.0.1-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3c8bfdb12920ef26a76fa20a622a697b1f393170db851cfafb611b7e27b69a46
BLAKE2b-256 checksum
How to use checksums
e51f7bd9c95163b1edca1fb61ec8d3d3db334daf70ad5e889deb6fa044b682d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.7

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page