428 lines
16 KiB
HTML
428 lines
16 KiB
HTML
|
<HTML>
|
||
|
<HEAD>
|
||
|
<TITLE>lilgpMonitor User's Manual</TITLE>
|
||
|
</HEAD>
|
||
|
<BODY bgcolor="#dfdfdf">
|
||
|
<P>
|
||
|
<h1><I>lilgpMonitor</I> User's Manual</h1>
|
||
|
<P>
|
||
|
<h2>1.1 Introduction</h2>
|
||
|
<font size=3>
|
||
|
<I>lilgpMonitor</I> is a companion utility for <I>lil-gp</I> that
|
||
|
allows you to monitor the run-time progress of <I>lil-gp</I>
|
||
|
experiments. It provides you with a mechanism to easily plot various
|
||
|
genetic programming metrics such as mean standardized fitness, mean
|
||
|
tree size, etc. After selecting a <I>lil-gp</I> statistics file, you
|
||
|
may plot up to two curves on the same monitor using a variety of
|
||
|
scaling techniques and line styles. You also have the ability to plot
|
||
|
statistics for either the entire population or specific
|
||
|
sub-populations. Several monitors can be used to simultaneously
|
||
|
observe the trends of several genetic programming metrics. At the end
|
||
|
of the experiment, the graphs can be saved in a GIF format, allowing
|
||
|
them to be easily imported into word-processing documents.<BR>
|
||
|
|
||
|
<P>
|
||
|
If you are unfamiliar with genetic algorithms, genetic programming, or
|
||
|
<I>lil-gp</I>, then you should begin by reading the <I>lil-gp User's
|
||
|
Manual</I>.
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
<h3>1.1.1 Features</h3>
|
||
|
<font size=3>
|
||
|
<I>lilgpMonitor</I> features
|
||
|
include:
|
||
|
<UL>
|
||
|
<LI>Comparative Analysis: able to have several monitors open
|
||
|
simultaneously, each plotting up to two GP metrics
|
||
|
<LI>Useful: graphs can be exported as GIF files for easy import into
|
||
|
word processors
|
||
|
<LI>Timed updates: automatically re-reads statistics file and updates
|
||
|
graphs at regular intervals
|
||
|
<LI>Manual updates: can manually control graph updates
|
||
|
<LI>Intelligent scaling function: automatically calculates 'nice' tick
|
||
|
placements on the y-axis
|
||
|
<LI>User specified scales: accepts maximum y-axis values from user
|
||
|
<LI>Independent scale selection: plot metrics using independent scales
|
||
|
<LI>Dependent scale selection: plot metrics using the same scale
|
||
|
<LI>Sub-population support: Point and click selection of
|
||
|
sub-population statistics
|
||
|
<LI>Line styles: different line styles available
|
||
|
<LI>Help: linked to on-line help system
|
||
|
</UL>
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
|
||
|
<h3>1.1.2 Limitations</h3>
|
||
|
<font size=3>
|
||
|
<I>lilgpMonitor</I> is capable of plotting all of the statistics
|
||
|
generated by <I>lil-gp</I>, including the ability to plot statistics
|
||
|
for specific sub-populations. In that regard, there are no
|
||
|
limitations. However, there are limitations with respect to Java.
|
||
|
Unfortunately, Java is slow, executing at about 1/20<SUP>th</SUP> the
|
||
|
speed of compiled C code [Fla96]. This is especially evident when
|
||
|
reading large statistics files. For example, loading a file
|
||
|
containing statistics for a 50 generation experiment with 5
|
||
|
sub-populations takes approximately 15 seconds on a Sparc20 with 64Mb
|
||
|
RAM. There is hope; Sun claims that the performance of Java
|
||
|
byte-codes converted to machine code is nearly as fast as native C or
|
||
|
C++[Fla96].<BR>
|
||
|
|
||
|
<P>
|
||
|
The current version of <I>lilgpMonitor</I> does not perform any data
|
||
|
manipulation such as smoothing. As a result, data sets containing
|
||
|
localized spikes that are several orders of magnitude larger than the
|
||
|
average trend cause curves to appear 'flat' when plotted. However,
|
||
|
since the user has control over the maximum value for the y-axis,
|
||
|
there is some mechanism for producing useful information in these
|
||
|
cases. This may or may not be considered a limitation.
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
|
||
|
<h3>1.1.3 Author</h3>
|
||
|
<font size=3>
|
||
|
This software was written by Ryan Shoemaker under the direction of
|
||
|
Dr. William Punch. Other companion utilities for <I>lil-gp</I> have
|
||
|
been developed by Ryan Shoemaker and Dave Guyette as part of a joint
|
||
|
project. <BR>
|
||
|
|
||
|
<P>
|
||
|
Comments and suggestions may be sent to:
|
||
|
<P>
|
||
|
|
||
|
<blockquote>
|
||
|
<FONT SIZE=3 FACE="Courier New">
|
||
|
<a href="mailto:shoema16@cps.msu.edu">shoema16@cps.msu.edu</a><br>
|
||
|
<a href="mailto:punch@cps.msu.edu">punch@cps.msu.edu</a><BR>
|
||
|
<P>
|
||
|
Department of Computer Science<br>
|
||
|
3115 Engineering Building<br>
|
||
|
Michigan State University<br>
|
||
|
East Lansing, MI 48824<br>
|
||
|
USA<br>
|
||
|
</font>
|
||
|
</blockquote>
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
<h2>1.2 Getting Started </h2>
|
||
|
<font size=3>
|
||
|
When you unpack the distribution, you should get
|
||
|
this directory tree:
|
||
|
<P>
|
||
|
|
||
|
<pre>
|
||
|
<FONT SIZE=3 FACE="Courier New">
|
||
|
lilgpMonitor/
|
||
|
classes/ (byte-code files)
|
||
|
docs/ (documentation files)
|
||
|
images/ (image files used in documentation)
|
||
|
javadocs/ (source-code documentation files)
|
||
|
images/ (image files used in source-code documentation)
|
||
|
src/ (source-code files)
|
||
|
<BR>
|
||
|
</FONT>
|
||
|
</pre>
|
||
|
|
||
|
<P>
|
||
|
Before using <I>lilgpMonitor</I>, you must have Java JDK 1.02
|
||
|
installed on your system. To generate the <FONT SIZE=3 FACE="Courier
|
||
|
New">.class</FONT> files, change into the <FONT SIZE=3 FACE="Courier
|
||
|
New">lilgpMonitor/src</FONT> directory and type:
|
||
|
<P>
|
||
|
<FONT SIZE=3 FACE="Courier New">javac -d ../classes *.java</FONT>
|
||
|
<P>
|
||
|
To run <I>lilgpMonitor</I>, simply change into the <FONT SIZE=3
|
||
|
FACE="Courier New">lilgpMonitor/classes</FONT> directory and type:
|
||
|
<P>
|
||
|
<FONT SIZE=3 FACE="Courier New">java lilgpMonitor</FONT>
|
||
|
<P>
|
||
|
If you are running the utilities under Windows95/NT, you will have to
|
||
|
modify the paths in the above commands and also add the <FONT SIZE=3
|
||
|
FACE="Courier New">lilgpMonitor/classes</FONT> directory to your <FONT
|
||
|
SIZE=3 FACE="Courier New">CLASSPATH</FONT> <I>in place of</I> the dot
|
||
|
directory ".".<BR>
|
||
|
|
||
|
<P>
|
||
|
This is version 1.0 of <I>lilgpMonitor</I>. Updates and information
|
||
|
related to <I>lilgpMonitor</I> can be found on the World Wide Web at
|
||
|
<FONT SIZE=3 FACE="Courier New"><a href="http://isl.cps.msu.edu">
|
||
|
http://isl.cps.msu.edu</a></FONT>.
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
|
||
|
<h2>1.3 The Main Window</h2>
|
||
|
<font size=3>
|
||
|
The only window in <I>lilgpMonitor</I> is shown in Figure 1. This
|
||
|
section will give a brief overview of the options available and the
|
||
|
next section will give detailed explanations of each feature.<BR>
|
||
|
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<img src="images/twoplot-ind.jpg"><p>
|
||
|
<strong>Figure 1 - The Main Window</strong><p>
|
||
|
</CENTER>
|
||
|
<P>
|
||
|
As you can see, there are four menus available in the menubar at the
|
||
|
top of the window. From the <I>File</I> menu, you may open a
|
||
|
statistics file, save your graph as a GIF file, create a new monitor,
|
||
|
close the current monitor, or close all monitors. From the
|
||
|
<I>Graph</I> menu, you may select a line style for the curves. The
|
||
|
<I>Update</I> menu has options for selecting either manual updates or
|
||
|
automatic timed updates. Finally, the <I>Help</I> menu provides
|
||
|
access to the on-line help system and also information about the
|
||
|
author and version of <I>lilgpMonitor</I> that you are using.<BR>
|
||
|
|
||
|
<P>
|
||
|
The actual graph sits in the middle of the window, with all of its
|
||
|
controls along the bottom. In Figure 1, there are two curves on the
|
||
|
graph, each with its own scale. The red scale appears on the left
|
||
|
axis, while the blue scale appears on the right axis. The various
|
||
|
controls on the bottom of the widow allow you to select a scale, the
|
||
|
maximum scale values, and the GP metrics and sub-populations you want
|
||
|
to plot.
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
|
||
|
<h2>1.4 Feature Descriptions</h2>
|
||
|
<font size=3>
|
||
|
The features listed in this section apply only to the monitor in which
|
||
|
you make the selection. For example, changing the automatic update
|
||
|
interval to five minutes in one monitor will have no impact on the
|
||
|
settings in any other monitors that are currently open or any monitors
|
||
|
that are opened at a later time.
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
|
||
|
<h3>1.4.1 The File Menu</h3>
|
||
|
<font size=3>
|
||
|
The <I>File</I> menu lets you perform file operations and
|
||
|
create/destroy monitors.<BR>
|
||
|
|
||
|
<UL>
|
||
|
<LI>Selecting <I>Open</I> causes a file dialog to appear. Simply
|
||
|
select the statistics file that you are interested in and it will be
|
||
|
opened.
|
||
|
<LI>Selecting <I>Save As</I> also causes a file dialog to appear.
|
||
|
Simply supply a file name and the graph will be converted into GIF
|
||
|
format and saved.
|
||
|
<LI>Selecting <I>New Viewer</I> will create a new statistics monitor
|
||
|
that contains all of the same features as the original monitor that
|
||
|
you opened.
|
||
|
<LI>Selecting <I>Close Viewer</I> will destroy the current monitor.
|
||
|
Any other monitors that are currently open will remain open.
|
||
|
<LI>Selecting <I>Exit All</I> will destroy all of the monitors that
|
||
|
are currently open.
|
||
|
</UL>
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
|
||
|
<h3>1.4.2 The Graph Menu</h3>
|
||
|
<font size=3>
|
||
|
The <I>Graph</I> menu lets you select the line style
|
||
|
you would like to apply to the curves.
|
||
|
<UL>
|
||
|
<LI>Selecting <I>Lines</I> will cause the curves to be plotted using
|
||
|
line segments to connect the data points, as shown in Figure 2.
|
||
|
<LI>Selecting <I>Lines + Points</I> will cause the curves to plotted
|
||
|
using line segments to connect the data points, but will also draw a
|
||
|
small diamond indicating the actual positions of the data points on
|
||
|
the curve, as shown in Figure 3.
|
||
|
</UL>
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<img src="images/lines.gif"><p>
|
||
|
<strong>Figure 2 - Lines</strong><p>
|
||
|
</CENTER>
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<img src="images/linespoints.gif"><p>
|
||
|
<strong>Figure 3 - Lines + Points</strong><p>
|
||
|
</CENTER>
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
|
||
|
<h3>1.4.3 The Update Menu</h3>
|
||
|
<font size=3>
|
||
|
The <I>Update</I> menu lets you select the timing of graph updates.
|
||
|
<UL>
|
||
|
<LI>Selecting <I>Manual Updates/Update Now</I> does two things.
|
||
|
First, is stops the automatic update timer if it is currently set.
|
||
|
Second, it reads the contents of the statistics file and refreshes the
|
||
|
graph immediately.
|
||
|
<LI>Selecting any of the update intervals sets the timer to update the
|
||
|
graph automatically. For example, selecting <I>5 Minutes</I> will
|
||
|
cause the monitor to re-read the statistics file and refresh the graph
|
||
|
every five minutes.
|
||
|
</UL>
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
<h3>1.4.4 The Help Menu</h3>
|
||
|
<font size=3>
|
||
|
<UL>
|
||
|
<LI>Selecting <I>Help</I> provides access to the on-line help system.
|
||
|
<LI>Selecting <I>About</I> provides information about the version of
|
||
|
lilgpMonitor that you are using.
|
||
|
</UL>
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
<h3>1.4.5 Selecting a Scale</h3>
|
||
|
<font size=3>
|
||
|
Below the graph, there are three boxes labeled '<I>Red Scale</I>',
|
||
|
'<I>Independent Scales</I>', and '<I>Blue Scale</I>.' These controls
|
||
|
allow you to choose which scales to use and specify maximum scale
|
||
|
values. <BR>
|
||
|
|
||
|
<P>
|
||
|
The default setting for the scale is <I>Independent</I>
|
||
|
A<I>utomatic</I> scaling. This means that <I>lilgpMonitor</I> will
|
||
|
examine the data set and determine the best scales to use when
|
||
|
plotting the curves. Figure 4 shows the result of using this
|
||
|
combination of settings. In this case, the red curve is plotted using
|
||
|
the scale on the left axis, while the blue curve is plotted using the
|
||
|
scale on the right axis. These curves are plotted using
|
||
|
<I>independent</I> scales. Since there are no values supplied in the
|
||
|
<I>y-max</I> fields, <I>lilgpMonitor</I> automatically selects values
|
||
|
that will allow the entire data set to be visible within the graph -
|
||
|
this is <I>automatic</I> scaling. These settings are useful when you
|
||
|
would like to view two GP metrics that are unrelated
|
||
|
(i.e. standardized fitness versus tree size).
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<img src="images/twoplot-ind.jpg"><p>
|
||
|
<strong>Figure 4 - Independent Autoscaling</strong><P>
|
||
|
</CENTER>
|
||
|
<P>
|
||
|
By clicking on either the '<I>red</I>' or '<I>blue</I>' checkboxes,
|
||
|
you will be selecting a <I>dependent</I> scaling mechanism with
|
||
|
<I>automatic</I> scaling. This means that <I>lilgpMonitor</I> will
|
||
|
apply the selected scale to both curves. Figure 5 shows the red scale
|
||
|
being applied to both curves, while Figure 6 shows the blue scale
|
||
|
being applied to both curves. These settings are useful when you
|
||
|
would like to compare two GP metrics that are related
|
||
|
(i.e. standardized fitness of sub-population 1 versus standardized
|
||
|
fitness of sub-population 2). Looking back at Figure 4, you can see
|
||
|
how it can be difficult to determine the relationship between two GP
|
||
|
metrics when using <I>Independent Autoscaling</I>. It isn't until you
|
||
|
examine Figure 5 where <I>Dependent Autoscaling</I> is used that you
|
||
|
can clearly see the relationship between the two curves. Since the
|
||
|
blue curve falls below the red curve in every generation, the red
|
||
|
curve is not visible when <I>Dependent Autoscaling</I> is set on the
|
||
|
blue curve in Figure 6.
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<img src="images/twoplot-red.jpg"><p>
|
||
|
<strong>Figure 5 - Red Dependent Autoscaling</strong><p>
|
||
|
</CENTER>
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<img src="images/twoplot-blue.jpg"><p>
|
||
|
<strong>Figure 6 - Blue Dependent Autoscaling</strong><p>
|
||
|
</CENTER>
|
||
|
<P>
|
||
|
By changing the values in the <I>y-max</I> fields, you are selecting
|
||
|
<I>manual</I> scaling. It is possible to have <I>manual</I> scaling
|
||
|
active for one curve and <I>automatic</I> scaling active for the other
|
||
|
curve by supplying a value for <I>y-max</I> in only one of the
|
||
|
textfields. It is important to understand that when you select
|
||
|
<I>manual</I> scaling, you are not actually specifying the scale of
|
||
|
the curve, <I>per se</I>, but rather the maximum value that will be
|
||
|
used to in determining the scale. For example, specifying a
|
||
|
<I>y-max</I> value of 0.5 for the red curve will cause it to truncate
|
||
|
the top of the tallest spikes as shown in Figure 7.
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<img src="images/twoplottrunc.jpg"><p>
|
||
|
<strong>Figure 7 - Independent Manual Scaling</strong><p>
|
||
|
</CENTER>
|
||
|
<P>
|
||
|
</font>
|
||
|
|
||
|
<h3>1.4.6 Selecting the GP Metrics</h3>
|
||
|
<font size=3>
|
||
|
Below the scale selection boxes, there are two pull-down list menus
|
||
|
that allow you to choose the GP metrics to display. The default
|
||
|
setting is <I>Gen Fitness - Mean</I> for the red curve and <I>None</I>
|
||
|
for the blue curve. Figure 8 outlines all of the available metrics
|
||
|
and their abbreviations. <BR>
|
||
|
<BR>
|
||
|
|
||
|
<center>
|
||
|
<TABLE BORDER=1>
|
||
|
<TR bgcolor="#aaaaff"><TD><CENTER>GP Metric</CENTER>
|
||
|
</TD><TD><CENTER>Abbreviation Used in <I>lilgpMonitor</I></CENTER>
|
||
|
</TD></TR>
|
||
|
<TR><TD>mean standardized fitness of generation</TD>
|
||
|
<TD>Gen Fitness - Mean</TD></TR>
|
||
|
<TR><TD>standardized fitness of best-of-generation individual
|
||
|
</TD><TD>Gen Fitness - Best</TD></TR>
|
||
|
<TR><TD>standardized fitness of worst-of-generation individual
|
||
|
</TD><TD>Gen Fitness - Worst</TD></TR>
|
||
|
<TR><TD>mean tree size of generation</TD><TD>Gen Tree Size - Mean
|
||
|
</TD></TR>
|
||
|
<TR><TD>mean tree depth of generation</TD><TD>Gen Tree Depth - Mean
|
||
|
</TD></TR>
|
||
|
<TR><TD>tree size of best-of-generation individual</TD>
|
||
|
<TD>Gen Tree Size - Best</TD></TR>
|
||
|
<TR><TD>tree depth of best-of-generation individual
|
||
|
</TD><TD>Gen Tree Depth - Best</TD></TR>
|
||
|
<TR><TD>tree size of worst-of-generation individual
|
||
|
</TD><TD>Gen Tree Size - Worst</TD></TR>
|
||
|
<TR><TD>tree depth of worst-of-generation individual
|
||
|
</TD><TD>Gen Tree Depth - Worst</TD></TR>
|
||
|
<TR><TD>mean standardized fitness of run</TD><TD>Fitness - Mean
|
||
|
</TD></TR>
|
||
|
<TR><TD>standardized fitness of best-of-run individual
|
||
|
</TD><TD>Fitness - Best</TD></TR>
|
||
|
<TR><TD>standardized fitness of worst-of-run individual
|
||
|
</TD><TD>Fitness - Worst</TD></TR>
|
||
|
<TR><TD>mean tree size of run</TD><TD>Tree Size - Mean
|
||
|
</TD></TR>
|
||
|
<TR><TD>mean tree depth of run</TD><TD>Tree Depth - Mean
|
||
|
</TD></TR>
|
||
|
<TR><TD>tree size of best-of-run individual</TD><TD>Tree Size - Best
|
||
|
</TD></TR>
|
||
|
<TR><TD>tree depth of best-of-run individual</TD><TD>Tree Depth - Best
|
||
|
</TD></TR>
|
||
|
<TR><TD>tree size of worst-of-run individual</TD><TD>Tree Size - Worst
|
||
|
</TD></TR>
|
||
|
<TR><TD>tree depth of worst-of-run individual</TD><TD>Tree Depth - Worst
|
||
|
</TD></TR>
|
||
|
</TABLE>
|
||
|
<p>
|
||
|
<strong>Figure 8 - Available GP Metrics</strong>
|
||
|
</CENTER>
|
||
|
</font>
|
||
|
|
||
|
<P>
|
||
|
<h3>1.4.7 Selecting the Sub-Populations</h3>
|
||
|
<font size=3>
|
||
|
Below the GP metric selection components, there are two list boxes
|
||
|
that allow you to select which sub-population you would like to
|
||
|
monitor. The default setting is to view the overall statistics.
|
||
|
Using these list boxes is more clumsy than it should be due to
|
||
|
bugs in Java's AWT event model. Unfortunately, on the x86 port
|
||
|
of Java, list selection events only occur if you double-click
|
||
|
on the list item. Even though selecting a list item with a single-click
|
||
|
<I>appears</I> to change the list selection, it does not generate
|
||
|
a list selection event, at least not on x86 machines. Therefore,
|
||
|
in an effort to remain consistent on every platform, you must
|
||
|
double-click the list items to select the sup-population. The
|
||
|
currently selected sub-population is preceded by an asterisk -
|
||
|
the sub-population that is obviously highlighted may not be the
|
||
|
sub-population that is actually being displayed in the graph.
|
||
|
Be careful!<BR>
|
||
|
</font>
|
||
|
|
||
|
</BODY>
|
||
|
</HTML>
|