physbo.search.pareto module

class physbo.search.pareto.Pareto(num_objectives, dom_rule=None)[ソース]

ベースクラス: object

divide_non_dominated_region(force_binary_search=False, debug=False)[ソース]
export_front()[ソース]
prepare_reference_points(upper=True)[ソース]

Make the reference points valid for the current front.

EHVI needs the front between reference_min and reference_max, and HVPI needs it above reference_min. A reference point that is not set is estimated from the front. An estimated reference point that the front has grown beyond is estimated again; a reference point set by the user is kept, with a warning. The warning is always issued from this module, whichever function calls this method, so that warning filters treat all calls alike (and all processes of a parallel run alike).

パラメータ:

upper (bool) -- Whether reference_max is needed as well.

rebuild_front(t, terminal_num_run)[ソース]

Recompute the non-dominated set of points from the observations.

The front is updated in the same order as the observations were written. The reference points are kept unless they are not finite.

パラメータ:
  • t (numpy.ndarray) -- N x num_objectives dimensional array. All the observations.

  • terminal_num_run (numpy.ndarray) -- The number of the observations at the end of each run.

set_reference_max(reference_max=None)[ソース]

Set the upper reference point.

Without an argument, it is estimated from the current front as front_max + 100 w, with w as for set_reference_min; prepare_reference_points estimates it again when the front no longer lies below it. A given reference point is kept as it is.

set_reference_min(reference_min=None)[ソース]

Set the lower reference point.

Without an argument, it is estimated from the current front as front_min - 2 w / n, with w the width of the front in each objective (an objective in which the front has no extent takes the largest width of the others, or 1) and n the number of points of the front; prepare_reference_points estimates it again when the front no longer lies above it. A given reference point is kept as it is.

update_front(t)[ソース]
volume_in_dominance(ref_min, ref_max, dominance_ratio=False)[ソース]
class physbo.search.pareto.Rectangles(n_dim, dtype)[ソース]

ベースクラス: object

Initilize a set of hyper-rectangle.

パラメータ:

n_dim -- dimension of rectangles

add(lb, ub)[ソース]

Add new rectangles.

パラメータ:
  • lb -- lower bounds of rectangles

  • ub -- upper bounds of rectangles

physbo.search.pareto.dominate(t1, t2)[ソース]

domination rule for maximization problem