From 8d5f2464a1ff8cba24fb42272b476633fb279671 Mon Sep 17 00:00:00 2001 From: Naveen Sundar Govindarajulu Date: Sun, 22 Jan 2017 09:33:10 -0800 Subject: [PATCH] Checking if an action is non-trivial --- pom.xml | 6 ++++-- src/main/java/edu/rpi/rair/Action.java | 6 ++++++ src/main/java/edu/rpi/rair/DepthFirstPlanner.java | 6 +++--- src/main/java/edu/rpi/rair/utils/RunDemo.java | 4 ++-- src/main/resources/edu/rpi/rair/goal_management_3.clj | 2 +- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index ebdc119..d54d1be 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,8 @@ - - + + 1.8 + 1.8 + \ No newline at end of file diff --git a/src/main/java/edu/rpi/rair/Action.java b/src/main/java/edu/rpi/rair/Action.java index ae8bf03..8cc567a 100644 --- a/src/main/java/edu/rpi/rair/Action.java +++ b/src/main/java/edu/rpi/rair/Action.java @@ -140,6 +140,12 @@ public class Action { } + public boolean isNonTrivial(){ + + boolean case1Trivial = Sets.subset(additions, preconditions) && deletions.isEmpty(); + + return !case1Trivial; + } @Override public String toString() { return shorthand.getArguments().length == 0? name: shorthand.toString(); diff --git a/src/main/java/edu/rpi/rair/DepthFirstPlanner.java b/src/main/java/edu/rpi/rair/DepthFirstPlanner.java index 74a81d0..81d39ec 100644 --- a/src/main/java/edu/rpi/rair/DepthFirstPlanner.java +++ b/src/main/java/edu/rpi/rair/DepthFirstPlanner.java @@ -15,8 +15,8 @@ import java.util.stream.Collectors; public class DepthFirstPlanner implements Planner { - private static int MAX_DEPTH = 4; - private static boolean EXHAUSTIVE_TILL_MAX_DEPTH = true; + private static int MAX_DEPTH = 3; + private static boolean EXHAUSTIVE_TILL_MAX_DEPTH = false; public static int getMaxDepth() { return MAX_DEPTH; @@ -77,7 +77,7 @@ public class DepthFirstPlanner implements Planner { Set allPlans = Sets.newSet(); boolean atleastOnePlanFound = false; - for (Action action : actions) { + for (Action action : actions.stream().filter(Action::isNonTrivial).collect(Collectors.toSet())) { Optional>> nextStateActionPairs = Operations.apply(background, action, start); diff --git a/src/main/java/edu/rpi/rair/utils/RunDemo.java b/src/main/java/edu/rpi/rair/utils/RunDemo.java index 488cdb8..6aca9a0 100644 --- a/src/main/java/edu/rpi/rair/utils/RunDemo.java +++ b/src/main/java/edu/rpi/rair/utils/RunDemo.java @@ -1,5 +1,4 @@ package edu.rpi.rair.utils; - import com.diogonunes.jcdp.color.ColoredPrinter; import com.diogonunes.jcdp.color.api.Ansi; import com.naveensundarg.shadow.prover.Sandbox; @@ -12,6 +11,7 @@ import edu.rpi.rair.Goal; import edu.rpi.rair.GoalTracker; import edu.rpi.rair.Plan; import edu.rpi.rair.Planner; +import edu.rpi.rair.utils.GoalTrackingProblem; import java.util.List; import java.util.Optional; @@ -39,7 +39,7 @@ public class RunDemo { }); planningProblemWarmUp(); - System.out.println("WARM UP DONE"); + System.out.println("\nWARM UP DONE"); } catch (Reader.ParsingException e) { e.printStackTrace(); } diff --git a/src/main/resources/edu/rpi/rair/goal_management_3.clj b/src/main/resources/edu/rpi/rair/goal_management_3.clj index 9ce5db8..576ec29 100644 --- a/src/main/resources/edu/rpi/rair/goal_management_3.clj +++ b/src/main/resources/edu/rpi/rair/goal_management_3.clj @@ -35,7 +35,7 @@ (in ?person ?room2) (open (door ?room2))] :additions [(in ?person ?room1)] - :deletions [(in ?person ?room1)] + :deletions [(in ?person ?room2)] }) (define-action keepDoorClosed [?actor ?room] {:preconditions [(robot ?actor)