Matheuristics combine exact or heuristic subroutines with metaheuristic frameworks. The most common pattern—wrapping an entire optimization algorithm as a local‑search operator—is currently not directly supported: a strategy or algorithm cannot easily be called as a subroutine inside another strategy without loosing all tracking capabilities.
Full matheuristic support would allow users to compose iterative local
search, variable neighbourhood search, GRASP, scatter search, and other
classic hybrid methods out‑of‑the‑box. It depends on constructive
algorithms (#82) for warm‑starting components and will benefit from the
generic component‑swapping infrastructure planned in the EDA refactor (#84).
A partial implementation of VNS was present on previous versions, but it had many problems which made it unworkable for serious applications.
Matheuristics
Matheuristics combine exact or heuristic subroutines with metaheuristic frameworks. The most common pattern—wrapping an entire optimization algorithm as a local‑search operator—is currently not directly supported: a strategy or algorithm cannot easily be called as a subroutine inside another strategy without loosing all tracking capabilities.
Full matheuristic support would allow users to compose iterative local
search, variable neighbourhood search, GRASP, scatter search, and other
classic hybrid methods out‑of‑the‑box. It depends on constructive
algorithms (#82) for warm‑starting components and will benefit from the
generic component‑swapping infrastructure planned in the EDA refactor (#84).
A partial implementation of VNS was present on previous versions, but it had many problems which made it unworkable for serious applications.
Matheuristics
Algorithm(orSearchStrategy) to be wrapped as anOperatorso it can be used as a subroutine (e.g. local searchinside a GA)
(reuse infrastructure from Add native constructive algorithms #82)
without interfering with the outer loop
built‑in strategy with configurable constructive phase