Source code for discrete_optimization.rcpsp_multiskill.solvers.ga

#  Copyright (c) 2022 AIRBUS and its affiliates.
#  This source code is licensed under the MIT license found in the
#  LICENSE file in the root directory of this source tree.

from discrete_optimization.generic_tools.do_solver import SolverDO
from discrete_optimization.generic_tools.ea.alternating_ga import AlternatingGa
from discrete_optimization.generic_tools.ea.ga_tools import ParametersAltGa
from discrete_optimization.rcpsp.problem import RcpspProblem


[docs] class GaMultiskillRcpspSolver(SolverDO): problem: RcpspProblem
[docs] def solve(self, parameters_ga: ParametersAltGa = None, **args): if parameters_ga is None: parameters_ga = ParametersAltGa.default_msrcpsp() ga_solver = AlternatingGa( problem=self.problem, encodings=parameters_ga.encodings, objective_handling=parameters_ga.objective_handling, objectives=parameters_ga.objectives, objective_weights=parameters_ga.objective_weights, mutations=parameters_ga.mutations, selections=parameters_ga.selections, crossovers=parameters_ga.crossovers, max_evals=parameters_ga.max_evals, sub_evals=parameters_ga.sub_evals, pop_size=parameters_ga.pop_size, mut_rate=parameters_ga.mut_rate, crossover_rate=parameters_ga.crossover_rate, tournament_size=parameters_ga.tournament_size, deap_verbose=parameters_ga.deap_verbose, ) return ga_solver.solve()