| 
<?
require_once('ga.php');
 class Test {
 var $p1;
 var $p2;
 
 function Test($p1=0,$p2=0) {
 $this->p1 = $p1;
 $this->p2 = $p2;
 }
 }
 
 function debug($x) {
 echo "<pre style='border: 1px solid black'>";
 print_r($x);
 echo '</pre>';
 }
 
 //This will be the mutation function. Just increments the property.
 function inc($x) {
 return $x+1;
 }
 //This will be the fitness function. Is just the sum of all properties.
 function total($obj) {
 return $obj->p1 + $obj->p2;
 }
 
 $t1 = new Test(1,4);
 $t2 = new Test(3,2);
 $ga = new GA();
 $ga->population = array($t1,$t2);
 $ga->fitness_function = 'total';    //Uses the 'total' function as fitness function
 $ga->num_couples = 1;                //1 couple per generation
 $ga->death_rate = 0;                //1 death per generation
 $ga->generations = 10;                //Executes 10 generations
 $ga->crossover_functions = 'max';   //Uses the 'max' (built-in) function as crossover function
 $ga->mutation_function = 'inc';        //Uses the 'inc' function as mutation function
 $ga->mutation_rate = 1;                //1% mutation rate
 $ga->evolve();                        //Run
 debug($ga->population);
 ?>
 
 |