1 package yawn.envs; 2 3 import org.apache.commons.lang.builder.ToStringBuilder; 4 5 import yawn.config.ValidationException; 6 import yawn.util.InputOutputPattern; 7 import yawn.util.Pattern; 8 9 /*** 10 * Specifies methods that should provide a way to interact with a test 11 * environment. In particular, it allows to read training and test data and to 12 * write predictions. 13 * 14 * <p>$Id: Environment.java,v 1.5 2005/04/20 18:55:16 supermarti Exp $</p> 15 * 16 * @author Luis Martí (luis dot marti at uc3m dot es) 17 * @version $Revision: 1.5 $ 18 */ 19 public abstract class Environment { 20 21 /*** 22 * Returns the number of times the system will be run. Do not mistake the 23 * term "system run" with "epoch" 24 * 25 * @return total number of system runs 26 */ 27 public abstract int getNumberOfSystemRuns(); 28 29 public abstract void setNumberOfSystemRuns(int numberOfRuns); 30 31 /*** 32 * Reads a train file from the environment. 33 * 34 * @param runNumber 35 * the number of the current system run 36 * @return the training set as an array of <code>InputOutputPattern</code> 37 * @throws EnvironmentException 38 */ 39 public abstract InputOutputPattern[] getTrainingDataset(int runNumber) 40 throws EnvironmentException; 41 42 /*** 43 * Reads a test dataset from the environment. The test set is a input-only 44 * file. 45 * 46 * @param runNumber 47 * the number of the current system run 48 * @return Test set 49 * @throws EnvironmentException 50 */ 51 public abstract Pattern[] getTestDatasetInputs(int runNumber) throws EnvironmentException; 52 53 public abstract void writeResults(Pattern[] results, int runNumber) throws EnvironmentException; 54 55 public abstract void validate() throws ValidationException; 56 57 public String toString() { 58 return ToStringBuilder.reflectionToString(this); 59 } 60 61 public abstract int inputSize(); 62 63 public abstract int outputSize(); 64 65 }