numerical-collection-cpp 0.10.0
A collection of algorithms in numerical analysis implemented in C++
Loading...
Searching...
No Matches
num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits > Class Template Reference

Class of adaptive diagonal curves (ADC) method [29] for optimization. More...

#include <num_collect/opt/adaptive_diagonal_curves.h>

Inheritance diagram for num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >:
Collaboration diagram for num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >:

Public Types

using objective_function_type = ObjectiveFunction
 Type of the objective function.
enum class  state_type : std::uint8_t {
  none , local , local_last , global ,
  global_last , non_dividable
}
 Enumeration of states in ADC method. More...
using this_type = adaptive_diagonal_curves<ObjectiveFunction, MaxDigits>
 This class.
using value_type = typename objective_function_type::value_type
 Type of function values.
using variable_type = typename objective_function_type::variable_type
 Type of variables.

Public Member Functions

 adaptive_diagonal_curves (const objective_function_type &obj_fun=objective_function_type())
 Constructor.
void change_objective_function (const objective_function_type &obj_fun)
 Change the objective function.
void configure_iteration_logger (logging::iterations::iteration_logger< this_type > &iteration_logger) const
 Configure an iteration logger.
auto decrease_rate_bound (value_type value) -> adaptive_diagonal_curves &
 Set the rate of function value used to check whether the function value decreased in the current phase.
auto evaluations () const noexcept -> index_type
 Get the number of function evaluations.
void init (const variable_type &lower, const variable_type &upper)
 Initialize the algorithm.
auto is_stop_criteria_satisfied () const -> bool
 Determine if stopping criteria of the algorithm are satisfied.
void iterate ()
 Iterate the algorithm once.
auto iterations () const noexcept -> index_type
 Get the number of iterations.
auto last_state () const noexcept -> state_type
 Get the last state.
auto last_state_name () const noexcept -> std::string_view
 Get the name of the last state.
auto max_evaluations (index_type value) -> adaptive_diagonal_curves &
 Set the maximum number of function evaluations.
auto min_rate_imp (value_type value) -> adaptive_diagonal_curves &
 Set the minimum rate of improvement in the function value required for potentially optimal rectangles.
auto opt_value () const -> const value_type &
 Get current optimal value.
auto opt_variable () const -> const variable_type &
 Get current optimal variable.
Public Member Functions inherited from num_collect::opt::optimizer_base< adaptive_diagonal_curves< ObjectiveFunction, 8 > >
 optimizer_base (logging::log_tag_view tag)
 Constructor.
auto evaluations () const noexcept -> index_type
 Get the number of function evaluations.
auto iterations () const noexcept -> index_type
 Get the number of iterations.
auto opt_value () const
 Get current optimal value.
auto opt_variable () const
 Get current optimal variable.
Public Member Functions inherited from num_collect::base::iterative_solver_base< adaptive_diagonal_curves< ObjectiveFunction, 8 > >
 iterative_solver_base (logging::log_tag_view tag)
 Constructor.
auto is_stop_criteria_satisfied () const -> bool
 Determine if stopping criteria of the algorithm are satisfied.
void iterate ()
 Iterate the algorithm once.
void solve ()
 Solve the problem.
Public Member Functions inherited from num_collect::logging::logging_mixin
 logging_mixin (log_tag_view tag)
 Constructor.
template<typename Child>
void configure_child_algorithm_logger_if_exists (Child &child)
 Configure a logger of a child algorithm if exists.
auto logger () const noexcept -> const num_collect::logging::logger &
 Access to the logger.
auto logger () noexcept -> num_collect::logging::logger &
 Access to the logger.
Public Member Functions inherited from num_collect::logging::iterations::iteration_logger_mixin< adaptive_diagonal_curves< ObjectiveFunction, 8 > >
 iteration_logger_mixin ()=default
 Constructor.
void configure_iteration_logger (num_collect::logging::iterations::iteration_logger< adaptive_diagonal_curves< ObjectiveFunction, 8 > > &iteration_logger) const
 Configure an iteration logger.
auto initialize_iteration_logger () -> num_collect::logging::iterations::iteration_logger< adaptive_diagonal_curves< ObjectiveFunction, 8 > > &
 Get the iteration logger.

Static Public Member Functions

