[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