Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • F FEDOT
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 87
    • Issues 87
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ITMO-NSS-team
  • FEDOT
  • Merge requests
  • !662

Merged
Created Apr 29, 2022 by Elizaveta Lutsenko@LizLutsenkoOwner

Refactor improvement checking and adaptive population size in GP Optimisers

  • Overview 48
  • Commits 43
  • Changes 33

Created by: gkirgizov

Primary changes:

  • Introduce GenerationKeeper: It encapsulates watching improvements/stagnation and keeping best individuals through generations
  • Drop usages of supplementary metrics in optimisers: In favor of using compound SingleObjFitness with supplementary metrics.
  • Encapsulate dynamic parameter of next offspring size in AdaptiveParameter. This simplifies main optimiser loop a lot, allowing to drop many variables with duplicate functionality, thanks to combination of GenerationKeeper and Fitness. See AdaptivePopulationSize class.
  • Other minor code refactorings (notably dropping custom ParetoFront subclass as it doesn't really override any functionality)

Important notes on changes in API:

  • Now if only 1 metric is provided, additional default complexity metric is appended to metrics The appended metric is the previously used and scattered in Optimisers supplementary metric, which is used for distinguishing individuals with equal fitness. See usages of ComposerBuilder._default_complexity_metrics()

This PR is a part of big refactoring #608 (closed)

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: 608-evoopt