de.unihalle.informatik.MiToBo.tracking.multitarget.distributions.impl
Class MultiStateLinTransDistributionIndepGaussians<T extends Copyable<?>>

java.lang.Object
  extended by de.unihalle.informatik.MiToBo.tracking.multitarget.distributions.abstracts.AbstractMultiStateTransitionDistribution<T>
      extended by de.unihalle.informatik.MiToBo.tracking.multitarget.distributions.abstracts.AbstractMultiStateTransitionDistributionIndep<T>
          extended by de.unihalle.informatik.MiToBo.tracking.multitarget.distributions.impl.MultiStateLinTransDistributionIndepGaussians<T>
Type Parameters:
T - class type of the multi-states' discrete variables
All Implemented Interfaces:
ConditionalDistribution<AbstractMultiState<T>>, EvaluatableDistribution<AbstractMultiState<T>>, FirstOrderMoment<AbstractMultiState<T>>, IndependentlyEvaluatableDistribution<AbstractMultiState<T>>, IndependentSamplingDistribution<AbstractMultiState<T>>, SamplingDistribution<AbstractMultiState<T>>, SecondOrderCentralMoment<Jama.Matrix[]>

public class MultiStateLinTransDistributionIndepGaussians<T extends Copyable<?>>
extends AbstractMultiStateTransitionDistributionIndep<T>
implements EvaluatableDistribution<AbstractMultiState<T>>, IndependentlyEvaluatableDistribution<AbstractMultiState<T>>, FirstOrderMoment<AbstractMultiState<T>>, SecondOrderCentralMoment<Jama.Matrix[]>

A simple multi state-transition density, which assumes independence of the single states and multivariate Gaussian process noise. Further, the noise covariance matrices are identical for each state.

Author:
Oliver Gress

Field Summary
protected  Jama.Matrix[] F
          state-transition matrix
protected  GaussianDistribution[] gaussian
          multivariate gaussian density object for evaluation
protected  Jama.Matrix[] Q
          Gaussian process noise covariance matrix
 
Fields inherited from class de.unihalle.informatik.MiToBo.tracking.multitarget.distributions.abstracts.AbstractMultiStateTransitionDistribution
condX, factoryX
 
Constructor Summary
MultiStateLinTransDistributionIndepGaussians(java.util.Random rand, Jama.Matrix[] F, Jama.Matrix[] Q, AbstractMultiState<T> X, AbstractMultiStateFactory<T> factoryX)
           
MultiStateLinTransDistributionIndepGaussians(java.util.Random rand, Jama.Matrix[] F, Jama.Matrix[] Q, MultiStateDistributionIndepGaussians<T> distribX, AbstractMultiStateFactory<T> factoryX)
           
MultiStateLinTransDistributionIndepGaussians(java.util.Random rand, Jama.Matrix F, Jama.Matrix Q, AbstractMultiState<T> X, AbstractMultiStateFactory<T> factoryX)
           
MultiStateLinTransDistributionIndepGaussians(java.util.Random rand, Jama.Matrix F, Jama.Matrix Q, MultiStateDistributionIndepGaussians<T> distribX, AbstractMultiStateFactory<T> factoryX)
           
 
Method Summary
 AbstractMultiState<T> drawSample()
          Generate a new sample from this density.
 AbstractMultiState<T> drawSample(int i, AbstractMultiState<T> X)
          Generate a new sample from this density by drawing only one independent variable for a given realization x.
 Jama.Matrix[] getCovariance()
           
 AbstractMultiState<T> getMean()
           
 Jama.Matrix[] getTransitionMatrices()
           
 double p(AbstractMultiState<T> X)
          Evaluate p(X) at location x.
 double p(AbstractMultiState<T> X, int i)
          Evaluate p_i(X) at x_i
 void setCondition(AbstractMultiState<T> X)
          Set the conditional variable
 
Methods inherited from class de.unihalle.informatik.MiToBo.tracking.multitarget.distributions.abstracts.AbstractMultiStateTransitionDistribution
getCondition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

F

protected Jama.Matrix[] F
state-transition matrix


gaussian

protected GaussianDistribution[] gaussian
multivariate gaussian density object for evaluation


Q

protected Jama.Matrix[] Q
Gaussian process noise covariance matrix

Constructor Detail

MultiStateLinTransDistributionIndepGaussians

public MultiStateLinTransDistributionIndepGaussians(java.util.Random rand,
                                                    Jama.Matrix[] F,
                                                    Jama.Matrix[] Q,
                                                    AbstractMultiState<T> X,
                                                    AbstractMultiStateFactory<T> factoryX)
                                             throws java.lang.IllegalArgumentException
