Skip to content

Commit

Permalink
Allow GPHH solvers to not define training_domains
Browse files Browse the repository at this point in the history
In that case it used training_domains = [problem].
  • Loading branch information
nhuet authored and g-poveda committed Jun 11, 2024
1 parent ff3531c commit 08554df
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 19 deletions.
7 changes: 5 additions & 2 deletions discrete_optimization/facility/solvers/gphh_facility.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,16 +200,19 @@ def default() -> "ParametersGPHH":
class GPHH(SolverFacility):
def __init__(
self,
training_domains: List[FacilityProblem],
problem: FacilityProblem,
training_domains: Optional[List[FacilityProblem]] = None,
weight: int = 1,
params_gphh: Optional[ParametersGPHH] = None,
params_objective_function: Optional[ParamsObjectiveFunction] = None,
):
super().__init__(
problem=problem, params_objective_function=params_objective_function
)
self.training_domains = training_domains
if training_domains is None:
self.training_domains = [problem]
else:
self.training_domains = training_domains
if params_gphh is None:
self.params_gphh = ParametersGPHH.default()
else:
Expand Down
9 changes: 6 additions & 3 deletions discrete_optimization/generic_rcpsp_tools/gphh_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import operator
import random
from enum import Enum
from typing import Dict, List, Set
from typing import Dict, List, Optional, Set

import numpy as np
from deap import algorithms, creator, gp, tools
Expand Down Expand Up @@ -487,16 +487,19 @@ class GPHH(SolverGenericRCPSP):

def __init__(
self,
training_domains: List[Problem],
problem: Problem,
training_domains: Optional[List[Problem]] = None,
weight: int = 1,
params_gphh: ParametersGPHH = None,
params_objective_function: ParamsObjectiveFunction = None,
):
super().__init__(
problem=problem, params_objective_function=params_objective_function
)
self.training_domains = training_domains
if training_domains is None:
self.training_domains = [problem]
else:
self.training_domains = training_domains
self.params_gphh = params_gphh
if self.params_gphh is None:
self.params_gphh = ParametersGPHH.default()
Expand Down
7 changes: 5 additions & 2 deletions discrete_optimization/knapsack/solvers/gphh_knapsack.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,16 +171,19 @@ class GPHH(SolverDO):

def __init__(
self,
training_domains: List[Problem],
problem: MultidimensionalKnapsack,
training_domains: Optional[List[MultidimensionalKnapsack]] = None,
weight: int = 1,
params_gphh: Optional[ParametersGPHH] = None,
params_objective_function: Optional[ParamsObjectiveFunction] = None,
):
super().__init__(
problem=problem, params_objective_function=params_objective_function
)
self.training_domains = training_domains
if training_domains is None:
self.training_domains = [problem]
else:
self.training_domains = training_domains
if params_gphh is None:
self.params_gphh = ParametersGPHH.default()
else:
Expand Down
5 changes: 1 addition & 4 deletions discrete_optimization/rcpsp/rcpsp_solvers.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,10 +236,7 @@ def return_solver(
**kwargs: Any,
) -> Union[SolverRCPSP, SolverGenericRCPSP]:
solver: Union[SolverRCPSP, SolverGenericRCPSP]
if method == GPHH:
solver = GPHH(training_domains=[problem], problem=problem, **kwargs)
else:
solver = method(problem=problem, **kwargs)
solver = method(problem=problem, **kwargs)
try:
solver.init_model(**kwargs)
except:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,7 @@ def look_for_solver_class(class_domain):


def solve(method, problem: MS_RCPSPModel, **args) -> ResultStorage:
if method == GPHH:
solver = GPHH([problem], problem, **args)
else:
solver = method(problem, **args)
solver = method(problem, **args)
try:
solver.init_model(**args)
except:
Expand All @@ -118,10 +115,7 @@ def solve(method, problem: MS_RCPSPModel, **args) -> ResultStorage:


def return_solver(method, problem: MS_RCPSPModel, **args) -> ResultStorage:
if method == GPHH:
solver = GPHH([problem], problem, **args)
else:
solver = method(problem, **args)
solver = method(problem, **args)
try:
solver.init_model(**args)
except:
Expand Down

0 comments on commit 08554df

Please sign in to comment.