edu.uah.math.experiments
Class MarkovChainExperiment

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by javax.swing.JApplet
                      extended by edu.uah.math.experiments.Experiment
                          extended by edu.uah.math.experiments.MarkovChainExperiment
All Implemented Interfaces:
IExperiment, Pluginable, java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.WindowListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ChangeListener, javax.swing.RootPaneContainer

public class MarkovChainExperiment
extends Experiment
implements java.io.Serializable

This class models a basic Markov chain with state space {0, 1, ..., n}. The number of states can be varied and the transition probabilites can be specified. The states are represented by balls, and the current state is colored red. The initial state can be specified by clicking on a ball when the time is 0. The graph and table show the proportion of time spent in each state. As time increases, these proportions converge to the steady-state probabilities of the chain.

Version:
August, 2003
Author:
Dawn Duehring, Kyle Siegrist
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class edu.uah.math.experiments.Experiment
applet, componentPanel, GREEN, RED, showModelDistribution, stopChoice, stopCount, stopFreq, stopNow, time, timer, toolBars, toolIndex, updateCount, updateFreq
 
Fields inherited from class javax.swing.JApplet
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
MarkovChainExperiment()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          This method handles the action event associated with the probability button.
 void doExperiment()
          This method defines the experiment.
 java.lang.String getAppletInfo()
          This method returns basic information about the applet, including copyright information, descriptive informaion, and instructions.
 javax.swing.JTable getResultTable()
           
 void init()
          This method initialize the experiment, including the toolbar, record table, Markov chain, histogram, and data table.
 void mouseClicked(java.awt.event.MouseEvent e)
          This method sets the initial state when the user clicks on a ball.
 void reset()
          This method resets the experiment, including the Markov chain, the record table the histogram and data table.
 void stateChanged(javax.swing.event.ChangeEvent e)
          This method handles the scrollbar events for changing the number of states.
 void step()
          This method performs the next step in the process.
 void update()
          This method updates the experiment, including the record table, Markov chain, histogram, and data table.
 
Methods inherited from class edu.uah.math.experiments.Experiment
addComponent, addComponent, addComponent, addTool, addToolBar, clearToolBars, format, getComponentPanel, getDisplayPane, getMainToolBar, getOnlineDescription, getStopChoice, getStopFreq, getTime, getTimer, getUpdateChoice, graphUpdate, initialize, itemStateChanged, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, pasteData, playnote, playnote, run, setApplet, setDecimalFormat, setShowModelDistribution, setStopChoice, setStopChoiceTipText, setStopFreq, setStopNow, stop, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
Methods inherited from class javax.swing.JApplet
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isRootPaneCheckingEnabled, paramString, remove, repaint, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.ucla.stat.SOCR.core.Pluginable
getName
 

Constructor Detail

MarkovChainExperiment

public MarkovChainExperiment()
Method Detail

init

public void init()
This method initialize the experiment, including the toolbar, record table, Markov chain, histogram, and data table.

Overrides:
init in class Experiment

getAppletInfo

public java.lang.String getAppletInfo()
This method returns basic information about the applet, including copyright information, descriptive informaion, and instructions.

Specified by:
getAppletInfo in interface IExperiment
Overrides:
getAppletInfo in class Experiment
Returns:
applet information

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent e)
This method handles the scrollbar events for changing the number of states.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener
Overrides:
stateChanged in class Experiment
Parameters:
e - the change event

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
This method handles the action event associated with the probability button. The transition probability dialog is diplayed.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class Experiment
Parameters:
e - the action event

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
This method sets the initial state when the user clicks on a ball.

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Overrides:
mouseClicked in class Experiment
Parameters:
e - the mouse event

step

public void step()
This method performs the next step in the process. A note is played, depending on the state.

Specified by:
step in interface IExperiment
Overrides:
step in class Experiment

reset

public void reset()
This method resets the experiment, including the Markov chain, the record table the histogram and data table.

Specified by:
reset in interface IExperiment
Overrides:
reset in class Experiment

doExperiment

public void doExperiment()
This method defines the experiment. The Markov chain moves to the next state.

Specified by:
doExperiment in interface IExperiment
Overrides:
doExperiment in class Experiment

update

public void update()
This method updates the experiment, including the record table, Markov chain, histogram, and data table.

Specified by:
update in interface IExperiment
Overrides:
update in class Experiment

getResultTable

public javax.swing.JTable getResultTable()
Specified by:
getResultTable in interface IExperiment
Overrides:
getResultTable in class Experiment