Complete tables of the
tests and all versions are available
here.
|
Download and compilation
- Download the source code from GitHub. The published
version is available in tag 'paper'
here.
- Modify the file toyprob.f90 to solve the desirable
problem.
- Generate the executable by typing
make eng-toyprob
We provide within the file skinny.f90 a simple
implementation of the compass search which can be used both in
the restoration and in the minimization phases. The code is
prepared for the use of a good variety of algorithms. In the
restoration phase it is possible to
use Algencan. In
the minimization phase it is possible to use: compass search
(built in), Nelder-Mead, BOBYQA and
also DFO. Some
minor changes have to be made in each external code in order to
guarantee the good behavior of Skinny.
|
Using Algencan
- Download
the distribution
of Algencan. Unpack it, enter in the directory and modify
the following line of the file Makefile:
FC := gfortran-4.2
- Type
make
An error will occur (gcc: no input files),
but the necessary files will be generated.
- Go to 'sources/algencan' and type
ar cr libalgencan.a *.o
ranlib libalgencan.a
- Download Skinny's
source code and unpack it.
- Copy the file libalgencan.a to the directory
containing Skinny.
- Modify the file toyprob.f90 to solve the desirable
problem. Algencan will use the derivatives of the constraints.
- Edit the following files:
- skinny.f90: parameter SK_RESTTYPE = 1.
- restoration.f90: uncomment the pieces
described inside the file. Uncomment the subroutines
evalfc, evalgjac and evalhl.
- Makefile: put libalgencan.a in the variable
PCLIBS.
- Generate the executable by typing
make eng-toyprob
If you do not want to see Algencan's
output, put the file .silent in the same place where
you are executing Skinny.
|
Using DFO
- DFO needs Algencan to restore infeasible points. Follow
the steps 1-3 above to create libalgencan.a.
- Download
DFO, unpack
it, enter in the directory and modify the following line of
the file Makefile:
F77 := gfortran-4.2
- To avoid name conflicts between DFO and Algencan,
substitute SCL by DFOSCL and UNSCL by DFOUNSCL in the
files dfo.f, ptinit.f, impmod.f
and dfosolv.f.
- Type
make dfo.o dfosolv.o ptinit.o nbuild.o evalnp.o mbuild.o
fd.o gterms.o funcon.o zero.o mvalue.o impmod.o xgnew.o
getnp.o funmer.o ptrepl.o ptexch.o nextnp.o ranlux.o
ar ruv libdfo.a dfo.o dfosolv.o ptinit.o nbuild.o evalnp.o
mbuild.o fd.o gterms.o funcon.o zero.o mvalue.o impmod.o
xgnew.o getnp.o funmer.o ptrepl.o ptexch.o nextnp.o
ranlux.o
ranlib libdfo.a
- Download Skinny's
source code and unpack it.
- Copy the previously generated files libdfo.a
and libalgencan.a to the directory
containing Skinny.
- Put the file
dfo_model_inc.f into the directory
containing Skinny.
- Modify the file toyprob.f90 to solve the desirable
problem. DFO and Algencan will use the derivatives of the
constraints.
- Substitute files skinny.f90 and Makefile
by: skinny.f90
and Makefile.
- DFO uses LAPACK and BLAS subroutines. Be sure that
LIBLAPACK and LIBBLAS in Makefile point to the correct
place.
- Generate the executable by typing
make eng-toyprob
If you do not want to see Algencan's
output, put the file .silent in the same place where
you are executing Skinny.
|