bdi4jade
Changes
bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExampleCapability.java 22(+11 -11)
bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan01.java 11(+11 -0)
bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/ExamplePlan02.java 11(+11 -0)
bdi-jade-extensions/src/bdi4jade/extension/planselection/learningbased/example/Softgoals.java 6(+3 -3)
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 {