Skip to content
forked from vtopt/qnstop

Quasi-Newton Algorithm for Stochastic Optimization

Notifications You must be signed in to change notification settings

geofiber/qnstop

 
 

Repository files navigation

     QNSTOP: quasi-Newton stochastic optimization algorithm.

The package  QNSTOP  is a suite of serial and parallel Fortran 95/2003 codes
for deterministic global optimization and stochastic optimization, with
the serial driver subroutine  QNSTOPS  and the parallel driver subroutine
QNSTOPP.  Due to the limitations of OpenMP threads, the logic in the parallel
code  QNSTOPP  is rather different from that in the serial code  QNSTOPS
without any OpenMP directives.  The subroutines  QNSTOP{S|P}  are Fortran
95/2003 implementations of the bound constrained quasi-Newton stochastic
optimization algorithm QNSTOP from Indiana University.  The subroutines
QNSTOP{S|P}  use the module  REAL_PRECISION  from HOMPACK90 (ACM TOMS
Algorithm 777) for specifying the real data type, and the module  ZIGARRAY
to provide normally distributed random numbers using the ziggurat algorithm.
The modules  QNSTOP{S|P}_MOD  (files 'qnstop{s|p}.f95') contain the driver
subroutines  QNSTOP{S|P}, data type declarations, and auxiliary subroutines
and functions.  Comments at the beginning of the driver subroutines
QNSTOP{S|P}  document the arguments and usage.

The physical organization into files is as follows.

 * The file 'qnstops.f95' contains the module  QNSTOPS_MOD, which includes
   the serial driver subroutine  QNSTOPS  and auxiliary procedures.
 * The file 'qnstopp.f95' contains the module  QNSTOPP_MOD, which includes
   the parallel driver subroutine  QNSTOPP  and auxiliary procedures.
 * The file 'real_precision.f95' contains the module  REAL_PRECISION.
 * The file 'zigarray.f95' contains the module  ZIGARRAY.
 * The file 'sample_main_s.f95' contains a sample main program illustrating
   the usage of  QNSTOPS, and also verifies the installation by calling
   QNSTOPS  to minimize the Griewank function, defined within this file.
 * The file 'sample_main_p.f95' contains a sample main program illustrating
   the usage of  QNSTOPP, and also verifies the installation by calling
   QNSTOPP  to minimize the Griewank function, defined within this file.
 * The files 'blas.f' and 'lapack.f' contain just the necessary BLAS and
   LAPACK routines, in case the complete BLAS and LAPACK libraries are not
   available.

The modules  REAL_PRECISION  and  ZIGARRAY  are in separate files because
they may be of interest independent of  QNSTOP.

To compile and link, use the command (where "{s|p}" means either "s"
(serial) or "p" (parallel))

$f95 $OPTS real_precision.f95 zigarray.f95 qnstop{s|p}.f95 \
  sample_main_{s|p}.f95 -o sample_main_{s|p} $LIB

where '$f95' is the name of the Fortran 95/2003 compiler, '$OPTS' are
compiler options, and '$LIB' are flags to link LAPACK and BLAS.  If the
LAPACK and BLAS libraries are not available on your system, then replace
$LIB with the filenames 'blas.f lapack.f'; these provided files contain just
the necessary routines from the BLAS and LAPACK libraries.  Then execute

./sample_main_{s|p}

to test the installation.

To call  QNSTOP{S|P}  from your program, include the Fortran statement
USE QNSTOP{S|P}_MOD
and provide an interface block to your objective function similar to that
for the Griewank function in 'sample_main_s.f95'.
---------------------------------------------------------------------------

Notes:  the file 'duni_omp.f95', unrelated to  QNSTOP{S|P}, contains a
parallel OpenMP version of a high quality random number generator  DUNI()
due to Kahaner and Marsaglia, which may be of value when the  QNSTOPP
argument OMP > 0 and the objective function evaluation involves a stochastic
simulation.
---------------------------------------------------------------------------

Inquiries should be directed to Layne Watson,
Departments of Computer Science, Mathematics, and Aerospace & Ocean
Engineering, Mail Code 0106, VPI & SU, Blacksburg, VA 24061; 540-231-7540;
ltw@cs.vt.edu, ltw@ieee.org.

About

Quasi-Newton Algorithm for Stochastic Optimization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 78.1%
  • CSS 21.9%