Example – IEA Wind 740-10-MW

IEA Wind TCP Task 55: The IEA Wind 740-10-MW Reference Offshore Wind Plants

https://www.osti.gov/biblio/2333634/

This notebook uses optiwindnet to route the collector system cables for the two wind power plants presented in the report above.

[ ]:
from optiwindnet.interarraylib import G_from_S, as_normalized
from optiwindnet.importer import L_from_windIO
from optiwindnet.svg import svgplot
from optiwindnet.mesh import make_planar_embedding
from optiwindnet.interface import assign_cables
from optiwindnet.MILP import solver_factory, ModelOptions
from optiwindnet.baselines.hgs import hgs_cvrp

Load layouts from files

[2]:
L_reg = L_from_windIO('data/IEA37_Borssele_Regular_System.yaml')
[3]:
L_irr = L_from_windIO('data/IEA37_Borssele_Irregular_System.yaml')
[4]:
svgplot(L_reg)
[4]:
../_images/notebooks_04-IEA_Wind_740-10-MW_Reference_Offshore_Wind_Plants_7_0.svg
[5]:
L_reg.graph.keys()
[5]:
dict_keys(['T', 'R', 'B', 'VertexC', 'name', 'handle', 'border'])
[6]:
R, T, B, VertexC = (L_reg.graph[key] for key in 'R T B VertexC'.split())
[7]:
R, T, B
[7]:
(1, 74, 6)
[8]:
svgplot(L_irr)
[8]:
../_images/notebooks_04-IEA_Wind_740-10-MW_Reference_Offshore_Wind_Plants_11_0.svg

Additional design parameters

[9]:
cable_costs = [206, 287, 406]  # [€/m] Costs per distance for each cable type
turbines_per_cable = [3, 5, 7]
[10]:
cables = [(capacity, cost) for capacity, cost in zip(turbines_per_cable, cable_costs)]
capacity = max(turbines_per_cable)

Choose the OR-Tools CP-Sat solver

[11]:
solver = solver_factory('ortools')

Regular layout

[12]:
P, A = make_planar_embedding(L_reg)
[ ]:
# This meta-heuristic call is iterative and the time_limit applies
# to each iteration. About 97% of instances use a single iteration.
S_warm = hgs_cvrp(as_normalized(A), capacity=capacity, time_limit=1)

Check the total length of the warm-start solution:

[14]:
G_reg_warm = G_from_S(S_warm, A)
G_reg_warm.size(weight='length')
[14]:
139656.47909362937
[15]:
svgplot(A)
[15]:
../_images/notebooks_04-IEA_Wind_740-10-MW_Reference_Offshore_Wind_Plants_22_0.svg
[16]:
svgplot(G_reg_warm)
[16]:
../_images/notebooks_04-IEA_Wind_740-10-MW_Reference_Offshore_Wind_Plants_23_0.svg
[17]:
solver.set_problem(
    P, A,
    capacity=G_reg_warm.graph['capacity'],
    model_options=ModelOptions(
        topology="branched",
        feeder_route="segmented",
        feeder_limit="unlimited",
    ),
    warmstart=S_warm,
)
[18]:
# required to get the log inside the notebook (goes only to console otherwise)
solver.solver.log_callback = print

solver.solve(
    mip_gap=0.005,
    time_limit=5,
    verbose=True,
)

Starting CP-SAT solver v9.14.6206
Parameters: max_time_in_seconds: 5 log_search_progress: true relative_gap_limit: 0.005
Setting number of workers to 16

Initial optimization model '': (model_fingerprint: 0xe8b468b99ad35d50)
#Variables: 1'536 (#bools: 768 in floating point objective) (1'388 primary variables)
  - 768 Booleans in [0,1]
  - 694 in [0,6]
  - 74 in [0,7]
#kAtMostOne: 613 (#literals: 1'918)
#kLinear1: 1'536 (#enforced: 1'536)
#kLinear3: 2
#kLinearN: 223 (#terms: 3'834)

Starting presolve at 0.00s
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 768 terms with magnitude in [440.736, 14559.3] average = 2868.79
[Scaling] Objective coefficient relative error: 6.70633e-10
[Scaling] Objective worst-case absolute error: 7.704e-05
[Scaling] Objective scaling factor: 1.04858e+06
  4.78e-04s  0.00e+00d  [DetectDominanceRelations]
  9.95e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  9.89e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::ExtractEncodingFromLinear] #potential_supersets=687
  5.17e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateColumns]
  5.64e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 5'789 nodes and 11'056 arcs.
[Symmetry] Symmetry computation done. time: 0.0016034 dtime: 0.00140614
  3.96e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  1.25e-02s  3.70e-03d  [operations_research::sat::CpModelPresolver::Probe] #probed=1'536
  7.03e-04s  3.94e-04d  [MaxClique] Merged 613(1'918 literals) into 303(1'298 literals) at_most_ones.
  4.25e-04s  0.00e+00d  [DetectDominanceRelations]
  4.86e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  6.91e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::ProcessAtMostOneAndLinear]
  3.80e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
  4.07e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  7.86e-04s  1.30e-05d  [operations_research::sat::CpModelPresolver::DetectDominatedLinearConstraints] #relevant_constraints=151 #num_inclusions=75
  6.57e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDifferentVariables]
  9.32e-03s  3.02e-04d  [operations_research::sat::CpModelPresolver::ProcessSetPPC] #relevant_constraints=379 #num_inclusions=377
  1.05e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::FindAlmostIdenticalLinearConstraints]
  8.70e-04s  2.40e-04d  [operations_research::sat::CpModelPresolver::FindBigAtMostOneAndLinearOverlap]
  5.14e-04s  2.83e-04d  [operations_research::sat::CpModelPresolver::FindBigVerticalLinearOverlap]
  9.89e-05s  1.15e-05d  [operations_research::sat::CpModelPresolver::FindBigHorizontalLinearOverlap] #linears=148
  4.41e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::MergeClauses]
  6.13e-04s  0.00e+00d  [DetectDominanceRelations]
  4.18e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  4.44e-04s  0.00e+00d  [DetectDominanceRelations]
  4.42e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  5.49e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateColumns]
  3.42e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 5'168 nodes and 9'048 arcs.
[Symmetry] Symmetry computation done. time: 0.0011218 dtime: 0.00121764
[SAT presolve] num removable Booleans: 0 / 768
[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] [0.0012302s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [0.0015415s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
  4.88e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  1.25e-02s  3.42e-03d  [operations_research::sat::CpModelPresolver::Probe] #probed=1'536
  7.36e-04s  3.83e-04d  [MaxClique]
  4.50e-04s  0.00e+00d  [DetectDominanceRelations]
  4.40e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  4.01e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::ProcessAtMostOneAndLinear]
  3.71e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
  3.65e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  5.37e-04s  9.77e-06d  [operations_research::sat::CpModelPresolver::DetectDominatedLinearConstraints] #relevant_constraints=150 #num_inclusions=74
  5.20e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDifferentVariables]
  2.75e-04s  6.39e-06d  [operations_research::sat::CpModelPresolver::ProcessSetPPC] #relevant_constraints=378
  6.69e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::FindAlmostIdenticalLinearConstraints]
  7.68e-04s  2.37e-04d  [operations_research::sat::CpModelPresolver::FindBigAtMostOneAndLinearOverlap]
  5.57e-04s  2.83e-04d  [operations_research::sat::CpModelPresolver::FindBigVerticalLinearOverlap]
  2.45e-04s  1.15e-05d  [operations_research::sat::CpModelPresolver::FindBigHorizontalLinearOverlap] #linears=148
  4.65e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::MergeClauses]
  4.55e-04s  0.00e+00d  [DetectDominanceRelations]
  4.67e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  6.90e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::ExpandObjective] #entries=7'628 #tight_variables=768 #tight_constraints=74

Presolve summary:
  - 0 affine relations were detected.
  - rule 'TODO linear inclusion: superset is equality' was applied 149 times.
  - rule 'at_most_one: transformed into max clique.' was applied 1 time.
  - rule 'deductions: 1536 stored' was applied 1 time.
  - rule 'exactly_one: simplified objective' was applied 74 times.
  - rule 'linear: positive equal one' was applied 74 times.
  - rule 'objective: shifted cost with exactly ones' was applied 74 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 74 times.
  - rule 'setppc: reduced linear coefficients' was applied 73 times.
  - rule 'setppc: removed trivial linear constraint' was applied 1 time.
  - rule 'variables: detect fully reified value encoding' was applied 768 times.
  - rule 'variables: detect half reified value encoding' was applied 1'536 times.

Presolved optimization model '': (model_fingerprint: 0xfbc720d638f30980)
#Variables: 1'536 (#bools: 694 in objective) (1'388 primary variables)
  - 768 Booleans in [0,1]
  - 694 in [0,6]
  - 74 in [0,7]
#kAtMostOne: 266 (#literals: 1'224)
#kBoolAnd: 37 (#enforced: 37) (#literals: 74)
#kExactlyOne: 74 (#literals: 768)
#kLinear1: 1'536 (#enforced: 1'536)
#kLinear3: 2
#kLinearN: 148 (#terms: 2'298)
[Symmetry] Graph for symmetry has 5'168 nodes and 9'048 arcs.
[Symmetry] Symmetry computation done. time: 0.0007469 dtime: 0.00121832

Preloading model.
#Bound   0.12s best:inf   next:[123610.947,1028471.61] initial_domain
#1       0.12s best:139656.479 next:[123610.947,139656.479] complete_hint
#Model   0.13s var:1536/1536 constraints:2063/2063

Starting search at 0.13s 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.17s best:139650.831 next:[123610.947,139650.831] graph_cst_lns (d=5.00e-01 s=15 t=0.10 p=0.00 stall=0 h=base)
#Bound   0.18s best:139650.831 next:[123610.951,139650.831] am1_presolve (num_literals=694 num_am1=20 increase=4458 work_done=2551)
#Bound   0.19s best:139650.831 next:[131572.567,139650.831] default_lp
#Bound   0.20s best:139650.831 next:[131572.567,139650.831] pseudo_costs
#Bound   0.20s best:139650.831 next:[131572.568,139650.831] reduced_costs
#3       0.20s best:139645.183 next:[131572.568,139645.183] graph_arc_lns (d=5.00e-01 s=14 t=0.10 p=0.00 stall=0 h=base) [combined with: graph_cst_lns (d=5.0...]
#Bound   0.23s best:139645.183 next:[131572.568,139645.183] pseudo_costs
#Bound   0.24s best:139645.183 next:[135687.687,139645.183] max_lp
#Model   0.24s var:1526/1536 constraints:2053/2063
#Bound   0.37s best:139645.183 next:[135848.957,139645.183] max_lp
#Bound   0.38s best:139645.183 next:[135867.085,139645.183] lb_tree_search
#Bound   0.52s best:139645.183 next:[136118.437,139645.183] max_lp
#Model   0.60s var:1512/1536 constraints:2038/2063
#Model   0.72s var:1504/1536 constraints:2030/2063
#Bound   0.77s best:139645.183 next:[136183.946,139645.183] max_lp
#Bound   1.01s best:139645.183 next:[136221.036,139645.183] max_lp
#Model   1.02s var:1478/1536 constraints:2003/2063
#Bound   1.59s best:139645.183 next:[136259.222,139645.183] max_lp
#Bound   1.91s best:139645.183 next:[136274.833,139645.183] pseudo_costs
#Bound   2.23s best:139645.183 next:[136397.153,139645.183] objective_lb_search
#Model   2.25s var:1474/1536 constraints:1999/2063
#Bound   2.39s best:139645.183 next:[136402.87,139645.183] max_lp
#Bound   2.64s best:139645.183 next:[136458.793,139645.183] objective_lb_search
#Bound   2.71s best:139645.183 next:[136520.133,139645.183] objective_lb_search
#Bound   3.33s best:139645.183 next:[136532.529,139645.183] objective_lb_search
#Bound   3.37s best:139645.183 next:[136538.749,139645.183] objective_lb_search
#Model   3.77s var:1466/1536 constraints:1990/2063
#Bound   3.85s best:139645.183 next:[136554.192,139645.183] objective_lb_search
#Bound   3.92s best:139645.183 next:[136563.053,139645.183] objective_lb_search
#Bound   4.48s best:139645.183 next:[136585.874,139645.183] objective_lb_search
#Bound   4.54s best:139645.183 next:[136590.078,139645.183] objective_lb_search

