org.opt4j.core.common.logger
Class TsvLogger

java.lang.Object
  extended by org.opt4j.core.common.logger.AbstractLogger
      extended by org.opt4j.core.common.logger.TsvLogger
All Implemented Interfaces:
Logger, IndividualStateListener, OptimizerIterationListener, OptimizerStateListener

public class TsvLogger
extends AbstractLogger
implements Logger

The TsvLogger writes all Individuals from the Archive to the specified file. It can be configured to write the data each iterationStep iterations or each evaluationStep evaluations. The file format is TSV (tab separated values), according to the Definition of tab-separated-values (tsv) by IANA. An infeasible Objective is printed as INFEASIBLE.

See Also:
Objective

Field Summary
protected  Archive archive
           
 
Fields inherited from class org.opt4j.core.common.logger.AbstractLogger
evaluationCount, evaluationCountLast, evaluationStep, isFirst, iterationStep
 
Constructor Summary
TsvLogger(Archive archive, java.lang.String filename, int evaluationStep, int iterationStep)
          Creates an TsvLogger.
 
Method Summary
protected  java.lang.String getColumnDelimiter()
          The String separating two columns.
protected  java.lang.String getCommentDelimiter()
          The String starting a line comment.
protected  java.lang.String getIndividual(Individual individual)
          Creates a String representation of the given Individual.
protected  java.lang.String getStatistics(int iteration, int evaluation, double time)
          Statistics for the given iteration and evaluation.
protected  java.io.PrintWriter initWriter(java.lang.String filename)
          Initialize the print write from a filename
 void logEvent(int iteration, int evaluation)
          Callback method called if the specific number of iterations or evaluations is reached.
 void logHeader(java.util.Collection<Objective> objectives)
          Writes the header.
 void optimizationStarted()
          Callback method invoked once the optimization starts.
 void optimizationStopped()
          Callback method invoked once the optimization stops.
 
Methods inherited from class org.opt4j.core.common.logger.AbstractLogger
inidividualStateChanged, iterationComplete, optimizationStarted, optimizationStopped
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

archive

protected final Archive archive
Constructor Detail

TsvLogger

@Inject
public TsvLogger(Archive archive,
                        java.lang.String filename,
                        int evaluationStep,
                        int iterationStep)
Creates an TsvLogger.

Parameters:
archive - the archive
filename - the filename (using namespace TsvLogger)
evaluationStep - the number of evaluations between two logging events (using namespace TsvLogger)
iterationStep - the number of iterations between two logging events (using namespace TsvLogger)
Method Detail

initWriter

protected java.io.PrintWriter initWriter(java.lang.String filename)
Initialize the print write from a filename

Parameters:
filename - the filename
Returns:
the print writer

optimizationStarted

public void optimizationStarted()
Description copied from class: AbstractLogger
Callback method invoked once the optimization starts.

Specified by:
optimizationStarted in class AbstractLogger

logEvent

public void logEvent(int iteration,
                     int evaluation)
Description copied from class: AbstractLogger
Callback method called if the specific number of iterations or evaluations is reached.

Specified by:
logEvent in class AbstractLogger
Parameters:
iteration - the current iteration number
evaluation - the current evaluation number

optimizationStopped

public void optimizationStopped()
Description copied from class: AbstractLogger
Callback method invoked once the optimization stops.

Specified by:
optimizationStopped in class AbstractLogger

logHeader

public void logHeader(java.util.Collection<Objective> objectives)
Description copied from class: AbstractLogger
Writes the header.

Specified by:
logHeader in class AbstractLogger
Parameters:
objectives - a collection of objectives

getColumnDelimiter

protected java.lang.String getColumnDelimiter()
The String separating two columns. The tab character ("\t") is the default, which leads to a tab separated values file format (TSV).

Returns:
the delimiter

getIndividual

protected java.lang.String getIndividual(Individual individual)
Creates a String representation of the given Individual. Per default, the Values of all Objectives of the individual, separated by getColumnDelimiter(), are returned. The String representation of a Value must not contain the tab character. If one of the values of the Objectives is INFEASIBLE, null is returned.

Parameters:
individual - the individual
Returns:
the corresponding string or null
See Also:
Objective

getStatistics

protected java.lang.String getStatistics(int iteration,
                                         int evaluation,
                                         double time)
Statistics for the given iteration and evaluation. Per default, the iteration, the number of evaluations and the optimization run time in milliseconds, separated by getColumnDelimiter(), are returned.

Parameters:
iteration - the current iteration
evaluation - the current number of evaluations
time - the current runtime of the optimization
Returns:
the corresponding string

getCommentDelimiter

protected java.lang.String getCommentDelimiter()
The String starting a line comment. Default is the empty String ("") according to the TSV specification.

Returns:
the comment delimiter