[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