fix item attributes using raw constraint value target, relaxed tif tcc drift
This commit is contained in:
parent
107abcb73a
commit
8bb5075f5b
@ -23,7 +23,11 @@ def items_csv_to_dict(items_csv_reader, solver_run):
|
|||||||
item[solver_run.get_constraint(col).reference_attribute.id] = row[key]
|
item[solver_run.get_constraint(col).reference_attribute.id] = row[key]
|
||||||
elif solver_run.get_constraint(col):
|
elif solver_run.get_constraint(col):
|
||||||
constraint = solver_run.get_constraint(col)
|
constraint = solver_run.get_constraint(col)
|
||||||
item['attributes'].append(constraint.reference_attribute)
|
item['attributes'].append({
|
||||||
|
'id': col,
|
||||||
|
'value': row[key],
|
||||||
|
'type': constraint.reference_attribute.type
|
||||||
|
})
|
||||||
else:
|
else:
|
||||||
if row[key]:
|
if row[key]:
|
||||||
item[col] = row[key]
|
item[col] = row[key]
|
||||||
|
@ -87,15 +87,15 @@ class LoftService(Base):
|
|||||||
# multi-objective constraints
|
# multi-objective constraints
|
||||||
for target in self.solver_run.objective_function.tif_targets:
|
for target in self.solver_run.objective_function.tif_targets:
|
||||||
problem += lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
problem += lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items]) >= target.value - 5, f'max tif theta ({target.theta}) target value {target.value}'
|
for item in self.solver_run.items]) >= target.value - 8, f'max tif theta ({target.theta}) target value {target.value}'
|
||||||
problem += lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
problem += lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items]) <= target.value + 5, f'min tif theta ({target.theta}) target value {target.value}'
|
for item in self.solver_run.items]) <= target.value + 8, f'min tif theta ({target.theta}) target value {target.value}'
|
||||||
|
|
||||||
for target in self.solver_run.objective_function.tcc_targets:
|
for target in self.solver_run.objective_function.tcc_targets:
|
||||||
problem += lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
problem += lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items]) >= target.value - 15, f'max tcc theta ({target.theta}) target value {target.value}'
|
for item in self.solver_run.items]) >= target.value - 20, f'max tcc theta ({target.theta}) target value {target.value}'
|
||||||
problem += lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
problem += lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items]) <= target.value + 15, f'min tcc theta ({target.theta}) target value {target.value}'
|
for item in self.solver_run.items]) <= target.value + 20, f'min tcc theta ({target.theta}) target value {target.value}'
|
||||||
|
|
||||||
# solve problem
|
# solve problem
|
||||||
problem.solve()
|
problem.solve()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user