addition of max attempts limit

This commit is contained in:
Joshua Burman 2023-11-17 19:17:43 -05:00
parent 82b6cd25ed
commit 533f83e2c6
2 changed files with 7 additions and 2 deletions

View File

@ -36,6 +36,7 @@ class SolverRun(BaseModel):
theta_cut_score: float = 0.00
drift_style: Literal['constant', 'variable'] = 'constant'
allow_enemies: bool = False
max_attempts: int
advanced_options: Optional[AdvancedOptions]
engine: str

View File

@ -72,10 +72,13 @@ class FormGenerationService(Base):
for form_count in range(self.solver_run.total_forms):
form_number = form_count + 1
current_drift = 0 # FF Tokyo Drift
current_attempt = 0
logging.info(f'Generating Solution for Form {form_number} using the {self.solver_run.irt_model.model} IRT model')
while current_drift <= Target.max_drift():
# respect max attempts
# this will likely be more built out when we add increment rate & drif limit
while current_drift <= Target.max_drift() or current_attempt <= self.solver_run.max_attempts:
drift_percent = current_drift / 100
self.solver_run.objective_function.update_targets_drift(
drift_percent)
@ -91,7 +94,7 @@ class FormGenerationService(Base):
f'attempt infeasible for drift of {current_drift}%')
if current_drift >= Target.max_drift(
): # this is the last attempt, so lets finalize the solution
) or current_attempt >= self.solver_run.max_attempts: # this is the last attempt, so lets finalize the solution
if ApplicationConfigs.local_dev_env:
service_helper.print_problem_variables(problem)
@ -105,6 +108,7 @@ class FormGenerationService(Base):
break
current_drift += Target.max_drift_increment()
current_attempt += 1
else:
if ApplicationConfigs.local_dev_env:
service_helper.print_problem_variables(problem)