Skip to content

Commit

Permalink
fixed bug hat CRASHED runs are capped for solution quality
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronkl committed Mar 16, 2015
1 parent 6a21382 commit 07391cd
Show file tree
Hide file tree
Showing 56 changed files with 40 additions and 87 deletions.
Binary file removed fanova/lib/DomainInter.jar
Binary file not shown.
Binary file removed fanova/lib/Jama-1.0.2.jar
Binary file not shown.
Empty file modified fanova/lib/commons-collections-3.2.1.jar
100644 → 100755
Empty file.
Binary file removed fanova/lib/commons-io-2.1.jar
Binary file not shown.
Empty file modified fanova/lib/commons-math-2.2.jar
100644 → 100755
Empty file.
Empty file modified fanova/lib/commons-math3-3.2.jar
100644 → 100755
Empty file.
Binary file removed fanova/lib/exp4j-0.3.10.jar
Binary file not shown.
Binary file modified fanova/lib/fastrf-src.jar
100644 → 100755
Binary file not shown.
Binary file modified fanova/lib/fastrf.jar
100644 → 100755
Binary file not shown.
Binary file removed fanova/lib/guava-14.0.1.jar
Binary file not shown.
Binary file removed fanova/lib/jcip-annotations-src.jar
Binary file not shown.
Binary file removed fanova/lib/jcip-annotations.jar
Binary file not shown.
Binary file modified fanova/lib/jcommander.jar
100644 → 100755
Binary file not shown.
Binary file removed fanova/lib/logback-access-1.0.13.jar
Binary file not shown.
Binary file removed fanova/lib/logback-classic-1.0.13.jar
Binary file not shown.
Binary file removed fanova/lib/logback-core-1.0.13.jar
Binary file not shown.
Empty file modified fanova/lib/numerics4j-1.3.jar
100644 → 100755
Empty file.
Empty file modified fanova/lib/opencsv-2.3.jar
100644 → 100755
Empty file.
Empty file modified fanova/lib/slf4j-api-1.7.5.jar
100644 → 100755
Empty file.
Binary file removed fanova/lib/spi-0.2.4.jar
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package net.aclib.fanova;
package net.aeatk.fanova;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Vector;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -28,12 +26,12 @@
import ca.ubc.cs.beta.aeatk.state.StateFactory;
import ca.ubc.cs.beta.aeatk.state.StateFactoryOptions;
import ca.ubc.cs.beta.aeatk.state.legacy.LegacyStateFactory;
import ca.ubc.cs.beta.models.fastrf.RandomForest;
import net.aclib.fanova.model.FunctionalANOVARunner;
import net.aclib.fanova.model.FunctionalANOVAModelBuilder;
import net.aclib.fanova.model.FunctionalANOVAVarianceDecompose;
import net.aclib.fanova.options.FAnovaOptions;
import net.aclib.fanova.options.FAnovaOptions.Improvements;

import net.aeatk.fanova.model.FunctionalANOVAModelBuilder;
import net.aeatk.fanova.model.FunctionalANOVARunner;
import net.aeatk.fanova.model.FunctionalANOVAVarianceDecompose;
import net.aeatk.fanova.options.FAnovaOptions;
import net.aeatk.fanova.options.FAnovaOptions.Improvements;