Task timing                                n [     min,      max]      avg      dev     time         n [     min,      max]      avg      dev    dtime
                           'core':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         1 [   2.42s,    2.42s]    2.42s   0.00ns    2.42s
                     'default_lp':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         1 [337.50ms, 337.50ms] 337.50ms   0.00ns 337.50ms
               'feasibility_pump':         3 [ 15.84ms,    1.23s] 793.46ms 551.50ms    2.38s         2 [464.60ms, 578.38ms] 521.49ms  56.89ms    1.04s
                             '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':         8 [ 49.75ms, 573.79ms] 262.85ms 224.85ms    2.10s         8 [  1.41ms, 100.13ms]  41.12ms  45.75ms 328.94ms
                  'graph_cst_lns':         8 [ 44.16ms, 543.94ms] 259.04ms 195.92ms    2.07s         8 [ 53.16us, 100.07ms]  50.93ms  45.92ms 407.48ms
                  'graph_dec_lns':        18 [  2.25ms, 557.93ms] 128.16ms 163.39ms    2.31s        13 [ 10.00ns, 100.11ms]  32.55ms  45.14ms 423.11ms
                  'graph_var_lns':        10 [ 15.14ms, 441.92ms] 202.70ms 154.72ms    2.03s        10 [ 10.00ns, 100.09ms]  48.01ms  45.82ms 480.12ms
                   'lb_relax_lns':         2 [650.39ms,    2.01s]    1.33s 677.48ms    2.66s         2 [121.86ms, 546.70ms] 334.28ms 212.42ms 668.56ms
                 'lb_tree_search':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                             'ls':        11 [160.13ms, 230.66ms] 191.10ms  21.16ms    2.10s        11 [ 74.84ms, 100.03ms]  97.73ms   7.24ms    1.07s
                         'ls_lin':        11 [175.89ms, 219.00ms] 191.96ms  14.09ms    2.11s        11 [100.01ms, 100.02ms] 100.01ms   4.08us    1.10s
                         'max_lp':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                          'no_lp':         1 [   4.87s,    4.87s]    4.87s   0.00ns    4.87s         1 [   1.65s,    1.65s]    1.65s   0.00ns    1.65s
            'objective_lb_search':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                        'probing':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         1 [307.40ms, 307.40ms] 307.40ms   0.00ns 307.40ms
                   'pseudo_costs':         1 [   4.86s,    4.86s]    4.86s   0.00ns    4.86s         1 [694.96ms, 694.96ms] 694.96ms   0.00ns 694.96ms
                  'quick_restart':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         1 [850.90ms, 850.90ms] 850.90ms   0.00ns 850.90ms
            'quick_restart_no_lp':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         1 [   1.83s,    1.83s]    1.83s   0.00ns    1.83s
                  'reduced_costs':         1 [   4.88s,    4.88s]    4.88s   0.00ns    4.88s         1 [928.94ms, 928.94ms] 928.94ms   0.00ns 928.94ms
                      'rins/rens':         9 [  1.15ms, 539.63ms] 254.58ms 212.43ms    2.29s         8 [424.48us, 100.30ms]  54.63ms  44.52ms 437.05ms
                    'rnd_cst_lns':         9 [ 22.01ms, 425.92ms] 233.05ms 155.84ms    2.10s         9 [ 10.00ns, 100.12ms]  48.81ms  43.76ms 439.33ms
                    'rnd_var_lns':        10 [ 21.74ms, 463.24ms] 218.63ms 167.15ms    2.19s        10 [190.00ns, 100.08ms]  50.28ms  47.33ms 502.80ms

Search stats                        Bools  Conflicts  Branches  Restarts  BoolPropag  IntegerPropag
                           'core':    788     73'118   161'943     6'673   1'232'813      3'308'928
                     'default_lp':    768         10     1'710     1'541      12'477         43'516
                      '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':    768          0     1'540     1'537      11'763         39'149
                         'max_lp':    768          0     1'536     1'536      11'765         39'166
                          'no_lp':    768     21'372    50'323     9'599   1'576'471      6'321'994
            'objective_lb_search':    768          0     1'574     1'544      11'830         38'704
                        'probing':    769         11     1'700     1'541      12'532         43'686
                   'pseudo_costs':    768         20     1'849     1'537      13'367         49'101
                  'quick_restart':    775         20     1'911     1'538      13'152         47'958
            'quick_restart_no_lp':    864     13'302   220'952    12'411   1'221'657      5'713'248
                  'reduced_costs':    771        492    11'806     4'619      63'313        404'911

SAT stats                           ClassicMinim  LitRemoved  LitLearned  LitForgotten  Subsumed  MClauses  MDecisions  MLitTrue  MSubsumed  MLitRemoved  MReused
                           'core':        68'504     679'993   5'433'878     4'271'203       915       811       6'514         0         54          581       55
                     'default_lp':            10       1'092       2'101             0         0         0           0         0          0            0        0
                      'fs_random':             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
  'fs_random_quick_restart_no_lp':             0           0           0             0         0         0           0         0          0            0        0
                 'lb_tree_search':             0           0           0             0         0         0           0         0          0            0        0
                         'max_lp':             0           0           0             0         0         0           0         0          0            0        0
                          'no_lp':        20'485   1'398'840   1'553'870       934'683       192     1'014      10'946         0         59        1'100       51
            'objective_lb_search':             0           0           0             0         0         0           0         0          0            0        0
                        'probing':            11       1'763       2'181             0         0         0           0         0          0            0        0
                   'pseudo_costs':            19       1'412       3'283             0         0         0           0         0          0            0        0
                  'quick_restart':            20       2'765       4'067             0         0         0           0         0          0            0        0
            'quick_restart_no_lp':        12'617     435'715   1'065'743       413'840        76     2'127      15'887         0        221        1'956      254
                  'reduced_costs':           461      15'659      83'439             0         3       296       2'656         0          0            0        0

Lp stats                  Component  Iterations  AddedCuts  OPTIMAL  DUAL_F.  DUAL_U.
           'default_lp':          1       8'360      3'392      215        0        1
       'lb_tree_search':          1       2'693      1'725       23        1        0
               'max_lp':          1       2'232      1'764       21        0        0
  'objective_lb_search':          1       5'772      3'700       84        1        0
              'probing':          1       5'665      2'879      189        0        1
         'pseudo_costs':          1       8'109      3'410      221       38        6
        'quick_restart':          1       9'702      2'999      332        1        0
        'reduced_costs':          1      18'621      1'966      809      103       33

Lp dimension                  Final dimension of first component
           'default_lp':  1813 rows, 1462 columns, 20360 entries
       'lb_tree_search':  3225 rows, 1536 columns, 28886 entries
               'max_lp':  3183 rows, 1536 columns, 28706 entries
  'objective_lb_search':  1752 rows, 1462 columns, 22366 entries
              'probing':  1652 rows, 1462 columns, 18315 entries
         'pseudo_costs':  1903 rows, 1536 columns, 20172 entries
        'quick_restart':  1541 rows, 1462 columns, 20347 entries
        'reduced_costs':    860 rows, 1536 columns, 5245 entries

Lp debug                  CutPropag  CutEqPropag  Adjust  Overflow     Bad  BadScaling
           'default_lp':          0            1     206         0  15'660           0
       'lb_tree_search':          0            0      24         0  26'920           0
               'max_lp':          0            0      21         0  25'806           0
  'objective_lb_search':          0            1      71         0  18'471           0
              'probing':          0            0     177         0  15'562           0
         'pseudo_costs':          0            0     251         0  19'082           0
        'quick_restart':          0            0     316         0  12'814           0
        'reduced_costs':          0            0     902         0   4'199           0

Lp pool                   Constraints  Updates  Simplif  Merged  Shortened  Split  Strenghtened    Cuts/Call
           'default_lp':        5'964      183    2'182       0      1'624     76           115  3'392/6'606
       'lb_tree_search':        4'556      354    1'727       0      1'210    219            36  1'725/3'744
               'max_lp':        4'595      296    1'737       0      1'045    245            37  1'764/3'534
  'objective_lb_search':        6'271      191    3'320       1      2'051    137           552  3'700/7'210
              'probing':        5'451      110    1'051       0        271    117            85  2'879/6'009
         'pseudo_costs':        6'239      156    2'739       2      1'871    111           197  3'410/6'316
        'quick_restart':        5'570      119    1'458       1        944     36           132  2'999/6'148
        'reduced_costs':        4'796       27      946       1        603      9            40  1'966/4'093