Parameters:
F - state-transition linear transform matrices
Q - Gaussian process noise covariance matrices
X - condition state
factoryX - factory to determine multi-target state layout
Throws:
java.lang.IllegalArgumentException - if any dimensions of the input objects do not match

MultiStateLinTransDistributionIndepGaussians

public MultiStateLinTransDistributionIndepGaussians(java.util.Random rand,
                                                    Jama.Matrix[] F,
                                                    Jama.Matrix[] Q,
                                                    MultiStateDistributionIndepGaussians<T> distribX,
                                                    AbstractMultiStateFactory<T> factoryX)
                                             throws java.lang.IllegalArgumentException
Parameters:
F - state-transition linear transform matrices
Q - Gaussian process noise covariance matrices
X - condition state
factoryX - factory to determine multi-target state layout
Throws:
java.lang.IllegalArgumentException - if any dimensions of the input objects do not match

MultiStateLinTransDistributionIndepGaussians

public MultiStateLinTransDistributionIndepGaussians(java.util.Random rand,
                                                    Jama.Matrix F,
                                                    Jama.Matrix Q,
                                                    AbstractMultiState<T> X,
                                                    AbstractMultiStateFactory<T> factoryX)
                                             throws java.lang.IllegalArgumentException
Parameters:
F - state-transition linear transform matrix
Q - Gaussian process noise covariance matrix
X - condition state
factoryX - factory to determine multi-target state layout
Throws:
java.lang.IllegalArgumentException - if any dimensions of the input objects do not match

MultiStateLinTransDistributionIndepGaussians

public MultiStateLinTransDistributionIndepGaussians(java.util.Random rand,
                                                    Jama.Matrix F,
                                                    Jama.Matrix Q,
                                                    MultiStateDistributionIndepGaussians<T> distribX,
                                                    AbstractMultiStateFactory<T> factoryX)
                                             throws java.lang.IllegalArgumentException
Parameters:
F - state-transition linear transform matrix
Q - Gaussian process noise covariance matrix
X - condition state
factoryX - factory to determine multi-target state layout
Throws:
java.lang.IllegalArgumentException - if any dimensions of the input objects do not match
Method Detail

drawSample

public AbstractMultiState<T> drawSample()
Description copied from interface: SamplingDistribution
Generate a new sample from this density. This method should create a new object.

Specified by:
drawSample in interface SamplingDistribution<AbstractMultiState<T extends Copyable<?>>>
Specified by:
drawSample in class AbstractMultiStateTransitionDistributionIndep<T extends Copyable<?>>
Returns:
new sample object

drawSample

public AbstractMultiState<T> drawSample(int i,
                                        AbstractMultiState<T> X)
Description copied from interface: IndependentSamplingDistribution
Generate a new sample from this density by drawing only one independent variable for a given realization x. This method should create a new object.

Specified by:
drawSample in interface IndependentSamplingDistribution<AbstractMultiState<T extends Copyable<?>>>
Specified by:
drawSample in class AbstractMultiStateTransitionDistributionIndep<T extends Copyable<?>>
Parameters:
i - sample a new realization of the i-th element in x
X - realization of a random vector or finite set
Returns:
new sample object

getCovariance

public Jama.Matrix[] getCovariance()
Specified by:
getCovariance in interface SecondOrderCentralMoment<Jama.Matrix[]>

getMean

public AbstractMultiState<T> getMean()
Specified by:
getMean in interface FirstOrderMoment<AbstractMultiState<T extends Copyable<?>>>

getTransitionMatrices

public Jama.Matrix[] getTransitionMatrices()

p

public double p(AbstractMultiState<T> X)
Description copied from interface: EvaluatableDistribution
Evaluate p(X) at location x. P(X=x)

Specified by:
p in interface EvaluatableDistribution<AbstractMultiState<T extends Copyable<?>>>
Parameters:
X - realization of random variable X
Returns:
value of p(X) at x

p

public double p(AbstractMultiState<T> X,
                int i)
Description copied from interface: IndependentlyEvaluatableDistribution
Evaluate p_i(X) at x_i

Specified by:
p in interface IndependentlyEvaluatableDistribution<AbstractMultiState<T extends Copyable<?>>>
Parameters:
X - realization of random variable X
i - i-th element in x
Returns:
value of p_i(X_i) at x_i

setCondition

public void setCondition(AbstractMultiState<T> X)
Description copied from interface: ConditionalDistribution
Set the conditional variable

Specified by:
setCondition in interface ConditionalDistribution<AbstractMultiState<T extends Copyable<?>>>
Overrides:
setCondition in class AbstractMultiStateTransitionDistribution<T extends Copyable<?>>
Parameters:
X - conditional variable