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

SGOPT.
A C++ software library that provides a variety of
global and local optimization methods.  In particular, SGOPT has advanced
implementations of evolutionary algorithms and pattern search methods.

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

William E. Hart

Sandia National Laboratories
wehart@sandia.gov 

------------------------------------------------------------------------------
License.

SGOPT is distributed under the GNU Lesser General Public License.  It is free
software; you can redistribute it and/or modify it under the terms of the GNU
Lesser General Public License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.  A copy of
this license is included in the LICENSE file, and is also available online
from http://www.gnu.org/copyleft/lesser.html.  Also refer to the COPYRIGHT file
for important U.S. Government legal notices.

SGOPT contains software from several external optimization packages in the
sgopt/src/packages directory.  None of these packages are commercial, but 
please see their associated documentation when using SGOPT for commercial use.
By default, none of these packages are compiled into SGOPT.

------------------------------------------------------------------------------
Overview.

The principle directories contained in this distribution are

bin			Executables used to configure/compile SGOPT.

config			Makefile fragments

doc			Documentation about SGOPT.  See below.

examples		Examples of the use of SGOPT optimizers.

include			A common directory where include files are linked
			(to faciliate the use of SGOPT as a library).

lib			Contains the compiled source archived in a library.

src			The source directories:

src/applib		Utility classes for defining parameters that can be
			processed from a file.

src/ds			Direct search methods.

src/ga			Evolutionary algorithms.

src/global		Global methods.

src/nlp			Nonlinear programming methods.

src/opt			Core optimization class definitions.

src/packages		Misc optimization packages included in SGOPT.

src/problib		A set of standard test problems.

src/python		Hooks for wrapping SGOPT routines in Python scripts.

src/qa			Routines for testing SGOPT utilities.

src/templates		Ignore.

src/vcpp		A VC++ project definition.

src/vcpp-proj		Another VC++ project definition.

------------------------------------------------------------------------------
Installation.

The installation procedure is very similar to the GNU installation.
If you have a tar file

	sgopt-2-0.tar.gz

then you can extract the source files with

	zcat | tar xvBf -

You should be able to configure SGOPT for your particular system by
typing

	./configure

in the main SGOPT directory and then type 

	make 

See the file INSTALL for further details on how to install this software.  

------------------------------------------------------------------------------
Dependencies

SGOPT requires the UTILIB library.  SGOPT will automatically detect UTILIB
if you install it in the same directory as SGOPT.

------------------------------------------------------------------------------
Platforms.

This package is quite generic and thus it should compile on a wide range
of platforms.  SGOPT is actively being developed for the following platforms:
(machines/OS with the given C++ compilers and MPI libraries)

  SUN      Solaris 2.8                CC v5.0         MPICH

  SGI      IRIX 6.5                   CC v7.3.1.2     SGI MPI

  DEC      OSF 4.0                    cxx v6.3        Digital MPI

  TFLOP    Cougar   (compute)         ciCC v4.0       MPICH
           TFLOP OS (service)         iCC  v4.0       MPICH

  PC       Red Hat LINUX 6.2/7.1      g++/egcs v.96   MPICH

Currently, the presence of gmake is required to successfully compile
on HP, SGI, and DEC platforms.  This package has also compiled on the
following machines in the past (although they are not actively supported):

  HP       HP-UX 10.20                CC              -

  IBM      AIX                         xlC             POE MPI

  Cplant   Cplant OS 0.46 (compute)   c++             MPICH
           LINUX          (service)   g++/egcs        MPICH

  PC       NT                         MS VC++         -

------------------------------------------------------------------------------
Versions.

This release is version 2.0.  The class structure for optimizers has been
significantly revised, and several new optimizers have been added.

------------------------------------------------------------------------------
Documentation.

Two forms of documentation are supported: html and pdf.  The main html page
can be accessed at 

	file:doc/html/index.html

The pdf version of this documentation is available at

        file:doc/userman.pdf.gz
        http://www.cs.sandia.gov/SGOPT/refman.pdf.gz


This documentation provides an abbreviated users guide (which needs
more work), as well as extensive source-level documentation generated
with doxygen. Additionally, this documentation is provided in the form
of man pages in

        sgopt/doc/man

Adding this directory to your MANPATH variable will enable the use of
'man' to gget information about specific classes or methods.

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

WARNING: This is a RESEARCH code and is the subject of continuing
active development.  Bug reports, suggestions for improvement, and
required changes for other machines/compilers are welcome.  Direct all
messages to sgopt@sandia.gov.