gpsys.lawnmower
Class LawnMower

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--gpsys.lawnmower.LawnMower

public class LawnMower
extends java.awt.Frame
implements GPObserver

The user interface for the lawn mower problem. This class also contains the main() function to execute the application.

Version:
$Revision: 1.1 $, $Date: 2000/07/05 16:26:49 $
Author:
Adil Qureshi
Department of Computer Science,
University College London,
Gower St,
London WC1E 6BT,
UK.
See Also:
Serialized Form

Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
(package private)  java.lang.String filePrefix
          The file prefix to use for saving generations and writing reports.
(package private)  Lawn lawn
          The lawn being mowed.
 
Fields inherited from class java.awt.Frame
base, CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, frameSerializedDataVersion, HAND_CURSOR, icon, ICONIFIED, mbManagement, menuBar, MOVE_CURSOR, N_RESIZE_CURSOR, nameCounter, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, ownedWindows, resizable, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, serialVersionUID, state, SW_RESIZE_CURSOR, TEXT_CURSOR, title, W_RESIZE_CURSOR, WAIT_CURSOR, weakThis
 
Fields inherited from class java.awt.Window
active, base, focusMgr, inputContext, nameCounter, OPENED, ownedWindowList, serialVersionUID, state, warningString, weakThis, windowListener, windowSerializedDataVersion
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
LawnMower(Lawn lawn, java.lang.String filePrefix)
          Construct a lawn mower user interface.
 
Method Summary
 void diagnosticUpdate(java.lang.String s)
          Print the diagnostic message to the standard output.
 void exception(GPException e)
          Print the exception and generate a stack trace on the standard output.
 void generationUpdate(GPParameters gpParameters, int how)
          If the filePrefix is null, just write a report of the current generation to the standard output.
 void individualUpdate(GPParameters gpParameters, Individual i, int creationIndex)
          We are not interested in this update, so we just ignore it.
 void individualUpdate(GPParameters gpParameters, int individualIndex, int creationMethod)
          We are not interested in this update, so we just ignore it.
static void main(java.lang.String[] argv)
          The main() method of the lawn mower application.
 
Methods inherited from class java.awt.Frame
, addNotify, addToFrameList, constructComponentName, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, initIDs, isResizable, paramString, postProcessKeyEvent, readObject, remove, removeFromFrameList, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle, writeObject
 
Methods inherited from class java.awt.Window
addOwnedWindow, addWindowListener, applyResourceBundle, applyResourceBundle, connectOwnedWindow, dispatchEventImpl, dispose, eventEnabled, getFocusOwner, getInputContext, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, isActive, isShowing, nextFocus, ownedInit, pack, postEvent, postWindowEvent, preProcessKeyEvent, processEvent, processWindowEvent, removeOwnedWindow, removeWindowListener, setFocusOwner, setWarningString, show, toBack, toFront, transferFocus
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyOrientation, countComponents, deliverEvent, dispatchEventToSelf, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getMouseEventTarget, getPreferredSize, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, paint, paintComponents, postsOldMouseEvents, preferredSize, print, printComponents, printOneComponent, processContainerEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFont, setLayout, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkitImpl, getTreeLock, getWidth, getWindowForObject, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

lawn

Lawn lawn
The lawn being mowed.

filePrefix

java.lang.String filePrefix
The file prefix to use for saving generations and writing reports.
Constructor Detail

LawnMower

public LawnMower(Lawn lawn,
                 java.lang.String filePrefix)
Construct a lawn mower user interface.
Parameters:
lawn - The lawn being mowed.
lawn - The file prefix to use for saving generations and writing reports.
Method Detail

generationUpdate

public void generationUpdate(GPParameters gpParameters,
                             int how)
If the filePrefix is null, just write a report of the current generation to the standard output. Otherwise, also append the report to the file "filePrefix.txt" and save the current generation to the file "filePrefix.p1.gzip". If the termination criteria has been met, or the maximum number of generations have been reached, visualise the best lawn mower in action!!!
Specified by:
generationUpdate in interface GPObserver
Parameters:
gpParameters - The GP parameters used for this run.
how - How the generation was created. Can be either CREATION, FROMSTREAM or EVOLVED.

individualUpdate

public void individualUpdate(GPParameters gpParameters,
                             Individual i,
                             int creationIndex)
We are not interested in this update, so we just ignore it.
Specified by:
individualUpdate in interface GPObserver
Parameters:
gpParameters - the GP parameters used for this run.
i - the Individual that has just been created.
creationIndex - the index of the Individual in the population.

individualUpdate

public void individualUpdate(GPParameters gpParameters,
                             int individualIndex,
                             int creationMethod)
We are not interested in this update, so we just ignore it.
Parameters:
gpParameters - the GP parameters used for this run.
individualIndex - the index of the created Individual in the population.
creationMethod - how the Individual was created. Can be either VIA_MUTATION or VIA_CROSSOVER.

diagnosticUpdate

public void diagnosticUpdate(java.lang.String s)
Print the diagnostic message to the standard output.
Specified by:
diagnosticUpdate in interface GPObserver
Parameters:
s - The diagnostic message.

exception

public void exception(GPException e)
Print the exception and generate a stack trace on the standard output.
Specified by:
exception in interface GPObserver
Parameters:
e - The exception that was genearted.

main

public static void main(java.lang.String[] argv)
The main() method of the lawn mower application. This application may be invoked in any of the following ways.
		java LawnMower <filePrefix>
		java LawnMower <filePrefix> <generations>
		java LawnMower <filePrefix> <RNG seed> <population> <generations>
		java LawnMower <RNG seed> <population> <generations>
 
The first istructs the application to restart from the last saved session using the files with the prefix specified. The second is the same as the first, execept that the maximum number of geneartion is modified as specified. The third istructs the application to start a new run using the specifed file prefix for saves, and the specified parameters for the run. The last is the similar to the previous invokation except that nothing is saved to disk, and is hence very fast.