MostPromisingArea

class MostPromisingArea(val problemDefinition: ProblemDefinition, val center: DoubleArray, val visited: List<DoubleArray>)(source)

The COMPASS most-promising-area (MPA) around a current best (center) point x*. The MPA is the set of feasible points that are at least as close to x* as to every other point visited so far. Geometrically it is the intersection of:

  1. the original problem's linear constraints (carried as originalHalfSpaces), and

  2. one halfway hyperplane per visited point y != x*: the half-space of points no farther from x* than from y. For y this half-space is a · x <= b with a = y - x* and b = (|y|^2 - |x*|^2) / 2, which contains x*.

A point lies in the MPA when it satisfies every halfway hyperplane and is input-feasible for the problem (box bounds, integer granularity, linear and functional constraints). The RMD sampler walks within this region; the redundancy checker can prune halfway hyperplanes that never bind.

Parameters

problemDefinition

the problem whose feasible region the MPA refines

center

the current best point x*, in the problem's input order

visited

the set of previously visited points (each in the problem's input order); the center itself, if present, contributes no constraint and is ignored

Constructors

Link copied to clipboard
constructor(problemDefinition: ProblemDefinition, center: DoubleArray, visited: List<DoubleArray>)

Properties

Link copied to clipboard

All half-spaces that define the MPA: the original constraints plus the halfway hyperplanes.

Link copied to clipboard
Link copied to clipboard

One halfway hyperplane per distinct visited point, each oriented to contain center.

Link copied to clipboard

The original problem's linear constraints expressed uniformly as a · x <= b half-spaces.

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard

Returns the halfway hyperplanes that are not redundant given the problem's original half-spaces together with the remaining halfway hyperplanes — i.e. the ones that can actually bind on the MPA. Used to keep the RMD sampler's per-axis interval computation lean.

Link copied to clipboard
fun contains(x: DoubleArray, tol: Double = HalfSpace.defaultTolerance): Boolean

True if x lies in the most-promising area: it satisfies every halfway hyperplane and is input-feasible for the problem (which already enforces the box bounds and original linear and functional constraints).