How to maximize the use of CPU resources

59 views
Skip to first unread message

zlch...@gmail.com

unread,
Aug 27, 2025, 2:02:36 AMAug 27
to or-tools-discuss
I found that in most cases, CpSolver does not fully utilize all the CPU resources on the machine. It only gradually increases the CPU utilization when the solution process is difficult to optimize. Why is this? Is there a configuration parameter that allows CpSolver to directly dispatch the maximum resource for solution?

Here are some of my current configurations:

self.solver.parameters.use_optimization_hints = True
self.solver.parameters.log_search_progress = True
self.solver.parameters.cp_model_presolve = True
self.solver.parameters.symmetry_level = 2
self.solver.parameters.enumerate_all_solutions = False
self.solver.parameters.num_workers = multiprocessing.cpu_count()
self.solver.parameters.cp_model_probing_level = 1

self.solver.parameters.search_branching = cp_model.PORTFOLIO_SEARCH
self.solver.parameters.random_polarity_ratio = 0.01
self.solver.parameters.random_branches_ratio = 0.02
self.solver.parameters.restart_period = 100
self.solver.parameters.pseudo_cost_reliability_threshold = 50

self.solver.parameters.share_objective_bounds = True
self.solver.parameters.share_level_zero_bounds = True
self.solver.parameters.share_binary_clauses = True

self.solver.parameters.linearization_level = 2
self.solver.parameters.expand_alldiff_constraints = True
self.solver.parameters.max_all_diff_cut_size = 100
self.solver.parameters.cut_level = 1
self.solver.parameters.add_cg_cuts = True
self.solver.parameters.add_mir_cuts = True
self.solver.parameters.add_clique_cuts = True
self.solver.parameters.max_num_cuts = 20000
self.solver.parameters.new_constraints_batch_size = 100

self.solver.parameters.solution_pool_size = 3
self.solver.parameters.use_lns = True
self.solver.parameters.diversify_lns_params = True

self.solver.parameters.use_feasibility_pump = True
self.solver.parameters.use_implied_bounds = True
self.solver.parameters.use_precedences_in_disjunctive_constraint = True
self.solver.parameters.push_all_tasks_toward_start = False 

Laurent Perron

unread,
Aug 27, 2025, 2:13:24 AMAug 27
to or-tools...@googlegroups.com
this is not true.

the solver uses 1 thread during presolve, then either #cores if num_workers = 0 (default), or num_workers if > 0.
The solver also uses 1 thread when enumerating all solutions.
Laurent Perron | Operations Research | lpe...@google.com | (33) 1 42 68 53 00



--
You received this message because you are subscribed to the Google Groups "or-tools-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to or-tools-discu...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/or-tools-discuss/0f2931a1-c059-4e71-bad2-54d6eed4fc51n%40googlegroups.com.

zlch...@gmail.com

unread,
Aug 27, 2025, 4:33:09 AMAug 27
to or-tools-discuss
Here are my output logs and server CPU monitoring. I don’t quite understand why the CPU utilization is not high even though I used 64 workers to solve the problem.

Starting CP-SAT solver v9.14.6206
Parameters: restart_period: 100 random_branches_ratio: 0.02 use_optimization_hints: true max_time_in_seconds: 7200 log_search_progress: t
rue random_polarity_ratio: 0.01 use_precedences_in_disjunctive_constraint: true search_branching: PORTFOLIO_SEARCH cp_model_presolve: tru
e enumerate_all_solutions: false linearization_level: 2 max_num_cuts: 20000 cp_model_probing_level: 1 share_objective_bounds: true share_
level_zero_bounds: true add_cg_cuts: true add_mir_cuts: true new_constraints_batch_size: 100 pseudo_cost_reliability_threshold: 50 divers
ify_lns_params: true use_implied_bounds: true max_all_diff_cut_size: 100 use_feasibility_pump: true expand_alldiff_constraints: true add_
clique_cuts: true symmetry_level: 2 solution_pool_size: 3 cut_level: 1 share_binary_clauses: true num_workers: 64 push_all_tasks_toward_s
tart: false use_lns: true

Initial optimization model '': (model_fingerprint: 0x33f951c18becead6)
#Variables: 231'274 (#bools: 104 in objective) (201'210 primary variables)
  - 217'998 Booleans in [0,1]
  - 11'316 in [-1,7]
  - 980 in [0,64]
  - 860 in [0,128]
  - 55 in [0,192]
  - 55 in [0,256]
  - 5 in [0,320]
  - 5 in [0,384]
#kAtMostOne: 90 (#literals: 450)
#kBoolAnd: 1'033 (#enforced: 1'033) (#literals: 2'738)
#kExactlyOne: 2'307 (#literals: 103'815)
#kLinMax: 276 (#expressions: 11'040)
#kLinear1: 28'371 (#enforced: 26'937)
#kLinear2: 137'507 (#enforced: 110'692) (#complex_domain: 839)
#kLinear3: 1'582 (#enforced: 1'490 #multi: 1'380) (#complex_domain: 55)
#kLinearN: 85'924 (#enforced: 66'372 #multi: 9'660) (#terms: 2'223'546) (#complex_domain: 11'616)
#kTable: 4'770

