bdi4jade

Updated Example project.

5/2/2016 5:03:22 PM

Details

diff --git a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExampleCapability.java b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExampleCapability.java
index f32ac76..4d6db54 100644
--- a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExampleCapability.java
+++ b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExampleCapability.java
@@ -29,9 +29,9 @@ public class ExampleCapability extends LearningBasedCapability {
 			"BELIEF03", 0.0);
 
 	@Plan
-	ExamplePlan plan01 = new ExamplePlan("PLAN01");
+	ExamplePlan01 plan01 = new ExamplePlan01();
 	@Plan
-	ExamplePlan plan02 = new ExamplePlan("PLAN02");
+	ExamplePlan02 plan02 = new ExamplePlan02();
 
 	public ExampleCapability() {
 		init();
@@ -41,37 +41,37 @@ public class ExampleCapability extends LearningBasedCapability {
 
 		Map<Softgoal, PlanMetadataElement> metadata = new HashMap<Softgoal, PlanMetadataElement>();
 
-		PlanMetadataElement planMetadataElement = new PlanMetadataElement(plan01, Softgoals.COST,
+		PlanMetadataElement planMetadataElement = new PlanMetadataElement(plan01, Softgoals.MINCOST,
 				new Outcome01(), OptimizationFunction.MINIMIZE,
 				LinearRegression.class, 50, 100);
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief01));
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief02));
-		metadata.put(Softgoals.COST, planMetadataElement);
+		metadata.put(Softgoals.MINCOST, planMetadataElement);
 
-		planMetadataElement = new PlanMetadataElement(plan01, Softgoals.PERFORMANCE,
+		planMetadataElement = new PlanMetadataElement(plan01, Softgoals.MAXPERFORMANCE,
 				new Outcome02(), OptimizationFunction.MAXIMIZE,
 				MultilayerPerceptron.class, 50, 100);
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief02));
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief03));
-		metadata.put(Softgoals.PERFORMANCE, planMetadataElement);
+		metadata.put(Softgoals.MAXPERFORMANCE, planMetadataElement);
 
 		plan01.putMetadata(PlanMetadataElement.METADATA_NAME, metadata);
 
 		metadata = new HashMap<Softgoal, PlanMetadataElement>();
 
-		planMetadataElement = new PlanMetadataElement(plan02, Softgoals.COST,
+		planMetadataElement = new PlanMetadataElement(plan02, Softgoals.MINCOST,
 				new Outcome01(), OptimizationFunction.MINIMIZE,
 				LinearRegression.class, 50, 100);
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief01));
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief02));
-		metadata.put(Softgoals.COST, planMetadataElement);
+		metadata.put(Softgoals.MINCOST, planMetadataElement);
 
-		planMetadataElement = new PlanMetadataElement(plan02, Softgoals.PERFORMANCE,
+		planMetadataElement = new PlanMetadataElement(plan02, Softgoals.MAXPERFORMANCE,
 				new Outcome02(), OptimizationFunction.MAXIMIZE,
-				MultilayerPerceptron.class, 50, 100);
+				LinearRegression.class, 50, 100);
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief02));
 		planMetadataElement.addInfluenceFactor(new NumericInfluenceFactor(belief03));
-		metadata.put(Softgoals.PERFORMANCE, planMetadataElement);
+		metadata.put(Softgoals.MAXPERFORMANCE, planMetadataElement);
 
 		plan02.putMetadata(PlanMetadataElement.METADATA_NAME, metadata);
 	}