static auto state_name (state_type state) -> std::string_view
 Convert a state to string.

Private Types

using dict_type = impl::adc_sample_dict<objective_function_type, MaxDigits>
 Type of dictionaries of sample points.
using group_type = impl::adc_group<value_type, ternary_vector_type>
 Type of groups of hyper-rectangles.
using rectangle_type = typename group_type::rectangle_type
 Type of hyper-rectangles.
using ternary_vector_type = typename dict_type::ternary_vector_type
 Type of ternary vectors.

Private Member Functions

auto calculate_slope (std::size_t group_ind1, std::size_t group_ind2) const -> value_type
 Calculate slope.
void create_first_rectangle ()
 Create the first hyper-rectangle.
auto create_rect (const ternary_vector_type &vertex, std::size_t group_ind) -> rectangle_type
 Create a hyper-rectangle.
auto determine_nondominated_rectangles (std::size_t min_group, std::size_t max_group) const -> std::vector< std::pair< std::size_t, value_type > >
 Determine nondominated hyper-rectangles.
void divide_nondominated_rectangles (std::size_t min_group, std::size_t max_group)
 Divide nondominated hyper-rectangles.
auto divide_rectangle (std::size_t group_ind) -> bool
 Divide a hyper-rectangle.
void iterate_globally ()
 Iterate once in the global phase (not last iteration).
void iterate_globally_last ()
 Iterate once at teh last of the global phase.
void iterate_locally ()
 Iterate once in the local phase (not last iteration).
void iterate_locally_last ()
 Iterate once at the last of the local phase.
auto min_nonempty_group_index () const -> std::size_t
 Get the minimum index of non-empty groups.
void switch_state ()
 Switch to the next state if necessary.
void switch_state_on_local_last ()
 Switch to the next state if necessary in local_last state.

Private Attributes

value_type decrease_rate_bound_ {default_decrease_rate_bound}
 Rate of function value used to check whether the function value decreased in the current phase.
std::vector< group_typegroups_ {}
 Groups of hyper-rectangles.
index_type iterations_ {0}
 Number of iterations.
index_type iterations_in_current_phase_ {0}
 Number of iterations in the current phase.
index_type max_evaluations_ {default_max_evaluations}
 Maximum number of function evaluations.
value_type min_rate_imp_ {default_min_rate_imp}
 Minimum rate of improvement in the function value required for potentially optimal rectangles.
std::size_t optimal_group_index_ {0}
 Index of the group in which the optimal solution exists.
value_type optimal_value_ {}
 Current optimal value.
std::size_t prec_optimal_group_index_ {0}
 Index of the group in which the old optimal solution at the start of the current phase exists.
value_type prec_optimal_value_ {}
 Old optimal value at the start of the current phase.
state_type state_ {state_type::none}
 State.
dict_type value_dict_
 Dictionary of sampled points.

Static Private Attributes

static const auto default_decrease_rate_bound
 Default rate of function value used to check whether the function value decreased in the current phase.
static constexpr index_type default_max_evaluations = 10000
 Default maximum number of function evaluations.
static const auto default_min_rate_imp
 Default minimum rate of improvement in the function value required for potentially optimal rectangles.
static const auto half = static_cast<value_type>(0.5)
 Half.

Additional Inherited Members

Protected Member Functions inherited from num_collect::base::iterative_solver_base< adaptive_diagonal_curves< ObjectiveFunction, 8 > >
auto derived () noexcept -> adaptive_diagonal_curves< ObjectiveFunction, 8 > &
 Access derived object.

Detailed Description

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
class num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >

Class of adaptive diagonal curves (ADC) method [29] for optimization.

Template Parameters
ObjectiveFunctionType of the objective function.
MaxDigitsMaximum number of ternary digits per dimension at compile time.
Examples
opt/adaptive_diagonal_curves.cpp.

Definition at line 61 of file adaptive_diagonal_curves.h.

Member Typedef Documentation

◆ dict_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::dict_type = impl::adc_sample_dict<objective_function_type, MaxDigits>
private

Type of dictionaries of sample points.

Definition at line 306 of file adaptive_diagonal_curves.h.

◆ group_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::group_type = impl::adc_group<value_type, ternary_vector_type>
private

Type of groups of hyper-rectangles.

Definition at line 312 of file adaptive_diagonal_curves.h.

