MILPRouter example¶

This notebook demonstrates how to use OptiWindNet to design collector system cable networks using the MILPRouter with OR-Tools Solver.

Load data¶

import required modules

[1]:
from optiwindnet.api import WindFarmNetwork, EWRouter, MILPRouter
[2]:
# Display figures as SVG in Jupyter notebooks
%config InlineBackend.figure_formats = ['svg']

create an instance of wfn using .from_pbf()

[3]:
wfn = WindFarmNetwork.from_pbf(filepath='data/DTU_letters.osm.pbf', cables=[(7, 2000.0)])
[4]:
wfn
[4]:
../_images/notebooks_b03_MILPRouter_8_0.svg

Optimize¶

Warmstart with EWRouter:

Note: In OptiWindNet, MILPRouter automatically uses any existing feasible network and checks whether it is eligible as a warm start for the MILP solver. If eligible, the MILP model will be warm-started from the existing network. Therefore, to warm-start a newly created WindFarmNetwork, pre-run the optimization with a router (e.g., EWRouter or HGSRouter) to obtain an initial solution; subsequent runs with MILPRouter will pick it up automatically.

[5]:
res_warmstart= wfn.optimize(router=EWRouter())
[6]:
wfn.length()
[6]:
1647.108905210097

The syntax for defining a MILPRouter is:

router = MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.005, verbose=True)

The solver name could be chosen from among the following solvers:

solver_name = 'ortools.«backend»'  # «backend» in (cp_sat, gscip, highs)
solver_name = 'gurobi'
solver_name = 'cbc'
solver_name = 'cplex'
solver_name = 'highs'
solver_name = 'scip'

Rest of arguments (time_limit, mip_gap, verbose) are the same for all solvers.

In this example we use ‘ortools.cp_sat’ which is an opensource tool. You can easily use other solvers (note that depending on your problem size, you might need license for some of the solvers, e.g. cplex, gurobi)

[7]:
router = MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.005, verbose=True)
[8]:
res = wfn.optimize(router=router)
IntegerBoundsPreprocessor                              1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
BoundPropagationPreprocessor                           1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
ImpliedIntegerPreprocessor                             1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
IntegerBoundsPreprocessor                              1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
ReduceCostOverExclusiveOrConstraintPreprocessor        1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]

Scaling to pure integer problem.
Num integers: 708/708 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP]
Maximum constraint coefficient relative error: 0
Maximum constraint worst-case activity error: 0
Constraint scaling factor range: [1, 1]

Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 60 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.005
Setting number of workers to 16

Initial optimization model 'optiwindnet': (model_fingerprint: 0x5ec2d01861d9914d)
#Variables: 708 (#bools: 314 in floating point objective) (628 primary variables)
  - 354 Booleans in [0,1]
  - 314 in [0,6]
  - 40 in [0,7]
#kLinear2: 865
#kLinear3: 1
#kLinearN: 227 (#terms: 2'229)

Starting presolve at 0.00s
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 314 terms with magnitude in [0.140862, 190.901] average = 35.1267
[Scaling] Objective coefficient relative error: 4.44741e-06
[Scaling] Objective worst-case absolute error: 8.26922e-05
[Scaling] Objective scaling factor: 524288
  2.12e-04s  0.00e+00d  [DetectDominanceRelations]
  4.58e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  1.54e-05s  0.00e+00d  [ExtractEncodingFromLinear] #potential_supersets=145
  9.19e-05s  0.00e+00d  [DetectDuplicateColumns]
  7.36e-05s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'666 nodes and 4'984 arcs.
