------------------------------------------------------------------------------
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.