Cedar.Gdl General Distributive Law Java Library
Keywords
Abstract Java Library, Distributive Law, Junction Tree, Belief
Propagation, Contraint Satisfaction
Synopsis
The Generalized
Distributive Law (GDL) formulation and algorithm were proposed in
2000 by Srinivas Aji and Robert McEliece. The GDL is a parametric
expression-evaluation optimization method that may be instantiated on
any specific commutative semiring structure. It can be used to express
various algorithms that have been independently designed in domains such
as Information Theory, Digital Communications, Statistics, Artificial
Intelligence, etc., … We describe the design and
implementation of an abstract Java class library for the GDL carried out
as part of the CEDAR project. This library is a generic API meant to be
instantiated with specific computation structures. It provides a
runnable specification of the GDL in terms of abstract operations of a
commutative semiring—i.e., a set with an addition
(+) and a multiplication (×), the latter distributing over
the former. This allows the generic efficient evaluation of expressions
using a dynamic-programming two-way message-passing algorithm on an
arborescent structure called a Junction Tree. We used our library to
regenerate as running instances two algorithms described by Aji and
McEliece:
the Fast-Hadamard
Transform (FHT) algorithm on any finite Abelian group,
and Judea
Pearl's Belief-Propagation Bayesian reasoner. We also used it to
generate a new instance
for Constraint
Satisfaction.
Software
Technical References
-
CEDAR Technical Report Number 9
Title: The Cedar.Gdl Java Library for the Generalized Distributive Law—Design and Implementation
Authors: Kevin Sancho, Hassan-Aït Kaci
Date: July 2014
PDF:
CEDAR Technical Report Number 10
Title: Cedar.Gdl Java Library User Manual
Author: Kevin Sancho
Date: July 2014
PDF: