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]:
[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]:
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]:
[16]:
svgplot(G_reg_warm)
[16]:
[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]:
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]:
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}