Lp Cut            pseudo_costs  default_lp  max_lp  quick_restart  reduced_costs  lb_tree_search  probing  objective_lb_search
          CG_FF:            37          53      10             24             41               2       18                   49
           CG_K:            12          17       5              8             32               -       14                   20
          CG_KL:             3           1       -              2              2               -        1                    2
           CG_R:            60          54      19             29             57               9       47                   45
          CG_RB:           126         130      56             80             70              46       96                  109
         CG_RBP:            35          41      19             34             16               8       53                   36
         Clique:             2           -       -              -              1               -        -                    -
             IB:           690         646       -            617            788               2      602                  582
       MIR_1_FF:           135         158      55            152             33              61      140                  169
        MIR_1_K:            16          52       -             33              5               3       39                   39
       MIR_1_KL:            15          26       -             23              -               -       18                   26
        MIR_1_R:             -           4       1              7              3               3        2                   10
       MIR_1_RB:            77         118      33             80             34              37       72                  103
      MIR_1_RBP:            17          84       5             79              2              12       70                   70
       MIR_2_FF:           142         172      86            146             67              96      123                  183
        MIR_2_K:            26          69       2             64             17               6       62                   88
       MIR_2_KL:             5          12       3             23              5               3       13                   19
        MIR_2_R:            15          12       9              8              6               9        4                   14
       MIR_2_RB:           169         139      97            127             80              96      121                  181
      MIR_2_RBP:            24          85      26            102             11              25       93                   97
       MIR_3_FF:           153         108     118            107             57              90       80                  129
        MIR_3_K:            52          76      30             69             20              14       74                  103
       MIR_3_KL:             2           9       3              6              8               3        5                    9
        MIR_3_R:            17          14      12              4              9               9        3                   11
       MIR_3_RB:           168         109     124             92             88             103       69                  113
      MIR_3_RBP:            46          83      24             95             13              23       67                   91
       MIR_4_FF:           117          75      77             60             37              80       58                   90
        MIR_4_K:            63          60      37             45             10              34       52                   75
       MIR_4_KL:             9           5      11              5              6               5        3                    9
        MIR_4_R:            17           4      10              3              6              15        2                    8
       MIR_4_RB:           112          66      80             50             48              86       47                   75
      MIR_4_RBP:            66          51      48             56              4              29       60                   69
       MIR_5_FF:            77          42      64             42             31              55       26                   57
        MIR_5_K:            56          48      37             40             11              59       41                   66
       MIR_5_KL:             9           2      15              2              7               7       11                   13
        MIR_5_R:            10           2       6              2              7               6        -                    4
       MIR_5_RB:            70          30      40             28             32              38       31                   39
      MIR_5_RBP:            55          47      49             48              8              60       59                   55
       MIR_6_FF:            39          24      56             32             16              44       25                   34
        MIR_6_K:            39          51      42             48             11              39       26                   50
       MIR_6_KL:            12          11      16             10              9               8        9                   20
        MIR_6_R:             6           4       5              8              3               7        1                    6
       MIR_6_RB:            50          19      40             16             26              23       26                   29
      MIR_6_RBP:            43          45      49             55              3              59       47                   57
   ZERO_HALF_FF:            36          51      16             33             30              12       37                   55
    ZERO_HALF_K:             5          23       -              9              2               -        9                   14
   ZERO_HALF_KL:             1           1       2              -              3               -        -                    -
    ZERO_HALF_R:           414         358     289            334            162             347      358                  470
   ZERO_HALF_RB:            49          69      28             32             24              41       41                   81
  ZERO_HALF_RBP:            11          32      10             30              5              11       24                   26

LNS stats           Improv/Calls  Closed  Difficulty  TimeLimit
  'graph_arc_lns':           1/8     50%    5.94e-01       0.10
  'graph_cst_lns':           1/8     62%    8.14e-01       0.10
  'graph_dec_lns':          1/13     62%    8.61e-01       0.10
  'graph_var_lns':          0/10     60%    7.79e-01       0.10
   'lb_relax_lns':           1/2     50%    5.38e-01       0.50
      'rins/rens':           2/8     50%    6.58e-01       0.10
    'rnd_cst_lns':           0/9     67%    8.79e-01       0.10
    'rnd_var_lns':          0/10     60%    8.24e-01       0.10

LS stats                                Batches  Restarts/Perturbs  LinMoves  GenMoves  CompoundMoves  Bactracks  WeightUpdates  ScoreComputed
                     'ls_lin_restart':        3                  3    37'802         0              0          0         16'770      1'141'715
    'ls_lin_restart_compound_perturb':        3                  3         0    45'487          4'160     20'658            213      1'132'039
               'ls_lin_restart_decay':        2                  2    29'375         0              0          0            624        594'097
       'ls_lin_restart_decay_perturb':        2                  2    29'348         0              0          0            620        587'875
             'ls_lin_restart_perturb':        1                  1    12'273         0              0          0          4'075        377'334
                         'ls_restart':        1                  1    12'755         0              0          0          3'637        362'026
                'ls_restart_compound':        1                  1         0    15'954          1'382      7'286            103        388'127
        'ls_restart_compound_perturb':        1                  1         0    11'830          1'266      5'282             93        298'670
                   'ls_restart_decay':        3                  3    44'355         0              0          0            954        931'299
  'ls_restart_decay_compound_perturb':        1                  1         0    12'813          2'505      5'153             35        314'737
           'ls_restart_decay_perturb':        3                  3    43'918         0              0          0            897        891'066
                 'ls_restart_perturb':        1                  1    12'024         0              0          0          2'023        324'097

Solutions (3)       Num   Rank
  'complete_hint':    1  [1,1]
  'graph_arc_lns':    1  [3,3]
  'graph_cst_lns':    1  [2,2]

Objective bounds          Num
         'am1_presolve':    1
           'default_lp':    1
       'initial_domain':    1
       'lb_tree_search':    1
               'max_lp':    7
  'objective_lb_search':    9
         'pseudo_costs':    3
        'reduced_costs':    1

Solution repositories    Added  Queried  Synchro
  'feasible solutions':      6      176        4
   'fj solution hints':      0        0        0
        'lp solutions':     47        8       34
                'pump':      3        1

Improving bounds shared    Num  Sym
            'default_lp':   10    0
                'max_lp':   34    0
   'objective_lb_search':   16    0
          'pseudo_costs':   10    0
   'quick_restart_no_lp':   12    0

Clauses shared            Num
                 'core':   11
                'no_lp':  109
              'probing':    4
  'quick_restart_no_lp':  180

[Scaling] scaled_objective_bound: 136590 corrected_bound: 136590 delta: -2.5653e-06
CpSolverResponse summary:
status: FEASIBLE
objective: 139645.18265364
best_bound: 136590.0784747028
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 5.09404
usertime: 5.09404
deterministic_time: 15.9274
gap_integral: 128.141
solution_fingerprint: 0x6aa24a4cea96b19f

[18]:
SolutionInfo(runtime=5.094036200000001, bound=136590.07847470275, objective=139645.18265364, relgap=0.021877619556091465, termination='FEASIBLE')
[19]:
S_reg, G_reg = solver.get_solution()
[20]:
assign_cables(G_reg, cables)
G_reg.size(weight='cost')
[20]:
40714260.58298516
[21]:
svgplot(G_reg)
[21]:
../_images/notebooks_04-IEA_Wind_740-10-MW_Reference_Offshore_Wind_Plants_28_0.svg

Irregular layout

[22]:
P, A = make_planar_embedding(L_irr)
[ ]:
# This meta-heuristic call is iterative and the time_limit applies
# to each iteration. About 97% of instances use a single iteration.
S_warm = hgs_cvrp(as_normalized(A), capacity=capacity, time_limit=3)

Check the total length of the warm-start solution:

[24]:
G_irr_warm = G_from_S(S_warm, A)
G_irr_warm.size(weight='length')
[24]:
136451.2768186806
[25]:
solver.set_problem(
    P, A,
    capacity=G_irr_warm.graph['capacity'],
    model_options=ModelOptions(
        topology="branched",
        feeder_route="segmented",
        feeder_limit="unlimited",
    ),
    warmstart=S_warm,
)
[26]:
# required to get the log inside the notebook (goes only to console otherwise)
solver.solver.log_callback = print

solver.solve(
    mip_gap=0.005,
    time_limit=300,
    verbose=True,
)

Starting CP-SAT solver v9.14.6206
Parameters: max_time_in_seconds: 300 log_search_progress: true relative_gap_limit: 0.005
Setting number of workers to 16

Initial optimization model '': (model_fingerprint: 0xdce7638cf32cc953)
#Variables: 1'192 (#bools: 596 in floating point objective) (1'044 primary variables)
  - 596 Booleans in [0,1]
  - 522 in [0,6]
  - 74 in [0,7]
#kAtMostOne: 419 (#literals: 1'216)
#kLinear1: 1'192 (#enforced: 1'192)
#kLinear2: 4
#kLinear3: 5
#kLinearN: 216 (#terms: 2'957)

Starting presolve at 0.00s
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 596 terms with magnitude in [539.378, 15073.7] average = 3460.13
[Scaling] Objective coefficient relative error: 4.51281e-10
[Scaling] Objective worst-case absolute error: 7.28067e-05
[Scaling] Objective scaling factor: 1.04858e+06
  4.10e-04s  0.00e+00d  [DetectDominanceRelations]
  8.19e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  8.48e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::ExtractEncodingFromLinear] #potential_supersets=493
  4.09e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateColumns]
  1.29e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 4'413 nodes and 8'226 arcs.
[Symmetry] Symmetry computation done. time: 0.0012099 dtime: 0.00080437
  5.65e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  8.55e-03s  2.33e-03d  [operations_research::sat::CpModelPresolver::Probe] #probed=1'192
  6.29e-04s  2.25e-04d  [MaxClique] Merged 419(1'216 literals) into 234(846 literals) at_most_ones.
  5.64e-04s  0.00e+00d  [DetectDominanceRelations]
  4.30e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  6.40e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::ProcessAtMostOneAndLinear]
  3.41e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
  3.64e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  9.90e-04s  1.01e-05d  [operations_research::sat::CpModelPresolver::DetectDominatedLinearConstraints] #relevant_constraints=151 #num_inclusions=75
  5.29e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDifferentVariables]
  6.09e-03s  1.92e-04d  [operations_research::sat::CpModelPresolver::ProcessSetPPC] #relevant_constraints=310 #num_inclusions=308
  2.52e-04s  2.00e-07d  [operations_research::sat::CpModelPresolver::FindAlmostIdenticalLinearConstraints] #num_tested_pairs=4
  5.03e-04s  1.84e-04d  [operations_research::sat::CpModelPresolver::FindBigAtMostOneAndLinearOverlap]
  3.28e-04s  2.07e-04d  [operations_research::sat::CpModelPresolver::FindBigVerticalLinearOverlap]
  7.76e-05s  8.71e-06d  [operations_research::sat::CpModelPresolver::FindBigHorizontalLinearOverlap] #linears=136
  2.57e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::MergeClauses]
  4.05e-04s  0.00e+00d  [DetectDominanceRelations]
  3.58e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  3.10e-04s  0.00e+00d  [DetectDominanceRelations]
  3.51e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  3.13e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateColumns]
  4.18e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 4'042 nodes and 6'890 arcs.