public class FAnovaExecutor {
private static Logger log;
Expand All @@ -47,7 +45,6 @@ public static void main(String[] args) {
try {
FAnovaOptions fanovaOpts = new FAnovaOptions();
JCommander jcom;
;

//Manhandle the options to support --restoreScenario
args = StateFactoryOptions.processScenarioStateRestore(args);
Expand Down Expand Up @@ -109,78 +106,26 @@ public static void main(String[] args) {
}
rh = subsampledRH;
}

// ReadCVS obj = new ReadCVS();
// obj.run();
//
// FunctionalANOVAModelBuilderFromCSV famb = new FunctionalANOVAModelBuilderFromCSV();
// famb.learnModel(obj.getX(), obj.getY(), fanovaOpts.rfOptions, pool);

FunctionalANOVAModelBuilder famb = new FunctionalANOVAModelBuilder();
famb.learnModel(instances, rh, configSpace, fanovaOpts.rfOptions, fanovaOpts.mbOptions, scenarioOptions, true, pool);
//RandomForest rf = famb.


//=== Handle fANOVA options.
boolean compareToDef = fanovaOpts.compare.equals(Improvements.DEFAULT) ? true : false;
double quantile = fanovaOpts.compare.equals(Improvements.QUANTILE) ? fanovaOpts.quantileToCompare : -1;


/*
* Old code loading forest from a file.
//String prefix = "/ubc/cs/home/h/hutter/orcinus/home/hutter/experiments/surrogates/otherData/";
//String surrogateZipFilename = prefix + name;
//PrintWriter writer = null;
// extension = "_1tree_" + extension;
//QuickZip surrogateZip = new QuickZip(surrogateZipFilename);
//ParamConfigurationSpace configSpace = (ParamConfigurationSpace) surrogateZip.getObject(ZipFileName.CONFIG_SPACE_FILE);
//LinkedHashSet<ParamConfiguration> paramList = (LinkedHashSet<ParamConfiguration>) surrogateZip.getObject(ZipFileName.PARAMS_OBJECTS);
//for (ParamConfiguration paramConfiguration : paramList) {
// paramConfiguration.toValueArray();
//}
//=== Get the number of instance features.
Iterator iterator = instanceList.iterator();
ProblemInstance problemInstance = (ProblemInstance) iterator.next();
int numFeatures = problemInstance.getFeaturesDouble().length;
//=== Get the features X and preprocess the random forest with them.
double[][] X = new double[instanceList.size()][numFeatures];
int count = 0;
for (ProblemInstance instance: instanceList){
X[count++] = instance.getFeaturesDouble();
}
forest = RandomForest.preprocessForest(forest, X);
*
*/

if(fanovaOpts.mode.equals("ipc")) {
FunctionalANOVAVarianceDecompose favd = new FunctionalANOVAVarianceDecompose(famb.getRandomForest(), rh.getAlgorithmRunsExcludingRedundant(), configSpace,pool.getRandom("FANOVA_BUILDER"), compareToDef, quantile, fanovaOpts.rfOptions.logModel);

FanovaRemote remote = new FanovaRemote(favd, new IPCMechanism("localhost", fanovaOpts.port), configSpace);
remote.run();
} else {
//run command line version of fanova
//=== Run command line version of fanova
FunctionalANOVARunner.decomposeVariance(famb.getRandomForest(), rh.getAlgorithmRunsExcludingRedundant(), configSpace,pool.getRandom("FANOVA_BUILDER"), compareToDef, quantile, fanovaOpts.computePairwiseInteration, outputDir,fanovaOpts.rfOptions.logModel, fanovaOpts.plotMarginals);
}


// List<AlgorithmRun> algorithmRuns = new ArrayList<AlgorithmRun>();
// List<String> names = new ArrayList<String>();
// names.add("X0");
// names.add("X1");
//
// RandomForest rf = famb.getRandomForest();
// double[][] X = new double[1][0];
// rf = RandomForest.preprocessForest(rf, X);
//
//FunctionalANOVARunnerFromCSV.decomposeVariance(rf, names, pool.getRandom("FANOVA_BUILDER"), false, 0, fanovaOpts.computePairwiseInteration, outputDir,fanovaOpts.rfOptions.logModel, fanovaOpts.plotMarginals);

} finally {
if(pool != null) {
pool.logUsage();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
package net.aclib.fanova;
package net.aeatk.fanova;

import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import java.util.Vector;


import ca.ubc.cs.beta.aeatk.parameterconfigurationspace.NormalizedRange;
import ca.ubc.cs.beta.aeatk.parameterconfigurationspace.ParameterConfigurationSpace;
import net.aclib.fanova.model.FunctionalANOVAVarianceDecompose;
import net.aeatk.fanova.model.FunctionalANOVAVarianceDecompose;

public class FanovaRemote {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova;
package net.aeatk.fanova;

import java.io.BufferedReader;
import java.io.IOException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova.eval;
package net.aeatk.fanova.eval;

import java.util.HashSet;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova.model;
package net.aeatk.fanova.model;

import java.util.ArrayList;
import java.util.LinkedHashSet;
Expand Down Expand Up @@ -145,11 +145,21 @@ public void learnModel(List<ProblemInstance> instances, RunHistory runHistory, P
for(int j=0; j < runResponseValues.length; j++)
{ //=== Not sure if I Should be penalizing runs prior to the model
// but matlab sure does
if(runResponseValues[j] >= scenarioOptions.algoExecOptions.cutoffTime)
{
runResponseValues[j] = scenarioOptions.algoExecOptions.cutoffTime * scenarioOptions.intraInstanceObj.getPenaltyFactor();

switch(scenarioOptions.getRunObjective())
{
case RUNTIME:
if(runResponseValues[j] >= scenarioOptions.algoExecOptions.cutoffTime)
{
runResponseValues[j] = scenarioOptions.algoExecOptions.cutoffTime * scenarioOptions.getIntraInstanceObjective().getPenaltyFactor();
}
break;
case QUALITY:

break;
default:
throw new IllegalArgumentException("Not sure what objective this is: " + scenarioOptions.getRunObjective());
}

}

//=== Sanitize the data.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova.model;
package net.aeatk.fanova.model;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
Expand All @@ -16,7 +16,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.aclib.fanova.eval.ModelEvaluation;
import net.aeatk.fanova.eval.ModelEvaluation;
import ca.ubc.cs.beta.aeatk.algorithmrunresult.AlgorithmRunResult;
import ca.ubc.cs.beta.aeatk.parameterconfigurationspace.NormalizedRange;
import ca.ubc.cs.beta.aeatk.parameterconfigurationspace.ParameterConfiguration;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova.model;
package net.aeatk.fanova.model;

import java.io.IOException;
import java.text.DecimalFormat;
Expand All @@ -13,7 +13,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.aclib.fanova.eval.ModelEvaluation;
import net.aeatk.fanova.eval.ModelEvaluation;
import ca.ubc.cs.beta.aeatk.algorithmrunresult.AlgorithmRunResult;
import ca.ubc.cs.beta.aeatk.parameterconfigurationspace.ParameterConfigurationSpace;
import ca.ubc.cs.beta.models.fastrf.RandomForest;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova.model;
package net.aeatk.fanova.model;

import java.util.ArrayList;
import java.util.HashMap;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova.options;
package net.aeatk.fanova.options;

import ca.ubc.cs.beta.aeatk.misc.options.NoArgumentHandler;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package net.aclib.fanova.options;
package net.aeatk.fanova.options;

import java.io.File;
import java.util.Collection;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package net.aclib.fanova.version;
package net.aeatk.fanova.version;

import org.mangosdk.spi.ProviderFor;
//import org.mangosdk.spi.ProviderFor;

import ca.ubc.cs.beta.aeatk.misc.version.AbstractVersionInfo;
import ca.ubc.cs.beta.aeatk.misc.version.VersionInfo;

@ProviderFor(VersionInfo.class)
//@ProviderFor(VersionInfo.class)
public class FAnovaVersionInfo extends AbstractVersionInfo {

public FAnovaVersionInfo()
Expand Down
2 changes: 1 addition & 1 deletion pyfanova/fanova.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ def _start_fanova(self):
self._heap_size,
"-cp",
":".join(self._fanova_classpath()),
"net.aclib.fanova.FAnovaExecutor",
"net.aeatk.fanova.FAnovaExecutor",
"--restoreScenario", self._scenario_dir,
"--seed", str(self._seed),
"--rf-num-trees", str(self._num_trees),
Expand Down
Binary file removed pyfanova/fanova/DomainInter.jar
Binary file not shown.
Binary file removed pyfanova/fanova/Jama-1.0.2.jar
Binary file not shown.
Binary file removed pyfanova/fanova/aclib-src.jar
Binary file not shown.
Binary file removed pyfanova/fanova/aclib.jar
Binary file not shown.
Binary file modified pyfanova/fanova/aeatk.jar
100644 → 100755
Binary file not shown.
Empty file modified pyfanova/fanova/commons-collections-3.2.1.jar
100644 → 100755
Empty file.
Binary file removed pyfanova/fanova/commons-io-2.1.jar
Binary file not shown.
Empty file modified pyfanova/fanova/commons-math-2.2.jar
100644 → 100755
Empty file.
Empty file modified pyfanova/fanova/commons-math3-3.2.jar
100644 → 100755
Empty file.
Binary file removed pyfanova/fanova/exp4j-0.3.10.jar
Binary file not shown.
Binary file modified pyfanova/fanova/fanova.jar
Binary file not shown.
Binary file modified pyfanova/fanova/fastrf-src.jar
100644 → 100755
Binary file not shown.
Binary file modified pyfanova/fanova/fastrf.jar
100644 → 100755
Binary file not shown.
Binary file removed pyfanova/fanova/guava-14.0.1.jar
Binary file not shown.
Binary file removed pyfanova/fanova/jcip-annotations-src.jar
Binary file not shown.
Binary file removed pyfanova/fanova/jcip-annotations.jar
Binary file not shown.
Binary file modified pyfanova/fanova/jcommander.jar
100644 → 100755
Binary file not shown.
Binary file removed pyfanova/fanova/logback-access-1.0.13.jar
Binary file not shown.
Binary file removed pyfanova/fanova/logback-classic-1.0.13.jar
Binary file not shown.
Binary file removed pyfanova/fanova/logback-core-1.0.13.jar
Binary file not shown.
Empty file modified pyfanova/fanova/numerics4j-1.3.jar
100644 → 100755
Empty file.
Empty file modified pyfanova/fanova/opencsv-2.3.jar
100644 → 100755
Empty file.
Empty file modified pyfanova/fanova/slf4j-api-1.7.5.jar
100644 → 100755
Empty file.
Binary file removed pyfanova/fanova/spi-0.2.4.jar
Binary file not shown.

0 comments on commit 07391cd

Please sign in to comment.