Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adapt Genetic Algorithm to multi-objective tasks #76

Merged
merged 18 commits into from
Jan 28, 2024

Conversation

Timotshak
Copy link
Collaborator

@Timotshak Timotshak commented Jan 25, 2024

  • Add NSGA2 selection in genetic algorithm to perform multi-objective optimization
  • Change return type of fitness functions to tuple
  • Add multiobjective fitness function TimeAndResourcesFitness
  • Add is_multiobjective and fitness_weights parameters in Genetic Scheduler
  • Add multiobjective scheduling methods to Genetic Scheduler
  • Add Individual and IndividialFitness classes to change them dynamically what can't be done through the deap.creator
  • Сhange the logic of genetic operators. Now they work with chromosomes, and individuals are then created in a genetic algorithm
  • Replace HallOfFame by ParetoFront in genetic algorithm to perform multi-objective optimization. In the case of single-objective optimization, the behavior will not change
  • Add make_offspring function to reduce code
  • Add test of multi-objective genetic scheduling

@Timotshak Timotshak added the enhancement New feature or request label Jan 25, 2024
@Timotshak Timotshak closed this Jan 25, 2024
@Timotshak Timotshak reopened this Jan 25, 2024
Copy link
Collaborator

@StannisMod StannisMod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

sampo/scheduler/genetic/operators.py Show resolved Hide resolved
@Timotshak Timotshak merged commit 1ccc640 into main Jan 28, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants