more customizable criteria

This commit is contained in:
Pagwin 2026-06-05 14:35:18 -04:00
parent d88b7c0319
commit a8e2a736ea
No known key found for this signature in database
GPG key ID: 81137023740CA260

26
main.py
View file

@ -491,8 +491,30 @@ def solve(
# m.AddMultiplicationEquality(obj, [prodEB, finalS])
# m.Maximize(obj)
# Linear objective instead
m.Maximize(finalE + finalB + finalS)
# Linear objective instead (it sucks)
# m.Maximize(finalE + finalB + finalS)
# New Product
def Eprod(v):
return v * v
def Bprod(v):
return v
def Sprod(v):
return v * v
prodEE = m.NewIntVar(0, Eprod(capE), "prodEE")
m.AddMultiplicationEquality(prodEE, [finalE])
prodSS = m.NewIntVar(0, Sprod(capS), "prodSS")
m.AddMultiplicationEquality(prodSS, [finalS])
prodBB = m.NewIntVar(0, Bprod(capB), "prodBB")
m.AddMultiplicationEquality(prodBB, [finalB])
prodEB = m.NewIntVar(0, Eprod(capE) * Bprod(capB), "prodEB")
m.AddMultiplicationEquality(prodEB, [prodEE, prodBB])
obj = m.NewIntVar(0, Eprod(capE) * Bprod(capB) * Sprod(capS), "obj")
m.AddMultiplicationEquality(obj, [prodEB, prodSS])
m.Maximize(obj)
# ---- Phase 2: solve the product to optimality ----
solver = cp_model.CpSolver()