◆ objective_function_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::objective_function_type = ObjectiveFunction

Type of the objective function.

Definition at line 69 of file adaptive_diagonal_curves.h.

◆ rectangle_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::rectangle_type = typename group_type::rectangle_type
private

Type of hyper-rectangles.

Definition at line 315 of file adaptive_diagonal_curves.h.

◆ ternary_vector_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::ternary_vector_type = typename dict_type::ternary_vector_type
private

Type of ternary vectors.

Definition at line 309 of file adaptive_diagonal_curves.h.

◆ this_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::this_type = adaptive_diagonal_curves<ObjectiveFunction, MaxDigits>

This class.

Definition at line 66 of file adaptive_diagonal_curves.h.

◆ value_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::value_type = typename objective_function_type::value_type

Type of function values.

Definition at line 75 of file adaptive_diagonal_curves.h.

◆ variable_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
using num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::variable_type = typename objective_function_type::variable_type

Type of variables.

Definition at line 72 of file adaptive_diagonal_curves.h.

Member Enumeration Documentation

◆ state_type

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
enum class num_collect::opt::adaptive_diagonal_curves::state_type : std::uint8_t
strong

Enumeration of states in ADC method.

Enumerator
none 

No operation.

local 

Local phase (not last iteration).

local_last 

Last iteration in local phase.

global 

Global phase (not last iteration).

global_last 

Last iteration in global phase.

non_dividable 

No rectangle can be divided.

Definition at line 80 of file adaptive_diagonal_curves.h.

Constructor & Destructor Documentation

◆ adaptive_diagonal_curves()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::adaptive_diagonal_curves ( const objective_function_type & obj_fun = objective_function_type())
inlineexplicit

Constructor.

Parameters
[in]obj_funObjective function.

Definition at line 119 of file adaptive_diagonal_curves.h.

Member Function Documentation

◆ calculate_slope()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::calculate_slope ( std::size_t group_ind1,
std::size_t group_ind2 ) const -> value_type
inlinenodiscardprivate

Calculate slope.

Parameters
[in]group_ind1Index of group.
[in]group_ind2Index of group.
Returns
Slope.

Definition at line 569 of file adaptive_diagonal_curves.h.

◆ change_objective_function()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::change_objective_function ( const objective_function_type & obj_fun)
inline

Change the objective function.

Parameters
[in]obj_funObjective function.

Definition at line 129 of file adaptive_diagonal_curves.h.

◆ configure_iteration_logger()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::configure_iteration_logger ( logging::iterations::iteration_logger< this_type > & iteration_logger) const
inline

Configure an iteration logger.

Parameters
[in]iteration_loggerIteration logger.

Definition at line 195 of file adaptive_diagonal_curves.h.

◆ create_first_rectangle()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::create_first_rectangle ( )
inlineprivate

Create the first hyper-rectangle.

Definition at line 320 of file adaptive_diagonal_curves.h.

◆ create_rect()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::create_rect ( const ternary_vector_type & vertex,
std::size_t group_ind ) -> rectangle_type
inlinenodiscardprivate

Create a hyper-rectangle.

Parameters
[in]vertexVertex with lower first component.
[in]group_indGroup index.
Returns
Hyper-rectangle.

Definition at line 615 of file adaptive_diagonal_curves.h.

◆ decrease_rate_bound()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::decrease_rate_bound ( value_type value) -> adaptive_diagonal_curves&
inline

Set the rate of function value used to check whether the function value decreased in the current phase.

Parameters
[in]valueValue.
Returns
This object.

Definition at line 295 of file adaptive_diagonal_curves.h.

◆ determine_nondominated_rectangles()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::determine_nondominated_rectangles ( std::size_t min_group,
std::size_t max_group ) const -> std::vector<std::pair<std::size_t, value_type>>
inlinenodiscardprivate

Determine nondominated hyper-rectangles.

Parameters
[in]min_groupMinimum index of groups to search in.
[in]max_groupMaximum index of groups to search in.
Returns
List of (index of group, slope).

Definition at line 517 of file adaptive_diagonal_curves.h.

◆ divide_nondominated_rectangles()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::divide_nondominated_rectangles ( std::size_t min_group,
std::size_t max_group )
inlineprivate

