PGSL ConstraintSolver version 1.0 readme.

Copyright (C) Benny Raphael  

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or  any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

--------------------------------------------------------------------------

PGSL algorithm was developed by me while working at
IMAC, EPFL.  All the code was also implemented by me. 
The code is not as clean as my usual C code because the
algorithm and the code evolved over a large number of trials
and errors over a period of about six months during 1998-1999.  
I would like to thank Prof. Ian Smith for employing
me at EPFL and for his help in writing the first PGSL paper published
in the journal of applied mathematics and computation.

- Benny Raphael


---------------------------------------------------------------------------

ConstraintSolver was written because many people asked me how to solve 
constrained optimization problems using PGSL.  This is only a sample.  
I have written the code to automatically calculate all the PGSL parameters.
These can be taken as default values. But may not be good for all types of
problems.  

See UserHook.c to see how the constrained optimization problem is defined.  
Normally you need to modify only this file for implementing a new problem.  
You define your constraints, objective function and the maximum number of 
trials in this file.  The main code is in ConstraintSolver.c which need not
be modified. 


Remember:  PGSL is more suitable for continuous variables with nonlinear 
objective functions and nonlinear constraints.  There is no point in using 
PGSL for linear programming!  The power of PGSL is in handling blackbox
objective functions and constraints.  If you have discrete unordered variables,
you get good results by calling PGSL repeatedly like in multistart methods


The files to be included in your project are:
../error.c
../memory.c
../PGSL.c
ConstraintSolver.c
UserHook.c


- Benny





