package opt;
import shared.Instance;
import dist.Distribution;
/**
* A generic continuous optimization problem
* @author Andrew Guillory gtg008g@mail.gatech.edu
* @version 1.0
*/
public class GenericOptimizationProblem implements OptimizationProblem {
/**
* The evaluation function
*/
private EvaluationFunction eval;
/**
* The intial distribution
*/
private Distribution initial;
/**
* Make a new generic optimization problem
* @param dist the initial distribution
* @param eval the evaluation function
*/
public GenericOptimizationProblem(EvaluationFunction eval, Distribution dist) {
this.initial = dist;
this.eval = eval;
}
/**
* @see opt.OptimizationProblem#value(opt.OptimizationData)
*/
public double value(Instance d) {
return eval.value(d);
}
/**
* @see opt.OptimizationProblem#random()
*/
public Instance random() {
return initial.sample(null);
}
}