[Symmetry] Symmetry computation done. time: 0.000306732 dtime: 0.00047967
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.0112e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.6475e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
  2.48e-04s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  1.14e-02s  3.89e-03d  [Probe] #probed=1'416 #new_binary_clauses=354
  6.79e-04s  2.15e-04d  [MaxClique] Merged 262 constraints with 776 literals into 142 constraints with 536 literals
  2.57e-04s  0.00e+00d  [DetectDominanceRelations]
  3.12e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  8.21e-04s  0.00e+00d  [ProcessAtMostOneAndLinear] #num_changes=354
  1.06e-04s  0.00e+00d  [DetectDuplicateConstraints]
  9.30e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  1.99e-04s  6.08e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=41
  1.29e-05s  0.00e+00d  [DetectDifferentVariables]
  8.69e-04s  7.01e-05d  [ProcessSetPPC] #relevant_constraints=184 #num_inclusions=182
  1.10e-04s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=142
  2.93e-04s  0.00e+00d  [DetectEncodedComplexDomains]
  1.68e-05s  1.65e-07d  [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3
  1.25e-04s  9.42e-05d  [FindBigAtMostOneAndLinearOverlap]
  9.81e-05s  1.07e-04d  [FindBigVerticalLinearOverlap]
  1.36e-05s  5.27e-06d  [FindBigHorizontalLinearOverlap] #linears=80
  9.94e-06s  0.00e+00d  [MergeClauses]
  2.22e-04s  0.00e+00d  [DetectDominanceRelations]
  3.71e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  5.36e-04s  0.00e+00d  [DetectDominanceRelations]
  1.82e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  9.02e-05s  0.00e+00d  [DetectDuplicateColumns]
  1.28e-04s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'412 nodes and 4'137 arcs.
[Symmetry] Symmetry computation done. time: 0.000229899 dtime: 0.00043586
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [9.247e-06s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [2.0816e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
  2.13e-04s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  4.56e-03s  1.27e-03d  [Probe] #probed=708
  4.84e-04s  1.45e-04d  [MaxClique]
  2.11e-04s  0.00e+00d  [DetectDominanceRelations]
  2.03e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  7.93e-05s  0.00e+00d  [ProcessAtMostOneAndLinear]
  7.49e-05s  0.00e+00d  [DetectDuplicateConstraints]
  5.99e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  1.16e-04s  4.59e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=82 #num_inclusions=40
  1.11e-05s  0.00e+00d  [DetectDifferentVariables]
  7.01e-05s  3.03e-06d  [ProcessSetPPC] #relevant_constraints=183
  8.37e-05s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=142
  2.64e-04s  0.00e+00d  [DetectEncodedComplexDomains]
  1.60e-05s  1.10e-07d  [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=2
  1.23e-04s  9.14e-05d  [FindBigAtMostOneAndLinearOverlap]
  8.96e-05s  1.07e-04d  [FindBigVerticalLinearOverlap]
  1.17e-05s  5.27e-06d  [FindBigHorizontalLinearOverlap] #linears=80
  8.66e-06s  0.00e+00d  [MergeClauses]
  2.15e-04s  0.00e+00d  [DetectDominanceRelations]
  2.45e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  3.46e-06s  0.00e+00d  [MergeNoOverlap]
  3.57e-06s  0.00e+00d  [MergeNoOverlap2D]
  1.39e-04s  0.00e+00d  [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40

Presolve summary:
  - 0 affine relations were detected.
  - rule 'TODO linear inclusion: superset is equality' was applied 81 times.
  - rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.
  - rule 'at_most_one: transformed into max clique' was applied 1 time.
  - rule 'bool_or: implications' was applied 157 times.
  - rule 'deductions: 708 stored' was applied 1 time.
  - rule 'linear + amo: extracted enforcement literal' was applied 354 times.
  - rule 'linear2: contains a boolean' was applied 354 times.
  - rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.
  - rule 'linear: positive at most one' was applied 105 times.
  - rule 'linear: positive equal one' was applied 40 times.
  - rule 'objective: shifted cost with exactly ones' was applied 40 times.
  - rule 'presolve: 0 unused variables removed.' was applied 1 time.
  - rule 'presolve: iteration' was applied 2 times.
  - rule 'setppc: exactly_one included in linear' was applied 40 times.
  - rule 'setppc: reduced linear coefficients' was applied 39 times.
  - rule 'setppc: removed trivial linear constraint' was applied 1 time.
  - rule 'variables: detect fully reified value encoding' was applied 354 times.
  - rule 'variables: detect half reified value encoding' was applied 708 times.

Presolved optimization model 'optiwindnet': (model_fingerprint: 0xbceb3d0f5e9b4ebe)
#Variables: 708 (#bools: 314 in objective) (628 primary variables)
  - 354 Booleans in [0,1]
  - 314 in [0,6]
  - 40 in [0,7]
#kAtMostOne: 105 (#literals: 462)
#kBoolAnd: 37 (#enforced: 37) (#literals: 74)
#kExactlyOne: 40 (#literals: 354)
#kLinear1: 708 (#enforced: 708)
#kLinear3: 1
#kLinearN: 81 (#terms: 1'059)
[Symmetry] Graph for symmetry has 2'412 nodes and 4'137 arcs.
[Symmetry] Symmetry computation done. time: 0.000251257 dtime: 0.00043646

Preloading model.
#Bound   0.04s best:inf   next:[1364.00132,11449.6914] initial_domain
#1       0.04s best:1645.69852 next:[1364.00132,1645.69852] complete_hint
#Model   0.05s var:708/708 constraints:972/972

Starting search at 0.05s with 16 workers.
11 full problem subsolvers: [core, default_lp, lb_tree_search, max_lp, no_lp, objective_lb_search, probing, pseudo_costs, quick_restart, quick_restart_no_lp, reduced_costs]
5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]
11 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, lb_relax_lns, ls, ls_lin, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]

#2       0.06s best:1629.22229 next:[1364.00132,1629.22229] no_lp [hint] (fixed_bools=0/354)
#Bound   0.06s best:1629.22229 next:[1377.09321,1629.22229] am1_presolve (num_literals=314 num_am1=11 increase=6863921 work_done=1181)
#Bound   0.06s best:1629.22229 next:[1402.64487,1629.22229] objective_lb_search
#Bound   0.06s best:1629.22229 next:[1409.52721,1629.22229] pseudo_costs
#Bound   0.07s best:1629.22229 next:[1409.68956,1629.22229] probing
#Bound   0.07s best:1629.22229 next:[1499.2973,1629.22229] lb_tree_search
#3       0.08s best:1628.56605 next:[1499.2973,1628.56605] quick_restart_no_lp (fixed_bools=0/366)
#4       0.09s best:1624.35452 next:[1499.2973,1624.35452] rnd_cst_lns (d=7.07e-01 s=22 t=0.10 p=1.00 stall=1 h=base)
#5       0.09s best:1620.81203 next:[1499.2973,1620.81203] graph_var_lns (d=7.07e-01 s=23 t=0.10 p=1.00 stall=1 h=base)
#6       0.10s best:1620.1558 next:[1499.2973,1620.1558] graph_var_lns (d=7.07e-01 s=23 t=0.10 p=1.00 stall=1 h=base) [combined with: quick_restart_no_lp...]
#7       0.10s best:1608.69336 next:[1499.2973,1608.69336] quick_restart_no_lp (fixed_bools=0/372)
#8       0.11s best:1608.24843 next:[1499.2973,1608.24843] quick_restart_no_lp (fixed_bools=0/375)
#Bound   0.12s best:1608.24843 next:[1508.6868,1608.24843] lb_tree_search
#Bound   0.13s best:1608.24843 next:[1510.86835,1608.24843] max_lp
#Bound   0.14s best:1608.24843 next:[1511.62243,1608.24843] max_lp
#Model   0.16s var:696/708 constraints:959/972
#9       0.16s best:1594.62232 next:[1511.62243,1594.62232] graph_arc_lns (d=7.07e-01 s=25 t=0.10 p=1.00 stall=0 h=base)
#10      0.17s best:1594.1774 next:[1511.62243,1594.17739] graph_arc_lns (d=7.07e-01 s=25 t=0.10 p=1.00 stall=0 h=base) [combined with: quick_restart_no_lp...]
#11      0.19s best:1593.08762 next:[1511.62243,1593.08762] quick_restart_no_lp (fixed_bools=6/386)
#Model   0.23s var:694/708 constraints:957/972
#Bound   0.27s best:1593.08762 next:[1512.29863,1593.08762] max_lp
#12      0.29s best:1588.29611 next:[1512.29863,1588.2961] quick_restart_no_lp (fixed_bools=7/388)
#Bound   0.29s best:1588.29611 next:[1512.70322,1588.2961] objective_lb_search
#Bound   0.33s best:1588.29611 next:[1523.53914,1588.2961] lb_tree_search
#Bound   0.34s best:1588.29611 next:[1524.9632,1588.2961] max_lp
#13      0.35s best:1582.27954 next:[1524.9632,1582.27954] quick_restart_no_lp (fixed_bools=19/390)
#Model   0.37s var:672/708 constraints:933/972
#Bound   0.38s best:1582.27954 next:[1525.07248,1582.27954] lb_tree_search (nodes=2/2 rc=0 decisions=9 @root=2 restarts=0 lp_iters=[0, 0, 116, 119])
#Bound   0.38s best:1582.27954 next:[1525.07852,1582.27954] lb_tree_search (nodes=2/2 rc=0 decisions=10 @root=2 restarts=0 lp_iters=[0, 0, 120, 119])
#Bound   0.40s best:1582.27954 next:[1526.46836,1582.27954] lb_tree_search (nodes=3/3 rc=0 decisions=15 @root=2 restarts=0 lp_iters=[0, 0, 173, 168])
#Bound   0.41s best:1582.27954 next:[1526.47914,1582.27954] lb_tree_search (nodes=3/3 rc=0 decisions=16 @root=2 restarts=0 lp_iters=[0, 0, 245, 168])
#Bound   0.42s best:1582.27954 next:[1526.62668,1582.27954] lb_tree_search (nodes=4/4 rc=0 decisions=21 @root=2 restarts=0 lp_iters=[0, 0, 298, 185])
#Bound   0.43s best:1582.27954 next:[1526.7599,1582.27954] lb_tree_search (nodes=5/5 rc=0 decisions=31 @root=2 restarts=0 lp_iters=[0, 0, 414, 192])
#Bound   0.45s best:1582.27954 next:[1526.81281,1582.27954] lb_tree_search (nodes=6/6 rc=0 decisions=34 @root=2 restarts=0 lp_iters=[0, 0, 516, 243])
#Bound   0.46s best:1582.27954 next:[1526.87021,1582.27954] lb_tree_search (nodes=6/6 rc=0 decisions=35 @root=2 restarts=0 lp_iters=[0, 0, 617, 243])
#14      0.48s best:1580.99387 next:[1526.88985,1580.99387] graph_var_lns (d=8.14e-01 s=33 t=0.10 p=1.00 stall=0 h=base) [combined with: quick_restart_no_lp...]
#Model   0.70s var:670/708 constraints:931/972
#Model   0.79s var:656/708 constraints:915/972
#Bound   1.00s best:1580.99387 next:[1532.12612,1580.99387] max_lp [skipped_logs=13]
#Model   1.06s var:624/708 constraints:881/972
#15      1.06s best:1575.35544 next:[1532.12612,1575.35543] graph_var_lns (d=8.76e-01 s=46 t=0.10 p=1.00 stall=0 h=base)
#Model   1.09s var:622/708 constraints:879/972
#Model   1.21s var:620/708 constraints:877/972
#Model   1.50s var:606/708 constraints:862/972
#Model   1.65s var:604/708 constraints:860/972
#Model   1.73s var:596/708 constraints:852/972
#Model   1.81s var:586/708 constraints:842/972
#Bound   1.99s best:1575.35544 next:[1538.67998,1575.35543] lb_tree_search (nodes=19/19 rc=7 decisions=150 @root=6 restarts=0 lp_iters=[0, 0, 4'560, 581])  [skipped_logs=22]
#Model   2.56s var:582/708 constraints:838/972
#Bound   3.00s best:1575.35544 next:[1541.86761,1575.35543] lb_tree_search (nodes=31/31 rc=11 decisions=312 @root=6 restarts=0 lp_iters=[0, 0, 10'105, 1'202])  [skipped_logs=21]
#Model   3.12s var:576/708 constraints:831/972
#Model   3.40s var:568/708 constraints:823/972
#Model   3.51s var:564/708 constraints:819/972
#Bound   3.85s best:1575.35544 next:[1543.37889,1575.35543] lb_tree_search (nodes=50/55 rc=25 decisions=512 @root=6 restarts=0 lp_iters=[0, 0, 15'906, 1'507])  [skipped_logs=23]
#Model   4.13s var:560/708 constraints:814/972
#Bound   5.02s best:1575.35544 next:[1545.15584,1575.35543] lb_tree_search (nodes=60/68 rc=28 decisions=730 @root=8 restarts=0 lp_iters=[0, 0, 22'669, 1'913])  [skipped_logs=25]
#Bound   5.98s best:1575.35544 next:[1545.769,1575.35543] lb_tree_search (nodes=77/89 rc=37 decisions=972 @root=8 restarts=0 lp_iters=[0, 0, 30'797, 2'447])  [skipped_logs=26]
#Model   6.67s var:556/708 constraints:810/972
#Bound   6.15s best:1575.35544 next:[1545.78961,1575.35543] lb_tree_search (nodes=79/91 rc=38 decisions=1011 @root=8 restarts=0 lp_iters=[0, 0, 31'846, 2'497])  [skipped_logs=2]
#Model   7.40s var:554/708 constraints:806/972
#Model   8.08s var:548/708 constraints:799/972
#Model   8.40s var:546/708 constraints:796/972
#Model   8.71s var:534/708 constraints:783/972
#Model   9.04s var:532/708 constraints:780/972
#Bound  10.06s best:1575.35544 next:[1545.84997,1575.35543] lb_tree_search (nodes=45/45 rc=40 decisions=1156 @root=17 restarts=1 lp_iters=[0, 0, 36'678, 4'390])
#Bound  10.12s best:1575.35544 next:[1545.8705,1575.35543] lb_tree_search (nodes=46/46 rc=40 decisions=1165 @root=17 restarts=1 lp_iters=[0, 0, 36'985, 4'431])
#Bound  10.20s best:1575.35544 next:[1545.89946,1575.35543] lb_tree_search (nodes=47/47 rc=40 decisions=1172 @root=17 restarts=1 lp_iters=[0, 0, 37'405, 4'513])
#Model  11.00s var:530/708 constraints:778/972
#Bound  11.01s best:1575.35544 next:[1546.46288,1575.35543] lb_tree_search (nodes=56/56 rc=43 decisions=1278 @root=17 restarts=1 lp_iters=[0, 0, 40'886, 4'887])  [skipped_logs=9]
#Model  11.31s var:528/708 constraints:776/972
#Model  11.35s var:526/708 constraints:774/972
#Model  11.77s var:524/708 constraints:772/972
#Model  11.86s var:522/708 constraints:770/972
#Bound  11.94s best:1575.35544 next:[1547.23899,1575.35543] lb_tree_search (nodes=66/68 rc=43 decisions=1445 @root=17 restarts=1 lp_iters=[0, 0, 47'075, 5'464])  [skipped_logs=22]
#Model  12.20s var:520/708 constraints:768/972
#Bound  12.99s best:1575.35544 next:[1548.42222,1575.35543] lb_tree_search (nodes=86/88 rc=45 decisions=1714 @root=17 restarts=1 lp_iters=[0, 0, 54'166, 5'983])  [skipped_logs=23]
#Model  13.69s var:518/708 constraints:766/972
#Model  13.92s var:516/708 constraints:763/972
#Bound  13.85s best:1575.35544 next:[1548.87363,1575.35543] lb_tree_search (nodes=95/97 rc=46 decisions=1829 @root=18 restarts=1 lp_iters=[0, 0, 58'624, 6'333])  [skipped_logs=12]
#Model  14.54s var:514/708 constraints:761/972
#Done   14.91s reduced_costs
#Done   14.92s pseudo_costs
#Bound  14.59s best:1575.35544 next:[1548.93973,1575.35543] lb_tree_search (nodes=95/97 rc=46 decisions=1842 @root=19 restarts=1 lp_iters=[0, 0, 59'056, 6'333])  [skipped_logs=0]

Task timing                                n [     min,      max]      avg      dev     time         n [     min,      max]      avg      dev    dtime
                           'core':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [  1.31ms,   11.31s]    5.65s    5.65s   11.31s
                     'default_lp':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [ 22.49ms,    6.91s]    3.47s    3.44s    6.93s
               'feasibility_pump':        69 [835.19us,  25.64ms]   1.59ms   2.93ms 110.02ms        68 [145.21us,  14.25ms] 365.92us   1.70ms  24.88ms
                             'fj':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                             'fj':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                      'fs_random':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                'fs_random_no_lp':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
  'fs_random_quick_restart_no_lp':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                  'graph_arc_lns':        39 [ 15.18ms, 443.40ms] 202.24ms 141.92ms    7.89s        39 [ 16.40us, 100.14ms]  49.63ms  40.39ms    1.94s
                  'graph_cst_lns':        40 [ 16.49ms, 416.40ms] 200.37ms 163.92ms    8.01s        40 [ 20.89us, 100.12ms]  50.30ms  46.32ms    2.01s
                  'graph_dec_lns':        39 [701.90us, 422.57ms] 178.95ms 156.21ms    6.98s        37 [ 10.00ns, 100.19ms]  50.72ms  46.80ms    1.88s
                  'graph_var_lns':        38 [887.02us, 426.35ms] 213.05ms 145.67ms    8.10s        37 [ 10.00ns, 100.14ms]  55.40ms  42.09ms    2.05s
                   'lb_relax_lns':        11 [ 86.60ms,    1.46s] 671.55ms 554.39ms    7.39s        11 [ 11.83ms, 514.23ms] 238.61ms 222.98ms    2.62s
                 'lb_tree_search':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [ 57.26ms,    7.54s]    3.80s    3.74s    7.60s
                             'ls':        32 [188.28ms, 252.29ms] 218.08ms  16.83ms    6.98s        32 [100.00ms, 100.01ms] 100.01ms   3.01us    3.20s
                         'ls_lin':        32 [183.79ms, 269.72ms] 219.36ms  22.44ms    7.02s        32 [100.00ms, 100.01ms] 100.01ms   3.28us    3.20s
                         'max_lp':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [ 65.57ms,    6.81s]    3.44s    3.37s    6.87s
                          'no_lp':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [  1.49ms,    8.89s]    4.44s    4.44s    8.89s
            'objective_lb_search':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [ 23.99ms,    8.08s]    4.05s    4.03s    8.10s
                        'probing':         1 [  14.88s,   14.88s]   14.88s   0.00ns   14.88s         2 [ 29.18ms,    8.68s]    4.36s    4.33s    8.71s
                   'pseudo_costs':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [  7.71ms,    6.20s]    3.10s    3.09s    6.20s
                  'quick_restart':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [ 20.93ms,    7.42s]    3.72s    3.70s    7.44s
            'quick_restart_no_lp':         1 [  14.90s,   14.90s]   14.90s   0.00ns   14.90s         2 [  1.58ms,   10.76s]    5.38s    5.38s   10.76s
                  'reduced_costs':         1 [  14.87s,   14.87s]   14.87s   0.00ns   14.87s         2 [  8.27ms,    8.90s]    4.45s    4.45s    8.91s
                      'rins/rens':        33 [  2.40ms, 448.36ms] 214.34ms 172.11ms    7.07s        30 [ 35.32us, 100.21ms]  60.30ms  46.11ms    1.81s
                    'rnd_cst_lns':        34 [  5.54ms, 408.38ms] 208.63ms 154.99ms    7.09s        34 [ 10.00ns, 100.14ms]  54.41ms  46.30ms    1.85s
                    'rnd_var_lns':        39 [  4.42ms, 393.11ms] 194.49ms 145.38ms    7.58s        39 [ 10.00ns, 100.22ms]  52.60ms  44.39ms    2.05s

Search stats                        Bools  Conflicts  Branches  Restarts  BacktrackToRoot  Backtrack  BoolPropag  IntegerPropag
                           'core':    365    229'645   434'490       292           11'005    240'893   3'736'456      9'473'429
                     'default_lp':    407      1'771    39'808        15           11'957     18'647     297'498      1'278'673
                      'fs_random':      0          0         0         0                0          0           0              0
                'fs_random_no_lp':      0          0         0         0                0          0           0              0
  'fs_random_quick_restart_no_lp':      0          0         0         0                0          0           0              0
                 'lb_tree_search':    354         65    28'656         0           10'101     13'473     166'350        877'958
                         'max_lp':    354      2'041    31'226        10           10'276     15'391     218'978      1'126'089
                          'no_lp':    354    140'345   243'042       471           12'669    152'644   6'352'508     21'896'584
            'objective_lb_search':    397      1'222    37'766        13           12'537     18'143     260'895      1'215'367
                        'probing':    394         25     1'007         0              863        881       9'589         30'750
                   'pseudo_costs':    354      1'838    45'956        21           14'776     21'124     308'497      1'579'250
                  'quick_restart':    385        479    59'228        27           20'195     28'085     357'059      1'724'273
            'quick_restart_no_lp':    551     76'574   629'338     6'644           30'830    113'075   5'613'404     16'907'357
                  'reduced_costs':    360      1'894    29'212        11            8'932     13'394     160'968        851'477

SAT formula                         Fixed  Equiv  Total  VarLeft  BinaryClauses  PermanentClauses  TemporaryClauses
                           'core':     97      0    365      268            618             1'411            11'920
                     'default_lp':     98      0    407      309            792               335             1'058
                      'fs_random':      0      0      0        0              0                 0                 0
                'fs_random_no_lp':      0      0      0        0              0                 0                 0
  'fs_random_quick_restart_no_lp':      0      0      0        0              0                 0                 0
                 'lb_tree_search':    101      0    354      253            592               328                 4
                         'max_lp':     96      0    354      258            596               295             1'210
                          'no_lp':     98      0    354      256            626               953            11'991
            'objective_lb_search':    112      0    397      285            736               342                91
                        'probing':     29      0    394      365          4'568                40                14
                   'pseudo_costs':     97      0    354      257            612               327             1'071
                  'quick_restart':     98      0    385      287            746               345               217
            'quick_restart_no_lp':    131      0    551      420          1'900             3'055            13'122
                  'reduced_costs':    113      0    360      247            654               283             1'277

SAT stats                           ClassicMinim  LitRemoved  LitRemovedBinary  LitLearned  LitForgotten  Subsumed
                           'core':       205'153   3'129'017         1'136'233  10'999'787     6'747'716    71'794
                     'default_lp':         1'390      21'880            28'707      57'282             0       434
                      'fs_random':             0           0                 0           0             0         0
                'fs_random_no_lp':             0           0                 0           0             0         0
  'fs_random_quick_restart_no_lp':             0           0                 0           0             0         0
                 'lb_tree_search':            11          32               508         571             0        29
                         'max_lp':         1'818      48'335            34'615      94'210             0       567
                          'no_lp':       107'724   1'193'262           392'462   4'483'129     2'628'188    37'997
            'objective_lb_search':         1'052      32'021            10'582      20'183             0       503
                        'probing':            14          68               265       2'177             0         4
                   'pseudo_costs':         1'494      25'100            28'716      71'174             0       410
                  'quick_restart':           310       4'277             5'949      11'958             0       137
            'quick_restart_no_lp':        61'069     506'057           812'591   2'450'901     1'398'834    14'341
                  'reduced_costs':         1'535      22'422            17'490     106'895             0       314

Vivification                        Clauses  Decisions  LitTrue  Subsumed  LitRemoved  DecisionReused  Conflicts
                           'core':    9'991     89'717        0     1'316      17'263          10'134        119
                     'default_lp':    6'114     25'139        1       322       1'671           1'116          7
                      'fs_random':        0          0        0         0           0               0          0
                'fs_random_no_lp':        0          0        0         0           0               0          0
  'fs_random_quick_restart_no_lp':        0          0        0         0           0               0          0
                 'lb_tree_search':    4'370     17'876        0       366       1'751             644          3
                         'max_lp':    4'890     18'472        1       377       1'889             813          7
                          'no_lp':    8'198     42'534        2       683       6'238           5'896         37
            'objective_lb_search':    6'151     24'832        1       294       1'423           1'091          4
                        'probing':        0          0        0         0           0               0          0
                   'pseudo_costs':    7'541     30'196        1       403       2'036           1'238         14
                  'quick_restart':    9'090     38'683        1       328       1'573           1'471         10
            'quick_restart_no_lp':   23'088    135'536        9     2'585      22'423          14'320        390
                  'reduced_costs':    3'209     14'530        0       164         910             496          1

Clause deletion                     at_true  l_and_not(l)  to_binary  sub_conflict  sub_extra  sub_decisions  sub_eager  sub_vivify  sub_probing  sub_inpro  blocked  eliminated  forgotten  promoted  conflicts
                           'core':      819            28          2        67'513      2'175             15      4'281       1'316           82        429        0           0    140'434   568'820    229'645
                     'default_lp':      125             9          4           402          1              7         32         322          183        121        0           0          0     3'837      1'771
                      'fs_random':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
                'fs_random_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
  'fs_random_quick_restart_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
                 'lb_tree_search':       84             3          0            28          0              0          1         366          130         44        0           0          0        25         65
                         'max_lp':       89             0          3           530          6             11         37         377           90        173        0           0          0     5'207      2'041
                          'no_lp':    4'813           117          2        35'977      3'415            295      2'020         683          136        314        0           0     80'188   321'363    140'345
            'objective_lb_search':      522            38          2           451          0             28         52         294          167         68        0           0          0     1'800      1'222
                        'probing':        0             0          0             4          0              0          0           0            0          0        0           0          0        34         25
                   'pseudo_costs':      218            11          3           382          3              5         28         403          152        111        0           0          0     4'029      1'838
                  'quick_restart':       97             0          3           127          0              8         10         328          157         65        0           0          0       727        479
            'quick_restart_no_lp':    3'575             4         37        13'290        509            151      1'051       2'585          679        742        0           0     37'582   163'606     76'574
                  'reduced_costs':      185            13          3           300          1             24         14         164           91        104        0           0          0     7'310      1'894

Lp stats                  Component  Iterations  AddedCuts  OPTIMAL  DUAL_F.  DUAL_U.
           'default_lp':          1     115'068      2'225    5'313        1      237
       'lb_tree_search':          1      72'845      1'536    1'919      603        3
               'max_lp':          1     105'539      2'194    4'252      928      229
  'objective_lb_search':          1     114'892      2'206    3'842        1      187
              'probing':          1      29'482      2'371      345        0        2
         'pseudo_costs':          1      96'531      2'105    4'172      837      228
        'quick_restart':          1      61'622      2'411    1'857        0       37
        'reduced_costs':          1     128'375      1'969    3'198    1'184      269

Lp dimension                 Final dimension of first component
           'default_lp':    720 rows, 669 columns, 9388 entries
       'lb_tree_search':   785 rows, 708 columns, 13000 entries
               'max_lp':    618 rows, 708 columns, 6468 entries
  'objective_lb_search':   823 rows, 669 columns, 11640 entries
              'probing':  1809 rows, 669 columns, 59392 entries
         'pseudo_costs':   721 rows, 708 columns, 10327 entries
        'quick_restart':   953 rows, 669 columns, 18375 entries
        'reduced_costs':   812 rows, 708 columns, 11093 entries

Lp debug                  CutPropag  CutEqPropag  Adjust  Overflow     Bad  BadScaling
           'default_lp':          0            0   5'537         0  15'698           0
       'lb_tree_search':          0            0   2'524         0  35'145           0
               'max_lp':          0            0   5'406         0  20'582           0
  'objective_lb_search':          0            0   4'020         0  21'126           0
              'probing':          0            0     344         0  53'765           0
         'pseudo_costs':          0            0   5'215         0  31'208           0
        'quick_restart':          0            8   1'886         0  38'248           0
        'reduced_costs':          0           10   4'637         0  17'514           0

Lp pool                   Constraints  Updates  Simplif  Merged  Shortened  Split  Strengthened    Cuts/Call
           'default_lp':        3'397      235    8'743       0      4'258    135           166  2'225/4'670
       'lb_tree_search':        2'862      728   10'600       0      5'571    284           144  1'536/2'608
               'max_lp':        3'520      457    9'244       0      6'000    143           226  2'194/4'277
  'objective_lb_search':        3'378      307    9'710       0      5'169    111           135  2'206/4'345
              'probing':        3'543      556    4'986       0      2'046    812            44  2'371/4'036
         'pseudo_costs':        3'431      583   10'482       0      4'617    355           190  2'105/4'154
        'quick_restart':        3'583      490   14'982       0      7'571    372           131  2'411/4'288
        'reduced_costs':        3'295      311    7'126       0      4'180     96           132  1'969/3'681

Lp Cut            reduced_costs  default_lp  max_lp  quick_restart  pseudo_costs  lb_tree_search  objective_lb_search  probing
          CG_FF:             19          21      26             15            17              15                   20       15
           CG_K:             13          16      21             16             7              14                   15       13
          CG_KL:              1           3       3              3             3               6                    1        2
           CG_R:             41          40      38             20            40              18                   29       20
          CG_RB:             69          77      77             34            68              28                   54       29
         CG_RBP:             30          45      28             20            27              14                   20       20
         Clique:              3           -       7              -             7               4                    -        -
             IB:            654         778     565            496           712             200                  562      430
       MIR_1_FF:            120         102      83            171            87             123                   96      203
        MIR_1_K:              8          17      12             34             7              13                   34       44
       MIR_1_KL:             10          13      14             30             9              20                   17       40
        MIR_1_R:              1           7       5              5             4               3                    3        9
       MIR_1_RB:             34          40      37             43            33              16                   42       52
      MIR_1_RBP:             18          42      21             62            22              50                   37       33
       MIR_2_FF:             91          85      86            117            92             104                   84      143
        MIR_2_K:             27          31      20             47            14              26                   54       54
       MIR_2_KL:             16          10       8             24            16              21                   15       27
        MIR_2_R:              5           5      13              5            11               2                    3        2
       MIR_2_RB:             75          54      84             60            66              37                   69       46
      MIR_2_RBP:             26          45      21             57            28              26                   54       57
       MIR_3_FF:             81          68      77             82            72              83                   45       80
        MIR_3_K:             15          36      21             53            20              15                   32       48
       MIR_3_KL:              9          12      11             16            11               5                    7        8
        MIR_3_R:              3           6      14             11             7               2                    5        5
       MIR_3_RB:             45          43      78             50            62              51                   46       40
      MIR_3_RBP:             19          39      24             50            18              21                   49       43
       MIR_4_FF:             66          45      78             52            67              54                   38       57
        MIR_4_K:             23          26      24             26            28              18                   35       47
       MIR_4_KL:              6           7      11             11            11               9                   11       11
        MIR_4_R:              4           4       6              8             7               3                   10        7
       MIR_4_RB:             32          37      64             37            39              30                   36       26
      MIR_4_RBP:             19          24      30             28            23              17                   40       29
       MIR_5_FF:             28          16      53             32            36              38                   27       38
        MIR_5_K:             20          27      25             28            11              15                   21       28
       MIR_5_KL:              4          13      12             14             4               5                    9        5
        MIR_5_R:              3           3       6              6             2               2                    2        3
       MIR_5_RB:             28          28      36             18            32              32                   19       20
      MIR_5_RBP:             19          22      36             40            19              14                   31       14
       MIR_6_FF:             29          12      35             22            21              31                   19       16
        MIR_6_K:             27          20      28             35            20              28                   24       21
       MIR_6_KL:             10           8      19             16            16              11                   13        9
        MIR_6_R:              4           2       5              3             3               2                    2        3
       MIR_6_RB:             23          18      27             13            19              17                   19        8
      MIR_6_RBP:             21          29      20             48            25              31                   44       26
   ZERO_HALF_FF:              9          16      18              7            15               5                   24       15
    ZERO_HALF_K:              -           5       9              1             1               1                   13       10
   ZERO_HALF_KL:              1           4       3              2             9               -                    5        1
    ZERO_HALF_R:            132         199     197            379           192             212                  297      377
   ZERO_HALF_RB:             22           9      44             39            32              33                   51       80
  ZERO_HALF_RBP:              6          16      14             25            13              11                   23       57

LNS stats           Improv/Calls  Closed  Difficulty  TimeLimit
  'graph_arc_lns':         19/39     54%    8.60e-01       0.10
  'graph_cst_lns':         19/40     60%    9.47e-01       0.10
  'graph_dec_lns':         16/38     58%    9.36e-01       0.10
  'graph_var_lns':         23/37     59%    9.38e-01       0.10
   'lb_relax_lns':          7/11     64%    8.44e-01       0.50
      'rins/rens':         29/33     48%    7.17e-01       0.10
    'rnd_cst_lns':          8/34     50%    8.25e-01       0.10
    'rnd_var_lns':         16/39     64%    9.67e-01       0.10

LS stats                                    Batches  Restarts/Perturbs  LinMoves  GenMoves  CompoundMoves  Bactracks  WeightUpdates  ScoreComputed
                         'ls_lin_restart':        3                  3    58'028         0              0          0         39'817      1'604'828
                'ls_lin_restart_compound':        6                  6         0   155'148         12'158     71'479          1'045      2'949'634
        'ls_lin_restart_compound_perturb':        4                  4         0   100'124          8'452     45'832            728      1'912'682
                   'ls_lin_restart_decay':        1                  1    23'098         0              0          0            972        401'284
          'ls_lin_restart_decay_compound':        1                  1         0    25'738          3'317     11'206             33        495'895
  'ls_lin_restart_decay_compound_perturb':        7                  5         0   179'185         23'917     77'598            227      3'524'424
           'ls_lin_restart_decay_perturb':        1                  1    24'812         0              0          0          1'266        409'378
                 'ls_lin_restart_perturb':        9                  7   167'364         0              0          0         86'318      4'964'661
                             'ls_restart':        3                  3    58'039         0              0          0         21'493      1'692'377
                    'ls_restart_compound':        7                  5         0   180'648         12'950     83'832            905      3'286'511
            'ls_restart_compound_perturb':        2                  2         0    51'625          3'826     23'891            254        980'260
                       'ls_restart_decay':        4                  3    94'380         0              0          0          4'404      1'644'070
              'ls_restart_decay_compound':        3                  3         0    71'706         11'582     30'053            170      1'528'644
      'ls_restart_decay_compound_perturb':        8                  6         0   200'032         29'541     85'231            320      4'184'650
               'ls_restart_decay_perturb':        4                  4    97'481         0              0          0          4'696      1'610'826
                     'ls_restart_perturb':        1                  1    19'677         0              0          0          6'865        618'175

Solutions (15)            Num    Rank
        'complete_hint':    2   [0,1]
        'graph_arc_lns':    4  [8,10]
        'graph_var_lns':    8  [4,15]
                'no_lp':    2   [1,2]
  'quick_restart_no_lp':   12  [2,13]
          'rnd_cst_lns':    2   [3,4]

Objective bounds          Num
         'am1_presolve':    1
       'initial_domain':    1
       'lb_tree_search':  223
               'max_lp':    5
  'objective_lb_search':    2
              'probing':    1
         'pseudo_costs':    1

Solution repositories    Added  Queried  Synchro
    'alternative_path':      2      114        2
      'best_solutions':     26      237       22
   'fj solution hints':      0        0        0
        'lp solutions':    140       33      109
                'pump':      0        0

Improving bounds shared    Num  Sym
            'default_lp':    2    0
        'lb_tree_search':   74    0
                'max_lp':   76    0
                 'no_lp':    4    0
               'probing':    4    0
          'pseudo_costs':    4    0
         'quick_restart':    9    0
   'quick_restart_no_lp':   39    0
         'reduced_costs':   45    0

Clauses shared            #Exported  #Imported  #BinaryRead  #BinaryTotal
                 'core':        488      1'049        1'494         1'499
           'default_lp':        149      1'074        1'498         1'499
       'lb_tree_search':         27      1'136        1'499         1'499
               'max_lp':        111        834        1'362         1'499
                'no_lp':        824        656        1'499         1'499
  'objective_lb_search':         79      1'076        1'493         1'499
              'probing':      1'040          0          280         1'499
         'pseudo_costs':        194      1'026        1'490         1'499
        'quick_restart':        109      1'058        1'494         1'499
  'quick_restart_no_lp':      1'017        764        1'493         1'499
        'reduced_costs':         87        623        1'183         1'499

LRAT_status: NA
[Scaling] scaled_objective_bound: 1575.36 corrected_bound: 1575.36 delta: 1.00542e-06
CpSolverResponse summary:
status: OPTIMAL
objective: 1575.355435923973
best_bound: 1575.355435314589
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 14.9516
usertime: 14.9516
deterministic_time: 114.369
gap_integral: 108.307
solution_fingerprint: 0x74f029e2c7dc518

[9]:
wfn.solution_info()
[9]:
{'router': 'MILPRouter',
 'capacity': 7,
 'solver_name': 'ortools.cp_sat',
 'mip_gap': 0.005,
 'time_limit': 60,
 'topology': <Topology.BRANCHED: 'branched'>,
 'feeder_route': <FeederRoute.SEGMENTED: 'segmented'>,
 'feeder_limit': <FeederLimit.UNLIMITED: 'unlimited'>,
 'balanced': False,
 'runtime': 14.954764,
 'bound': 1575.3554353145887,
 'objective': 1575.3554359239731,
 'relgap': 3.868234621506872e-10,
 'termination': 'OPTIMAL'}
[10]:
wfn.length()
[10]:
1575.355435923973
[11]:
wfn
[11]:
../_images/notebooks_b03_MILPRouter_19_0.svg

MILPRouter has two optional arguments: ModelOptions (what kind of solution you want, e.g., topology='branched', 'radial', or 'ringed') and SolverOptions (how long/how hard the solver searches). For more details about ModelOptions and SolverOptions see ModelOptions vs SolverOptions.

[12]:
from optiwindnet.api import ModelOptions
model_options = ModelOptions(
                        topology='radial',
                        feeder_limit='minimum',
                        feeder_route='segmented',
                    )
solver_options=dict(
    num_workers = 5,
)
router= MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.01, model_options=model_options, verbose=True)
res = wfn.optimize(router=router)
IntegerBoundsPreprocessor                              1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
BoundPropagationPreprocessor                           1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
ImpliedIntegerPreprocessor                             1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
IntegerBoundsPreprocessor                              1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
ReduceCostOverExclusiveOrConstraintPreprocessor        1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]

Scaling to pure integer problem.
Num integers: 708/708 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP]
Maximum constraint coefficient relative error: 0
Maximum constraint worst-case activity error: 0
Constraint scaling factor range: [1, 1]

Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 60 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.01
Setting number of workers to 16

