target variance for each solver run. authored by Yosh
This commit is contained in:
@ -105,6 +105,15 @@ class LoftService(Base):
|
||||
# Dynamic constraints.. currently we only support Metadata and Bundles(Cases/Passages)
|
||||
problem = solver_helper.build_constraints(self.solver_run, problem, items, bundles)
|
||||
|
||||
# form uniqueness constraints
|
||||
for form in solution.forms:
|
||||
form_item_options = [
|
||||
bundles[bundle.id] for bundle in self.solver_run.bundles
|
||||
] + [
|
||||
items[item.id] for item in self.solver_run.unbundled_items()
|
||||
]
|
||||
problem += len(set(form.solver_variables)&set(form_item_options)) / float(len(set(form.solver_variables) | set(form_item_options))) * 100 >= 10
|
||||
|
||||
logging.info('Creating TIF and TCC Elastic constraints')
|
||||
|
||||
# Behold our very own Elastic constraints!
|
||||
@ -181,10 +190,10 @@ class LoftService(Base):
|
||||
|
||||
return solution
|
||||
|
||||
def add_form_to_solution(self, problem, solution):
|
||||
def add_form_to_solution(self, problem: LpProblem, solution: Solution):
|
||||
# add return items and create as a form
|
||||
form_items = service_helper.solution_items(problem.variables(), self.solver_run)
|
||||
form = Form.create(form_items, self.solver_run, LpStatus[problem.status])
|
||||
form_items, solver_variables = service_helper.solution_items(problem.variables(), self.solver_run)
|
||||
form = Form.create(form_items, self.solver_run, LpStatus[problem.status], solver_variables)
|
||||
|
||||
solution.forms.append(form)
|
||||
|
||||
|
Reference in New Issue
Block a user