This commit is contained in:
Eremey Valetov 2026-03-01 00:55:10 +00:00 committed by GitHub
commit 145babc2e5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 27 additions and 2 deletions

View file

@ -42,6 +42,12 @@
* Abstract class for multi-objective algorithms.
*/
class moeoAlgo
{};
{
public:
virtual ~moeoAlgo() = default;
/** Whether this algorithm supports finalize() for post-integration updates. */
virtual bool hasFinalize() const { return false; }
};
#endif /*MOEOALGO_H_*/

View file

@ -148,6 +148,17 @@ public:
while (continuator (_pop));
}
/**
* Recompute fitness and diversity assignments on the population.
* Useful after integrating immigrants from an island model.
* @param _pop the population to finalize
*/
void finalize(eoPop<MOEOT>& _pop) override {
fitnessAssignment(_pop);
diversityAssignment(_pop);
}
bool hasFinalize() const override { return true; }
protected:

View file

@ -47,6 +47,14 @@
*/
template < class MOEOT >
class moeoPopAlgo : public moeoAlgo, public eoAlgo < MOEOT >
{};
{
public:
/**
* Recompute fitness/diversity after external population changes (e.g. immigrant integration).
* Default implementation is a no-op. Override in subclasses that need it.
* @param _pop the population to finalize
*/
virtual void finalize(eoPop<MOEOT>&) {}
};
#endif /*MOEOPOPALGO_H_*/