diff --git a/Rl.py b/Rl.py
index c88f46b30ab3d04fd89582716302c4042ce5aa4d..5f65adcc5768ca82d10bbf8cfcd2c7ca4a2b1498 100644
--- a/Rl.py
+++ b/Rl.py
@@ -92,6 +92,8 @@ def rewarding(appliable, config, action, missingLinks, funcname):
   return globals()["reward"+funcname](appliable, config, action, missingLinks)
 ################################################################################
 
+forbiddenReward = 1.5
+
 ################################################################################
 def rewardA(appliable, config, action, missingLinks):
   if appliable:
@@ -103,7 +105,7 @@ def rewardA(appliable, config, action, missingLinks):
       last_error = error_in_pop[-1] if len(error_in_pop) > 0 else 0
       reward = last_error - back
   else:
-    reward = -3.0
+    reward = -forbiddenReward
   return reward
 ################################################################################
 
@@ -118,7 +120,7 @@ def rewardB(appliable, config, action, missingLinks):
       last_error = error_in_pop[-1] if len(error_in_pop) > 0 else 0
       reward = last_error - back
   else:
-    reward = -3.0
+    reward = -forbiddenReward
   return reward
 ################################################################################
 
@@ -133,10 +135,25 @@ def rewardC(appliable, config, action, missingLinks):
       canceledRewards = [h[3] for h in config.historyPop[-back:]]
       reward = -sum(canceledRewards)
   else:
-    reward = -3.0
+    reward = -forbiddenReward
   return reward
 ################################################################################
 
+################################################################################
+def reward3C(appliable, config, action, missingLinks):
+  if appliable:
+    if action.name != "BACK" :
+      reward = -action.getOracleScore(config, missingLinks)
+    else :
+      back = action.size
+      error_in_pop = [i for i in range(1,back) if config.historyPop[-i][3] < 0]
+      canceledRewards = [h[3] for h in config.historyPop[-back:]]
+      reward = -sum(canceledRewards)
+  else:
+    reward = -forbiddenReward
+  return reward*3.0
+################################################################################
+
 ################################################################################
 def rewardD(appliable, config, action, missingLinks):
   if appliable:
@@ -148,7 +165,7 @@ def rewardD(appliable, config, action, missingLinks):
       canceledRewards = [h[3] for h in config.historyPop[-back:]]
       reward = -sum(canceledRewards) - 1
   else:
-    reward = -3.0
+    reward = -forbiddenReward
   return reward
 ################################################################################
 
@@ -160,7 +177,7 @@ def rewardE(appliable, config, action, missingLinks):
     else :
       reward = -0.5
   else:
-    reward = -3.0
+    reward = -forbiddenReward
   return reward
 ################################################################################
 
@@ -175,7 +192,7 @@ def rewardF(appliable, config, action, missingLinks):
       last_error = error_in_pop[-1] if len(error_in_pop) > 0 else 0
       reward = last_error - back
   else:
-    reward = -3.0
+    reward = -forbiddenReward
   return 10*reward
 ################################################################################
 
@@ -189,7 +206,7 @@ def rewardG(appliable, config, action, missingLinks):
       canceledRewards = [h[3] for h in config.historyPop[-back:]]
       reward = np.log(1-sum(canceledRewards)) if -sum(canceledRewards) > 0 else -1
   else:
-    reward = -3.0
+    reward = -forbiddenReward
   return reward
 ################################################################################