Starting presolve at 0.19s
The solution hint is incomplete: 202778 out of 231274 non fixed variables hinted.
  9.27e-02s  0.00e+00d  [DetectDominanceRelations]
  1.41e+00s  0.00e+00d  [PresolveToFixPoint] #num_loops=10 #num_dual_strengthening=6
  1.03e-02s  0.00e+00d  [ExtractEncodingFromLinear] #potential_supersets=16'252 #potential_subsets=2'772 #exo_encodings=86 #literals=3'03
5
  4.09e-02s  0.00e+00d  [DetectDuplicateColumns]
  1.38e-02s  0.00e+00d  [DetectDuplicateConstraints] #duplicates=668
[Symmetry] Graph for symmetry has 663'405 nodes and 2'293'654 arcs.
[Symmetry] Symmetry computation done. time: 0.43088 dtime: 0.689057
[Symmetry] #generators: 1931, average support size: 66.4184
[Symmetry] The model contains 684 duplicate constraints !
[Symmetry] 24337 orbits on 87136 variables with sizes: 12,12,12,12,12,12,12,12,12,12,...
[Symmetry] Num fixable by binary propagation in orbit: 11 / 12
[Symmetry] Num fixable by intersecting at_most_one with orbits: 36 largest_orbit: 12
[Symmetry] Found orbitope of size 36 x 3
[SAT presolve] num removable Booleans: 4985 / 185973
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:223169 literals:547521 vars:128992 one_side_vars:2798 simple_definition:57265 singleton_clauses:0
[SAT presolve] [0.0144409s] clauses:223138 literals:545791 vars:128992 one_side_vars:2798 simple_definition:58382 singleton_clauses:0
[SAT presolve] [0.0363844s] clauses:212215 literals:508276 vars:124834 one_side_vars:17059 simple_definition:42721 singleton_clauses:0
  1.92e-02s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements] #without_enforcements=14'481
  2.42e+00s  1.01e+00d *[Probe] #probed=34'597 #fixed_bools=7 #new_bounds=112 #equiv=22'002 #new_binary_clauses=201'014
  2.33e-01s  5.65e-01d  [MaxClique] Merged 193'545(572'313 literals) into 114'055(444'990 literals) at_most_ones.
  1.12e-01s  0.00e+00d  [DetectDominanceRelations]
  8.34e-02s  0.00e+00d  [DetectDominanceRelations]
  5.98e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=4 #num_dual_strengthening=3
  1.79e-01s  0.00e+00d  [ProcessAtMostOneAndLinear] #num_changes=8
  1.35e-02s  0.00e+00d  [DetectDuplicateConstraints] #duplicates=572
  1.62e-02s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements] #without_enforcements=13'875
  2.55e-01s  3.77e-02d  [DetectDominatedLinearConstraints] #relevant_constraints=23'734 #num_inclusions=134'379 #num_redundant=767
  2.94e-02s  0.00e+00d  [DetectDifferentVariables] #different=656
  1.83e-01s  1.55e-02d  [ProcessSetPPC] #relevant_constraints=129'783 #num_inclusions=86'347
  1.69e-02s  4.80e-04d  [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=702 #found=589
  3.01e-01s  5.07e-01d  [FindBigAtMostOneAndLinearOverlap] #blocks=1'824 #saved_nz=227'540
  7.39e-02s  5.54e-02d  [FindBigVerticalLinearOverlap] #blocks=1'531 #saved_nz=283'898
  5.90e-02s  2.19e-01d  [FindBigHorizontalLinearOverlap] #blocks=21 #saved_nz=2'768 #linears=10'171
  1.74e-02s  3.95e-04d  [MergeClauses] #num_collisions=445 #num_merges=445 #num_saved_literals=1'022
  6.55e-02s  0.00e+00d  [DetectDominanceRelations]
  3.33e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=6 #num_dual_strengthening=3
  6.46e-02s  0.00e+00d  [DetectDominanceRelations]
  1.85e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  1.63e-02s  0.00e+00d  [DetectDuplicateColumns]
  8.10e-03s  0.00e+00d  [DetectDuplicateConstraints] #duplicates=197
[Symmetry] Graph for symmetry has 446'299 nodes and 947'077 arcs.
[Symmetry] Symmetry computation done. time: 0.180477 dtime: 0.261879
[Symmetry] #generators: 1349, average support size: 75.4337
[Symmetry] 18169 orbits on 67502 variables with sizes: 20,20,20,20,20,20,20,20,20,20,...
[Symmetry] Num fixable by binary propagation in orbit: 10 / 20
[Symmetry] Num fixable by intersecting at_most_one with orbits: 36 largest_orbit: 20
[Symmetry] Found orbitope of size 39 x 2
[SAT presolve] num removable Booleans: 19054 / 164926
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:116851 literals:289827 vars:53676 one_side_vars:6867 simple_definition:14321 singleton_clauses:0
[SAT presolve] [0.00800981s] clauses:116677 literals:284697 vars:53676 one_side_vars:6867 simple_definition:14321 singleton_clauses:0
[SAT presolve] [0.061385s] clauses:64036 literals:165239 vars:36148 one_side_vars:8032 simple_definition:13006 singleton_clauses:0
  1.20e-02s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements] #without_enforcements=4'033
  1.35e+00s  1.01e+00d *[Probe] #probed=131'687 #fixed_bools=27 #new_bounds=3 #equiv=2'551 #new_binary_clauses=613'241
  1.91e-01s  5.48e-01d  [MaxClique] Merged 56'350(284'160 literals) into 43'664(257'349 literals) at_most_ones.
  6.59e-02s  0.00e+00d  [DetectDominanceRelations]
  1.89e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  6.44e-02s  0.00e+00d  [ProcessAtMostOneAndLinear] #num_changes=23
  1.30e-02s  0.00e+00d  [DetectDuplicateConstraints] #duplicates=1'761
  8.15e-03s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements] #without_enforcements=3'237
  1.08e-02s  5.89e-04d  [DetectDominatedLinearConstraints] #relevant_constraints=7'551 #num_inclusions=3'152 #num_redundant=3
  2.32e-02s  0.00e+00d  [DetectDifferentVariables] #different=151
  5.73e-02s  2.54e-03d  [ProcessSetPPC] #relevant_constraints=79'247 #num_inclusions=32'163
  9.20e-03s  1.01e-05d  [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=308 #found=92
  8.38e-02s  8.53e-02d  [FindBigAtMostOneAndLinearOverlap] #blocks=37 #saved_nz=4'448
  2.34e-02s  2.38e-02d  [FindBigVerticalLinearOverlap] #blocks=5 #saved_nz=298
  1.84e-02s  5.22e-02d  [FindBigHorizontalLinearOverlap] #blocks=1 #saved_nz=122 #linears=5'369
  1.72e-02s  3.11e-04d  [MergeClauses] #num_collisions=1'156 #num_merges=1'156 #num_saved_literals=2'312
  6.06e-02s  0.00e+00d  [DetectDominanceRelations]
  1.96e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=4 #num_dual_strengthening=2
  5.95e-02s  0.00e+00d  [DetectDominanceRelations]
  1.57e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  1.48e-02s  0.00e+00d  [DetectDuplicateColumns]
  7.49e-03s  0.00e+00d  [DetectDuplicateConstraints] #duplicates=87
[Symmetry] Graph for symmetry has 385'833 nodes and 695'505 arcs.
[Symmetry] Symmetry computation done. time: 0.146725 dtime: 0.1944
[Symmetry] #generators: 1323, average support size: 66.9448
[Symmetry] 16248 orbits on 60174 variables with sizes: 10,10,10,10,10,10,10,10,10,10,...
[Symmetry] Num fixable by binary propagation in orbit: 9 / 10
[Symmetry] Num fixable by intersecting at_most_one with orbits: 36 largest_orbit: 10
[Symmetry] Found orbitope of size 39 x 2
[SAT presolve] num removable Booleans: 218 / 144029
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:47414 literals:121911 vars:33053 one_side_vars:11027 simple_definition:9110 singleton_clauses:0
[SAT presolve] [0.00382145s] clauses:47414 literals:121822 vars:33053 one_side_vars:11046 simple_definition:9127 singleton_clauses:0
[SAT presolve] [0.0105689s] clauses:47056 literals:121354 vars:32889 one_side_vars:11099 simple_definition:8941 singleton_clauses:0
  1.19e-02s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements] #without_enforcements=3'213
  1.24e+00s  1.01e+00d *[Probe] #probed=139'835 #fixed_bools=25 #equiv=105 #new_binary_clauses=583'172
  1.77e-01s  5.20e-01d  [MaxClique] Merged 42'021(241'839 literals) into 36'278(236'229 literals) at_most_ones.
  6.37e-02s  0.00e+00d  [DetectDominanceRelations]
  2.06e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=3 #num_dual_strengthening=2
  6.09e-02s  0.00e+00d  [ProcessAtMostOneAndLinear]
  1.07e-02s  0.00e+00d  [DetectDuplicateConstraints]
  9.62e-03s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements] #without_enforcements=3'213
  1.07e-02s  5.00e-04d  [DetectDominatedLinearConstraints] #relevant_constraints=7'113 #num_inclusions=3'096 #num_redundant=129
  2.40e-02s  0.00e+00d  [DetectDifferentVariables] #different=76
  5.14e-02s  2.28e-03d  [ProcessSetPPC] #relevant_constraints=74'603 #num_inclusions=28'082
  9.36e-03s  6.48e-06d  [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=213 #found=62
  7.99e-02s  8.16e-02d  [FindBigAtMostOneAndLinearOverlap] #blocks=3 #saved_nz=334
  2.23e-02s  2.18e-02d  [FindBigVerticalLinearOverlap] #blocks=5 #saved_nz=272
  1.71e-02s  4.44e-02d  [FindBigHorizontalLinearOverlap] #linears=5'094
  1.82e-02s  3.12e-04d  [MergeClauses] #num_collisions=1'282 #num_merges=1'282 #num_saved_literals=2'564
  6.22e-02s  0.00e+00d  [DetectDominanceRelations]
  1.67e-01s  0.00e+00d  [PresolveToFixPoint] #num_loops=3 #num_dual_strengthening=1
  6.80e-02s  0.00e+00d  [ExpandObjective] #entries=3'323'136 #tight_variables=176'565 #tight_constraints=16'498

Presolve summary:
  - 61652 affine relations were detected.
  - rule 'TODO dual: only one blocking constraint?' was applied 44'424 times.
  - rule 'TODO dual: only one blocking enforced constraint?' was applied 22'869 times.
  - rule 'TODO dual: tighten at most one' was applied 452 times.
  - rule 'TODO linear inclusion: superset is equality' was applied 104 times.
  - rule 'TODO linear matrix: reuse exo constraint' was applied 272 times.
  - rule 'TODO linear2: contains a Boolean.' was applied 97'888 times.
  - rule 'affine: fixed' was applied 12 times.
  - rule 'affine: new relation' was applied 61'652 times.
  - rule 'at_most_one: empty or all false' was applied 3'048 times.
  - rule 'at_most_one: removed literals' was applied 4'109 times.
  - rule 'at_most_one: resolved two constraints with opposite literal' was applied 303 times.
  - rule 'at_most_one: singleton' was applied 53 times.
  - rule 'at_most_one: size one' was applied 99 times.
  - rule 'at_most_one: transformed into max clique.' was applied 3 times.
  - rule 'bool_and: always false' was applied 2'491 times.
  - rule 'bool_and: fixed literals' was applied 1'470 times.
  - rule 'bool_and: merged constraints with same enforcement' was applied 1 time.
  - rule 'bool_and: non-reified.' was applied 12'322 times.
  - rule 'bool_and: x => x' was applied 5'743 times.
  - rule 'bool_or: always true' was applied 3'534 times.
  - rule 'bool_or: fixed literals' was applied 1'417 times.
  - rule 'bool_or: implications' was applied 19'234 times.
  - rule 'bool_or: only one literal' was applied 8'841 times.
  - rule 'bool_or: removed enforcement literal' was applied 64'503 times.
  - rule 'deductions: 282452 stored' was applied 1 time.
  - rule 'domination: in at most one' was applied 67 times.
  - rule 'dual: enforced equivalence' was applied 2'947 times.
  - rule 'dual: fix variable' was applied 393 times.
  - rule 'dual: make encoding equiv' was applied 2'119 times.
  - rule 'duplicate: identical constraint with implied enforcements' was applied 734 times.
  - rule 'duplicate: merged rhs of linear constraint' was applied 1'814 times.
  - rule 'duplicate: removed constraint' was applied 3'285 times.
  - rule 'duplicate: removed enforced constraint' was applied 1 time.
  - rule 'encoding: candidate linear is all Boolean now.' was applied 86 times.
  - rule 'encoding: extracted from linear' was applied 86 times.
  - rule 'encoding: reduced target domain' was applied 43 times.
  - rule 'enforcement: always false' was applied 1'380 times.
  - rule 'enforcement: can never be true' was applied 1 time.
  - rule 'enforcement: false literal' was applied 13'576 times.
  - rule 'enforcement: true literal' was applied 20'824 times.
  - rule 'exactly_one: removed literals' was applied 4'557 times.
  - rule 'exactly_one: satisfied' was applied 200 times.
  - rule 'exactly_one: singleton' was applied 490 times.
  - rule 'exactly_one: size one' was applied 74 times.
  - rule 'exactly_one: size two' was applied 162 times.
  - rule 'exactly_one: x and not(x)' was applied 72 times.
  - rule 'incompatible linear: add implication' was applied 3'827 times.
  - rule 'lin_max: all Booleans.' was applied 172 times.
  - rule 'lin_max: reduced expression domain.' was applied 4'952 times.
  - rule 'lin_max: removed exprs' was applied 553 times.
  - rule 'linear + amo: added implications' was applied 1'282 times.
  - rule 'linear + amo: detect hidden AMO' was applied 487 times.
  - rule 'linear + amo: empty after processing' was applied 3'104 times.
  - rule 'linear + amo: extracted enforcement literal' was applied 28'491 times.
  - rule 'linear + amo: fixed literal implied by enforcement' was applied 1'774 times.
  - rule 'linear + amo: infeasible linear constraint' was applied 8 times.
  - rule 'linear + amo: removed enforcement literal' was applied 55 times.
  - rule 'linear + amo: trivial linear constraint' was applied 68 times.
  - rule 'linear inclusion: redundant included constraint' was applied 811 times.
  - rule 'linear inclusion: sparsify superset' was applied 24 times.
  - rule 'linear inclusion: subset + singleton is equality' was applied 64 times.
  - rule 'linear matrix: common amo rectangle' was applied 1'864 times.
  - rule 'linear matrix: common horizontal rectangle' was applied 22 times.
  - rule 'linear matrix: common vertical rectangle' was applied 1'541 times.
  - rule 'linear matrix: defining equation for common rectangle' was applied 163 times.
  - rule 'linear1: always true' was applied 268 times.
  - rule 'linear1: transformed to implication' was applied 5'394 times.
  - rule 'linear1: x in domain' was applied 1'435 times.
  - rule 'linear2: Boolean with one feasible value.' was applied 1 time.
  - rule 'linear2: contains a Boolean.' was applied 22 times.
  - rule 'linear2: implied ax + by = cte has only one solution' was applied 47'907 times.
  - rule 'linear: advanced affine relation from 2 constraints.' was applied 743 times.
  - rule 'linear: always true' was applied 5'593 times.
  - rule 'linear: divide by GCD' was applied 46'914 times.
  - rule 'linear: doubleton free' was applied 4 times.
  - rule 'linear: empty' was applied 6'326 times.
  - rule 'linear: enforcement literal in expression' was applied 23'123 times.
  - rule 'linear: expanded complex rhs' was applied 1'031 times.
  - rule 'linear: extracted at most one (max).' was applied 3'150 times.
  - rule 'linear: fixed or dup variables' was applied 61'553 times.
  - rule 'linear: infeasible' was applied 1'311 times.
  - rule 'linear: negative clause' was applied 47'683 times.
  - rule 'linear: negative equal one' was applied 235 times.
  - rule 'linear: negative reified and' was applied 16'247 times.
  - rule 'linear: only two odd Booleans in equality' was applied 1 time.
  - rule 'linear: positive at most one' was applied 17'007 times.
  - rule 'linear: positive clause' was applied 16'835 times.
  - rule 'linear: positive equal one' was applied 1'844 times.
  - rule 'linear: positive reified and' was applied 2'338 times.
  - rule 'linear: reduced variable domains' was applied 4'956 times.
  - rule 'linear: reduced variable domains in derived constraint' was applied 6'096 times.
  - rule 'linear: remapped using affine relations' was applied 38'602 times.
  - rule 'linear: singleton column' was applied 140 times.
  - rule 'linear: small Boolean expression' was applied 210 times.
  - rule 'linear: variable substitution 1' was applied 4 times.
  - rule 'linear: variable substitution 2' was applied 5 times.
  - rule 'new_bool: complex linear expansion' was applied 1'916 times.
  - rule 'new_bool: var with 2 values' was applied 5'174 times.
  - rule 'new_bool: with clause' was applied 1'864 times.
  - rule 'presolve: 82137 unused variables removed.' was applied 1 time.
  - rule 'presolve: iteration' was applied 3 times.
  - rule 'probing: bool_or reduced to implication' was applied 29 times.
  - rule 'probing: simplified clauses.' was applied 122 times.
  - rule 'setppc: bool_or in at_most_one.' was applied 11'898 times.
  - rule 'setppc: exactly_one included in linear' was applied 5'605 times.
  - rule 'setppc: fixed variables' was applied 355 times.
  - rule 'setppc: reduced linear coefficients' was applied 5'239 times.
  - rule 'setppc: removed dominated constraints' was applied 4'319 times.
  - rule 'setppc: removed infeasible linear constraint' was applied 67 times.
  - rule 'setppc: removed trivial linear constraint' was applied 299 times.
  - rule 'symmetry: fixed to false in general orbit' was applied 108 times.
  - rule 'table: all constant' was applied 3'444 times.
  - rule 'table: all tuples!' was applied 18 times.
  - rule 'table: expanded positive constraint' was applied 684 times.
  - rule 'table: expanded positive constraint with two variables' was applied 616 times.
  - rule 'table: negative table without tuples' was applied 3'444 times.
  - rule 'table: only one column!' was applied 8 times.
  - rule 'table: reduce variable domain' was applied 44 times.
  - rule 'table: remove expressions' was applied 3'470 times.
  - rule 'table: remove tuples' was applied 3'470 times.
  - rule 'table: reused literals' was applied 684 times.
  - rule 'variables with 2 values: create encoding literal' was applied 5'174 times.
  - rule 'variables with 2 values: new affine relation' was applied 5'174 times.
  - rule 'variables: canonicalize affine domain' was applied 1'986 times.
  - rule 'variables: detect fully reified value encoding' was applied 2'408 times.
  - rule 'variables: detect half reified value encoding' was applied 30'743 times.
  - rule 'variables: fixed value due to affine relation' was applied 2 times.
  - rule 'variables: removable enforcement literal' was applied 172 times.

Presolved optimization model '': (model_fingerprint: 0x9cdc747333a70791)
#Variables: 102'975 (#bools: 208 in objective) (89'634 primary variables)
  - 98'602 Booleans in [0,1]
  - 4 in [-3,3]
  - 3'245 in [-1,7]
  - 51 in [0,2]
  - 140 in [0,3]
  - 220 in [0,4]
  - 70 in [0,5]
  - 159 in [0,6]
  - 34 in [0,7]
  - 21 in [0,8]
  - 22 in [0,9]
  - 12 in [0,10]
  - 21 in [0,12]
  - 4 in [0,15]
  - 4 in [0,18]
  - 29 in [1,3]
  - 105 in [1,4]
  - 64 in [1,5]
  - 12 in [1,6]
  - 72 in [2,6]
  - 6 in [2,11]
  - 6 in [2,12]
  - 64 in [4,11]
  - 8 in [4,12]
#kAtMostOne: 12'272 (#literals: 177'218)
#kBoolAnd: 14'603 (#enforced: 14'603 #multi: 499) (#literals: 42'033)
#kBoolOr: 16'862 (#literals: 60'067)
#kExactlyOne: 15'356 (#literals: 175'121)
#kLinMax: 104 (#expressions: 3'141)
#kLinear1: 8'522 (#enforced: 8'522 #multi: 520)
#kLinear2: 1'301 (#enforced: 1'295 #multi: 520)
#kLinear3: 1'095 (#enforced: 962 #multi: 520)
#kLinearN: 6'314 (#enforced: 3'401 #multi: 1'581) (#terms: 106'298)
[Symmetry] Graph for symmetry has 239'436 nodes and 680'790 arcs.
[Symmetry] Symmetry computation done. time: 0.116322 dtime: 0.18386
[Symmetry] #generators: 1368, average support size: 69.5234
[Symmetry] The model contains 2 duplicate constraints !
[Symmetry] 16766 orbits on 63962 variables with sizes: 10,10,10,10,10,10,10,10,10,10,...
[Symmetry] Found orbitope of size 39 x 2

Preloading model.
#Bound  14.40s best:-inf  next:[-0,208]   initial_domain
The solution hint is incomplete: 87590 out of 102975 non fixed variables hinted.
#Model  14.44s var:102975/102975 constraints:76429/76429 compo:101624,464,449,438

Starting search at 14.50s with 64 workers.
18 full problem subsolvers: [core, default_lp, lb_tree_search, max_lp, max_lp_sym, no_lp, objective_lb_search, objective_lb_search_max_lp
, objective_lb_search_no_lp, objective_shaving_max_lp, objective_shaving_no_lp, probing, probing_max_lp, probing_no_lp, pseudo_costs, qui
ck_restart, quick_restart_no_lp, reduced_costs]
46 first solution subsolvers: [fj(14), fj_lin(6), fs_random(7), fs_random_no_lp(7), fs_random_quick_restart(6), fs_random_quick_restart_n
o_lp(6)]
28 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, lb_relax_lns, ls(11), ls_lin(5)
, rins/rens, rnd_cst_lns, rnd_var_lns, variables_shaving, variables_shaving_max_lp, variables_shaving_no_lp]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]

