|
EllAlgo 1.6.13
|
Ellipsoid Search Space. More...
#include <ell_calc.hpp>
Public Member Functions | |
| EllCalc (const size_t ndim) | |
| Construct a new EllCalcobject. | |
| EllCalc (EllCalc &&E)=default | |
| Construct a new EllCalcobject. | |
| EllCalc & | operator= (const EllCalc &other)=default |
| Copy assignment operator. | |
| EllCalc & | operator= (EllCalc &&other)=default |
| Move assignment operator. | |
| ~EllCalc ()=default | |
| Destroy the EllCalcobject. | |
| EllCalc (const EllCalc &E)=default | |
| Construct a new EllCalcobject. | |
| auto | calc_parallel_bias_cut (double beta0, double beta1, double tsq) const -> CutResult |
| Parallel deep cut. | |
| auto | calc_parallel_central_cut (double beta1, double tsq) const -> CutResult |
| Parallel central cut. | |
| auto | calc_bias_cut (double beta, double tsq) const -> CutResult |
| Deep (bias) cut. | |
| auto | calc_central_cut (double tsq) const -> CutResult |
| Central cut. | |
| auto | calc_parallel_bias_cut_q (double beta0, double beta1, double tsq) const -> CutResult |
| Parallel deep cut (Q-version for discrete optimization) | |
| auto | calc_bias_cut_q (double beta, double tsq) const -> CutResult |
| Deep cut (Q-version for discrete optimization) | |
Public Attributes | |
| bool | use_parallel_cut = true |
Protected Attributes | |
| double | _n_f |
| EllCalcCore | _helper |
Ellipsoid Search Space.
EllCalc= {x | (x - xc)' mq^-1 (x - xc) \(\le\kappa\)}
Keep $Q$ symmetric but no promise of positive definite
Construct a new EllCalcobject.
| [in] | ndim |
|
default |
Construct a new EllCalcobject.
| [in] | E | (move) |
|
default |
Destroy the EllCalcobject.
Construct a new EllCalcobject.
To avoid accidentally copying, only explicit copy is allowed
| [in] | E |
Deep (bias) cut.
Single constraint:
\[ g^T (x - x_c) + \beta \le 0 \]
| [in] | beta | Bias term (≥ 0) |
| [in] | tsq | Squared ellipsoid radius (τ²) |
Deep cut (Q-version for discrete optimization)
Single constraint:
\[ g^T (x - x_c) + \beta \le 0 \]
Returns NoEffect instead of NoSoln when the cut is ineffective. Used by cutting_plane_optim_q for discrete convex problems.
| [in] | beta | Bias term |
| [in] | tsq | Squared ellipsoid radius (τ²) |
Central cut.
Single constraint passing through center:
\[ g^T (x - x_c) \le 0 \]
| [in] | tsq | Squared ellipsoid radius (τ²) |
Parallel deep cut.
Two parallel constraints:
\[ \beta_0 \le g^T (x - x_c) \le \beta_1 \]
Falls back to calc_bias_cut when parallel cut is ineffective.
| [in] | beta0 | Lower bound |
| [in] | beta1 | Upper bound |
| [in] | tsq | Squared ellipsoid radius (τ²) |
| auto EllCalc::calc_parallel_bias_cut_q | ( | double | beta0, |
| double | beta1, | ||
| double | tsq | ||
| ) | const -> CutResult |
Parallel deep cut (Q-version for discrete optimization)
Two parallel constraints:
\[ \beta_0 \le g^T (x - x_c) \le \beta_1 \]
Returns NoEffect instead of NoSoln when the cut is ineffective. Used by cutting_plane_optim_q for discrete convex problems.
| [in] | beta0 | Lower bound |
| [in] | beta1 | Upper bound |
| [in] | tsq | Squared ellipsoid radius (τ²) |
Parallel central cut.
One central + one parallel:
\[ 0 \le g^T (x - x_c) \le \beta_1 \]
Falls back to calc_central_cut when parallel cut is ineffective.
| [in] | beta1 | Upper bound |
| [in] | tsq | Squared ellipsoid radius (τ²) |
|
protected |
|
protected |