RealStarDiscrepancy#
- class ioh.iohcpp.problem.RealStarDiscrepancy(self: ioh.iohcpp.problem.RealStarDiscrepancy, instance: int = 1, n_variables: int = 5, n_samples: int = 5, sampler_type: ioh.iohcpp.problem.StarDiscrepancySampler = <StarDiscrepancySampler.UNIFORM: 0>)#
Bases:
RealSingleObjective
Star-discrepancy problems
The 𝐿_infinity star discrepancy is a measure for the regularity of a finite set of points taken from [0, 1)^d. Calculating this measure is challenging, and exact algorithm fall short even for relatively small grids. This suite provides access to a set of these problems to tackle the problem from an optimization perspective.
There are two equivalent representations for these problems: Integer-based and Real-valued.
For the Real-valued, the goal is to find the a point in [0,1)^d which minimizes the resulting discepancy directly.
The Integer-valued version takes advantage of the fact that for each dimension, the optimium has a value matching an existing point int the grid. As such, the search for a point in the grid can be reduced to finding in each dimension the index of the coordinate, resulting in a search domain [0,n]^d, where n is the number of gridpoints.
Reference#
[Clement23] Clement, Francois, Diederick Vermetten, Jacob de Nobel, Alexandre Jesus, Luís Paquete, and Carola Doerr. “Computing Star Discrepancies with Numerical Black-Box Optimization Algorithms.”
Star Discrepancy Problems
- param instance:
The instance of the problem, will be used as seed for sampler
- type instance:
int = 1
- param n_variables:
The dimension of the problem
- type n_variables:
int = 5
- param n_samples:
The number of sampled points
- type n_samples:
int = 5
- param sampler_type:
The type of sampler to use when sampling the points
- type sampler_type:
StarDiscrepancySampler
Attributes Summary
The bounds of the problem.
The constraints of the problem.
The data is that being sent to the logger.
The static meta-data of the problem containing, e.g., problem id, instance id, and problem's dimensionality
The optimum and its objective value for a problem instance
The current state of the optimization process containing, e.g., the current solution and the number of function evaluated consumed so far
Methods Summary
Evaluate the problem.
add a constraint
Attach a logger to the problem to allow performance tracking.
create
(*args, **kwargs)Overloaded function.
Remove the specified logger from the problem.
Enforced the bounds (box-constraints) as constraint :param weight: :type weight: The weight for computing the penalty (can be infinity to have strict box-constraints) :param how: :type how: The enforcement strategy, should be one of the 'ioh.ConstraintEnforcement' options :param exponent: :type exponent: The exponent for scaling the contraint
remove a constraint
Reset all state variables of the problem.
update the problem id
update the problem instance
update the problem name
Attributes Documentation
- bounds#
The bounds of the problem.
- constraints#
The constraints of the problem.
- grid#
- log_info#
The data is that being sent to the logger.
- meta_data#
The static meta-data of the problem containing, e.g., problem id, instance id, and problem’s dimensionality
- optimum#
The optimum and its objective value for a problem instance
- problems#
- state#
The current state of the optimization process containing, e.g., the current solution and the number of function evaluated consumed so far
Methods Documentation
- __call__()#
Evaluate the problem.
- Parameters:
x (list) – the search point to evaluate. It must be a 1-dimensional array/list whose length matches search space’s dimensionality
- Returns:
The evaluated search point
- Return type:
float
Evaluate the problem.
- Parameters:
x (list[list]) – the search points to evaluate. It must be a 2-dimensional array/list whose length matches search space’s dimensionality
- Returns:
The evaluated search points
- Return type:
list[float]
- add_constraint()#
add a constraint
- attach_logger()#
Attach a logger to the problem to allow performance tracking.
- Parameters:
logger (Logger) – A logger-object from the IOHexperimenter logger module.
- static create(*args, **kwargs)#
Overloaded function.
create(problem_name: str, instance_id: int, dimension: int) -> ioh.iohcpp.problem.RealStarDiscrepancy
Create a problem instance
- problem_name: str
a string indicating the problem name.
- instance_id: int
an integer identifier of the problem instance
- dimension: int
the dimensionality of the search space
create(problem_id: int, instance_id: int, dimension: int) -> ioh.iohcpp.problem.RealStarDiscrepancy
Create a problem instance
- problem_name: int
a string indicating the problem name.
- instance_id: int
an integer identifier of the problem instance
- dimension: int
the dimensionality of the search space
- detach_logger()#
Remove the specified logger from the problem.
- enforce_bounds()#
Enforced the bounds (box-constraints) as constraint :param weight: :type weight: The weight for computing the penalty (can be infinity to have strict box-constraints) :param how: :type how: The enforcement strategy, should be one of the ‘ioh.ConstraintEnforcement’ options :param exponent: :type exponent: The exponent for scaling the contraint
- remove_constraint()#
remove a constraint
- reset()#
Reset all state variables of the problem.
- set_id()#
update the problem id
- set_instance()#
update the problem instance
- set_name()#
update the problem name