Add hints and assumptions
The solver now starts by trying to solve without adding joints or declaring skeletons chimeras. Desired buyers are now set as an assumption rather than a linear expression.
This commit is contained in:
parent
3b13e9c25f
commit
12fa917088
|
@ -1165,6 +1165,8 @@ def Solve(bone_market_fluctuations, zoological_mania, desired_buyer = None, maxi
|
||||||
actions[appendage] = model.NewBoolVar(appendage.value.name)
|
actions[appendage] = model.NewBoolVar(appendage.value.name)
|
||||||
else:
|
else:
|
||||||
actions[appendage] = model.NewIntVar(0, cp_model.INT32_MAX, appendage.value.name)
|
actions[appendage] = model.NewIntVar(0, cp_model.INT32_MAX, appendage.value.name)
|
||||||
|
# Avoid adding joints at first
|
||||||
|
model.AddHint(actions[Appendage.ADD_JOINTS], 0)
|
||||||
|
|
||||||
# Adjustment
|
# Adjustment
|
||||||
for adjustment in Adjustment:
|
for adjustment in Adjustment:
|
||||||
|
@ -1173,6 +1175,8 @@ def Solve(bone_market_fluctuations, zoological_mania, desired_buyer = None, maxi
|
||||||
# Declaration
|
# Declaration
|
||||||
for declaration in Declaration:
|
for declaration in Declaration:
|
||||||
actions[declaration] = model.NewBoolVar(declaration.value.name)
|
actions[declaration] = model.NewBoolVar(declaration.value.name)
|
||||||
|
# Try non-Chimera declarations first
|
||||||
|
model.AddHint(actions[Declaration.CHIMERA], 0)
|
||||||
|
|
||||||
# Embellishment
|
# Embellishment
|
||||||
for embellishment in Embellishment:
|
for embellishment in Embellishment:
|
||||||
|
@ -1193,7 +1197,7 @@ def Solve(bone_market_fluctuations, zoological_mania, desired_buyer = None, maxi
|
||||||
|
|
||||||
# Set buyer
|
# Set buyer
|
||||||
if desired_buyer is not None:
|
if desired_buyer is not None:
|
||||||
model.Add(actions[desired_buyer] == 1)
|
model.AddAssumption(actions[desired_buyer])
|
||||||
|
|
||||||
# Value calculation
|
# Value calculation
|
||||||
original_value = model.NewIntVar(0, cp_model.INT32_MAX, 'original value')
|
original_value = model.NewIntVar(0, cp_model.INT32_MAX, 'original value')
|
||||||
|
|
Loading…
Reference in New Issue