#Bound  14.93s best:-inf  next:[-0,104]   am1_presolve (num_literals=208 num_am1=104 increase=104 work_done=1248)
#1      14.96s best:24    next:[25,104]   fs_random_no_lp [hint] (fixed_bools=355/103097)
#2      22.20s best:25    next:[26,104]   objective_lb_search_no_lp [hint] (fixed_bools=579/103097)
#Model  30.79s var:102495/102975 constraints:75579/76429 compo:101144,464,449,438
#Model  30.91s var:102494/102975 constraints:75578/76429 compo:101143,464,449,438
#3      31.04s best:26    next:[27,104]   ls_lin_restart_perturb(batch:1 lin{mvs:43 evals:434} #w_updates:30 #perturb:0) (fixed_bools=355
/103097)
#4      39.23s best:27    next:[28,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:72'096} gen{mvs:10'392 evals:2'995} comp{mvs:164 bt
racks:5'114} #w_updates:51 #perturb:0) [combined with: ls_lin_restart_pertu...] (fixed_bools=355/103097)
#5      44.98s best:28    next:[29,104]   ls_restart_perturb(batch:1 lin{mvs:59 evals:453} #w_updates:44 #perturb:0) [combined with: ls_r
estart_compound(...] (fixed_bools=355/103097)
#Model  49.51s var:102440/102975 constraints:75509/76429 compo:101089,464,449,438
#Model  49.59s var:102439/102975 constraints:75508/76429 compo:101088,464,449,438
#Model  49.73s var:102437/102975 constraints:75506/76429 compo:101086,464,449,438
#Model  49.78s var:102435/102975 constraints:75504/76429 compo:101084,464,449,438
#Model  49.83s var:102433/102975 constraints:75502/76429 compo:101082,464,449,438
#Model  49.89s var:102431/102975 constraints:75500/76429 compo:101080,464,449,438
#6      49.94s best:29    next:[30,104]   ls_lin_restart_decay_compound(batch:1 lin{mvs:0 evals:47'690} gen{mvs:4'616 evals:1'429} comp{m
vs:170 btracks:2'223} #w_updates:41 #perturb:0) (fixed_bools=355/103097)
#Model  56.29s var:102425/102975 constraints:75494/76429 compo:101074,464,449,438
#Model  56.33s var:102424/102975 constraints:75493/76429 compo:101073,464,449,438
#7      56.41s best:30    next:[31,104]   ls_restart_compound_perturb(batch:1 lin{mvs:0 evals:40'214} gen{mvs:6'268 evals:1'991} comp{mvs
:80 btracks:3'094} #w_updates:27 #perturb:0) (fixed_bools=355/103097)
#Model  61.16s var:102422/102975 constraints:75491/76429 compo:101071,464,449,438
#8      61.18s best:31    next:[32,104]   ls_restart_compound_perturb(batch:1 lin{mvs:0 evals:85'478} gen{mvs:9'976 evals:2'658} comp{mvs
:230 btracks:4'873} #w_updates:69 #perturb:0) [combined with: ls_restart_compound_...] (fixed_bools=355/103097)
#Model  68.69s var:102421/102975 constraints:75490/76429 compo:101070,464,449,438
#Model  68.74s var:102418/102975 constraints:75487/76429 compo:101067,464,449,438
#Model  68.81s var:102414/102975 constraints:75483/76429 compo:101063,464,449,438
#Model  68.87s var:102413/102975 constraints:75482/76429 compo:101062,464,449,438
#Model  68.91s var:102408/102975 constraints:75477/76429 compo:101057,464,449,438
#9      68.98s best:32    next:[33,104]   ls_restart_decay_compound(batch:1 lin{mvs:0 evals:52'167} gen{mvs:7'079 evals:2'057} comp{mvs:1
23 btracks:3'478} #w_updates:34 #perturb:0) (fixed_bools=355/103097)
#10     73.95s best:33    next:[34,104]   ls_restart_compound_perturb(batch:1 lin{mvs:0 evals:149'875} gen{mvs:13'353 evals:3'405} comp{m
vs:509 btracks:6'422} #w_updates:90 #perturb:0) [combined with: ls_restart_decay_com...] (fixed_bools=355/103097)
#Model  78.47s var:102407/102975 constraints:75476/76429 compo:101056,464,449,438
#Model  78.51s var:102402/102975 constraints:75471/76429 compo:101051,464,449,438
#Model  78.59s var:102400/102975 constraints:75469/76429 compo:101049,464,449,438
#11     78.62s best:34    next:[35,104]   ls_restart_perturb(batch:1 lin{mvs:33 evals:412} #w_updates:29 #perturb:0) (fixed_bools=355/103
097)
#12     85.79s best:35    next:[36,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:141'507} gen{mvs:13'466 evals:3'249} comp{mvs:318 b
tracks:6'574} #w_updates:93 #perturb:0) (fixed_bools=355/103097)
#13     90.73s best:36    next:[37,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:141'507} gen{mvs:13'466 evals:3'249} comp{mvs:318 b
tracks:6'574} #w_updates:93 #perturb:0) [combined with: ls_restart_perturb(b...] (fixed_bools=355/103097)
#Model  97.54s var:102396/102975 constraints:75465/76429 compo:101045,464,449,438
#Model  97.58s var:102395/102975 constraints:75464/76429 compo:101044,464,449,438
#Model  97.61s var:102394/102975 constraints:75463/76429 compo:101043,464,449,438
#14     97.67s best:37    next:[38,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:232'795} gen{mvs:20'997 evals:4'455} comp{mvs:621 b
tracks:10'188} #w_updates:169 #perturb:0) (fixed_bools=355/103097)
#Model 102.13s var:102393/102975 constraints:75462/76429 compo:101042,464,449,438
#Model 102.18s var:102392/102975 constraints:75461/76429 compo:101041,464,449,438
#Model 102.22s var:102388/102975 constraints:75457/76429 compo:101037,464,449,438
#15    102.24s best:38    next:[39,104]   ls_restart_perturb(batch:1 lin{mvs:71 evals:663} gen{mvs:1 evals:29} #w_updates:64 #perturb:0)
(fixed_bools=355/103097)
#16    106.64s best:39    next:[40,104]   ls_lin_restart(batch:1 lin{mvs:463 evals:2'534} gen{mvs:1 evals:26} #w_updates:252 #perturb:0)
[combined with: ls_restart_perturb(b...] (fixed_bools=355/103097)
#Model 113.73s var:102366/102975 constraints:75435/76429 compo:101015,464,449,438
#17    113.76s best:40    next:[41,104]   ls_lin_restart_decay(batch:1 lin{mvs:65 evals:450} gen{mvs:1 evals:31} #w_updates:30 #perturb:0
) (fixed_bools=355/103097)
#Model 119.84s var:102363/102975 constraints:75432/76429 compo:101012,464,449,438
#Model 119.88s var:102361/102975 constraints:75430/76429 compo:101010,464,449,438
#18    119.92s best:41    next:[42,104]   ls_lin_restart_decay_compound(batch:1 lin{mvs:0 evals:33'001} gen{mvs:5'224 evals:1'629} comp{m
vs:98 btracks:2'563} #w_updates:22 #perturb:0) (fixed_bools=355/103097)
#19    128.28s best:42    next:[43,104]   ls_restart_decay_compound(batch:1 lin{mvs:0 evals:37'687} gen{mvs:5'892 evals:1'719} comp{mvs:1
34 btracks:2'879} #w_updates:31 #perturb:0) [combined with: ls_lin_restart_decay...] (fixed_bools=355/103097)
#20    136.38s best:44    next:[45,104]   ls_restart_perturb(batch:1 lin{mvs:840 evals:2'915} gen{mvs:8 evals:141} #w_updates:366 #pertur
b:0) (fixed_bools=355/103097)
#21    145.17s best:45    next:[46,104]   ls_restart_perturb(batch:1 lin{mvs:840 evals:2'915} gen{mvs:8 evals:141} #w_updates:366 #pertur
b:0) [combined with: ls_restart_decay_com...] (fixed_bools=355/103097)
#Model 152.61s var:102359/102975 constraints:75428/76429 compo:101008,464,449,438
#Model 152.65s var:102353/102975 constraints:75422/76429 compo:101002,464,449,438
#22    152.76s best:47    next:[48,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:194'392} gen{mvs:16'604 evals:2'788} comp{mvs:576 b
tracks:8'014} #w_updates:136 #perturb:0) (fixed_bools=355/103097)
#Model 157.58s var:102351/102975 constraints:75420/76429 compo:101000,464,449,438
#Model 157.63s var:102344/102975 constraints:75412/76429 compo:100993,464,449,438
#23    157.67s best:48    next:[49,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:26'959} gen{mvs:4'776 evals:1'427} comp{mvs:66 btra
cks:2'355} #w_updates:22 #perturb:0) (fixed_bools=355/103097)
#Model 162.06s var:102342/102975 constraints:75410/76429 compo:100991,464,449,438
#Model 162.12s var:102325/102975 constraints:75393/76429 compo:100974,464,449,438
#Model 162.16s var:102324/102975 constraints:75392/76429 compo:100973,464,449,438
#24    162.25s best:49    next:[50,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:250'950} gen{mvs:19'292 evals:5'391} comp{mvs:796 b
tracks:9'248} #w_updates:172 #perturb:0) (fixed_bools=355/103097)
#Model 169.20s var:102317/102975 constraints:75384/76429 compo:100966,464,449,438
#25    169.24s best:50    next:[51,104]   ls_lin_restart_decay_compound(batch:1 lin{mvs:0 evals:35'583} gen{mvs:4'741 evals:1'438} comp{m
vs:147 btracks:2'297} #w_updates:25 #perturb:0) (fixed_bools=355/103097)
#26    173.72s best:51    next:[52,104]   ls_restart_decay_compound_perturb(batch:1 lin{mvs:0 evals:28'202} gen{mvs:4'403 evals:1'235} co
mp{mvs:157 btracks:2'123} #w_updates:14 #perturb:0) (fixed_bools=355/103097)
#Model 181.46s var:102309/102975 constraints:75376/76429 compo:100958,464,449,438
#Model 181.54s var:102306/102975 constraints:75373/76429 compo:100955,464,449,438
#27    181.63s best:52    next:[53,104]   ls_restart_compound(batch:1 lin{mvs:0 evals:266'884} gen{mvs:20'591 evals:3'426} comp{mvs:791 b
tracks:9'900} #w_updates:179 #perturb:0) (fixed_bools=355/103097)
#28    186.53s best:53    next:[54,104]   ls_lin_restart_perturb(batch:1 lin{mvs:123 evals:571} gen{mvs:1 evals:31} #w_updates:95 #pertur
b:0) (fixed_bools=355/103097)
#29    191.04s best:54    next:[55,104]   ls_restart_decay_compound_perturb(batch:1 lin{mvs:0 evals:31'359} gen{mvs:4'497 evals:1'479} co
mp{mvs:125 btracks:2'186} #w_updates:23 #perturb:0) [combined with: ls_lin_restart_pertu...] (fixed_bools=355/103097)
#Model 198.31s var:102303/102975 constraints:75370/76429 compo:100952,464,449,438
#30    198.41s best:55    next:[56,104]   ls_lin_restart_compound(batch:1 lin{mvs:0 evals:235'309} gen{mvs:19'935 evals:4'388} comp{mvs:7
63 btracks:9'586} #w_updates:186 #perturb:0) (fixed_bools=355/103097)
#31    202.62s best:56    next:[57,104]   ls_restart_decay_compound(batch:1 lin{mvs:0 evals:20'042} gen{mvs:1'631 evals:740} comp{mvs:93
btracks:769} #w_updates:16 #perturb:0) (fixed_bools=355/103097)
#Model 210.61s var:102298/102975 constraints:75365/76429 compo:100947,464,449,438
#32    210.65s best:57    next:[58,104]   ls_restart(batch:1 lin{mvs:307 evals:1'277} #w_updates:142 #perturb:0) (fixed_bools=355/10309截屏2025-08-27 16.04.34.png

grego...@gmail.com

unread,
Aug 27, 2025, 7:19:18 AMAug 27
to or-tools-discuss
You can be limited by memory bandwidth, by code in solution callback that interrupts calculation, your cpu and used OS, solutions that are found too fast to invoke all search workers ... without details and proto file it is impossible to help.

Jan

Reply all
Reply to author
Forward
0 new messages