[Symmetry] Symmetry computation done. time: 0.0006784 dtime: 0.00073496
[SAT presolve] num removable Booleans: 0 / 596
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:76 literals:152 vars:152 one_side_vars:152 simple_definition:0 singleton_clauses:0
[SAT presolve] [0.000489s] clauses:76 literals:152 vars:152 one_side_vars:152 simple_definition:0 singleton_clauses:0
[SAT presolve] [0.0006596s] clauses:76 literals:152 vars:152 one_side_vars:152 simple_definition:0 singleton_clauses:0
  4.34e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  1.01e-02s  2.15e-03d  [operations_research::sat::CpModelPresolver::Probe] #probed=1'192
  5.48e-04s  2.19e-04d  [MaxClique]
  4.33e-04s  0.00e+00d  [DetectDominanceRelations]
  4.96e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  4.68e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::ProcessAtMostOneAndLinear]
  3.06e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraints]
  3.69e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDuplicateConstraintsWithDifferentEnforcements]
  3.47e-04s  7.55e-06d  [operations_research::sat::CpModelPresolver::DetectDominatedLinearConstraints] #relevant_constraints=150 #num_inclusions=74
  3.77e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::DetectDifferentVariables]
  2.92e-04s  4.60e-06d  [operations_research::sat::CpModelPresolver::ProcessSetPPC] #relevant_constraints=309
  5.33e-05s  1.90e-07d  [operations_research::sat::CpModelPresolver::FindAlmostIdenticalLinearConstraints] #num_tested_pairs=2
  4.63e-04s  1.82e-04d  [operations_research::sat::CpModelPresolver::FindBigAtMostOneAndLinearOverlap]
  4.45e-04s  2.07e-04d  [operations_research::sat::CpModelPresolver::FindBigVerticalLinearOverlap]
  7.27e-05s  8.71e-06d  [operations_research::sat::CpModelPresolver::FindBigHorizontalLinearOverlap] #linears=136
  3.65e-05s  0.00e+00d  [operations_research::sat::CpModelPresolver::MergeClauses]
  4.70e-04s  0.00e+00d  [DetectDominanceRelations]
  3.17e-03s  0.00e+00d  [operations_research::sat::CpModelPresolver::PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  4.10e-04s  0.00e+00d  [operations_research::sat::CpModelPresolver::ExpandObjective] #entries=4'968 #tight_variables=596 #tight_constraints=74

Presolve summary:
  - 0 affine relations were detected.
  - rule 'TODO linear inclusion: superset is equality' was applied 149 times.
  - rule 'at_most_one: transformed into max clique.' was applied 1 time.
  - rule 'deductions: 1192 stored' was applied 1 time.
  - rule 'exactly_one: simplified objective' was applied 74 times.
  - rule 'linear: positive equal one' was applied 74 times.
  - rule 'objective: shifted cost with exactly ones' was applied 74 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 74 times.
  - rule 'setppc: reduced linear coefficients' was applied 73 times.
  - rule 'setppc: removed trivial linear constraint' was applied 1 time.
  - rule 'variables: detect fully reified value encoding' was applied 596 times.
  - rule 'variables: detect half reified value encoding' was applied 1'192 times.

Presolved optimization model '': (model_fingerprint: 0xe724ee61a4757ecc)
#Variables: 1'192 (#bools: 522 in objective) (1'044 primary variables)
  - 596 Booleans in [0,1]
  - 522 in [0,6]
  - 74 in [0,7]
#kAtMostOne: 158 (#literals: 694)
#kBoolAnd: 76 (#enforced: 76) (#literals: 152)
#kExactlyOne: 74 (#literals: 596)
#kLinear1: 1'192 (#enforced: 1'192)
#kLinear2: 4
#kLinear3: 1
#kLinearN: 145 (#terms: 1'777)
[Symmetry] Graph for symmetry has 4'042 nodes and 6'890 arcs.
[Symmetry] Symmetry computation done. time: 0.000854 dtime: 0.00073413

Preloading model.
#Bound   0.10s best:inf   next:[93516.0522,1236251.99] initial_domain
#1       0.10s best:136451.277 next:[93516.0522,136451.277] complete_hint
#Model   0.10s var:1192/1192 constraints:1650/1650

Starting search at 0.11s 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.14s best:136451.277 next:[95755.9972,136451.277] am1_presolve (num_literals=522 num_am1=19 increase=2348752631 work_done=1852)
#2       0.14s best:136417.955 next:[95755.9972,136417.955] no_lp [hint] (fixed_bools=0/596)
#Bound   0.16s best:136417.955 next:[104424.449,136417.955] objective_lb_search
#Bound   0.16s best:136417.955 next:[106103.007,136417.955] reduced_costs
#3       0.17s best:136208.855 next:[106103.007,136208.855] quick_restart_no_lp (fixed_bools=0/596)
#Bound   0.18s best:136208.855 next:[106404.863,136208.855] reduced_costs
#Bound   0.18s best:136208.855 next:[127628.142,136208.855] max_lp
#4       0.21s best:135719.133 next:[127628.142,135719.133] quick_restart_no_lp (fixed_bools=0/627)
#Bound   0.30s best:135719.133 next:[128569.256,135719.133] max_lp
#Bound   0.30s best:135719.133 next:[128679.856,135719.133] lb_tree_search
#Bound   0.45s best:135719.133 next:[129365.247,135719.133] lb_tree_search
#5       0.48s best:135538.454 next:[129365.247,135538.454] no_lp (fixed_bools=0/596)
#6       0.50s best:135276.514 next:[129365.247,135276.514] no_lp (fixed_bools=0/596)
#7       0.60s best:134786.792 next:[129365.247,134786.792] quick_restart_no_lp (fixed_bools=0/649)
#Bound   0.65s best:134786.792 next:[129762.735,134786.792] lb_tree_search
#Bound   0.93s best:134786.792 next:[129802.326,134786.792] max_lp
#Model   1.01s var:1180/1192 constraints:1637/1650
#Bound   1.11s best:134786.792 next:[130035.991,134786.792] lb_tree_search
#Bound   1.50s best:134786.792 next:[130300.239,134786.792] max_lp
#Model   1.55s var:1178/1192 constraints:1634/1650
#Model   1.64s var:1174/1192 constraints:1629/1650
#Bound   1.83s best:134786.792 next:[130416.413,134786.792] max_lp
#Model   1.87s var:1170/1192 constraints:1625/1650
#Model   2.70s var:1154/1192 constraints:1609/1650
#Bound   2.78s best:134786.792 next:[130580.174,134786.792] max_lp
#Bound   3.66s best:134786.792 next:[130755.274,134786.792] max_lp
#Model   4.20s var:1152/1192 constraints:1607/1650
#Bound   4.51s best:134786.792 next:[130837.923,134786.792] max_lp
#Model   5.02s var:1148/1192 constraints:1602/1650
#Bound   5.33s best:134786.792 next:[130946.91,134786.792] max_lp
#Bound   6.36s best:134786.792 next:[131030.421,134786.792] max_lp
#Bound   7.25s best:134786.792 next:[131079.92,134786.792] max_lp
#Model   7.42s var:1142/1192 constraints:1596/1650
#Bound   8.20s best:134786.792 next:[131109.275,134786.792] max_lp
#Model   8.26s var:1134/1192 constraints:1588/1650
#Bound   9.14s best:134786.792 next:[131137.765,134786.792] max_lp
#Bound  10.14s best:134786.792 next:[131174.654,134786.792] max_lp
#Bound  11.13s best:134786.792 next:[131243.125,134786.792] max_lp
#Bound  11.99s best:134786.792 next:[131246.586,134786.792] lb_tree_search (nodes=11/11 rc=0 decisions=35 @root=2 restarts=0 lp_iters=[0, 0, 2'154, 820])
#Bound  12.22s best:134786.792 next:[131272.6,134786.792] max_lp
#Model  12.23s var:1128/1192 constraints:1581/1650
#Bound  12.50s best:134786.792 next:[131278.46,134786.792] lb_tree_search (nodes=13/13 rc=0 decisions=50 @root=2 restarts=0 lp_iters=[0, 0, 3'172, 936])
#Bound  12.67s best:134786.792 next:[131278.538,134786.792] lb_tree_search (nodes=13/13 rc=0 decisions=53 @root=2 restarts=0 lp_iters=[0, 0, 3'494, 936])
#Bound  12.72s best:134786.792 next:[131301.084,134786.792] lb_tree_search (nodes=14/14 rc=0 decisions=58 @root=2 restarts=0 lp_iters=[0, 0, 3'598, 953])
#Bound  12.82s best:134786.792 next:[131332.687,134786.792] lb_tree_search (nodes=15/15 rc=0 decisions=61 @root=2 restarts=0 lp_iters=[0, 0, 3'818, 1'015])
#Bound  13.03s best:134786.792 next:[131333.39,134786.792] lb_tree_search (nodes=16/16 rc=0 decisions=66 @root=2 restarts=0 lp_iters=[0, 0, 4'354, 1'073])
#Bound  13.17s best:134786.792 next:[131333.469,134786.792] lb_tree_search (nodes=16/16 rc=0 decisions=68 @root=2 restarts=0 lp_iters=[0, 0, 4'663, 1'073])
#Bound  13.25s best:134786.792 next:[131375.919,134786.792] lb_tree_search (nodes=17/17 rc=0 decisions=71 @root=2 restarts=0 lp_iters=[0, 0, 4'767, 1'174])
#Bound  13.38s best:134786.792 next:[131382.405,134786.792] lb_tree_search (nodes=18/18 rc=0 decisions=74 @root=2 restarts=0 lp_iters=[0, 0, 5'067, 1'223])
#Bound  13.88s best:134786.792 next:[131398.188,134786.792] lb_tree_search (nodes=22/22 rc=2 decisions=99 @root=2 restarts=0 lp_iters=[0, 0, 6'319, 1'327])  [skipped_logs=1]
#Bound  14.98s best:134786.792 next:[131429.042,134786.792] lb_tree_search (nodes=29/29 rc=2 decisions=161 @root=2 restarts=0 lp_iters=[0, 0, 8'878, 1'787])  [skipped_logs=7]
#Bound  16.01s best:134786.792 next:[131442.082,134786.792] lb_tree_search (nodes=35/35 rc=2 decisions=199 @root=2 restarts=0 lp_iters=[0, 0, 11'276, 1'885])  [skipped_logs=7]
#Model  16.59s var:1122/1192 constraints:1575/1650
#Bound  16.96s best:134786.792 next:[131450.366,134786.792] lb_tree_search (nodes=38/38 rc=2 decisions=234 @root=2 restarts=0 lp_iters=[0, 0, 13'549, 2'189])  [skipped_logs=5]
#Bound  17.89s best:134786.792 next:[131455.483,134786.792] lb_tree_search (nodes=44/44 rc=3 decisions=289 @root=2 restarts=0 lp_iters=[0, 0, 16'448, 2'765])  [skipped_logs=7]
#Bound  19.00s best:134786.792 next:[131472.043,134786.792] lb_tree_search (nodes=53/53 rc=4 decisions=377 @root=2 restarts=0 lp_iters=[0, 0, 20'740, 3'018])  [skipped_logs=9]
#Bound  19.85s best:134786.792 next:[131490.854,134786.792] max_lp [skipped_logs=7]
#Model  20.76s var:1118/1192 constraints:1571/1650
#Bound  20.85s best:134786.792 next:[131496.713,134786.792] lb_tree_search (nodes=66/66 rc=6 decisions=492 @root=2 restarts=0 lp_iters=[0, 0, 27'812, 3'603])  [skipped_logs=10]
#Bound  21.05s best:134786.792 next:[131529.762,134786.792] max_lp [skipped_logs=0]
#Model  22.25s var:1112/1192 constraints:1565/1650
#Bound  22.94s best:134786.792 next:[131541.197,134786.792] lb_tree_search (nodes=82/82 rc=8 decisions=608 @root=2 restarts=0 lp_iters=[0, 0, 36'026, 4'113])  [skipped_logs=3]
#Bound  24.00s best:134786.792 next:[131561.404,134786.792] lb_tree_search (nodes=90/90 rc=9 decisions=673 @root=2 restarts=0 lp_iters=[0, 0, 40'053, 4'507])  [skipped_logs=4]
#Model  24.69s var:1110/1192 constraints:1563/1650
#Bound  24.67s best:134786.792 next:[131579.875,134786.792] max_lp [skipped_logs=8]
#Bound  25.92s best:134786.792 next:[131587.832,134786.792] lb_tree_search (nodes=100/100 rc=11 decisions=774 @root=2 restarts=0 lp_iters=[0, 0, 47'496, 4'942])  [skipped_logs=6]
#Bound  26.17s best:134786.792 next:[131589.697,134786.792] lb_tree_search (nodes=101/101 rc=11 decisions=782 @root=2 restarts=0 lp_iters=[0, 0, 48'531, 4'986])  [skipped_logs=1]
#Model  27.16s var:1108/1192 constraints:1561/1650
#Bound  27.20s best:134786.792 next:[131590.211,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=786 @root=3 restarts=0 lp_iters=[0, 0, 48'717, 5'104])  [skipped_logs=0]
#Bound  29.24s best:134786.792 next:[131609.428,134786.792] max_lp
#Model  32.47s var:1106/1192 constraints:1559/1650
#Bound  40.34s best:134786.792 next:[131617.379,134786.792] objective_lb_search
#Model  41.31s var:1100/1192 constraints:1553/1650
#Bound  45.00s best:134786.792 next:[131617.433,134786.792] objective_lb_search
#Bound  50.06s best:134786.792 next:[131617.699,134786.792] objective_lb_search
#Bound  54.54s best:134786.792 next:[131617.71,134786.792] objective_lb_search
#Model  55.65s var:1096/1192 constraints:1549/1650
#Bound  57.22s best:134786.792 next:[131632.975,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=854 @root=12 restarts=0 lp_iters=[0, 0, 53'003, 5'104])
#Bound  57.58s best:134786.792 next:[131650.764,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=860 @root=12 restarts=0 lp_iters=[0, 0, 53'674, 5'104])
#Bound  57.60s best:134786.792 next:[131650.999,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=861 @root=12 restarts=0 lp_iters=[0, 0, 53'705, 5'104])
#Bound  57.65s best:134786.792 next:[131651.27,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=862 @root=12 restarts=0 lp_iters=[0, 0, 53'708, 5'104])
#Bound  57.80s best:134786.792 next:[131656.34,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=865 @root=12 restarts=0 lp_iters=[0, 0, 53'934, 5'104])
#Bound  57.94s best:134786.792 next:[131684.582,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=866 @root=12 restarts=0 lp_iters=[0, 0, 54'234, 5'104])
#Bound  58.25s best:134786.792 next:[131686.95,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=872 @root=12 restarts=0 lp_iters=[0, 0, 54'972, 5'104])
#Bound  58.29s best:134786.792 next:[131687.101,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=873 @root=12 restarts=0 lp_iters=[0, 0, 54'996, 5'104])
#Bound  58.33s best:134786.792 next:[131687.118,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=874 @root=12 restarts=0 lp_iters=[0, 0, 55'000, 5'104])
#Bound  58.40s best:134786.792 next:[131701.483,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=876 @root=12 restarts=0 lp_iters=[0, 0, 55'075, 5'104])
#Bound  58.50s best:134786.792 next:[131707.099,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=878 @root=12 restarts=0 lp_iters=[0, 0, 55'321, 5'104])
#Bound  58.67s best:134786.792 next:[131714.747,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=882 @root=12 restarts=0 lp_iters=[0, 0, 55'716, 5'104])
#Bound  58.76s best:134786.792 next:[131715.572,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=883 @root=12 restarts=0 lp_iters=[0, 0, 55'869, 5'104])
#Bound  58.86s best:134786.792 next:[131717.927,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=886 @root=12 restarts=0 lp_iters=[0, 0, 56'010, 5'104])
#Bound  59.12s best:134786.792 next:[131722.823,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=890 @root=12 restarts=0 lp_iters=[0, 0, 56'666, 5'104])
#Bound  59.44s best:134786.792 next:[131733.671,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=893 @root=12 restarts=0 lp_iters=[0, 0, 57'446, 5'104])
#Bound  59.90s best:134786.792 next:[131742.049,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=897 @root=12 restarts=0 lp_iters=[0, 0, 58'214, 5'104])
#Bound  60.36s best:134786.792 next:[131746.24,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=905 @root=12 restarts=0 lp_iters=[0, 0, 59'088, 5'104])
#Bound  60.60s best:134786.792 next:[131747.132,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=908 @root=12 restarts=0 lp_iters=[0, 0, 59'617, 5'104])
#Bound  60.62s best:134786.792 next:[131747.386,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=909 @root=12 restarts=0 lp_iters=[0, 0, 59'640, 5'104])
#Bound  60.71s best:134786.792 next:[131763.298,134786.792] lb_tree_search (nodes=102/102 rc=11 decisions=912 @root=12 restarts=0 lp_iters=[0, 0, 59'865, 5'104])
#Model  60.91s var:1094/1192 constraints:1547/1650
#Bound  61.39s best:134786.792 next:[131862.503,134786.792] objective_lb_search
#Bound  68.64s best:134786.792 next:[131868.455,134786.792] objective_lb_search
#Model  74.25s var:1092/1192 constraints:1545/1650
#Model  79.94s var:1090/1192 constraints:1543/1650
#Bound  81.34s best:134786.792 next:[131876.248,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=978 @root=17 restarts=1 lp_iters=[0, 0, 65'525, 8'979])
#Bound  81.49s best:134786.792 next:[131879.097,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=979 @root=17 restarts=1 lp_iters=[0, 0, 65'833, 8'979])
#Model  85.34s var:1088/1192 constraints:1541/1650
#Bound  85.34s best:134786.792 next:[131882.899,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=986 @root=18 restarts=1 lp_iters=[0, 0, 66'535, 8'979])
#Bound  88.81s best:134786.792 next:[131893.237,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=991 @root=19 restarts=1 lp_iters=[0, 0, 67'110, 8'979])
#Bound  90.54s best:134786.792 next:[131904.081,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=995 @root=20 restarts=1 lp_iters=[0, 0, 67'615, 8'979])
#Bound  90.75s best:134786.792 next:[131906.288,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=997 @root=20 restarts=1 lp_iters=[0, 0, 67'949, 8'979])
#Bound  90.79s best:134786.792 next:[131908.038,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=998 @root=20 restarts=1 lp_iters=[0, 0, 68'028, 8'979])
#Bound  90.84s best:134786.792 next:[131912.198,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=999 @root=20 restarts=1 lp_iters=[0, 0, 68'112, 8'979])
#Bound  90.96s best:134786.792 next:[131913.036,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1001 @root=20 restarts=1 lp_iters=[0, 0, 68'349, 8'979])
#Model  93.95s var:1086/1192 constraints:1539/1650
#Bound  94.79s best:134786.792 next:[131917.478,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1003 @root=21 restarts=1 lp_iters=[0, 0, 68'586, 8'979])
#Bound  98.44s best:134786.792 next:[131929.466,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1007 @root=22 restarts=1 lp_iters=[0, 0, 69'009, 8'979])
#Model  98.49s var:1084/1192 constraints:1537/1650
#Bound 100.30s best:134786.792 next:[131945.366,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1013 @root=23 restarts=1 lp_iters=[0, 0, 69'700, 8'979])
#Bound 100.39s best:134786.792 next:[131957.711,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1014 @root=23 restarts=1 lp_iters=[0, 0, 69'862, 8'979])
#Bound 102.23s best:134786.792 next:[131958.115,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1016 @root=24 restarts=1 lp_iters=[0, 0, 70'105, 8'979])
#Model 104.06s var:1082/1192 constraints:1535/1650
#Model 105.34s var:1080/1192 constraints:1533/1650
#Model 107.90s var:1078/1192 constraints:1531/1650
#Bound 109.49s best:134786.792 next:[131960.181,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1021 @root=25 restarts=1 lp_iters=[0, 0, 70'785, 8'979])
#Model 111.76s var:1076/1192 constraints:1529/1650
#Bound 113.10s best:134786.792 next:[131970.094,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1025 @root=26 restarts=1 lp_iters=[0, 0, 71'284, 8'979])
#Bound 118.19s best:134786.792 next:[131972.432,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1027 @root=27 restarts=1 lp_iters=[0, 0, 71'533, 8'979])
#Bound 126.62s best:134786.792 next:[131982.926,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1037 @root=29 restarts=1 lp_iters=[0, 0, 72'750, 8'979])
#Model 130.50s var:1074/1192 constraints:1527/1650
#Bound 130.51s best:134786.792 next:[131993.148,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1039 @root=30 restarts=1 lp_iters=[0, 0, 73'005, 8'979])
#Bound 132.46s best:134786.792 next:[132000.046,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1044 @root=31 restarts=1 lp_iters=[0, 0, 73'667, 8'979])
#Bound 134.66s best:134786.792 next:[132002.304,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1046 @root=32 restarts=1 lp_iters=[0, 0, 73'925, 8'979])
#Bound 139.06s best:134786.792 next:[132003.642,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1051 @root=33 restarts=1 lp_iters=[0, 0, 74'552, 8'979])
#Bound 141.09s best:134786.792 next:[132004.361,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1056 @root=34 restarts=1 lp_iters=[0, 0, 75'230, 8'979])
#Bound 141.23s best:134786.792 next:[132006.82,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1058 @root=34 restarts=1 lp_iters=[0, 0, 75'472, 8'979])
#Bound 141.34s best:134786.792 next:[132009.922,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1060 @root=34 restarts=1 lp_iters=[0, 0, 75'680, 8'979])
#Bound 141.42s best:134786.792 next:[132010.389,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1061 @root=34 restarts=1 lp_iters=[0, 0, 75'686, 8'979])
#Bound 141.64s best:134786.792 next:[132014.993,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1064 @root=34 restarts=1 lp_iters=[0, 0, 75'944, 8'979])
#Bound 141.90s best:134786.792 next:[132016.059,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1065 @root=34 restarts=1 lp_iters=[0, 0, 76'304, 8'979])
#Bound 141.97s best:134786.792 next:[132016.063,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1067 @root=34 restarts=1 lp_iters=[0, 0, 76'305, 8'979])
#Bound 142.06s best:134786.792 next:[132028.327,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1069 @root=34 restarts=1 lp_iters=[0, 0, 76'389, 8'979])
#Bound 144.70s best:134786.792 next:[132030.613,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1072 @root=35 restarts=1 lp_iters=[0, 0, 76'929, 8'979])
#Bound 147.22s best:134786.792 next:[132031.042,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1079 @root=36 restarts=1 lp_iters=[0, 0, 77'733, 8'979])
#Bound 147.29s best:134786.792 next:[132036.414,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1080 @root=36 restarts=1 lp_iters=[0, 0, 77'838, 8'979])
#Bound 147.39s best:134786.792 next:[132038.982,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1081 @root=36 restarts=1 lp_iters=[0, 0, 77'923, 8'979])
#Bound 147.76s best:134786.792 next:[132045.649,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1084 @root=36 restarts=1 lp_iters=[0, 0, 78'404, 8'979])
#Bound 148.15s best:134786.792 next:[132045.652,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1088 @root=36 restarts=1 lp_iters=[0, 0, 78'964, 8'979])
#Bound 148.29s best:134786.792 next:[132048.764,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1092 @root=36 restarts=1 lp_iters=[0, 0, 79'219, 8'979])
#Bound 148.74s best:134786.792 next:[132048.81,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1095 @root=36 restarts=1 lp_iters=[0, 0, 79'865, 8'979])
#Bound 148.86s best:134786.792 next:[132049.222,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1098 @root=36 restarts=1 lp_iters=[0, 0, 79'980, 8'979])
#Bound 149.16s best:134786.792 next:[132068.783,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1102 @root=36 restarts=1 lp_iters=[0, 0, 80'390, 9'149])
#Bound 149.73s best:134786.792 next:[132075.32,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1106 @root=36 restarts=1 lp_iters=[0, 0, 81'245, 9'149])
#Bound 149.92s best:134786.792 next:[132077.062,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1107 @root=36 restarts=1 lp_iters=[0, 0, 81'585, 9'149])
#Bound 150.49s best:134786.792 next:[132079.936,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1114 @root=36 restarts=1 lp_iters=[0, 0, 82'400, 9'149])
#Bound 150.59s best:134786.792 next:[132086.524,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1115 @root=36 restarts=1 lp_iters=[0, 0, 82'570, 9'149])
#Bound 150.91s best:134786.792 next:[132087.71,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1120 @root=36 restarts=1 lp_iters=[0, 0, 83'105, 9'149])
#Bound 153.47s best:134786.792 next:[132088.362,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1123 @root=37 restarts=1 lp_iters=[0, 0, 83'584, 9'149])
#Bound 155.69s best:134786.792 next:[132089.645,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1127 @root=38 restarts=1 lp_iters=[0, 0, 84'064, 9'149])
#Bound 156.18s best:134786.792 next:[132089.662,134786.792] lb_tree_search (nodes=25/25 rc=11 decisions=1133 @root=38 restarts=1 lp_iters=[0, 0, 84'632, 9'149])
#Bound 158.71s best:134786.792 next:[132090.755,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1138 @root=39 restarts=1 lp_iters=[0, 0, 84'972, 9'351])
#Bound 163.62s best:134786.792 next:[132097.811,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1147 @root=40 restarts=1 lp_iters=[0, 0, 85'932, 9'351])
#Bound 167.55s best:134786.792 next:[132100.424,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1151 @root=41 restarts=1 lp_iters=[0, 0, 86'397, 9'351])
#Bound 169.60s best:134786.792 next:[132104.138,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1154 @root=42 restarts=1 lp_iters=[0, 0, 86'992, 9'351])
#Bound 172.00s best:134786.792 next:[132109.988,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1157 @root=43 restarts=1 lp_iters=[0, 0, 87'493, 9'351])
#Model 178.06s var:1072/1192 constraints:1525/1650
#Bound 178.07s best:134786.792 next:[132120.746,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1162 @root=44 restarts=1 lp_iters=[0, 0, 88'148, 9'351])
#Bound 180.10s best:134786.792 next:[132122.829,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1166 @root=45 restarts=1 lp_iters=[0, 0, 88'743, 9'351])
#Bound 185.08s best:134786.792 next:[132125.386,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1173 @root=46 restarts=1 lp_iters=[0, 0, 89'459, 9'351])
#Bound 189.69s best:134786.792 next:[132125.68,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1180 @root=47 restarts=1 lp_iters=[0, 0, 90'272, 9'351])
#Bound 192.01s best:134786.792 next:[132126.484,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1186 @root=48 restarts=1 lp_iters=[0, 0, 91'055, 9'351])
#Bound 192.09s best:134786.792 next:[132126.485,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1187 @root=48 restarts=1 lp_iters=[0, 0, 91'056, 9'351])
#Bound 192.18s best:134786.792 next:[132130.223,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1189 @root=48 restarts=1 lp_iters=[0, 0, 91'138, 9'351])
#Bound 192.72s best:134786.792 next:[132134.463,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1196 @root=48 restarts=1 lp_iters=[0, 0, 91'852, 9'351])
#Bound 199.59s best:134786.792 next:[132136.866,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1199 @root=49 restarts=1 lp_iters=[0, 0, 92'402, 9'351])
#Model 199.68s var:1070/1192 constraints:1523/1650
#Bound 201.42s best:134786.792 next:[132138.989,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1201 @root=50 restarts=1 lp_iters=[0, 0, 92'645, 9'351])
#Bound 205.85s best:134786.792 next:[132141.527,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1204 @root=51 restarts=1 lp_iters=[0, 0, 93'211, 9'351])
#Bound 210.38s best:134786.792 next:[132144.093,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1210 @root=52 restarts=1 lp_iters=[0, 0, 94'183, 9'351])
#Bound 212.47s best:134786.792 next:[132145.18,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1213 @root=53 restarts=1 lp_iters=[0, 0, 94'718, 9'351])
#Bound 212.52s best:134786.792 next:[132146.182,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1214 @root=53 restarts=1 lp_iters=[0, 0, 94'797, 9'351])
#Bound 215.35s best:134786.792 next:[132149.395,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1221 @root=54 restarts=1 lp_iters=[0, 0, 95'754, 9'351])
#Bound 220.03s best:134786.792 next:[132149.765,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1224 @root=55 restarts=1 lp_iters=[0, 0, 96'217, 9'351])
#Bound 222.48s best:134786.792 next:[132150.934,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1227 @root=56 restarts=1 lp_iters=[0, 0, 96'770, 9'351])
#Bound 225.24s best:134786.792 next:[132151.687,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1234 @root=57 restarts=1 lp_iters=[0, 0, 97'500, 9'351])
#Bound 225.47s best:134786.792 next:[132154.255,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1238 @root=57 restarts=1 lp_iters=[0, 0, 97'867, 9'351])
#Bound 228.09s best:134786.792 next:[132159.41,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1241 @root=58 restarts=1 lp_iters=[0, 0, 98'380, 9'351])
#Bound 232.74s best:134786.792 next:[132160.156,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1247 @root=59 restarts=1 lp_iters=[0, 0, 99'060, 9'351])
#Bound 236.71s best:134786.792 next:[132160.478,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1250 @root=60 restarts=1 lp_iters=[0, 0, 99'599, 9'351])
#Bound 238.93s best:134786.792 next:[132163.023,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1255 @root=61 restarts=1 lp_iters=[0, 0, 100'375, 9'351])
#Bound 239.28s best:134786.792 next:[132163.23,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1261 @root=61 restarts=1 lp_iters=[0, 0, 100'879, 9'351])
#Bound 239.64s best:134786.792 next:[132170.813,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1263 @root=61 restarts=1 lp_iters=[0, 0, 101'568, 9'351])
#Bound 239.91s best:134786.792 next:[132170.941,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1266 @root=61 restarts=1 lp_iters=[0, 0, 101'900, 9'351])
#Bound 240.21s best:134786.792 next:[132171.216,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1268 @root=61 restarts=1 lp_iters=[0, 0, 102'317, 9'351])
#Bound 240.22s best:134786.792 next:[132171.22,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1269 @root=61 restarts=1 lp_iters=[0, 0, 102'322, 9'351])
#Bound 240.30s best:134786.792 next:[132172.407,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1271 @root=61 restarts=1 lp_iters=[0, 0, 102'398, 9'351])
#Bound 240.77s best:134786.792 next:[132179.026,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1278 @root=61 restarts=1 lp_iters=[0, 0, 103'151, 9'351])
#Bound 241.04s best:134786.792 next:[132179.442,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1281 @root=61 restarts=1 lp_iters=[0, 0, 103'676, 9'351])
#Bound 245.83s best:134786.792 next:[132183.908,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1284 @root=62 restarts=1 lp_iters=[0, 0, 104'220, 9'351])
#Bound 250.28s best:134786.792 next:[132189.872,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1291 @root=63 restarts=1 lp_iters=[0, 0, 105'080, 9'351])
#Model 250.33s var:1068/1192 constraints:1521/1650
#Bound 252.39s best:134786.792 next:[132195.148,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1296 @root=64 restarts=1 lp_iters=[0, 0, 105'755, 9'351])
#Bound 252.79s best:134786.792 next:[132195.37,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1300 @root=64 restarts=1 lp_iters=[0, 0, 106'415, 9'351])
#Bound 252.81s best:134786.792 next:[132195.384,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1301 @root=64 restarts=1 lp_iters=[0, 0, 106'419, 9'351])
#Bound 252.87s best:134786.792 next:[132195.396,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1302 @root=64 restarts=1 lp_iters=[0, 0, 106'424, 9'351])
#Bound 252.93s best:134786.792 next:[132196.273,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1304 @root=64 restarts=1 lp_iters=[0, 0, 106'458, 9'351])
#Bound 253.40s best:134786.792 next:[132197.866,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1311 @root=64 restarts=1 lp_iters=[0, 0, 107'255, 9'351])
#Bound 254.09s best:134786.792 next:[132198.034,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1317 @root=64 restarts=1 lp_iters=[0, 0, 108'428, 9'351])
#Bound 258.89s best:134786.792 next:[132200.443,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1320 @root=65 restarts=1 lp_iters=[0, 0, 108'974, 9'351])
#Bound 263.76s best:134786.792 next:[132204.896,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1331 @root=66 restarts=1 lp_iters=[0, 0, 110'024, 9'351])
#Bound 266.12s best:134786.792 next:[132210.427,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1341 @root=67 restarts=1 lp_iters=[0, 0, 110'999, 9'351])
#Bound 266.74s best:134786.792 next:[132212.147,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1344 @root=67 restarts=1 lp_iters=[0, 0, 112'077, 9'351])
#Bound 267.49s best:134786.792 next:[132219.017,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1350 @root=67 restarts=1 lp_iters=[0, 0, 113'388, 9'351])
#Bound 267.90s best:134786.792 next:[132225.19,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1355 @root=67 restarts=1 lp_iters=[0, 0, 114'109, 9'351])
#Bound 268.33s best:134786.792 next:[132227.721,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1357 @root=67 restarts=1 lp_iters=[0, 0, 114'929, 9'351])
#Bound 272.73s best:134786.792 next:[132229.238,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1360 @root=68 restarts=1 lp_iters=[0, 0, 115'468, 9'351])
#Bound 277.16s best:134786.792 next:[132239.922,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1369 @root=69 restarts=1 lp_iters=[0, 0, 116'329, 9'351])
#Bound 281.38s best:134786.792 next:[132245.618,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1372 @root=70 restarts=1 lp_iters=[0, 0, 116'838, 9'351])
#Model 284.81s var:1066/1192 constraints:1519/1650
#Model 285.75s var:1064/1192 constraints:1517/1650
#Bound 285.92s best:134786.792 next:[132246.957,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1383 @root=71 restarts=1 lp_iters=[0, 0, 117'823, 9'351])
#Bound 288.32s best:134786.792 next:[132250.833,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1394 @root=72 restarts=1 lp_iters=[0, 0, 118'837, 9'351])
#Bound 288.39s best:134786.792 next:[132250.834,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1395 @root=72 restarts=1 lp_iters=[0, 0, 118'841, 9'351])
#Bound 288.54s best:134786.792 next:[132250.97,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1398 @root=72 restarts=1 lp_iters=[0, 0, 119'069, 9'351])
#Bound 291.41s best:134786.792 next:[132252.998,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1402 @root=73 restarts=1 lp_iters=[0, 0, 119'601, 9'351])
#Bound 298.11s best:134786.792 next:[132253.357,134786.792] lb_tree_search (nodes=26/26 rc=11 decisions=1411 @root=74 restarts=1 lp_iters=[0, 0, 120'543, 9'351])

Task timing                                n [     min,      max]      avg      dev     time         n [     min,      max]      avg      dev    dtime
                           'core':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   3.37m,    3.37m]    3.37m   0.00ns    3.37m
                     'default_lp':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.30m,    2.30m]    2.30m   0.00ns    2.30m
               'feasibility_pump':       735 [ 12.01ms,    1.05s] 184.56ms  45.79ms    2.26m       734 [ 54.81ms, 362.47ms]  64.98ms  14.22ms   47.70s
                             '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':       387 [  8.77ms,    1.87s] 351.06ms 297.92ms    2.26m       387 [ 73.00ns, 110.70ms]  62.67ms  46.11ms   24.25s
                  'graph_cst_lns':       391 [ 22.26ms,    1.70s] 347.71ms 267.80ms    2.27m       391 [  1.47us, 106.30ms]  61.52ms  44.02ms   24.05s
                  'graph_dec_lns':       395 [  7.72ms,    1.80s] 344.50ms 265.41ms    2.27m       395 [ 10.00ns, 104.56ms]  60.34ms  45.79ms   23.83s
                  'graph_var_lns':       397 [  9.07ms,    1.48s] 343.71ms 259.15ms    2.27m       395 [ 10.00ns, 112.70ms]  63.82ms  45.66ms   25.21s
                   'lb_relax_lns':        95 [177.94ms,    3.92s]    1.46s    1.04s    2.31m        95 [ 28.23ms, 552.88ms] 318.26ms 225.64ms   30.23s
                 'lb_tree_search':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   1.56m,    1.56m]    1.56m   0.00ns    1.56m
                             'ls':       552 [161.16ms, 517.05ms] 245.79ms  35.21ms    2.26m       552 [ 78.64ms, 100.03ms]  99.97ms 908.76us   55.18s
                         'ls_lin':       568 [ 91.48ms, 684.11ms] 238.81ms  35.98ms    2.26m       568 [ 41.45ms, 100.04ms]  99.91ms   2.45ms   56.75s
                         'max_lp':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.33m,    2.33m]    2.33m   0.00ns    2.33m
                          'no_lp':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.90m,    2.90m]    2.90m   0.00ns    2.90m
            'objective_lb_search':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.93m,    2.93m]    2.93m   0.00ns    2.93m
                        'probing':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [  44.06s,   44.06s]   44.06s   0.00ns   44.06s
                   'pseudo_costs':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.38m,    2.38m]    2.38m   0.00ns    2.38m
                  'quick_restart':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.12m,    2.12m]    2.12m   0.00ns    2.12m
            'quick_restart_no_lp':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.52m,    2.52m]    2.52m   0.00ns    2.52m
                  'reduced_costs':         1 [   5.00m,    5.00m]    5.00m   0.00ns    5.00m         1 [   2.17m,    2.17m]    2.17m   0.00ns    2.17m
                      'rins/rens':       518 [857.70us, 800.74ms] 264.88ms 201.10ms    2.29m       441 [ 10.00ns, 100.37ms]  67.46ms  41.95ms   29.75s
                    'rnd_cst_lns':       401 [ 23.36ms,    1.60s] 340.43ms 230.88ms    2.28m       401 [ 34.46us, 102.28ms]  63.15ms  41.45ms   25.32s
                    'rnd_var_lns':       414 [ 13.88ms,    1.14s] 327.61ms 228.95ms    2.26m       412 [ 25.00ns, 102.28ms]  60.87ms  43.00ms   25.08s

