4.3. pyopus.optimizer.optfilter — Filter-based point acceptance¶
Filter support for constrained optimization (PyOPUS subsystem name: FILT)
-
class
pyopus.optimizer.optfilter.Filter(hmax=0.0, debug=0)¶ All points are stored in a dictionary with keys of the form (f,h).
The value stored alongside (f,h) can be anything.
A point (f,h) dominates (f0,h0) if
- h<h0 and f<=f0 or
- h<=h0 and f<f0
(f,h) is dominated by the filter if h>hmax.
No point in the filter dominates any other point in the filter.
hmax=0 results in extreme barrier behavior.
-
accept(f, h, misc)¶ Checks a point against the filter.
If h>hmax the point does not dominate nor is dominated. Such a point is rejected.
If filter is empty, a point is accepted. Such a point is considered to dominate filter.
If point dominates any filter point it is accepted. Dominated filter points are deleted.
If a point is dominated by any filter point it is rejected. If a point does not dominate nor is dominated it is accepted.
Returns boolean tuple (dominates, dominated, accepted).
-
bestFeasible()¶ Returns (f,h,misc) of the feasible point.
Returns (None, None, None) if no such point exists.
-
static
dominates(f, h, f0, h0)¶ Returns
Trueif (f,h) dominates (f0,h0).
-
leastInfeasible()¶ Returns (f,h,misc) of the infeasible point with lowest h.
Returns (None, None, None) if no such point exists.
-
mostInfeasible()¶ Returns (f,h,misc) of the infeasible point with highest h.
Returns (None, None, None) if no such point exists.
-
orderedHlist()¶ Returns h values in increasing order.
-
orderedPoints()¶ Returns the f and h values ordered by increasing h.
-
position(f, h)¶ Returns the position of h in the ordered list of h values.
0 ... feasible point 1 ... best infeasible point 2 ... second infeasible point ...
Returns
Noneif the point is not in the filter.
-
reset(hmax=None)¶ Resets the filter.
Points are stored in a dictionary with h as key. Dictionary values are tuples of the form (f, misc). There can be only one point for every h0 value.
-
updateHmax(hmax)¶ Updates hmax and purges points with h>hmax.