Skip to content

feat(moeo): add real-valued multi-objective local search#87

Open
evvaletov wants to merge 5 commits into
nojhan:masterfrom
evvaletov:feat/moeo-local-search
Open

feat(moeo): add real-valued multi-objective local search#87
evvaletov wants to merge 5 commits into
nojhan:masterfrom
evvaletov:feat/moeo-local-search

Conversation

@evvaletov

@evvaletov evvaletov commented Feb 22, 2026

Copy link
Copy Markdown

Summary

Add local search components for real-valued multi-objective optimisation,
enabling hybrid evolutionary + local search strategies.

moeo/src/selection/moeoBestUnvisitedSelect.h — selection operator
that picks unvisited individuals, with optional Pareto-dominance exclusion
filtering.

moeo/src/explorer/moeoRealVectorNeighborhoodExplorer.h — neighborhood
explorer for continuous decision spaces with geometric scaling along
improving directions.

moeo/src/algo/moeoUnifiedDominanceBasedLS_Real.h — archive-based
dominance local search algorithm combining the above components.

moeo/src/moeo — includes for the three new headers.

Dependencies

Once those are merged, this branch can be rebased to drop the dependency
commits.

@nojhan

nojhan commented Feb 27, 2026

Copy link
Copy Markdown
Owner

Seems very interesting! I'll review that on a cleaned history.

moRealVectorNeighbor: neighbor type for real-valued vector solutions
with delta-based forward/backward moves via moBackableNeighbor.
@evvaletov

Copy link
Copy Markdown
Author

Rebased onto HEAD. This PR includes commits from #83 and #84 as dependencies.

Eremey Valetov added 4 commits April 11, 2026 20:49
- Fix copyright: single mention with correct author and year
- Update website/contact URLs to current GitHub locations
- Add blank line after Doxygen summary line
Add virtual finalize() and hasFinalize() to moeoAlgo/moeoPopAlgo hierarchy.
NSGA-II implements finalize() to recompute fitness and diversity assignments
after population modifications (e.g. immigrant integration in island model).
Replace the hasFinalize()/finalize() pattern with a moeoAlgoFinalized<MOEOT>
abstract interface. Algorithms opt in by inheriting from it. Consumers
check at compile time via std::is_base_of_v instead of a runtime bool.
moeoBestUnvisitedSelect: selects unvisited individuals with optional
Pareto-dominance exclusion filtering.

RealVectorNeighborhoodExplorer: generates random perturbation directions
with geometric scaling along improving directions. Supports per-dimension
epsilon and minimum scaling factors.

moeoUnifiedDominanceBasedLSReal: archive-based dominance local search for
real-valued multi-objective problems.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants