Optimizers
Interface Optimizer

All Known Implementing Classes:
GoldenSection, NelderMead

public interface Optimizer

Interface for different likelihood optimizers

Version:
1.0

Nested Class Summary
static class Optimizer.OptimizerException
          Exception for when there is a problem with an optimiser.
 
Method Summary
 Likelihood maximise(Calculator l, Parameters p)
          Maximises the likelihood, logging to screen.
 Likelihood maximise(Calculator l, Parameters params, java.io.File log)
          Maximises the likelihood, logging to a file.
 Likelihood restart(Calculator l, java.io.File checkPoint)
          Maximises the likelihood starting from a checkpoint file (see setCheckPointFile(java.io.File), logging to the screen.
 Likelihood restart(Calculator l, java.io.File checkPoint, java.io.File log)
          Maximises the likelihood starting from a checkpoint file (see setCheckPointFile(java.io.File), logging to a file.
 void setCheckPointFile(java.io.File checkPoint)
          Sets a checkpoint file.
 void setCheckPointFrequency(int num, java.util.concurrent.TimeUnit unit)
          Sets how often a checkpoint is saved (if a file has been set).
 

Method Detail

maximise

Likelihood maximise(Calculator l,
                    Parameters p)
                    throws RateCategory.RateException,
                           Model.ModelException,
                           TreeException,
                           Parameters.ParameterException,
                           OutputException
Maximises the likelihood, logging to screen. Logging level sould be set in the constructor of implementing classes.

Parameters:
l - The likelihood calculator
p - The parameters to maximise. Parameters are modified.
Returns:
The maximised likelihood (in a structure that includes most intermediate likelihoods).
Throws:
RateCategory.RateException - Thrown if there is an issue with a rate category in the model (e.g. a badly formatted rate).
Model.ModelException - Thrown if there is a problem with the model (e.g. the rate categories differ in their states)
TreeException - Thrown if there is a problem with the tree.
Parameters.ParameterException - Thrown if there is a problem with the parameters (e.g. a requied parameter is not present)
OutputException - Thrown if unable to write a checkpoint file

maximise

Likelihood maximise(Calculator l,
                    Parameters params,
                    java.io.File log)
                    throws RateCategory.RateException,
                           Model.ModelException,
                           TreeException,
                           Parameters.ParameterException,
                           Parameters.ParameterException,
                           OutputException
Maximises the likelihood, logging to a file. Logging level sould be set in the constructor of implementing classes.

Parameters:
l - The likelihood calculator
params - The parameters to maximise. Parameters are modified.
log - The log file
Returns:
The maximised likelihood (in a structure that includes most intermediate likelihoods).
Throws:
RateCategory.RateException - Thrown if there is an issue with a rate category in the model (e.g. a badly formatted rate).
Model.ModelException - Thrown if there is a problem with the model (e.g. the rate categories differ in their states)
TreeException - Thrown if there is a problem with the tree.
Parameters.ParameterException - Thrown if there is a problem with the parameters (e.g. a requied parameter is not present)
OutputException - Thrown if unable to write a checkpoint file

restart

Likelihood restart(Calculator l,
                   java.io.File checkPoint)
                   throws RateCategory.RateException,
                          Model.ModelException,
                          TreeException,
                          Parameters.ParameterException,
                          Parameters.ParameterException,
                          InputException,
                          OutputException,
                          Optimizer.OptimizerException
Maximises the likelihood starting from a checkpoint file (see setCheckPointFile(java.io.File), logging to the screen. Logging level sould be set in the constructor of implementing classes.

Parameters:
l - The likelihood calculator
checkPoint - The checkpoint file
Returns:
The maximised likelihood (in a structure that includes most intermediate likelihoods).
Throws:
RateCategory.RateException - Thrown if there is an issue with a rate category in the model (e.g. a badly formatted rate).
Model.ModelException - Thrown if there is a problem with the model (e.g. the rate categories differ in their states)
TreeException - Thrown if there is a problem with the tree.
Parameters.ParameterException - Thrown if there is a problem with the parameters (e.g. a requied parameter is not present)
OutputException - Thrown if unable to write a checkpoint file
InputException - Thrown if there is a problem with the checkpoint file
Optimizer.OptimizerException - Thrown if optomizer is unable to restart from a checkpoint file

restart

Likelihood restart(Calculator l,
                   java.io.File checkPoint,
                   java.io.File log)
                   throws RateCategory.RateException,
                          Model.ModelException,
                          TreeException,
                          Parameters.ParameterException,
                          Parameters.ParameterException,
                          InputException,
                          OutputException,
                          Optimizer.OptimizerException
Maximises the likelihood starting from a checkpoint file (see setCheckPointFile(java.io.File), logging to a file. Logging level sould be set in the constructor of implementing classes.

Parameters:
l - The likelihood calculator
checkPoint - The checkpoint file
log - The log file
Returns:
The maximised likelihood (in a structure that includes most intermediate likelihoods).
Throws:
RateCategory.RateException - Thrown if there is an issue with a rate category in the model (e.g. a badly formatted rate).
Model.ModelException - Thrown if there is a problem with the model (e.g. the rate categories differ in their states)
TreeException - Thrown if there is a problem with the tree.
Parameters.ParameterException - Thrown if there is a problem with the parameters (e.g. a requied parameter is not present)
OutputException - Thrown if unable to write a checkpoint file
InputException - Thrown if there is a problem with the checkpoint file
Optimizer.OptimizerException - Thrown if optomizer is unable to restart from a checkpoint file

setCheckPointFile

void setCheckPointFile(java.io.File checkPoint)
                       throws Optimizer.OptimizerException
Sets a checkpoint file. If set will write a checkpoint file of the optimizers state at regular intervals (set by setCheckPointFrequency(int, java.util.concurrent.TimeUnit)). This checkpoint file can then be used to restart the optimizer from this state. Can be useful if optimization is likely to take a long and the process could be stopped for some reason.

Parameters:
checkPoint - The chekpoint file.
Throws:
Optimizer.OptimizerException - Thrown if the optomizer does not implement checkpoints.

setCheckPointFrequency

void setCheckPointFrequency(int num,
                            java.util.concurrent.TimeUnit unit)
                            throws Optimizer.OptimizerException
Sets how often a checkpoint is saved (if a file has been set).

Parameters:
num - The number of time units that should pass between checkpoint writes.
unit - The time unit
Throws:
Optimizer.OptimizerException - Thrown if the optomizer does not implement checkpoints.