diff --git a/AMOEBAonAMAK/src/agents/context/Context.java b/AMOEBAonAMAK/src/agents/context/Context.java
index aeb93fd4c076c7ae331d2a7f8de9f8d5053ab8f5..d5bf2f26136b180a68a41c180b68d4be4ddde87a 100644
--- a/AMOEBAonAMAK/src/agents/context/Context.java
+++ b/AMOEBAonAMAK/src/agents/context/Context.java
@@ -111,7 +111,7 @@ public class Context extends AmoebaAgent {
 		Experiment firstPoint = new Experiment(this);
 		ArrayList<Percept> var = getAmas().getPercepts();
 		for (Percept p : var) {
-			Range r;
+			Range r = null;
 
 			//Pair<Double, Double> radiuses = getAmas().getHeadAgent().getMaxRadiusesForContextCreation(p);
 			//TODO use neihbors sizes to define radiuses for creation !!!!!!!!!!!
@@ -120,14 +120,33 @@ public class Context extends AmoebaAgent {
 			
 					
 			
-			if(getAmas().getHeadAgent().activatedNeighborsContexts.size()>0) {
-				double radiusCreation = getAmas().getHeadAgent().minNeighborhoodRadius;
-				//double radiusCreation = getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p);
-				//double radiusCreation = getAmas().getHeadAgent().minMeanNeighborhoodRaduises;
-				getAmas().getEnvironment()
-				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by mean", this.getName(), p.getName(), getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p).toString())));
-				r = new Range(this, p.getValue() - radiusCreation, p.getValue() + radiusCreation, 0, true, true, p, getAmas().getHeadAgent().minMeanNeighborhoodStartIncrements, getAmas().getHeadAgent().minMeanNeighborhoodEndIncrements);
-			}else {
+			if(getAmas().getHeadAgent().activatedNeighborsContexts.size()>0 && getAmas().data.isActiveLearning) {
+				
+				if(getAmas().getHeadAgent().lastEndogenousRequest != null) {
+					if(getAmas().getHeadAgent().lastEndogenousRequest.getType() == REQUEST.VOID) {
+						double startRange = getAmas().getHeadAgent().lastEndogenousRequest.getBounds().get(p).getA();
+						double endRange = getAmas().getHeadAgent().lastEndogenousRequest.getBounds().get(p).getB();
+						
+						getAmas().getEnvironment()
+						.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by VOID", this.getName(), p.getName(), getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p).toString())));
+						r = new Range(this, startRange, endRange, 0, true, true, p, getAmas().getHeadAgent().minMeanNeighborhoodStartIncrements, getAmas().getHeadAgent().minMeanNeighborhoodEndIncrements);
+					
+					}
+				}
+				if(r==null) {
+					double radiusCreation = getAmas().getHeadAgent().minNeighborhoodRadius;
+					//double radiusCreation = getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p);
+					//double radiusCreation = getAmas().getHeadAgent().minMeanNeighborhoodRaduises;
+					getAmas().getEnvironment()
+					.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by mean", this.getName(), p.getName(), getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p).toString())));
+					r = new Range(this, p.getValue() - radiusCreation, p.getValue() + radiusCreation, 0, true, true, p, getAmas().getHeadAgent().minMeanNeighborhoodStartIncrements, getAmas().getHeadAgent().minMeanNeighborhoodEndIncrements);
+				
+				}
+				
+			
+			
+			}
+			if(r==null){
 				r = new Range(this, p.getValue() - radiuses.getA(), p.getValue() + radiuses.getB(), 0, true, true, p);
 				getAmas().getEnvironment()
 				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by init", this.getName(), p.getName(), radiuses.getA().toString())));
@@ -199,25 +218,45 @@ public class Context extends AmoebaAgent {
 		Experiment firstPoint = new Experiment(this);
 		ArrayList<Percept> var = getAmas().getPercepts();
 		for (Percept p : var) {
-			Range r;
+			Range r = null;
 			//Pair<Double, Double> radiuses = getAmas().getHeadAgent().getMaxRadiusesForContextCreation(v);
 			//TODO use neihbors sizes to define radiuses for creation !!!!!!!!!!!
 			Pair<Double, Double> radiuses = getAmas().getHeadAgent().getRadiusesForContextCreation(p);
 			
 
-			if(getAmas().getHeadAgent().activatedNeighborsContexts.size()>0) {
-				double radiusCreation = getAmas().getHeadAgent().minNeighborhoodRadius;
-				//double radiusCreation = getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p);
-				//double radiusCreation = getAmas().getHeadAgent().minMeanNeighborhoodRaduises;
-				getAmas().getEnvironment()
-				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by mean", this.getName(), p.getName(), getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p).toString())));
-				r = new Range(this, p.getValue() - radiusCreation, p.getValue() + radiusCreation, 0, true, true, p, getAmas().getHeadAgent().minMeanNeighborhoodStartIncrements, getAmas().getHeadAgent().minMeanNeighborhoodEndIncrements);
-			}else {
+			if(getAmas().getHeadAgent().activatedNeighborsContexts.size()>0 && getAmas().data.isActiveLearning) {
+				
+				
+				
+				if(getAmas().getHeadAgent().lastEndogenousRequest != null) {
+					if(getAmas().getHeadAgent().lastEndogenousRequest.getType() == REQUEST.VOID) {
+						double startRange = getAmas().getHeadAgent().lastEndogenousRequest.getBounds().get(p).getA();
+						double endRange = getAmas().getHeadAgent().lastEndogenousRequest.getBounds().get(p).getB();
+						System.out.println(startRange + "  " + endRange);
+						getAmas().getEnvironment()
+						.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by VOID", this.getName(), p.getName(), getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p).toString())));
+						r = new Range(this, startRange, endRange, 0, true, true, p, getAmas().getHeadAgent().minMeanNeighborhoodStartIncrements, getAmas().getHeadAgent().minMeanNeighborhoodEndIncrements);
+					
+					}
+				}
+				if(r==null) {
+					double radiusCreation = getAmas().getHeadAgent().minNeighborhoodRadius;
+					//double radiusCreation = getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p);
+					//double radiusCreation = getAmas().getHeadAgent().minMeanNeighborhoodRaduises;
+					getAmas().getEnvironment()
+					.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by mean", this.getName(), p.getName(), getAmas().getHeadAgent().meanNeighborhoodRaduises.get(p).toString())));
+					r = new Range(this, p.getValue() - radiusCreation, p.getValue() + radiusCreation, 0, true, true, p, getAmas().getHeadAgent().minMeanNeighborhoodStartIncrements, getAmas().getHeadAgent().minMeanNeighborhoodEndIncrements);
+				
+				}
+				
+			}
+			if(r==null) {
 				r = new Range(this, p.getValue() - radiuses.getA(), p.getValue() + radiuses.getB(), 0, true, true, p);
 				getAmas().getEnvironment()
 				.trace(TRACE_LEVEL.INFORM, new ArrayList<String>(Arrays.asList("Range creation by init", this.getName(), p.getName(), radiuses.getA().toString())));
 			}
 
+
 			ranges.put(p, r);
 			ranges.get(p).setValue(p.getValue());
 
@@ -811,6 +850,7 @@ public class Context extends AmoebaAgent {
 		}
 		getEnvironment().trace(TRACE_LEVEL.EVENT,new ArrayList<String>(Arrays.asList("NEW ENDO REQUEST","10", ""+request, ""+this.getName())));
 		getAmas().getHeadAgent().addSelfRequest(request, 10,this);
+		
 	}
 	
 	private Double getRandomValueInRange(Percept pct) {
diff --git a/AMOEBAonAMAK/src/agents/head/EndogenousRequest.java b/AMOEBAonAMAK/src/agents/head/EndogenousRequest.java
index e6c7ea98015042a6cc07c5e84d199b729cb16343..599f41ebe8967811363e03d149e0fef7cf5b1153 100644
--- a/AMOEBAonAMAK/src/agents/head/EndogenousRequest.java
+++ b/AMOEBAonAMAK/src/agents/head/EndogenousRequest.java
@@ -97,6 +97,10 @@ public class EndogenousRequest {
 		return requestType;
 	}
 	
+	public HashMap<Percept, Pair<Double, Double>> getBounds(){
+		return bounds;
+	}
+	
 	
 	
 }
diff --git a/AMOEBAonAMAK/src/agents/head/Head.java b/AMOEBAonAMAK/src/agents/head/Head.java
index 1a0c84121e30d7b5369124ee08921b720cb7ca42..ec4984207c658bc87acb97f65c1a91481707abf6 100644
--- a/AMOEBAonAMAK/src/agents/head/Head.java
+++ b/AMOEBAonAMAK/src/agents/head/Head.java
@@ -55,6 +55,7 @@ public class Head extends AmoebaAgent {
 	public Double minNeighborhoodStartIncrement = null;
 	public Double minNeighborhoodEndIncrement = null;
 	
+	public EndogenousRequest lastEndogenousRequest = null;
 
 	Queue<EndogenousRequest> endogenousRequests = new PriorityQueue<EndogenousRequest>(new Comparator<EndogenousRequest>(){
 		   public int compare(EndogenousRequest r1, EndogenousRequest r2) {
@@ -405,6 +406,11 @@ public class Head extends AmoebaAgent {
 		
 		getAmas().data.executionTimes[7]=System.currentTimeMillis();
 		
+		
+		if(isSelfRequest()) {
+			getAmas().data.activeLearning = true;
+		}
+		
 		criticalities.addCriticality("spatialCriticality",
 				(getMinMaxVolume() - getVolumeOfAllContexts()) / getMinMaxVolume());
 
@@ -972,19 +978,23 @@ public class Head extends AmoebaAgent {
 	
 	private void NCSDetection_ChildContext() {
 		
-		getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("------------------------------------------------------------------------------------"
-				+ "---------------------------------------- NCS DETECTION CHILD CONTEXT")));
-		
-		if(bestContext!=null) {
-			if(!bestContext.getLocalModel().finishedFirstExperiments() && getAmas().data.firstContext && getAmas().getCycle()>0 && !bestContext.isDying()) {
-				bestContext.solveNCS_ChildContext();
-				
-				
+		if(getAmas().data.isActiveLearning) {
+			getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("------------------------------------------------------------------------------------"
+					+ "---------------------------------------- NCS DETECTION CHILD CONTEXT")));
+			
+			if(bestContext!=null) {
+				if(!bestContext.getLocalModel().finishedFirstExperiments() && getAmas().data.firstContext && getAmas().getCycle()>0 && !bestContext.isDying()) {
+					bestContext.solveNCS_ChildContext();
+					
+					
+				}
 			}
 		}
 		
 		
 		
+		
+		
 	}
 	
 	
@@ -1184,28 +1194,33 @@ public class Head extends AmoebaAgent {
 	
 	private void NCSDetection_PotentialRequest() {
 		
-		getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("------------------------------------------------------------------------------------"
-				+ "---------------------------------------- NCS DETECTION POTENTIAL REQUESTS")));
-		
-		if (activatedNeighborsContexts.size() > 1) {
-			int i = 1;
-			for (Context ctxt : activatedNeighborsContexts) {
-				for (Context otherCtxt : activatedNeighborsContexts.subList(i, activatedNeighborsContexts.size())) {
-					if(!this.isDying() && !ctxt.isDying()) {
-						EndogenousRequest potentialRequest = ctxt.endogenousRequest(otherCtxt);
-						if(potentialRequest != null) {
-							addEndogenousRequest(potentialRequest);
+		if(getAmas().data.isActiveLearning) {
+			getEnvironment().trace(TRACE_LEVEL.DEBUG, new ArrayList<String>(Arrays.asList("------------------------------------------------------------------------------------"
+					+ "---------------------------------------- NCS DETECTION POTENTIAL REQUESTS")));
+			
+			if (activatedNeighborsContexts.size() > 1) {
+				int i = 1;
+				for (Context ctxt : activatedNeighborsContexts) {
+					for (Context otherCtxt : activatedNeighborsContexts.subList(i, activatedNeighborsContexts.size())) {
+						if(!this.isDying() && !ctxt.isDying()) {
+							EndogenousRequest potentialRequest = ctxt.endogenousRequest(otherCtxt);
+							if(potentialRequest != null) {
+								getAmas().data.activeLearning = true;
+								addEndogenousRequest(potentialRequest);
+							}
 						}
 					}
+					i++;
 				}
-				i++;
+			}
+			
+			getEnvironment().trace(TRACE_LEVEL.STATE, new ArrayList<String>(Arrays.asList("ENDO REQUESTS", ""+endogenousRequests.size())));
+			for(EndogenousRequest endoRequest : endogenousRequests) {
+				getEnvironment().trace(TRACE_LEVEL.STATE, new ArrayList<String>(Arrays.asList("" + endoRequest)));
 			}
 		}
 		
-		getEnvironment().trace(TRACE_LEVEL.STATE, new ArrayList<String>(Arrays.asList("ENDO REQUESTS", ""+endogenousRequests.size())));
-		for(EndogenousRequest endoRequest : endogenousRequests) {
-			getEnvironment().trace(TRACE_LEVEL.STATE, new ArrayList<String>(Arrays.asList("" + endoRequest)));
-		}
+		
 		
 	}
 	
@@ -1496,6 +1511,7 @@ public class Head extends AmoebaAgent {
 			getAmas().data.firstContext = true;
 		}
 
+		resetLastEndogenousRequest();
 		return context;
 	}
 
@@ -2170,7 +2186,11 @@ public class Head extends AmoebaAgent {
 	
 	
 	public boolean isActiveLearning() {
-		return isSelfRequest();
+		return isSelfRequest() && getAmas().data.activeLearning;
+	}
+	
+	public boolean isSelfLearning() {
+		return isSelfRequest() && getAmas().data.selfLearning;
 	}
 	
 	
@@ -2178,12 +2198,22 @@ public class Head extends AmoebaAgent {
 	public HashMap<Percept, Double> getSelfRequest(){
 		getEnvironment().trace(TRACE_LEVEL.EVENT, new ArrayList<String>(Arrays.asList("FUTURE ACTIVE LEARNING", ""+endogenousRequests.element())));
 		EndogenousRequest futureRequest = endogenousRequests.poll();
+		lastEndogenousRequest = futureRequest;
 		for(Context ctxt : futureRequest.getAskingContexts()) {
 			ctxt.deleteWaitingRequest(futureRequest);
 		}
+		
 		return futureRequest.getRequest();
 	}
 	
+	public EndogenousRequest getLastEndogenousRequest() {
+		return lastEndogenousRequest;
+	}
+	
+	public void resetLastEndogenousRequest() {
+		lastEndogenousRequest = null;
+	}
+	
 	public void deleteRequest(Context ctxt) {
 		
 	}
@@ -2194,6 +2224,7 @@ public class Head extends AmoebaAgent {
 	
 	public void addSelfRequest(HashMap<Percept, Double> request, int priority, Context ctxt){		
 		
+		getAmas().data.activeLearning = true;
 		addEndogenousRequest(new EndogenousRequest(request, null, priority,new ArrayList<Context>(Arrays.asList(ctxt)), REQUEST.SELF));
 	}
 	
diff --git a/AMOEBAonAMAK/src/agents/percept/Percept.java b/AMOEBAonAMAK/src/agents/percept/Percept.java
index eaa2e3173840ae973d0e0be823418e94b501d757..7bb940b25a64554e3644babd5ff984a21880baab 100644
--- a/AMOEBAonAMAK/src/agents/percept/Percept.java
+++ b/AMOEBAonAMAK/src/agents/percept/Percept.java
@@ -396,7 +396,7 @@ public class Percept extends AmoebaAgent {
 	}
 	
 	public double getMappingErrorAllowedOverMapping() {
-		return getMinMaxDistance() * getEnvironment().getMappingErrorAllowed() * 1.0;
+		return getMinMaxDistance() * getEnvironment().getMappingErrorAllowed() * 0.5;
 	}
 	
 	public double getMappingErrorAllowedMax() {
diff --git a/AMOEBAonAMAK/src/experiments/F_XY_System.java b/AMOEBAonAMAK/src/experiments/F_XY_System.java
index 0a15425a9c996d2cf9188a8dbc1c583b86691d66..42897851276311ddec61ba99286aa73334231878 100644
--- a/AMOEBAonAMAK/src/experiments/F_XY_System.java
+++ b/AMOEBAonAMAK/src/experiments/F_XY_System.java
@@ -101,4 +101,10 @@ public class F_XY_System implements StudiedSystem {
 		// TODO Auto-generated method stub
 		
 	}
+
+	@Override
+	public void setSelfLearning(boolean value) {
+		// TODO Auto-generated method stub
+		
+	}
 }
\ No newline at end of file
diff --git a/AMOEBAonAMAK/src/experiments/benchmark/NDimCube.java b/AMOEBAonAMAK/src/experiments/benchmark/NDimCube.java
index 86c4ca726342fc1d2ef7157836142891b2556fc9..25e9bfc9ad8b04a2d47a7723424a98796dfa0de6 100644
--- a/AMOEBAonAMAK/src/experiments/benchmark/NDimCube.java
+++ b/AMOEBAonAMAK/src/experiments/benchmark/NDimCube.java
@@ -148,4 +148,10 @@ public class NDimCube implements StudiedSystem{
 		// TODO Auto-generated method stub
 		
 	}
+
+	@Override
+	public void setSelfLearning(boolean value) {
+		// TODO Auto-generated method stub
+		
+	}
 }
\ No newline at end of file
diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java
index 3c0ec95825723b5a2eb231d653e20edd38585f97..427434b0d473503205fd6dbf2d7bb42f8e14b0af 100644
--- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java
+++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Launcher.java
@@ -41,7 +41,7 @@ public class F_N_Launcher  extends Application implements Serializable {
 	public static double mappingErrorAllowed = 0.03; // MULTI
 	public static final double explorationIncrement = 1.0	;
 	public static final double explorationWidht = 0.5	;
-	
+	public static final boolean setActiveLearning = true	;
 	public static final int nbCycle = 1000;
 	
 
@@ -81,6 +81,7 @@ public class F_N_Launcher  extends Application implements Serializable {
 		amoeba.setRenderUpdate(true);		
 		amoeba.data.learningSpeed = learningSpeed;
 		amoeba.data.numberOfPointsForRegression = regressionPoints;
+		amoeba.data.isActiveLearning = setActiveLearning;
 		amoeba.getEnvironment().setMappingErrorAllowed(mappingErrorAllowed);
 		
 		
diff --git a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
index 968cac30920cc02e6018c124babb7807e8c64cfd..acfcc27f01967090b26d12b9092fea0115b662eb 100644
--- a/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
+++ b/AMOEBAonAMAK/src/experiments/nDimensionsLaunchers/F_N_Manager.java
@@ -41,6 +41,7 @@ public class F_N_Manager implements StudiedSystem{
 	
 	HashMap<String,Double> selfRequest;
 	boolean activeLearning = false;
+	boolean selfLearning = false;
 	
 	double noiseRange;
 	
@@ -153,6 +154,11 @@ public class F_N_Manager implements StudiedSystem{
 			
 			nonRandomExplorationStep();
 			
+		}
+		else if(selfLearning) {
+			
+			selfLearning = false;
+			
 		}
 		else if(activeLearning) {
 			
@@ -691,6 +697,11 @@ private double[] subZoneCenter3D(int nb) {
 		activeLearning = value;
 	}
 	
+	@Override
+	public void setSelfLearning(boolean value) {
+		selfLearning = value;
+	}
+	
 	@Override
 	public void setSelfRequest(HashMap<Percept, Double> request){
 		HashMap<String,Double> newRequest = new HashMap<String,Double>();
diff --git a/AMOEBAonAMAK/src/experiments/reinforcement/WithStudiedSystem/ReinforcementManager2D.java b/AMOEBAonAMAK/src/experiments/reinforcement/WithStudiedSystem/ReinforcementManager2D.java
index 1a2788d1de53db70fe80156c48509c4388674c53..56f3dc2dac3ffd382b692002544eafcf8775d770 100644
--- a/AMOEBAonAMAK/src/experiments/reinforcement/WithStudiedSystem/ReinforcementManager2D.java
+++ b/AMOEBAonAMAK/src/experiments/reinforcement/WithStudiedSystem/ReinforcementManager2D.java
@@ -512,6 +512,17 @@ public class ReinforcementManager2D implements StudiedSystem{
 		
 	}
 
+
+
+
+
+
+	@Override
+	public void setSelfLearning(boolean value) {
+		// TODO Auto-generated method stub
+		
+	}
+
 	
 
 
diff --git a/AMOEBAonAMAK/src/kernel/AMOEBA.java b/AMOEBAonAMAK/src/kernel/AMOEBA.java
index 866b77c0947fd938b4c5ef417dda4addf5b97d62..d246a9e00f672798511c0ab6b19ca606617c451f 100644
--- a/AMOEBAonAMAK/src/kernel/AMOEBA.java
+++ b/AMOEBAonAMAK/src/kernel/AMOEBA.java
@@ -248,10 +248,16 @@ public class AMOEBA extends Amas<World> implements IAMOEBA {
 		
 		if(studiedSystem != null) {
 			if(head.isActiveLearning()) {
+				data.activeLearning = false;
 				studiedSystem.setActiveLearning(true);
 				studiedSystem.setSelfRequest(head.getSelfRequest());
 				 
 			}
+			else if(head.isSelfLearning()) {
+				data.selfLearning = false;
+				studiedSystem.setSelfLearning(true);
+				studiedSystem.setSelfRequest(head.getSelfRequest());
+			}
 		}
 		
 		super.onSystemCycleEnd();
diff --git a/AMOEBAonAMAK/src/kernel/AmoebaData.java b/AMOEBAonAMAK/src/kernel/AmoebaData.java
index 449f40008954bd32bf04b3b46e72a301638d57dc..6e32b074e225279bc62f5394dca51a0487470a37 100644
--- a/AMOEBAonAMAK/src/kernel/AmoebaData.java
+++ b/AMOEBAonAMAK/src/kernel/AmoebaData.java
@@ -46,7 +46,10 @@ public class AmoebaData implements Serializable {
 	public boolean newContextWasCreated = false;
 	public boolean contextFromPropositionWasSelected = false;
 	
+	public boolean isActiveLearning;
+	
 	public boolean activeLearning = false;
+	public boolean selfLearning = false;
 	
 	public HashMap<String, Double> selfRequest;
 
diff --git a/AMOEBAonAMAK/src/kernel/StudiedSystem.java b/AMOEBAonAMAK/src/kernel/StudiedSystem.java
index b233951eaf945ee789545b3325e8ce0924bcda40..88ec60c66a966bc527bfc14404444a68c96d08fd 100644
--- a/AMOEBAonAMAK/src/kernel/StudiedSystem.java
+++ b/AMOEBAonAMAK/src/kernel/StudiedSystem.java
@@ -37,7 +37,7 @@ public interface StudiedSystem extends Serializable{
 	public double requestOracle(HashMap<String, Double> request);
 	
 	public void setActiveLearning(boolean value);
-	
+	public void setSelfLearning(boolean value);
 	
 	public void setSelfRequest(HashMap<Percept, Double> request);