package jcgp.backend.modules.problem; import java.io.File; import jcgp.backend.function.FunctionSet; import jcgp.backend.modules.Module; import jcgp.backend.population.Chromosome; import jcgp.backend.population.Population; import jcgp.backend.resources.ModifiableResources; import jcgp.backend.resources.Resources; public abstract class Problem implements Module { protected FunctionSet functionSet; private String fileExtension = ".*"; private String name = this.getClass().getSimpleName(); public abstract void evaluate(Population population, Resources resources); public FunctionSet getFunctionSet() { return functionSet; } public abstract boolean isPerfectSolution(Chromosome fittest); public abstract void parse(File file, ModifiableResources resources); public void setFileExtension(String fileExtension) { this.fileExtension = fileExtension; } public String getFileExtension() { return fileExtension; } public void setProblemName(String newName) { this.name = newName; } public String getProblemName() { return name; } @Override public String toString() { return name; } }