mosaic.sim.neuron.simulations
Class SOMPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--mosaic.sim.kernel.ModelPanel
                                |
                                +--mosaic.sim.neuron.simulations.SOMPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, mosaic.sim.kernel.ModelComponent, java.io.Serializable, mosaic.sim.kernel.simevent.SimEventListener, mosaic.sim.kernel.simevent.TimeEventListener

class SOMPanel
extends mosaic.sim.kernel.ModelPanel
implements mosaic.sim.kernel.simevent.TimeEventListener

The construction in here is exactly as chapter 11 of the PHD Thesis of Berthold Ruf describes.

See Also:
Serialized Form

Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
protected  SOMLearningMethod brain
           
protected  int currentLearningCycle
           
static java.lang.String FILENAME_COMPUTEDWEIGHTS
           
static java.lang.String FILENAME_LEARNINGPARAMS
           
static java.lang.String FILENAME_TRAININGSET
           
(package private)  TemporalCodedInput input
           
static double LAMBDA
          set sufficiently large so that every competitive neuron actually fires
static int LEARNING_CYCLES
           
protected  double learningRate
           
static float LEARNINGRATE_FACTOR
           
static float LEARNINGRATE_START
           
static float NEIGHBORHOOD_START
           
static float NEIGHBOURHOOD_DECREASE
           
(package private)  Neuron[] neurons
           
protected  double next_Tout
           
static int NUMBER_INPUTS
           
static int NUMBER_NEURONS
           
protected  java.util.Random rand
           
private  long realTimeStarted
           
static double REFRACTION_TIME
           
static double RISING_GRADIENT
           
static double RISING_TIME
           
static boolean SHOW_ANYTHING
           
static boolean SHOW_NEURON_DETAILS
           
static double[] SYNAPSE_DELAYS
           
(package private)  PLFunction synapseResponse
           
(package private)  ViewSynchronizer sync
           
protected  double T
          calculated from the above constants - the length of an input / output interval
static double THRESHOLD
           
protected  mosaic.sim.kernel.simevent.Timer timer
           
protected  double[][] TRAINING_SET
           
static int TRAINING_SET_SIZE
           
(package private)  ScrollingView[] views
           
 
Fields inherited from class mosaic.sim.kernel.ModelPanel
application, components, enabled, label, parent, sCESupport
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface mosaic.sim.kernel.ModelComponent
INF, INFINITY, NEGATIVE_INFINITY, NEGINF, NEGINFINITY, POSITIVE_INFINITY
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SOMPanel()
           
 
Method Summary
 void addSimEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
          Adds a SimEventComponent this listener listens to.
 void addTimeEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
          Adds a TimeEventComponent.
 void init()
           
private  void printMatrix(double[][] m, boolean diagonalZero)
           
 void processSimEvent(mosaic.sim.kernel.simevent.SimEvent evt)
          Reacts to SimEvents from SimEventComponents.
 void removeSimEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
          Removes a SimEventComponent this listener listens to.
 void removeTimeEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
          Removes a TimeEventComponent.
 void reset()
          Resets the model, intializes its state
 
Methods inherited from class mosaic.sim.kernel.ModelPanel
addModelComponent, addModelComponentEventListener, addModelComponentEventListener, addNotify, containsModelComponent, disable, enable, findParentModelComponent, fireModelComponentAdded, fireModelComponentChanged, fireModelComponentChanged, fireModelComponentDisabled, fireModelComponentEnabled, fireModelComponentGotContinuous, fireModelComponentGotDiscrete, fireModelComponentRemoved, getInfo, getLabel, getMinimumSize, getModelComponents, getParentModelComponent, getPreferredSize, getSimApplication, getTime, initialize, isDisabled, isEnabled, jbInit, printDebugOutput, printDebugOutput, printDebugOutput, printDebugOutput, printErrorOutput, printErrorOutput, printLogOutput, printLogOutput, removeModelComponent, removeModelComponentEventListener, removeModelComponentEventListener, removeNotify, setEnabled, setLabel, setParentModelComponent, setSimApplication
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

realTimeStarted

private long realTimeStarted

FILENAME_TRAININGSET

public static final java.lang.String FILENAME_TRAININGSET

