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.
[1]:
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.cp_sat')
Regular layout¶
[12]:
P, A = make_planar_embedding(L_reg)
[13]:
# 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.47984275874
[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.log_callback = print
solver.solve(
mip_gap=0.005,
time_limit=5,
verbose=True,
)
IntegerBoundsPreprocessor 2374 rows, 1536 columns, 8830 entries with magnitude in [1.000000e+00, 7.000000e+00]
BoundPropagationPreprocessor 2374 rows, 1536 columns, 8830 entries with magnitude in [1.000000e+00, 7.000000e+00]
ImpliedIntegerPreprocessor 2374 rows, 1536 columns, 8830 entries with magnitude in [1.000000e+00, 7.000000e+00]
IntegerBoundsPreprocessor 2374 rows, 1536 columns, 8830 entries with magnitude in [1.000000e+00, 7.000000e+00]
ReduceCostOverExclusiveOrConstraintPreprocessor 2374 rows, 1536 columns, 8830 entries with magnitude in [1.000000e+00, 7.000000e+00]
Scaling to pure integer problem.
Num integers: 1536/1536 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP]
Maximum constraint coefficient relative error: 0
Maximum constraint worst-case activity error: 0
Constraint scaling factor range: [1, 1]
Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 5 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.005 log_to_stdout: false
Setting number of workers to 16
Initial optimization model 'optiwindnet': (model_fingerprint: 0xed0c3300e80c66ca)
#Variables: 1'536 (#bools: 694 in floating point objective) (1'388 primary variables)
- 768 Booleans in [0,1]
- 694 in [0,6]
- 74 in [0,7]
#kLinear2: 1'883
#kLinear3: 2
#kLinearN: 489 (#terms: 5'058)
Starting presolve at 0.00s
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 694 terms with magnitude in [2.68679e-05, 12860.2] average = 1324.72
[Scaling] Objective coefficient relative error: 0.00889319
[Scaling] Objective worst-case absolute error: 8.61506e-05
[Scaling] Objective scaling factor: 1.04858e+06
3.68e-04s 0.00e+00d [DetectDominanceRelations]
9.24e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
3.06e-05s 0.00e+00d [ExtractEncodingFromLinear] #potential_supersets=340
1.72e-04s 0.00e+00d [DetectDuplicateColumns]
1.48e-04s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 5'793 nodes and 11'060 arcs.
[Symmetry] Symmetry computation done. time: 0.000819018 dtime: 0.00135785
[SAT presolve] num removable Booleans: 0 / 768
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:347 literals:694 vars:694 one_side_vars:694 simple_definition:0 singleton_clauses:0
[SAT presolve] [2.8627e-05s] clauses:347 literals:694 vars:694 one_side_vars:694 simple_definition:0 singleton_clauses:0
[SAT presolve] [4.2437e-05s] clauses:347 literals:694 vars:694 one_side_vars:694 simple_definition:0 singleton_clauses:0
1.39e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.86e-02s 1.03e-02d [Probe] #probed=3'072 #new_binary_clauses=768
3.66e-04s 5.67e-04d [MaxClique] Merged 613 constraints with 1'918 literals into 303 constraints with 1'298 literals
3.22e-04s 0.00e+00d [DetectDominanceRelations]
3.04e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
1.05e-03s 0.00e+00d [ProcessAtMostOneAndLinear] #num_changes=768
1.28e-04s 0.00e+00d [DetectDuplicateConstraints]
1.22e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.99e-04s 1.32e-05d [DetectDominatedLinearConstraints] #relevant_constraints=151 #num_inclusions=75
1.78e-05s 0.00e+00d [DetectDifferentVariables]
2.63e-03s 3.03e-04d [ProcessSetPPC] #relevant_constraints=379 #num_inclusions=377
1.55e-04s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=303
5.97e-04s 0.00e+00d [DetectEncodedComplexDomains]
2.68e-05s 0.00e+00d [FindAlmostIdenticalLinearConstraints]
2.62e-04s 2.40e-04d [FindBigAtMostOneAndLinearOverlap]
1.69e-04s 2.83e-04d [FindBigVerticalLinearOverlap]
2.41e-05s 1.15e-05d [FindBigHorizontalLinearOverlap] #linears=148
1.25e-05s 0.00e+00d [MergeClauses]
3.29e-04s 0.00e+00d [DetectDominanceRelations]
4.54e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
2.91e-04s 0.00e+00d [DetectDominanceRelations]
3.10e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
8.16e-05s 0.00e+00d [DetectDuplicateColumns]
1.28e-04s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 5'168 nodes and 9'048 arcs.
[Symmetry] Symmetry computation done. time: 0.000569614 dtime: 0.00121763
[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] [2.838e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [5.2736e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
1.81e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.12e-02s 3.41e-03d [Probe] #probed=1'536
2.91e-04s 3.83e-04d [MaxClique]
3.26e-04s 0.00e+00d [DetectDominanceRelations]
4.13e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
4.96e-04s 0.00e+00d [ProcessAtMostOneAndLinear]
6.99e-04s 0.00e+00d [DetectDuplicateConstraints]
1.55e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.74e-04s 9.95e-06d [DetectDominatedLinearConstraints] #relevant_constraints=150 #num_inclusions=74
1.95e-05s 0.00e+00d [DetectDifferentVariables]
1.48e-04s 6.96e-06d [ProcessSetPPC] #relevant_constraints=378
1.30e-04s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=303
4.82e-04s 0.00e+00d [DetectEncodedComplexDomains]
2.32e-05s 0.00e+00d [FindAlmostIdenticalLinearConstraints]
2.50e-04s 2.37e-04d [FindBigAtMostOneAndLinearOverlap]
1.77e-04s 2.83e-04d [FindBigVerticalLinearOverlap]
2.08e-05s 1.15e-05d [FindBigHorizontalLinearOverlap] #linears=148
1.02e-05s 0.00e+00d [MergeClauses]
3.19e-04s 0.00e+00d [DetectDominanceRelations]
3.56e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
4.32e-06s 0.00e+00d [MergeNoOverlap]
4.86e-06s 0.00e+00d [MergeNoOverlap2D]
2.26e-04s 0.00e+00d [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 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 4'608 times.
- rule 'at_most_one: transformed into max clique' was applied 1 time.
- rule 'bool_or: implications' was applied 347 times.
- rule 'deductions: 1536 stored' was applied 1 time.
- rule 'linear + amo: extracted enforcement literal' was applied 768 times.
- rule 'linear2: contains a boolean' was applied 768 times.
- rule 'linear2: convert ax + by != cte to clauses' was applied 347 times.
- rule 'linear: positive at most one' was applied 266 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 'optiwindnet': (model_fingerprint: 0xf838d88221aca131)
#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.000536646 dtime: 0.00121072
Preloading model.
#Bound 0.08s best:inf next:[123610.947,1028471.61] initial_domain
#1 0.08s best:139656.48 next:[123610.947,139656.48] complete_hint
#Model 0.08s var:1536/1536 constraints:2063/2063
Starting search at 0.08s 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.10s best:139650.832 next:[123610.947,139650.832] graph_cst_lns (d=5.00e-01 s=15 t=0.10 p=0.00 stall=0 h=base)
#Bound 0.11s best:139650.832 next:[123610.951,139650.832] am1_presolve (num_literals=694 num_am1=20 increase=4452 work_done=2551)
#Bound 0.11s best:139650.832 next:[131572.565,139650.832] quick_restart
#Bound 0.12s best:139650.832 next:[131572.567,139650.832] default_lp
#Bound 0.12s best:139650.832 next:[131572.568,139650.832] reduced_costs
#Model 0.13s var:1528/1536 constraints:2055/2063
#Bound 0.16s best:139650.832 next:[135687.687,139650.832] max_lp
#Bound 0.27s best:139650.832 next:[135856.984,139650.832] lb_tree_search
#Bound 0.29s best:139650.832 next:[135925.114,139650.832] lb_tree_search
#Bound 0.30s best:139650.832 next:[135926.23,139650.832] lb_tree_search
#Model 0.30s var:1526/1536 constraints:2053/2063
#Bound 0.32s best:139650.832 next:[135928.998,139650.832] max_lp
#Bound 0.34s best:139650.832 next:[135929.655,139650.832] max_lp
#Model 0.34s var:1484/1536 constraints:2009/2063
#3 0.75s best:139645.183 next:[135929.655,139645.183] quick_restart_no_lp (fixed_bools=28/824)
#Bound 0.80s best:139645.183 next:[136049.036,139645.183] lb_tree_search
#Bound 0.84s best:139645.183 next:[136111.715,139645.183] quick_restart
#Model 0.92s var:1482/1536 constraints:2007/2063
#Bound 0.94s best:139645.183 next:[136160.977,139645.183] quick_restart
#Model 0.95s var:1476/1536 constraints:2001/2063
#Bound 1.07s best:139645.183 next:[136210.817,139645.183] lb_tree_search
#Bound 1.15s best:139645.183 next:[136214.754,139645.183] lb_tree_search (nodes=3/3 rc=0 decisions=20 @root=4 restarts=0 lp_iters=[0, 0, 353, 204])
#4 1.18s best:139645.183 next:[136214.754,139645.183] graph_arc_lns (d=8.14e-01 s=36 t=0.10 p=1.00 stall=2 h=base) [combined with: quick_restart_no_lp...]
#Bound 1.19s best:139645.183 next:[136214.755,139645.183] lb_tree_search (nodes=3/3 rc=0 decisions=22 @root=4 restarts=0 lp_iters=[0, 0, 606, 204])
#Bound 1.23s best:139645.183 next:[136247.407,139645.183] lb_tree_search (nodes=3/3 rc=0 decisions=23 @root=4 restarts=0 lp_iters=[0, 0, 717, 204])
#Bound 1.26s best:139645.183 next:[136260.272,139645.183] lb_tree_search (nodes=3/3 rc=0 decisions=24 @root=4 restarts=0 lp_iters=[0, 0, 847, 204])
#Bound 1.29s best:139645.183 next:[136262.366,139645.183] lb_tree_search (nodes=3/3 rc=0 decisions=25 @root=4 restarts=0 lp_iters=[0, 0, 876, 204])
#Bound 1.30s best:139645.183 next:[136262.366,139645.183] lb_tree_search (nodes=3/3 rc=0 decisions=26 @root=4 restarts=0 lp_iters=[0, 0, 884, 204])
#Bound 1.32s best:139645.183 next:[136262.366,139645.183] lb_tree_search (nodes=3/3 rc=0 decisions=27 @root=4 restarts=0 lp_iters=[0, 0, 885, 204])
#Model 1.79s var:1474/1536 constraints:1999/2063
#Bound 1.94s best:139645.183 next:[136556.651,139645.183] lb_tree_search (nodes=12/12 rc=4 decisions=72 @root=4 restarts=0 lp_iters=[0, 0, 3'288, 544]) [skipped_logs=16]
#Model 2.86s var:1472/1536 constraints:1997/2063
#Bound 2.55s best:139645.183 next:[136580.124,139645.183] lb_tree_search (nodes=12/12 rc=4 decisions=73 @root=5 restarts=0 lp_iters=[0, 0, 3'402, 544]) [skipped_logs=0]
#Model 3.46s var:1470/1536 constraints:1994/2063
#Bound 3.96s best:139645.183 next:[136652.175,139645.183] lb_tree_search (nodes=12/12 rc=4 decisions=88 @root=7 restarts=0 lp_iters=[0, 0, 5'343, 915]) [skipped_logs=6]
#Bound 4.96s best:139645.183 next:[136720.342,139645.183] lb_tree_search (nodes=22/22 rc=10 decisions=152 @root=7 restarts=0 lp_iters=[0, 0, 8'328, 1'435]) [skipped_logs=10]
Task timing n [ min, max] avg dev time n [ min, max] avg dev dtime
'core': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [ 3.51ms, 2.67s] 1.34s 1.33s 2.67s
'default_lp': 1 [ 4.93s, 4.93s] 4.93s 0.00ns 4.93s 2 [ 95.04ms, 1.51s] 803.03ms 707.99ms 1.61s
'feasibility_pump': 22 [ 73.82us, 83.03ms] 6.10ms 16.84ms 134.20ms 20 [318.71us, 50.34ms] 2.84ms 10.90ms 56.74ms
'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': 7 [ 40.00ms, 641.90ms] 335.01ms 219.28ms 2.35s 7 [ 2.09ms, 100.08ms] 63.68ms 42.57ms 445.74ms
'graph_cst_lns': 9 [ 21.35ms, 460.41ms] 240.55ms 174.44ms 2.16s 8 [ 87.90us, 100.09ms] 56.42ms 40.54ms 451.36ms
'graph_dec_lns': 11 [ 5.27ms, 498.36ms] 203.36ms 175.34ms 2.24s 11 [ 10.00ns, 100.09ms] 38.51ms 40.27ms 423.65ms
'graph_var_lns': 8 [ 9.90ms, 518.35ms] 271.35ms 197.11ms 2.17s 8 [520.00ns, 100.06ms] 57.42ms 45.48ms 459.33ms
'lb_relax_lns': 2 [905.74ms, 2.09s] 1.50s 592.47ms 3.00s 2 [209.60ms, 547.02ms] 378.31ms 168.71ms 756.62ms
'lb_tree_search': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [147.35ms, 2.25s] 1.20s 1.05s 2.39s
'ls': 12 [174.40ms, 221.26ms] 191.60ms 12.22ms 2.30s 12 [100.01ms, 100.02ms] 100.01ms 4.66us 1.20s
'ls_lin': 12 [168.05ms, 235.65ms] 190.04ms 19.35ms 2.28s 12 [ 85.64ms, 100.02ms] 98.82ms 3.97ms 1.19s
'max_lp': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [165.69ms, 1.71s] 938.26ms 772.56ms 1.88s
'no_lp': 1 [ 4.93s, 4.93s] 4.93s 0.00ns 4.93s 2 [ 4.06ms, 1.44s] 723.21ms 719.15ms 1.45s
'objective_lb_search': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [ 86.59ms, 1.69s] 890.33ms 803.74ms 1.78s
'probing': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [ 93.48ms, 1.36s] 726.35ms 632.87ms 1.45s
'pseudo_costs': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [ 37.91ms, 2.07s] 1.06s 1.02s 2.11s
'quick_restart': 1 [ 4.93s, 4.93s] 4.93s 0.00ns 4.93s 2 [ 97.34ms, 1.58s] 839.02ms 741.68ms 1.68s
'quick_restart_no_lp': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [ 4.06ms, 1.95s] 975.39ms 971.33ms 1.95s
'reduced_costs': 1 [ 4.92s, 4.92s] 4.92s 0.00ns 4.92s 2 [ 38.72ms, 1.86s] 950.51ms 911.79ms 1.90s
'rins/rens': 8 [ 4.39ms, 629.78ms] 290.79ms 251.97ms 2.33s 7 [717.82us, 100.08ms] 58.94ms 47.50ms 412.55ms
'rnd_cst_lns': 15 [ 11.02ms, 460.22ms] 208.39ms 169.62ms 3.13s 15 [ 33.00ns, 100.18ms] 44.17ms 43.68ms 662.49ms
'rnd_var_lns': 10 [ 10.62ms, 496.80ms] 239.36ms 186.67ms 2.39s 10 [ 41.00ns, 100.05ms] 50.23ms 44.53ms 502.32ms
Search stats Bools Conflicts Branches Restarts BacktrackToRoot Backtrack BoolPropag IntegerPropag
'core': 788 76'037 171'232 98 6'013 82'071 1'270'644 3'499'310
'default_lp': 810 278 11'609 3 6'023 6'866 69'804 321'867
'fs_random': 0 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0
'lb_tree_search': 768 0 10'430 0 6'113 6'475 50'125 214'140
'max_lp': 768 188 8'180 2 4'561 4'970 48'377 229'259
'no_lp': 768 24'430 62'918 42 15'376 40'356 2'727'697 9'156'979
'objective_lb_search': 797 394 10'919 2 5'982 6'886 64'783 310'031
'probing': 789 10 1'786 0 1'622 1'632 13'856 46'749
'pseudo_costs': 768 349 8'229 2 4'608 5'136 67'473 298'060
'quick_restart': 792 69 13'866 5 7'597 8'258 68'924 340'947
'quick_restart_no_lp': 900 18'163 285'813 1'561 14'198 35'067 1'764'665 6'639'472
'reduced_costs': 801 359 19'560 5 9'002 10'191 91'247 464'966
SAT formula Fixed Equiv Total VarLeft BinaryClauses PermanentClauses TemporaryClauses
'core': 32 0 788 756 206 542 10'552
'default_lp': 34 0 810 776 556 78 237
'fs_random': 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0
'lb_tree_search': 33 0 768 735 220 74 0
'max_lp': 33 0 768 735 220 74 175
'no_lp': 33 0 768 735 392 76 6'173
'objective_lb_search': 37 0 797 760 450 82 73
'probing': 27 0 789 762 1'356 74 9
'pseudo_costs': 30 0 768 738 152 74 315
'quick_restart': 33 0 792 759 478 95 51
'quick_restart_no_lp': 46 0 900 854 1'464 224 7'935
'reduced_costs': 33 0 801 768 518 74 311
SAT stats ClassicMinim LitRemoved LitRemovedBinary LitLearned LitForgotten Subsumed
'core': 68'218 651'730 468'373 5'037'589 2'303'724 25'422
'default_lp': 202 2'651 11'086 20'525 0 34
'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': 0 0 0 0 0 0
'max_lp': 157 4'135 5'770 22'539 0 13
'no_lp': 23'700 1'144'139 33'569 1'369'717 264'895 12'823
'objective_lb_search': 365 29'085 5'332 8'115 0 131
'probing': 8 325 715 2'429 0 1
'pseudo_costs': 218 1'962 11'354 28'361 0 33
'quick_restart': 53 2'058 2'074 5'828 0 12
'quick_restart_no_lp': 15'816 350'801 283'126 1'341'191 297'615 5'933
'reduced_costs': 300 7'112 9'812 72'928 0 44
Vivification Clauses Decisions LitTrue Subsumed LitRemoved DecisionReused Conflicts
'core': 2'077 17'650 0 242 3'213 2'720 29
'default_lp': 463 4'087 0 3 13 18 0
'fs_random': 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0
'lb_tree_search': 445 3'988 0 0 0 0 0
'max_lp': 297 2'650 0 0 0 0 0
'no_lp': 1'386 12'456 0 1 9 14 0
'objective_lb_search': 459 4'090 0 0 3 18 0
'probing': 0 0 0 0 0 0 0
'pseudo_costs': 297 2'658 0 0 0 0 0
'quick_restart': 644 5'409 0 0 1 43 0
'quick_restart_no_lp': 2'748 19'907 1 105 1'184 940 33
'reduced_costs': 741 6'638 0 0 0 0 0
Clause deletion at_true l_and_not(l) to_binary sub_conflict sub_extra sub_decisions sub_eager sub_vivify sub_probing sub_inpro blocked eliminated forgotten promoted conflicts
'core': 59 21 3 24'752 589 14 670 242 3 250 0 0 38'356 180'168 76'037
'default_lp': 0 0 0 32 0 0 2 3 0 0 0 0 0 529 278
'fs_random': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'lb_tree_search': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'max_lp': 0 0 0 12 0 0 1 0 0 0 0 0 0 395 188
'no_lp': 0 3 0 12'441 36 347 382 1 0 19 0 0 5'022 60'227 24'430
'objective_lb_search': 158 0 1 123 0 14 8 0 0 0 0 0 0 686 394
'probing': 0 0 0 0 0 0 1 0 0 0 0 0 0 15 10
'pseudo_costs': 0 0 0 29 1 0 4 0 0 0 0 0 0 791 349
'quick_restart': 0 0 0 9 0 0 3 0 0 0 0 0 0 113 69
'quick_restart_no_lp': 168 2 1 5'646 42 15 287 105 27 179 0 0 3'322 38'929 18'163
'reduced_costs': 0 0 0 43 4 0 1 0 0 0 0 0 0 948 359
Lp stats Component Iterations AddedCuts OPTIMAL DUAL_F. DUAL_U.
'default_lp': 1 26'824 1'943 1'307 1 60
'lb_tree_search': 1 14'268 1'131 227 35 0
'max_lp': 1 19'897 1'149 752 54 57
'objective_lb_search': 1 35'540 1'770 1'414 0 38
'probing': 1 10'399 2'707 271 0 0
'pseudo_costs': 1 43'716 1'164 938 289 116
'quick_restart': 1 20'083 2'042 648 0 20
'reduced_costs': 1 27'115 1'991 780 134 82
Lp dimension Final dimension of first component
'default_lp': 1095 rows, 1462 columns, 9384 entries
'lb_tree_search': 3154 rows, 1536 columns, 26177 entries
'max_lp': 1161 rows, 1536 columns, 11898 entries
'objective_lb_search': 766 rows, 1462 columns, 5651 entries
'probing': 2103 rows, 1462 columns, 34793 entries
'pseudo_costs': 953 rows, 1536 columns, 5493 entries
'quick_restart': 1460 rows, 1462 columns, 16836 entries
'reduced_costs': 1225 rows, 1536 columns, 13358 entries
Lp debug CutPropag CutEqPropag Adjust Overflow Bad BadScaling
'default_lp': 0 0 1'350 0 3'510 0
'lb_tree_search': 0 0 262 0 12'656 0
'max_lp': 0 0 862 0 6'856 0
'objective_lb_search': 0 0 1'435 0 2'783 0
'probing': 0 2 257 0 17'555 0
'pseudo_costs': 0 0 1'330 0 1'251 0
'quick_restart': 0 0 645 0 7'735 0
'reduced_costs': 0 0 990 0 7'120 0
Lp pool Constraints Updates Simplif Merged Shortened Split Strengthened Cuts/Call
'default_lp': 4'515 23 1'044 0 633 3 45 1'943/3'865
'lb_tree_search': 3'962 159 1'453 0 991 105 24 1'131/2'359
'max_lp': 3'980 77 888 0 670 36 25 1'149/2'225
'objective_lb_search': 4'342 17 805 0 449 4 28 1'770/3'460
'probing': 5'279 189 2'061 0 330 208 81 2'707/5'139
'pseudo_costs': 3'995 0 358 0 185 0 18 1'164/2'145
'quick_restart': 4'614 78 1'374 0 618 31 58 2'042/3'849
'reduced_costs': 4'822 89 1'103 0 512 49 40 1'991/3'592
Lp Cut reduced_costs pseudo_costs default_lp max_lp quick_restart lb_tree_search probing objective_lb_search
CG_FF: 18 3 14 3 10 2 19 14
CG_K: 4 3 8 - 6 2 12 14
CG_KL: 1 - 2 - 1 - 3 -
CG_R: 25 5 10 7 14 6 22 22
CG_RB: 55 15 39 32 42 33 65 42
CG_RBP: 12 5 14 4 18 8 25 20
IB: 797 814 879 205 727 6 660 758
MIR_1_FF: 59 3 58 37 91 41 133 54
MIR_1_K: 4 - 21 7 22 - 35 24
MIR_1_KL: 2 - 10 1 12 - 14 3
MIR_1_R: - - - - 2 3 3 1
MIR_1_RB: 30 6 38 22 40 26 63 38
MIR_1_RBP: 3 - 32 8 42 6 82 17
MIR_2_FF: 64 15 64 62 73 63 118 66
MIR_2_K: 8 - 52 5 54 3 54 48
MIR_2_KL: 1 - 15 - 14 - 16 6
MIR_2_R: 4 1 5 3 6 5 8 6
MIR_2_RB: 92 19 64 63 82 78 99 60
MIR_2_RBP: 11 1 42 17 56 12 73 33
MIR_3_FF: 61 24 44 58 43 67 77 37
MIR_3_K: 12 3 25 12 40 7 76 25
MIR_3_KL: 1 1 6 1 5 1 8 3
MIR_3_R: 11 2 2 5 1 6 4 5
MIR_3_RB: 92 38 30 61 55 68 69 36
MIR_3_RBP: 11 9 19 14 40 9 72 16
MIR_4_FF: 50 18 26 37 37 60 48 18
MIR_4_K: 23 5 30 13 48 21 67 24
MIR_4_KL: 5 1 10 3 6 1 6 2
MIR_4_R: 3 3 1 7 5 6 8 2
MIR_4_RB: 46 15 25 35 40 58 34 25
MIR_4_RBP: 15 3 17 15 45 19 60 17
MIR_5_FF: 31 13 18 43 24 45 43 23
MIR_5_K: 20 10 22 18 23 22 49 26
MIR_5_KL: 10 3 2 5 7 3 7 5
MIR_5_R: 5 - 3 8 3 9 2 2
MIR_5_RB: 33 7 18 33 19 29 29 29
MIR_5_RBP: 14 10 19 18 32 26 61 27
MIR_6_FF: 15 7 10 24 16 32 17 12
MIR_6_K: 14 6 19 22 20 30 27 10
MIR_6_KL: 9 - 5 5 7 8 11 3
MIR_6_R: - - - 5 - 4 - -
MIR_6_RB: 19 6 15 15 8 28 12 13
MIR_6_RBP: 18 6 20 17 23 31 59 14
ZERO_HALF_FF: 23 10 30 20 20 11 21 30
ZERO_HALF_K: - 1 5 4 8 - 10 16
ZERO_HALF_KL: - - 1 1 1 - - 3
ZERO_HALF_R: 210 62 126 150 132 201 290 100
ZERO_HALF_RB: 34 10 21 20 14 28 26 14
ZERO_HALF_RBP: 16 1 7 4 8 7 10 7
LNS stats Improv/Calls Closed Difficulty TimeLimit
'graph_arc_lns': 1/7 43% 4.94e-01 0.10
'graph_cst_lns': 1/8 62% 8.27e-01 0.10
'graph_dec_lns': 1/11 64% 8.73e-01 0.10
'graph_var_lns': 1/8 50% 6.11e-01 0.10
'lb_relax_lns': 1/2 50% 5.38e-01 0.50
'rins/rens': 5/8 50% 7.00e-01 0.10
'rnd_cst_lns': 1/15 60% 8.62e-01 0.10
'rnd_var_lns': 0/10 70% 8.97e-01 0.10
LS stats Batches Restarts/Perturbs LinMoves GenMoves CompoundMoves Bactracks WeightUpdates ScoreComputed
'ls_lin_restart': 1 1 12'257 0 0 0 2'335 390'248
'ls_lin_restart_compound': 3 3 0 45'195 4'677 20'256 262 1'147'292
'ls_lin_restart_compound_perturb': 1 1 0 15'940 1'050 7'443 191 411'072
'ls_lin_restart_decay': 2 2 29'464 0 0 0 610 595'259
'ls_lin_restart_decay_compound': 1 1 0 12'459 1'978 5'239 30 350'570
'ls_lin_restart_decay_compound_perturb': 2 2 0 24'794 4'564 10'112 63 641'090
'ls_lin_restart_decay_perturb': 1 1 14'524 0 0 0 299 292'712
'ls_lin_restart_perturb': 1 1 11'454 0 0 0 2'077 331'339
'ls_restart': 1 1 12'115 0 0 0 2'534 336'327
'ls_restart_compound': 2 2 0 31'559 2'864 14'346 153 778'926
'ls_restart_decay': 4 4 58'895 0 0 0 1'263 1'210'336
'ls_restart_decay_compound': 1 1 0 14'136 2'323 5'906 54 361'529
'ls_restart_decay_compound_perturb': 2 2 0 26'777 4'056 11'360 80 697'315
'ls_restart_decay_perturb': 1 1 14'677 0 0 0 310 299'847
'ls_restart_perturb': 1 1 12'629 0 0 0 2'396 372'437
Solutions (4) Num Rank
'complete_hint': 2 [0,1]
'graph_arc_lns': 2 [3,4]
'graph_cst_lns': 2 [1,2]
'quick_restart_no_lp': 2 [2,3]
Objective bounds Num
'am1_presolve': 1
'default_lp': 1
'initial_domain': 1
'lb_tree_search': 48
'max_lp': 3
'quick_restart': 3
'reduced_costs': 1
Solution repositories Added Queried Synchro
'alternative_path': 1 0 1
'best_solutions': 10 99 7
'fj solution hints': 0 0 0
'lp solutions': 59 8 38
'pump': 0 0
Improving bounds shared Num Sym
'lb_tree_search': 2 0
'max_lp': 44 0
'quick_restart': 18 0
'quick_restart_no_lp': 15 0
Clauses shared #Exported #Imported #BinaryRead #BinaryTotal
'core': 28 0 331 475
'default_lp': 0 0 419 475
'lb_tree_search': 0 0 375 475
'max_lp': 0 0 375 475
'no_lp': 0 15 475 475
'objective_lb_search': 0 0 375 475
'probing': 173 0 288 475
'pseudo_costs': 0 0 321 475
'quick_restart': 0 15 475 475
'quick_restart_no_lp': 289 15 475 475
'reduced_costs': 0 0 419 475
LRAT_status: NA
[Scaling] scaled_objective_bound: 136720 corrected_bound: 136720 delta: -1.22873e-06
CpSolverResponse summary:
status: FEASIBLE
objective: 139645.1826536399
best_bound: 136720.3419201605
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 5.01937
usertime: 5.01937
deterministic_time: 27.4402
gap_integral: 219.565
solution_fingerprint: 0x6aa24a4cea96b19f
[18]:
SolutionInfo(runtime=5.024661, bound=136720.34192016048, objective=139645.18265363993, relgap=0.020944802233055837, 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)
[23]:
# 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.log_callback = print
solver.solve(
mip_gap=0.005,
time_limit=300,
verbose=True,
)
IntegerBoundsPreprocessor 1836 rows, 1192 columns, 6580 entries with magnitude in [1.000000e+00, 7.000000e+00]
BoundPropagationPreprocessor 1836 rows, 1192 columns, 6580 entries with magnitude in [1.000000e+00, 7.000000e+00]
ImpliedIntegerPreprocessor 1836 rows, 1192 columns, 6580 entries with magnitude in [1.000000e+00, 7.000000e+00]
IntegerBoundsPreprocessor 1836 rows, 1192 columns, 6580 entries with magnitude in [1.000000e+00, 7.000000e+00]
ReduceCostOverExclusiveOrConstraintPreprocessor 1836 rows, 1192 columns, 6580 entries with magnitude in [1.000000e+00, 7.000000e+00]
Scaling to pure integer problem.
Num integers: 1192/1192 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP]
Maximum constraint coefficient relative error: 0
Maximum constraint worst-case activity error: 0
Constraint scaling factor range: [1, 1]
Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 300 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.005 log_to_stdout: false
Setting number of workers to 16
Initial optimization model 'optiwindnet': (model_fingerprint: 0xdf0b125fec3ce89e)
#Variables: 1'192 (#bools: 522 in floating point objective) (1'044 primary variables)
- 596 Booleans in [0,1]
- 522 in [0,6]
- 74 in [0,7]
#kLinear2: 1'457
#kLinear3: 5
#kLinearN: 374 (#terms: 3'651)
Starting presolve at 0.00s
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 522 terms with magnitude in [0.59325, 14141.5] average = 2338.54
[Scaling] Objective coefficient relative error: 3.6523e-07
[Scaling] Objective worst-case absolute error: 6.72685e-05
[Scaling] Objective scaling factor: 1.04858e+06
3.26e-04s 0.00e+00d [DetectDominanceRelations]
6.81e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
1.96e-05s 0.00e+00d [ExtractEncodingFromLinear] #potential_supersets=232
8.33e-05s 0.00e+00d [DetectDuplicateColumns]
1.27e-04s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 4'481 nodes and 8'294 arcs.
[Symmetry] Symmetry computation done. time: 0.000341264 dtime: 0.00081108
[SAT presolve] num removable Booleans: 0 / 596
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:261 literals:522 vars:522 one_side_vars:522 simple_definition:0 singleton_clauses:0
[SAT presolve] [2.7322e-05s] clauses:261 literals:522 vars:522 one_side_vars:522 simple_definition:0 singleton_clauses:0
[SAT presolve] [4.1039e-05s] clauses:261 literals:522 vars:522 one_side_vars:522 simple_definition:0 singleton_clauses:0
1.28e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.12e-02s 6.52e-03d [Probe] #probed=2'384 #new_binary_clauses=596
2.56e-04s 3.24e-04d [MaxClique] Merged 419 constraints with 1'216 literals into 234 constraints with 846 literals
2.86e-04s 0.00e+00d [DetectDominanceRelations]
3.54e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
9.91e-04s 0.00e+00d [ProcessAtMostOneAndLinear] #num_changes=596
1.33e-04s 0.00e+00d [DetectDuplicateConstraints]
9.99e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.89e-04s 1.03e-05d [DetectDominatedLinearConstraints] #relevant_constraints=151 #num_inclusions=75
1.73e-05s 0.00e+00d [DetectDifferentVariables]
1.88e-03s 1.93e-04d [ProcessSetPPC] #relevant_constraints=310 #num_inclusions=308
9.82e-05s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=234
3.57e-04s 0.00e+00d [DetectEncodedComplexDomains]
2.01e-05s 2.00e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=4
1.66e-04s 1.84e-04d [FindBigAtMostOneAndLinearOverlap]
1.11e-04s 2.07e-04d [FindBigVerticalLinearOverlap]
1.67e-05s 8.71e-06d [FindBigHorizontalLinearOverlap] #linears=136
1.20e-05s 0.00e+00d [MergeClauses]
5.87e-04s 0.00e+00d [DetectDominanceRelations]
4.17e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
2.29e-04s 0.00e+00d [DetectDominanceRelations]
2.03e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
5.83e-05s 0.00e+00d [DetectDuplicateColumns]
1.00e-04s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 4'042 nodes and 6'890 arcs.
[Symmetry] Symmetry computation done. time: 0.000281155 dtime: 0.00073484
[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] [2.0482e-05s] clauses:76 literals:152 vars:152 one_side_vars:152 simple_definition:0 singleton_clauses:0
[SAT presolve] [4.0385e-05s] clauses:76 literals:152 vars:152 one_side_vars:152 simple_definition:0 singleton_clauses:0
1.16e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
4.97e-03s 2.15e-03d [Probe] #probed=1'192
1.92e-04s 2.19e-04d [MaxClique]
6.12e-04s 0.00e+00d [DetectDominanceRelations]
2.99e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
1.51e-04s 0.00e+00d [ProcessAtMostOneAndLinear]
1.38e-04s 0.00e+00d [DetectDuplicateConstraints]
1.25e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.91e-04s 7.75e-06d [DetectDominatedLinearConstraints] #relevant_constraints=150 #num_inclusions=74
2.10e-05s 0.00e+00d [DetectDifferentVariables]
1.32e-04s 4.99e-06d [ProcessSetPPC] #relevant_constraints=309
1.05e-04s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=234
4.15e-04s 0.00e+00d [DetectEncodedComplexDomains]
2.03e-05s 1.90e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=2
1.86e-04s 1.82e-04d [FindBigAtMostOneAndLinearOverlap]
1.27e-04s 2.07e-04d [FindBigVerticalLinearOverlap]
1.78e-05s 8.70e-06d [FindBigHorizontalLinearOverlap] #linears=136
1.23e-05s 0.00e+00d [MergeClauses]
4.82e-04s 0.00e+00d [DetectDominanceRelations]
2.53e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
3.72e-06s 0.00e+00d [MergeNoOverlap]
4.26e-06s 0.00e+00d [MergeNoOverlap2D]
4.98e-04s 0.00e+00d [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 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 3'576 times.
- rule 'at_most_one: transformed into max clique' was applied 1 time.
- rule 'bool_or: implications' was applied 261 times.
- rule 'deductions: 1192 stored' was applied 1 time.
- rule 'linear + amo: extracted enforcement literal' was applied 596 times.
- rule 'linear2: contains a boolean' was applied 596 times.
- rule 'linear2: convert ax + by != cte to clauses' was applied 261 times.
- rule 'linear: positive at most one' was applied 158 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 'optiwindnet': (model_fingerprint: 0xd9b5e871a7065697)
#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.000290338 dtime: 0.00073405
Preloading model.
#Bound 0.05s best:inf next:[93516.0522,1236251.99] initial_domain
#1 0.05s best:136451.277 next:[93516.0522,136451.277] complete_hint
#Model 0.05s var:1192/1192 constraints:1650/1650
Starting search at 0.05s with 16 workers.
11 full problem subsolvers: [core, default_lp, lb_tree_search, max_lp, no_lp, objective_lb_search, probing, pseudo_costs, quick_restart, quick_restart_no_lp, reduced_costs]
5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]
11 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, lb_relax_lns, ls, ls_lin, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]
#Bound 0.07s best:136451.277 next:[95755.9972,136451.277] am1_presolve (num_literals=522 num_am1=19 increase=2348752632 work_done=1852)
#2 0.07s best:136417.955 next:[95755.9972,136417.955] no_lp [hint] (fixed_bools=0/596)
#Bound 0.08s best:136417.955 next:[104424.449,136417.955] quick_restart
#Bound 0.08s best:136417.955 next:[106103.007,136417.955] reduced_costs
#Bound 0.10s best:136417.955 next:[127628.142,136417.955] max_lp
#3 0.11s best:135928.233 next:[127628.142,135928.233] quick_restart_no_lp (fixed_bools=0/633)
#4 0.15s best:135719.133 next:[127628.142,135719.133] rins_lp_lns (d=5.00e-01 s=27 t=0.10 p=0.00 stall=0 h=base)
#Bound 0.19s best:135719.133 next:[128533.054,135719.133] max_lp
#Bound 0.20s best:135719.133 next:[128614.809,135719.133] lb_tree_search
#Bound 0.22s best:135719.133 next:[128829.898,135719.133] lb_tree_search
#Bound 0.32s best:135719.133 next:[129188.341,135719.133] lb_tree_search
#Bound 0.38s best:135719.133 next:[129503.176,135719.133] max_lp
#Model 0.41s var:1176/1192 constraints:1631/1650
#Bound 0.91s best:135719.133 next:[129636.484,135719.133] max_lp
#5 1.01s best:134786.792 next:[129636.484,134786.792] lb_relax_lns_int_h (d=5.00e-01 s=38 t=0.50 p=0.00 stall=0 h=base)
#Bound 1.15s best:134786.792 next:[129686.174,134786.792] lb_tree_search (nodes=2/2 rc=0 decisions=6 @root=2 restarts=0 lp_iters=[0, 0, 91, 224])
#Model 1.15s var:1172/1192 constraints:1627/1650
#Bound 1.19s best:134786.792 next:[129727.256,134786.792] lb_tree_search (nodes=2/2 rc=0 decisions=7 @root=2 restarts=0 lp_iters=[0, 0, 249, 224])
#Bound 1.20s best:134786.792 next:[129732.727,134786.792] lb_tree_search (nodes=2/2 rc=0 decisions=8 @root=2 restarts=0 lp_iters=[0, 0, 267, 224])
#Bound 1.21s best:134786.792 next:[129951.958,134786.792] max_lp
#Model 1.33s var:1166/1192 constraints:1621/1650
#Bound 1.46s best:134786.792 next:[129955.117,134786.792] lb_tree_search (nodes=11/11 rc=1 decisions=44 @root=2 restarts=0 lp_iters=[0, 0, 1'053, 632])
#Bound 1.52s best:134786.792 next:[129955.117,134786.792] lb_tree_search (nodes=11/11 rc=1 decisions=50 @root=2 restarts=0 lp_iters=[0, 0, 1'240, 632])
#Bound 1.53s best:134786.792 next:[129955.119,134786.792] lb_tree_search (nodes=11/11 rc=1 decisions=51 @root=2 restarts=0 lp_iters=[0, 0, 1'241, 632])
#Bound 1.56s best:134786.792 next:[129958.058,134786.792] lb_tree_search (nodes=12/12 rc=1 decisions=54 @root=2 restarts=0 lp_iters=[0, 0, 1'314, 687])
#Bound 1.61s best:134786.792 next:[129964.308,134786.792] lb_tree_search (nodes=12/12 rc=1 decisions=58 @root=2 restarts=0 lp_iters=[0, 0, 1'476, 687])
#Bound 1.62s best:134786.792 next:[129964.325,134786.792] lb_tree_search (nodes=12/12 rc=1 decisions=59 @root=2 restarts=0 lp_iters=[0, 0, 1'553, 687])
#Bound 1.65s best:134786.792 next:[129964.772,134786.792] lb_tree_search (nodes=13/13 rc=1 decisions=62 @root=2 restarts=0 lp_iters=[0, 0, 1'645, 718])
#Bound 1.97s best:134786.792 next:[130000.747,134786.792] lb_tree_search (nodes=20/20 rc=2 decisions=102 @root=2 restarts=0 lp_iters=[0, 0, 2'943, 959]) [skipped_logs=8]
#Model 2.44s var:1152/1192 constraints:1606/1650
#Bound 2.98s best:134786.792 next:[130174.404,134786.792] lb_tree_search (nodes=47/47 rc=3 decisions=232 @root=2 restarts=0 lp_iters=[0, 0, 7'689, 1'628]) [skipped_logs=8]
#Model 3.81s var:1150/1192 constraints:1604/1650
#Bound 3.76s best:134786.792 next:[130286.209,134786.792] max_lp [skipped_logs=12]
#Bound 4.92s best:134786.792 next:[130389.092,134786.792] probing [skipped_logs=2]
#Model 5.26s var:1148/1192 constraints:1602/1650
#Bound 6.00s best:134786.792 next:[130504.741,134786.792] probing [skipped_logs=2]
#Bound 6.88s best:134786.792 next:[130575.687,134786.792] probing [skipped_logs=2]
#Bound 7.64s best:134786.792 next:[130575.693,134786.792] objective_lb_search [skipped_logs=0]
#Bound 8.23s best:134786.792 next:[130589.999,134786.792] probing [skipped_logs=1]
#Bound 9.34s best:134786.792 next:[130624.663,134786.792] probing [skipped_logs=3]
#Model 10.50s var:1146/1192 constraints:1600/1650
#Model 10.83s var:1144/1192 constraints:1598/1650
#Bound 10.86s best:134786.792 next:[130643.792,134786.792] probing [skipped_logs=2]
#Model 11.59s var:1142/1192 constraints:1596/1650
#Bound 11.69s best:134786.792 next:[130647.135,134786.792] probing [skipped_logs=1]
#Model 12.24s var:1138/1192 constraints:1592/1650
#Bound 12.47s best:134786.792 next:[130686.28,134786.792] probing [skipped_logs=0]
#Bound 13.36s best:134786.792 next:[130760.202,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1198 @root=11 restarts=2 lp_iters=[0, 0, 37'907, 7'006]) [skipped_logs=3]
#Model 14.51s var:1136/1192 constraints:1590/1650
#Model 14.80s var:1134/1192 constraints:1588/1650
#Bound 15.02s best:134786.792 next:[130776.831,134786.792] objective_lb_search [skipped_logs=1]
#Bound 15.74s best:134786.792 next:[130820.95,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1204 @root=13 restarts=2 lp_iters=[0, 0, 38'453, 7'006]) [skipped_logs=0]
#Model 16.48s var:1132/1192 constraints:1586/1650
#Bound 16.86s best:134786.792 next:[130966.399,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1216 @root=15 restarts=2 lp_iters=[0, 0, 39'196, 7'006]) [skipped_logs=6]
#Model 17.69s var:1130/1192 constraints:1584/1650
#Bound 17.58s best:134786.792 next:[130990.989,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1217 @root=16 restarts=2 lp_iters=[0, 0, 39'268, 7'006]) [skipped_logs=0]
#Bound 18.56s best:134786.792 next:[131036.835,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1222 @root=18 restarts=2 lp_iters=[0, 0, 39'789, 7'006]) [skipped_logs=1]
#Bound 19.51s best:134786.792 next:[131063.448,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1225 @root=19 restarts=2 lp_iters=[0, 0, 40'107, 7'006]) [skipped_logs=0]
#Bound 20.73s best:134786.792 next:[131095.46,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1231 @root=21 restarts=2 lp_iters=[0, 0, 40'617, 7'006]) [skipped_logs=1]
#Model 21.90s var:1128/1192 constraints:1582/1650
#Bound 21.99s best:134786.792 next:[131106.808,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1237 @root=23 restarts=2 lp_iters=[0, 0, 41'215, 7'006]) [skipped_logs=1]
#Model 22.12s var:1126/1192 constraints:1580/1650
#Bound 22.78s best:134786.792 next:[131152.027,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1238 @root=24 restarts=2 lp_iters=[0, 0, 41'292, 7'006]) [skipped_logs=0]
#Bound 23.88s best:134786.792 next:[131195.594,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1242 @root=26 restarts=2 lp_iters=[0, 0, 41'738, 7'006]) [skipped_logs=1]
#Bound 25.10s best:134786.792 next:[131196.013,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1245 @root=27 restarts=2 lp_iters=[0, 0, 42'082, 7'006])
#Model 25.31s var:1124/1192 constraints:1577/1650
#Bound 25.38s best:134786.792 next:[131225.63,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1249 @root=29 restarts=2 lp_iters=[0, 0, 42'453, 7'006]) [skipped_logs=1]
#Bound 26.51s best:134786.792 next:[131246.768,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1252 @root=30 restarts=2 lp_iters=[0, 0, 42'766, 7'006]) [skipped_logs=0]
#Bound 27.88s best:134786.792 next:[131291.724,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1257 @root=32 restarts=2 lp_iters=[0, 0, 43'530, 7'006]) [skipped_logs=1]
#Model 28.92s var:1122/1192 constraints:1575/1650
#Bound 28.07s best:134786.792 next:[131394.716,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1260 @root=33 restarts=2 lp_iters=[0, 0, 44'079, 7'006]) [skipped_logs=0]
#Model 29.10s var:1120/1192 constraints:1573/1650
#Bound 29.82s best:134786.792 next:[131500.684,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1276 @root=35 restarts=2 lp_iters=[0, 0, 45'523, 7'006]) [skipped_logs=7]
#Model 30.78s var:1118/1192 constraints:1571/1650
#Bound 30.79s best:134786.792 next:[131527.154,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1278 @root=36 restarts=2 lp_iters=[0, 0, 45'766, 7'006]) [skipped_logs=0]
#Bound 32.26s best:134786.792 next:[131529.643,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1283 @root=37 restarts=2 lp_iters=[0, 0, 46'500, 7'006])
#Model 33.13s var:1116/1192 constraints:1569/1650
#Bound 33.67s best:134786.792 next:[131539.576,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1288 @root=38 restarts=2 lp_iters=[0, 0, 47'242, 7'006])
#Model 34.89s var:1114/1192 constraints:1567/1650
#Bound 35.01s best:134786.792 next:[131549.156,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1292 @root=39 restarts=2 lp_iters=[0, 0, 47'787, 7'006])
#Model 35.20s var:1112/1192 constraints:1565/1650
#Bound 35.43s best:134786.792 next:[131572.473,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1295 @root=40 restarts=2 lp_iters=[0, 0, 48'033, 7'006])
#Model 36.49s var:1110/1192 constraints:1563/1650
#Bound 36.65s best:134786.792 next:[131602.665,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1297 @root=41 restarts=2 lp_iters=[0, 0, 48'535, 7'006])
#Bound 36.99s best:134786.792 next:[131609.409,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1301 @root=42 restarts=2 lp_iters=[0, 0, 48'972, 7'006]) [skipped_logs=0]
#Bound 38.44s best:134786.792 next:[131621.665,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1303 @root=43 restarts=2 lp_iters=[0, 0, 49'227, 7'006])
#Bound 39.76s best:134786.792 next:[131626.844,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1307 @root=44 restarts=2 lp_iters=[0, 0, 49'714, 7'006])
#Model 40.73s var:1108/1192 constraints:1561/1650
#Bound 40.79s best:134786.792 next:[131630.149,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1309 @root=45 restarts=2 lp_iters=[0, 0, 49'975, 7'006])
#Bound 41.26s best:134786.792 next:[131657.056,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1313 @root=46 restarts=2 lp_iters=[0, 0, 50'851, 7'006])
#Model 42.26s var:1106/1192 constraints:1559/1650
#Bound 42.35s best:134786.792 next:[131665.237,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1315 @root=47 restarts=2 lp_iters=[0, 0, 51'115, 7'006])
#Model 44.49s var:1104/1192 constraints:1557/1650
#Bound 44.80s best:134786.792 next:[131677.051,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1319 @root=48 restarts=2 lp_iters=[0, 0, 51'550, 7'006])
#Bound 45.71s best:134786.792 next:[131684.104,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1321 @root=49 restarts=2 lp_iters=[0, 0, 51'820, 7'006])
#Model 47.15s var:1102/1192 constraints:1555/1650
#Bound 47.38s best:134786.792 next:[131715.5,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1325 @root=50 restarts=2 lp_iters=[0, 0, 52'550, 7'006])
#Bound 47.58s best:134786.792 next:[131719.524,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1327 @root=51 restarts=2 lp_iters=[0, 0, 52'954, 7'006])
#Bound 50.37s best:134786.792 next:[131722.821,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1331 @root=52 restarts=2 lp_iters=[0, 0, 53'418, 7'006])
#Bound 50.56s best:134786.792 next:[131722.917,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1333 @root=53 restarts=2 lp_iters=[0, 0, 53'816, 7'006])
#Bound 50.64s best:134786.792 next:[131730.49,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1334 @root=53 restarts=2 lp_iters=[0, 0, 53'893, 7'006])
#Bound 51.01s best:134786.792 next:[131738.492,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1338 @root=54 restarts=2 lp_iters=[0, 0, 54'604, 7'006])
#Model 51.06s var:1100/1192 constraints:1553/1650
#Bound 52.62s best:134786.792 next:[131741.839,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1343 @root=55 restarts=2 lp_iters=[0, 0, 55'177, 7'190])
#Model 54.05s var:1098/1192 constraints:1551/1650
#Bound 54.46s best:134786.792 next:[131747.802,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1346 @root=56 restarts=2 lp_iters=[0, 0, 55'819, 7'190])
#Model 56.22s var:1096/1192 constraints:1549/1650
#Bound 56.58s best:134786.792 next:[131750.423,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1350 @root=57 restarts=2 lp_iters=[0, 0, 56'500, 7'190])
#Bound 57.22s best:134786.792 next:[131754,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1354 @root=58 restarts=2 lp_iters=[0, 0, 57'087, 7'190])
#Bound 60.53s best:134786.792 next:[131754.966,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1358 @root=59 restarts=2 lp_iters=[0, 0, 57'606, 7'190])
#Bound 60.95s best:134786.792 next:[131758.549,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1362 @root=60 restarts=2 lp_iters=[0, 0, 58'264, 7'190])
#Bound 60.97s best:134786.792 next:[131758.968,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1363 @root=60 restarts=2 lp_iters=[0, 0, 58'275, 7'190])
#Bound 61.03s best:134786.792 next:[131759.314,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1364 @root=60 restarts=2 lp_iters=[0, 0, 58'287, 7'190])
#Bound 61.13s best:134786.792 next:[131767.652,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1366 @root=60 restarts=2 lp_iters=[0, 0, 58'381, 7'190])
#Model 62.15s var:1094/1192 constraints:1547/1650
#Bound 62.69s best:134786.792 next:[131792.166,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1368 @root=61 restarts=2 lp_iters=[0, 0, 58'660, 7'190])
#Bound 63.34s best:134786.792 next:[131793.822,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1373 @root=62 restarts=2 lp_iters=[0, 0, 59'637, 7'190])
#Bound 63.35s best:134786.792 next:[131795.561,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1374 @root=62 restarts=2 lp_iters=[0, 0, 59'671, 7'190])
#Bound 63.55s best:134786.792 next:[131808.908,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1377 @root=62 restarts=2 lp_iters=[0, 0, 59'950, 7'190])
#Bound 63.74s best:134786.792 next:[131829.773,134786.792] lb_tree_search (nodes=8/8 rc=23 decisions=1378 @root=62 restarts=2 lp_iters=[0, 0, 60'322, 7'190]) [skipped_logs=0]
#Bound 64.49s best:134786.792 next:[131846.77,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1383 @root=62 restarts=2 lp_iters=[0, 0, 61'459, 7'372]) [skipped_logs=1]
#Bound 65.93s best:134786.792 next:[131861.673,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1386 @root=63 restarts=2 lp_iters=[0, 0, 61'882, 7'372]) [skipped_logs=0]
#Model 67.27s var:1092/1192 constraints:1545/1650
#Model 69.77s var:1090/1192 constraints:1543/1650
#Model 70.24s var:1088/1192 constraints:1541/1650
#Bound 70.26s best:134786.792 next:[131869.193,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1390 @root=64 restarts=2 lp_iters=[0, 0, 62'373, 7'372])
#Bound 72.53s best:134786.792 next:[131896.479,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1396 @root=65 restarts=2 lp_iters=[0, 0, 63'040, 7'372])
#Bound 74.33s best:134786.792 next:[131927.771,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1398 @root=66 restarts=2 lp_iters=[0, 0, 63'313, 7'372])
#Model 74.44s var:1086/1192 constraints:1539/1650
#Model 75.57s var:1084/1192 constraints:1537/1650
#Bound 76.24s best:134786.792 next:[131943.907,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1400 @root=67 restarts=2 lp_iters=[0, 0, 63'586, 7'372])
#Model 76.42s var:1082/1192 constraints:1535/1650
#Bound 76.71s best:134786.792 next:[131952.935,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1402 @root=68 restarts=2 lp_iters=[0, 0, 63'862, 7'372])
#Bound 78.17s best:134786.792 next:[131964.168,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1404 @root=69 restarts=2 lp_iters=[0, 0, 64'138, 7'372])
#Bound 78.88s best:134786.792 next:[131965.687,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1410 @root=70 restarts=2 lp_iters=[0, 0, 65'184, 7'372])
#Model 80.36s var:1080/1192 constraints:1533/1650
#Bound 80.47s best:134786.792 next:[131982.298,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1412 @root=71 restarts=2 lp_iters=[0, 0, 65'463, 7'372])
#Model 82.31s var:1078/1192 constraints:1531/1650
#Bound 84.13s best:134786.792 next:[131990.547,134786.792] lb_tree_search (nodes=9/9 rc=23 decisions=1417 @root=72 restarts=2 lp_iters=[0, 0, 66'053, 7'372])
#Bound 88.75s best:134786.792 next:[131992.892,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1424 @root=74 restarts=2 lp_iters=[0, 0, 67'169, 7'681])
#Bound 89.01s best:134786.792 next:[132004.424,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1426 @root=75 restarts=2 lp_iters=[0, 0, 67'635, 7'681])
#Bound 92.50s best:134786.792 next:[132010.3,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1432 @root=76 restarts=2 lp_iters=[0, 0, 68'288, 7'681])
#Bound 93.02s best:134786.792 next:[132013.933,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1438 @root=77 restarts=2 lp_iters=[0, 0, 68'927, 7'681])
#Bound 93.34s best:134786.792 next:[132033.411,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1439 @root=77 restarts=2 lp_iters=[0, 0, 69'479, 7'681])
#Bound 94.68s best:134786.792 next:[132039.967,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1441 @root=78 restarts=2 lp_iters=[0, 0, 69'755, 7'681])
#Model 95.81s var:1076/1192 constraints:1529/1650
#Bound 98.11s best:134786.792 next:[132046.842,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1447 @root=79 restarts=2 lp_iters=[0, 0, 70'740, 7'681])
#Bound 98.70s best:134786.792 next:[132052.691,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1451 @root=80 restarts=2 lp_iters=[0, 0, 71'347, 7'681])
#Bound 100.12s best:134786.792 next:[132062.393,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1453 @root=81 restarts=2 lp_iters=[0, 0, 71'623, 7'681])
#Bound 100.63s best:134786.792 next:[132069.442,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1455 @root=82 restarts=2 lp_iters=[0, 0, 72'474, 7'681])
#Bound 102.06s best:134786.792 next:[132078.306,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1457 @root=83 restarts=2 lp_iters=[0, 0, 72'750, 7'681])
#Bound 102.23s best:134786.792 next:[132078.432,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1458 @root=83 restarts=2 lp_iters=[0, 0, 73'047, 7'681])
#Model 103.47s var:1074/1192 constraints:1527/1650
#Bound 106.16s best:134786.792 next:[132090.115,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1464 @root=84 restarts=2 lp_iters=[0, 0, 73'864, 7'681])
#Bound 106.54s best:134786.792 next:[132114.348,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1466 @root=85 restarts=2 lp_iters=[0, 0, 74'534, 7'681])
#Model 107.81s var:1072/1192 constraints:1525/1650
#Model 109.24s var:1070/1192 constraints:1523/1650
#Bound 112.04s best:134786.792 next:[132121.999,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1471 @root=87 restarts=2 lp_iters=[0, 0, 75'691, 7'681])
#Bound 112.35s best:134786.792 next:[132135.298,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1473 @root=88 restarts=2 lp_iters=[0, 0, 76'220, 7'681])
#Bound 112.44s best:134786.792 next:[132136.539,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1474 @root=88 restarts=2 lp_iters=[0, 0, 76'261, 7'681])
#Bound 112.50s best:134786.792 next:[132136.54,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1475 @root=88 restarts=2 lp_iters=[0, 0, 76'262, 7'681])
#Bound 112.56s best:134786.792 next:[132136.557,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1476 @root=88 restarts=2 lp_iters=[0, 0, 76'275, 7'681])
#Bound 112.77s best:134786.792 next:[132146.729,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1479 @root=88 restarts=2 lp_iters=[0, 0, 76'551, 7'681])
#Model 115.21s var:1068/1192 constraints:1521/1650
#Model 115.56s var:1066/1192 constraints:1519/1650
#Bound 116.63s best:134786.792 next:[132155.978,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1485 @root=89 restarts=2 lp_iters=[0, 0, 77'222, 7'681])
#Bound 119.15s best:134786.792 next:[132162.32,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1491 @root=90 restarts=2 lp_iters=[0, 0, 77'918, 7'681])
#Model 119.25s var:1064/1192 constraints:1517/1650
#Model 120.67s var:1062/1192 constraints:1515/1650
#Bound 121.25s best:134786.792 next:[132169.919,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1493 @root=91 restarts=2 lp_iters=[0, 0, 78'473, 7'681])
#Model 123.02s var:1060/1192 constraints:1513/1650
#Bound 123.63s best:134786.792 next:[132179.829,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1497 @root=92 restarts=2 lp_iters=[0, 0, 79'337, 7'681])
#Model 124.79s var:1058/1192 constraints:1511/1650
#Bound 126.79s best:134786.792 next:[132182.334,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1499 @root=93 restarts=2 lp_iters=[0, 0, 79'616, 7'681])
#Bound 129.02s best:134786.792 next:[132183.324,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1501 @root=94 restarts=2 lp_iters=[0, 0, 79'898, 7'681])
#Model 130.89s var:1056/1192 constraints:1509/1650
#Bound 131.51s best:134786.792 next:[132187.967,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1504 @root=95 restarts=2 lp_iters=[0, 0, 80'196, 7'681])
#Bound 133.89s best:134786.792 next:[132208.334,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1509 @root=96 restarts=2 lp_iters=[0, 0, 80'734, 7'681])
#Bound 136.34s best:134786.792 next:[132214.95,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1514 @root=97 restarts=2 lp_iters=[0, 0, 81'311, 7'681])
#Bound 136.63s best:134786.792 next:[132217.088,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1516 @root=98 restarts=2 lp_iters=[0, 0, 81'800, 7'681])
#Model 137.96s var:1054/1192 constraints:1507/1650
#Model 138.15s var:1052/1192 constraints:1504/1650
#Model 139.67s var:1050/1192 constraints:1502/1650
#Bound 140.85s best:134786.792 next:[132217.8,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1518 @root=99 restarts=2 lp_iters=[0, 0, 82'079, 7'681])
#Bound 143.53s best:134786.792 next:[132227.852,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1522 @root=100 restarts=2 lp_iters=[0, 0, 82'671, 7'681])
#Bound 143.96s best:134786.792 next:[132234.53,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1526 @root=101 restarts=2 lp_iters=[0, 0, 83'271, 7'681])
#Bound 144.03s best:134786.792 next:[132237.086,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1527 @root=101 restarts=2 lp_iters=[0, 0, 83'314, 7'681])
#Bound 144.11s best:134786.792 next:[132260.085,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1529 @root=101 restarts=2 lp_iters=[0, 0, 83'395, 7'681])
#Bound 144.30s best:134786.792 next:[132275.159,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1532 @root=101 restarts=2 lp_iters=[0, 0, 83'668, 7'681])
#Bound 144.69s best:134786.792 next:[132289.47,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1533 @root=101 restarts=2 lp_iters=[0, 0, 84'264, 7'681])
#Bound 145.11s best:134786.792 next:[132290.072,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1535 @root=101 restarts=2 lp_iters=[0, 0, 84'716, 7'681])
#Bound 146.38s best:134786.792 next:[132306.899,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1537 @root=102 restarts=2 lp_iters=[0, 0, 84'986, 7'681])
#Bound 146.58s best:134786.792 next:[132309.976,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1538 @root=102 restarts=2 lp_iters=[0, 0, 85'346, 7'681])
#Bound 146.89s best:134786.792 next:[132313.922,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1539 @root=102 restarts=2 lp_iters=[0, 0, 85'820, 7'681])
#Bound 146.95s best:134786.792 next:[132314.104,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1540 @root=102 restarts=2 lp_iters=[0, 0, 85'834, 7'681])
#Bound 147.04s best:134786.792 next:[132315.596,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1541 @root=102 restarts=2 lp_iters=[0, 0, 85'870, 7'681])
#Bound 147.15s best:134786.792 next:[132316.891,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1543 @root=102 restarts=2 lp_iters=[0, 0, 85'960, 7'681])
#Model 148.94s var:1048/1192 constraints:1500/1650
#Bound 151.10s best:134786.792 next:[132324.115,134786.792] lb_tree_search (nodes=10/10 rc=23 decisions=1549 @root=103 restarts=2 lp_iters=[0, 0, 86'509, 7'681])
#Model 154.64s var:1046/1192 constraints:1498/1650
#Bound 157.31s best:134786.792 next:[132334.478,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1563 @root=105 restarts=2 lp_iters=[0, 0, 88'219, 7'837])
#Bound 157.58s best:134786.792 next:[132347.23,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1565 @root=106 restarts=2 lp_iters=[0, 0, 88'688, 7'837])
#Bound 164.34s best:134786.792 next:[132347.36,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1571 @root=108 restarts=2 lp_iters=[0, 0, 89'913, 7'837])
#Bound 167.57s best:134786.792 next:[132351.865,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1577 @root=109 restarts=2 lp_iters=[0, 0, 90'825, 7'837])
#Model 169.17s var:1044/1192 constraints:1496/1650
#Bound 170.23s best:134786.792 next:[132362.908,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1579 @root=110 restarts=2 lp_iters=[0, 0, 91'353, 7'837])
#Model 173.58s var:1042/1192 constraints:1494/1650
#Bound 174.81s best:134786.792 next:[132365.815,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1586 @root=111 restarts=2 lp_iters=[0, 0, 92'178, 7'837])
#Bound 175.32s best:134786.792 next:[132368.353,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1590 @root=112 restarts=2 lp_iters=[0, 0, 93'024, 7'837])
#Bound 176.88s best:134786.792 next:[132372.052,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1593 @root=113 restarts=2 lp_iters=[0, 0, 93'633, 7'837])
#Bound 180.59s best:134786.792 next:[132372.51,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1600 @root=114 restarts=2 lp_iters=[0, 0, 95'278, 7'837])
#Bound 181.09s best:134786.792 next:[132372.795,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1603 @root=115 restarts=2 lp_iters=[0, 0, 96'075, 7'837])
#Bound 181.86s best:134786.792 next:[132387.413,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1607 @root=115 restarts=2 lp_iters=[0, 0, 97'288, 7'837])
#Bound 182.61s best:134786.792 next:[132387.824,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1612 @root=115 restarts=2 lp_iters=[0, 0, 98'500, 7'837])
#Bound 187.00s best:134786.792 next:[132397.581,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1615 @root=116 restarts=2 lp_iters=[0, 0, 99'017, 7'837])
#Bound 190.13s best:134786.792 next:[132397.808,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1618 @root=117 restarts=2 lp_iters=[0, 0, 99'815, 7'837])
#Bound 193.19s best:134786.792 next:[132397.967,134786.792] lb_tree_search (nodes=11/11 rc=23 decisions=1621 @root=118 restarts=2 lp_iters=[0, 0, 100'627, 7'837])
#Model 194.37s var:1040/1192 constraints:1492/1650
#Model 196.22s var:1036/1192 constraints:1488/1650
#Model 198.81s var:1034/1192 constraints:1486/1650
#Model 200.93s var:1032/1192 constraints:1484/1650
#Bound 202.18s best:134786.792 next:[132403.374,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1629 @root=120 restarts=2 lp_iters=[0, 0, 101'831, 7'941])
#Model 203.79s var:1030/1192 constraints:1482/1650
#Model 204.27s var:1026/1192 constraints:1478/1650
#Model 205.04s var:1024/1192 constraints:1476/1650
#Bound 205.69s best:134786.792 next:[132414.819,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1636 @root=121 restarts=2 lp_iters=[0, 0, 102'780, 7'941])
#Bound 210.01s best:134786.792 next:[132418.265,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1639 @root=122 restarts=2 lp_iters=[0, 0, 103'382, 7'941])
#Model 211.70s var:1022/1192 constraints:1474/1650
#Bound 214.70s best:134786.792 next:[132422.482,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1642 @root=123 restarts=2 lp_iters=[0, 0, 103'984, 7'941])
#Model 216.32s var:1020/1192 constraints:1472/1650
#Model 217.60s var:1018/1192 constraints:1470/1650
#Bound 219.18s best:134786.792 next:[132426.411,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1645 @root=124 restarts=2 lp_iters=[0, 0, 104'593, 7'941])
#Model 219.92s var:1016/1192 constraints:1468/1650
#Model 220.43s var:1014/1192 constraints:1466/1650
#Model 222.46s var:1012/1192 constraints:1464/1650
#Bound 224.03s best:134786.792 next:[132431.053,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1650 @root=125 restarts=2 lp_iters=[0, 0, 105'358, 7'941])
#Bound 225.55s best:134786.792 next:[132435.568,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1655 @root=126 restarts=2 lp_iters=[0, 0, 106'089, 7'941])
#Bound 225.56s best:134786.792 next:[132435.579,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1656 @root=126 restarts=2 lp_iters=[0, 0, 106'096, 7'941])
#Bound 225.63s best:134786.792 next:[132435.882,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1657 @root=126 restarts=2 lp_iters=[0, 0, 106'143, 7'941])
#Model 228.14s var:1010/1192 constraints:1462/1650
#Bound 230.54s best:134786.792 next:[132437.878,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1659 @root=127 restarts=2 lp_iters=[0, 0, 106'401, 7'941])
#Bound 235.17s best:134786.792 next:[132446.197,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1664 @root=128 restarts=2 lp_iters=[0, 0, 107'069, 7'941])
#Bound 240.06s best:134786.792 next:[132446.613,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1669 @root=129 restarts=2 lp_iters=[0, 0, 107'771, 7'941])
#Model 240.17s var:1008/1192 constraints:1460/1650
#Bound 244.98s best:134786.792 next:[132450.454,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1674 @root=130 restarts=2 lp_iters=[0, 0, 108'497, 7'941])
#Bound 249.98s best:134786.792 next:[132451.86,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1679 @root=131 restarts=2 lp_iters=[0, 0, 109'248, 7'941])
#Model 253.75s var:1006/1192 constraints:1458/1650
#Bound 255.09s best:134786.792 next:[132454.073,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1684 @root=132 restarts=2 lp_iters=[0, 0, 110'002, 7'941])
#Model 256.33s var:1004/1192 constraints:1456/1650
#Bound 260.29s best:134786.792 next:[132454.575,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1689 @root=133 restarts=2 lp_iters=[0, 0, 110'806, 7'941])
#Bound 264.67s best:134786.792 next:[132459.556,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1694 @root=134 restarts=2 lp_iters=[0, 0, 111'560, 7'941])
#Bound 265.38s best:134786.792 next:[132462.068,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1699 @root=135 restarts=2 lp_iters=[0, 0, 112'566, 7'941])
#Bound 265.41s best:134786.792 next:[132463.211,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1700 @root=135 restarts=2 lp_iters=[0, 0, 112'621, 7'941])
#Bound 265.51s best:134786.792 next:[132479.277,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1702 @root=135 restarts=2 lp_iters=[0, 0, 112'707, 7'941])
#Model 267.62s var:1000/1192 constraints:1452/1650
#Bound 271.31s best:134786.792 next:[132483.707,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1705 @root=136 restarts=2 lp_iters=[0, 0, 113'309, 7'941])
#Model 274.54s var:998/1192 constraints:1450/1650
#Model 274.69s var:996/1192 constraints:1448/1650
#Bound 276.00s best:134786.792 next:[132501.862,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1708 @root=137 restarts=2 lp_iters=[0, 0, 113'911, 7'941])
#Bound 276.53s best:134786.792 next:[132506.568,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1712 @root=138 restarts=2 lp_iters=[0, 0, 114'670, 7'941])
#Bound 278.21s best:134786.792 next:[132515.668,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1714 @root=139 restarts=2 lp_iters=[0, 0, 114'931, 7'941])
#Model 279.04s var:994/1192 constraints:1445/1650
#Bound 279.10s best:134786.792 next:[132519.695,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1721 @root=140 restarts=2 lp_iters=[0, 0, 116'208, 7'941])
#Model 280.21s var:992/1192 constraints:1443/1650
#Bound 281.15s best:134786.792 next:[132536.257,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1723 @root=141 restarts=2 lp_iters=[0, 0, 116'469, 7'941])
#Bound 285.50s best:134786.792 next:[132538.549,134786.792] lb_tree_search (nodes=12/12 rc=23 decisions=1728 @root=142 restarts=2 lp_iters=[0, 0, 117'724, 7'941])
#Bound 287.56s best:134786.792 next:[132551.207,134786.792] lb_tree_search (nodes=13/13 rc=23 decisions=1732 @root=143 restarts=2 lp_iters=[0, 0, 118'503, 8'289])
#Model 290.05s var:990/1192 constraints:1441/1650
#Bound 293.15s best:134786.792 next:[132560.196,134786.792] lb_tree_search (nodes=13/13 rc=23 decisions=1739 @root=144 restarts=2 lp_iters=[0, 0, 119'562, 8'289])
#Model 293.45s var:986/1192 constraints:1435/1650
#Bound 294.93s best:134786.792 next:[132569.319,134786.792] lb_tree_search (nodes=13/13 rc=23 decisions=1745 @root=145 restarts=2 lp_iters=[0, 0, 120'442, 8'289])
#Bound 295.15s best:134786.792 next:[132569.879,134786.792] lb_tree_search (nodes=13/13 rc=23 decisions=1747 @root=145 restarts=2 lp_iters=[0, 0, 120'823, 8'289])
#Bound 295.23s best:134786.792 next:[132572.669,134786.792] lb_tree_search (nodes=13/13 rc=23 decisions=1748 @root=145 restarts=2 lp_iters=[0, 0, 120'869, 8'289])
#Bound 295.28s best:134786.792 next:[132572.67,134786.792] lb_tree_search (nodes=13/13 rc=23 decisions=1749 @root=145 restarts=2 lp_iters=[0, 0, 120'870, 8'289])
#Bound 295.42s best:134786.792 next:[132575.539,134786.792] lb_tree_search (nodes=14/14 rc=23 decisions=1753 @root=145 restarts=2 lp_iters=[0, 0, 121'044, 8'376])
#Bound 295.64s best:134786.792 next:[132588.405,134786.792] lb_tree_search (nodes=14/14 rc=23 decisions=1754 @root=145 restarts=2 lp_iters=[0, 0, 121'392, 8'376])
#Bound 295.92s best:134786.792 next:[132588.419,134786.792] lb_tree_search (nodes=14/14 rc=23 decisions=1756 @root=145 restarts=2 lp_iters=[0, 0, 121'823, 8'376])
#Bound 295.93s best:134786.792 next:[132588.427,134786.792] lb_tree_search (nodes=14/14 rc=23 decisions=1757 @root=145 restarts=2 lp_iters=[0, 0, 121'830, 8'376])
#Bound 296.01s best:134786.792 next:[132590.83,134786.792] lb_tree_search (nodes=14/14 rc=23 decisions=1758 @root=145 restarts=2 lp_iters=[0, 0, 121'890, 8'376])
#Bound 296.06s best:134786.792 next:[132590.838,134786.792] lb_tree_search (nodes=14/14 rc=23 decisions=1759 @root=145 restarts=2 lp_iters=[0, 0, 121'903, 8'376])
#Bound 296.18s best:134786.792 next:[132591.516,134786.792] lb_tree_search (nodes=15/15 rc=23 decisions=1762 @root=145 restarts=2 lp_iters=[0, 0, 121'990, 8'411])
#Bound 296.40s best:134786.792 next:[132593.648,134786.792] lb_tree_search (nodes=16/16 rc=23 decisions=1766 @root=145 restarts=2 lp_iters=[0, 0, 122'250, 8'472])
#Bound 296.61s best:134786.792 next:[132594.076,134786.792] lb_tree_search (nodes=16/16 rc=23 decisions=1767 @root=145 restarts=2 lp_iters=[0, 0, 122'526, 8'472])
#Bound 296.74s best:134786.792 next:[132609.513,134786.792] lb_tree_search (nodes=17/17 rc=23 decisions=1770 @root=145 restarts=2 lp_iters=[0, 0, 122'612, 8'552])
#Bound 299.04s best:134786.792 next:[132611.639,134786.792] lb_tree_search (nodes=17/17 rc=23 decisions=1773 @root=146 restarts=2 lp_iters=[0, 0, 123'214, 8'552])
#Bound 299.09s best:134786.792 next:[132613.528,134786.792] lb_tree_search (nodes=17/17 rc=23 decisions=1774 @root=146 restarts=2 lp_iters=[0, 0, 123'300, 8'552])
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 2 [ 2.22ms, 3.69m] 1.85m 1.85m 3.69m
'default_lp': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 76.53ms, 2.74m] 1.37m 1.37m 2.75m
'feasibility_pump': 1474 [106.46us, 159.05ms] 3.21ms 9.04ms 4.74s 1471 [234.65us, 68.17ms] 629.97us 3.82ms 926.69ms
'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': 575 [ 7.98ms, 668.03ms] 257.92ms 169.56ms 2.47m 575 [ 5.96us, 119.71ms] 64.90ms 47.56ms 37.32s
'graph_cst_lns': 526 [ 13.12ms, 772.38ms] 282.44ms 162.15ms 2.48m 526 [ 23.47us, 108.48ms] 65.48ms 42.54ms 34.44s
'graph_dec_lns': 530 [ 1.09ms, 805.96ms] 278.72ms 182.90ms 2.46m 529 [ 10.00ns, 102.47ms] 60.99ms 44.16ms 32.26s
'graph_var_lns': 559 [ 6.14ms, 626.06ms] 264.87ms 167.63ms 2.47m 559 [ 10.00ns, 115.40ms] 66.22ms 45.97ms 37.02s
'lb_relax_lns': 128 [169.75ms, 2.53s] 1.21s 724.30ms 2.59m 128 [ 26.98ms, 550.00ms] 340.56ms 215.74ms 43.59s
'lb_tree_search': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [181.13ms, 3.01m] 1.51m 1.51m 3.02m
'ls': 680 [ 12.00ms, 456.58ms] 216.73ms 30.74ms 2.46m 679 [100.00ms, 100.03ms] 100.01ms 4.54us 1.13m
'ls_lin': 691 [138.75ms, 392.99ms] 213.54ms 28.04ms 2.46m 691 [100.00ms, 100.04ms] 100.01ms 4.86us 1.15m
'max_lp': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [204.06ms, 2.64m] 1.32m 1.32m 2.64m
'no_lp': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 2.54ms, 2.49m] 1.25m 1.25m 2.49m
'objective_lb_search': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 77.04ms, 3.02m] 1.51m 1.51m 3.02m
'probing': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 80.16ms, 2.18m] 1.09m 1.09m 2.18m
'pseudo_costs': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 26.46ms, 2.51m] 1.26m 1.26m 2.51m
'quick_restart': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 80.21ms, 2.85m] 1.42m 1.42m 2.85m
'quick_restart_no_lp': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 2.54ms, 3.06m] 1.53m 1.53m 3.06m
'reduced_costs': 1 [ 5.00m, 5.00m] 5.00m 0.00ns 5.00m 2 [ 34.29ms, 2.73m] 1.36m 1.36m 2.73m
'rins/rens': 641 [449.90us, 787.28ms] 232.06ms 202.38ms 2.48m 556 [737.00ns, 100.22ms] 58.55ms 45.54ms 32.55s
'rnd_cst_lns': 509 [ 11.43ms, 832.69ms] 289.78ms 164.64ms 2.46m 509 [504.00ns, 104.21ms] 65.12ms 41.23ms 33.15s
'rnd_var_lns': 527 [ 8.24ms, 813.39ms] 280.86ms 167.51ms 2.47m 527 [197.00ns, 104.30ms] 63.44ms 42.97ms 33.43s
Search stats Bools Conflicts Branches Restarts BacktrackToRoot Backtrack BoolPropag IntegerPropag
'core': 1'220 2'874'858 6'028'371 12'282 42'025 2'846'709 262'210'586 251'551'889
'default_lp': 728 9'186 2'206'566 66 272'232 557'446 28'701'213 119'052'366
'fs_random': 0 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0
'lb_tree_search': 596 2'741 2'722'432 0 338'472 676'042 28'048'392 147'376'207
'max_lp': 596 7'253 2'259'989 77 281'928 560'392 23'326'849 122'303'426
'no_lp': 596 3'166'528 4'446'206 2'390 69'639 3'372'935 178'009'060 545'875'607
'objective_lb_search': 735 5'855 2'308'358 58 290'413 578'793 27'018'474 123'614'776
'probing': 796 31 2'161 0 1'976 1'987 32'444 99'618
'pseudo_costs': 596 9'038 2'145'798 82 268'812 531'369 22'079'902 115'737'484
'quick_restart': 686 4'531 2'503'780 81 319'639 635'102 30'027'364 131'021'503
'quick_restart_no_lp': 1'352 793'402 9'663'375 71'327 344'765 1'238'647 143'006'548 292'451'529
'reduced_costs': 608 10'500 2'241'238 90 288'218 556'201 22'697'262 118'150'538
SAT formula Fixed Equiv Total VarLeft BinaryClauses PermanentClauses TemporaryClauses
'core': 108 28 1'220 1'084 7'464 23'812 12'523
'default_lp': 106 2 728 620 4'990 9'361 4'731
'fs_random': 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0
'lb_tree_search': 101 2 596 493 4'404 8'971 36
'max_lp': 103 2 596 491 4'608 9'235 3'305
'no_lp': 103 2 596 491 4'428 33'865 4'644
'objective_lb_search': 177 2 735 556 4'624 9'241 318
'probing': 111 0 796 685 25'022 9'498 10
'pseudo_costs': 103 2 596 491 4'380 9'283 4'912
'quick_restart': 104 2 686 580 4'792 9'157 711
'quick_restart_no_lp': 130 11 1'352 1'211 9'250 24'593 10'276
'reduced_costs': 100 2 608 506 4'498 8'799 6'619
SAT stats ClassicMinim LitRemoved LitRemovedBinary LitLearned LitForgotten Subsumed
'core': 2'144'613 21'286'743 6'214'877 203'011'528 143'780'766 757'562
'default_lp': 6'196 80'560 168'410 411'490 0 3'297
'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': 577 2'134 17'112 24'638 0 2'224
'max_lp': 4'668 69'934 120'156 370'762 0 3'032
'no_lp': 3'026'063 27'994'916 7'644'843 174'606'707 36'414'219 2'563'061
'objective_lb_search': 3'324 85'630 45'000 94'882 0 3'325
'probing': 5 25 411 1'213 0 1
'pseudo_costs': 6'329 101'976 156'810 526'102 0 3'176
'quick_restart': 1'997 22'173 42'566 76'934 0 2'859
'quick_restart_no_lp': 695'218 10'549'656 14'157'156 45'001'521 38'198'380 95'934
'reduced_costs': 7'133 166'978 168'825 730'197 0 3'077
Vivification Clauses Decisions LitTrue Subsumed LitRemoved DecisionReused Conflicts
'core': 31'555 587'918 0 4'957 135'851 72'706 676
'default_lp': 479'228 2'104'881 1 3'775 26'773 583'300 56
'fs_random': 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0
'lb_tree_search': 595'215 2'622'859 1 3'052 20'947 749'172 34
'max_lp': 492'189 2'168'184 4 3'599 25'517 607'614 53
'no_lp': 224'336 844'584 106 5'201 50'901 535'044 88
'objective_lb_search': 500'403 2'212'657 10 3'582 25'596 616'576 57
'probing': 3 7 0 0 0 0 0
'pseudo_costs': 465'095 2'054'572 5 3'809 26'779 572'202 47
'quick_restart': 546'529 2'394'027 2 3'548 25'057 668'681 58
'quick_restart_no_lp': 314'052 1'657'092 4 16'012 141'572 189'549 1'128
'reduced_costs': 477'667 2'115'715 1 3'345 23'514 565'831 53
Clause deletion at_true l_and_not(l) to_binary sub_conflict sub_extra sub_decisions sub_eager sub_vivify sub_probing sub_inpro blocked eliminated forgotten promoted conflicts
'core': 1'645 25 39 712'089 85'259 115 45'473 4'957 17 4'341 0 0 1'998'536 6'720'671 2'874'858
'default_lp': 970 2 5 3'256 10 10 41 3'775 390 380 0 0 0 15'445 9'186
'fs_random': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'lb_tree_search': 993 1 10 2'209 0 14 15 3'052 399 597 0 0 0 686 2'741
'max_lp': 1'007 2 5 2'992 2 15 40 3'599 330 383 0 0 0 10'855 7'253
'no_lp': 4'309 465 4 2'558'883 2'058 34'334 4'178 5'201 1'328 634 0 0 520'361 6'477'505 3'166'528
'objective_lb_search': 2'188 7 6 3'255 4 40 70 3'582 312 543 0 0 0 4'980 5'855
'probing': 0 0 0 1 0 0 0 0 0 0 0 0 0 16 31
'pseudo_costs': 829 2 7 3'139 5 17 37 3'809 323 448 0 0 0 14'644 9'038
'quick_restart': 834 2 6 2'831 2 14 28 3'548 342 607 0 0 0 3'684 4'531
'quick_restart_no_lp': 6'016 18 124 88'329 3'319 314 7'605 16'012 1'688 2'022 0 0 643'913 1'751'484 793'402
'reduced_costs': 1'021 2 10 3'040 4 12 37 3'345 307 484 0 0 0 44'403 10'500
Lp stats Component Iterations AddedCuts OPTIMAL DUAL_F. DUAL_U.
'default_lp': 1 888'049 9'129 24'113 16 479
'lb_tree_search': 1 244'830 6'694 2'240 716 0
'max_lp': 1 664'085 8'409 15'858 2'993 303
'objective_lb_search': 1 722'132 7'331 10'736 35 80
'probing': 1 328'438 5'940 1'627 127 2
'pseudo_costs': 1 829'255 7'906 20'816 4'275 329
'quick_restart': 1 538'200 7'509 9'582 44 74
'reduced_costs': 1 994'818 7'404 19'219 5'429 404
Lp dimension Final dimension of first component
'default_lp': 1702 rows, 1119 columns, 37473 entries
'lb_tree_search': 2280 rows, 1192 columns, 102264 entries
'max_lp': 1340 rows, 1192 columns, 32006 entries
'objective_lb_search': 1519 rows, 1119 columns, 37317 entries
'probing': 1600 rows, 1119 columns, 37096 entries
'pseudo_costs': 1369 rows, 1192 columns, 29474 entries
'quick_restart': 1683 rows, 1119 columns, 49916 entries
'reduced_costs': 1041 rows, 1192 columns, 17776 entries
Lp debug CutPropag CutEqPropag Adjust Overflow Bad BadScaling
'default_lp': 0 10 24'559 0 180'221 0
'lb_tree_search': 0 4 2'956 0 729'574 0
'max_lp': 0 36 19'131 0 325'119 0
'objective_lb_search': 0 31 10'832 0 281'570 0
'probing': 0 5 1'747 0 848'815 0
'pseudo_costs': 0 66 25'387 0 273'307 0
'quick_restart': 0 22 9'687 0 333'083 0
'reduced_costs': 0 4 24'994 0 314'869 0
Lp pool Constraints Updates Simplif Merged Shortened Split Strengthened Cuts/Call
'default_lp': 11'079 1'540 37'549 1 19'960 3'689 459 9'129/25'013
'lb_tree_search': 8'940 5'582 34'999 0 22'123 7'676 187 6'694/12'691
'max_lp': 10'655 2'964 42'426 0 24'709 7'541 293 8'409/20'873
'objective_lb_search': 9'282 1'694 36'371 0 19'714 4'494 265 7'331/15'925
'probing': 7'891 3'424 11'724 0 7'968 6'765 250 5'940/10'255
'pseudo_costs': 10'152 2'158 42'232 0 20'174 5'506 288 7'906/20'908
'quick_restart': 9'460 2'026 41'453 0 22'770 5'793 337 7'509/17'126
'reduced_costs': 9'650 2'350 48'497 0 27'750 6'001 350 7'404/17'439
Lp Cut reduced_costs max_lp quick_restart pseudo_costs probing lb_tree_search objective_lb_search default_lp
CG_FF: 64 27 7 32 16 4 22 80
CG_K: 38 17 3 16 5 2 11 55
CG_KL: 7 2 - 1 2 - 6 10
CG_R: 76 40 18 52 13 8 35 93
CG_RB: 116 66 46 125 37 28 75 146
CG_RBP: 45 32 14 39 18 11 26 65
Clique: 5 4 - 4 - 1 - -
IB: 1'434 1'236 1'173 1'697 1'045 349 1'124 1'773
MIR_1_FF: 290 343 351 374 436 249 464 486
MIR_1_K: 43 85 107 97 149 19 85 144
MIR_1_KL: 28 38 47 34 60 24 38 65
MIR_1_R: 38 9 9 15 6 31 8 14
MIR_1_RB: 129 154 133 176 148 82 191 232
MIR_1_RBP: 183 213 396 136 376 494 231 243
MIR_1_RLT: 2 3 - 3 - - - -
MIR_2_FF: 419 387 322 348 270 236 307 592
MIR_2_K: 100 181 162 127 110 83 159 214
MIR_2_KL: 37 36 26 36 43 30 25 33
MIR_2_R: 119 35 29 41 15 18 29 41
MIR_2_RB: 355 260 159 268 211 135 217 258
MIR_2_RBP: 233 213 226 342 194 176 254 238
MIR_3_FF: 335 315 256 322 169 290 212 285
MIR_3_K: 62 260 299 185 95 194 240 195
MIR_3_KL: 27 19 7 20 22 25 17 16
MIR_3_R: 73 32 14 47 10 16 17 30
MIR_3_RB: 293 234 118 241 140 140 148 197
MIR_3_RBP: 155 267 387 270 198 298 348 236
MIR_4_FF: 242 246 209 252 155 212 174 202
MIR_4_K: 50 277 246 208 68 232 245 221
MIR_4_KL: 17 15 13 12 11 12 13 20
MIR_4_R: 60 22 6 26 9 7 13 19
MIR_4_RB: 206 133 63 132 80 90 101 127
MIR_4_RBP: 125 336 355 238 113 362 342 237
MIR_5_FF: 183 167 152 199 110 183 109 140
MIR_5_K: 43 219 189 127 51 229 173 155
MIR_5_KL: 26 26 14 29 30 30 11 25
MIR_5_R: 31 26 6 19 3 14 3 14
MIR_5_RB: 131 106 37 77 46 70 50 95
MIR_5_RBP: 108 280 304 173 106 372 297 226
MIR_6_FF: 123 112 103 113 85 114 67 109
MIR_6_K: 57 177 132 98 47 172 163 116
MIR_6_KL: 51 50 24 37 42 44 34 33
MIR_6_R: 24 23 3 22 4 8 3 17
MIR_6_RB: 115 88 22 73 24 40 27 71
MIR_6_RBP: 153 291 229 172 152 373 270 168
ZERO_HALF_FF: 69 29 19 34 16 8 34 50
ZERO_HALF_K: 14 6 5 6 5 1 5 12
ZERO_HALF_KL: 3 2 2 1 5 1 3 5
ZERO_HALF_R: 716 1'002 832 673 781 890 766 1'109
ZERO_HALF_RB: 105 169 138 104 135 192 75 137
ZERO_HALF_RBP: 46 99 97 33 74 95 64 80
LNS stats Improv/Calls Closed Difficulty TimeLimit
'graph_arc_lns': 46/575 50% 4.73e-01 0.12
'graph_cst_lns': 50/526 50% 6.90e-01 0.11
'graph_dec_lns': 56/529 50% 8.46e-01 0.10
'graph_var_lns': 40/559 50% 7.11e-01 0.11
'lb_relax_lns': 44/128 50% 5.23e-01 0.52
'rins/rens': 428/581 50% 5.98e-01 0.10
'rnd_cst_lns': 58/509 51% 8.38e-01 0.10
'rnd_var_lns': 69/527 50% 8.26e-01 0.10
LS stats Batches Restarts/Perturbs LinMoves GenMoves CompoundMoves Bactracks WeightUpdates ScoreComputed
'ls_lin_restart': 154 40 2'321'739 0 0 0 718'993 85'810'415
'ls_lin_restart_compound': 71 31 0 1'514'814 95'937 709'352 5'862 33'253'656
'ls_lin_restart_compound_perturb': 100 33 0 2'088'953 126'189 981'200 6'544 46'652'738
'ls_lin_restart_decay': 86 31 1'648'556 0 0 0 36'697 32'476'502
'ls_lin_restart_decay_compound': 57 26 0 1'054'107 151'292 451'265 1'063 27'209'780
'ls_lin_restart_decay_compound_perturb': 74 28 0 1'369'772 193'954 587'703 1'351 36'158'430
'ls_lin_restart_decay_perturb': 73 24 1'408'767 0 0 0 31'206 27'636'025
'ls_lin_restart_perturb': 76 25 1'233'113 0 0 0 877'012 38'027'863
'ls_restart': 80 34 1'203'382 0 0 0 410'764 40'646'640
'ls_restart_compound': 81 37 0 1'712'326 117'289 797'356 6'934 37'950'938
'ls_restart_compound_perturb': 123 36 0 2'657'111 142'103 1'257'316 8'195 58'089'622
'ls_restart_decay': 94 29 1'782'496 0 0 0 39'217 34'948'654
'ls_restart_decay_compound': 60 26 0 1'088'437 157'263 465'471 1'074 29'324'449
'ls_restart_decay_compound_perturb': 87 25 0 1'658'378 220'319 718'846 1'289 42'563'445
'ls_restart_decay_perturb': 108 25 2'065'370 0 0 0 44'989 40'027'275
'ls_restart_perturb': 47 23 734'096 0 0 0 237'236 25'294'472
Solutions (5) Num Rank
'complete_hint': 2 [0,1]
'lb_relax_lns_int_h': 2 [4,5]
'no_lp': 2 [1,2]
'quick_restart_no_lp': 2 [2,3]
'rins_lp_lns': 2 [3,4]
Objective bounds Num
'am1_presolve': 1
'initial_domain': 1
'lb_tree_search': 233
'max_lp': 8
'objective_lb_search': 2
'probing': 19
'quick_restart': 1
'reduced_costs': 1
Solution repositories Added Queried Synchro
'alternative_path': 430 2'410 430
'best_solutions': 1'840 2'546 992
'fj solution hints': 0 0 0
'lp solutions': 721 354 676
'pump': 1'418 287
Improving bounds shared Num Sym
'default_lp': 6 0
'lb_tree_search': 104 0
'max_lp': 67 0
'objective_lb_search': 4 0
'probing': 25 0
'pseudo_costs': 13 0
'quick_restart': 11 0
'quick_restart_no_lp': 37 0
'reduced_costs': 10 0
Clauses shared #Exported #Imported #BinaryRead #BinaryTotal
'core': 1'229 13'243 4'000 4'119
'default_lp': 219 13'912 4'032 4'119
'lb_tree_search': 165 13'605 3'882 4'119
'max_lp': 329 13'746 4'000 4'119
'no_lp': 11'848 3'783 4'032 4'119
'objective_lb_search': 230 13'892 4'001 4'119
'probing': 3'966 10'311 2'911 4'119
'pseudo_costs': 263 13'878 4'000 4'119
'quick_restart': 310 13'642 4'000 4'119
'quick_restart_no_lp': 2'768 11'687 4'032 4'119
'reduced_costs': 286 13'265 3'848 4'119
LRAT_status: NA
[Scaling] scaled_objective_bound: 132614 corrected_bound: 132614 delta: 3.24857e-07
CpSolverResponse summary:
status: FEASIBLE
objective: 134786.7922581253
best_bound: 132613.5279305745
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 300.084
usertime: 300.084
deterministic_time: 2278.71
gap_integral: 17598
solution_fingerprint: 0x8de4169e43eb94c3
[26]:
SolutionInfo(runtime=300.091792, bound=132613.52793057455, objective=134786.7922581253, relgap=0.01612371873490992, 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}