Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Arak::ArakProcess Class Reference

#include <arak.hpp>

Inheritance diagram for Arak::ArakProcess:

Inheritance graph
[legend]
Collaboration diagram for Arak::ArakProcess:

Collaboration graph
[legend]
List of all members.

Detailed Description

An Arak process.

This is a probability distribution over binary colorings of the plane whose discontinuities are line segments.

It consists of two parts. The first part is a fundamental measure

\[ \lambda(d\gamma) = p^{n_i + n_b/2} \prod_{e \in E} |e|^{-1} \prod_{v \in V(\gamma)} \sin(\phi_v) \nu(d\gamma) \]

where $\gamma$ is a graph, $n_i$ is the number of vertices in the interior, $n_b$ is the number of vertices on the boundary, $|e|$ is the length of edge $e$, $\phi_v$ is the smaller angle between the edges incident to vertex $v$ (or if $v$ is on the boundary, the smaller angle between the only edge incident to $v$ and the tangent to the boundary), and $\nu(d\gamma)$ is the Poisson measure of unit intensity associated with the vertices of the graph $\gamma$.

The second part is a potential $F(\chi)$ over the coloring such that the probability measure is given by

\[ Q(\chi) \propto \exp \{ F(\chi) \} \lambda(d\gamma(\chi)) \]

The Arak prior sets this potential to be

\[ F(\chi) = 2p \sum_{e \in E} |e| \]

but posteriors typically include in this potential terms that depend upon the observed data. So long as the potential is additively decomposable the Arak process has the spatial Markov property.

Definition at line 51 of file arak.hpp.

Public Member Functions

 ArakProcess (const Coloring &c)
 Default constructor.

virtual ~ArakProcess ()
 Destructor.

const ColoringgetColoring () const
 Returns a const reference to the coloring whose probability is assessed by this process.

virtual double scale () const=0
 Returns the scale of this Arak process.

virtual double logMeasure () const=0
 Computes the (log) measure associated with the Arak process for the coloring.

virtual double potential () const=0
 Computes the potential associated with the Arak process.

double logLikelihood (double temp=1.0) const
 Returns the log likelihood of the supplied coloring.

double logLikelihood (Coloring &c, double temp=1.0) const
 Returns the log likelihood of the supplied coloring.

virtual void visualize (CGAL::Qt_widget &widget) const
 Renders a graphical representation of an Arak process using the supplied widget.


Protected Attributes

const Coloringc
 The coloring whose probability is evaluated.


Constructor & Destructor Documentation

Arak::ArakProcess::ArakProcess const Coloring c  )  [inline]
 

Default constructor.

Parameters:
c The coloring whose probability is evaluated. This is fixed for each process object so that likelihood changes due to coloring updates can be processed efficiently.

Definition at line 72 of file arak.hpp.

virtual Arak::ArakProcess::~ArakProcess  )  [inline, virtual]
 

Destructor.

Definition at line 77 of file arak.hpp.


Member Function Documentation

const Coloring& Arak::ArakProcess::getColoring  )  const [inline]
 

Returns a const reference to the coloring whose probability is assessed by this process.

Definition at line 83 of file arak.hpp.

References c.

Referenced by Arak::ArakPosteriorRangeObs::ArakPosteriorRangeObs(), and Arak::ArakPosteriorSonarObs::ArakPosteriorSonarObs().

double Arak::ArakProcess::logLikelihood Coloring c,
double  temp = 1.0
const [inline]
 

Returns the log likelihood of the supplied coloring.

Parameters:
c the coloring whose likelihood is evaluated; this must be the same coloring supplied to the constructor
temp the temperature (if the likelihood is to be annealed)
Returns:
the log likelihood of the coloring

Definition at line 131 of file arak.hpp.

References logLikelihood().

double Arak::ArakProcess::logLikelihood double  temp = 1.0  )  const [inline]
 

Returns the log likelihood of the supplied coloring.

Parameters:
temp the temperature (if the likelihood is to be annealed)
Returns:
the log likelihood of the coloring

Definition at line 119 of file arak.hpp.

References logMeasure(), and potential().

Referenced by logLikelihood().

virtual double Arak::ArakProcess::logMeasure  )  const [pure virtual]
 

Computes the (log) measure associated with the Arak process for the coloring.

(This is actually multiplied by an elementary Poisson measure over the vertex locations to yield the coloring measure.)

Returns:
the measure of the coloring

Implemented in Arak::ArakPrior, Arak::ArakPosteriorGaussianObs, Arak::ArakPosteriorBernoulliObs, Arak::ArakPosteriorRangeObs, and Arak::ArakPosteriorSonarObs.

Referenced by logLikelihood(), Arak::ArakPosteriorSonarObs::logMeasure(), Arak::ArakPosteriorRangeObs::logMeasure(), Arak::ArakPosteriorBernoulliObs::logMeasure(), and Arak::ArakPosteriorGaussianObs::logMeasure().

virtual double Arak::ArakProcess::potential  )  const [pure virtual]
 

Computes the potential associated with the Arak process.

This implementation evaluates to the prior potential. Posterior Arak processes add to this prior potential terms that depend upon the observed data. If the posterior potential is additively decomposable then the posterior Arak process has the spatial Markov property.

Returns:
the potential of the coloring
See also:
ArakProcess

Implemented in Arak::ArakPrior, Arak::ArakPosteriorGaussianObs, Arak::ArakPosteriorBernoulliObs, Arak::ArakPosteriorRangeObs, and Arak::ArakPosteriorSonarObs.

Referenced by logLikelihood(), Arak::ArakPosteriorSonarObs::potential(), Arak::ArakPosteriorRangeObs::potential(), Arak::ArakPosteriorBernoulliObs::potential(), and Arak::ArakPosteriorGaussianObs::potential().

virtual double Arak::ArakProcess::scale  )  const [pure virtual]
 

Returns the scale of this Arak process.

Implemented in Arak::ArakPrior, Arak::ArakPosteriorGaussianObs, Arak::ArakPosteriorBernoulliObs, Arak::ArakPosteriorRangeObs, and Arak::ArakPosteriorSonarObs.

Referenced by Arak::ArakPosteriorSonarObs::scale(), Arak::ArakPosteriorRangeObs::scale(), Arak::ArakPosteriorBernoulliObs::scale(), and Arak::ArakPosteriorGaussianObs::scale().

virtual void Arak::ArakProcess::visualize CGAL::Qt_widget &  widget  )  const [inline, virtual]
 

Renders a graphical representation of an Arak process using the supplied widget.

This base implementation does nothing, but derived instances that represent posteriors can specialize this method to visualize their observations.

Parameters:
widget the widget on which to visualize the process

Reimplemented in Arak::ArakPrior, Arak::ArakPosteriorGaussianObs, Arak::ArakPosteriorBernoulliObs, Arak::ArakPosteriorRangeObs, and Arak::ArakPosteriorSonarObs.

Definition at line 144 of file arak.hpp.

Referenced by Arak::ColoringQTLayer::draw(), and Arak::operator<<().


Member Data Documentation

const Coloring& Arak::ArakProcess::c [protected]
 

The coloring whose probability is evaluated.

This is fixed for each process object so that likelihood changes due to coloring updates can be processed efficiently.

Definition at line 60 of file arak.hpp.

Referenced by getColoring().


The documentation for this class was generated from the following file:
Generated on Wed May 25 14:40:16 2005 for Arak by doxygen 1.3.6