This commit is contained in:
Naveen Sundar Govindarajulu 2018-03-15 00:25:49 -07:00
parent e6cfb3e654
commit fc1cbfb5ab
50 changed files with 377 additions and 155 deletions

View file

@ -1,4 +1,4 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.shadow.prover.core.Logic;
import com.naveensundarg.shadow.prover.representations.formula.And;
@ -32,7 +32,7 @@ public class Action {
private final Compound shorthand;
private Action(String name, Set<Formula> preconditions, Set<Formula> additions, Set<Formula> deletions, List<Variable> freeVariables) {
public Action(String name, Set<Formula> preconditions, Set<Formula> additions, Set<Formula> deletions, List<Variable> freeVariables) {
this.name = name;
this.preconditions = preconditions;
@ -58,7 +58,7 @@ public class Action {
this.trivial = computeTrivialOrNot();
}
private Action(String name, Set<Formula> preconditions, Set<Formula> additions,
public Action(String name, Set<Formula> preconditions, Set<Formula> additions,
Set<Formula> deletions, List<Variable> freeVariables,
Compound shorthand
) {

View file

@ -0,0 +1,23 @@
package com.naveensundarg.planner;
import java.util.List;
public class Context {
private final List<PlanMethod> planMethods;
private final boolean workFromScratch;
public Context(List<PlanMethod> planMethods, boolean workFromScratch) {
this.planMethods = planMethods;
this.workFromScratch = workFromScratch;
}
public List<PlanMethod> getPlanMethods() {
return planMethods;
}
public boolean isWorkFromScratch() {
return workFromScratch;
}
}

View file

@ -1,9 +1,8 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.planner.utils.PlanningProblem;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import edu.rpi.rair.utils.PlanningProblem;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@ -19,7 +18,22 @@ public class ContextNormPlanner implements Planner {
@Override
public Optional<Set<Plan>> plan(PlanningProblem problem, Set<Formula> background, Set<Action> actions, State start, State goal) {
List<Plan> methods = problem.getPlanMethods();
Optional<Context> contextOpt = problem.getContextOpt();
if(contextOpt.isPresent()){
depthFirstPlanner.setWORK_FROM_SCRATCH(contextOpt.get().isWorkFromScratch());
return depthFirstPlanner.plan(problem, background, actions, start, goal);
} else{
return depthFirstPlanner.plan(problem, background, actions, start, goal);
}
}

View file

@ -1,13 +1,13 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.planner.utils.Commons;
import com.naveensundarg.planner.utils.PlanningProblem;
import com.naveensundarg.planner.utils.Visualizer;
import com.naveensundarg.shadow.prover.core.proof.Justification;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Pair;
import com.naveensundarg.shadow.prover.utils.Sets;
import edu.rpi.rair.utils.Commons;
import edu.rpi.rair.utils.PlanningProblem;
import edu.rpi.rair.utils.Visualizer;
import java.util.*;
import java.util.function.Function;
@ -22,7 +22,21 @@ public class DepthFirstPlanner implements Planner {
private static int MAX_DEPTH = 5;
private static boolean EXHAUSTIVE_TILL_MAX_DEPTH = true;
private static boolean USE_METHODS = true;
private boolean USE_METHODS, WORK_FROM_SCRATCH;
public DepthFirstPlanner(){
USE_METHODS = true;
WORK_FROM_SCRATCH = true;
}
public boolean isWORK_FROM_SCRATCH() {
return WORK_FROM_SCRATCH;
}
public void setWORK_FROM_SCRATCH(boolean WORK_FROM_SCRATCH) {
this.WORK_FROM_SCRATCH = WORK_FROM_SCRATCH;
}
public static int getMaxDepth() {
return MAX_DEPTH;
@ -79,6 +93,10 @@ public class DepthFirstPlanner implements Planner {
}
}
if(!WORK_FROM_SCRATCH){
return Optional.empty();
}
if (!EXHAUSTIVE_TILL_MAX_DEPTH) {

View file

@ -1,4 +1,4 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import java.util.concurrent.atomic.AtomicInteger;

View file

@ -1,13 +1,11 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.planner.utils.PlanningProblem;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Pair;
import com.naveensundarg.shadow.prover.utils.Sets;
import edu.rpi.rair.utils.PlanningProblem;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.Set;

View file

@ -1,7 +1,6 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import edu.rpi.rair.Plan;
import edu.rpi.rair.utils.PlanningProblem;
import com.naveensundarg.planner.utils.PlanningProblem;
/**
* Created by naveensundarg on 12/19/17.

View file

@ -1,5 +1,6 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.planner.utils.Visualizer;
import com.naveensundarg.shadow.prover.core.Prover;
import com.naveensundarg.shadow.prover.core.SnarkWrapper;
import com.naveensundarg.shadow.prover.core.proof.Justification;
@ -13,7 +14,6 @@ import com.naveensundarg.shadow.prover.utils.ImmutablePair;
import com.naveensundarg.shadow.prover.utils.Pair;
import com.naveensundarg.shadow.prover.utils.Sets;
import edu.rpi.rair.utils.Visualizer;
import org.apache.commons.lang3.tuple.Triple;
import java.util.List;
@ -23,8 +23,6 @@ import java.util.Set;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static edu.rpi.rair.State.FALSE;
/**
* Created by naveensundarg on 1/13/17.
*/
@ -314,7 +312,7 @@ public class Operations {
public static boolean conflicts(Set<Formula> background, State state1, State state2) {
return proveCached(Sets.union(background, Sets.union(state1.getFormulae(), state2.getFormulae())), FALSE).isPresent();
return proveCached(Sets.union(background, Sets.union(state1.getFormulae(), state2.getFormulae())), State.FALSE).isPresent();
}

View file

@ -1,8 +1,8 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.planner.utils.Visualizer;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import edu.rpi.rair.utils.Visualizer;
import java.util.List;
import java.util.Set;

View file

@ -1,5 +1,6 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.planner.utils.PlanningProblem;
import com.naveensundarg.shadow.prover.representations.formula.And;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.representations.value.Compound;
@ -8,16 +9,8 @@ import com.naveensundarg.shadow.prover.representations.value.Variable;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Reader;
import com.naveensundarg.shadow.prover.utils.Sets;
import edu.rpi.rair.utils.PlanningProblem;
import us.bpsm.edn.Keyword;
import us.bpsm.edn.Symbol;
import us.bpsm.edn.parser.Parseable;
import us.bpsm.edn.parser.Parser;
import us.bpsm.edn.parser.Parsers;
import java.io.StringReader;
import java.util.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
/**

View file

@ -1,8 +1,7 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Sets;
import java.util.List;
import java.util.Set;

View file

@ -1,9 +1,8 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.planner.utils.PlanningProblem;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import edu.rpi.rair.utils.PlanningProblem;
import java.util.List;
import java.util.Optional;
import java.util.Set;

View file

@ -1,15 +1,12 @@
package edu.rpi.rair;
package com.naveensundarg.planner;
import com.naveensundarg.shadow.prover.core.Prover;
import com.naveensundarg.shadow.prover.core.SnarkWrapper;
import com.naveensundarg.shadow.prover.representations.formula.And;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Reader;
import com.naveensundarg.shadow.prover.utils.Sets;
import java.util.Set;
import java.util.stream.Collectors;
/**
* Created by naveensundarg on 1/13/17.

View file

@ -1,14 +1,13 @@
package edu.rpi.rair.inducers;
package com.naveensundarg.planner.inducers;
import com.naveensundarg.planner.*;
import com.naveensundarg.planner.utils.Commons;
import com.naveensundarg.planner.utils.PlanningProblem;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.representations.value.Compound;
import com.naveensundarg.shadow.prover.representations.value.Value;
import com.naveensundarg.shadow.prover.representations.value.Variable;
import com.naveensundarg.shadow.prover.utils.Pair;
import com.naveensundarg.shadow.prover.utils.Sets;
import edu.rpi.rair.*;
import edu.rpi.rair.utils.Commons;
import edu.rpi.rair.utils.PlanningProblem;
import java.util.*;
import java.util.function.Function;

View file

@ -1,23 +1,17 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import clojure.lang.Obj;
import com.diogonunes.jcdp.color.ColoredPrinter;
import com.diogonunes.jcdp.color.api.Ansi;
import com.naveensundarg.shadow.prover.representations.formula.And;
import com.naveensundarg.shadow.prover.representations.formula.Existential;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.representations.formula.Universal;
import com.naveensundarg.shadow.prover.representations.value.Value;
import com.naveensundarg.shadow.prover.representations.value.Variable;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Sets;
import edu.rpi.rair.State;
import us.bpsm.edn.parser.Parseable;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -75,8 +69,12 @@ public class Commons {
return combinedMap;
}
static ColoredPrinter cp = new ColoredPrinter.Builder(1, false).build();
public static<U, V, W> Object runAndTime(BiFunction<U, V, W> function, U u, V v, String message){
cp.setAttribute(Ansi.Attribute.BOLD);
long start, end;
start = System.currentTimeMillis();
@ -86,8 +84,18 @@ public class Commons {
end = System.currentTimeMillis();
System.out.println("Timing for: " + message + (end - start)/1000 + " s");
cp.println("Timing for: " + message + (end - start)/1000 + " s");
if(w!=null){
cp.println(w);
} else {
cp.setForegroundColor(Ansi.FColor.RED);
cp.println("COULD NOT PLAN");
}
cp.clear();
return w;
}

View file

@ -1,4 +1,4 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import com.diogonunes.jcdp.color.ColoredPrinter;
import com.diogonunes.jcdp.color.api.AbstractColoredPrinter;

View file

@ -1,23 +1,22 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Reader;
import edu.rpi.rair.Goal;
import edu.rpi.rair.PlanMethod;
import edu.rpi.rair.State;
import com.naveensundarg.planner.Goal;
import com.naveensundarg.planner.PlanMethod;
import com.naveensundarg.planner.State;
import us.bpsm.edn.Keyword;
import us.bpsm.edn.parser.Parseable;
import us.bpsm.edn.parser.Parser;
import us.bpsm.edn.parser.Parsers;
import us.bpsm.edn.parser.Token;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.*;
import static edu.rpi.rair.utils.Reader.readPlanMethodsFrom;
import static com.naveensundarg.planner.utils.Reader.readPlanMethodsFrom;
/**
* Created by naveensundarg on 1/13/17.

View file

@ -0,0 +1,15 @@
package com.naveensundarg.planner.utils;
import com.naveensundarg.planner.Action;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.representations.value.Variable;
import java.util.List;
import java.util.Set;
public class IndefiniteAction extends Action {
private IndefiniteAction(String name, Set<Formula> preconditions, Set<Formula> additions, Set<Formula> deletions, List<Variable> freeVariables) {
super(name, preconditions, additions, deletions, freeVariables);
}
}

View file

@ -1,23 +1,18 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import com.diogonunes.jcdp.color.ColoredPrinter;
import com.diogonunes.jcdp.color.api.Ansi;
import com.google.common.collect.Sets;
import com.naveensundarg.shadow.prover.core.Prover;
import com.naveensundarg.shadow.prover.core.SnarkWrapper;
import com.naveensundarg.planner.DepthFirstPlanner;
import com.naveensundarg.planner.GoalTracker;
import com.naveensundarg.planner.Plan;
import com.naveensundarg.planner.Planner;
import com.naveensundarg.shadow.prover.utils.Reader;
import edu.rpi.rair.*;
import edu.rpi.rair.inducers.SimpleInducer;
import org.apache.commons.lang3.tuple.Triple;
import org.apache.commons.lang3.tuple.Triple;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* Created by naveensundarg on 1/15/17.
@ -37,7 +32,7 @@ public class LearningSystem {
RunDemo.planningProblemWarmUp();
Visualizer.setShouldVisualize(false);
Visualizer.setShouldVisualize(true);
List<GoalTrackingProblem> goalTrackingProblemList1 = (GoalTrackingProblem.readFromFiles(Sandbox.class.getResourceAsStream("../problems/seriated/seriated_challenge_1.clj"),
Sandbox.class.getResourceAsStream("../problems/seriated/methods.clj")));
@ -69,10 +64,25 @@ public class LearningSystem {
// Plan plan1 = goalTracker1.adoptGoal(goalTrackingProblem1.getGoalNamed("G1")).get();
//Plan plan2 = goalTracker2.adoptGoal(goalTrackingProblem2.getGoalNamed("G1")).get();
BiFunction<GoalTracker, GoalTrackingProblem, Plan> run = (goalTracker, goalTrackingProblem) -> goalTracker.adoptGoal(goalTrackingProblem.getGoalNamed("G1")).get();
BiFunction<GoalTracker, GoalTrackingProblem, Plan> run = (goalTracker, goalTrackingProblem) -> {
Optional<Plan> planOptional = goalTracker.adoptGoal(goalTrackingProblem.getGoalNamed("G1"));
System.out.println(Commons.runAndTime(run, goalTracker1, goalTrackingProblem1, "Problem 1"));
System.out.println(Commons.runAndTime(run, goalTracker2, goalTrackingProblem2, "Problem 2"));
if(planOptional.isPresent()){
return planOptional.get();
}
else {
System.out.println("Could not find a plan");
return null;
}
};
// Object plan1 = (Commons.runAndTime(run, goalTracker1, goalTrackingProblem1, "Problem 1"));
Object plan2 = (Commons.runAndTime(run, goalTracker2, goalTrackingProblem2, "Problem 2"));
Visualizer.unspool(10);
}

View file

@ -1,16 +1,15 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import clojure.lang.Obj;
import com.naveensundarg.planner.Context;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.representations.value.Compound;
import com.naveensundarg.shadow.prover.representations.value.Value;
import com.naveensundarg.shadow.prover.representations.value.Variable;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import com.naveensundarg.shadow.prover.utils.Reader;
import com.naveensundarg.shadow.prover.utils.Sets;
import edu.rpi.rair.Action;
import edu.rpi.rair.PlanMethod;
import edu.rpi.rair.State;
import com.naveensundarg.planner.Action;
import com.naveensundarg.planner.PlanMethod;
import com.naveensundarg.planner.State;
import us.bpsm.edn.Keyword;
import us.bpsm.edn.Symbol;
import us.bpsm.edn.parser.Parseable;
@ -21,10 +20,11 @@ import us.bpsm.edn.parser.Token;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.security.Key;
import java.util.*;
import java.util.stream.Collectors;
import static com.naveensundarg.planner.utils.Reader.readPlanMethodFrom;
/**
* Created by naveensundarg on 1/13/17.
*/
@ -41,6 +41,13 @@ public class PlanningProblem {
private Set<Value> avoidIfPossible;
private final List<PlanMethod> planMethods;
private final Optional<Context> contextOpt;
private static final Keyword CONTEXT = Keyword.newKeyword("context");
private static final Keyword WORK_FROM_SCRATCH = Keyword.newKeyword("work-from-scratch");
private static final Keyword PLAN_METHODS = Keyword.newKeyword("plan-methods");
private static final Keyword BACKGROUND = Keyword.newKeyword("background");
private static final Keyword START = Keyword.newKeyword("start");
private static final Keyword GOAL = Keyword.newKeyword("goal");
@ -67,6 +74,22 @@ public class PlanningProblem {
this.avoidIfPossible = avoidIfPossible;
this.planMethods = CollectionUtils.newEmptyList();
this.expectedActionSequencesOpt = Optional.empty();
this.contextOpt = Optional.empty();
}
private PlanningProblem(Optional<Context> contextOpt, String name, Set<Formula> background, State start, State goal, Set<Action> actions, Set<Value> avoidIfPossible) {
this.background = background;
this.start = start;
this.actions = actions;
this.goal = goal;
this.name = name;
this.actionMap = CollectionUtils.newMap();
this.avoidIfPossible = avoidIfPossible;
this.planMethods = CollectionUtils.newEmptyList();
this.expectedActionSequencesOpt = Optional.empty();
this.contextOpt = contextOpt;
}
@ -82,6 +105,31 @@ public class PlanningProblem {
this.planMethods = CollectionUtils.newEmptyList();
this.expectedActionSequencesOpt = Optional.of(expectedActionSequences);
this.contextOpt = Optional.empty();
}
public static List<PlanningProblem> readFromString(String input) throws Reader.ParsingException {
Parseable parseable = Parsers.newParseable(new StringReader(input));
Parser parser = Parsers.newParser(Parsers.defaultConfiguration());
List<PlanningProblem> planningProblems = CollectionUtils.newEmptyList();
Object nextValue = parser.nextValue(parseable);
while (!nextValue.equals(Token.END_OF_INPUT)) {
planningProblems.add(readFromObject(nextValue));
nextValue = parser.nextValue(parseable);
}
return planningProblems;
}
public static List<PlanningProblem> readFromFile(InputStream inputStream) throws Reader.ParsingException {
@ -118,7 +166,9 @@ public class PlanningProblem {
List<?> actionDefinitions = (List<?>) planningProblemSpec.get(ACTION);
System.out.println(planningProblemSpec.get(NAME));
String name = planningProblemSpec.get(NAME).toString();
Set<Action> actions = readActionsFrom(actionDefinitions);
Map<String, Action> actionMap = CollectionUtils.newMap();
@ -126,6 +176,25 @@ public class PlanningProblem {
actionMap.put(action.getName(), action);
});
Optional<Context> contextOpt = Optional.empty();
if(planningProblemSpec.containsKey(CONTEXT)){
Map<?, ?> contextSpec = (Map<?, ?>) planningProblemSpec.get(CONTEXT);
boolean workFromScratch = contextSpec.get(WORK_FROM_SCRATCH).toString().equals("true");
List<?> planMethodSpecs = (List<?> )contextSpec.get(PLAN_METHODS);
List<PlanMethod> planMethods = CollectionUtils.newEmptyList();
if(planMethodSpecs!=null){
for(Object planMethodSpec: (List<?>) planMethodSpecs){
planMethods.add(readPlanMethodFrom((List<?>) planMethodSpec));
}
}
contextOpt = Optional.of(new Context(planMethods, workFromScratch));
}
if(planningProblemSpec.containsKey(EXPECTED_PLANS)){
List<?> plans = (List<?>) planningProblemSpec.get(EXPECTED_PLANS);
@ -150,11 +219,12 @@ public class PlanningProblem {
}).collect(Collectors.toSet());
return new PlanningProblem(name, background, State.initializeWith(start),
State.initializeWith(goal), actions, avoidIfPossible, expectedActions);
} else {
return new PlanningProblem(name, background, State.initializeWith(start),
return new PlanningProblem(contextOpt, name, background, State.initializeWith(start),
State.initializeWith(goal),actions, avoidIfPossible);
}
}
@ -343,6 +413,9 @@ public class PlanningProblem {
return avoidIfPossible;
}
public Optional<Context> getContextOpt() {
return contextOpt;
}
public List<PlanMethod> getPlanMethods() {
return planMethods;

View file

@ -1,4 +1,4 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import com.naveensundarg.shadow.prover.representations.formula.Formula;

View file

@ -1,10 +1,10 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import com.naveensundarg.shadow.prover.representations.formula.Formula;
import com.naveensundarg.shadow.prover.representations.value.Compound;
import com.naveensundarg.shadow.prover.representations.value.Variable;
import com.naveensundarg.shadow.prover.utils.CollectionUtils;
import edu.rpi.rair.PlanMethod;
import com.naveensundarg.planner.PlanMethod;
import us.bpsm.edn.Keyword;
import us.bpsm.edn.Symbol;
import us.bpsm.edn.parser.Parseable;
@ -17,7 +17,6 @@ import java.io.StringReader;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
public class Reader {

View file

@ -1,25 +1,21 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import com.diogonunes.jcdp.color.ColoredPrinter;
import com.diogonunes.jcdp.color.api.Ansi;
import com.google.common.collect.Sets;
import com.naveensundarg.shadow.prover.core.Prover;
import com.naveensundarg.planner.Goal;
import com.naveensundarg.planner.GoalTracker;
import com.naveensundarg.planner.Inducer;
import com.naveensundarg.planner.Plan;
import com.naveensundarg.shadow.prover.core.Prover;
import com.naveensundarg.shadow.prover.core.SnarkWrapper;
import com.naveensundarg.shadow.prover.utils.Problem;
import com.naveensundarg.shadow.prover.utils.ProblemReader;
import com.naveensundarg.shadow.prover.utils.Reader;
import edu.rpi.rair.*;
import edu.rpi.rair.inducers.SimpleInducer;
import edu.rpi.rair.utils.GoalTrackingProblem;
import com.naveensundarg.planner.inducers.SimpleInducer;
import org.apache.commons.lang3.tuple.Triple;
import javax.swing.*;
import java.awt.*;
import java.lang.reflect.Method;
import java.util.*;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.stream.Collectors;
/**
@ -61,7 +57,7 @@ public class RunDemo {
Visualizer.setShouldVisualize(false);
runProblem("../problems/seriated/seriated_challenge_1.clj");
runProblem("../problems/heroism/setup.clj");
// runProblem("seriated_challenge_2.clj");
@ -80,9 +76,11 @@ public class RunDemo {
long start = System.currentTimeMillis();
Goal g1 = goalTrackingProblem.getGoalNamed("G1");
Goal g2 = goalTrackingProblem.getGoalNamed("G2");
tryAndAddGoal(g1, goalTracker);
tryAndAddGoal(g1, goalTracker);
tryAndAddGoal(g2, goalTracker);
long end = System.currentTimeMillis();

View file

@ -1,7 +1,6 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import edu.rpi.rair.PlanMethod;
import edu.rpi.rair.Planner;
import com.naveensundarg.planner.PlanMethod;
import java.util.List;

View file

@ -1,4 +1,4 @@
package edu.rpi.rair.utils;
package com.naveensundarg.planner.utils;
import com.diogonunes.jcdp.color.ColoredPrinter;
import com.diogonunes.jcdp.color.api.Ansi;