|
Gecode 6.4.0
|
This development branch provides an additive API, included with
It is enabled separately from the existing Gecode libraries. A model owns variables, sparse rows, objective data and supported logical/global metadata; a solve returns a historical result rather than a mutable search Space.
| Interface | Delivered scope | Important boundary |
|---|---|---|
| Existing Space, IntVar, BoolVar, SetVar, FloatVar and native search APIs | The original CP modeling, global constraints, propagators, search customization and configured parallel search | Optimize restrictions below do not remove these existing capabilities. See Programming models and Search engines. |
| Optimize with Backend::Highs | Numerical continuous LP and mixed-integer linear models, including supported binary and semi domains | One worker per solve; numerical tolerances and adapter scaling limits apply. Exact and Certified requests are rejected. |
| Optimize with Backend::Native | Finite Integer, Binary and SemiInteger models with exact integral linear data, retained indicators and six typed global families | Conservative native coefficient/activity limits; one deterministic worker; no arbitrary continuous or fractional model conversion. |
| Explicit native LP/frontier/neighborhood APIs | Checked integer LP deductions, optional original-row root covers, frontier bounds, binary reliability probes and one bounded incumbent neighborhood | Each extension requires an explicit call or setting. No automatic portfolio or commercial-solver performance parity is implied. |
| QuadraticModel and solve_quadratic | Bounded continuous convex minimization or concave maximization expressed as weighted squares plus linear terms | Numerical checking; separate model type. No integer QP, quadratic constraints or general nonconvex optimization. |
Gecode::Optimize::solve selects native Gecode for active typed globals under Backend::Auto, and HiGHS otherwise. Auto does not select a backend from the requested guarantee: an ordinary linear model requesting Exact must select Native explicitly. Missing or unsupported backends return Unsupported; explicit requests are not silently substituted. Inspect Gecode::Optimize::capabilities, Gecode::Optimize::native_capabilities, Gecode::Optimize::native_lp_capabilities and Gecode::Optimize::quadratic_capabilities for the current build.
For a numerical LP, use Continuous variables and Backend::Highs with Guarantee::Numerical. Consult Building and linking the optional component for the required build.