From d88b7c031960550e138c7d3706493c0979fe2090 Mon Sep 17 00:00:00 2001 From: Pagwin Date: Fri, 5 Jun 2026 14:14:01 -0400 Subject: [PATCH] linear objective sucks returning to multiplication --- main.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index af49d63..5540f90 100644 --- a/main.py +++ b/main.py @@ -485,11 +485,14 @@ def solve( # below. (finalE/finalB/finalS are the pools after step 5's gains.) # ====================================================================== ## NOTE: product can be changed here - prodEB = m.NewIntVar(0, capE * capB, "prodEB") - m.AddMultiplicationEquality(prodEB, [finalE, finalB]) - obj = m.NewIntVar(0, capE * capB * capS, "obj") - m.AddMultiplicationEquality(obj, [prodEB, finalS]) - m.Maximize(obj) + # prodEB = m.NewIntVar(0, capE * capB, "prodEB") + # m.AddMultiplicationEquality(prodEB, [finalE, finalB]) + # obj = m.NewIntVar(0, capE * capB * capS, "obj") + # m.AddMultiplicationEquality(obj, [prodEB, finalS]) + # m.Maximize(obj) + + # Linear objective instead + m.Maximize(finalE + finalB + finalS) # ---- Phase 2: solve the product to optimality ---- solver = cp_model.CpSolver() @@ -691,7 +694,9 @@ def _report( ) fe, fb, fs = solver.Value(finalE), solver.Value(finalB), solver.Value(finalS) - print(f"\nFINAL E={fe} B={fb} S={fs} product = {fe * fb * fs}") + print( + f"\nFINAL E={fe} B={fb} S={fs} product = {fe * fb * fs} sum = {fe + fb + fs}" + ) if __name__ == "__main__":