codesimian
Class SimpleNeuralNode

java.lang.Object
  extended by codesimian.CS
      extended by codesimian.DefaultCS
          extended by codesimian.SimpleNeuralNode
All Implemented Interfaces:
CodeSimian, java.io.Serializable

public class SimpleNeuralNode
extends DefaultCS

simpleNeuralNode(list(child nodes) list(1 weight for each child) someActionToDoWhenFireThisNode)

To be used in a standard NETWORK where P(0) is child nodes and P(1) is weights. Each time this node FIRES (the fire() function), weights are normalized to sum to 1 and made positive if they're negative.

Often SimpleNeuralNode is used to represent words of natural-language. name() should return the word as a String.

It doesnt matter how many times you execute this SimpleNeuralNode, its value changes none or only slightly, unless its value exceeds maxValue (then it fires). You can look at its value all you want. If the value is less than maxValue then the only way to modify the value is to call setD(double) (or other set function).

The number value of this SimpleNeuralNode ranges 0 to 1. Use setD(double) (or other set function) to change that value. Next time this SimpleNeuralNode executes, if its value > .9 (or > 1???? error, but execute anyways), then it distributes its value to its childs like a neural-network, and executes P(2) if P(2) exists (only once every time value of this SimpleNeuralNode is near 1 therefore is reduced).

If P(2) exists, P(2) is the CS that tells something else that this node has executed. For example, it could print this word's name onto a string as a natural-language response to whatever input the neural network received recently.

See Also:
Serialized Form

Nested Class Summary
static class SimpleNeuralNode.ChainSimpleNeuralNodesTogether
          input a list of SimpleNeuralNodes (duplicate SimpleNeuralNodes allowed, but no duplicate names) into P(1).
static class SimpleNeuralNode.WordStringsToNodes
          given a list of word strings (P(1)), outputs a list containing CSs with those names (the words) into P(0), and if they dont already exist in P(2) then adds a new SimpleNeuralNode for each word into P(2).
 
Field Summary
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, FUEL, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER
 
Constructor Summary
SimpleNeuralNode()
           
 
Method Summary
 java.lang.String description()
          a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for.
 double DForProxy()
          every time this SimpleNeuralNode executes, its value is updated: multiplied by 1-decay * static double decay = .001;
 void fire()
          fire this node, like in a neural network.
 java.lang.String keyword()
          For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.

Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add.

Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()".
 int maxP()
          Maximum quantity of Params
 int minP()
          For DForProxy().
Minimum number of parameters in param[] needed to call DForProxy().
Defines which indexs of param[] DForProxy() can use.
Functions with a different number of parameters must override this.
OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS.
Default is 1.
 boolean setD(double value)
          all setX functions return setD by default.
 
Methods inherited from class codesimian.DefaultCS
B, C, countP, decrementMyFuel, deleteP, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, LForProxy, LForProxy, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, PType, S, setB, setC, setCountP, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL, setL1, setMyFuel, setName, setObject, setP, setPrevExec, setS, setZ, start, toString, V, Z
 
Methods inherited from class codesimian.CS
addP, addP, addP, addP, addP, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, IForProxy, isIllusion, javaCode, JForProxy, L, L, L, L, L, maxD, minD, overwrites, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, setB, setC, setCost, setDescription, setF, setHeap, setI, setJ, setL, setL, setParent, setParsePriority, setProxyOf, setPType, setS, setTester, setZ, SForProxy, tester, VForProxy, voidReflect, ZForProxy
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimpleNeuralNode

public SimpleNeuralNode()
Method Detail

DForProxy

public double DForProxy()
every time this SimpleNeuralNode executes, its value is updated: multiplied by 1-decay * static double decay = .001;

Specified by:
DForProxy in class DefaultCS

setD

public boolean setD(double value)
Description copied from class: DefaultCS
all setX functions return setD by default. setD returns false by default. Override in subclass. For example, class N has a public variable value, and N.value is set to setToThisValue.

Overrides:
setD in class DefaultCS

fire

public void fire()
fire this node, like in a neural network. childs are in P(0) and weights are in P(1). value of this node is distributed to childs proportional to their weights. fire() should only be called when value of this node (D()) exceeds maxValue.


minP

public int minP()
Description copied from class: DefaultCS
For DForProxy().
Minimum number of parameters in param[] needed to call DForProxy().
Defines which indexs of param[] DForProxy() can use.
Functions with a different number of parameters must override this.
OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS.
Default is 1.

Overrides:
minP in class DefaultCS

maxP

public int maxP()
Description copied from class: CS
Maximum quantity of Params

Overrides:
maxP in class CS

keyword

public java.lang.String keyword()
Description copied from class: DefaultCS
For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.

Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add.

Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()".
Default: Returns class name, minus package name (and its dots), and change the first letter to lowercase.

For example, CS.MaxParams does not override keyword(), which returns "maxP".

Overrides:
keyword in class DefaultCS
See Also:
CS.parent(), CS.newInstance(), CS.name()

description

public java.lang.String description()
Description copied from class: CS
a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for. Example use: in automatically generated webpages for CodeSimian. Example: "returns sum of all params" for Add.

Overrides:
description in class DefaultCS