Initial optimization model 'optiwindnet': (model_fingerprint: 0xf49e5e1dfb1a5131)
#Variables: 708 (#bools: 314 in floating point objective) (627 primary variables)
  - 354 Booleans in [0,1]
  - 314 in [0,6]
  - 40 in [0,7]
#kLinear2: 865
#kLinear3: 2
#kLinearN: 266 (#terms: 2'540)

Starting presolve at 0.00s
The solution hint is complete, but it is infeasible! we will try to repair it.
[Scaling] Floating point objective has 314 terms with magnitude in [0.140862, 190.901] average = 35.1267
[Scaling] Objective coefficient relative error: 4.44741e-06
[Scaling] Objective worst-case absolute error: 8.26922e-05
[Scaling] Objective scaling factor: 524288
  4.92e-04s  0.00e+00d  [DetectDominanceRelations]
  5.27e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  1.56e-05s  0.00e+00d  [ExtractEncodingFromLinear] #potential_supersets=185
  2.00e-04s  0.00e+00d  [DetectDuplicateColumns]
  2.39e-04s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'706 nodes and 5'298 arcs.
[Symmetry] Symmetry computation done. time: 0.000256052 dtime: 0.00049148
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.0439e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.8061e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
  3.33e-04s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  8.11e-03s  4.41e-03d  [Probe] #probed=1'416 #new_binary_clauses=354
  3.25e-04s  4.55e-04d  [MaxClique] Merged 302 constraints with 1'090 literals into 182 constraints with 850 literals
  2.08e-04s  0.00e+00d  [DetectDominanceRelations]
  1.87e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  5.75e-04s  0.00e+00d  [ProcessAtMostOneAndLinear] #num_changes=354
  7.16e-05s  0.00e+00d  [DetectDuplicateConstraints]
  5.71e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  1.04e-04s  5.73e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=41 #num_redundant=1
  9.73e-06s  0.00e+00d  [DetectDifferentVariables]
  1.02e-04s  6.42e-05d  [ProcessSetPPC] #relevant_constraints=224 #num_inclusions=182
  8.38e-05s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=182
  2.50e-04s  0.00e+00d  [DetectEncodedComplexDomains]
  1.32e-05s  1.65e-07d  [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3
  6.74e-04s  1.09e-03d  [FindBigAtMostOneAndLinearOverlap]
  1.77e-04s  6.03e-04d  [FindBigVerticalLinearOverlap]
  6.96e-05s  1.32e-04d  [FindBigHorizontalLinearOverlap] #linears=81
  1.48e-05s  0.00e+00d  [MergeClauses]
  1.59e-04s  0.00e+00d  [DetectDominanceRelations]
  2.75e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  1.72e-04s  0.00e+00d  [DetectDominanceRelations]
  1.92e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  5.77e-05s  0.00e+00d  [DetectDuplicateColumns]
  7.45e-05s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'453 nodes and 4'765 arcs.
[Symmetry] Symmetry computation done. time: 0.000254105 dtime: 0.00045598
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [3.1561e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [8.6807e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
  6.66e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  4.25e-03s  1.40e-03d  [Probe] #probed=708
  2.08e-04s  3.09e-04d  [MaxClique]
  1.75e-04s  0.00e+00d  [DetectDominanceRelations]
  1.35e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  1.21e-04s  0.00e+00d  [ProcessAtMostOneAndLinear]
  7.07e-05s  0.00e+00d  [DetectDuplicateConstraints]
  5.96e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  1.07e-04s  5.53e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=40
  1.31e-05s  0.00e+00d  [DetectDifferentVariables]
  1.90e-04s  6.42e-05d  [ProcessSetPPC] #relevant_constraints=224 #num_inclusions=182
  3.60e-04s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=182
  3.19e-04s  0.00e+00d  [DetectEncodedComplexDomains]
  2.54e-05s  0.00e+00d  [FindAlmostIdenticalLinearConstraints]
  5.16e-04s  1.09e-03d  [FindBigAtMostOneAndLinearOverlap]
  1.40e-04s  6.03e-04d  [FindBigVerticalLinearOverlap]
  5.29e-05s  1.32e-04d  [FindBigHorizontalLinearOverlap] #linears=81
  1.12e-05s  0.00e+00d  [MergeClauses]
  1.67e-04s  0.00e+00d  [DetectDominanceRelations]
  1.39e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  2.62e-06s  0.00e+00d  [MergeNoOverlap]
  2.65e-06s  0.00e+00d  [MergeNoOverlap2D]
  1.18e-04s  0.00e+00d  [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40

Presolve summary:
  - 0 affine relations were detected.
  - rule 'TODO linear inclusion: superset is equality' was applied 80 times.
  - rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.
  - rule 'at_most_one: transformed into max clique' was applied 1 time.
  - rule 'bool_or: implications' was applied 157 times.
  - rule 'deductions: 708 stored' was applied 1 time.
  - rule 'linear + amo: extracted enforcement literal' was applied 354 times.
  - rule 'linear inclusion: sparsify superset' was applied 1 time.
  - rule 'linear2: contains a boolean' was applied 354 times.
  - rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.
  - rule 'linear: positive at most one' was applied 145 times.
  - rule 'linear: positive equal one' was applied 40 times.
  - rule 'objective: shifted cost with exactly ones' was applied 40 times.
  - rule 'presolve: 0 unused variables removed.' was applied 1 time.
  - rule 'presolve: iteration' was applied 2 times.
  - rule 'variables: detect fully reified value encoding' was applied 354 times.
  - rule 'variables: detect half reified value encoding' was applied 708 times.

Presolved optimization model 'optiwindnet': (model_fingerprint: 0x510fe2cea8f40f0f)
#Variables: 708 (#bools: 314 in objective) (627 primary variables)
  - 354 Booleans in [0,1]
  - 314 in [0,6]
  - 40 in [0,7]
#kAtMostOne: 145 (#literals: 776)
#kBoolAnd: 37 (#enforced: 37) (#literals: 74)
#kExactlyOne: 40 (#literals: 354)
#kLinear1: 708 (#enforced: 708)
#kLinear3: 1
#kLinearN: 82 (#terms: 1'373)
[Symmetry] Graph for symmetry has 2'453 nodes and 4'765 arcs.
[Symmetry] Symmetry computation done. time: 0.00019885 dtime: 0.00045642

Preloading model.
#Bound   0.04s best:inf   next:[1364.00132,11449.6914] initial_domain
The solution hint is complete, but it is infeasible! we will try to repair it.
#Model   0.04s var:708/708 constraints:1013/1013

Starting search at 0.04s with 16 workers.
11 full problem subsolvers: [core, default_lp, lb_tree_search, max_lp, no_lp, objective_lb_search, probing, pseudo_costs, quick_restart, quick_restart_no_lp, reduced_costs]
5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]
11 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, lb_relax_lns, ls, ls_lin, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]

#Bound   0.05s best:inf   next:[1396.24224,11449.6914] am1_presolve (num_literals=314 num_am1=12 increase=16903530 work_done=1733)
#1       0.05s best:1631.93805 next:[1396.24224,1631.93805] no_lp [hint] (fixed_bools=0/354)
#Bound   0.06s best:1631.93805 next:[1427.81903,1631.93805] probing
#Bound   0.06s best:1631.93805 next:[1434.70137,1631.93805] reduced_costs
#Bound   0.06s best:1631.93805 next:[1518.98019,1631.93805] max_lp
#2       0.09s best:1629.24862 next:[1518.98019,1629.24862] reduced_costs [hint] (fixed_bools=0/354)
#Bound   0.14s best:1629.24862 next:[1525.53027,1629.24862] max_lp
#Bound   0.14s best:1629.24862 next:[1527.255,1629.24862] lb_tree_search
#Model   0.15s var:702/708 constraints:1006/1013
#3       0.18s best:1628.51262 next:[1527.255,1628.51262] quick_restart_no_lp (fixed_bools=3/354)
#Bound   0.25s best:1628.51262 next:[1527.25504,1628.51262] objective_lb_search
#Model   0.27s var:700/708 constraints:1004/1013
#Bound   0.28s best:1628.51262 next:[1527.81306,1628.51262] lb_tree_search
#4       0.31s best:1618.50518 next:[1527.81306,1618.50518] graph_arc_lns (d=7.07e-01 s=31 t=0.10 p=1.00 stall=1 h=base) (fixed_bools=0/354)
#5       0.32s best:1614.73248 next:[1527.81306,1614.73248] lb_relax_lns_bool (d=5.00e-01 s=23 t=0.50 p=0.00 stall=0 h=base) (fixed_bools=0/354)
#Bound   0.33s best:1614.73248 next:[1528.04658,1614.73248] probing
#Model   0.34s var:698/708 constraints:1002/1013
#Bound   0.34s best:1614.73248 next:[1530.15971,1614.73248] probing
#Bound   0.38s best:1614.73248 next:[1538.01985,1614.73248] max_lp
#6       0.39s best:1613.51861 next:[1538.01985,1613.51861] graph_arc_lns (d=8.14e-01 s=41 t=0.10 p=1.00 stall=0 h=base) (fixed_bools=0/354)
#Model   0.39s var:690/708 constraints:994/1013
#Bound   0.39s best:1613.51861 next:[1539.36691,1613.51861] lb_tree_search
#Model   0.41s var:688/708 constraints:992/1013
#Model   0.43s var:686/708 constraints:990/1013
#Model   0.61s var:680/708 constraints:983/1013
#Bound   0.61s best:1613.51861 next:[1543.53679,1613.51861] lb_tree_search
#Bound   0.63s best:1613.51861 next:[1543.55217,1613.51861] lb_tree_search (nodes=2/2 rc=0 decisions=7 @root=3 restarts=0 lp_iters=[0, 0, 92, 25])
#Model   0.65s var:674/708 constraints:976/1013
#Model   0.69s var:670/708 constraints:972/1013
#7       0.72s best:1613.50867 next:[1543.55217,1613.50867] lb_relax_lns_bool_h (d=7.07e-01 s=45 t=0.50 p=1.00 stall=0 h=base) (fixed_bools=0/354)
#8       0.72s best:1612.2948 next:[1543.55217,1612.2948] lb_relax_lns_bool_h (d=7.07e-01 s=45 t=0.50 p=1.00 stall=0 h=base) [combined with: graph_arc_lns (d=8.1...] (fixed_bools=0/354)
#Bound   0.78s best:1612.2948 next:[1545.81028,1612.2948] probing
#Bound   0.88s best:1612.2948 next:[1547.46896,1612.2948] probing
#Model   0.93s var:668/708 constraints:970/1013
#Bound   1.01s best:1612.2948 next:[1548.33436,1612.2948] lb_tree_search (nodes=8/8 rc=2 decisions=47 @root=6 restarts=0 lp_iters=[0, 0, 604, 135])
#Bound   1.04s best:1612.2948 next:[1548.33866,1612.2948] lb_tree_search (nodes=8/8 rc=2 decisions=53 @root=6 restarts=0 lp_iters=[0, 0, 804, 135])
#Model   1.05s var:666/708 constraints:968/1013
#Bound   1.05s best:1612.2948 next:[1548.36613,1612.2948] lb_tree_search (nodes=9/9 rc=2 decisions=57 @root=6 restarts=0 lp_iters=[0, 0, 859, 140])
#Bound   1.07s best:1612.2948 next:[1548.41571,1612.2948] lb_tree_search (nodes=10/10 rc=2 decisions=62 @root=6 restarts=0 lp_iters=[0, 0, 992, 141])
#Bound   1.11s best:1612.2948 next:[1549.11379,1612.2948] lb_tree_search (nodes=13/13 rc=3 decisions=71 @root=6 restarts=0 lp_iters=[0, 0, 1'251, 157])
#Model   1.47s var:664/708 constraints:965/1013
#Model   1.50s var:658/708 constraints:959/1013
#Bound   2.00s best:1612.2948 next:[1558.02415,1612.2948] lb_tree_search (nodes=36/37 rc=18 decisions=287 @root=6 restarts=0 lp_iters=[0, 0, 6'293, 1'059])  [skipped_logs=27]
#Model   2.59s var:656/708 constraints:957/1013
#Bound   2.78s best:1612.2948 next:[1559.6799,1612.2948] lb_tree_search (nodes=38/40 rc=22 decisions=328 @root=8 restarts=0 lp_iters=[0, 0, 7'347, 1'108])  [skipped_logs=3]
#Model   3.11s var:654/708 constraints:954/1013
#Model   3.37s var:652/708 constraints:952/1013
#Model   3.77s var:650/708 constraints:950/1013
#Bound   3.98s best:1612.2948 next:[1564.48997,1612.2948] lb_tree_search (nodes=40/42 rc=24 decisions=449 @root=12 restarts=0 lp_iters=[0, 0, 11'331, 1'170])  [skipped_logs=19]
#Model   4.27s var:648/708 constraints:948/1013
#Model   4.68s var:646/708 constraints:945/1013
#Model   4.84s var:644/708 constraints:943/1013
#Bound   4.78s best:1612.2948 next:[1564.54676,1612.2948] lb_tree_search (nodes=40/42 rc=25 decisions=462 @root=13 restarts=0 lp_iters=[0, 0, 11'541, 1'170])  [skipped_logs=0]
#Model   5.11s var:642/708 constraints:941/1013
#Model   5.55s var:640/708 constraints:939/1013
#Bound   6.03s best:1612.2948 next:[1566.04466,1612.2948] lb_tree_search (nodes=40/42 rc=26 decisions=552 @root=16 restarts=0 lp_iters=[0, 0, 14'150, 1'170])  [skipped_logs=9]
#Bound   6.99s best:1612.2948 next:[1567.17222,1612.2948] lb_tree_search (nodes=40/42 rc=27 decisions=625 @root=19 restarts=0 lp_iters=[0, 0, 16'386, 1'389])  [skipped_logs=8]
#Model   7.49s var:638/708 constraints:937/1013
#Bound   7.99s best:1612.2948 next:[1570.2041,1612.2948] lb_tree_search (nodes=52/54 rc=35 decisions=784 @root=19 restarts=0 lp_iters=[0, 0, 21'447, 1'687])  [skipped_logs=17]
#Bound   8.94s best:1612.2948 next:[1572.04738,1612.2948] lb_tree_search (nodes=67/70 rc=41 decisions=984 @root=19 restarts=0 lp_iters=[0, 0, 27'469, 2'613])  [skipped_logs=24]
#Model   9.19s var:636/708 constraints:935/1013
#Model  10.42s var:634/708 constraints:933/1013
#Model  11.57s var:632/708 constraints:931/1013
#Bound  13.22s best:1612.2948 next:[1572.04756,1612.2948] objective_lb_search
#Bound  13.86s best:1612.2948 next:[1572.04757,1612.2948] objective_lb_search
#Bound  14.55s best:1612.2948 next:[1572.0776,1612.2948] objective_lb_search
#Model  14.67s var:630/708 constraints:929/1013
#Model  15.17s var:628/708 constraints:927/1013
#Bound  15.32s best:1612.2948 next:[1572.50608,1612.2948] objective_lb_search
#Model  15.69s var:626/708 constraints:925/1013
#Model  16.18s var:624/708 constraints:923/1013
#Model  16.25s var:622/708 constraints:921/1013
#Bound  16.38s best:1612.2948 next:[1572.51292,1612.2948] lb_tree_search (nodes=114/114 rc=51 decisions=1464 @root=32 restarts=1 lp_iters=[0, 0, 42'284, 7'287])
#Model  16.83s var:620/708 constraints:918/1013
#Bound  16.87s best:1612.2948 next:[1572.59413,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1477 @root=33 restarts=1 lp_iters=[0, 0, 42'644, 7'287])
#Model  17.43s var:618/708 constraints:916/1013
#Bound  17.68s best:1612.2948 next:[1572.60924,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1484 @root=34 restarts=1 lp_iters=[0, 0, 42'960, 7'287])
#Model  17.69s var:614/708 constraints:912/1013
#Bound  17.71s best:1612.2948 next:[1572.65313,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1487 @root=35 restarts=1 lp_iters=[0, 0, 43'158, 7'287])
#Bound  17.77s best:1612.2948 next:[1572.71185,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1497 @root=35 restarts=1 lp_iters=[0, 0, 43'414, 7'287])  [skipped_logs=1]
#Model  18.68s var:612/708 constraints:909/1013
#Bound  18.87s best:1612.2948 next:[1572.93066,1612.2948] lb_tree_search (nodes=114/114 rc=53 decisions=1524 @root=37 restarts=1 lp_iters=[0, 0, 44'854, 7'287])  [skipped_logs=2]
#Model  19.29s var:610/708 constraints:907/1013
#Bound  19.41s best:1612.2948 next:[1572.93167,1612.2948] lb_tree_search (nodes=115/115 rc=53 decisions=1537 @root=38 restarts=1 lp_iters=[0, 0, 45'331, 7'310])  [skipped_logs=0]
#Model  20.37s var:608/708 constraints:905/1013
#Bound  20.88s best:1612.2948 next:[1573.09736,1612.2948] lb_tree_search (nodes=115/116 rc=55 decisions=1615 @root=40 restarts=1 lp_iters=[0, 0, 48'773, 7'513])  [skipped_logs=10]
#Bound  21.89s best:1612.2948 next:[1573.16654,1612.2948] lb_tree_search (nodes=115/116 rc=55 decisions=1684 @root=42 restarts=1 lp_iters=[0, 0, 52'066, 7'513])  [skipped_logs=7]
#Bound  22.97s best:1612.2948 next:[1573.47279,1612.2948] lb_tree_search (nodes=127/128 rc=56 decisions=1803 @root=42 restarts=1 lp_iters=[0, 0, 58'478, 7'838])  [skipped_logs=15]
#Model  23.86s var:606/708 constraints:903/1013
#Bound  23.97s best:1612.2948 next:[1573.87061,1612.2948] lb_tree_search (nodes=133/134 rc=60 decisions=1933 @root=42 restarts=1 lp_iters=[0, 0, 64'714, 8'171])  [skipped_logs=14]
#Model  24.55s var:604/708 constraints:901/1013
#Model  24.73s var:602/708 constraints:899/1013
#Bound  24.42s best:1612.2948 next:[1573.92493,1612.2948] lb_tree_search (nodes=137/138 rc=60 decisions=2003 @root=42 restarts=1 lp_iters=[0, 0, 68'102, 8'233])  [skipped_logs=6]
#Model  25.98s var:600/708 constraints:897/1013
#Model  26.12s var:598/708 constraints:895/1013
#Bound  26.91s best:1612.2948 next:[1574.07833,1612.2948] objective_lb_search
#Model  27.21s var:596/708 constraints:893/1013
#Model  28.03s var:594/708 constraints:891/1013
#Model  28.16s var:592/708 constraints:889/1013
#Bound  28.57s best:1612.2948 next:[1574.10337,1612.2948] objective_lb_search
#Bound  29.67s best:1612.2948 next:[1574.11185,1612.2948] lb_tree_search (nodes=164/165 rc=69 decisions=2502 @root=45 restarts=2 lp_iters=[0, 0, 84'302, 16'856])
#Model  30.18s var:590/708 constraints:886/1013
#Bound  30.67s best:1612.2948 next:[1574.1253,1612.2948] lb_tree_search (nodes=164/165 rc=70 decisions=2518 @root=46 restarts=2 lp_iters=[0, 0, 84'801, 16'856])
#Bound  31.89s best:1612.2948 next:[1574.16877,1612.2948] lb_tree_search (nodes=165/166 rc=71 decisions=2552 @root=48 restarts=2 lp_iters=[0, 0, 86'128, 16'895])
#Bound  32.46s best:1612.2948 next:[1574.17239,1612.2948] lb_tree_search (nodes=165/166 rc=71 decisions=2564 @root=49 restarts=2 lp_iters=[0, 0, 86'639, 16'895])
#Bound  32.51s best:1612.2948 next:[1574.19516,1612.2948] lb_tree_search (nodes=165/166 rc=71 decisions=2569 @root=50 restarts=2 lp_iters=[0, 0, 86'948, 16'895])
#Bound  32.58s best:1612.2948 next:[1574.20502,1612.2948] lb_tree_search (nodes=166/167 rc=71 decisions=2578 @root=50 restarts=2 lp_iters=[0, 0, 87'295, 16'935])  [skipped_logs=1]
#Model  33.54s var:588/708 constraints:884/1013
#Model  33.74s var:586/708 constraints:882/1013
#Model  33.94s var:584/708 constraints:880/1013
#Bound  33.62s best:1612.2948 next:[1574.25493,1612.2948] lb_tree_search (nodes=166/167 rc=71 decisions=2600 @root=52 restarts=2 lp_iters=[0, 0, 88'173, 16'935])  [skipped_logs=1]
#Bound  34.20s best:1612.2948 next:[1574.27411,1612.2948] lb_tree_search (nodes=166/167 rc=71 decisions=2607 @root=53 restarts=2 lp_iters=[0, 0, 88'581, 16'935])  [skipped_logs=0]
#Model  35.27s var:582/708 constraints:878/1013
#Bound  36.00s best:1612.2948 next:[1574.33359,1612.2948] lb_tree_search (nodes=167/168 rc=72 decisions=2660 @root=57 restarts=2 lp_iters=[0, 0, 91'316, 16'966])  [skipped_logs=5]
#Model  36.16s var:580/708 constraints:875/1013
#Bound  36.97s best:1612.2948 next:[1574.73579,1612.2948] lb_tree_search (nodes=171/172 rc=73 decisions=2764 @root=57 restarts=2 lp_iters=[0, 0, 96'832, 17'180])  [skipped_logs=12]
#Model  37.32s var:578/708 constraints:873/1013
#Model  37.42s var:576/708 constraints:871/1013
#Bound  37.63s best:1612.2948 next:[1574.9356,1612.2948] lb_tree_search (nodes=173/175 rc=73 decisions=2830 @root=57 restarts=2 lp_iters=[0, 0, 100'835, 17'343])  [skipped_logs=8]
#Model  38.80s var:572/708 constraints:867/1013
#Bound  38.08s best:1612.2948 next:[1574.9407,1612.2948] lb_tree_search (nodes=173/175 rc=73 decisions=2839 @root=58 restarts=2 lp_iters=[0, 0, 101'255, 17'343])  [skipped_logs=0]
#Model  39.12s var:570/708 constraints:865/1013
#Model  39.26s var:566/708 constraints:859/1013
#Bound  39.07s best:1612.2948 next:[1574.94224,1612.2948] lb_tree_search (nodes=173/175 rc=73 decisions=2846 @root=59 restarts=2 lp_iters=[0, 0, 101'676, 17'343])  [skipped_logs=0]
#Model  40.32s var:562/708 constraints:854/1013
#Bound  40.80s best:1612.2948 next:[1575.14883,1612.2948] lb_tree_search (nodes=174/176 rc=75 decisions=2903 @root=61 restarts=2 lp_iters=[0, 0, 104'323, 17'386])  [skipped_logs=7]
#Model  41.99s var:560/708 constraints:852/1013
#Bound  41.75s best:1612.2948 next:[1575.177,1612.2948] lb_tree_search (nodes=174/176 rc=75 decisions=2906 @root=62 restarts=2 lp_iters=[0, 0, 104'554, 17'386])  [skipped_logs=0]
#Model  42.22s var:558/708 constraints:850/1013
#Bound  42.79s best:1612.2948 next:[1575.24057,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=2930 @root=65 restarts=2 lp_iters=[0, 0, 105'797, 17'386])  [skipped_logs=2]
#Model  43.64s var:552/708 constraints:844/1013
#Model  43.85s var:550/708 constraints:842/1013
#Model  43.96s var:548/708 constraints:838/1013
#Bound  44.06s best:1612.2948 next:[1575.27606,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=2972 @root=67 restarts=2 lp_iters=[0, 0, 108'380, 17'386])  [skipped_logs=5]
#Model  44.83s var:546/708 constraints:835/1013
#Bound  44.87s best:1612.2948 next:[1575.42196,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=3008 @root=68 restarts=2 lp_iters=[0, 0, 110'517, 17'386])  [skipped_logs=4]
#Model  45.96s var:544/708 constraints:832/1013
#Bound  45.79s best:1612.2948 next:[1575.43869,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=3016 @root=69 restarts=2 lp_iters=[0, 0, 110'879, 17'386])  [skipped_logs=0]
#Model  46.66s var:542/708 constraints:829/1013
#Bound  46.39s best:1612.2948 next:[1575.43952,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=3027 @root=70 restarts=2 lp_iters=[0, 0, 111'432, 17'386])  [skipped_logs=0]
#Model  47.51s var:540/708 constraints:827/1013
#Model  47.73s var:538/708 constraints:825/1013
#Bound  48.02s best:1612.2948 next:[1609.86694,1612.2948] reduced_costs [skipped_logs=1]
Relative gap limit of 0.01 reached.
#Model  48.00s var:488/708 constraints:769/1013 [skipped_logs=6]

Task timing                                n [     min,      max]      avg      dev     time         n [     min,      max]      avg      dev    dtime
                           'core':         1 [  47.99s,   47.99s]   47.99s   0.00ns   47.99s         2 [  1.47ms,    1.04m]   31.23s   31.23s    1.04m
                     'default_lp':         1 [  47.99s,   47.99s]   47.99s   0.00ns   47.99s         2 [ 32.29ms,   26.03s]   13.03s   13.00s   26.06s
               'feasibility_pump':       236 [962.95us,  96.24ms]   2.06ms   7.57ms 486.13ms       235 [162.57us,  48.62ms] 641.72us   4.41ms 150.80ms
                             'fj':         1 [ 94.93ms,  94.93ms]  94.93ms   0.00ns  94.93ms         1 [ 59.80ms,  59.80ms]  59.80ms   0.00ns  59.80ms
                             'fj':         1 [157.61ms, 157.61ms] 157.61ms   0.00ns 157.61ms         1 [100.02ms, 100.02ms] 100.02ms   0.00ns 100.02ms
                      'fs_random':         1 [ 14.37ms,  14.37ms]  14.37ms   0.00ns  14.37ms         1 [  1.47ms,   1.47ms]   1.47ms   0.00ns   1.47ms
                'fs_random_no_lp':         1 [ 13.37ms,  13.37ms]  13.37ms   0.00ns  13.37ms         1 [  1.58ms,   1.58ms]   1.58ms   0.00ns   1.58ms
  'fs_random_quick_restart_no_lp':         1 [ 13.25ms,  13.25ms]  13.25ms   0.00ns  13.25ms         1 [  1.47ms,   1.47ms]   1.47ms   0.00ns   1.47ms
                  'graph_arc_lns':       108 [  8.51ms, 481.69ms] 219.90ms 124.17ms   23.75s       108 [  2.85us, 102.22ms]  63.68ms  40.47ms    6.88s
                  'graph_cst_lns':       108 [  5.46ms, 493.57ms] 223.86ms 132.72ms   24.18s       108 [230.00ns, 100.31ms]  62.49ms  41.72ms    6.75s
                  'graph_dec_lns':       113 [  2.56ms, 448.32ms] 219.27ms 136.70ms   24.78s       113 [ 10.00ns, 100.21ms]  59.13ms  42.71ms    6.68s
                  'graph_var_lns':       105 [  2.52ms, 477.74ms] 225.50ms 140.67ms   23.68s       105 [ 10.00ns, 100.26ms]  59.37ms  41.81ms    6.23s
                   'lb_relax_lns':        30 [118.75ms,    1.54s] 784.01ms 509.64ms   23.52s        30 [ 16.89ms, 516.98ms] 293.15ms 220.48ms    8.79s
                 'lb_tree_search':         1 [  47.98s,   47.98s]   47.98s   0.00ns   47.98s         2 [ 54.69ms,   23.06s]   11.56s   11.50s   23.11s
                             'ls':       135 [ 18.99ms, 304.61ms] 174.34ms  23.49ms   23.54s       135 [ 10.04ms, 100.03ms]  99.34ms   7.71ms   13.41s
                         'ls_lin':       131 [136.90ms, 269.33ms] 179.79ms  19.80ms   23.55s       131 [100.00ms, 100.03ms] 100.01ms   5.49us   13.10s
                         'max_lp':         1 [  47.98s,   47.98s]   47.98s   0.00ns   47.98s         2 [ 53.12ms,   26.72s]   13.39s   13.33s   26.77s
                          'no_lp':         1 [  47.98s,   47.98s]   47.98s   0.00ns   47.98s         2 [  1.61ms,   28.51s]   14.26s   14.25s   28.51s
            'objective_lb_search':         1 [  47.98s,   47.98s]   47.98s   0.00ns   47.98s         2 [ 33.38ms,   26.07s]   13.05s   13.02s   26.10s
                        'probing':         1 [  47.99s,   47.99s]   47.99s   0.00ns   47.99s         2 [ 32.29ms,   22.73s]   11.38s   11.35s   22.76s
                   'pseudo_costs':         1 [  47.98s,   47.98s]   47.98s   0.00ns   47.98s         2 [ 12.12ms,   24.30s]   12.16s   12.15s   24.32s
                  'quick_restart':         1 [  47.98s,   47.98s]   47.98s   0.00ns   47.98s         2 [ 41.60ms,   19.96s]   10.00s    9.96s   20.00s
            'quick_restart_no_lp':         1 [  48.00s,   48.00s]   48.00s   0.00ns   48.00s         2 [  1.61ms,   40.00s]   20.00s   20.00s   40.00s
                  'reduced_costs':         1 [  47.98s,   47.98s]   47.98s   0.00ns   47.98s         2 [  9.59ms,   30.42s]   15.22s   15.21s   30.43s
                      'rins/rens':       120 [  3.17ms, 497.04ms] 196.79ms 139.41ms   23.61s       116 [  6.57us, 100.19ms]  56.92ms  42.88ms    6.60s
                    'rnd_cst_lns':       114 [  5.37ms, 610.81ms] 211.50ms 128.34ms   24.11s       114 [145.00ns, 100.30ms]  57.85ms  40.64ms    6.59s
                    'rnd_var_lns':       105 [  5.02ms, 452.70ms] 228.98ms 133.87ms   24.04s       105 [ 63.00ns, 100.23ms]  62.92ms  41.25ms    6.61s

Search stats                        Bools  Conflicts   Branches  Restarts  BacktrackToRoot  Backtrack  BoolPropag  IntegerPropag
                           'core':  1'092    315'871    940'477     1'436           12'127    339'499  37'724'420     17'930'479
                     'default_lp':    354      3'306    137'810        27           37'089     49'039   1'800'373      5'925'320
                      'fs_random':    354          0        708         0              708        708       6'758         17'253
                'fs_random_no_lp':    354          6        812         0              708        714       7'067         18'290
  'fs_random_quick_restart_no_lp':    354          0        708         0              708        708       6'758         17'254
                 'lb_tree_search':    354        327    167'024         0           50'019     63'629   2'213'052      7'327'464
                         'max_lp':    354      3'764    147'223        27           38'998     51'533   1'964'378      6'511'012
                          'no_lp':    354    431'285    754'080       788           24'507    458'336  22'000'802     69'509'625
            'objective_lb_search':    394      1'688    150'919        18           44'638     57'384   2'003'684      6'643'546
                        'probing':    444         61      1'137         0            1'038      1'047      20'412         55'640
                   'pseudo_costs':    354      4'761    172'429        34           44'881     60'602   2'223'398      7'408'653
                  'quick_restart':    354      1'267    235'235        50           66'031     83'490   2'987'855      9'859'236
            'quick_restart_no_lp':    615    210'234  1'507'905    18'342           66'285    285'240  20'375'201     47'001'975
                  'reduced_costs':    358      4'806    130'627        26           32'073     45'037   1'552'350      5'154'777

SAT formula                         Fixed  Equiv  Total  VarLeft  BinaryClauses  PermanentClauses  TemporaryClauses
                           'core':     90     24  1'092      978          6'314            35'199             7'857
                     'default_lp':    225      5    354      124            482                52               652
                      'fs_random':      0      0    354      354             80                40                 0
                'fs_random_no_lp':      0      0    354      354             80                40                 6
  'fs_random_quick_restart_no_lp':      0      0    354      354             80                40                 0
                 'lb_tree_search':     82      0    354      272          2'882               604                19
                         'max_lp':     84      0    354      270          2'808               699             1'936
                          'no_lp':     83      0    354      271          3'142             8'151            12'634
            'objective_lb_search':    159      0    394      235          1'846               298                57
                        'probing':    104      0    444      340         12'468             1'863                 7
                   'pseudo_costs':     83      0    354      271          2'736               662             2'879
                  'quick_restart':     85      0    354      269          2'666               686               319
            'quick_restart_no_lp':    164      1    615      450          2'862             3'770             4'822
                  'reduced_costs':    226      0    358      132          2'156             -'217             1'714

SAT stats                           ClassicMinim  LitRemoved  LitRemovedBinary  LitLearned  LitForgotten  Subsumed
                           'core':       270'111   2'962'620         1'321'492  16'335'111    10'008'340    68'328
                     'default_lp':         2'688      47'593            66'130     152'092             0       859
                      'fs_random':             0           0                 0           0             0         0
                'fs_random_no_lp':             6           8                27         767             0         0
  'fs_random_quick_restart_no_lp':             0           0                 0           0             0         0
                 'lb_tree_search':            72         161             2'516       2'478             0       197
                         'max_lp':         3'134      63'243            74'397     157'953             0     1'040
                          'no_lp':       391'045   4'529'650         4'116'157  15'109'221    10'743'026    96'974
            'objective_lb_search':         1'236      49'176            15'353      20'784             0       789
                        'probing':             8          62               476         881             0         2
                   'pseudo_costs':         3'829      75'927           101'436     193'825             0     1'301
                  'quick_restart':           719      11'063            13'410      26'865             0       585
            'quick_restart_no_lp':       179'214   2'018'970         3'193'147   6'836'841     5'112'090    33'432
                  'reduced_costs':         3'496      46'962            55'555     285'214             0     1'199

Vivification                        Clauses  Decisions  LitTrue  Subsumed  LitRemoved  DecisionReused  Conflicts
                           'core':   12'948    439'753        0     2'413     103'131          32'483        514
                     'default_lp':   28'622    114'311        2     1'726       8'371           4'918         27
                      'fs_random':        0          0        0         0           0               0          0
                'fs_random_no_lp':        0          0        0         0           0               0          0
  'fs_random_quick_restart_no_lp':        0          0        0         0           0               0          0
                 'lb_tree_search':   36'260    136'731        2     1'696       7'855           4'512         21
                         'max_lp':   30'958    123'427        1     1'899       9'107           5'284         36
                          'no_lp':   23'319    198'092        9     4'810      66'481          22'480        763
            'objective_lb_search':   32'065    124'615       10     1'656       7'939           5'239         22
                        'probing':        1          2        0         1           3               0          0
                   'pseudo_costs':   34'486    142'453        3     1'768       8'655           6'059         39
                  'quick_restart':   48'873    197'361        2     1'865       8'999           7'655         44
            'quick_restart_no_lp':   46'964    368'715        4     8'067      89'075          36'646      1'034
                  'reduced_costs':   22'890     99'593       45     1'833       9'511           5'086         78

Clause deletion                     at_true  l_and_not(l)  to_binary  sub_conflict  sub_extra  sub_decisions  sub_eager  sub_vivify  sub_probing  sub_inpro  blocked  eliminated  forgotten   promoted  conflicts
                           'core':    4'677            79        106        66'261      3'626            154      2'067       2'413        1'238     10'517        0           0    183'992    672'754    315'871
                     'default_lp':    1'540           706         43           829          9              9         30       1'726          746        250        0           0          0      7'593      3'306
                      'fs_random':        0             0          0             0          0              0          0           0            0          0        0           0          0          0          0
                'fs_random_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         11          6
  'fs_random_quick_restart_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0          0          0
                 'lb_tree_search':      319             0          5           195          0              8          2       1'696          949        128        0           0          0         64        327
                         'max_lp':      426             1          7         1'002          3             19         38       1'899          972        510        0           0          0      7'768      3'764
                          'no_lp':   11'165            74         16        94'345      2'848          1'113      2'629       4'810        1'052      4'994        0           0    289'799  1'008'872    431'285
            'objective_lb_search':    1'127            56         29           709          0             67         80       1'656          801        141        0           0          0      1'838      1'688
                        'probing':        0             0          0             2          0              0          0           1            0          0        0           0          0         15         61
                   'pseudo_costs':      414             0         16         1'247         16              9         54       1'768          739        279        0           0          0     10'153      4'761
                  'quick_restart':      359             0         10           569          3             15         16       1'865          938        127        0           0          0      1'493      1'267
            'quick_restart_no_lp':    8'774            41        108        31'568      1'130            409      1'864       8'067        4'814      4'189        0           0    140'942    487'025    210'234
                  'reduced_costs':      748            37         20         1'148         10             98         51       1'833        1'085        835        0           0          0     38'877      4'806

Lp stats                  Component  Iterations  AddedCuts  OPTIMAL  DUAL_F.  DUAL_U.
           'default_lp':          1     315'761      3'393    8'759        8      465
            'fs_random':          1           0          0        0        0        0
       'lb_tree_search':          1     164'729      1'660    2'772    1'266        4
               'max_lp':          1     309'796      2'425    7'306    2'722      439
  'objective_lb_search':          1     233'812      2'033    4'127        1      116
              'probing':          1      89'904      2'540      655        9       15
         'pseudo_costs':          1     327'730      3'353    8'966    2'974      635
        'quick_restart':          1     148'704      2'297    3'400        3      100
        'reduced_costs':          1     375'687      3'219    6'300    3'246      610

Lp dimension                 Final dimension of first component
           'default_lp':   791 rows, 708 columns, 11464 entries
            'fs_random':         0 rows, 708 columns, 0 entries
       'lb_tree_search':   875 rows, 708 columns, 20760 entries
               'max_lp':   767 rows, 708 columns, 14517 entries
  'objective_lb_search':   791 rows, 708 columns, 14899 entries
              'probing':  1201 rows, 708 columns, 33251 entries
         'pseudo_costs':   763 rows, 708 columns, 11020 entries
        'quick_restart':   777 rows, 708 columns, 13372 entries
        'reduced_costs':   921 rows, 708 columns, 18436 entries

Lp debug                  CutPropag  CutEqPropag  Adjust  Overflow      Bad  BadScaling
           'default_lp':          0           37   9'208         0   73'602           0
            'fs_random':          0            0       0         0        0           0
       'lb_tree_search':          0            0   4'041         0  133'647           0
               'max_lp':          0           10  10'458         0   65'015           0
  'objective_lb_search':          0            9   4'238         0  105'919           0
              'probing':          0            1     669         0  216'489           0
         'pseudo_costs':          0           10  12'528         0   65'957           0
        'quick_restart':          0            3   3'498         0  122'636           0
        'reduced_costs':          0            0  10'126         0   52'973           0

Lp pool                   Constraints  Updates  Simplif  Merged  Shortened  Split  Strengthened    Cuts/Call
           'default_lp':        4'723      760   16'744       0     10'233    316           335  3'393/7'720
            'fs_random':        1'330        0        0       0          0      0             0          0/0
       'lb_tree_search':        3'027    1'069   16'328       0      8'998    902           178  1'660/3'298
               'max_lp':        3'792      519   16'347       0     10'157    407           286  2'425/5'665
  'objective_lb_search':        3'363      729   16'071       0      9'270    684           308  2'033/3'641
              'probing':        3'870    1'791    7'323       0      4'390    995           237  2'540/4'340
         'pseudo_costs':        4'720      733   16'404       0      8'229    416           380  3'353/7'697
        'quick_restart':        3'627      811   21'467       0     11'065    602           286  2'297/4'222
        'reduced_costs':        4'586      748   13'218       0      7'382    481           389  3'219/6'776

Lp Cut            max_lp  quick_restart  reduced_costs  pseudo_costs  lb_tree_search  objective_lb_search  default_lp  probing
          CG_FF:      22             10             32            34               7                   16          45       16
           CG_K:       8              6             23            30               1                   10          28       11
          CG_KL:       4              2              3             2               1                    4          11        3
           CG_R:      44             21             44            74               8                   33          72       23
          CG_RB:      51             54             64           108              26                   40          98       37
         CG_RBP:      23             15             35            63               7                   28          62       18
         Clique:      25              -             21            26              21                    -           -        -
             IB:     913            768          1'126         1'444             254                  708       1'302      592
       MIR_1_FF:      87            160            132            95             116                  136         162      209
        MIR_1_K:      26             20             57            20               9                   21          32       16
       MIR_1_KL:       7             26             18            22               7                   25          28       19
        MIR_1_R:      15             17              9             8               6                    2           2       16
       MIR_1_RB:      58             24             42            42              24                   39          58       22
      MIR_1_RBP:      29             64             33            28              58                   52          61      170
       MIR_2_FF:      96             89             97            94              89                   57         123       95
        MIR_2_K:      25             18             36            31              19                   24          23       22
       MIR_2_KL:       6             16             17            11              12                    5          20       15
        MIR_2_R:      16              3             25            20               5                    2          11        6
       MIR_2_RB:      95             61             95            79              52                   49         102       55
      MIR_2_RBP:      25             22             31            38              20                   17          44       27
       MIR_3_FF:      49             50             72            71              45                   49          73       75
        MIR_3_K:      15              7             32            12              10                   37          15       14
       MIR_3_KL:       3              8              6             7               4                   10           8       10
        MIR_3_R:      20              6              9            13               3                    7           9        5
       MIR_3_RB:      71             50             62            73              41                   46          72       47
      MIR_3_RBP:      26             15             17            31              10                   16          41       16
       MIR_4_FF:      38             49             67            47              41                   45          47       74
        MIR_4_K:      15             10             27            12               8                   27          10        9
       MIR_4_KL:       4              4              8             7               5                    7           4       10
        MIR_4_R:       6              9             12            16               3                    4           7        -
       MIR_4_RB:      42             35             41            58              28                   39          53       28
      MIR_4_RBP:      19             13             27            30               8                   17          25       11
       MIR_5_FF:      23             32             47            45              39                   30          47       57
        MIR_5_K:      19             19             23            16              13                   18          16       23
       MIR_5_KL:       3              4             14            12               2                    9          10       10
        MIR_5_R:       8              7              9            13               1                    4           7        4
       MIR_5_RB:      27             14             36            35              20                   26          42       27
      MIR_5_RBP:      25             18             21            30              15                   14          26       32
       MIR_6_FF:      25             10             29            27              30                   26          27       52
        MIR_6_K:      24             18             20            18              19                   26          17       16
       MIR_6_KL:       9             12             10            19              11                   10          18       13
        MIR_6_R:       8              3             12             9               2                    5          11        -
       MIR_6_RB:      21             10             38            28              10                   19          32       21
      MIR_6_RBP:      23             32             26            38              32                   30          45       38
   ZERO_HALF_FF:      30             17             55            26               1                   17          23       30
    ZERO_HALF_K:       1              2             24             6               -                    3           9        1
   ZERO_HALF_KL:       -              5             11             6               -                    7           5       10
    ZERO_HALF_R:     242            328            407           331             438                  182         313      455
   ZERO_HALF_RB:      43             75             64            25              56                   28          61       54
  ZERO_HALF_RBP:      11             39             53            23              23                    7          36       26

LNS stats           Improv/Calls  Closed  Difficulty  TimeLimit
  'graph_arc_lns':        14/108     54%    9.39e-01       0.10
  'graph_cst_lns':         6/108     51%    9.01e-01       0.10
  'graph_dec_lns':         8/113     51%    9.11e-01       0.10
  'graph_var_lns':         6/105     53%    9.54e-01       0.10
   'lb_relax_lns':          4/30     53%    7.83e-01       0.50
      'rins/rens':       118/120     56%    9.41e-01       0.10
    'rnd_cst_lns':        12/114     52%    9.20e-01       0.10
    'rnd_var_lns':         5/105     52%    9.34e-01       0.10

LS stats                                    Batches  Restarts/Perturbs  LinMoves  GenMoves  CompoundMoves  Bactracks  WeightUpdates  ScoreComputed
                             'fj_restart':        1                  1     8'791         0              0          0          8'797        255'737
  'fj_restart_decay_compound_perturb_obj':        1                  1         0    12'932          2'200      5'365             27        347'114
                         'ls_lin_restart':       12                  7   170'890         0              0          0        147'479      5'120'584
                'ls_lin_restart_compound':       21                  7         0   318'765         19'426    149'633          1'718      7'664'363
        'ls_lin_restart_compound_perturb':       14                  8         0   224'982         14'301    105'321          1'743      5'439'661
                   'ls_lin_restart_decay':        8                  6   133'891         0              0          0          5'650      2'400'398
          'ls_lin_restart_decay_compound':       36                 16         0   580'916         82'658    249'024            802     14'703'978
  'ls_lin_restart_decay_compound_perturb':        8                  7         0   125'423         21'112     52'147            295      3'258'541
           'ls_lin_restart_decay_perturb':       17                 10   282'910         0              0          0         12'002      5'176'761
                 'ls_lin_restart_perturb':       15                  9   220'983         0              0          0        151'029      7'191'986
                             'ls_restart':       12                  6   176'693         0              0          0        100'185      5'722'677
                    'ls_restart_compound':       31                 13         0   506'537         27'750    239'342          3'936     12'050'971
            'ls_restart_compound_perturb':       13                  9         0   195'433         12'859     91'268          1'798      4'680'184
                       'ls_restart_decay':       24                 10   400'180         0              0          0         16'491      7'450'889
              'ls_restart_decay_compound':        9                  6         0   142'058         23'215     59'409            251      3'459'408
      'ls_restart_decay_compound_perturb':        8                  4         0   112'287         16'280     47'987            186      2'919'361
               'ls_restart_decay_perturb':       28                 15   464'097         0              0          0         19'258      8'547'790
                     'ls_restart_perturb':       10                  9   145'106         0              0          0        114'128      4'373'120

Solutions (8)             Num   Rank
        'graph_arc_lns':    4  [3,6]
    'lb_relax_lns_bool':    2  [4,5]
  'lb_relax_lns_bool_h':    4  [6,8]
                'no_lp':    2  [0,1]
  'quick_restart_no_lp':    2  [2,3]
        'reduced_costs':    2  [1,2]

Objective bounds          Num
         'am1_presolve':    1
       'initial_domain':    1
       'lb_tree_search':  257
               'max_lp':    3
  'objective_lb_search':    8
              'probing':    5
        'reduced_costs':    2

Solution repositories    Added  Queried  Synchro
    'alternative_path':     53      459       53
      'best_solutions':    164      567      113
   'fj solution hints':      0        0        0
        'lp solutions':    264       99      228
                'pump':     83       21

Improving bounds shared    Num  Sym
            'default_lp':   12    0
        'lb_tree_search':   17    0
                'max_lp':   22    0
                 'no_lp':   10    0
   'objective_lb_search':   34    0
               'probing':   87    0
          'pseudo_costs':   20    0
         'quick_restart':   26    0
   'quick_restart_no_lp':   81    0
         'reduced_costs':  257    0

Clauses shared                      #Exported  #Imported  #BinaryRead  #BinaryTotal
                           'core':      1'483      4'236        3'783         4'143
                     'default_lp':        381      4'390        4'143         4'143
                      'fs_random':          0          0            0         4'143
                'fs_random_no_lp':          0          0            0         4'143
  'fs_random_quick_restart_no_lp':          0          0            0         4'143
                 'lb_tree_search':        223      4'305        3'724         4'143
                         'max_lp':        439      4'402        3'786         4'143
                          'no_lp':      2'663      2'976        3'785         4'143
            'objective_lb_search':        394      4'371        4'101         4'143
                        'probing':      2'957      2'157        2'581         4'143
                   'pseudo_costs':        394      4'198        3'726         4'143
                  'quick_restart':        577      4'245        3'793         4'143
            'quick_restart_no_lp':      4'522      2'469        3'964         4'143
                  'reduced_costs':        620      4'138        3'786         4'143

LRAT_status: NA
[Scaling] scaled_objective_bound: 1609.87 corrected_bound: 1609.87 delta: 1.46501e-06
[Scaling] Warning: OPTIMAL was reported, yet the objective gap (2.42787) is greater than requested absolute limit (0.0001).
CpSolverResponse summary:
status: OPTIMAL
objective: 1612.294803789032
best_bound: 1609.866938074606
integers: 727
booleans: 354
conflicts: 6
branches: 812
propagations: 7067
integer_propagations: 18290
restarts: 0
lp_iterations: 0
walltime: 48.0397
usertime: 48.0397
deterministic_time: 412.521
gap_integral: 713.208
solution_fingerprint: 0x5b832712c354a6b2

[13]:
wfn
[13]:
../_images/notebooks_b03_MILPRouter_22_0.svg

Ringed Topology with MILPRouter¶

We can also optimize for a ringed topology by setting topology='ringed' in ModelOptions:

[14]:
router_ring = MILPRouter(
    solver_name='ortools.cp_sat',
    time_limit=15,
    mip_gap=0.01,
    model_options=ModelOptions(topology='ringed', feeder_limit='minimum'),
    verbose=True,
)
res_ring = wfn.optimize(router=router_ring)
wfn
IntegerBoundsPreprocessor                              1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]
BoundPropagationPreprocessor                           1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]
ImpliedIntegerPreprocessor                             1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]
IntegerBoundsPreprocessor                              1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]
ReduceCostOverExclusiveOrConstraintPreprocessor        1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]

