Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.


PyNFG is unavailable in PyPM, because there aren't any builds for it in the package repositories. Click the linked icons to find out why.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)

PyNFG is a Python package for modeling and solving Network Form Games. It is distributed under the GNU Affero GPL. http://www.gnu.org/licenses/agpl.html

1. Welcome

PyNFG is designed to make it easy for researchers to model strategic environments using the Network Form Game (NFG) formalism developed by David Wolpert with contributions from Ritchie Lee, James Bono and others. The main idea of the NFG framework is to translate a strategic environment into the language of probabilistic graphical models. The result is a more intuitive, powerful, and user-friendly framework than the extensive form.

For an introduction to the semi-NFG framework and Level-K D-Relaxed Strategies:

  • Lee, R. and Wolpert, D.H., “Game-Theoretic Modeling of Human Behavior in Mid-Air Collisions”, Decision-Making with Imperfect Decision Makers, T. Guy, M. Karny and D.H.Wolpert (Ed.’s), Springer (2011).

For an introduction to iterated semi-NFG framework and Level-K Reinforcement Learning:

  • Ritchie Lee, David H. Wolpert, James Bono, Scott Backhaus, Russell Bent, Brendan Tracey. "Counter-Factual Reinforcement Learning: How to Model Decision-Makers That Anticipate The Future." http://arxiv.org/abs/1207.0852
  • Scott Backhaus, Russell Bent, James Bono, Ritchie Lee, Brendan Tracey, David Wolpert, Dongping Xie, Yildiray Yildiz "Cyber-Physical Security: A Game Theory Model of Humans Interacting over Control Systems." http://arxiv.org/abs/1304.3996

For an introduction to Predictive Game Theory:

2. Installation

PyNFG requires the following packages: Numpy, Scipy, Matplotlib, Networkx, and PyGraphviz. Pygraphviz and Networkx are used only for visualizing the Directed Acyclic Graphs (DAGs) that represent semi-NFGs.

To install from source: Download the source from https://pypi.python.org/pypi/PyNFG/0.1.0. Unzip. Then from the directory with the unzipped files, do "python setup.py install".

3. Questions and Comments

The documentation is hosted at http://pythonhosted.org/PyNFG/.

Please contact James Bono for questions about using PyNFG in your research, reporting bug fixes, offering suggestions, etc.

4. Contributors

PyNFG is authored by James Bono, Justin Grana, and Dongping Xie. The project has received valuable feedback from David Wolpert, Adrian Agogino, Juan Alonso, Brendan Tracey, Alice Fan, Dominic McConnachie, Kee Palopo, Huu Huynh, and others.

Subscribe to package updates

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.