Divide nondominated hyper-rectangles.

Parameters
[in]min_groupMinimum index of groups to search in.
[in]max_groupMaximum index of groups to search in.

Definition at line 491 of file adaptive_diagonal_curves.h.

◆ divide_rectangle()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::divide_rectangle ( std::size_t group_ind) -> bool
inlinenodiscardprivate

Divide a hyper-rectangle.

Parameters
[in]group_indIndex of group.
Return values
trueThe hyper-rectangle is divided.
falseThe hyper-rectangle is not divided.

Definition at line 583 of file adaptive_diagonal_curves.h.

◆ evaluations()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::evaluations ( ) const -> index_type
inlinenodiscardnoexcept

Get the number of function evaluations.

Returns
Number of function evaluations.

Definition at line 235 of file adaptive_diagonal_curves.h.

◆ init()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::init ( const variable_type & lower,
const variable_type & upper )
inline

Initialize the algorithm.

Parameters
[in]lowerLower limit.
[in]upperUpper limit.

Definition at line 139 of file adaptive_diagonal_curves.h.

◆ is_stop_criteria_satisfied()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::is_stop_criteria_satisfied ( ) const -> bool
inlinenodiscard

Determine if stopping criteria of the algorithm are satisfied.

Returns
If stopping criteria of the algorithm are satisfied.

Definition at line 187 of file adaptive_diagonal_curves.h.

◆ iterate()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterate ( )
inline

Iterate the algorithm once.

Warning
Any required initializations (with init functions) are assumed to have been done.

Definition at line 157 of file adaptive_diagonal_curves.h.

◆ iterate_globally()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterate_globally ( )
inlineprivate

Iterate once in the global phase (not last iteration).

Definition at line 455 of file adaptive_diagonal_curves.h.

◆ iterate_globally_last()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterate_globally_last ( )
inlineprivate

Iterate once at teh last of the global phase.

Definition at line 468 of file adaptive_diagonal_curves.h.

◆ iterate_locally()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterate_locally ( )
inlineprivate

Iterate once in the local phase (not last iteration).

Definition at line 434 of file adaptive_diagonal_curves.h.

◆ iterate_locally_last()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterate_locally_last ( )
inlineprivate

Iterate once at the last of the local phase.

Definition at line 445 of file adaptive_diagonal_curves.h.

◆ iterations()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterations ( ) const -> index_type
inlinenodiscardnoexcept

Get the number of iterations.

Returns
Number of iterations.

Definition at line 228 of file adaptive_diagonal_curves.h.

◆ last_state()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::last_state ( ) const -> state_type
inlinenodiscardnoexcept

Get the last state.

Returns
Last state.

Definition at line 244 of file adaptive_diagonal_curves.h.

◆ last_state_name()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::last_state_name ( ) const -> std::string_view
inlinenodiscardnoexcept

Get the name of the last state.

Returns
Last state.

Definition at line 253 of file adaptive_diagonal_curves.h.

◆ max_evaluations()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::max_evaluations ( index_type value) -> adaptive_diagonal_curves&
inline

Set the maximum number of function evaluations.

Parameters
[in]valueValue.
Returns
This object.

Definition at line 263 of file adaptive_diagonal_curves.h.

◆ min_nonempty_group_index()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::min_nonempty_group_index ( ) const -> std::size_t
inlinenodiscardprivate

Get the minimum index of non-empty groups.

Returns
Minimum index of groups.

Definition at line 475 of file adaptive_diagonal_curves.h.

◆ min_rate_imp()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::min_rate_imp ( value_type value) -> adaptive_diagonal_curves&
inline

Set the minimum rate of improvement in the function value required for potentially optimal rectangles.

Parameters
[in]valueValue.
Returns
This object.

Definition at line 279 of file adaptive_diagonal_curves.h.

◆ opt_value()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::opt_value ( ) const -> const value_type&
inlinenodiscard

Get current optimal value.

Returns
Current optimal value.

Definition at line 221 of file adaptive_diagonal_curves.h.

◆ opt_variable()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::opt_variable ( ) const -> const variable_type&
inlinenodiscard

Get current optimal variable.

Returns
Current optimal variable.

Definition at line 214 of file adaptive_diagonal_curves.h.

◆ state_name()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::state_name ( state_type state) -> std::string_view
inlinestaticnodiscard

