<< Click to Display Table of Contents >> Other PEST-type programs |
![]() ![]() ![]() |
Many programs of the PEST suite read a PEST control file. Some modify a PEST control file. Others write a PEST control file from scratch (saving you the trouble of having to do this yourself). Many of these programs are described in other help pages. In this page we briefly discuss programs of the PEST suite which, like PEST, undertake many model runs. So, like PEST, they write model input files using template files, and read model output files using instruction files. Some of these program can parallelise model runs. |
"CMAES" stands for "covariance matrix adaption evolutionary strategy". This is a powerful global optimiser. More than this, its algorithm is such that model runs can be efficiently parallelised as it searches for the global minimum of an objective function that may have local optima. Depending on the circumstances, it can efficiently adjust over 100 parameters (which are better referred to as "decision variables" in the optimisation context). The best place to learn about how the CMAES algorithm works, its inventors, and how it has been used to solve optimisation problems of many different types (including groundwater well placement problems) is from its Wikipedia page. CMAES_P is a PEST-compatible version of this algorithm; as such, it employs the same non-intrusive model interface as PEST. It obtains information about the optimisation problem that it must solve, and about the model that it must run, from a PEST control file. On commencement of execution it asks a few questions about its own control variables. Defaults are provided; all of these can be accepted by pressing the <Enter> key. Running CMAES_P is easy. A special version of CMAES_P named CMAES_HP is supplied with the HP suite. This conducts model runs in parallel using the same manager-agent concept that is used by PEST_HP. CMAES_HP also includes functionality that enables it to perform optimisation under uncertainty. The "model" that CMAES_HP runs under these circumstances is a suite of models that employ different stochastic parameter fields. Searching for the global minimum of an objective function using CMAES_P. |
The shuffled complex evolution method has been around for some time. The "UA" in "SCEUA" stands for "University of Arizona", where its creator worked. The algorithm was originally developed to assist in solution of inverse problems that are characterised by multiple optima. These can often arise in calibration of surface water models. SCEUA_P is a PEST-compatible version of the SCEUA method. As such, it reads information about the optimisation problem that it must solve, and the model that it must run, from a PEST control file. Like PEST it uses template and instruction files to communicate with a model in a non-intrusive way. The SCEUA algorithm is such that model run parallelisation does not achieve the same efficiencies as it does for CMAES. Also, its performance deteriorates with an increasing number of parameters. Nevertheless, there are occasions where its ability to find the minimum of a complex objective function is impressive. |
"RSI" stands for "realisation space inversion". RSI_HP is a basic ensemble smoother. Its algorithm is tuned for super-rapid attainment of good model-to-measurement fit. This can be beneficial where an inverse problem is highly nonlinear. However RSI_HP does not possess other features that smoothers such as PESTPP-IES possess. It cannot accommodate inverse problems where parameters number in the hundreds of thousands. Nor can it implement localisation. Like PEST_HP, RSI_HP reads the specifications of an inverse problem from a PEST control file. A special section of this file must supply values for control variables that govern its operation. It uses the manager-agent concept for non-intrusive model run parallelisation. |
"JACTEST" stands for "Jacobian testing". JACTEST is used primarily to investigate why PEST is not working as well as it should be working. This can occur if numbers that are calculated by a model are discontinuous with respect to its parameters. Before running JACTEST, a modeller chooses a parameter. JACTEST varies that parameter in steps that are equal to increments used by PEST for calculation of finite-difference derivatives. The number of steps is chosen by the user. JACTEST records model-calculated observations corresponding to each of these steps. The file that it writes is easily imported into a spreadsheet for plotting. JACTEST_HP parallelises model runs in the same way that PEST_HP does. JACTEST can expose non-differentiability of model outputs with respect to parameters. |