The following software is all available under an open source license.
A new statistical classifier based on logical circuits that performs as well as deep neural networks on simple image classification tasks. Its parameter learning is convex optimization and a simple local search can induce strong structure from data.Source
An inference engine for graphical models and other discrete structures. It works by sampling many reasonably sized circuits and using each to perform inference.Source
An implementation of robust trimming of Bayesian Network classifiers. It searches for a smaller subset of features while maintaining the classifier behavior.Source
A system for enforcing logical constraints during the learning procedure of a deep neural network. Uses circuits to evaluate and differentiate the extent to which a logical constraint is being followed by neural net outputs.Source
A Postgres-based implementation of query evaluation for open-world probabilistic databasesSource
ALICE is an Eclipse plugin for code search that uses active learning and inductive logic programming (ILP) to identify the properties and structure of those code blocks that the user would like to retrieve.Source
LearnPSDD is a discrete density estimation algorithm. It learns a tractable probabilistic circuit (a PSDD) from data and achieves state-of-the-art likelihoods on many standard datasets.Source
Forclift is a prototype implementation of algorithms for first-order knowledge compilation, lifted probabilistic inference (exact and approximate), and lifted parameter and structure learning. It supports various input formals, including Markov logic and weighted model counting problems.Source
Direct & Factored Deletion
Prototype implementation of direct and factored deletion algorithms to learn Bayesian network parameters from incomplete data under the MCAR and MAR assumptions. These algorithms are consistent, yet they only require a single pass over the data, and no inference in the Bayesian network.Source
PokerDemo is a classroom demo (in Dutch) to teach programming, expert, and multi-agent systems to high school students . It contains a visual programming tool that lets students create a rule-based poker player. Student can compete on the server with their friends and an artificial agent. (code)Source
Daisy Diff is a Java library that diffs (compares) HTML files. It highlights added and removed words and annotates changes to the styling. This project was a Google Summer of Code 2007 project for DaisyCMS. A PHP version of the algorithm was developed for MediaWiki/Wikipedia in the Google Summer of Code 2008. Various content management systems use DaisyDiff for comparing HTML changes.Source
A Java wrapper for the SDD librarySource
Please consider using the following datasets.
Density Estimation Datasets
A repository of standard datasets for discrete density estimation.Source
The following are some rough prototypes.
CSPoker is a framework for developing and testing artificial poker agents. It contains the Monte-Carlo tree search players that I developed in my M.S. thesis. Parts of the CSPoker code has branched into the Pokersource and OpenTestBed projects. CSPoker was used by Sun Microsystems to demo JMX and Java FX Script during the JavaOne 2008 conference.Source
Experimental implementation of decision diagrams (OBDDs, SDDs, PSDDs) in ScalaSource
A simple Prolog implementation in ScalaSource
A MCTS backgammon playerSource