Skip to content

w-bamberger/CPProb

Repository files navigation

CPProb – Algorithms for Probabilistic Reasoning

Introduction

CPProb is a library for C++ and Python to perform probabilistic reasoning tasks. At the moment, it offers

  • exact Bayesian inference and Bayesian parameter learning;

  • approximate Bayesian inference using Gibbs sampling;

  • non-parametric models with Dirichlet processes; and

  • subjective logic, a probabilistic logic based on the Dempster-Shafer belief theory.

We are open for any other algorithm or technique (like fuzzy sets and logic). Feel free to complement the library with the algorithms you need (see Extending the Library below).

CPProb wants to support you, first, in using these algorithms in your own application. Probabilistic reasoning already left research towards real applications. Second, it helps you to develop new algorithms and compare them with the state of the art. Within the library, probabilistic models are described independently from the algorithm you run on the model. So it is easy to add a new algorithm and compare it with existing ones. Third, CPProb eases to learn and understand the implemented algorithms. Its well documented code helps to bridge the gap between the mathematical concepts described in common text books and actual implementations.

Features

CPProb offers the following features:

  • You can configure one probablistic model and run several algorithms on it.

  • It is continuously benchmarked, profiled (with OProfile) and memory checked (with Valgrind’s Memcheck and Ptrcheck). So it is supposed to be fast and stable.

  • The classes and algorithms should be easy to use.

Installation

Build the Library

  1. Set up the Boost libraries for your compiler. To build the library, you only need header libraries. So you need not compile the Boost library.

  2. Clone the git repository

  3. Create a new build directory (e.g. build-lib).

  4. Run CMake. Maybe you need to set the variable BOOST_ROOT.

  5. Compile the library with your tool chain.

    The process has three main targets.

    cpprob_static

    Builds a static library

    cpprob_shared

    Builds a shared library

    INSTALL

    Depends on both targets above. It installs both libraries in your system.

    In Visual Studio, only the targets cpprob_static and INSTALL are available. They are projects within the CPProb solution.

Build the Tests

With the tests, you can check, whether the library works. But they are not needed to make your own programs with CPProb.

  1. Compile the Boost library. This time, you need the binary libraries program_options and unit_test_framework.

  2. Create a new build directory (e.g. build-test)

  3. Run CMake. Maybe you need to set the variable BOOST_ROOT.

  4. Compile the program with your tool chain.

About

Probabilistic reasoning with C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published