[jboss-svn-commits] JBL Code SVN: r21940 - labs/jbossrules/branches/uncDrools5x/LogicSOM/src.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 27 18:03:20 EDT 2008


Author: dsotty
Date: 2008-08-27 18:03:20 -0400 (Wed, 27 Aug 2008)
New Revision: 21940

Modified:
   labs/jbossrules/branches/uncDrools5x/LogicSOM/src/SOM.drl
Log:
New branch for uncertainty support in 5.x

Modified: labs/jbossrules/branches/uncDrools5x/LogicSOM/src/SOM.drl
===================================================================
--- labs/jbossrules/branches/uncDrools5x/LogicSOM/src/SOM.drl	2008-08-27 21:01:35 UTC (rev 21939)
+++ labs/jbossrules/branches/uncDrools5x/LogicSOM/src/SOM.drl	2008-08-27 22:03:20 UTC (rev 21940)
@@ -11,7 +11,15 @@
 
 import data.Sample;
 import data.Neuron;
+import data.Recall;
 import data.Acknowledge;
+import data.Winner;
+import data.Train;
+import data.Charge;
+import data.HotSpot;
+import data.Young;
+import data.Lure;
+import data.Update;
 
 
 #declare any global variables here
@@ -25,47 +33,124 @@
 
 
 rule "Insert"
-
-	salience 9999
 	
+	salience 10000
 
 	when
-		$p : Sample(  )
+		$p : Sample( epoch `young[0.015] 1)
 	then
-		logger.println("Asserted " + $p );
-		
+		logger.println();
+		logger.println();
+		logger.println("Asserted " + $p + "at epoch +" + $p.getEpoch() + " is young " + drools.getActivationDegree());
+		Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+			priors.put(ClassConstraint.buildSignature(Young.class),drools.getActivationDegree());
+		insertLogical(new Young(),priors);
 end
 
 
 
 rule "Recall"
 
-	salience 1000
-	
 
+
 	when
 		$p : Sample(  )
-		$n : Neuron(  position `near[0.45] $p.position )
+		$n : Neuron(  position `near[0.2] $p.position )
 	then
 	
 		logger.println("Neuron " + $n.getId() + " recalls point at degree "+ drools.getActivationDegree() );		
 		Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
-			priors.put(ClassConstraint.buildSignature(Acknowledge.class),drools.getActivationDegree());
-		insertLogical(new Acknowledge($n,$p),priors);
+			priors.put(ClassConstraint.buildSignature(Recall.class),drools.getActivationDegree());
+		insertLogical(new Recall($n,$p,drools.getActivationDegree()),priors);
 end
 
 
 
 rule "Acknowledge"
+	
+	when
+		Charge()
+		exists $rec : Recall()
+	then		
+		logger.println("Network acknowledges at " + drools.getActivationDegree()); 
+		Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+			priors.put(ClassConstraint.buildSignature(Acknowledge.class),drools.getActivationDegree());
+		insertLogical(new Acknowledge(),priors);
+end
 
-	salience 900
+
+rule "Winner"
+
+	//TODO: RuleTerminalNode has been modified to emulate equiv op with this salience!!! 
+	salience	111 
 	
-	
 	when
+		$rec : Recall()
+		// equiv
+		$ack : Acknowledge()		
+	then
+		logger.println("Neuron "+ $rec.getNeuron().getId() + " is winner at " + drools.getActivationDegree());
+		Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+			priors.put(ClassConstraint.buildSignature(Winner.class),drools.getActivationDegree());
+		insertLogical(new Winner($rec.getNeuron(),$rec.getWeight()),priors);
+end
+
+
+
+
+
+rule "Position"
+
+	salience 449
+
+	when
 		Train()
-		exists $ack : Acknowledge()
+		// forany_Winner $Far * dRecall
+		// Other than altering forall, here Winner.class is AND-ed with far.eval
+		// e-MP should be applied instead!    
+		exists Winner( id `far[10.0] 1 )		
 	then
-		logger.println("Ack inserted at "+drools.getActivationDegree());
-		System.out.println("***********************************************++++++++++++++++++++++++++++++++****************************");
+		logger.println("Activation located in position " + drools.getActivationDegree());
+		Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+			//priors.put(ClassConstraint.buildSignature(HotSpot.class),drools.getActivationDegree());
+			priors.put(new ConstraintSignature("position","far","1"), drools.getActivationDegree());										
+		insertLogical(new HotSpot(),priors);
 end
 
+
+
+rule "Excitation"
+
+	//TODO : see above
+	salience 111
+	
+	when
+		HotSpot(position `far[10.0] 1)
+		//equiv
+		$n : Neuron( id `far[10.0] 1)		 			
+	then		
+		logger.println("Neuron "+ $n.getId() + " is lured " + drools.getActivationDegree().very());		
+		Hashtable<ConstraintSignature, IUncertainDegree> priors = new Hashtable<ConstraintSignature, IUncertainDegree>();
+		// Square the activation degree
+		// but should not be done here ... :(
+			priors.put(ClassConstraint.buildSignature(Lure.class),drools.getActivationDegree().very());
+		insertLogical(new Lure($n),priors);
+end
+
+
+
+rule "Lure"
+
+		
+	when		
+		Young()
+		$p : Sample()
+		// very 
+			$l : Lure( )			
+	then
+		logger.println("Neuron "+ $l.getNeuron().getId() + " moves " + drools.getActivationDegree());
+		$l.getNeuron().moveTo($p,drools.getActivationDegree().getDegree().getValue());
+end
+
+
+		




More information about the jboss-svn-commits mailing list