Newsgroups: comp.ai.genetic
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!nntp.sei.cmu.edu!news.psc.edu!hudson.lm.com!newsfeed.pitt.edu!gatech!news.mathworks.com!newshost.marcam.com!zip.eecs.umich.edu!umn.edu!news
From: "James Albert Larson" <larso171@maroon.tc.umn.edu>
Subject: Re: Advice on GA methods, and SUGAL
To: thasan@mayfair.demon.co.uk
Message-ID: <17041.larso171@maroon.tc.umn.edu>
X-Minuet-Version: Minuet1.0_Beta_16
Sender: news@news.cis.umn.edu (Usenet News Administration)
Nntp-Posting-Host: dialup-5-154.gw.umn.edu
X-Popmail-Charset: English
Organization: University of Minnesota, Twin Cities
Date: Thu, 17 Aug 1995 06:06:14 GMT
Lines: 114

Thasan,

>You had mentioned about Sugal 2.0 program. Where can I get a copy? 
>I never heard about it earlier. Please give me the name of the site. 
>I like to experiment it.

Here is the author's earlier announcement.  As for the ftp 
site, I think it should be osiris.sund.ac.uk, not osiris@sund.ac.uk,
at least the former worked with my internet software, and the latter 
didn't.

###############

The Sugal V2.0 Genetic Algorithms software package is now available. 
It features a wide range of GA paradigms, various datatypes, a Graphical 
User Interfacefor either PC or UNIX (using X/MOTIF), everything is designed 
for maximum extensibility and configurability, and its free!

Available via WWW at:

http://osiris.sund.ac.uk/ahu/sugal/home.html

or ftp at:

osiris@sund.ac.uk, directory /pub/sugal.

- Dr Andrew Hunter, University of Sunderland, England

#######################

I am digging into the Sugal code now, with hopes of modifying it to 
a multiple parallel genetic operator model (MPGO): e.g. the user can 
specify that whenever a genetic operator is selected at runtime, crossover 
operator #1 is selected with 30% probability, crossover op #2 is selected 
with 15% probability, ... , mutation op #1 is selected with 10% 
probability, mutation op #2 is selected with 15% probability, mutation op 
#3 is selected with 10% probability,.. and so on.  Currently, Sugal only 
supports the selection of one crossover operator followed by 1 mutation 
operator, which is what I call the 1C-1M model.  

In the 1C-1M model, the user has many crossover and many genetic operators 
to choose from pre-run.  But the user then must select only 1 of each, and 
those two operators (the crossover operator selected, followed by the 
mutation operator selected) are the only operators used in the program at 
runtime.  This is the one (and only one) glaring weakness of the program as 
far as using it as a basis for solving difficult problems.  About 
everything else that I consider really important is part of the program's 
capabilities, or can be extended by the C programmer, following the 
guidance of the 50+ page Programmer's Manual.

To use Sugal, first you must compile it.  The author developed using 
Borland C++ 3.0.  (Its C, not C++ code).  Its also been designed to run 
under Unix (Sun Solaris 2).  It has also been successfully run on OS/2 and 
SGI.  The interactive version has a Microsoft Windows GUI interface 
(written strictly from C Windows API calls from what I can tell), or 
X/Motif.  There is also a non-interactive version (included).  The 
interactive version is very nice -- I compiled the Dejong example project 
using Borland C++ 4.0 with no difficulty at all (BC++ 4.0 transparently and 
automatically converted the BC++3.0 .PRJ file to the BC++4.0 .IDE file).  
The result is a program where one can choose from many selection methods 
(such as simple roulette wheel, expected value model, tournament selection, 
uniform selection), and several replacement methods too numerous to 
mention, but including preselection and crowding for example.  Also a 
choice of several crossover operators (1 point, 2 point, n point, and 
uniform), and several mutation operators, and several ... and so on.

The interactive version displays a graph where statistics from one or more 
runs are displayed.

There are no executables included.  One must compile.

To use Sugal on one's own problem, one must, at a minimum, supply in C code 
(1) a main() function that optionally sets some parameters and then calls 
the Sugal main function, (2) an evaluation function which calculates the 
fitness given a chromosome.   And then compile.  One must also provide a 
configuration file.  The 50+ page programmer's manual includes many samples 
for doing this, and much additional on how to write one's own crossover 
operator, extend the mutation operator to adjust the mutation 
probability according to the population diversity (bias)  (the program has 
the capability built in to adjust the mutation probability according to 
the generation counter), and much more. 

There is also a 50+ page User Manual.

This description only scratches the surface of its features and 
capabilities.  Perhaps one last worth mentioning is that it is easily set 
up to handle multiple runs, varying one (or more) parameters, where one 
gives it a start, step, and stop value for a parameter.  If 2 or more 
parameters are specified, it does runs for all combinations of the 2 
parameters.

This program is freeware, but its definitely not toyware!

I'll answer the rest of your note by email, but thought the newsgroup would 
be interested in knowing a little more about Sugal (from a beginning user's 
perspective).

P.S.  I have the dejong.exe executable (Windows executable), but I won't 
respond to requests to email it to those having trouble compiling (once 
or twice I don't mind -- but I have difficulty with network timeouts when 
I email large files).  I am planning to upload to Compuserve's AIExpert 
forum the original Sugal package plus dejong.exe. (Dejong.exe is the 
Dejong 5 function demo program.  The source but not the executables is 
supplied with the original Sugal package).  I'm also planning to bug my 
internet provider (Univ. of Minnesota) for a place to stick things like 
this (dejong.exe) an other GA and Operations Research code that I've 
developed or enhanced.

I have not contacted the author (Dr. Andrew Hunter, Univ. of Sunderland, 
England) about including executables at his ftp site, but once I get done 
with my upload to Compuserve, I plan to.

Jim Larson