FILENAME_COMPUTEDWEIGHTS

public static final java.lang.String FILENAME_COMPUTEDWEIGHTS

FILENAME_LEARNINGPARAMS

public static final java.lang.String FILENAME_LEARNINGPARAMS

timer

protected mosaic.sim.kernel.simevent.Timer timer

rand

protected java.util.Random rand

brain

protected SOMLearningMethod brain

NUMBER_INPUTS

public static final int NUMBER_INPUTS

NUMBER_NEURONS

public static final int NUMBER_NEURONS

RISING_GRADIENT

public static final double RISING_GRADIENT

RISING_TIME

public static final double RISING_TIME

THRESHOLD

public static final double THRESHOLD

SYNAPSE_DELAYS

public static final double[] SYNAPSE_DELAYS

REFRACTION_TIME

public static final double REFRACTION_TIME

LEARNING_CYCLES

public static final int LEARNING_CYCLES

LEARNINGRATE_START

public static final float LEARNINGRATE_START

LEARNINGRATE_FACTOR

public static final float LEARNINGRATE_FACTOR

NEIGHBORHOOD_START

public static final float NEIGHBORHOOD_START

NEIGHBOURHOOD_DECREASE

public static final float NEIGHBOURHOOD_DECREASE

currentLearningCycle

protected int currentLearningCycle

LAMBDA

public static final double LAMBDA
set sufficiently large so that every competitive neuron actually fires

T

protected double T
calculated from the above constants - the length of an input / output interval

learningRate

protected double learningRate

next_Tout

protected double next_Tout

TRAINING_SET_SIZE

public static final int TRAINING_SET_SIZE

TRAINING_SET

protected double[][] TRAINING_SET

SHOW_ANYTHING

public static final boolean SHOW_ANYTHING

SHOW_NEURON_DETAILS

public static final boolean SHOW_NEURON_DETAILS

neurons

Neuron[] neurons

input

TemporalCodedInput input

sync

ViewSynchronizer sync

views

ScrollingView[] views

synapseResponse

PLFunction synapseResponse
Constructor Detail

SOMPanel

public SOMPanel()
Method Detail

printMatrix

private void printMatrix(double[][] m,
                         boolean diagonalZero)

init

public void init()

reset

public void reset()
Description copied from class: mosaic.sim.kernel.ModelPanel
Resets the model, intializes its state
Overrides:
reset in class mosaic.sim.kernel.ModelPanel

processSimEvent

public void processSimEvent(mosaic.sim.kernel.simevent.SimEvent evt)
Description copied from interface: mosaic.sim.kernel.simevent.SimEventListener
Reacts to SimEvents from SimEventComponents. This is the event method for reacting to SimEvents
Specified by:
processSimEvent in interface mosaic.sim.kernel.simevent.SimEventListener

addSimEventComponent

public void addSimEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
Description copied from interface: mosaic.sim.kernel.simevent.SimEventListener
Adds a SimEventComponent this listener listens to. Is called from addSimEventListener of SimEventComponent.
Specified by:
addSimEventComponent in interface mosaic.sim.kernel.simevent.SimEventListener

removeSimEventComponent

public void removeSimEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
Description copied from interface: mosaic.sim.kernel.simevent.SimEventListener
Removes a SimEventComponent this listener listens to. Is called from removeSimEventListener of SimEventComponent.
Specified by:
removeSimEventComponent in interface mosaic.sim.kernel.simevent.SimEventListener

addTimeEventComponent

public void addTimeEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
Description copied from interface: mosaic.sim.kernel.simevent.TimeEventListener
Adds a TimeEventComponent. Is called from addTimeEventListener of TimeEventComponent.
Specified by:
addTimeEventComponent in interface mosaic.sim.kernel.simevent.TimeEventListener

removeTimeEventComponent

public void removeTimeEventComponent(mosaic.sim.kernel.simevent.SimEventComponent c)
Description copied from interface: mosaic.sim.kernel.simevent.TimeEventListener
Removes a TimeEventComponent. Is called from removeTimeEventListener of TimeEventComponent.
Specified by:
removeTimeEventComponent in interface mosaic.sim.kernel.simevent.TimeEventListener