CTPPL: A Continuous Time Probabilistic Programming Language
Source: Harvard University
Probabilistic programming languages are an exciting development in probabilistic knowledge representation. They allow a modeler to build probabilistic models using complex data structures with all the power of a programming language. Most probabilistic programming languages that have been developed are static, but ProPL and D-BLOG extend such languages to dynamic models but at the price of using discrete time.This paper presents the concept of CTPPL (pronounced "Cat People"), an expressive probabilistic programming language for dynamic processes that models processes using continuous time. CTPPL is similar to ProPL, but is different in four main ways: values in CTPPL are discrete or continuous; time is continuous; probability and time are first class elements of the language; and inference is conducted by sampling trajectories through a state space, rather than constructing a giant dynamic Bayesian network. Time is a first class element in the language as the amount of time taken by a subprocess can be specified using the full power of the language. Evident examples demonstrate that CTPPL can easily represent existing continuous time frameworks and makes it easy to represent new ones. The semantics for CTPPL in terms of a probability measure over trajectories and a particle filtering algorithm for the language that works for a large and useful class of CTPPL programs are also presented.