Search stats                        Bools  Conflicts   Branches  Restarts   BoolPropag  IntegerPropag
                           'core':  1'178  2'466'198  5'696'568    54'209  211'538'424    209'381'223
                     'default_lp':    733      5'487    136'185    45'604      720'823      2'934'281
                      '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':    596          0     89'182    41'312      285'907      1'458'114
                         'max_lp':    596      4'863     85'590    33'338      362'934      1'945'493
                          'no_lp':    596  2'480'349  3'416'772    97'098  121'947'966    459'734'637
            'objective_lb_search':    694      2'693    145'799    46'794      566'742      2'394'020
                        'probing':    617         13      1'436     1'275        9'337         32'973
                   'pseudo_costs':    596      7'656    101'293    37'458      517'852      2'730'441
                  'quick_restart':    695      1'189    272'004   100'061    1'097'447      4'421'549
            'quick_restart_no_lp':  1'341    628'703  8'246'501   350'306  101'621'988    236'973'563
                  'reduced_costs':    612      6'413    206'617    76'841      704'163      3'892'081

SAT stats                           ClassicMinim  LitRemoved   LitLearned  LitForgotten  Subsumed  MClauses  MDecisions  MLitTrue  MSubsumed  MLitRemoved  MReused
                           'core':     2'011'600  20'819'298  180'660'331   173'363'429    66'566    45'381     890'325         0     10'641      281'324   33'257
                     'default_lp':         5'235     189'103      349'066             0         9    10'711      63'865         0         60          563      571
                      'fs_random':             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
  'fs_random_quick_restart_no_lp':             0           0            0             0         0         0           0         0          0            0        0
                 'lb_tree_search':             0           0            0             0         0     6'192      39'966         0          0            0        0
                         'max_lp':         4'775     216'245      463'069             0         3     5'463      35'742         0         26          335      248
                          'no_lp':     2'437'505  25'176'282  144'491'778   141'587'508    11'126   120'602     622'548         0      6'063       55'064  122'995
            'objective_lb_search':         2'520      86'921       47'770             0        10    11'661      86'858         0        145        1'892    1'142
                        'probing':            11         445        1'269             0         0         0           0         0          0            0        0
                   'pseudo_costs':         7'487     312'275      681'075             0        11     6'562      42'287         0         36          306      186
                  'quick_restart':         1'071      31'896       76'002             0         7    23'300     136'948         0         48          343    2'857
            'quick_restart_no_lp':       587'467  16'103'632   39'683'558    37'215'379     3'476   278'202   1'632'175         1     24'803      236'325   16'013
                  'reduced_costs':         6'299     156'016      704'354             0         1    13'629      78'900         0          0            3    1'906

