<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Tue Apr 03 19:26:34 CDT 2001 -->
<TITLE>
: Interface  Cell
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Cell.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
net.openai.ai.ga.cell</FONT>
<BR>
Interface  Cell</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../net/openai/ai/ga/cell/AbstractCell.html">AbstractCell</A></DD>
</DL>
<HR>
<DL>
<DT>public interface <B>Cell</B></DL>

<P>
The <code>Cell</code> interface is an encapsulation of data that will
 be used to try to solve a problem (<code>Environment</code>). It is
 provided as an Interface to allow for maximum flexibility in the
 implementation of the solution. The <code>Cell</code>s must know how
 to interact with the <code>Environment</code>, as none of that is provided
 here. A <code>Cell</code> must know how to perform the following functions:
 <ul>
   <li>Mature (or age)
   <li>Evaluate
   <li>Return its fitness as an integer
   <li>Combine (or reproduce)
   <li>Mutate
 </ul>
<P>
<DL>
<DT><B>Since: </B><DD>JDK1.3</DD>
</DL>
<HR>

<P>
<!-- ======== INNER CLASS SUMMARY ======== -->


<!-- =========== FIELD SUMMARY =========== -->


<!-- ======== CONSTRUCTOR SUMMARY ======== -->


<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../net/openai/ai/ga/population/Population.html">Population</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/openai/ai/ga/cell/Cell.html#combine(net.openai.ai.ga.population.Population)">combine</A></B>(<A HREF="../../../../../net/openai/ai/ga/population/Population.html">Population</A>&nbsp;parents)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells the cell to create new offspring, which will be placed in
 the population.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/openai/ai/ga/cell/Cell.html#condemn()">condemn</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells the cell that it has been condemned to die.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/openai/ai/ga/cell/Cell.html#evaluateFitness(net.openai.ai.ga.environment.Environment)">evaluateFitness</A></B>(<A HREF="../../../../../net/openai/ai/ga/environment/Environment.html">Environment</A>&nbsp;env)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the fitness of the <code>Cell</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/openai/ai/ga/cell/Cell.html#getFitness()">getFitness</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the fitness of the <code>Cell</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/openai/ai/ga/cell/Cell.html#getMaturity()">getMaturity</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maturity of the <code>Cell</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/openai/ai/ga/cell/Cell.html#mature()">mature</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells the cell to mature.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../net/openai/ai/ga/cell/Cell.html#mutate()">mutate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells the cell that it has been chosen to mutate.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->


<!-- ========= CONSTRUCTOR DETAIL ======== -->


<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="getFitness()"><!-- --></A><H3>
getFitness</H3>
<PRE>
public double <B>getFitness</B>()</PRE>
<DL>
<DD>Return the fitness of the <code>Cell</code>. This call does not
 neccessarily require that a new evaluation is performed, only that
 the last fitness generated is desired. This is the preferred method
 for any function curious about the cell's fitness as it should not
 require any complex calculations. The fitness must be quantifiable
 as an integer.<DD><DL>
<DT><B>Returns:</B><DD>a <code>double</code> representing the fitness of this
           <code>Cell</code></DL>
</DD>
</DL>
<HR>

<A NAME="evaluateFitness(net.openai.ai.ga.environment.Environment)"><!-- --></A><H3>
evaluateFitness</H3>
<PRE>
public double <B>evaluateFitness</B>(<A HREF="../../../../../net/openai/ai/ga/environment/Environment.html">Environment</A>&nbsp;env)</PRE>
<DL>
<DD>Return the fitness of the <code>Cell</code>. This call asks that a new
 evaluation is performed. This method is called during every iteration
 of a <code>Population</code>. The implementation must determine whether
 a new evaluation is required or whether the last returned value will
 suffice. The fitness must be quantifiable as an integer. This function
 should only be called if there is reason to ask for a new value, but
 should be generally avoided since it may require extra overhead.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>env</CODE> - the <code>Environment</code> to evaluate against<DT><B>Returns:</B><DD>a <code>double</code> representing the fitness of this
           <code>Cell</code></DL>
</DD>
</DL>
<HR>

<A NAME="getMaturity()"><!-- --></A><H3>
getMaturity</H3>
<PRE>
public int <B>getMaturity</B>()</PRE>
<DL>
<DD>Returns the maturity of the <code>Cell</code>.<DD><DL>
<DT><B>Returns:</B><DD>the maturity of this <code>Cell</code></DL>
</DD>
</DL>
<HR>

<A NAME="condemn()"><!-- --></A><H3>
condemn</H3>
<PRE>
public void <B>condemn</B>()</PRE>
<DL>
<DD>Tells the cell that it has been condemned to die. This allows for any
 extra clean-up necessary or for record-keeping of cells that are
 removed from a population. It is not required that the Cell destroy
 itself or any objects, but is provided as notification that the Cell
 will be removed from the population.</DL>
<HR>

<A NAME="mutate()"><!-- --></A><H3>
mutate</H3>
<PRE>
public void <B>mutate</B>()</PRE>
<DL>
<DD>Tells the cell that it has been chosen to mutate.</DL>
<HR>

<A NAME="mature()"><!-- --></A><H3>
mature</H3>
<PRE>
public void <B>mature</B>()</PRE>
<DL>
<DD>Tells the cell to mature. This function is called before evaluation
 on the cells. Outside calling of this function should be avoided as it
 may cause over-maturation of a cell. This function may also be as
 simple as incrementing the age of the cell.</DL>
<HR>

<A NAME="combine(net.openai.ai.ga.population.Population)"><!-- --></A><H3>
combine</H3>
<PRE>
public <A HREF="../../../../../net/openai/ai/ga/population/Population.html">Population</A> <B>combine</B>(<A HREF="../../../../../net/openai/ai/ga/population/Population.html">Population</A>&nbsp;parents)</PRE>
<DL>
<DD>Tells the cell to create new offspring, which will be placed in
 the population. The offspring should be new <code>Cell</codes created
 by some combination of the parents and should also be initialized with
 data. The instance of <code>Cell</code> called is the first Cell in the
 <code>Population</code>.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parents</CODE> - the chosen <code>Population</code> of parents for
				the new cell<DT><B>Returns:</B><DD>a new <code>Population</code> to be added into the population</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Cell.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>

</BODY>
</HTML>
