Skip to content

Commit

Permalink
fixup! Specify hyperparameters directly in generic LNS_CP
Browse files Browse the repository at this point in the history
  • Loading branch information
nhuet committed May 10, 2024
1 parent 49e097a commit 4f68c90
Showing 1 changed file with 44 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -318,30 +318,30 @@ def build_constraint_handler(rcpsp_problem: ANY_RCPSP, graph, **kwargs):
if "params_list" in kwargs:
params_list = kwargs["params_list"]
else:
if "params_0_cls" in kwargs and "params_0_kwargs" in kwargs:
params_0_cls = kwargs["params_0_cls"]
params_0_kwargs = kwargs["params_0_kwargs"]
params_0 = params_0_cls(**params_0_kwargs)
else:
if kwargs["params_0_kwargs"] is None:
params_0 = ParamsConstraintBuilder(
minus_delta_primary=6000,
plus_delta_primary=6000,
minus_delta_secondary=400,
plus_delta_secondary=400,
constraint_max_time_to_current_solution=False,
)
if "params_1_cls" in kwargs and "params_1_kwargs" in kwargs:
params_1_cls = kwargs["params_1_cls"]
params_1_kwargs = kwargs["params_1_kwargs"]
params_1 = params_1_cls(**params_1_kwargs)
else:
params_0_cls = kwargs["params_0_cls"]
params_0_kwargs = kwargs["params_0_kwargs"]
params_0 = params_0_cls(**params_0_kwargs)
if kwargs["params_1_kwargs"] is None:
params_1 = ParamsConstraintBuilder(
minus_delta_primary=6000,
plus_delta_primary=6000,
minus_delta_secondary=0,
plus_delta_secondary=0,
constraint_max_time_to_current_solution=False,
)
else:
params_1_cls = kwargs["params_1_cls"]
params_1_kwargs = kwargs["params_1_kwargs"]
params_1 = params_1_cls(**params_1_kwargs)
params_list = [params_0, params_1]
constraint_handler = ConstraintHandlerScheduling(
problem=rcpsp_problem,
Expand All @@ -353,30 +353,30 @@ def build_constraint_handler(rcpsp_problem: ANY_RCPSP, graph, **kwargs):
if "params_list" in kwargs:
params_list = kwargs["params_list"]
else:
if "params_0_cls" in kwargs and "params_0_kwargs" in kwargs:
params_0_cls = kwargs["params_0_cls"]
params_0_kwargs = kwargs["params_0_kwargs"]
params_0 = params_0_cls(**params_0_kwargs)
else:
if kwargs["params_0_kwargs"] is None:
params_0 = ParamsConstraintBuilder(
minus_delta_primary=6000,
plus_delta_primary=6000,
minus_delta_secondary=400,
plus_delta_secondary=400,
constraint_max_time_to_current_solution=False,
)
if "params_1_cls" in kwargs and "params_1_kwargs" in kwargs:
params_1_cls = kwargs["params_1_cls"]
params_1_kwargs = kwargs["params_1_kwargs"]
params_1 = params_1_cls(**params_1_kwargs)
else:
params_0_cls = kwargs["params_0_cls"]
params_0_kwargs = kwargs["params_0_kwargs"]
params_0 = params_0_cls(**params_0_kwargs)
if kwargs["params_1_kwargs"] is None:
params_1 = ParamsConstraintBuilder(
minus_delta_primary=5000,
plus_delta_primary=5000,
minus_delta_secondary=2,
plus_delta_secondary=2,
constraint_max_time_to_current_solution=False,
)
else:
params_1_cls = kwargs["params_1_cls"]
params_1_kwargs = kwargs["params_1_kwargs"]
params_1 = params_1_cls(**params_1_kwargs)
params_list = [params_0, params_1]
constraint_handler = NeighborRepairProblems(
problem=rcpsp_problem, params_list=params_list
Expand Down Expand Up @@ -531,11 +531,11 @@ def __init__(
kwargs = self.complete_with_default_hyperparameters(kwargs)

if cp_solver is None:
if kwargs["cp_solver_kwargs"] is None:
if "cp_solver_kwargs" not in kwargs or kwargs["cp_solver_kwargs"] is None:
cp_solver_kwargs = kwargs
else:
cp_solver_kwargs = kwargs["cp_solver_kwargs"]
if kwargs["cp_solver_cls"] is None:
if "cp_solver_cls" not in kwargs or kwargs["cp_solver_cls"] is None:
cp_solver = build_default_cp_model(
rcpsp_problem=problem,
partial_solution=partial_solution,
Expand All @@ -548,11 +548,17 @@ def __init__(
self.cp_solver = cp_solver

if constraint_handler is None:
if kwargs["constraint_handler_kwargs"] is None:
if (
"constraint_handler_kwargs" not in kwargs
or kwargs["constraint_handler_kwargs"] is None
):
constraint_handler_kwargs = kwargs
else:
constraint_handler_kwargs = kwargs["constraint_handler_kwargs"]
if kwargs["constraint_handler_cls"] is None:
if (
"constraint_handler_cls" not in kwargs
or kwargs["constraint_handler_cls"] is None
):
constraint_handler = build_constraint_handler(
rcpsp_problem=self.problem,
graph=graph,
Expand All @@ -568,11 +574,17 @@ def __init__(
self.constraint_handler = constraint_handler

if post_process_solution is None:
if kwargs["post_process_solution_kwargs"] is None:
if (
"post_process_solution_kwargs" not in kwargs
or kwargs["post_process_solution_kwargs"] is None
):
post_process_solution_kwargs = kwargs
else:
post_process_solution_kwargs = kwargs["post_process_solution_kwargs"]
if kwargs["post_process_solution_cls"] is None:
if (
"post_process_solution_cls" not in kwargs
or kwargs["post_process_solution_cls"] is None
):
post_process_solution = build_default_postpro(
rcpsp_problem=self.problem,
partial_solution=partial_solution,
Expand All @@ -588,13 +600,19 @@ def __init__(
self.post_process_solution = post_process_solution

if initial_solution_provider is None:
if kwargs["initial_solution_provider_kwargs"] is None:
if (
"initial_solution_provider_kwargs" not in kwargs
or kwargs["initial_solution_provider_kwargs"] is None
):
initial_solution_provider_kwargs = kwargs
else:
initial_solution_provider_kwargs = kwargs[
"initial_solution_provider_kwargs"
]
if kwargs["initial_solution_provider_cls"] is None:
if (
"initial_solution_provider_cls" not in kwargs
or kwargs["initial_solution_provider_cls"] is None
):
initial_solution_provider = build_default_initial_solution(
rcpsp_problem=self.problem,
**initial_solution_provider_kwargs,
Expand Down

0 comments on commit 4f68c90

Please sign in to comment.