Lp stats                  Component  Iterations  AddedCuts  OPTIMAL  DUAL_F.  DUAL_U.
           'default_lp':          1     983'025      9'249   21'778        9      268
       'lb_tree_search':          1     195'251      5'930    1'723      647        0
               'max_lp':          1     826'831      9'637   15'389    4'395      257
  'objective_lb_search':          1     904'952      7'349    8'773      139      114
              'probing':          1      53'535      7'165      666       12        0
         'pseudo_costs':          1   1'081'450      9'311   21'148    6'174      370
        'quick_restart':          1     520'289      7'083   10'520       52       99
        'reduced_costs':          1     948'282      8'873   16'623    5'325      341

Lp dimension                  Final dimension of first component
           'default_lp':  1308 rows, 1119 columns, 21854 entries
       'lb_tree_search':  1902 rows, 1192 columns, 74167 entries
               'max_lp':  1320 rows, 1192 columns, 27250 entries
  'objective_lb_search':  1404 rows, 1119 columns, 30539 entries
              'probing':  1912 rows, 1119 columns, 72172 entries
         'pseudo_costs':  1496 rows, 1192 columns, 31012 entries
        'quick_restart':  1549 rows, 1119 columns, 36158 entries
        'reduced_costs':  1301 rows, 1192 columns, 23232 entries