Scaling to pure integer problem.
Num integers: 748/748 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP]
Maximum constraint coefficient relative error: 0
Maximum constraint worst-case activity error: 0
Constraint scaling factor range: [1, 1]

Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 15 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.01
Setting number of workers to 16

Initial optimization model 'optiwindnet': (model_fingerprint: 0x192a0d00893e613d)
#Variables: 748 (#bools: 340 in floating point objective) (628 primary variables)
  - 394 Booleans in [0,1]
  - 314 in [0,13]
  - 40 in [0,14]
#kLinear2: 865
#kLinear3: 1
#kLinearN: 266 (#terms: 2'229)

Starting presolve at 0.00s
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 340 terms with magnitude in [0.100627, 223.305] average = 45.1849
[Scaling] Objective coefficient relative error: 6.6288e-06
[Scaling] Objective worst-case absolute error: 8.89826e-05
[Scaling] Objective scaling factor: 524288
  2.09e-04s  0.00e+00d  [DetectDominanceRelations]
  3.79e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  1.18e-05s  0.00e+00d  [ExtractEncodingFromLinear] #potential_supersets=185
  6.49e-05s  0.00e+00d  [DetectDuplicateColumns]
  6.69e-05s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'745 nodes and 4'944 arcs.
[Symmetry] Symmetry computation done. time: 0.000232293 dtime: 0.00048967
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.312e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.9334e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
  8.10e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  8.62e-03s  4.11e-03d  [Probe] #probed=1'496 #new_binary_clauses=354
  2.90e-04s  4.55e-04d  [MaxClique] Merged 302 constraints with 1'090 literals into 182 constraints with 850 literals
  1.87e-04s  0.00e+00d  [DetectDominanceRelations]
  2.49e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  5.49e-04s  0.00e+00d  [ProcessAtMostOneAndLinear] #num_changes=354
  7.41e-05s  0.00e+00d  [DetectDuplicateConstraints]
  5.87e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  1.04e-04s  4.59e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=82 #num_inclusions=40
  1.06e-05s  0.00e+00d  [DetectDifferentVariables]
  8.43e-05s  4.19e-06d  [ProcessSetPPC] #relevant_constraints=223
  1.12e-04s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=182
  2.81e-04s  0.00e+00d  [DetectEncodedComplexDomains]
  1.42e-05s  1.65e-07d  [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3
  1.21e-04s  1.02e-04d  [FindBigAtMostOneAndLinearOverlap]
  7.84e-05s  1.08e-04d  [FindBigVerticalLinearOverlap]
  1.44e-05s  5.27e-06d  [FindBigHorizontalLinearOverlap] #linears=80
  9.89e-06s  0.00e+00d  [MergeClauses]
  1.83e-04s  0.00e+00d  [DetectDominanceRelations]
  2.74e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  1.53e-04s  0.00e+00d  [DetectDominanceRelations]
  1.24e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  4.13e-05s  0.00e+00d  [DetectDuplicateColumns]
  5.92e-05s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'492 nodes and 4'451 arcs.
[Symmetry] Symmetry computation done. time: 0.000399166 dtime: 0.0004571
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [7.392e-06s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.944e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
  7.82e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  4.06e-03s  1.27e-03d  [Probe] #probed=788
  2.51e-04s  3.09e-04d  [MaxClique]
  5.11e-04s  0.00e+00d  [DetectDominanceRelations]
  2.90e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  3.18e-04s  0.00e+00d  [ProcessAtMostOneAndLinear]
  6.56e-05s  0.00e+00d  [DetectDuplicateConstraints]
  6.43e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  8.59e-05s  4.59e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=82 #num_inclusions=40
  9.47e-06s  0.00e+00d  [DetectDifferentVariables]
  7.61e-05s  4.19e-06d  [ProcessSetPPC] #relevant_constraints=223
  8.94e-05s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=182
  2.58e-04s  0.00e+00d  [DetectEncodedComplexDomains]
  1.55e-05s  0.00e+00d  [FindAlmostIdenticalLinearConstraints]
  1.43e-04s  1.01e-04d  [FindBigAtMostOneAndLinearOverlap]
  7.90e-05s  1.08e-04d  [FindBigVerticalLinearOverlap]
  1.28e-05s  5.27e-06d  [FindBigHorizontalLinearOverlap] #linears=80
  9.75e-06s  0.00e+00d  [MergeClauses]
  5.96e-04s  0.00e+00d  [DetectDominanceRelations]
  1.98e-03s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  2.79e-06s  0.00e+00d  [MergeNoOverlap]
  2.98e-06s  0.00e+00d  [MergeNoOverlap2D]
  1.29e-04s  0.00e+00d  [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40 #expands=3

Presolve summary:
  - 0 affine relations were detected.
  - rule 'TODO linear inclusion: superset is equality' was applied 80 times.
  - rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.
  - rule 'at_most_one: transformed into max clique' was applied 1 time.
  - rule 'bool_or: implications' was applied 157 times.
  - rule 'deductions: 708 stored' was applied 1 time.
  - rule 'exactly_one: removed literals' was applied 37 times.
  - rule 'exactly_one: simplified objective' was applied 39 times.
  - rule 'exactly_one: singleton' was applied 37 times.
  - rule 'linear + amo: extracted enforcement literal' was applied 354 times.
  - rule 'linear2: contains a boolean' was applied 354 times.
  - rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.
  - rule 'linear: positive at most one' was applied 108 times.
  - rule 'linear: positive equal one' was applied 77 times.
  - rule 'linear: singleton column' was applied 3 times.
  - rule 'objective: expanded via tight equality' was applied 3 times.
  - rule 'objective: shifted cost with exactly ones' was applied 37 times.
  - rule 'presolve: 0 unused variables removed.' was applied 1 time.
  - rule 'presolve: iteration' was applied 2 times.
  - rule 'variables: detect fully reified value encoding' was applied 354 times.
  - rule 'variables: detect half reified value encoding' was applied 708 times.

Presolved optimization model 'optiwindnet': (model_fingerprint: 0x7ca70ffef2fe892e)
#Variables: 708 (#bools: 310 in objective) (627 primary variables)
  - 354 Booleans in [0,1]
  - 314 in [0,13]
  - 40 in [0,14]
#kAtMostOne: 145 (#literals: 776)
#kBoolAnd: 37 (#enforced: 37) (#literals: 74)
#kExactlyOne: 40 (#literals: 354)
#kLinear1: 708 (#enforced: 708)
#kLinear3: 1
#kLinearN: 81 (#terms: 1'059)
[Symmetry] Graph for symmetry has 2'452 nodes and 4'451 arcs.
[Symmetry] Symmetry computation done. time: 0.000192819 dtime: 0.00045848

Preloading model.
#Bound   0.04s best:inf   next:[613.705382,16769.934] initial_domain
#1       0.04s best:1810.44465 next:[613.705382,1810.44464] complete_hint
#Model   0.04s var:708/708 constraints:1012/1012

Starting search at 0.04s with 16 workers.
11 full problem subsolvers: [core, default_lp, lb_tree_search, max_lp, no_lp, objective_lb_search, probing, pseudo_costs, quick_restart, quick_restart_no_lp, reduced_costs]
5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]
11 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, lb_relax_lns, ls, ls_lin, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]

#Bound   0.05s best:1810.44465 next:[724.544545,1810.44464] am1_presolve (num_literals=310 num_am1=12 increase=58111643 work_done=1571)
#Bound   0.05s best:1810.44465 next:[873.433064,1810.44464] default_lp
#Bound   0.05s best:1810.44465 next:[878.097617,1810.44464] reduced_costs
#Bound   0.06s best:1810.44465 next:[911.501117,1810.44464] reduced_costs
#Bound   0.06s best:1810.44465 next:[950.825274,1810.44464] pseudo_costs
#Bound   0.07s best:1810.44465 next:[1044.06746,1810.44464] pseudo_costs
#Bound   0.07s best:1810.44465 next:[1076.35594,1810.44464] pseudo_costs
#Bound   0.07s best:1810.44465 next:[1079.20803,1810.44464] reduced_costs
#Bound   0.07s best:1810.44465 next:[1087.40569,1810.44464] reduced_costs
#Bound   0.07s best:1810.44465 next:[1649.7498,1810.44464] lb_tree_search
#2       0.09s best:1806.84452 next:[1649.7498,1806.84451] graph_var_lns (d=7.07e-01 s=23 t=0.10 p=1.00 stall=1 h=base)
#Bound   0.15s best:1806.84452 next:[1663.59864,1806.84451] max_lp
#Bound   0.16s best:1806.84452 next:[1663.9932,1806.84451] max_lp
#Bound   0.35s best:1806.84452 next:[1664.45162,1806.84451] max_lp
#Bound   0.45s best:1806.84452 next:[1664.69409,1806.84451] max_lp
#Bound   0.85s best:1806.84452 next:[1665.36123,1806.84451] max_lp
#Bound   1.00s best:1806.84452 next:[1665.59072,1806.84451] max_lp
#Bound   1.06s best:1806.84452 next:[1666.87721,1806.84451] lb_tree_search
#Bound   1.36s best:1806.84452 next:[1668.95933,1806.84451] lb_tree_search
#Bound   1.38s best:1806.84452 next:[1669.08086,1806.84451] lb_tree_search
#Bound   1.42s best:1806.84452 next:[1669.21245,1806.84451] lb_tree_search (nodes=6/6 rc=0 decisions=27 @root=8 restarts=0 lp_iters=[0, 0, 333, 202])
#Bound   1.77s best:1806.84452 next:[1669.68257,1806.84451] lb_tree_search
#Bound   1.97s best:1806.84452 next:[1670.68995,1806.84451] lb_tree_search (nodes=6/6 rc=0 decisions=44 @root=11 restarts=0 lp_iters=[0, 0, 1'110, 202])  [skipped_logs=7]
#Bound   2.76s best:1806.84452 next:[1673.56404,1806.84451] lb_tree_search (nodes=16/16 rc=2 decisions=95 @root=11 restarts=0 lp_iters=[0, 0, 4'229, 790])  [skipped_logs=15]
#Bound   3.95s best:1806.84452 next:[1674.2135,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=128 @root=15 restarts=0 lp_iters=[0, 0, 5'769, 790])  [skipped_logs=5]
#Bound   5.00s best:1806.84452 next:[1675.14275,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=145 @root=18 restarts=0 lp_iters=[0, 0, 6'622, 790])  [skipped_logs=3]
#Bound   5.87s best:1806.84452 next:[1676.64053,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=166 @root=20 restarts=0 lp_iters=[0, 0, 8'349, 790])  [skipped_logs=7]
#Bound   6.93s best:1806.84452 next:[1676.72295,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=174 @root=22 restarts=0 lp_iters=[0, 0, 8'768, 790])  [skipped_logs=1]
#3       7.47s best:1806.84451 next:[1677.64512,1806.84451] lb_relax_lns_int (d=3.59e-01 s=207 t=0.50 p=0.33 stall=3 h=base)
#Bound   7.20s best:1806.84452 next:[1677.64512,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=185 @root=24 restarts=0 lp_iters=[0, 0, 9'241, 1'008])  [skipped_logs=1]
#Bound   8.79s best:1806.84451 next:[1678.60307,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=212 @root=27 restarts=0 lp_iters=[0, 0, 10'841, 1'206])  [skipped_logs=4]
#Bound   9.98s best:1806.84451 next:[1679.62339,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=221 @root=30 restarts=0 lp_iters=[0, 0, 11'406, 1'206])  [skipped_logs=2]
#Bound  10.51s best:1806.84451 next:[1679.90788,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=223 @root=31 restarts=0 lp_iters=[0, 0, 11'589, 1'206])  [skipped_logs=0]
#Bound  11.66s best:1806.84451 next:[1680.03252,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=239 @root=34 restarts=0 lp_iters=[0, 0, 12'793, 1'206])  [skipped_logs=4]
#Bound  12.27s best:1806.84451 next:[1680.03352,1806.84451] lb_tree_search (nodes=29/29 rc=8 decisions=282 @root=34 restarts=0 lp_iters=[0, 0, 13'749, 2'019])  [skipped_logs=0]
#Bound  13.85s best:1806.84451 next:[1680.12513,1806.84451] lb_tree_search (nodes=29/29 rc=8 decisions=291 @root=36 restarts=0 lp_iters=[0, 0, 14'295, 2'019])  [skipped_logs=1]
#Bound  14.78s best:1806.84451 next:[1680.17679,1806.84451] lb_tree_search (nodes=29/29 rc=8 decisions=297 @root=37 restarts=0 lp_iters=[0, 0, 14'556, 2'019])  [skipped_logs=0]

Task timing                                n [     min,      max]      avg      dev     time         n [     min,      max]      avg      dev    dtime
                           'core':         1 [  14.97s,   14.97s]   14.97s   0.00ns   14.97s         2 [  1.33ms,   10.66s]    5.33s    5.33s   10.66s
                     'default_lp':         1 [  14.96s,   14.96s]   14.96s   0.00ns   14.96s         2 [ 21.87ms,    5.69s]    2.86s    2.84s    5.72s
               'feasibility_pump':        70 [ 41.01us,  19.07ms]   1.52ms   2.14ms 106.47ms        68 [146.90us,   8.53ms] 278.86us   1.01ms  18.96ms
                             'fj':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                             'fj':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                      'fs_random':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                'fs_random_no_lp':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
  'fs_random_quick_restart_no_lp':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                  'graph_arc_lns':        42 [  4.14ms, 414.85ms] 191.04ms 140.00ms    8.02s        42 [ 42.00ns, 100.31ms]  60.95ms  45.56ms    2.56s
                  'graph_cst_lns':        37 [  9.87ms, 421.04ms] 216.09ms 139.88ms    8.00s        37 [ 64.21us, 100.50ms]  60.49ms  42.67ms    2.24s
                  'graph_dec_lns':        37 [  2.69ms, 454.72ms] 210.36ms 149.69ms    7.78s        37 [ 10.00ns, 100.15ms]  58.00ms  45.47ms    2.15s
                  'graph_var_lns':        41 [  3.69ms, 361.18ms] 181.40ms 133.39ms    7.44s        41 [ 10.00ns, 100.30ms]  58.27ms  45.80ms    2.39s
                   'lb_relax_lns':         9 [157.86ms,    1.72s] 786.50ms 683.67ms    7.08s         9 [ 29.98ms, 536.23ms] 254.79ms 244.99ms    2.29s
                 'lb_tree_search':         1 [  14.96s,   14.96s]   14.96s   0.00ns   14.96s         2 [ 62.71ms,    8.50s]    4.28s    4.22s    8.56s
                             'ls':        33 [172.42ms, 249.69ms] 210.27ms  21.24ms    6.94s        33 [100.00ms, 100.02ms] 100.01ms   2.34us    3.30s
                         'ls_lin':        34 [177.75ms, 273.75ms] 206.32ms  19.56ms    7.01s        34 [100.00ms, 100.01ms] 100.01ms   2.38us    3.40s
                         'max_lp':         1 [  14.97s,   14.97s]   14.97s   0.00ns   14.97s         2 [ 89.76ms,    7.27s]    3.68s    3.59s    7.36s
                          'no_lp':         1 [  14.97s,   14.97s]   14.97s   0.00ns   14.97s         2 [  1.58ms,    7.34s]    3.67s    3.67s    7.34s
            'objective_lb_search':         1 [  14.96s,   14.96s]   14.96s   0.00ns   14.96s         2 [ 21.75ms,    6.26s]    3.14s    3.12s    6.28s
                        'probing':         1 [  14.97s,   14.97s]   14.97s   0.00ns   14.97s         2 [ 23.97ms,    9.68s]    4.85s    4.83s    9.70s
                   'pseudo_costs':         1 [  14.96s,   14.96s]   14.96s   0.00ns   14.96s         2 [ 32.15ms,    7.05s]    3.54s    3.51s    7.09s
                  'quick_restart':         1 [  14.97s,   14.97s]   14.97s   0.00ns   14.97s         2 [ 22.68ms,    7.73s]    3.88s    3.85s    7.75s
            'quick_restart_no_lp':         1 [  14.96s,   14.96s]   14.96s   0.00ns   14.96s         2 [  1.58ms,   11.48s]    5.74s    5.74s   11.49s
                  'reduced_costs':         1 [  14.97s,   14.97s]   14.97s   0.00ns   14.97s         2 [ 45.86ms,    9.63s]    4.84s    4.79s    9.67s
                      'rins/rens':        40 [  1.79ms, 440.44ms] 203.93ms 171.05ms    8.16s        33 [ 74.16us, 100.11ms]  65.24ms  44.45ms    2.15s
                    'rnd_cst_lns':        39 [  5.09ms, 424.11ms] 177.59ms 143.06ms    6.93s        39 [ 43.00ns, 100.21ms]  50.07ms  45.35ms    1.95s
                    'rnd_var_lns':        39 [  3.81ms, 421.29ms] 186.36ms 146.25ms    7.27s        39 [ 10.00ns, 100.19ms]  51.78ms  45.00ms    2.02s

Search stats                        Bools  Conflicts  Branches  Restarts  BacktrackToRoot  Backtrack  BoolPropag  IntegerPropag
                           'core':    564    162'610   601'331       230           11'698    176'246   5'372'233     12'209'439
                     'default_lp':    406      1'189    51'634        15           14'565     18'091     320'652      1'082'525
                      'fs_random':      0          0         0         0                0          0           0              0
                'fs_random_no_lp':      0          0         0         0                0          0           0              0
  'fs_random_quick_restart_no_lp':      0          0         0         0                0          0           0              0
                 'lb_tree_search':    354        119    54'507         0           16'640     18'442     310'661      1'116'169
                         'max_lp':    354      1'118    48'620        11           11'551     13'760     285'675      1'089'124
                          'no_lp':    354    123'614   241'227       382           15'156    139'667   5'157'122     16'329'950
            'objective_lb_search':    464      2'111    48'310        11           11'812     16'329     378'099      1'181'127
                        'probing':    395         10       999         0              873        883       9'392         23'652
                   'pseudo_costs':    354      1'803    38'097         7            8'733     11'301     260'913        992'643
                  'quick_restart':    374        343    53'175        18           16'062     18'353     300'246      1'067'962
            'quick_restart_no_lp':    580     66'049   726'766     5'759           33'119    103'526   6'079'709     14'021'377
                  'reduced_costs':    354        915    48'917        14           13'302     15'591     290'754      1'093'400

SAT formula                         Fixed  Equiv  Total  VarLeft  BinaryClauses  PermanentClauses  TemporaryClauses
                           'core':      0      0    564      564          1'426             3'953            12'181
                     'default_lp':      0      0    406      406            204               315               856
                      'fs_random':      0      0      0        0              0                 0                 0
                'fs_random_no_lp':      0      0      0        0              0                 0                 0
  'fs_random_quick_restart_no_lp':      0      0      0        0              0                 0                 0
                 'lb_tree_search':      0      0    354      354             94               356                 3
                         'max_lp':      0      0    354      354             94               355               872
                          'no_lp':      0      0    354      354             94               537            11'316
            'objective_lb_search':      9      0    464      455            296               312               200
                        'probing':      0      0    395      395            308                40                10
                   'pseudo_costs':      0      0    354      354             94               296             1'426
                  'quick_restart':      0      0    374      374            136               378               189
            'quick_restart_no_lp':      6      0    580      574            694             2'466             8'591
                  'reduced_costs':      0      0    354      354             94               386               706

SAT stats                           ClassicMinim  LitRemoved  LitRemovedBinary  LitLearned  LitForgotten  Subsumed
                           'core':       137'833   1'945'202           848'695  13'057'769     7'832'799    49'764
                     'default_lp':           846      11'805            31'108      68'832             0       285
                      'fs_random':             0           0                 0           0             0         0
                'fs_random_no_lp':             0           0                 0           0             0         0
  'fs_random_quick_restart_no_lp':             0           0                 0           0             0         0
                 'lb_tree_search':            45         379               356       1'609             0        91
                         'max_lp':           737      11'085            21'868      93'722             0       211
                          'no_lp':       106'848     797'746         1'583'929   7'417'875     5'561'618    15'754
            'objective_lb_search':         1'787      20'824            34'691      99'624             0       416
                        'probing':             6          22               526         683             0         0
                   'pseudo_costs':         1'406      16'576            33'001     109'637             0       351
                  'quick_restart':           187       1'737             7'189      10'043             0       105
            'quick_restart_no_lp':        49'823     486'974         1'333'119   3'162'107     2'116'443    11'055
                  'reduced_costs':           724       8'084            24'517      35'505             0       164

Vivification                        Clauses  Decisions  LitTrue  Subsumed  LitRemoved  DecisionReused  Conflicts
                           'core':   10'822    332'618        0     1'867      45'583          28'122        123
                     'default_lp':    4'781     36'004        0       307       2'375           1'271         11
                      'fs_random':        0          0        0         0           0               0          0
                'fs_random_no_lp':        0          0        0         0           0               0          0
  'fs_random_quick_restart_no_lp':        0          0        0         0           0               0          0
                 'lb_tree_search':    5'635     41'340        0       373       2'937           1'506          7
                         'max_lp':    4'998     38'047        0       288       2'314           1'706         13
                          'no_lp':    6'544     59'666        0     1'027       9'313           3'061         26
            'objective_lb_search':    4'505     34'149        0       352       2'686           1'286          6
                        'probing':        0          0        0         0           0               0          0
                   'pseudo_costs':    3'971     29'259        0       326       2'493           1'112          9
                  'quick_restart':    5'125     38'620        0       341       2'501           1'614          9
            'quick_restart_no_lp':   23'165    168'906        3     2'117      21'843          12'862        189
                  'reduced_costs':    4'875     35'598        0       299       2'394           1'467         11

Clause deletion                     at_true  l_and_not(l)  to_binary  sub_conflict  sub_extra  sub_decisions  sub_eager  sub_vivify  sub_probing  sub_inpro  blocked  eliminated  forgotten  promoted  conflicts
                           'core':        0             0          0        48'310      1'904             34      1'454       1'867           35        168        0           0     93'398   390'940    162'610
                     'default_lp':        0             0          1           279          5              0          6         307           21         56        0           0          0     2'460      1'189
                      'fs_random':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
                'fs_random_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
  'fs_random_quick_restart_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
                 'lb_tree_search':        0             0          0            91          0              3          0         373           26         91        0           0          0        22        119
                         'max_lp':        0             0          1           204          4              3          7         288           13        133        0           0          0     2'061      1'118
                          'no_lp':        0             0          0        15'404        574              3        350       1'027           38         29        0           0     95'058   296'612    123'614
            'objective_lb_search':    1'419             0          0           409          9             10          7         352           18         33        0           0          0     3'991      2'111
                        'probing':        0             0          0             0          0              0          0           0            0          0        0           0          0        17         10
                   'pseudo_costs':        0             0          1           344          2              3          7         326           13         62        0           0          0     3'615      1'803
                  'quick_restart':        0             0          0           104          0              3          1         341           11         68        0           0          0       381        343
            'quick_restart_no_lp':       21             0          6        10'382        576             72        673       2'117          127        252        0           0     40'808   143'532     66'049
                  'reduced_costs':        0             0          1           158          0              3          6         299           10        126        0           0          0     1'720        915

Lp stats                  Component  Iterations  AddedCuts  OPTIMAL  DUAL_F.  DUAL_U.
           'default_lp':          1      69'803      4'352    4'229        0      165
       'lb_tree_search':          1      25'833      1'888      357      107        0
               'max_lp':          1     102'611      2'214    3'009      789      122
  'objective_lb_search':          1     122'699      3'390    6'838        0       95
              'probing':          1      26'160      5'222      257        4        1
         'pseudo_costs':          1     154'873      2'051    4'274    1'549      185
        'quick_restart':          1      50'259      4'224    1'575        1       19
        'reduced_costs':          1     106'902      2'028    1'677      783       85

Lp dimension                 Final dimension of first component
           'default_lp':  1028 rows, 664 columns, 16991 entries
       'lb_tree_search':  1746 rows, 708 columns, 67518 entries
               'max_lp':   821 rows, 708 columns, 13492 entries
  'objective_lb_search':   913 rows, 664 columns, 11357 entries
              'probing':  2464 rows, 664 columns, 91477 entries
         'pseudo_costs':    729 rows, 708 columns, 8356 entries
        'quick_restart':  1341 rows, 664 columns, 27739 entries
        'reduced_costs':  1016 rows, 708 columns, 19966 entries

Lp debug                  CutPropag  CutEqPropag  Adjust  Overflow     Bad  BadScaling
           'default_lp':          0            4   4'386         0  22'334           0
       'lb_tree_search':          0            0     463         0  63'061           0
               'max_lp':          0            0   3'917         0  25'197           0
  'objective_lb_search':          0            0   6'927         0  13'974           0
              'probing':          0            1     259         0  55'583           0
         'pseudo_costs':          0            0   5'999         0   9'787           0
        'quick_restart':          0            0   1'594         0  35'951           0
        'reduced_costs':          0            0   2'544         0  31'958           0

Lp pool                   Constraints  Updates  Simplif  Merged  Shortened  Split  Strengthened    Cuts/Call
           'default_lp':        5'548      227       22       0          0    156           164  4'352/9'356
       'lb_tree_search':        3'254      616       12       0          0    790            29  1'888/3'737
               'max_lp':        3'580      254       12       0          0    167            20  2'214/4'153
  'objective_lb_search':        4'586       94       32       0          0     49           181  3'390/7'610
              'probing':        6'418      461        2       0          0      0           231  5'222/9'924
         'pseudo_costs':        3'417       83       21       0          0     17            22  2'051/3'864
        'quick_restart':        5'420      349       21       0          0    234           145  4'224/8'717
        'reduced_costs':        3'394      353       18       0          0    268            19  2'028/3'408

Lp Cut            lb_tree_search  objective_lb_search  default_lp  pseudo_costs  quick_restart  reduced_costs  probing  max_lp
          CG_FF:               5                   35          61            16             27             13       38      15
           CG_K:               2                   29          52             6             27              6       32       8
          CG_KL:               3                    9           3             -              6              -        4       5
           CG_R:              13                   60          64            44             47             33       49      33
          CG_RB:              28                   86          97            82             43             70       60      52
         CG_RBP:              14                   67          64            11             36             16       36      35
         Clique:               1                    -           -             -              -              2        -       -
             IB:              10                  783         917         1'193            592            697      410     729
       MIR_1_FF:             172                  337         426            42            567            113      792     108
        MIR_1_K:               7                   99         114            13            104             10      125      18
       MIR_1_KL:               3                   48          37             2             44              6       57       3
        MIR_1_R:               1                   14           9             2              4              1       17       4
       MIR_1_RB:              13                   25          31            12             29             24       32      18
      MIR_1_RBP:              47                   57          86             1             54              8      118      18
       MIR_2_FF:              72                  199         225            57            198             62      279      73
        MIR_2_K:              37                   84         102             7             96             11      118      25
       MIR_2_KL:               7                   32          38             -             38              2       30       1
        MIR_2_R:               6                   14          17             8             12              1       23       2
       MIR_2_RB:              33                   52          68            34             42             26       41      33
      MIR_2_RBP:              33                   46          66             3             53             14       61      12
       MIR_3_FF:              65                  115         151            50            148             70      155      68
        MIR_3_K:              56                   63         101            15            126             48      145      37
       MIR_3_KL:               4                    9          17             -             18              3       19       1
        MIR_3_R:               2                   12          23            10             24              4       19       4
       MIR_3_RB:              30                   30          48            35             52             29       46      35
      MIR_3_RBP:              43                   40          69             7             61             27       87      21
       MIR_4_FF:              64                   79         110            38            129             64      131      58
        MIR_4_K:              73                   63          83            17            103             38      138      39
       MIR_4_KL:               2                   10           9             2              9              -        8       1
        MIR_4_R:               9                   16          15             6             24              4       16      13
       MIR_4_RB:              35                   31          29            26             35             46       29      45
      MIR_4_RBP:              47                   46          65             7             65             18      108      23
       MIR_5_FF:              60                   45          66            25             88             41       83      46
        MIR_5_K:              97                   45          80            12            103             52      113      56
       MIR_5_KL:               2                    3           7             -              6              2        9       -
        MIR_5_R:               6                   13           7             2             16              5       12       7
       MIR_5_RB:              47                   36          19            25             21             30       24      38
      MIR_5_RBP:              48                   34          58             9             67             31      112      42
       MIR_6_FF:              50                   40          46            24             75             31       52      49
        MIR_6_K:              76                   48          64            17             97             33      100      63
       MIR_6_KL:               2                    3           2             2              8              -        9       3
        MIR_6_R:               8                   10           5             4             17              7        5       2
       MIR_6_RB:              40                   30          19            20             29             28       20      37
      MIR_6_RBP:              45                   38          48            11             57             18       87      45
   ZERO_HALF_FF:               4                   57          91            20             60              9       57      13
    ZERO_HALF_K:               -                   20          25             -             29              -       22       -
   ZERO_HALF_KL:               -                    7          16             -             10              -        9       1
    ZERO_HALF_R:             376                  301         464           113            578            245    1'010     241
   ZERO_HALF_RB:              71                   41          94            16             96             22      179      26
  ZERO_HALF_RBP:              19                   29          44             5             54              8       96       8

LNS stats           Improv/Calls  Closed  Difficulty  TimeLimit
  'graph_arc_lns':          2/42     45%    2.93e-01       0.10
  'graph_cst_lns':          1/37     51%    8.10e-01       0.10
  'graph_dec_lns':          2/37     49%    7.84e-01       0.10
  'graph_var_lns':          4/41     49%    6.63e-01       0.10
   'lb_relax_lns':           1/9     56%    6.48e-01       0.50
      'rins/rens':         33/40     48%    5.34e-01       0.10
    'rnd_cst_lns':          2/39     56%    8.98e-01       0.10
    'rnd_var_lns':          2/39     49%    7.69e-01       0.10

LS stats                                    Batches  Restarts/Perturbs  LinMoves  GenMoves  CompoundMoves  Bactracks  WeightUpdates  ScoreComputed
                         'ls_lin_restart':        3                  3    52'509         0              0          0         35'037      1'816'238
                'ls_lin_restart_compound':        4                  4         0    86'329          6'723     39'793            504      1'987'588
        'ls_lin_restart_compound_perturb':        5                  5         0   110'272          9'829     50'201          2'433      2'643'086
                   'ls_lin_restart_decay':        5                  4   106'658         0              0          0          3'060      2'217'436
          'ls_lin_restart_decay_compound':        2                  2         0    38'453          5'645     16'402             77        956'380
  'ls_lin_restart_decay_compound_perturb':        2                  2         0    39'443          5'805     16'816             68      1'017'757
           'ls_lin_restart_decay_perturb':        6                  6   127'432         0              0          0          3'724      2'623'907
                 'ls_lin_restart_perturb':        7                  7   118'887         0              0          0         71'520      4'138'484
                             'ls_restart':        4                  4    68'775         0              0          0         37'324      2'471'789
                    'ls_restart_compound':        4                  4         0    88'052          9'047     39'494         13'031      2'120'226
            'ls_restart_compound_perturb':        4                  4         0    87'074          7'238     39'911            640      2'054'686
                       'ls_restart_decay':        9                  9   191'189         0              0          0          5'567      3'946'241
              'ls_restart_decay_compound':        3                  3         0    59'682          9'779     24'949            110      1'467'509
      'ls_restart_decay_compound_perturb':        3                  3         0    57'401          9'571     23'907            117      1'368'821
               'ls_restart_decay_perturb':        1                  1    21'337         0              0          0            626        440'149
                     'ls_restart_perturb':        5                  5    84'941         0              0          0         24'199      2'900'130

Solutions (3)          Num   Rank
     'complete_hint':    2  [0,1]
     'graph_var_lns':    2  [1,2]
  'lb_relax_lns_int':    2  [2,3]

Objective bounds     Num
    'am1_presolve':    1
      'default_lp':    1
  'initial_domain':    1
  'lb_tree_search':   70
          'max_lp':    6
    'pseudo_costs':    3
   'reduced_costs':    4

Solution repositories    Added  Queried  Synchro
    'alternative_path':     17       76       17
      'best_solutions':     39      301       37
   'fj solution hints':      0        0        0
        'lp solutions':     91       40       76
                'pump':      0        0

Improving bounds shared    Num  Sym
   'quick_restart_no_lp':    6    0

Clauses shared            #Exported  #Imported  #BinaryRead  #BinaryTotal
                 'core':        288        463            7             7
           'default_lp':         19        619            7             7
       'lb_tree_search':          1        784            7             7
               'max_lp':         25        767            7             7
                'no_lp':         79        693            7             7
  'objective_lb_search':         18        618            7             7
              'probing':          0          0            0             7
         'pseudo_costs':         17        637            7             7
        'quick_restart':         33        758            7             7
  'quick_restart_no_lp':        624        213            7             7
        'reduced_costs':         37        759            7             7

LRAT_status: NA
[Scaling] scaled_objective_bound: 1680.18 corrected_bound: 1680.18 delta: 4.23091e-07
CpSolverResponse summary:
status: FEASIBLE
objective: 1806.844516916113
best_bound: 1680.176790785937
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 15.0165
usertime: 15.0165
deterministic_time: 116.09
gap_integral: 563.723
solution_fingerprint: 0x1c5bf311b8641372

[14]:
../_images/notebooks_b03_MILPRouter_24_1.svg