GenOpt^{®}
is an optimization program for the minimization
of a cost function that is evaluated by an external simulation program,
such as EnergyPlus, TRNSYS, Dymola, IDAICE or DOE2.
It has been developed for optimization problems where the cost function
is computationally expensive and its derivatives are not available or
may not even exist.
GenOpt can be coupled to any simulation program
that reads its input from text files
and writes its output to text files.
The independent variables can be continuous variables
(possibly with lower and upper bounds), discrete variables, or both.
Constraints on dependent variables can be implemented using penalty
or barrier functions.
GenOpt has a library with local and global multidimensional and
onedimensional optimization algorithms,
as well as algorithms for doing parametric runs.
If your computer has multiple CPUs, GenOpt will run multiple simulations
in parallel to reduce computation time. This parallel computation is done
automatically by GenOpt without requiring a special setup by the user.
By using GenOpt's algorithm interface,
new optimization algorithms can be added to GenOpt's algorithm library without
knowing the details of the program structure.
GenOpt is written in Java so that it is platform independent.
The platform independence and the general interface make GenOpt applicable
to a wide range of optimization problems.
GenOpt has not been designed for linear programming problems,
quadratic programming problems, and problems
where the gradient of the cost function is available. For such problems,
as well as for other problems,
special tailored software exists that is more efficient.