diff --git a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan01.java b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan01.java
new file mode 100644
index 0000000..82324a4
--- /dev/null
+++ b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan01.java
@@ -0,0 +1,11 @@
+package bdi4jade.extension.planselection.learningbased.example;
+
+import bdi4jade.goal.GoalTemplateFactory;
+import bdi4jade.plan.DefaultPlan;
+
+public class ExamplePlan01 extends DefaultPlan {
+
+	public ExamplePlan01() {
+		super(GoalTemplateFactory.goalOfType(ExampleGoal.class), ExamplePlanBody.class);
+	}
+}
\ No newline at end of file
diff --git a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan02.java b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan02.java
new file mode 100644
index 0000000..84a7e1b
--- /dev/null
+++ b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan02.java
@@ -0,0 +1,11 @@
+package bdi4jade.extension.planselection.learningbased.example;
+
+import bdi4jade.goal.GoalTemplateFactory;
+import bdi4jade.plan.DefaultPlan;
+
+public class ExamplePlan02 extends DefaultPlan {
+
+	public ExamplePlan02() {
+		super(GoalTemplateFactory.goalOfType(ExampleGoal.class), ExamplePlanBody.class);
+	}
+}
\ No newline at end of file
diff --git a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/Softgoals.java b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/Softgoals.java
index 4b7159d..48c5e50 100644
--- a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/Softgoals.java
+++ b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/Softgoals.java
@@ -5,9 +5,9 @@ import bdi4jade.goal.Softgoal;
 
 public class Softgoals {
 
-	public static final Softgoal COST = new NamedSoftgoal("COST");
-	public static final Softgoal PERFORMANCE = new NamedSoftgoal("PERFORMANCE");
+	public static final Softgoal MINCOST = new NamedSoftgoal("COST");
+	public static final Softgoal MAXPERFORMANCE = new NamedSoftgoal("PERFORMANCE");
 
-	public static final Softgoal SOFTGOALS[] = { COST, PERFORMANCE };
+	public static final Softgoal SOFTGOALS[] = { MINCOST, MAXPERFORMANCE };
 
 }
diff --git a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/LearningAlgorithm.java b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/LearningAlgorithm.java
index a891f51..9f67c64 100644
--- a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/LearningAlgorithm.java
+++ b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/LearningAlgorithm.java
@@ -44,14 +44,16 @@ public class LearningAlgorithm {
 
 		double expectedContribution = 1;
 		double predictedValue = 1;
-
+		
+		String agentName = plan.getPlanLibrary().getCapability().getMyAgent().getLocalName();
+		
 		PlanMetadataElement planMetadata = ((Map<Softgoal, PlanMetadataElement>) plan
 				.getMetadata(PlanMetadataElement.METADATA_NAME)).get(softgoal);
 
 		if (planMetadata.getPlanExecutionsCounter() < planMetadata
 				.getMinPlanExecutions()) {
 			String filePath = planMetadata.getFilePath()
-					+ (plan.getId() + "_" + plan.getClass().getSimpleName()
+					+ (agentName + "_" + plan.getId() + "_" + plan.getClass().getSimpleName()
 							+ "_" + softgoal).toLowerCase() + ".arff";
 			if (!new File(filePath).exists()) {
 				try {
@@ -123,11 +125,13 @@ public class LearningAlgorithm {
 		PlanMetadataElement planMetadata = ((Map<Softgoal, PlanMetadataElement>) plan
 				.getMetadata(PlanMetadataElement.METADATA_NAME)).get(softgoal);
 
+		//Added recently 02/05
+		String agentName = plan.getPlanLibrary().getCapability().getMyAgent().getLocalName();
 		try {
 			trainingInstances = new Instances(new BufferedReader(
 					new FileReader(
 							planMetadata.getFilePath()
-									+ (plan.getId() + "_"
+									+ (agentName + "_" + plan.getId() + "_"
 											+ plan.getClass().getSimpleName()
 											+ "_" + softgoal).toLowerCase()
 									+ ".arff")));
diff --git a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/PlanMetadataElement.java b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/PlanMetadataElement.java
index 0baacb0..e11825c 100644
--- a/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/PlanMetadataElement.java
+++ b/bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/PlanMetadataElement.java
@@ -225,8 +225,9 @@ public class PlanMetadataElement {
 	 * Writes the current instance in a specific file.
 	 */
 	private void saveInstance() {
+		String agentName = this.plan.getPlanLibrary().getCapability().getMyAgent().getLocalName();
 		String filePath = this.filePath
-				+ (this.plan.getId() + "_"
+				+ (agentName + "_" + this.plan.getId() + "_"
 						+ this.plan.getClass().getSimpleName() + "_" + this.softgoal)
 						.toLowerCase() + ".arff";
 		try {