PBO#
- class ioh.iohcpp.problem.PBO#
Bases:
IntegerSingleObjective
Pseudo-Boolean Optimization (PBO) problem set.
Contains 25 test functions taking their domain on {0, 1}^n, where n is the length of bitstrings.
In PBO, we cover some theory-motivated function, e.g., OneMax and LeadingOnes as well as others with more practical relevance, e.g., the NK Landscape [DoerrYHWSB20]. We also utilized the so-called W-model for generating/enriching the problem set [WeiseW18].
Reference#
[DoerrYHWSB20] Carola Doerr, Furong Ye, Naama Horesh, Hao Wang, Ofer M. Shir, and Thomas Bäck. “Benchmarking discrete optimization heuristics with IOHprofiler.” Applied Soft Computing 88 (2020): 106027.
[WeiseW18] Thomas Weise and Zijun Wu. “Difficult features of combinatorial optimization problems and the tunable w-model benchmark problem for simulating them.” In Proceedings of the Genetic and Evolutionary Computation Conference Companion, pp. 1769-1776. 2018.
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.
- 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.PBO
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.PBO
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