Problem¶
A problem contains the objective as well as all information like prior describing the problem to be solved.
-
class
pypesto.problem.
Problem
(objective, lb, ub, dim_full=None, x_fixed_indices=None, x_fixed_vals=None, x_guesses=None, x_names=None)¶ Bases:
object
The problem formulation. A problem specifies the objective function, boundaries and constraints, parameter guesses as well as the parameters which are to be optimized.
Parameters: - objective (pypesto.Objective) – The objective function for minimization. Note that a shallow copy is created.
- ub (lb,) – The lower and upper bounds. For unbounded directions set to inf.
- dim_full (int, optional) – The full dimension of the problem, including fixed parameters.
- x_fixed_indices (array_like of int, optional) – Vector containing the indices (zero-based) of parameter components that are not to be optimized.
- x_fixed_vals (array_like, optional) – Vector of the same length as x_fixed_indices, containing the values of the fixed parameters.
- x_guesses (array_like, optional) – Guesses for the parameter values, shape (g, dim), where g denotes the number of guesses. These are used as start points in the optimization.
- x_names (array_like of str, optional) – Parameter names that can be optionally used e.g. in visualizations. If objective.get_x_names() is not None, those values are used, else the values specified here are used if not None, otherwise the variable names are set to [‘x0’, … ‘x{dim_full}’]. The list must always be of length dim_full.
-
dim
¶ The number of non-fixed parameters. Computed from the other values.
Type: int
-
x_free_indices
¶ Vector containing the indices (zero-based) of free parameters (complimentary to x_fixed_indices).
Type: array_like of int
Notes
On the fixing of parameter values:
The number of parameters dim_full the objective takes as input must be known, so it must be either lb a vector of that size, or dim_full specified as a parameter.
All vectors are mapped to the reduced space of dimension dim in __init__, regardless of whether they were in dimension dim or dim_full before. If the full representation is needed, the methods get_full_vector() and get_full_matrix() can be used.
-
__init__
(objective, lb, ub, dim_full=None, x_fixed_indices=None, x_fixed_vals=None, x_guesses=None, x_names=None)¶ Initialize self. See help(type(self)) for accurate signature.
-
fix_parameters
(parameter_indices, parameter_vals)¶ Fix specified parameters to specified values
-
get_full_matrix
(x)¶ Map matrix from dim to dim_full. Usually used for hessian.
Parameters: x (array_like, shape=(dim, dim)) – The matrix in dimension dim.
-
get_full_vector
(x, x_fixed_vals=None)¶ Map vector from dim to dim_full. Usually used for x, grad.
Parameters: - x (array_like, shape=(dim,)) – The vector in dimension dim.
- x_fixed_vals (array_like, ndim=1, optional) – The values to be used for the fixed indices. If None, then nans are inserted. Usually, None will be used for grad and problem.x_fixed_vals for x.
-
get_reduced_matrix
(x_full)¶ Map matrix from dim_full to dim, i.e. delete fixed indices.
Parameters: x (array_like, ndim=2) – The matrix in dimension dim_full.
-
get_reduced_vector
(x_full)¶ Map vector from dim_full to dim, i.e. delete fixed indices.
Parameters: x (array_like, ndim=1) – The vector in dimension dim_full.
-
normalize_input
(check_x_guesses=True)¶ Reduce all vectors to dimension dim and have the objective accept vectors of dimension dim.
-
print_parameter_summary
()¶ Prints a summary of what parameters are being optimized and what parameter boundaries are
-
unfix_parameters
(parameter_indices)¶ Free specified parameters