diff --git a/AMOEBAonAMAK/src/agents/context/localModel/LocalModel.java b/AMOEBAonAMAK/src/agents/context/localModel/LocalModel.java
index 91d1f1daa1e856fa9a2df640de80b49b21a557af..2aab80c87bae8e396c3e7eaec30e4073612fb3b9 100644
--- a/AMOEBAonAMAK/src/agents/context/localModel/LocalModel.java
+++ b/AMOEBAonAMAK/src/agents/context/localModel/LocalModel.java
@@ -37,11 +37,11 @@ public interface LocalModel {
 	public double getMaxProposition();
 	
 	/**
-	 * Return the point (percept value) that produce the max proposition
+	 * Return the point (percept value) that produce the max proposition, considering some percepts are fixed.
 	 * @return a HashMap with percept names as key, and their corresponding value. The oracle is the max proposition
 	 * @see LocalModel#getMaxProposition(Context)  
 	 */
-	public HashMap<String, Double> getMax();
+	public HashMap<String, Double> getMaxWithConstraint(HashMap<String, Double> fixedPercepts);;
 	
 	/**
 	 * Gets the proposition with the lowest value possible
diff --git a/AMOEBAonAMAK/src/agents/context/localModel/LocalModelMillerRegression.java b/AMOEBAonAMAK/src/agents/context/localModel/LocalModelMillerRegression.java
index 24c73fc009246b23cff511dd18750dd7b1ec346b..23bd22756f02eb8cb8053a71aea7e5d9bb875142 100644
--- a/AMOEBAonAMAK/src/agents/context/localModel/LocalModelMillerRegression.java
+++ b/AMOEBAonAMAK/src/agents/context/localModel/LocalModelMillerRegression.java
@@ -128,7 +128,8 @@ public class LocalModelMillerRegression implements LocalModel{
 		ArrayList<Percept> percepts = context.getAmas().getPercepts();			
 		double result = coefs[0];
 
-		if (coefs[0] == Double.NaN) System.exit(0);
+		if (coefs[0] == Double.NaN)
+			throw new ArithmeticException("First coeficient of model cannot be NaN");
 		
 		for (int i = 1 ; i < coefs.length ; i++) {
 			
@@ -145,7 +146,7 @@ public class LocalModelMillerRegression implements LocalModel{
 	}
 	
 	@Override
-	public HashMap<String, Double> getMax(){
+	public HashMap<String, Double> getMaxWithConstraint(HashMap<String, Double> fixedPercepts){
 		ArrayList<Percept> percepts = context.getAmas().getPercepts();
 		
 		HashMap<String, Double> result = new HashMap<String, Double>();
@@ -157,20 +158,23 @@ public class LocalModelMillerRegression implements LocalModel{
 		for (int i = 1 ; i < coefs.length ; i++) {
 			
 			if (Double.isNaN(coefs[i])) coefs[i] = 0.0;
-			if(coefs[i]>0) {
-				Percept p = percepts.get(i-1);
-				double value = coefs[i] * context.getRanges().get(p).getEnd();
-				result.put("oracle", value);
-				result.put(p.getName(), context.getRanges().get(p).getEnd());
-			}
-			else {
-				Percept p = percepts.get(i-1);
-				double value = coefs[i] * context.getRanges().get(p).getStart();
-				result.put("oracle", value);
-				result.put(p.getName(), context.getRanges().get(p).getStart());
+			double pos;
+			Percept p = percepts.get(i-1);
+			if(fixedPercepts.containsKey(p.getName())) {
+				pos = fixedPercepts.get(p.getName());
+			} else {
+				if(coefs[i]>0) {
+					pos = context.getRanges().get(p).getEnd();
+				}
+				else {
+					pos = context.getRanges().get(p).getStart();
+				}
 			}
+			double value = coefs[i] * pos;
+			result.put("oracle", result.get("oracle") + value);
+			result.put(p.getName(), pos);
 		}
-	
+		
 		return result;
 	}
 	
diff --git a/AMOEBAonAMAK/src/kernel/AMOEBA.java b/AMOEBAonAMAK/src/kernel/AMOEBA.java
index ef405f384d79b9bddf4c9894301d973594828b2e..d47419a8d3ec4e08d1581f201026119c763c73c0 100644
--- a/AMOEBAonAMAK/src/kernel/AMOEBA.java
+++ b/AMOEBAonAMAK/src/kernel/AMOEBA.java
@@ -431,7 +431,7 @@ public class AMOEBA extends Amas<World> implements IAMOEBA {
 		
 		ArrayList<HashMap<String, Double>> sol = new ArrayList<>();
 		for(Context c : pac) {
-			sol.add(c.getLocalModel().getMax());
+			sol.add(c.getLocalModel().getMaxWithConstraint(known));
 		}
 		HashMap<String, Double> max = new HashMap<>();