From a8e2a736ea71bacecc9ef6970698b42bf7ed0a4a Mon Sep 17 00:00:00 2001 From: Pagwin Date: Fri, 5 Jun 2026 14:35:18 -0400 Subject: [PATCH] more customizable criteria --- main.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 5540f90..ce1b9c3 100644 --- a/main.py +++ b/main.py @@ -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()