[Haskell-cafe] Announce: Probablistic programming in Haskell with bali-phy

Benjamin Redelings benjamin.redelings at gmail.com
Tue Jun 13 15:47:18 UTC 2017


Hi,

I'm working on a project to implement support for probabilistic 
programming with models written as Haskell programs.  This is similar to 
Bayesian graphical models (e.g. BUGS, JAGS) and to full probabilistic 
programming systems like Church / Venture.

     http://www.bali-phy.org/models.php

This project is not very mature, but it is used as the core of the MCMC 
software mentioned above, which is relatively mature. Probabilistic 
programs are written using the probability monad.

I've implemented a Haskell interpreter in C++ that records execution 
traces of the Haskell programs.  These execution traces depend on some 
number of (random) variables, and when one of the variables is changed 
(during MCMC), the parts of the execution trace that depend on the 
changed variables are invalidated and recomputed.  This saves work by 
not recomputing the probability of the new state from scratch.  I can 
provide DOT graphs of the execution traces if anyone is interested.

The problem domain I've been focusing on is evolution of DNA sequences 
on binary trees.  You can see some of the code for that problem domain here:

     https://github.com/bredelings/BAli-Phy/blob/master/modules/

The code for the interpreter is here:

https://github.com/bredelings/BAli-Phy/blob/master/src/computation/


-BenRI



More information about the Haskell-Cafe mailing list