Lp debug                  CutPropag  CutEqPropag  Adjust  Overflow      Bad  BadScaling
           'default_lp':          0           13  22'009         0  129'693           0
       'lb_tree_search':          0            6   2'370         0  692'729           0
               'max_lp':          1           63  20'030         0  233'247           0
  'objective_lb_search':          0           14   9'010         0  218'195           0
              'probing':          0           32     669         0  783'192           0
         'pseudo_costs':          0            3  27'665         0  128'025           0
        'quick_restart':          0            4  10'662         0  260'589           0
        'reduced_costs':          0            9  22'262         0  233'285           0

Lp pool                   Constraints  Updates  Simplif  Merged  Shortened   Split  Strenghtened     Cuts/Call
           'default_lp':       11'199    1'068   17'192       1      9'632   2'094           396  9'249/24'003
       'lb_tree_search':        8'175    4'957   16'747       1      8'911   5'375           227  5'930/10'253
               'max_lp':       11'882    2'421   21'780       1     14'224   3'850           217  9'637/23'044
  'objective_lb_search':        9'299    1'558   16'628       1      9'730   2'859           321  7'349/16'764
              'probing':        9'116    2'622   22'634       0      4'385  17'016           258  7'165/12'490
         'pseudo_costs':       11'555    1'547   16'376       2     10'320   2'261           348  9'311/24'563
        'quick_restart':        9'034    1'728   25'511       0     10'657   5'938           260  7'083/16'205
        'reduced_costs':       11'117    2'427   22'534       2      9'702   6'763           441  8'873/20'830

Lp Cut            max_lp  objective_lb_search  default_lp  quick_restart  reduced_costs  pseudo_costs  lb_tree_search  probing
          CG_FF:      35                   31          60             23             65            89               7       20
           CG_K:      24                    9          34              5             31            41               3        6
          CG_KL:       -                    5           4              3              5             4               -        1
           CG_R:      63                   62          85             40             88           139              20       44
          CG_RB:     107                  113         171             82            172           226              48      105
         CG_RBP:      40                   60          62             28             51            95              10       35
         Clique:       5                    -           -              -              4             5               2        -
             IB:   1'359                  903       1'564          1'172          1'352         1'738             354      618
       MIR_1_FF:     391                  372         485            353            367           359             246      426
        MIR_1_K:     133                  103         176             75             75           105              16      115
       MIR_1_KL:      27                   57          58             43             40            32              18       46
        MIR_1_R:      31                   11           9             10             25            23              29        5
       MIR_1_RB:     193                  223         278            136            231           207              82      157
      MIR_1_RBP:     172                  273         259            244            115           117             425      375
      MIR_1_RLT:       3                    -           -              -              4             1               2        -
       MIR_2_FF:     419                  278         467            325            485           437             267      311
        MIR_2_K:     159                  132         208            159            135           201              75      150
       MIR_2_KL:      44                   25          58             23             53            41              19       38
        MIR_2_R:     185                   27          41             19             95            87              26       26
       MIR_2_RB:     377                  257         338            167            472           343             221      255
      MIR_2_RBP:     297                  223         270            229            227           168             123      228
       MIR_3_FF:     359                  255         368            214            386           384             249      229
        MIR_3_K:     243                  262         270            304            130           209             144      304
       MIR_3_KL:      21                   16          23             13             26            37              19       20
        MIR_3_R:     117                   22          35              6             81            62              31       19
       MIR_3_RB:     339                  196         218            119            376           305             170      181
      MIR_3_RBP:     301                  303         309            342            182           188             190      393
       MIR_4_FF:     277                  204         222            181            316           274             198      160
        MIR_4_K:     238                  227         214            256             86           202             169      232
       MIR_4_KL:      11                    9          15              8             20            22              14       14
        MIR_4_R:      73                    9          22              9             49            47              19       12
       MIR_4_RB:     220                  118         152             88            270           217             143      120
      MIR_4_RBP:     320                  302         276            342            142           200             212      340
       MIR_5_FF:     197                  181         174            126            205           180             124      112
        MIR_5_K:     185                  182         180            186             66           159             166      149
       MIR_5_KL:      26                   22          32             19             39            33              22       17
        MIR_5_R:      62                   12          12              5             41            32               7        8
       MIR_5_RB:     159                   60         107             30            167           154              57       65
      MIR_5_RBP:     283                  250         228            271            125           178             242      242
       MIR_6_FF:     140                  125          95             56            118           120              73       76
        MIR_6_K:     148                  144         102            113             58           107             106       89
       MIR_6_KL:      47                   31          60             31             57            46              36       36
        MIR_6_R:      58                    8           6              4             32            28               9        5
       MIR_6_RB:     117                   42          52             20            132            90              52       39
      MIR_6_RBP:     274                  273         172            196            170           156             231      194
   ZERO_HALF_FF:      39                   37          61             46             74            83               7       50
    ZERO_HALF_K:       7                   12          17              7             11            18               1       14
   ZERO_HALF_KL:       7                    5           2              2             19             2               -        -
    ZERO_HALF_R:   1'072                  697         968            751          1'175         1'116             913      840
   ZERO_HALF_RB:     135                  104         134            140            159           149             209      156
  ZERO_HALF_RBP:      98                   77          96             62             69            55             124       88

