===========
Description
===========

Galeb is a simple command-line utility that tries to find an expression (an elementary function) that best describes the given data using a genetic algorithm. 

The parallel version starts multiple calculations with different random generator seeds, which is more beneficial than simply increasing the number of generations because any individual calculation may get stuck in local minima.

===================
Main files and directories
===================

* Executables

galeb-slave 

The single-process, single-thread, command-line version of Galeb, including the underlying GAlib library.

galeb-master-smp

The multi-process version of Galeb for use on SMP computers.

galeb-master-ssh

An undocumented and unsupported version for use over xos-ssh.

galeb-plot-result.sh

A shell script that plots the input data and the resulting function using Gnuplot. Only works for functions of one variable.

* Sample input data

A small set of descriptively named input files are provided:

x-squared-plus-one.txt
sine-of-x-plus-0.1-x-plus-noise.txt
finance.txt

* INSTALL: 
instructions for building the software

* README: 
this file

======================
Software prerequisites
======================

GAlib library
To plot the results using the supplied script, gnuplot must be installed.

=====
Usage
=====

To get help for the serial version, run
galeb-slave 

Similarly, for the SMP version, run
galeb-master-smp 

To run parallel version with 4 processes, 100 generations of the genetic algorithm, and plot the results, type

galeb-master-smp 4 ngen 100 in path/to/sample/data/x-squared-plus-one.txt |tee output.txt
galeb-plot-result.sh path/to/sample/data/x-squared-plus-one.txt output.txt 


