/* Copyright (C) 2002 Univ. of Massachusetts Amherst, Computer Science Dept.
This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
http://www.cs.umass.edu/~mccallum/mallet
This software is provided under the terms of the Common Public License,
version 1.0, as published by http://www.opensource.org. For further
information, see the file `LICENSE' included with this distribution. */
/**
@author Andrew McCallum <a href="mailto:mccallum@cs.umass.edu">mccallum@cs.umass.edu</a>
*/
package cc.mallet.optimize;
public interface Optimizer
{
// Returns true if it has converged
// TODO change this to "optimize"
public boolean optimize ();
public boolean optimize (int numIterations);
public boolean isConverged();
public Optimizable getOptimizable();
@Deprecated // Figure out the right interface for this. It is odd that 'sampleAssignments' reaches into InstanceList indices
public interface ByBatches {
public boolean optimize (int numSamples, int[] sampleAssigments);
public boolean optimize (int numIterations, int numSamples, int[] sampleAssignments);
}
// Rest below is deprecated
/*
public interface ByValue {
// Returns true if it has converged
public boolean maximize (Optimizable.ByValue maxable);
public boolean maximize (Optimizable.ByValue maxable, int numIterations);
}
public interface ByGradient {
// Returns true if it has converged
public boolean maximize (Optimizable.ByValue maxable);
public boolean maximize (Optimizable.ByValue maxable, int numIterations);
}
public interface ByValueGradient {
// Returns true if it has converged
public boolean maximize (Optimizable.ByGradientValue maxable);
public boolean maximize (Optimizable.ByGradientValue maxable, int numIterations);
}
public interface ByHessian {
// Returns true if it has converged
public boolean maximize (Optimizable.ByHessian minable);
public boolean maximize (Optimizable.ByHessian minable, int numIterations);
}
public interface ByGISUpdate {
// Returns true if it has converged
public boolean maximize (Optimizable.ByGISUpdate maxable);
public boolean maximize (Optimizable.ByGISUpdate maxable, int numIterations);
}
public interface ByBatchGradient {
// Returns true if it has converged
public boolean maximize (Optimizable.ByBatchGradient maxable, int numSamples, int[] sampleAssigments);
public boolean maximize (Optimizable.ByBatchGradient maxable, int numIterations, int numSamples, int[] sampleAssignments);
}
*/
}