LNS stats           Improv/Calls  Closed  Difficulty  TimeLimit
  'graph_arc_lns':        32/387     50%    5.43e-01       0.11
  'graph_cst_lns':        34/391     50%    6.81e-01       0.11
  'graph_dec_lns':        33/395     50%    8.13e-01       0.11
  'graph_var_lns':        32/395     50%    6.87e-01       0.11
   'lb_relax_lns':         35/95     52%    6.15e-01       0.51
      'rins/rens':       449/514     50%    5.01e-01       0.10
    'rnd_cst_lns':        47/401     50%    7.92e-01       0.10
    'rnd_var_lns':        48/412     51%    8.50e-01       0.10

LS stats                                    Batches  Restarts/Perturbs   LinMoves   GenMoves  CompoundMoves  Bactracks  WeightUpdates  ScoreComputed
                         'ls_lin_restart':       85                 21  1'277'033          0              0          0        321'732     48'195'349
                'ls_lin_restart_compound':       56                 25          0  1'164'721         82'595    540'977          3'967     26'746'191
        'ls_lin_restart_compound_perturb':       60                 24          0  1'249'283         84'689    582'216          4'117     28'355'354
                   'ls_lin_restart_decay':       56                 26  1'073'613          0              0          0         23'541     21'391'902
          'ls_lin_restart_decay_compound':       71                 23          0  1'326'570        178'869    573'706          1'055     34'722'679
  'ls_lin_restart_decay_compound_perturb':       75                 24          0  1'425'423        186'287    619'391          1'048     37'074'561
           'ls_lin_restart_decay_perturb':       83                 28  1'594'234          0              0          0         35'179     31'575'933
                 'ls_lin_restart_perturb':       82                 29  1'228'298          0              0          0        381'799     44'756'716
                             'ls_restart':       51                 23    767'027          0              0          0        181'811     28'039'433
                    'ls_restart_compound':       68                 28          0  1'450'575         94'879    677'723          4'792     33'034'432
            'ls_restart_compound_perturb':       79                 20          0  1'708'257         87'677    810'153          5'092     37'576'999
                       'ls_restart_decay':       89                 28  1'698'539          0              0          0         36'821     33'705'105
              'ls_restart_decay_compound':      106                 25          0  2'024'856        261'674    881'340          1'284     52'778'259
      'ls_restart_decay_compound_perturb':       59                 26          0  1'096'699        155'638    470'394          1'024     29'006'647
               'ls_restart_decay_perturb':       37                 23    713'290          0              0          0         16'050     14'151'855
                     'ls_restart_perturb':       63                 24    949'530          0              0          0        248'908     34'717'068

Solutions (7)             Num   Rank
        'complete_hint':    1  [1,1]
                'no_lp':    3  [2,6]
  'quick_restart_no_lp':    3  [3,7]

Objective bounds          Num
         'am1_presolve':    1
       'initial_domain':    1
       'lb_tree_search':  228
               'max_lp':   22
  'objective_lb_search':    7
        'reduced_costs':    2

Solution repositories     Added  Queried  Synchro
  'feasible solutions':   1'242    6'782      709
   'fj solution hints':       0        0        0
        'lp solutions':     694      255      656
                'pump':  15'298      263

Improving bounds shared    Num  Sym
            'default_lp':    2    0
        'lb_tree_search':   32    0
                'max_lp':   54    0
               'probing':    5    0
          'pseudo_costs':   24    0
         'quick_restart':    5    0
   'quick_restart_no_lp':   40    0
         'reduced_costs':   14    0

Clauses shared            Num
                 'core':   22
               'max_lp':    1
                'no_lp':    2
  'objective_lb_search':    4
              'probing':  202
        'quick_restart':   11
  'quick_restart_no_lp':   17

[Scaling] scaled_objective_bound: 132253 corrected_bound: 132253 delta: -5.10394e-07
CpSolverResponse summary:
status: FEASIBLE
objective: 134786.7922581253
best_bound: 132253.3571982719
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 300.386
usertime: 300.386
deterministic_time: 1886.38
gap_integral: 14825.3
solution_fingerprint: 0x8de4169e43eb94c3

[26]:
SolutionInfo(runtime=300.38635580000005, bound=132253.35719827193, objective=134786.79225812532, relgap=0.01879587025857621, termination='FEASIBLE')
[27]:
S_irr, G_irr = solver.get_solution()
[28]:
assign_cables(G_irr, cables)
G_irr.size(weight='cost')
[28]:
43091183.191651106
[29]:
svgplot(G_irr)
[29]:
../_images/notebooks_04-IEA_Wind_740-10-MW_Reference_Offshore_Wind_Plants_38_0.svg

Layouts’ edge list

These lists of 3-tuples have all the edges and their cable type (as an index to the turbines_per_cable list), i.e. (coordinate_A, coordinate_B, cable_type).

Negative node indices represent substations, the node indices ranging from 0 to 73 represent the WT in the order they were given.

If the layout has contours or detours, indices will go beyond the number of coordinates (WT, SS, borders) provided, and the mapping of these additional indices to indices to the provided coordinates is presented.

[30]:
G_reg.edges(data='cable')
[30]:
EdgeDataView([(-1, 47, 2), (-1, 56, 2), (-1, 46, 2), (-1, 33, 2), (-1, 45, 2), (-1, 57, 2), (-1, 34, 2), (-1, 24, 2), (-1, 49, 2), (-1, 58, 2), (-1, 32, 2), (0, 1, 0), (1, 4, 0), (4, 5, 0), (2, 3, 0), (3, 8, 0), (8, 14, 0), (5, 9, 1), (9, 15, 1), (6, 7, 0), (7, 12, 0), (12, 13, 0), (14, 22, 1), (15, 24, 2), (10, 11, 0), (11, 16, 0), (16, 17, 0), (13, 20, 1), (20, 21, 1), (22, 23, 1), (17, 26, 1), (26, 25, 1), (18, 19, 0), (19, 28, 0), (28, 27, 0), (21, 32, 2), (23, 33, 2), (25, 34, 2), (27, 36, 1), (36, 35, 1), (29, 38, 0), (29, 40, 0), (38, 37, 0), (30, 31, 0), (31, 44, 0), (31, 42, 0), (44, 45, 1), (44, 43, 0), (35, 46, 2), (37, 48, 1), (48, 47, 1), (39, 50, 1), (39, 52, 1), (50, 49, 2), (41, 52, 0), (41, 54, 0), (51, 62, 0), (51, 60, 1), (60, 59, 1), (53, 62, 0), (53, 64, 0), (61, 70, 0), (61, 69, 0), (69, 68, 1), (63, 70, 0), (54, 55, 0), (65, 66, 1), (65, 80, 1), (56, 80, 1), (67, 68, 1), (67, 57, 2), (59, 58, 2), (66, 71, 0), (66, 73, 0), (71, 72, 0)])

Mapping of contour/detour nodes to the index of their VertexC coordinate:

[31]:
if G_reg.graph.get('C') or G_reg.graph.get('D'):
    R, T, B = (G_reg.graph[k] for k in 'RTB')
    print(dict(enumerate(
        (n.item() for n in G_reg.graph['fnT'][T + B:-R]),
        start=T + B
    )))
{80: 76}
[32]:
G_irr.edges(data='cable')
[32]:
EdgeDataView([(-1, 41, 2), (-1, 28, 2), (-1, 49, 2), (-1, 55, 1), (-1, 39, 2), (-1, 60, 2), (-1, 70, 2), (-1, 25, 2), (-1, 33, 2), (-1, 80, 2), (-1, 81, 2), (0, 50, 0), (50, 46, 0), (1, 34, 0), (34, 20, 0), (2, 8, 1), (2, 7, 0), (8, 42, 1), (3, 12, 1), (3, 15, 0), (12, 45, 1), (4, 20, 0), (20, 37, 1), (5, 9, 0), (5, 32, 0), (32, 14, 1), (6, 35, 0), (35, 36, 0), (42, 25, 2), (10, 24, 0), (24, 17, 0), (11, 18, 0), (18, 59, 0), (45, 33, 2), (13, 26, 0), (26, 31, 0), (14, 68, 1), (68, 73, 2), (16, 29, 1), (16, 17, 0), (29, 53, 1), (59, 60, 2), (59, 52, 0), (37, 51, 1), (22, 44, 1), (22, 67, 1), (67, 70, 2), (23, 43, 0), (43, 7, 0), (31, 56, 0), (27, 52, 0), (27, 38, 0), (53, 28, 2), (30, 54, 1), (30, 56, 1), (54, 49, 2), (36, 62, 0), (62, 69, 1), (51, 41, 2), (40, 55, 0), (40, 57, 0), (47, 65, 0), (65, 58, 0), (65, 48, 0), (58, 61, 1), (61, 64, 1), (64, 71, 2), (69, 63, 1), (71, 81, 2), (73, 80, 2), (15, 21, 0), (9, 19, 0), (21, 66, 0), (44, 46, 0), (63, 39, 2), (57, 72, 0)])

Mapping of contour/detour nodes to the index of their VertexC coordinate:

[33]:
if G_irr.graph.get('C') or G_irr.graph.get('D'):
    R, T, B = (G_irr.graph[k] for k in 'RTB')
    print(dict(enumerate(
        (n.item() for n in G_irr.graph['fnT'][T + B:-R]),
        start=T + B
    )))
{80: 28, 81: 76}