iwopy.core.function_list.OptFunctionList

class iwopy.core.function_list.OptFunctionList[source]

Bases: OptFunction

A list of functions.

The main point of this class is to manage the variables and components of the added functions.

Add functions to the list via the append function, and don’t forget to initialize.

Parameters:
  • problem (iwopy.Problem) – The underlying optimization problem

  • name (str) – The function name

func_vars_int

For each added function, the subset of integer variables

Type:

list of lists of int

func_vars_float

For each added function, the subset of float variables

Type:

list of lists of int

sizes

The components of each added function

Type:

list of int

__init__(problem, name)[source]

Methods

__init__(problem, name)

ana_deriv(vars_int, vars_float, var[, ...])

Calculates the analytic derivative, if possible.

append(function)

Adds a function to the list.

calc_individual(vars_int, vars_float, ...[, ...])

Calculate values for a single individual of the underlying problem.

calc_population(vars_int, vars_float, ...[, ...])

Calculate values for all individuals of a population.

finalize([verbosity])

Finalize the object.

finalize_individual(vars_int, vars_float, ...)

Finalization, given the champion data.

finalize_population(vars_int, vars_float, ...)

Finalization, given the final population data.

initialize([verbosity])

Initialize the object.

n_components()

Returns the number of components of the function.

rename_vars_float(varmap)

Rename float variables.

rename_vars_int(varmap)

Rename integer variables.

split_individual(data)

Splits result values or other data into individual function data.

split_population(data)

Splits result values or other data into individual function data.

vardeps_float()

Gets the dependencies of all components on the function float variables

vardeps_int()

Gets the dependencies of all components on the function int variables

Attributes

component_names

The names of the components

functions

The list of added funtions

initialized

Flag for finished initialization

n_functions

The number of added functions

n_vars_float

The number of float variables

n_vars_int

The number of int variables

var_names_float

The names of the float variables

var_names_int

The names of the integer variables

__init__(problem, name)[source]
ana_deriv(vars_int, vars_float, var, components=None)[source]

Calculates the analytic derivative, if possible.

Use numpy.nan if analytic derivatives cannot be calculated.

Parameters:
  • vars_int (np.array) – The integer variable values, shape: (n_vars_int,)

  • vars_float (np.array) – The float variable values, shape: (n_vars_float,)

  • var (int) – The index of the differentiation float variable

  • components (list of int) – The selected components, or None for all

Returns:

deriv – The derivative values, shape: (n_sel_components,)

Return type:

numpy.ndarray

append(function)[source]

Adds a function to the list.

Parameters:

function (iwopy.core.OptFunction) – The function

calc_individual(vars_int, vars_float, problem_results, components=None)[source]

Calculate values for a single individual of the underlying problem.

Parameters:
  • vars_int (np.array) – The integer variable values, shape: (n_vars_int,)

  • vars_float (np.array) – The float variable values, shape: (n_vars_float,)

  • problem_results (Any) – The results of the variable application to the problem

  • components (list of int, optional) – The selected components or None for all

Returns:

values – The component values, shape: (n_sel_components,)

Return type:

np.array

calc_population(vars_int, vars_float, problem_results, components=None)[source]

Calculate values for all individuals of a population.

Parameters:
  • vars_int (np.array) – The integer variable values, shape: (n_pop, n_vars_int)

  • vars_float (np.array) – The float variable values, shape: (n_pop, n_vars_float)

  • problem_results (Any) – The results of the variable application to the problem

  • components (list of int, optional) – The selected components or None for all

Returns:

values – The component values, shape: (n_pop, n_sel_components,)

Return type:

np.array

property component_names

The names of the components

Returns:

names – The component names

Return type:

list of str

finalize(verbosity=0)

Finalize the object.

Parameters:

verbosity (int) – The verbosity level, 0 = silent

finalize_individual(vars_int, vars_float, problem_results, verbosity=1)[source]

Finalization, given the champion data.

Parameters:
  • vars_int (np.array) – The optimal integer variable values, shape: (n_vars_int,)

  • vars_float (np.array) – The optimal float variable values, shape: (n_vars_float,)

  • problem_results (Any) – The results of the variable application to the problem

  • verbosity (int) – The verbosity level, 0 = silent

Returns:

values – The component values, shape: (n_components,)

Return type:

np.array

finalize_population(vars_int, vars_float, problem_results, verbosity=1)[source]

Finalization, given the final population data.

Parameters:
  • vars_int (np.array) – The integer variable values of the final generation, shape: (n_pop, n_vars_int)

  • vars_float (np.array) – The float variable values of the final generation, shape: (n_pop, n_vars_float)

  • problem_results (Any) – The results of the variable application to the problem

  • verbosity (int) – The verbosity level, 0 = silent

Returns:

values – The component values, shape: (n_pop, n_components)

Return type:

np.array

property functions

The list of added funtions

Returns:

funcs – The list of added functions

Return type:

list of iwopy.core.OptFunction

initialize(verbosity=0)[source]

Initialize the object.

Parameters:

verbosity (int) – The verbosity level, 0 = silent

property initialized

Flag for finished initialization

Returns:

True if initialization has been done

Return type:

bool

n_components()[source]

Returns the number of components of the function.

Returns:

The number of components.

Return type:

int

property n_functions

The number of added functions

Returns:

n – The total number of added functions

Return type:

int

property n_vars_float

The number of float variables

Returns:

n – The number of float variables

Return type:

int

property n_vars_int

The number of int variables

Returns:

n – The number of int variables

Return type:

int

rename_vars_float(varmap)

Rename float variables.

Parameters:

varmap (dict) – The name mapping. Key: old name str, Value: new name str

rename_vars_int(varmap)

Rename integer variables.

Parameters:

varmap (dict) – The name mapping. Key: old name str, Value: new name str

split_individual(data)[source]

Splits result values or other data into individual function data.

Parameters:

data (numpy.ndarray) – The data, shape: (n_components,)

Returns:

fdata – The data for each function, list entry shapes: (n_func_components,)

Return type:

list of numpy.ndarray

split_population(data)[source]

Splits result values or other data into individual function data.

Parameters:

data (numpy.ndarray) – The data, shape: (n_pop, n_components)

Returns:

fdata – The data for each function, list entry shapes: (n_pop, n_func_components)

Return type:

list of numpy.ndarray

property var_names_float

The names of the float variables

Returns:

names – The float variable names

Return type:

list of str

property var_names_int

The names of the integer variables

Returns:

names – The integer variable names

Return type:

list of str

vardeps_float()[source]

Gets the dependencies of all components on the function float variables

Returns:

deps – The dependencies of components on function variables, shape: (n_components, n_vars_float)

Return type:

numpy.ndarray of bool

vardeps_int()[source]

Gets the dependencies of all components on the function int variables

Returns:

deps – The dependencies of components on function variables, shape: (n_components, n_vars_int)

Return type:

numpy.ndarray of bool