Parameter to Response Mapping Examples
In this section, interface mapping examples are presented through the discussion of several parameters files and their corresponding results files. A typical input file for 2 variables (\(n=2\)) and 3 functions (\(m=3\)) using the standard parameters file format is as follows:
2 variables
1.500000000000000e+00 cdv_1
1.500000000000000e+00 cdv_2
3 functions
1 ASV_1
1 ASV_2
1 ASV_3
2 derivative_variables
1 DVV_1
2 DVV_2
0 analysis_components
where numerical values are associated with their tags within
value-tag constructs (i.e. the value on the left, the tag on the right,
separated by a space). The number of design variables (\(n\))
and the string “variables
” are followed by the values of the design
variables and their tags, the number of functions (\(m\)) and the
string “functions
”, the active set vector (ASV) and its tags, the
number of derivative variables and the string
“derivative_variables
”, the derivative variables vector (DVV) and
its tags, the number of analysis components and the string
“analysis_components
”, and the analysis components array and its
tags. The descriptive tags for the variables are always present and they
are either the descriptors in the user’s variables specification, if
given there, or are default descriptors. The length of the active set
vector is equal to the number of functions (\(m\)). In the case of
an optimization data set with an objective function and two nonlinear
constraints (three response functions total), the first ASV value is
associated with the objective function and the remaining two are
associated with the constraints (in whatever consistent constraint order
has been defined by the user). The DVV defines a subset of the variables
used for computing derivatives. Its identifiers are 1-based and
correspond to the full set of variables listed in the first array.
Finally, the analysis components pass additional strings from the user’s
analysis_components
specification in a Dakota input file through to
the simulator. They allow the development of simulation drivers that are
more flexible, by allowing them to be passed additional specifics at run
time, e.g., the names of model files such as a particular mesh to use.
For the APREPRO format option, the same set of data appears as follows:
{ DAKOTA_VARS = 2 }
{ cdv_1 = 1.500000000000000e+00 }
{ cdv_2 = 1.500000000000000e+00 }
{ DAKOTA_FNS = 3 }
{ ASV_1 = 1 }
{ ASV_2 = 1 }
{ ASV_3 = 1 }
{ DAKOTA_DER_VARS = 2 }
{ DVV_1 = 1 }
{ DVV_2 = 2 }
{ DAKOTA_AN_COMPS = 0 }
where the numerical values are associated with their tags within
“{ tag = value }
” constructs.
The user-supplied simulation interface, comprised of a simulator program or driver and (optionally) filter programs, is responsible for reading the parameters file and creating a results file that contains the response data requested in the ASV. Since the ASV contains all ones in this case, the response file corresponding to the above input file would contain values for the three functions:
1.250000000000000e-01 f
1.500000000000000e+00 c1
1.500000000000000e+00 c2
Since function tags are optional, the following would be equally acceptable:
1.250000000000000e-01
1.500000000000000e+00
1.500000000000000e+00
For the same parameters with different ASV components,
2 variables
1.500000000000000e+00 cdv_1
1.500000000000000e+00 cdv_2
3 functions
3 ASV_1
3 ASV_2
3 ASV_3
2 derivative_variables
1 DVV_1
2 DVV_2
0 analysis_components
the following response data is required:
1.250000000000000e-01 f
1.500000000000000e+00 c1
1.500000000000000e+00 c2
[ 5.000000000000000e-01 5.000000000000000e-01 ]
[ 3.000000000000000e+00 -5.000000000000000e-01 ]
[ -5.000000000000000e-01 3.000000000000000e+00 ]
Here, we need not only the function values, but also each of their
gradients. The derivatives are computed with respect to cdv_1
and
cdv_2
as indicated by the DVV values. Another modification to the
ASV components yields the following parameters file:
2 variables
1.500000000000000e+00 cdv_1
1.500000000000000e+00 cdv_2
3 functions
2 ASV_1
0 ASV_2
2 ASV_3
2 derivative_variables
1 DVV_1
2 DVV_2
0 analysis_components
for which the following results file is needed:
[ 5.000000000000000e-01 5.000000000000000e-01 ]
[ -5.000000000000000e-01 3.000000000000000e+00 ]
Here, we need gradients for functions f
and c2
, but not for
c1
, presumably since this constraint is inactive.
A full Newton optimizer might make the following request:
2 variables
1.500000000000000e+00 cdv_1
1.500000000000000e+00 cdv_2
1 functions
7 ASV_1
2 derivative_variables
1 DVV_1
2 DVV_2
0 analysis_components
for which the following results file,
1.250000000000000e-01 f
[ 5.000000000000000e-01 5.000000000000000e-01 ]
[[ 3.000000000000000e+00 0.000000000000000e+00
0.000000000000000e+00 3.000000000000000e+00 ]]
containing the objective function, its gradient vector, and its Hessian
matrix, is needed. Again, the derivatives (gradient vector and Hessian
matrix) are computed with respect to cdv_1
and cdv_2
as
indicated by the DVV values.
Lastly, a more advanced example could have multiple types of variables present; in this example, 2 continuous design and 3 discrete design range, 2 normal uncertain, and 3 continuous state and 2 discrete state range variables. When a mixture of variable types is present, the content of the DVV (and therefore the required length of gradient vectors and Hessian matrices) depends upon the type of study being performed. For a reliability analysis problem, the uncertain variables are the active continuous variables and the following parameters file would be typical:
12 variables
1.500000000000000e+00 cdv_1
1.500000000000000e+00 cdv_2
2 ddriv_1
2 ddriv_2
2 ddriv_3
5.000000000000000e+00 nuv_1
5.000000000000000e+00 nuv_2
3.500000000000000e+00 csv_1
3.500000000000000e+00 csv_2
3.500000000000000e+00 csv_3
4 dsriv_1
4 dsriv_2
3 functions
3 ASV_1
3 ASV_2
3 ASV_3
2 derivative_variables
6 DVV_1
7 DVV_2
2 analysis_components
mesh1.exo AC_1
db1.xml AC_2
Gradients are requested with respect to variable entries 6 and 7, which
correspond to normal uncertain variables nuv_1
and nuv_2
. The
following response data would be appropriate:
7.943125000000000e+02 f
1.500000000000000e+00 c1
1.500000000000000e+00 c2
[ 2.560000000000000e+02 2.560000000000000e+02 ]
[ 0.000000000000000e+00 0.000000000000000e+00 ]
[ 0.000000000000000e+00 0.000000000000000e+00 ]
In a parameter study, however, no distinction is drawn between different
types of continuous variables, and derivatives would be needed with
respect to all continuous variables (\(n_{dvv}=7\) for the
continuous design variables cdv_1
and cdv_2
, the normal
uncertain variables nuv_1
and nuv_2
, and the continuous state
variables csv_1
, csv_2
and csv_3
). The parameters file would
appear as
12 variables
1.500000000000000e+00 cdv_1
1.500000000000000e+00 cdv_2
2 ddriv_1
2 ddriv_2
2 ddriv_3
5.000000000000000e+00 nuv_1
5.000000000000000e+00 nuv_2
3.500000000000000e+00 csv_1
3.500000000000000e+00 csv_2
3.500000000000000e+00 csv_3
4 dsriv_1
4 dsriv_2
3 functions
3 ASV_1
3 ASV_2
3 ASV_3
7 derivative_variables
1 DVV_1
2 DVV_2
6 DVV_3
7 DVV_4
8 DVV_5
9 DVV_6
10 DVV_7
2 analysis_components
mesh1.exo AC_1
db1.xml AC_2
and the corresponding results would appear as
7.943125000000000e+02 f
1.500000000000000e+00 c1
1.500000000000000e+00 c2
[ 5.000000000000000e-01 5.000000000000000e-01 2.560000000000000e+02
2.560000000000000e+02 6.250000000000000e+01 6.250000000000000e+01
6.250000000000000e+01 ]
[ 3.000000000000000e+00 -5.000000000000000e-01 0.000000000000000e+00
0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00
0.000000000000000e+00 ]
[ -5.000000000000000e-01 3.000000000000000e+00 0.000000000000000e+00
0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00
0.000000000000000e+00 ]