Package main

Source Code of main.Experiment

/*
*  Copyright (c) 2010 Mathew Hall.
*  All rights reserved.
*
*  Redistribution and use in source and binary forms, with or
*  without modification, are permitted provided that the following conditions
*  are met:
*
*  Redistributions of source code must retain the above copyright
*  notice, this list of conditions and the following disclaimer.
*  Redistributions in binary form must reproduce the above
*  copyright notice, this list of conditions and the following
*  disclaimer in the documentation and/or other materials provided
*  with the distribution.
*  Neither the name of the University of Sheffield nor the names of its
*  contributors may be used to endorse or promote products derived
*  from this software without specific prior written permission.
*
*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
*  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
*  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
*  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
*  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
*  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
*  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
*  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
*  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package main;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectOutputStream;

import search.util.SearchResult;
import translator.DOTWriter;
import translator.SILWriter;

/**
*
* @author Mathew Hall
*/
public class Experiment {

    private File inputname, siloutpath, dotoutpath, fitnessoutpath, clusteroutpath, evaluationoutpath;
    private String fitnessFunction;
    private String geneType;
    private String experimentName;
    private String searchType;

  private int fitnessBudget;

    public String getSearchType() {
        return searchType;
    }

    public void setSearchType(String searchType) {
        this.searchType = searchType;
    }
   
    public void setExperimentName(String n){
        experimentName = n;
   
    public String getExperimentName(){
        return experimentName;
    }

    public void setGeneType(String gt){
        geneType = gt;
    }

    public String getGeneType(){
        return geneType;
    }

    private int numThreads = 1;

    public int getNumThreads() {
        return numThreads;
    }

    public void setNumThreads(int numThreads) {
        this.numThreads = numThreads;
    }
    Experiment(File input, String fitness, int numThreads) {
        this(input,fitness);
        this.numThreads = numThreads;
    }

  public int getFitnessBudget(){
    return fitnessBudget;
  }

  public void setFitnessBudget(int fb){
    fitnessBudget = fb;
  }

    public int getChromesize() {
        return chromesize;
    }

    public File getClusteroutpath() {
        return clusteroutpath;
    }

    public File getDotoutpath() {
        return dotoutpath;
    }

    public String getFitnessFunction() {
        return fitnessFunction;
    }

    public File getFitnessoutpath() {
        return fitnessoutpath;
    }

    public File getEvaluationoutpath() {
        return evaluationoutpath;
    }


    public File getInputname() {
        return inputname;
    }

    public int getNumgens() {
        return numgens;
    }

    public void setChromesize(int chromesize) {
        this.chromesize = chromesize;
    }

    public void setClusteroutpath(File clusteroutpath) {
        this.clusteroutpath = clusteroutpath;
    }

    public void setDotoutpath(File dotoutpath) {
        this.dotoutpath = dotoutpath;
    }

    public void setFitnessoutpath(File fitnessoutpath) {
        this.fitnessoutpath = fitnessoutpath;
    }


    public void setEvaluationoutputpath(File evaluationoutpath) {
        this.evaluationoutpath = evaluationoutpath;
    }
   

    public void setNumgens(int numgens) {
        this.numgens = numgens;
    }

    public void setPopsize(int popsize) {
        this.popsize = popsize;
    }

    public void setSiloutpath(File siloutpath) {
        this.siloutpath = siloutpath;
    }

    public int getPopsize() {
        return popsize;
    }

    public SearchResult getResults() {
        return results;
    }

    public File getSiloutpath() {
        return siloutpath;
    }
    private int popsize, chromesize, numgens;
    private SearchResult results;

    public void setResult(SearchResult r) {
        results = r;
    }

    public Experiment(File inputname, String fitnessFunction, File siloutpath, File dotoutpath, File fitnessoutpath, File clusteroutpath) {
        this.inputname = inputname;
        this.siloutpath = siloutpath;
        this.dotoutpath = dotoutpath;
        this.fitnessoutpath = fitnessoutpath;
        this.clusteroutpath = clusteroutpath;
        this.fitnessFunction = fitnessFunction;
    }

    public Experiment(File inputname, String fitnessFunction, File siloutpath, File dotoutpath, File fitnessoutpath, File clusteroutpath, int popsize, int chromesize, int numgens) {
        this.inputname = inputname;
        this.siloutpath = siloutpath;
        this.dotoutpath = dotoutpath;
        this.fitnessoutpath = fitnessoutpath;
        this.clusteroutpath = clusteroutpath;
        this.fitnessFunction = fitnessFunction;
        this.popsize = popsize;
        this.chromesize = chromesize;
        this.numgens = numgens;
    }

    public Experiment(File inputname, String fitnessFunction) {
        this.inputname = inputname;
        this.fitnessFunction = fitnessFunction;
    }

    public Experiment(File inputname, String fitnessFunction, File siloutpath, File dotoutpath, File fitnessoutpath) {
        this.inputname = inputname;
        this.siloutpath = siloutpath;
        this.dotoutpath = dotoutpath;
        this.fitnessoutpath = fitnessoutpath;
        this.fitnessFunction = fitnessFunction;
    }

    public boolean hasRun() {
        return results == null;
    }

    public void storeAll() throws IOException, ExperimentNotRunException {
        if (results == null) {
            throw new ExperimentNotRunException();
        }
        if (siloutpath != null) {
            if (!siloutpath.exists()) {
                siloutpath.getParentFile().mkdirs();
                siloutpath.createNewFile();
            }
            FileWriter fstream = new FileWriter(siloutpath);
            BufferedWriter out = new BufferedWriter(fstream);
            out.write(SILWriter.getSIL(results.getClustering()));
            out.close();
        }

        if (dotoutpath != null) {
            if (!dotoutpath.exists()) {
                dotoutpath.getParentFile().mkdirs();
                dotoutpath.createNewFile();

            }
            FileWriter fstream = new FileWriter(dotoutpath);
            BufferedWriter out = new BufferedWriter(fstream);
     
     

            out.write(new DOTWriter().getDOT(results.getClustering(),results.getProgram()));
            out.close();
        }
        if (fitnessoutpath != null) {
            if (!fitnessoutpath.exists()) {
                fitnessoutpath.getParentFile().mkdirs();
                fitnessoutpath.createNewFile();

            }
            FileWriter fstream = new FileWriter(fitnessoutpath);
            BufferedWriter out = new BufferedWriter(fstream);
            out.write(Double.toString(results.getFitnessValue()));
            out.close();
        }
        if (clusteroutpath != null) {
            if (!clusteroutpath.exists()) {
                clusteroutpath.getParentFile().mkdirs();
                clusteroutpath.createNewFile();
            }
            FileOutputStream fos = null;
            ObjectOutputStream out = null;
            fos = new FileOutputStream(clusteroutpath);
            out = new ObjectOutputStream(fos);
            out.writeObject(results.getClustering());
            out.close();

        }
        if (evaluationoutpath != null) {
            if (!evaluationoutpath.exists()) {
                evaluationoutpath.getParentFile().mkdirs();
                evaluationoutpath.createNewFile();

            }
            FileWriter fstream = new FileWriter(evaluationoutpath);
            BufferedWriter out = new BufferedWriter(fstream);
            out.write(Integer.toString(results.getFitnessEvaluations()));
            out.close();
        }
    }
}
TOP

Related Classes of main.Experiment

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.