Convert a state to string.

Parameters
[in]stateState.
Returns
Name of state.

Definition at line 95 of file adaptive_diagonal_curves.h.

◆ switch_state()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::switch_state ( )
inlineprivate

Switch to the next state if necessary.

Step 2.1, 2.4, 3, 4.4, 4.5, 4.7 in [29].

Definition at line 346 of file adaptive_diagonal_curves.h.

◆ switch_state_on_local_last()

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
void num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::switch_state_on_local_last ( )
inlineprivate

Switch to the next state if necessary in local_last state.

Definition at line 402 of file adaptive_diagonal_curves.h.

Member Data Documentation

◆ decrease_rate_bound_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
value_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::decrease_rate_bound_ {default_decrease_rate_bound}
private

Rate of function value used to check whether the function value decreased in the current phase.

Definition at line 710 of file adaptive_diagonal_curves.h.

◆ default_decrease_rate_bound

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
const auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::default_decrease_rate_bound
inlinestaticprivate
Initial value:
=
static_cast<value_type>(0.01)
typename objective_function_type::value_type value_type
Type of function values.

Default rate of function value used to check whether the function value decreased in the current phase.

Definition at line 703 of file adaptive_diagonal_curves.h.

◆ default_max_evaluations

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
index_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::default_max_evaluations = 10000
staticconstexprprivate

Default maximum number of function evaluations.

Definition at line 681 of file adaptive_diagonal_curves.h.

◆ default_min_rate_imp

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
const auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::default_min_rate_imp
inlinestaticprivate
Initial value:
=
static_cast<value_type>(1e-4)

Default minimum rate of improvement in the function value required for potentially optimal rectangles.

Definition at line 690 of file adaptive_diagonal_curves.h.

◆ groups_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
std::vector<group_type> num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::groups_ {}
private

Groups of hyper-rectangles.

Definition at line 646 of file adaptive_diagonal_curves.h.

◆ half

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
const auto num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::half = static_cast<value_type>(0.5)
inlinestaticprivate

Half.

Definition at line 640 of file adaptive_diagonal_curves.h.

◆ iterations_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
index_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterations_ {0}
private

Number of iterations.

Definition at line 649 of file adaptive_diagonal_curves.h.

◆ iterations_in_current_phase_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
index_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::iterations_in_current_phase_ {0}
private

Number of iterations in the current phase.

This is initialized at the start of the local or global phases.

Definition at line 678 of file adaptive_diagonal_curves.h.

◆ max_evaluations_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
index_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::max_evaluations_ {default_max_evaluations}
private

Maximum number of function evaluations.

Definition at line 684 of file adaptive_diagonal_curves.h.

◆ min_rate_imp_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
value_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::min_rate_imp_ {default_min_rate_imp}
private

Minimum rate of improvement in the function value required for potentially optimal rectangles.

Definition at line 697 of file adaptive_diagonal_curves.h.

◆ optimal_group_index_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
std::size_t num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::optimal_group_index_ {0}
private

Index of the group in which the optimal solution exists.

Definition at line 662 of file adaptive_diagonal_curves.h.

◆ optimal_value_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
value_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::optimal_value_ {}
private

Current optimal value.

This value is used for updating optimal_group_index_.

Definition at line 659 of file adaptive_diagonal_curves.h.

◆ prec_optimal_group_index_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
std::size_t num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::prec_optimal_group_index_ {0}
private

Index of the group in which the old optimal solution at the start of the current phase exists.

Definition at line 671 of file adaptive_diagonal_curves.h.

◆ prec_optimal_value_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
value_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::prec_optimal_value_ {}
private

Old optimal value at the start of the current phase.

Definition at line 665 of file adaptive_diagonal_curves.h.

◆ state_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
state_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::state_ {state_type::none}
private

State.

Definition at line 652 of file adaptive_diagonal_curves.h.

◆ value_dict_

template<concepts::multi_variate_objective_function ObjectiveFunction, index_type MaxDigits = 8>
dict_type num_collect::opt::adaptive_diagonal_curves< ObjectiveFunction, MaxDigits >::value_dict_
private

Dictionary of sampled points.

Definition at line 643 of file adaptive_diagonal_curves.h.


The documentation for this class was generated from the following file: