MILPRouter example¶
This notebook demonstrates how to use OptiWindNet to design collector system cable networks using the MILPRouter with OR-Tools Solver.
Load data¶
import required modules
[1]:
from optiwindnet.api import WindFarmNetwork, EWRouter, MILPRouter
[2]:
# Display figures as SVG in Jupyter notebooks
%config InlineBackend.figure_formats = ['svg']
create an instance of wfn using .from_pbf()
[3]:
wfn = WindFarmNetwork.from_pbf(filepath='data/DTU_letters.osm.pbf', cables=[(7, 2000.0)])
[4]:
wfn
[4]:
Optimize¶
Warmstart with EWRouter:
Note: In OptiWindNet,
MILPRouterautomatically uses any existing feasible network and checks whether it is eligible as a warm start for the MILP solver. If eligible, the MILP model will be warm-started from the existing network. Therefore, to warm-start a newly createdWindFarmNetwork, pre-run the optimization with a router (e.g.,EWRouterorHGSRouter) to obtain an initial solution; subsequent runs withMILPRouterwill pick it up automatically.
[5]:
res_warmstart= wfn.optimize(router=EWRouter())
[6]:
wfn.length()
[6]:
1647.108905210097
The syntax for defining a MILPRouter is:
router = MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.005, verbose=True)
The solver name could be chosen from among the following solvers:
solver_name = 'ortools.«backend»' # «backend» in (cp_sat, gscip, highs)
solver_name = 'gurobi'
solver_name = 'cbc'
solver_name = 'cplex'
solver_name = 'highs'
solver_name = 'scip'
Rest of arguments (time_limit, mip_gap, verbose) are the same for all solvers.
In this example we use ‘ortools.cp_sat’ which is an opensource tool. You can easily use other solvers (note that depending on your problem size, you might need license for some of the solvers, e.g. cplex, gurobi)
[7]:
router = MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.005, verbose=True)
[8]:
res = wfn.optimize(router=router)
IntegerBoundsPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
BoundPropagationPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
ImpliedIntegerPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
IntegerBoundsPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
ReduceCostOverExclusiveOrConstraintPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]
Scaling to pure integer problem.
Num integers: 708/708 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP]
Maximum constraint coefficient relative error: 0
Maximum constraint worst-case activity error: 0
Constraint scaling factor range: [1, 1]
Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 60 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.005
Setting number of workers to 16
Initial optimization model 'optiwindnet': (model_fingerprint: 0x5ec2d01861d9914d)
#Variables: 708 (#bools: 314 in floating point objective) (628 primary variables)
- 354 Booleans in [0,1]
- 314 in [0,6]
- 40 in [0,7]
#kLinear2: 865
#kLinear3: 1
#kLinearN: 227 (#terms: 2'229)
Starting presolve at 0.00s
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 314 terms with magnitude in [0.140862, 190.901] average = 35.1267
[Scaling] Objective coefficient relative error: 4.44741e-06
[Scaling] Objective worst-case absolute error: 8.26922e-05
[Scaling] Objective scaling factor: 524288
1.97e-04s 0.00e+00d [DetectDominanceRelations]
4.64e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
5.07e-05s 0.00e+00d [ExtractEncodingFromLinear] #potential_supersets=145
4.07e-04s 0.00e+00d [DetectDuplicateColumns]
9.68e-05s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'666 nodes and 4'984 arcs.
[Symmetry] Symmetry computation done. time: 0.000355471 dtime: 0.00047967
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [4.7626e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [8.2456e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
7.16e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
7.82e-03s 3.89e-03d [Probe] #probed=1'416 #new_binary_clauses=354
1.60e-04s 2.15e-04d [MaxClique] Merged 262 constraints with 776 literals into 142 constraints with 536 literals
3.16e-04s 0.00e+00d [DetectDominanceRelations]
2.34e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
1.13e-03s 0.00e+00d [ProcessAtMostOneAndLinear] #num_changes=354
1.19e-04s 0.00e+00d [DetectDuplicateConstraints]
8.37e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
2.01e-04s 6.08e-06d [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=41
1.69e-05s 0.00e+00d [DetectDifferentVariables]
1.27e-03s 7.01e-05d [ProcessSetPPC] #relevant_constraints=184 #num_inclusions=182
8.59e-05s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=142
2.90e-04s 0.00e+00d [DetectEncodedComplexDomains]
1.48e-05s 1.65e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3
1.19e-04s 9.42e-05d [FindBigAtMostOneAndLinearOverlap]
9.00e-05s 1.07e-04d [FindBigVerticalLinearOverlap]
1.30e-05s 5.27e-06d [FindBigHorizontalLinearOverlap] #linears=80
2.31e-05s 0.00e+00d [MergeClauses]
1.61e-04s 0.00e+00d [DetectDominanceRelations]
2.36e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
1.57e-04s 0.00e+00d [DetectDominanceRelations]
1.24e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
4.15e-05s 0.00e+00d [DetectDuplicateColumns]
8.12e-05s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'412 nodes and 4'137 arcs.
[Symmetry] Symmetry computation done. time: 0.000209189 dtime: 0.00043586
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [2.9643e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [8.2852e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
7.09e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
3.54e-03s 1.27e-03d [Probe] #probed=708
1.18e-04s 1.45e-04d [MaxClique]
1.56e-04s 0.00e+00d [DetectDominanceRelations]
1.63e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
7.20e-05s 0.00e+00d [ProcessAtMostOneAndLinear]
6.53e-05s 0.00e+00d [DetectDuplicateConstraints]
5.47e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
9.19e-05s 4.59e-06d [DetectDominatedLinearConstraints] #relevant_constraints=82 #num_inclusions=40
1.01e-05s 0.00e+00d [DetectDifferentVariables]
6.52e-05s 3.03e-06d [ProcessSetPPC] #relevant_constraints=183
6.59e-05s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=142
2.34e-04s 0.00e+00d [DetectEncodedComplexDomains]
1.66e-05s 1.10e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=2
1.19e-04s 9.14e-05d [FindBigAtMostOneAndLinearOverlap]
8.80e-05s 1.07e-04d [FindBigVerticalLinearOverlap]
1.25e-05s 5.27e-06d [FindBigHorizontalLinearOverlap] #linears=80
9.28e-06s 0.00e+00d [MergeClauses]
1.54e-04s 0.00e+00d [DetectDominanceRelations]
2.21e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
2.41e-06s 0.00e+00d [MergeNoOverlap]
2.72e-06s 0.00e+00d [MergeNoOverlap2D]
1.13e-04s 0.00e+00d [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40
Presolve summary:
- 0 affine relations were detected.
- rule 'TODO linear inclusion: superset is equality' was applied 81 times.
- rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.
- rule 'at_most_one: transformed into max clique' was applied 1 time.
- rule 'bool_or: implications' was applied 157 times.
- rule 'deductions: 708 stored' was applied 1 time.
- rule 'linear + amo: extracted enforcement literal' was applied 354 times.
- rule 'linear2: contains a boolean' was applied 354 times.
- rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.
- rule 'linear: positive at most one' was applied 105 times.
- rule 'linear: positive equal one' was applied 40 times.
- rule 'objective: shifted cost with exactly ones' was applied 40 times.
- rule 'presolve: 0 unused variables removed.' was applied 1 time.
- rule 'presolve: iteration' was applied 2 times.
- rule 'setppc: exactly_one included in linear' was applied 40 times.
- rule 'setppc: reduced linear coefficients' was applied 39 times.
- rule 'setppc: removed trivial linear constraint' was applied 1 time.
- rule 'variables: detect fully reified value encoding' was applied 354 times.
- rule 'variables: detect half reified value encoding' was applied 708 times.
Presolved optimization model 'optiwindnet': (model_fingerprint: 0xbceb3d0f5e9b4ebe)
#Variables: 708 (#bools: 314 in objective) (628 primary variables)
- 354 Booleans in [0,1]
- 314 in [0,6]
- 40 in [0,7]
#kAtMostOne: 105 (#literals: 462)
#kBoolAnd: 37 (#enforced: 37) (#literals: 74)
#kExactlyOne: 40 (#literals: 354)
#kLinear1: 708 (#enforced: 708)
#kLinear3: 1
#kLinearN: 81 (#terms: 1'059)
[Symmetry] Graph for symmetry has 2'412 nodes and 4'137 arcs.
[Symmetry] Symmetry computation done. time: 0.000191833 dtime: 0.00043646
Preloading model.
#Bound 0.04s best:inf next:[1364.00132,11449.6914] initial_domain
#1 0.04s best:1645.69852 next:[1364.00132,1645.69852] complete_hint
#Model 0.04s var:708/708 constraints:972/972
Starting search at 0.04s with 16 workers.
11 full problem subsolvers: [core, default_lp, lb_tree_search, max_lp, no_lp, objective_lb_search, probing, pseudo_costs, quick_restart, quick_restart_no_lp, reduced_costs]
5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]
11 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, lb_relax_lns, ls, ls_lin, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]
#Bound 0.05s best:1645.69852 next:[1377.09321,1645.69852] am1_presolve (num_literals=314 num_am1=11 increase=6863921 work_done=1181)
#2 0.05s best:1629.22229 next:[1377.09321,1629.22229] no_lp [hint] (fixed_bools=0/354)
#Bound 0.05s best:1629.22229 next:[1402.64487,1629.22229] default_lp
#Bound 0.05s best:1629.22229 next:[1409.52721,1629.22229] reduced_costs
#Bound 0.06s best:1629.22229 next:[1499.2973,1629.22229] max_lp
#3 0.07s best:1628.56605 next:[1499.2973,1628.56605] quick_restart_no_lp (fixed_bools=0/366)
#4 0.08s best:1624.35452 next:[1499.2973,1624.35452] rnd_cst_lns (d=7.07e-01 s=22 t=0.10 p=1.00 stall=1 h=base)
#5 0.08s best:1623.69828 next:[1499.2973,1623.69828] rnd_cst_lns (d=7.07e-01 s=22 t=0.10 p=1.00 stall=1 h=base) [combined with: quick_restart_no_lp...]
#6 0.08s best:1620.81203 next:[1499.2973,1620.81203] graph_var_lns (d=7.07e-01 s=23 t=0.10 p=1.00 stall=1 h=base)
#7 0.09s best:1620.36711 next:[1499.2973,1620.36711] quick_restart_no_lp (fixed_bools=0/369)
#Bound 0.09s best:1620.36711 next:[1510.86835,1620.36711] max_lp
#8 0.10s best:1619.71087 next:[1510.86835,1619.71087] quick_restart_no_lp (fixed_bools=0/374)
#Bound 0.10s best:1619.71087 next:[1511.62243,1619.71087] max_lp
#Model 0.11s var:704/708 constraints:967/972
#9 0.14s best:1608.24843 next:[1511.62243,1608.24843] quick_restart_no_lp (fixed_bools=2/379)
#Bound 0.22s best:1608.24843 next:[1512.29863,1608.24843] max_lp
#10 0.22s best:1597.86013 next:[1512.29863,1597.86013] lb_relax_lns_int (d=5.00e-01 s=17 t=0.50 p=0.00 stall=0 h=base) [combined with: max_lp [hint]...]
#Bound 0.28s best:1597.86013 next:[1512.70322,1597.86013] objective_lb_search
#Bound 0.28s best:1597.86013 next:[1523.7141,1597.86013] max_lp
#Model 0.31s var:684/708 constraints:946/972
#Bound 0.36s best:1597.86013 next:[1524.02973,1597.86013] lb_tree_search (nodes=2/2 rc=0 decisions=12 @root=2 restarts=0 lp_iters=[0, 0, 53, 221])
#Bound 0.37s best:1597.86013 next:[1524.12308,1597.86013] lb_tree_search (nodes=2/2 rc=0 decisions=13 @root=2 restarts=0 lp_iters=[0, 0, 64, 221])
#Bound 0.37s best:1597.86013 next:[1524.23775,1597.86013] lb_tree_search (nodes=2/2 rc=0 decisions=14 @root=2 restarts=0 lp_iters=[0, 0, 75, 221])
#Bound 0.39s best:1597.86013 next:[1525.60131,1597.86013] lb_tree_search (nodes=3/3 rc=0 decisions=19 @root=2 restarts=0 lp_iters=[0, 0, 128, 258])
#Bound 0.39s best:1597.86013 next:[1525.67725,1597.86013] lb_tree_search (nodes=3/3 rc=0 decisions=20 @root=2 restarts=0 lp_iters=[0, 0, 141, 258])
#Bound 0.40s best:1597.86013 next:[1525.68962,1597.86013] lb_tree_search (nodes=3/3 rc=0 decisions=21 @root=2 restarts=0 lp_iters=[0, 0, 148, 258])
#Bound 0.41s best:1597.86013 next:[1525.72676,1597.86013] lb_tree_search (nodes=5/5 rc=1 decisions=29 @root=2 restarts=0 lp_iters=[0, 0, 215, 266])
#Bound 0.42s best:1597.86013 next:[1525.95455,1597.86013] lb_tree_search (nodes=6/6 rc=1 decisions=32 @root=2 restarts=0 lp_iters=[0, 0, 314, 302])
#Bound 0.44s best:1597.86013 next:[1525.99022,1597.86013] lb_tree_search (nodes=6/6 rc=1 decisions=33 @root=2 restarts=0 lp_iters=[0, 0, 389, 302])
#Bound 0.45s best:1597.86013 next:[1527.16098,1597.86013] lb_tree_search (nodes=7/7 rc=1 decisions=36 @root=2 restarts=0 lp_iters=[0, 0, 484, 355])
#Bound 0.47s best:1597.86013 next:[1527.97216,1597.86013] lb_tree_search (nodes=8/8 rc=1 decisions=39 @root=2 restarts=0 lp_iters=[0, 0, 560, 408])
#Model 0.54s var:682/708 constraints:944/972
#11 0.60s best:1590.60109 next:[1529.49045,1590.60109] graph_arc_lns (d=8.14e-01 s=34 t=0.10 p=1.00 stall=1 h=base)
#Model 0.76s var:678/708 constraints:940/972
#12 0.80s best:1579.793 next:[1532.35267,1579.793] quick_restart_no_lp (fixed_bools=18/394)
#Model 0.85s var:676/708 constraints:938/972
#Model 0.91s var:656/708 constraints:916/972
#Model 0.98s var:654/708 constraints:913/972
#Bound 1.03s best:1579.793 next:[1533.43987,1579.793] lb_tree_search (nodes=29/29 rc=7 decisions=183 @root=2 restarts=0 lp_iters=[0, 0, 4'135, 1'197]) [skipped_logs=28]
#Model 1.45s var:650/708 constraints:909/972
#Model 1.65s var:640/708 constraints:897/972
#Bound 2.00s best:1579.793 next:[1535.86896,1579.793] lb_tree_search (nodes=66/66 rc=11 decisions=565 @root=2 restarts=0 lp_iters=[0, 0, 12'384, 1'944]) [skipped_logs=44]
#Model 2.07s var:634/708 constraints:891/972
#Model 2.69s var:624/708 constraints:881/972
#Bound 3.00s best:1579.793 next:[1537.59561,1579.793] lb_tree_search (nodes=102/102 rc=13 decisions=958 @root=2 restarts=0 lp_iters=[0, 0, 21'571, 2'628]) [skipped_logs=42]
#Model 3.31s var:618/708 constraints:875/972
#Model 3.72s var:616/708 constraints:873/972
#13 3.98s best:1575.35544 next:[1537.81483,1575.35543] default_lp (fixed_bools=46/380)
#Bound 3.15s best:1579.793 next:[1537.81483,1579.793] lb_tree_search (nodes=105/105 rc=13 decisions=1012 @root=2 restarts=0 lp_iters=[0, 0, 22'910, 2'685]) [skipped_logs=6]
#Model 4.55s var:604/708 constraints:860/972
#Model 4.65s var:602/708 constraints:858/972
#Model 4.73s var:600/708 constraints:856/972
#Model 4.83s var:592/708 constraints:848/972
#Bound 5.07s best:1575.35544 next:[1537.86971,1575.35543] lb_tree_search (nodes=32/32 rc=15 decisions=1141 @root=8 restarts=1 lp_iters=[0, 0, 26'884, 3'947]) [skipped_logs=2]
#Model 5.31s var:582/708 constraints:838/972
#Model 5.65s var:580/708 constraints:836/972
#Model 5.75s var:576/708 constraints:832/972
#Bound 5.68s best:1575.35544 next:[1538.19423,1575.35543] lb_tree_search (nodes=32/32 rc=17 decisions=1159 @root=11 restarts=1 lp_iters=[0, 0, 27'677, 3'947]) [skipped_logs=2]
#Model 6.10s var:572/708 constraints:827/972
#Model 6.42s var:568/708 constraints:823/972
#Model 6.46s var:564/708 constraints:819/972
#Bound 6.99s best:1575.35544 next:[1541.35819,1575.35543] lb_tree_search (nodes=32/32 rc=19 decisions=1229 @root=14 restarts=1 lp_iters=[0, 0, 30'890, 3'947]) [skipped_logs=24]
#Model 7.40s var:562/708 constraints:817/972
#Model 7.53s var:552/708 constraints:805/972
#Model 7.57s var:550/708 constraints:803/972
#Bound 7.91s best:1575.35544 next:[1542.03154,1575.35543] lb_tree_search (nodes=32/32 rc=20 decisions=1259 @root=17 restarts=1 lp_iters=[0, 0, 32'278, 3'947]) [skipped_logs=6]
#Model 8.19s var:548/708 constraints:801/972
#Model 8.45s var:546/708 constraints:799/972
#Bound 9.02s best:1575.35544 next:[1542.5176,1575.35543] lb_tree_search (nodes=32/32 rc=20 decisions=1278 @root=20 restarts=1 lp_iters=[0, 0, 33'519, 3'947]) [skipped_logs=2]
#Model 8.58s var:530/708 constraints:781/972 [skipped_logs=0]
#Bound 9.80s best:1575.35544 next:[1546.34924,1575.35543] max_lp [skipped_logs=8]
#Model 9.82s var:502/708 constraints:748/972 [skipped_logs=3]
#Bound 10.64s best:1575.35544 next:[1547.54228,1575.35543] max_lp [skipped_logs=2]
#Model 10.96s var:494/708 constraints:738/972 [skipped_logs=3]
#Bound 11.61s best:1575.35544 next:[1547.96572,1575.35543] max_lp [skipped_logs=0]
#Model 11.64s var:486/708 constraints:729/972 [skipped_logs=2]
#Bound 12.67s best:1575.35544 next:[1549.73435,1575.35543] max_lp [skipped_logs=2]
#Model 12.44s var:474/708 constraints:713/972 [skipped_logs=2]
#Bound 13.32s best:1575.35544 next:[1550.25771,1575.35543] max_lp [skipped_logs=0]
#Model 13.39s var:468/708 constraints:704/972 [skipped_logs=0]
#Bound 14.98s best:1575.35544 next:[1550.60059,1575.35543] lb_tree_search (nodes=49/50 rc=23 decisions=1543 @root=33 restarts=1 lp_iters=[0, 0, 45'120, 5'383]) [skipped_logs=6]
#Model 14.79s var:458/708 constraints:689/972 [skipped_logs=2]
#Bound 16.01s best:1575.35544 next:[1551.32141,1575.35543] lb_tree_search (nodes=62/65 rc=26 decisions=1700 @root=33 restarts=1 lp_iters=[0, 0, 50'081, 5'858]) [skipped_logs=21]
#Model 15.91s var:425/708 constraints:645/972 [skipped_logs=3]
#Done 16.21s quick_restart_no_lp
#Done 16.21s pseudo_costs
#Done 16.22s quick_restart
#Bound 16.13s best:1575.35544 next:[1551.45406,1575.35543] lb_tree_search (nodes=63/66 rc=26 decisions=1717 @root=33 restarts=1 lp_iters=[0, 0, 50'775, 5'896]) [skipped_logs=4]
#Model 16.11s var:419/708 constraints:637/972 [skipped_logs=0]
Task timing n [ min, max] avg dev time n [ min, max] avg dev dtime
'core': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 1.31ms, 14.50s] 7.25s 7.25s 14.50s
'default_lp': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 24.51ms, 8.54s] 4.28s 4.26s 8.56s
'feasibility_pump': 73 [880.56us, 26.49ms] 1.61ms 2.95ms 117.46ms 72 [145.21us, 14.25ms] 354.85us 1.65ms 25.55ms
'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': 46 [331.26us, 414.89ms] 167.44ms 154.05ms 7.70s 39 [110.97us, 100.14ms] 53.09ms 45.97ms 2.07s
'graph_cst_lns': 39 [377.18us, 389.61ms] 188.21ms 140.98ms 7.34s 37 [110.81us, 100.15ms] 54.09ms 44.02ms 2.00s
'graph_dec_lns': 46 [654.56us, 416.25ms] 194.73ms 155.30ms 8.96s 44 [ 10.00ns, 100.19ms] 54.30ms 45.03ms 2.39s
'graph_var_lns': 42 [ 3.87ms, 402.98ms] 188.53ms 139.98ms 7.92s 40 [ 10.00ns, 100.13ms] 51.89ms 41.75ms 2.08s
'lb_relax_lns': 16 [ 60.56ms, 1.38s] 667.41ms 508.06ms 10.68s 16 [ 9.61ms, 519.60ms] 255.99ms 217.88ms 4.10s
'lb_tree_search': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 56.83ms, 9.59s] 4.82s 4.76s 9.64s
'ls': 34 [184.30ms, 323.05ms] 216.49ms 23.94ms 7.36s 34 [100.00ms, 100.01ms] 100.01ms 1.92us 3.40s
'ls_lin': 34 [177.76ms, 384.28ms] 214.23ms 34.82ms 7.28s 34 [100.00ms, 100.01ms] 100.01ms 2.08us 3.40s
'max_lp': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 61.43ms, 6.60s] 3.33s 3.27s 6.66s
'no_lp': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 1.49ms, 10.57s] 5.29s 5.29s 10.57s
'objective_lb_search': 1 [ 16.17s, 16.17s] 16.17s 0.00ns 16.17s 2 [ 23.99ms, 8.99s] 4.51s 4.48s 9.01s
'probing': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 27.89ms, 8.94s] 4.48s 4.45s 8.97s
'pseudo_costs': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 7.71ms, 8.71s] 4.36s 4.35s 8.72s
'quick_restart': 1 [ 16.19s, 16.19s] 16.19s 0.00ns 16.19s 2 [ 23.49ms, 7.99s] 4.00s 3.98s 8.01s
'quick_restart_no_lp': 1 [ 16.17s, 16.17s] 16.17s 0.00ns 16.17s 2 [ 1.58ms, 12.24s] 6.12s 6.12s 12.24s
'reduced_costs': 1 [ 16.18s, 16.18s] 16.18s 0.00ns 16.18s 2 [ 8.27ms, 9.45s] 4.73s 4.72s 9.46s
'rins/rens': 42 [ 2.62ms, 411.68ms] 176.85ms 161.12ms 7.43s 38 [448.00ns, 100.17ms] 49.37ms 44.94ms 1.88s
'rnd_cst_lns': 36 [ 5.62ms, 403.74ms] 209.08ms 146.64ms 7.53s 36 [ 10.00ns, 100.11ms] 55.33ms 43.34ms 1.99s
'rnd_var_lns': 40 [ 4.29ms, 405.84ms] 200.43ms 152.94ms 8.02s 36 [ 10.00ns, 100.14ms] 61.42ms 44.38ms 2.21s
Search stats Bools Conflicts Branches Restarts BacktrackToRoot Backtrack BoolPropag IntegerPropag
'core': 582 190'812 559'930 660 6'318 197'792 6'847'439 10'683'463
'default_lp': 393 2'420 17'866 5 5'264 9'421 163'827 715'136
'fs_random': 0 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 0 0 0 0 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0
'lb_tree_search': 354 95 47'187 0 16'530 22'493 262'478 1'420'046
'max_lp': 354 1'653 46'301 16 14'870 21'133 261'863 1'438'348
'no_lp': 354 143'613 232'300 280 11'018 153'640 6'655'149 22'966'636
'objective_lb_search': 405 1'169 45'248 13 15'691 22'198 280'386 1'371'662
'probing': 395 23 985 0 865 879 9'981 31'653
'pseudo_costs': 354 1'750 35'315 13 12'948 18'215 207'772 1'110'791
'quick_restart': 393 507 52'607 25 18'176 25'236 314'389 1'523'272
'quick_restart_no_lp': 616 84'213 716'423 7'195 38'718 129'693 6'839'328 19'482'408
'reduced_costs': 364 2'534 24'354 10 7'227 11'418 142'029 733'821
SAT formula Fixed Equiv Total VarLeft BinaryClauses PermanentClauses TemporaryClauses
'core': 123 13 582 446 1'486 5'994 8'528
'default_lp': 126 1 393 266 626 276 850
'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': 121 1 354 232 468 316 7
'max_lp': 145 2 354 207 426 209 710
'no_lp': 125 1 354 228 470 675 8'277
'objective_lb_search': 152 1 405 252 558 254 86
'probing': 24 0 395 371 4'868 40 10
'pseudo_costs': 145 2 354 207 430 209 288
'quick_restart': 131 1 393 261 624 248 200
'quick_restart_no_lp': 228 2 616 386 2'036 2'748 9'281
'reduced_costs': 81 0 364 283 728 212 1'144
SAT stats ClassicMinim LitRemoved LitRemovedBinary LitLearned LitForgotten Subsumed
'core': 145'277 1'461'287 258'304 11'248'128 6'529'681 59'892
'default_lp': 2'136 47'995 30'343 74'070 0 650
'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': 13 27 410 588 0 58
'max_lp': 1'356 34'835 24'135 68'415 0 425
'no_lp': 111'145 1'069'743 432'949 4'596'531 2'871'252 36'814
'objective_lb_search': 938 29'064 8'205 17'507 0 501
'probing': 11 47 263 1'798 0 4
'pseudo_costs': 1'501 32'164 20'585 48'796 0 537
'quick_restart': 294 3'331 5'556 12'739 0 172
'quick_restart_no_lp': 67'252 592'849 855'121 2'652'219 1'616'929 16'498
'reduced_costs': 2'037 21'608 25'016 187'431 0 382
Vivification Clauses Decisions LitTrue Subsumed LitRemoved DecisionReused Conflicts
'core': 7'946 230'840 0 1'130 43'211 32'714 235
'default_lp': 1'859 8'384 0 207 1'028 344 4
'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': 8'388 31'532 3 363 1'776 1'205 2
'max_lp': 7'642 30'812 2 448 2'280 1'500 10
'no_lp': 7'899 41'054 6 741 5'995 6'482 34
'objective_lb_search': 7'228 29'420 3 456 2'220 1'274 5
'probing': 0 0 0 0 0 0 0
'pseudo_costs': 4'784 20'339 4 292 1'453 767 4
'quick_restart': 8'417 34'051 0 438 2'160 1'282 3
'quick_restart_no_lp': 31'213 185'146 47 3'448 30'795 22'702 479
'reduced_costs': 1'846 9'191 1 152 787 356 1
Clause deletion at_true l_and_not(l) to_binary sub_conflict sub_extra sub_decisions sub_eager sub_vivify sub_probing sub_inpro blocked eliminated forgotten promoted conflicts
'core': 911 0 24 55'202 5'366 99 4'690 1'130 62 1'178 0 0 108'060 422'964 190'812
'default_lp': 147 606 0 620 6 38 30 207 86 128 0 0 0 5'959 2'420
'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': 158 2 4 57 0 2 1 363 83 100 0 0 0 14 95
'max_lp': 475 22 7 390 1 1 35 448 108 276 0 0 0 4'117 1'653
'no_lp': 3'803 6 4 35'091 3'388 241 1'723 741 168 931 0 0 89'095 335'113 143'613
'objective_lb_search': 605 29 5 464 0 45 37 456 124 105 0 0 0 1'603 1'169
'probing': 0 0 0 4 0 0 0 0 0 0 0 0 0 26 23
'pseudo_costs': 464 370 4 496 3 9 41 292 68 277 0 0 0 3'928 1'750
'quick_restart': 251 6 3 168 0 2 4 438 104 118 0 0 0 753 507
'quick_restart_no_lp': 6'113 4 102 15'379 494 187 1'119 3'448 832 637 0 0 43'626 178'880 84'213
'reduced_costs': 198 748 1 372 4 38 10 152 17 26 0 0 0 7'516 2'534
Lp stats Component Iterations AddedCuts OPTIMAL DUAL_F. DUAL_U.
'default_lp': 1 179'941 1'806 6'915 1 386
'lb_tree_search': 1 68'554 2'102 1'907 520 0
'max_lp': 1 84'930 2'340 3'654 666 222
'objective_lb_search': 1 114'414 2'393 3'513 1 115
'probing': 1 31'149 2'293 371 3 5
'pseudo_costs': 1 126'229 2'268 3'824 1'191 251
'quick_restart': 1 65'529 2'480 2'039 2 31
'reduced_costs': 1 155'391 1'830 4'062 1'523 291
Lp dimension Final dimension of first component
'default_lp': 597 rows, 669 columns, 5343 entries
'lb_tree_search': 679 rows, 708 columns, 9711 entries
'max_lp': 717 rows, 708 columns, 10041 entries
'objective_lb_search': 676 rows, 669 columns, 8440 entries
'probing': 1782 rows, 669 columns, 58904 entries
'pseudo_costs': 811 rows, 708 columns, 11273 entries
'quick_restart': 880 rows, 669 columns, 14208 entries
'reduced_costs': 867 rows, 708 columns, 11138 entries
Lp debug CutPropag CutEqPropag Adjust Overflow Bad BadScaling
'default_lp': 0 0 7'286 0 4'755 0
'lb_tree_search': 0 0 2'427 0 50'190 0
'max_lp': 0 10 4'525 0 43'734 0
'objective_lb_search': 0 6 3'621 0 28'048 0
'probing': 0 4 375 0 50'933 0
'pseudo_costs': 0 0 5'244 0 25'077 0
'quick_restart': 0 4 2'066 0 36'415 0
'reduced_costs': 0 0 5'862 0 10'792 0
Lp pool Constraints Updates Simplif Merged Shortened Split Strengthened Cuts/Call
'default_lp': 2'977 76 5'126 1 3'479 29 301 1'806/4'019
'lb_tree_search': 3'427 1'059 17'489 1 9'204 796 274 2'102/3'634
'max_lp': 3'665 1'057 24'856 1 13'086 625 375 2'340/4'311
'objective_lb_search': 3'565 335 16'069 0 10'286 96 332 2'393/4'406
'probing': 3'464 616 3'386 1 1'161 1'093 57 2'293/3'759
'pseudo_costs': 3'594 638 13'535 0 8'304 156 358 2'268/4'113
'quick_restart': 3'652 623 20'811 0 13'339 253 254 2'480/4'629
'reduced_costs': 3'156 263 4'475 0 3'154 55 133 1'830/3'584
Lp Cut default_lp max_lp reduced_costs pseudo_costs lb_tree_search probing objective_lb_search quick_restart
CG_FF: 23 14 16 14 9 13 25 21
CG_K: 12 13 13 10 5 10 21 17
CG_KL: 2 6 5 6 2 3 4 2
CG_R: 37 16 37 32 9 28 31 29
CG_RB: 72 31 65 64 29 36 69 46
CG_RBP: 32 10 30 25 7 27 32 28
Clique: - 7 - 11 5 - - -
IB: 773 497 749 640 189 438 507 550
MIR_1_FF: 59 133 66 104 168 210 178 147
MIR_1_K: 12 12 5 11 2 73 28 32
MIR_1_KL: 9 21 7 12 16 54 22 24
MIR_1_R: 3 20 2 9 8 19 37 8
MIR_1_RB: 19 26 16 32 37 39 53 40
MIR_1_RBP: 19 35 18 37 67 59 93 70
MIR_2_FF: 59 115 73 115 115 117 115 127
MIR_2_K: 33 14 14 20 14 44 37 55
MIR_2_KL: 12 31 11 23 21 20 11 18
MIR_2_R: 8 6 6 8 9 15 4 9
MIR_2_RB: 50 88 45 74 57 82 76 64
MIR_2_RBP: 32 19 21 27 57 59 57 46
MIR_3_FF: 31 120 66 91 108 63 60 91
MIR_3_K: 28 17 22 20 25 46 40 57
MIR_3_KL: 9 19 5 20 17 10 8 11
MIR_3_R: 8 5 5 9 7 6 4 3
MIR_3_RB: 37 79 43 78 64 35 55 47
MIR_3_RBP: 30 19 17 22 46 32 39 43
MIR_4_FF: 26 79 41 68 84 42 52 52
MIR_4_K: 21 20 22 22 22 40 33 43
MIR_4_KL: 5 6 12 15 10 4 13 8
MIR_4_R: 7 8 2 4 11 6 5 5
MIR_4_RB: 27 70 29 33 47 29 35 34
MIR_4_RBP: 16 26 20 27 20 34 33 35
MIR_5_FF: 18 63 22 55 56 31 37 37
MIR_5_K: 15 23 15 16 30 28 29 37
MIR_5_KL: 9 11 7 17 13 9 14 9
MIR_5_R: 3 3 2 8 4 4 3 3
MIR_5_RB: 12 35 15 47 35 22 26 18
MIR_5_RBP: 18 32 25 28 25 32 34 45
MIR_6_FF: 5 30 19 26 41 16 23 23
MIR_6_K: 15 23 17 20 30 20 31 27
MIR_6_KL: 13 22 8 10 11 16 15 8
MIR_6_R: 7 2 4 3 3 3 2 1
MIR_6_RB: 15 33 17 34 25 9 19 10
MIR_6_RBP: 17 37 18 37 51 38 24 35
ZERO_HALF_FF: 10 2 12 11 3 15 15 3
ZERO_HALF_K: 1 - 5 - - 5 1 1
ZERO_HALF_KL: - 2 6 1 - - 1 -
ZERO_HALF_R: 117 369 126 225 406 289 295 391
ZERO_HALF_RB: 12 48 19 30 50 44 35 41
ZERO_HALF_RBP: 8 23 10 17 32 19 12 29
LNS stats Improv/Calls Closed Difficulty TimeLimit
'graph_arc_lns': 12/40 55% 8.58e-01 0.10
'graph_cst_lns': 5/37 57% 9.09e-01 0.10
'graph_dec_lns': 17/45 56% 9.27e-01 0.10
'graph_var_lns': 18/42 55% 8.88e-01 0.10
'lb_relax_lns': 7/16 62% 8.66e-01 0.50
'rins/rens': 32/42 62% 9.39e-01 0.10
'rnd_cst_lns': 11/36 58% 9.30e-01 0.10
'rnd_var_lns': 9/40 55% 9.07e-01 0.10
LS stats Batches Restarts/Perturbs LinMoves GenMoves CompoundMoves Bactracks WeightUpdates ScoreComputed
'ls_lin_restart': 6 5 116'387 0 0 0 47'831 3'394'241
'ls_lin_restart_compound': 2 2 0 53'910 3'728 25'088 513 918'491
'ls_lin_restart_compound_perturb': 3 3 0 79'132 5'828 36'647 600 1'364'757
'ls_lin_restart_decay': 4 3 94'780 0 0 0 4'255 1'581'217
'ls_lin_restart_decay_compound': 3 2 0 76'704 10'586 33'057 104 1'472'197
'ls_lin_restart_decay_compound_perturb': 7 6 0 184'409 24'128 80'124 272 3'441'912
'ls_lin_restart_decay_perturb': 2 2 45'225 0 0 0 1'927 784'149
'ls_lin_restart_perturb': 7 7 132'925 0 0 0 64'094 3'794'709
'ls_restart': 2 2 41'281 0 0 0 12'744 1'076'242
'ls_restart_compound': 8 6 0 208'424 14'819 96'775 1'101 3'980'915
'ls_restart_compound_perturb': 3 3 0 80'769 6'069 37'344 571 1'372'419
'ls_restart_decay': 5 4 118'674 0 0 0 5'664 1'990'097
'ls_restart_decay_compound': 2 2 0 45'758 7'326 19'210 94 1'053'952
'ls_restart_decay_compound_perturb': 7 6 0 176'048 24'056 75'977 264 3'350'334
'ls_restart_decay_perturb': 5 5 117'582 0 0 0 5'185 1'975'319
'ls_restart_perturb': 2 2 36'653 0 0 0 19'236 1'132'547
Solutions (13) Num Rank
'complete_hint': 2 [0,1]
'default_lp': 2 [12,13]
'graph_arc_lns': 2 [10,11]
'graph_var_lns': 2 [5,6]
'lb_relax_lns_int': 2 [9,10]
'no_lp': 2 [1,2]
'quick_restart_no_lp': 10 [2,12]
'rnd_cst_lns': 4 [3,5]
Objective bounds Num
'am1_presolve': 1
'default_lp': 1
'initial_domain': 1
'lb_tree_search': 210
'max_lp': 21
'objective_lb_search': 2
'reduced_costs': 1
Solution repositories Added Queried Synchro
'alternative_path': 4 91 4
'best_solutions': 50 307 45
'fj solution hints': 0 0 0
'lp solutions': 145 42 112
'pump': 0 0
Improving bounds shared Num Sym
'default_lp': 2 0
'lb_tree_search': 38 0
'max_lp': 146 0
'objective_lb_search': 4 0
'probing': 6 0
'pseudo_costs': 100 0
'quick_restart': 2 0
'quick_restart_no_lp': 74 0
'reduced_costs': 38 0
Clauses shared #Exported #Imported #BinaryRead #BinaryTotal
'core': 252 971 1'686 1'804
'default_lp': 89 1'201 1'698 1'804
'lb_tree_search': 55 1'171 1'697 1'804
'max_lp': 202 1'288 1'802 1'804
'no_lp': 798 730 1'701 1'804
'objective_lb_search': 171 1'315 1'743 1'804
'probing': 1'198 0 266 1'804
'pseudo_costs': 206 1'315 1'776 1'804
'quick_restart': 175 1'315 1'774 1'804
'quick_restart_no_lp': 1'587 686 1'804 1'804
'reduced_costs': 62 533 1'188 1'804
LRAT_status: NA
[Scaling] scaled_objective_bound: 1575.36 corrected_bound: 1575.36 delta: 1.00542e-06
CpSolverResponse summary:
status: OPTIMAL
objective: 1575.355435923973
best_bound: 1575.355435314589
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 16.2298
usertime: 16.2298
deterministic_time: 131.891
gap_integral: 129.718
solution_fingerprint: 0x74f029e2c7dc518
[9]:
wfn.solution_info()
[9]:
{'router': 'MILPRouter',
'capacity': 7,
'solver_name': 'ortools.cp_sat',
'mip_gap': 0.005,
'time_limit': 60,
'topology': <Topology.BRANCHED: 'branched'>,
'feeder_route': <FeederRoute.SEGMENTED: 'segmented'>,
'feeder_limit': <FeederLimit.UNLIMITED: 'unlimited'>,
'balanced': False,
'runtime': 16.234905,
'bound': 1575.3554353145887,
'objective': 1575.3554359239731,
'relgap': 3.868234621506872e-10,
'termination': 'OPTIMAL'}
[10]:
wfn.length()
[10]:
1575.355435923973
[11]:
wfn
[11]:
MILPRouter has two optional arguments: ModelOptions (what kind of solution you want) and SolverOptions (how long/how hard the solver searches). For more detail about ModelOptions and SolverOptions see ModelOptions vs SolverOptions
[12]:
from optiwindnet.api import ModelOptions
model_options = ModelOptions(
topology='radial',
feeder_limit='minimum',
feeder_route='segmented',
)
solver_options=dict(
num_workers = 5,
)
router= MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.01, model_options=model_options, verbose=True)
res = wfn.optimize(router=router)
IntegerBoundsPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
BoundPropagationPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
ImpliedIntegerPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
IntegerBoundsPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
ReduceCostOverExclusiveOrConstraintPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]
Scaling to pure integer problem.
Num integers: 708/708 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP]
Maximum constraint coefficient relative error: 0
Maximum constraint worst-case activity error: 0
Constraint scaling factor range: [1, 1]
Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 60 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.01
Setting number of workers to 16
Initial optimization model 'optiwindnet': (model_fingerprint: 0xd6cd4e712ff5f5b6)
#Variables: 708 (#bools: 314 in floating point objective) (627 primary variables)
- 354 Booleans in [0,1]
- 314 in [0,6]
- 40 in [0,7]
#kLinear2: 865
#kLinear3: 2
#kLinearN: 266 (#terms: 2'540)
Starting presolve at 0.00s
The solution hint is complete, but it is infeasible! we will try to repair it.
[Scaling] Floating point objective has 314 terms with magnitude in [0.140862, 190.901] average = 35.1267
[Scaling] Objective coefficient relative error: 4.44741e-06
[Scaling] Objective worst-case absolute error: 8.26922e-05
[Scaling] Objective scaling factor: 524288
1.81e-04s 0.00e+00d [DetectDominanceRelations]
4.46e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
2.76e-05s 0.00e+00d [ExtractEncodingFromLinear] #potential_supersets=185
5.54e-05s 0.00e+00d [DetectDuplicateColumns]
6.95e-05s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'706 nodes and 5'298 arcs.
[Symmetry] Symmetry computation done. time: 0.000212069 dtime: 0.00049148
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [9.942e-06s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.6267e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0
7.21e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
6.87e-03s 4.41e-03d [Probe] #probed=1'416 #new_binary_clauses=354
2.70e-04s 4.55e-04d [MaxClique] Merged 302 constraints with 1'090 literals into 182 constraints with 850 literals
1.97e-04s 0.00e+00d [DetectDominanceRelations]
2.17e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
6.19e-04s 0.00e+00d [ProcessAtMostOneAndLinear] #num_changes=354
8.16e-05s 0.00e+00d [DetectDuplicateConstraints]
7.44e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
1.33e-04s 5.73e-06d [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=41 #num_redundant=1
1.09e-05s 0.00e+00d [DetectDifferentVariables]
3.98e-04s 6.42e-05d [ProcessSetPPC] #relevant_constraints=224 #num_inclusions=182
1.31e-04s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=182
4.05e-04s 0.00e+00d [DetectEncodedComplexDomains]
2.27e-05s 1.65e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3
6.03e-04s 1.09e-03d [FindBigAtMostOneAndLinearOverlap]
1.71e-04s 6.03e-04d [FindBigVerticalLinearOverlap]
6.29e-05s 1.32e-04d [FindBigHorizontalLinearOverlap] #linears=81
1.33e-05s 0.00e+00d [MergeClauses]
1.67e-04s 0.00e+00d [DetectDominanceRelations]
2.39e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
1.85e-04s 0.00e+00d [DetectDominanceRelations]
1.28e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
4.55e-05s 0.00e+00d [DetectDuplicateColumns]
6.86e-05s 0.00e+00d [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 2'453 nodes and 4'765 arcs.
[Symmetry] Symmetry computation done. time: 0.000211131 dtime: 0.00045598
[SAT presolve] num removable Booleans: 0 / 354
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [5.512e-06s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
[SAT presolve] [1.5735e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0
6.63e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
3.22e-03s 1.40e-03d [Probe] #probed=708
2.15e-04s 3.09e-04d [MaxClique]
1.98e-04s 0.00e+00d [DetectDominanceRelations]
1.30e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
2.92e-04s 0.00e+00d [ProcessAtMostOneAndLinear]
6.82e-05s 0.00e+00d [DetectDuplicateConstraints]
5.61e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements]
9.38e-05s 5.53e-06d [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=40
1.03e-05s 0.00e+00d [DetectDifferentVariables]
9.38e-05s 6.42e-05d [ProcessSetPPC] #relevant_constraints=224 #num_inclusions=182
7.87e-05s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=182
5.53e-04s 0.00e+00d [DetectEncodedComplexDomains]
3.79e-05s 0.00e+00d [FindAlmostIdenticalLinearConstraints]
4.38e-04s 1.09e-03d [FindBigAtMostOneAndLinearOverlap]
1.31e-04s 6.03e-04d [FindBigVerticalLinearOverlap]
4.19e-05s 1.32e-04d [FindBigHorizontalLinearOverlap] #linears=81
8.86e-06s 0.00e+00d [MergeClauses]
1.76e-04s 0.00e+00d [DetectDominanceRelations]
1.78e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
3.30e-06s 0.00e+00d [MergeNoOverlap]
2.78e-06s 0.00e+00d [MergeNoOverlap2D]
1.15e-04s 0.00e+00d [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40
Presolve summary:
- 0 affine relations were detected.
- rule 'TODO linear inclusion: superset is equality' was applied 80 times.
- rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.
- rule 'at_most_one: transformed into max clique' was applied 1 time.
- rule 'bool_or: implications' was applied 157 times.
- rule 'deductions: 708 stored' was applied 1 time.
- rule 'linear + amo: extracted enforcement literal' was applied 354 times.
- rule 'linear inclusion: sparsify superset' was applied 1 time.
- rule 'linear2: contains a boolean' was applied 354 times.
- rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.
- rule 'linear: positive at most one' was applied 145 times.
- rule 'linear: positive equal one' was applied 40 times.
- rule 'objective: shifted cost with exactly ones' was applied 40 times.
- rule 'presolve: 0 unused variables removed.' was applied 1 time.
- rule 'presolve: iteration' was applied 2 times.
- rule 'variables: detect fully reified value encoding' was applied 354 times.
- rule 'variables: detect half reified value encoding' was applied 708 times.
Presolved optimization model 'optiwindnet': (model_fingerprint: 0xc756df9eefe3a6bd)
#Variables: 708 (#bools: 314 in objective) (627 primary variables)
- 354 Booleans in [0,1]
- 314 in [0,6]
- 40 in [0,7]
#kAtMostOne: 145 (#literals: 776)
#kBoolAnd: 37 (#enforced: 37) (#literals: 74)
#kExactlyOne: 40 (#literals: 354)
#kLinear1: 708 (#enforced: 708)
#kLinear3: 1
#kLinearN: 82 (#terms: 1'373)
[Symmetry] Graph for symmetry has 2'453 nodes and 4'765 arcs.
[Symmetry] Symmetry computation done. time: 0.000221445 dtime: 0.00045642
Preloading model.
#Bound 0.03s best:inf next:[1364.00132,11449.6914] initial_domain
The solution hint is complete, but it is infeasible! we will try to repair it.
#Model 0.03s var:708/708 constraints:1013/1013
Starting search at 0.03s with 16 workers.
11 full problem subsolvers: [core, default_lp, lb_tree_search, max_lp, no_lp, objective_lb_search, probing, pseudo_costs, quick_restart, quick_restart_no_lp, reduced_costs]
5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]
11 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, lb_relax_lns, ls, ls_lin, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]
#Bound 0.05s best:inf next:[1396.24224,11449.6914] am1_presolve (num_literals=314 num_am1=12 increase=16903530 work_done=1733)
#Bound 0.05s best:inf next:[1427.81903,11449.6914] default_lp
#Bound 0.05s best:inf next:[1428.7339,11449.6914] default_lp
#Bound 0.05s best:inf next:[1434.70137,11449.6914] pseudo_costs
#Bound 0.05s best:inf next:[1518.98019,11449.6914] max_lp
#1 0.06s best:2087.62641 next:[1518.98019,2087.62641] no_lp (fixed_bools=0/354)
#2 0.06s best:2069.24859 next:[1518.98019,2069.24859] quick_restart_no_lp (fixed_bools=0/354)
#3 0.07s best:2050.19822 next:[1518.98019,2050.19822] no_lp (fixed_bools=0/354)
#4 0.08s best:2020.81491 next:[1518.98019,2020.81491] graph_arc_lns (d=5.00e-01 s=20 t=0.10 p=0.00 stall=0 h=base) (fixed_bools=0/354)
#5 0.08s best:1681.35691 next:[1518.98019,1681.3569] fj_restart_decay_compound_perturb_obj(batch:1 lin{mvs:0 evals:27'362} gen{mvs:1'258 evals:0} comp{mvs:88 btracks:585} #w_updates:14 #perturb:0) (fixed_bools=0/354)
#Bound 0.12s best:1681.35691 next:[1525.53027,1681.3569] max_lp
#Bound 0.13s best:1681.35691 next:[1527.255,1681.3569] lb_tree_search
#6 0.13s best:1679.37489 next:[1527.255,1679.37489] pseudo_costs [hint] (fixed_bools=0/354)
#7 0.14s best:1677.00272 next:[1527.255,1677.00272] quick_restart_no_lp (fixed_bools=0/354)
#8 0.18s best:1673.6739 next:[1527.255,1673.6739] quick_restart_no_lp (fixed_bools=0/354)
#9 0.21s best:1672.43142 next:[1527.255,1672.43142] quick_restart_no_lp (fixed_bools=0/354)
#10 0.26s best:1670.1998 next:[1527.255,1670.1998] rnd_var_lns (d=8.14e-01 s=38 t=0.10 p=1.00 stall=2 h=base) (fixed_bools=0/354)
#11 0.27s best:1662.42426 next:[1527.255,1662.42426] quick_restart_no_lp (fixed_bools=0/354)
#Bound 0.27s best:1662.42426 next:[1538.24831,1662.42426] max_lp
#12 0.27s best:1659.88904 next:[1538.24831,1659.88904] quick_restart_no_lp (fixed_bools=0/354)
#13 0.34s best:1648.9662 next:[1538.24831,1648.9662] core (fixed_bools=0/366)
#14 0.39s best:1614.73248 next:[1538.24831,1614.73248] quick_restart_no_lp (fixed_bools=0/354)
#Model 0.43s var:702/708 constraints:1006/1013
#Bound 0.45s best:1614.73248 next:[1538.85786,1614.73248] lb_tree_search
#Model 0.46s var:696/708 constraints:1000/1013
#Bound 0.50s best:1614.73248 next:[1540.66143,1614.73248] max_lp
#Model 0.54s var:694/708 constraints:998/1013
#15 0.55s best:1614.41351 next:[1540.66143,1614.41351] graph_arc_lns (d=8.76e-01 s=51 t=0.10 p=1.00 stall=2 h=base) (fixed_bools=0/354)
#Model 0.55s var:678/708 constraints:980/1013
#Bound 0.59s best:1614.41351 next:[1542.42509,1614.41351] lb_tree_search
#Bound 0.60s best:1614.41351 next:[1546.83315,1614.41351] max_lp
#16 0.67s best:1613.50867 next:[1546.83315,1613.50867] lb_relax_lns_bool_h (d=7.07e-01 s=37 t=0.50 p=1.00 stall=0 h=base) (fixed_bools=0/354)
#Model 0.67s var:672/708 constraints:974/1013
#Bound 0.80s best:1613.50867 next:[1546.91482,1613.50867] lb_tree_search (nodes=3/3 rc=0 decisions=11 @root=3 restarts=0 lp_iters=[0, 0, 287, 114])
#Model 0.85s var:670/708 constraints:972/1013
#17 0.95s best:1612.2948 next:[1546.91482,1612.2948] quick_restart_no_lp (fixed_bools=19/354)
#Bound 1.04s best:1612.2948 next:[1547.9641,1612.2948] lb_tree_search
#Model 1.04s var:664/708 constraints:965/1013
#Bound 1.30s best:1612.2948 next:[1549.25056,1612.2948] lb_tree_search
#Model 1.55s var:662/708 constraints:963/1013
#Bound 1.58s best:1612.2948 next:[1550.97487,1612.2948] lb_tree_search
#Model 1.62s var:660/708 constraints:961/1013
#Model 1.84s var:658/708 constraints:959/1013
#Bound 1.87s best:1612.2948 next:[1551.4648,1612.2948] lb_tree_search
#Bound 1.91s best:1612.2948 next:[1551.52118,1612.2948] probing
#Bound 1.98s best:1612.2948 next:[1552.12199,1612.2948] probing
#Bound 2.20s best:1612.2948 next:[1552.12199,1612.2948] objective_lb_search
#Bound 2.26s best:1612.2948 next:[1554.11991,1612.2948] probing
#Bound 2.43s best:1612.2948 next:[1554.11995,1612.2948] probing
#Model 2.45s var:656/708 constraints:957/1013
#Model 2.87s var:654/708 constraints:955/1013
#Bound 3.05s best:1612.2948 next:[1556.43242,1612.2948] lb_tree_search (nodes=5/5 rc=0 decisions=29 @root=17 restarts=0 lp_iters=[0, 0, 1'031, 346]) [skipped_logs=3]
#Model 3.30s var:650/708 constraints:950/1013
#Model 3.78s var:642/708 constraints:942/1013
#Bound 3.90s best:1612.2948 next:[1558.66353,1612.2948] lb_tree_search (nodes=6/6 rc=0 decisions=37 @root=19 restarts=0 lp_iters=[0, 0, 1'341, 408]) [skipped_logs=6]
#Bound 4.99s best:1612.2948 next:[1562.56728,1612.2948] lb_tree_search (nodes=8/8 rc=1 decisions=60 @root=22 restarts=0 lp_iters=[0, 0, 2'820, 470]) [skipped_logs=9]
#Model 5.04s var:638/708 constraints:937/1013
#Model 5.70s var:636/708 constraints:935/1013
#Bound 5.96s best:1612.2948 next:[1562.70135,1612.2948] lb_tree_search (nodes=9/9 rc=1 decisions=67 @root=23 restarts=0 lp_iters=[0, 0, 3'195, 687]) [skipped_logs=1]
#Model 6.67s var:634/708 constraints:933/1013
#Bound 6.78s best:1612.2948 next:[1565.5315,1612.2948] lb_tree_search (nodes=17/17 rc=2 decisions=120 @root=25 restarts=0 lp_iters=[0, 0, 6'418, 1'191]) [skipped_logs=13]
#Model 7.25s var:632/708 constraints:931/1013
#Bound 7.45s best:1612.2948 next:[1566.04328,1612.2948] lb_tree_search (nodes=18/18 rc=2 decisions=130 @root=26 restarts=0 lp_iters=[0, 0, 7'241, 1'313]) [skipped_logs=2]
#Model 8.47s var:630/708 constraints:929/1013
#Bound 8.74s best:1612.2948 next:[1579.95956,1612.2948] objective_lb_search [skipped_logs=0]
#Model 9.06s var:628/708 constraints:927/1013
#Model 10.23s var:626/708 constraints:925/1013
#Model 10.51s var:624/708 constraints:923/1013
#Model 11.56s var:622/708 constraints:921/1013
#Model 12.18s var:620/708 constraints:919/1013
#Model 13.94s var:616/708 constraints:915/1013
#Model 14.47s var:612/708 constraints:910/1013
#Bound 14.78s best:1612.2948 next:[1580.09571,1612.2948] objective_lb_search
#Model 15.61s var:608/708 constraints:906/1013
#Model 16.59s var:606/708 constraints:904/1013
#Model 19.77s var:602/708 constraints:898/1013
#Bound 19.78s best:1612.2948 next:[1580.0994,1612.2948] objective_lb_search
#Model 20.34s var:600/708 constraints:895/1013
#Model 21.09s var:598/708 constraints:893/1013
#Model 22.06s var:596/708 constraints:891/1013
#Model 22.20s var:592/708 constraints:887/1013
#Bound 22.86s best:1612.2948 next:[1580.10361,1612.2948] objective_lb_search
#Model 22.93s var:590/708 constraints:885/1013
#Bound 23.73s best:1612.2948 next:[1580.1039,1612.2948] lb_tree_search (nodes=294/294 rc=60 decisions=1833 @root=33 restarts=1 lp_iters=[0, 0, 62'044, 25'577])
#Model 23.86s var:586/708 constraints:879/1013
#Model 24.46s var:584/708 constraints:877/1013
#Bound 24.54s best:1612.2948 next:[1580.13858,1612.2948] lb_tree_search (nodes=294/294 rc=60 decisions=1839 @root=34 restarts=1 lp_iters=[0, 0, 62'436, 25'577])
#Model 24.56s var:582/708 constraints:874/1013
#Bound 25.15s best:1612.2948 next:[1580.16192,1612.2948] lb_tree_search (nodes=293/294 rc=60 decisions=1852 @root=35 restarts=1 lp_iters=[0, 0, 63'066, 25'577])
#Model 25.23s var:578/708 constraints:870/1013
#Model 25.67s var:574/708 constraints:866/1013
#Bound 25.71s best:1612.2948 next:[1580.16482,1612.2948] lb_tree_search (nodes=293/294 rc=60 decisions=1862 @root=36 restarts=1 lp_iters=[0, 0, 63'428, 25'577])
#Bound 26.09s best:1612.2948 next:[1580.16841,1612.2948] lb_tree_search (nodes=291/294 rc=61 decisions=1874 @root=37 restarts=1 lp_iters=[0, 0, 63'902, 25'577])
#Model 26.51s var:572/708 constraints:864/1013
#Bound 27.06s best:1612.2948 next:[1580.17371,1612.2948] lb_tree_search (nodes=291/294 rc=61 decisions=1886 @root=38 restarts=1 lp_iters=[0, 0, 64'347, 25'577])
#Model 27.10s var:570/708 constraints:862/1013
#Bound 27.13s best:1612.2948 next:[1580.17584,1612.2948] lb_tree_search (nodes=291/294 rc=61 decisions=1895 @root=39 restarts=1 lp_iters=[0, 0, 64'738, 25'577])
#Bound 27.67s best:1612.2948 next:[1580.18663,1612.2948] lb_tree_search (nodes=290/294 rc=62 decisions=1921 @root=40 restarts=1 lp_iters=[0, 0, 65'346, 25'577])
#Bound 27.73s best:1612.2948 next:[1580.1935,1612.2948] lb_tree_search (nodes=290/294 rc=62 decisions=1924 @root=40 restarts=1 lp_iters=[0, 0, 65'786, 25'577])
#Model 27.81s var:568/708 constraints:860/1013
#Model 27.94s var:564/708 constraints:854/1013
#Bound 28.19s best:1612.2948 next:[1580.2116,1612.2948] lb_tree_search (nodes=290/294 rc=63 decisions=1935 @root=41 restarts=1 lp_iters=[0, 0, 66'180, 25'577])
#Model 28.47s var:562/708 constraints:852/1013
#Bound 28.68s best:1612.2948 next:[1580.21586,1612.2948] lb_tree_search (nodes=290/294 rc=63 decisions=1946 @root=42 restarts=1 lp_iters=[0, 0, 66'624, 25'577])
#Model 28.80s var:560/708 constraints:850/1013
#Bound 29.25s best:1612.2948 next:[1580.23975,1612.2948] lb_tree_search (nodes=290/294 rc=64 decisions=1962 @root=43 restarts=1 lp_iters=[0, 0, 67'206, 25'577])
#Bound 29.32s best:1612.2948 next:[1580.25056,1612.2948] lb_tree_search (nodes=289/294 rc=64 decisions=1967 @root=43 restarts=1 lp_iters=[0, 0, 67'652, 25'577])
#Model 29.33s var:558/708 constraints:847/1013
#Bound 30.36s best:1612.2948 next:[1580.29456,1612.2948] lb_tree_search (nodes=289/294 rc=64 decisions=1976 @root=44 restarts=1 lp_iters=[0, 0, 68'076, 25'577])
#Bound 30.46s best:1612.2948 next:[1580.31119,1612.2948] lb_tree_search (nodes=289/294 rc=65 decisions=1984 @root=45 restarts=1 lp_iters=[0, 0, 68'557, 25'577])
#Bound 30.55s best:1612.2948 next:[1580.324,1612.2948] lb_tree_search (nodes=289/294 rc=65 decisions=1992 @root=45 restarts=1 lp_iters=[0, 0, 69'088, 25'577])
#Bound 30.72s best:1612.2948 next:[1580.3334,1612.2948] lb_tree_search (nodes=289/294 rc=65 decisions=2005 @root=45 restarts=1 lp_iters=[0, 0, 69'854, 25'577])
#Model 30.95s var:556/708 constraints:844/1013
#Model 31.58s var:554/708 constraints:841/1013
#Model 32.35s var:552/708 constraints:839/1013
#Model 32.60s var:550/708 constraints:836/1013
#Model 33.10s var:548/708 constraints:834/1013
#Bound 33.14s best:1612.2948 next:[1580.33342,1612.2948] objective_lb_search
#Model 34.70s var:544/708 constraints:830/1013
#Model 34.72s var:542/708 constraints:828/1013
#Model 34.87s var:534/708 constraints:819/1013
#Model 35.19s var:532/708 constraints:817/1013
#Bound 36.26s best:1612.2948 next:[1580.34274,1612.2948] lb_tree_search (nodes=187/188 rc=74 decisions=2492 @root=48 restarts=2 lp_iters=[0, 0, 88'884, 35'148])
#Bound 36.37s best:1612.2948 next:[1580.34582,1612.2948] lb_tree_search (nodes=187/188 rc=74 decisions=2506 @root=48 restarts=2 lp_iters=[0, 0, 89'504, 35'148])
#Bound 36.39s best:1612.2948 next:[1580.36596,1612.2948] lb_tree_search (nodes=188/189 rc=74 decisions=2510 @root=48 restarts=2 lp_iters=[0, 0, 89'580, 35'186])
#Bound 36.45s best:1612.2948 next:[1580.43373,1612.2948] lb_tree_search (nodes=189/190 rc=74 decisions=2520 @root=48 restarts=2 lp_iters=[0, 0, 89'967, 35'220])
#Bound 37.00s best:1612.2948 next:[1580.44819,1612.2948] lb_tree_search (nodes=189/192 rc=74 decisions=2541 @root=49 restarts=2 lp_iters=[0, 0, 90'662, 35'266])
#Bound 37.55s best:1612.2948 next:[1580.45325,1612.2948] lb_tree_search (nodes=189/192 rc=74 decisions=2556 @root=50 restarts=2 lp_iters=[0, 0, 91'163, 35'266])
#Model 38.05s var:530/708 constraints:815/1013
#Bound 38.11s best:1612.2948 next:[1580.46239,1612.2948] lb_tree_search (nodes=190/193 rc=74 decisions=2566 @root=51 restarts=2 lp_iters=[0, 0, 91'709, 35'277])
#Bound 38.12s best:1612.2948 next:[1580.47946,1612.2948] lb_tree_search (nodes=191/194 rc=74 decisions=2569 @root=51 restarts=2 lp_iters=[0, 0, 91'783, 35'288])
#Model 38.95s var:528/708 constraints:812/1013
#Bound 38.68s best:1612.2948 next:[1580.73963,1612.2948] lb_tree_search (nodes=192/196 rc=74 decisions=2626 @root=51 restarts=2 lp_iters=[0, 0, 95'308, 35'522]) [skipped_logs=6]
#Bound 39.77s best:1612.2948 next:[1580.77995,1612.2948] lb_tree_search (nodes=191/196 rc=74 decisions=2649 @root=53 restarts=2 lp_iters=[0, 0, 96'374, 35'522]) [skipped_logs=1]
#Bound 40.35s best:1612.2948 next:[1580.80793,1612.2948] lb_tree_search (nodes=191/196 rc=74 decisions=2664 @root=54 restarts=2 lp_iters=[0, 0, 97'030, 35'522]) [skipped_logs=0]
#Bound 41.53s best:1612.2948 next:[1580.82531,1612.2948] lb_tree_search (nodes=191/196 rc=74 decisions=2682 @root=55 restarts=2 lp_iters=[0, 0, 97'736, 35'522]) [skipped_logs=0]
#Model 42.16s var:526/708 constraints:810/1013
#Bound 42.97s best:1612.2948 next:[1580.93658,1612.2948] lb_tree_search (nodes=191/196 rc=74 decisions=2723 @root=58 restarts=2 lp_iters=[0, 0, 99'713, 35'522]) [skipped_logs=3]
#Bound 43.52s best:1612.2948 next:[1581.23662,1612.2948] lb_tree_search (nodes=190/196 rc=74 decisions=2773 @root=58 restarts=2 lp_iters=[0, 0, 102'992, 35'522]) [skipped_logs=5]
#Model 44.13s var:524/708 constraints:808/1013
#Done 44.17s reduced_costs
#Done 44.17s max_lp
#Done 44.18s objective_lb_search
Task timing n [ min, max] avg dev time n [ min, max] avg dev dtime
'core': 1 [ 44.15s, 44.15s] 44.15s 0.00ns 44.15s 2 [ 1.47ms, 58.80s] 29.40s 29.40s 58.80s
'default_lp': 1 [ 44.15s, 44.15s] 44.15s 0.00ns 44.15s 2 [ 45.57ms, 23.70s] 11.87s 11.83s 23.74s
'feasibility_pump': 214 [801.77us, 94.86ms] 2.11ms 7.96ms 451.17ms 213 [162.57us, 48.62ms] 690.27us 4.63ms 147.03ms
'fj': 1 [ 45.94ms, 45.94ms] 45.94ms 0.00ns 45.94ms 1 [ 12.68ms, 12.68ms] 12.68ms 0.00ns 12.68ms
'fj': 1 [ 65.83ms, 65.83ms] 65.83ms 0.00ns 65.83ms 1 [ 26.82ms, 26.82ms] 26.82ms 0.00ns 26.82ms
'fs_random': 1 [ 23.94ms, 23.94ms] 23.94ms 0.00ns 23.94ms 1 [ 4.70ms, 4.70ms] 4.70ms 0.00ns 4.70ms
'fs_random_no_lp': 1 [ 22.41ms, 22.41ms] 22.41ms 0.00ns 22.41ms 1 [ 4.28ms, 4.28ms] 4.28ms 0.00ns 4.28ms
'fs_random_quick_restart_no_lp': 1 [ 24.67ms, 24.67ms] 24.67ms 0.00ns 24.67ms 1 [ 1.47ms, 1.47ms] 1.47ms 0.00ns 1.47ms
'graph_arc_lns': 103 [ 3.68ms, 434.03ms] 213.90ms 130.85ms 22.03s 101 [406.22us, 100.24ms] 62.17ms 42.06ms 6.28s
'graph_cst_lns': 108 [ 7.36ms, 403.48ms] 198.91ms 127.43ms 21.48s 107 [456.00ns, 100.23ms] 56.46ms 42.25ms 6.04s
'graph_dec_lns': 100 [ 2.82ms, 476.09ms] 214.60ms 131.49ms 21.46s 99 [ 10.00ns, 101.63ms] 61.52ms 42.04ms 6.09s
'graph_var_lns': 95 [ 3.31ms, 447.94ms] 233.15ms 128.01ms 22.15s 95 [ 10.00ns, 100.20ms] 63.73ms 39.66ms 6.05s
'lb_relax_lns': 28 [ 97.98ms, 1.74s] 837.94ms 516.01ms 23.46s 28 [ 10.71ms, 516.70ms] 315.06ms 215.74ms 8.82s
'lb_tree_search': 1 [ 44.15s, 44.15s] 44.15s 0.00ns 44.15s 2 [ 90.02ms, 23.35s] 11.72s 11.63s 23.44s
'ls': 126 [ 43.03ms, 292.63ms] 169.66ms 23.62ms 21.38s 126 [ 25.79ms, 100.03ms] 99.42ms 6.59ms 12.53s
'ls_lin': 128 [ 35.08ms, 227.51ms] 166.86ms 21.10ms 21.36s 128 [ 19.52ms, 100.04ms] 98.89ms 8.96ms 12.66s
'max_lp': 1 [ 44.14s, 44.14s] 44.14s 0.00ns 44.14s 2 [ 49.15ms, 24.69s] 12.37s 12.32s 24.74s
'no_lp': 1 [ 44.14s, 44.14s] 44.14s 0.00ns 44.14s 2 [ 1.61ms, 25.15s] 12.58s 12.57s 25.15s
'objective_lb_search': 1 [ 44.14s, 44.14s] 44.14s 0.00ns 44.14s 2 [ 50.91ms, 27.98s] 14.02s 13.97s 28.03s
'probing': 1 [ 44.15s, 44.15s] 44.15s 0.00ns 44.15s 2 [ 59.79ms, 27.75s] 13.91s 13.85s 27.81s
'pseudo_costs': 1 [ 44.14s, 44.14s] 44.14s 0.00ns 44.14s 2 [ 22.41ms, 21.11s] 10.57s 10.54s 21.13s
'quick_restart': 1 [ 44.15s, 44.15s] 44.15s 0.00ns 44.15s 2 [ 50.88ms, 23.27s] 11.66s 11.61s 23.32s
'quick_restart_no_lp': 1 [ 44.17s, 44.17s] 44.17s 0.00ns 44.17s 2 [ 1.61ms, 38.37s] 19.18s 19.18s 38.37s
'reduced_costs': 1 [ 44.14s, 44.14s] 44.14s 0.00ns 44.14s 2 [ 23.18ms, 30.35s] 15.19s 15.16s 30.37s
'rins/rens': 104 [ 4.03ms, 412.32ms] 206.11ms 126.28ms 21.44s 100 [ 2.39us, 100.16ms] 62.61ms 40.73ms 6.26s
'rnd_cst_lns': 100 [ 4.06ms, 472.77ms] 219.21ms 131.93ms 21.92s 100 [ 10.00ns, 100.18ms] 59.85ms 40.99ms 5.98s
'rnd_var_lns': 104 [ 4.33ms, 434.63ms] 209.77ms 128.90ms 21.82s 104 [ 10.00ns, 100.25ms] 59.71ms 42.32ms 6.21s
Search stats Bools Conflicts Branches Restarts BacktrackToRoot Backtrack BoolPropag IntegerPropag
'core': 1'065 316'817 958'110 1'530 14'159 344'186 35'580'452 17'399'357
'default_lp': 354 3'538 132'464 25 36'892 47'212 1'230'571 4'910'431
'fs_random': 354 0 724 0 708 708 6'799 17'398
'fs_random_no_lp': 354 53 2'079 1 1'378 1'509 15'929 42'938
'fs_random_quick_restart_no_lp': 354 0 708 0 708 708 6'758 17'253
'lb_tree_search': 354 223 84'952 0 27'539 33'569 790'687 3'058'095
'max_lp': 354 3'803 171'428 32 46'295 58'788 1'539'351 6'149'626
'no_lp': 354 398'612 698'707 1'064 23'656 424'789 20'951'226 68'125'874
'objective_lb_search': 381 1'874 96'795 13 30'053 37'272 887'603 3'512'719
'probing': 435 27 1'202 0 1'015 1'022 15'537 42'199
'pseudo_costs': 354 3'612 171'896 35 47'966 60'735 1'604'881 6'344'738
'quick_restart': 354 990 190'226 46 56'690 69'058 1'647'024 6'564'887
'quick_restart_no_lp': 575 216'488 1'649'201 18'997 79'103 303'981 19'241'738 48'537'230
'reduced_costs': 363 2'740 98'879 26 28'753 37'095 853'936 3'342'337
SAT formula Fixed Equiv Total VarLeft BinaryClauses PermanentClauses TemporaryClauses
'core': 101 34 1'065 930 4'336 27'128 13'650
'default_lp': 92 0 354 262 836 664 1'921
'fs_random': 0 0 354 354 80 40 0
'fs_random_no_lp': 0 0 354 354 80 44 43
'fs_random_quick_restart_no_lp': 0 0 354 354 80 40 0
'lb_tree_search': 91 0 354 263 858 630 39
'max_lp': 91 0 354 263 800 675 2'027
'no_lp': 92 0 354 262 896 5'985 14'001
'objective_lb_search': 114 0 381 267 806 626 166
'probing': 117 0 435 318 6'870 1'487 7
'pseudo_costs': 91 0 354 263 822 644 1'849
'quick_restart': 91 0 354 263 858 659 305
'quick_restart_no_lp': 115 2 575 458 1'702 5'429 7'941
'reduced_costs': 103 0 363 260 552 550 1'753
SAT stats ClassicMinim LitRemoved LitRemovedBinary LitLearned LitForgotten Subsumed
'core': 272'376 2'898'973 1'146'754 16'632'830 9'986'239 71'982
'default_lp': 2'834 48'201 78'175 161'056 0 858
'fs_random': 0 0 0 0 0 0
'fs_random_no_lp': 17 36 345 2'207 0 4
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0
'lb_tree_search': 64 168 1'819 2'850 0 115
'max_lp': 3'090 75'419 70'788 166'514 0 960
'no_lp': 359'753 3'630'367 2'751'853 13'715'114 9'508'768 95'120
'objective_lb_search': 1'523 52'607 17'794 34'942 0 725
'probing': 1 3 31 478 0 0
'pseudo_costs': 2'906 44'504 60'053 148'771 0 847
'quick_restart': 640 11'135 11'823 23'432 0 427
'quick_restart_no_lp': 185'895 1'846'050 2'880'588 7'354'790 5'546'836 34'781
'reduced_costs': 2'025 26'521 30'676 161'417 0 598
Vivification Clauses Decisions LitTrue Subsumed LitRemoved DecisionReused Conflicts
'core': 15'608 459'357 0 3'334 133'079 36'330 914
'default_lp': 27'207 109'396 2 1'744 8'843 4'328 23
'fs_random': 0 0 0 0 0 0 0
'fs_random_no_lp': 38 457 0 2 15 6 0
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0
'lb_tree_search': 17'645 66'696 1 1'597 7'945 2'747 6
'max_lp': 34'578 143'621 4 1'974 9'963 5'415 34
'no_lp': 23'499 175'722 8 3'979 50'583 24'574 481
'objective_lb_search': 19'366 77'686 6 1'724 8'631 3'454 31
'probing': 1 1 0 1 3 0 0
'pseudo_costs': 35'715 143'284 2 1'873 9'614 5'483 25
'quick_restart': 37'394 155'852 4 1'743 8'697 6'349 38
'quick_restart_no_lp': 58'599 459'174 5 7'795 79'715 41'425 836
'reduced_costs': 17'137 72'075 6 1'353 6'828 2'691 21
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': 6'054 143 70 69'824 3'554 155 2'158 3'334 1'531 10'189 0 0 182'738 694'001 316'817
'default_lp': 596 6 14 811 5 14 47 1'744 384 388 0 0 0 7'561 3'538
'fs_random': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'fs_random_no_lp': 0 0 0 4 0 0 0 2 0 0 0 0 0 67 53
'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
'lb_tree_search': 394 0 12 112 0 3 3 1'597 297 291 0 0 0 72 223
'max_lp': 565 8 14 917 10 24 43 1'974 319 452 0 0 0 7'427 3'803
'no_lp': 6'865 262 35 92'507 2'573 1'117 2'613 3'979 475 2'731 0 0 267'698 926'321 398'612
'objective_lb_search': 1'064 21 12 676 6 47 49 1'724 318 102 0 0 0 2'694 1'874
'probing': 0 0 0 0 0 0 0 1 0 0 0 0 0 7 27
'pseudo_costs': 671 32 18 811 6 16 36 1'873 363 458 0 0 0 7'378 3'612
'quick_restart': 409 0 17 409 1 7 18 1'743 267 255 0 0 0 1'629 990
'quick_restart_no_lp': 6'148 5 89 32'851 988 343 1'930 7'795 878 1'583 0 0 151'499 501'129 216'488
'reduced_costs': 518 13 26 585 6 21 13 1'353 193 173 0 0 0 13'196 2'740
Lp stats Component Iterations AddedCuts OPTIMAL DUAL_F. DUAL_U.
'default_lp': 1 291'131 3'343 8'944 0 633
'fs_random': 1 331 131 11 0 0
'lb_tree_search': 1 162'503 1'755 2'469 1'194 10
'max_lp': 1 315'933 2'465 7'763 2'827 537
'objective_lb_search': 1 265'022 2'975 4'824 5 202
'probing': 1 85'423 2'595 623 21 9
'pseudo_costs': 1 269'870 2'815 7'479 2'463 455
'quick_restart': 1 149'942 3'057 3'122 4 85
'reduced_costs': 1 314'570 2'876 3'825 2'405 373
Lp dimension Final dimension of first component
'default_lp': 744 rows, 708 columns, 12210 entries
'fs_random': 297 rows, 708 columns, 1817 entries
'lb_tree_search': 851 rows, 708 columns, 16895 entries
'max_lp': 739 rows, 708 columns, 13012 entries
'objective_lb_search': 804 rows, 708 columns, 13605 entries
'probing': 1359 rows, 708 columns, 36372 entries
'pseudo_costs': 808 rows, 708 columns, 13469 entries
'quick_restart': 1015 rows, 708 columns, 18041 entries
'reduced_costs': 971 rows, 708 columns, 14679 entries
Lp debug CutPropag CutEqPropag Adjust Overflow Bad BadScaling
'default_lp': 1 32 9'561 0 63'273 0
'fs_random': 0 0 8 0 0 0
'lb_tree_search': 0 3 3'672 0 134'426 0
'max_lp': 0 0 11'109 0 67'705 0
'objective_lb_search': 0 2 5'020 0 56'513 0
'probing': 0 0 646 0 172'027 0
'pseudo_costs': 0 35 10'347 0 73'316 0
'quick_restart': 0 1 3'205 0 111'648 0
'reduced_costs': 0 1 6'563 0 59'467 0
Lp pool Constraints Updates Simplif Merged Shortened Split Strengthened Cuts/Call
'default_lp': 4'671 757 17'596 2 8'655 256 410 3'343/7'377
'fs_random': 1'461 0 0 0 0 0 0 131/200
'lb_tree_search': 3'121 1'061 15'470 1 9'345 1'045 163 1'755/3'383
'max_lp': 3'831 686 16'859 1 8'743 452 323 2'465/5'500
'objective_lb_search': 4'304 818 18'086 1 13'332 334 345 2'975/5'507
'probing': 3'924 2'089 2'737 1 2'352 1'911 175 2'595/4'551
'pseudo_costs': 4'182 619 19'837 0 9'151 370 359 2'815/6'049
'quick_restart': 4'384 1'521 28'014 3 17'373 826 302 3'057/5'615
'reduced_costs': 4'242 611 18'858 1 13'267 427 289 2'876/5'228
Lp Cut fs_random reduced_costs max_lp pseudo_costs objective_lb_search default_lp quick_restart lb_tree_search probing
CG_FF: - 39 27 22 26 39 18 10 15
CG_K: - 22 14 13 31 27 13 4 5
CG_KL: - 13 4 2 4 18 6 1 4
CG_R: - 52 51 65 35 60 28 21 21
CG_RB: - 70 73 92 49 68 38 60 65
CG_RBP: - 44 37 63 27 36 29 11 15
Clique: - 17 22 30 - - - 27 -
IB: 131 984 1'014 1'174 872 1'323 790 297 575
MIR_1_FF: - 143 81 140 158 133 184 152 158
MIR_1_K: - 65 12 57 68 26 56 8 21
MIR_1_KL: - 34 9 33 36 25 49 9 28
MIR_1_R: - 7 11 5 7 2 10 28 12
MIR_1_RB: - 33 31 20 33 36 53 29 42
MIR_1_RBP: - 47 29 21 39 53 116 156 161
MIR_2_FF: - 115 84 89 120 125 121 79 104
MIR_2_K: - 37 26 16 47 27 45 9 13
MIR_2_KL: - 10 21 11 21 22 23 8 27
MIR_2_R: - 4 4 5 7 19 13 5 13
MIR_2_RB: - 50 67 57 63 79 69 43 39
MIR_2_RBP: - 22 28 24 34 34 40 35 36
MIR_3_FF: - 80 53 62 87 60 97 59 75
MIR_3_K: - 28 9 25 30 20 25 6 19
MIR_3_KL: - 10 2 5 17 14 13 3 18
MIR_3_R: - 5 3 5 8 14 9 9 3
MIR_3_RB: - 57 48 43 42 56 60 42 22
MIR_3_RBP: - 16 21 18 20 26 42 13 23
MIR_4_FF: - 72 36 54 55 65 78 34 74
MIR_4_K: - 23 10 30 25 19 25 8 21
MIR_4_KL: - 1 2 7 3 5 10 2 17
MIR_4_R: - 7 5 3 7 13 6 3 6
MIR_4_RB: - 43 36 34 39 43 40 22 27
MIR_4_RBP: - 10 21 15 22 30 27 6 31
MIR_5_FF: - 41 34 37 53 36 44 30 29
MIR_5_K: - 31 15 13 31 31 25 13 31
MIR_5_KL: - 7 6 2 8 12 10 5 6
MIR_5_R: - 4 4 3 10 12 6 5 3
MIR_5_RB: - 26 19 23 29 39 40 22 20
MIR_5_RBP: - 24 30 13 37 30 28 13 25
MIR_6_FF: - 35 29 22 30 39 38 26 44
MIR_6_K: - 20 32 12 28 38 18 13 21
MIR_6_KL: - 9 15 10 5 16 13 9 16
MIR_6_R: - 4 2 6 8 8 2 3 6
MIR_6_RB: - 31 15 20 27 20 18 10 16
MIR_6_RBP: - 39 41 22 40 37 31 21 41
ZERO_HALF_FF: - 16 7 30 27 23 12 4 14
ZERO_HALF_K: - - 6 14 27 13 12 1 3
ZERO_HALF_KL: - 1 1 3 3 5 1 3 5
ZERO_HALF_R: - 331 263 284 414 383 510 336 504
ZERO_HALF_RB: - 52 25 32 86 36 65 25 78
ZERO_HALF_RBP: - 45 30 29 80 48 51 17 43
LNS stats Improv/Calls Closed Difficulty TimeLimit
'graph_arc_lns': 15/103 50% 8.90e-01 0.10
'graph_cst_lns': 11/107 52% 9.23e-01 0.10
'graph_dec_lns': 12/100 51% 9.07e-01 0.10
'graph_var_lns': 9/95 54% 9.59e-01 0.10
'lb_relax_lns': 6/28 50% 7.18e-01 0.50
'rins/rens': 102/104 54% 9.11e-01 0.10
'rnd_cst_lns': 7/100 55% 9.53e-01 0.10
'rnd_var_lns': 7/104 53% 9.32e-01 0.10
LS stats Batches Restarts/Perturbs LinMoves GenMoves CompoundMoves Bactracks WeightUpdates ScoreComputed
'fj_restart': 1 1 3'906 0 0 0 3'406 90'931
'fj_restart_decay_compound_perturb_obj': 1 1 0 1'258 88 585 14 51'291
'ls_lin_restart': 22 11 320'211 0 0 0 269'346 9'600'438
'ls_lin_restart_compound': 19 7 0 298'106 18'169 139'947 5'109 6'998'628
'ls_lin_restart_compound_perturb': 15 12 0 242'494 15'628 113'412 2'433 5'723'245
'ls_lin_restart_decay': 12 7 201'853 0 0 0 8'444 3'751'905
'ls_lin_restart_decay_compound': 19 7 0 303'960 40'565 131'659 400 7'285'833
'ls_lin_restart_decay_compound_perturb': 8 7 0 110'556 18'523 46'002 284 2'801'207
'ls_lin_restart_decay_perturb': 17 8 287'394 0 0 0 12'462 5'105'780
'ls_lin_restart_perturb': 16 11 213'334 0 0 0 264'949 5'852'942
'ls_restart': 29 9 395'122 0 0 0 302'018 10'938'455
'ls_restart_compound': 6 5 0 91'790 6'835 42'461 844 2'272'026
'ls_restart_compound_perturb': 17 9 0 264'140 19'084 122'493 1'380 6'371'592
'ls_restart_decay': 18 10 304'097 0 0 0 13'116 5'419'049
'ls_restart_decay_compound': 12 10 0 191'063 32'060 79'471 400 5'030'465
'ls_restart_decay_compound_perturb': 13 11 0 201'656 32'908 84'344 403 5'236'261
'ls_restart_decay_perturb': 22 9 371'942 0 0 0 16'263 6'658'440
'ls_restart_perturb': 9 5 141'524 0 0 0 100'787 4'296'823
Solutions (17) Num Rank
'core': 2 [12,13]
'fj_restart_decay_compound_perturb_obj': 2 [4,5]
'graph_arc_lns': 4 [3,15]
'lb_relax_lns_bool_h': 2 [15,16]
'no_lp': 4 [0,3]
'pseudo_costs': 2 [5,6]
'quick_restart_no_lp': 16 [1,17]
'rnd_var_lns': 2 [9,10]
Objective bounds Num
'am1_presolve': 1
'default_lp': 2
'initial_domain': 1
'lb_tree_search': 86
'max_lp': 5
'objective_lb_search': 9
'probing': 9
'pseudo_costs': 1
Solution repositories Added Queried Synchro
'alternative_path': 50 416 50
'best_solutions': 165 540 113
'fj solution hints': 0 0 0
'lp solutions': 219 94 188
'pump': 61 10
Improving bounds shared Num Sym
'default_lp': 11 0
'lb_tree_search': 22 0
'max_lp': 14 0
'no_lp': 5 0
'objective_lb_search': 12 0
'probing': 18 0
'pseudo_costs': 9 0
'quick_restart': 49 0
'quick_restart_no_lp': 49 0
'reduced_costs': 66 0
Clauses shared #Exported #Imported #BinaryRead #BinaryTotal
'core': 1'174 3'750 1'187 1'219
'default_lp': 273 3'750 1'207 1'219
'fs_random': 0 0 0 1'219
'fs_random_no_lp': 0 0 0 1'219
'fs_random_quick_restart_no_lp': 0 0 0 1'219
'lb_tree_search': 77 3'901 1'207 1'219
'max_lp': 341 3'718 1'180 1'219
'no_lp': 2'259 2'808 1'211 1'219
'objective_lb_search': 222 3'593 1'175 1'219
'probing': 641 3'055 1'008 1'219
'pseudo_costs': 325 3'708 1'190 1'219
'quick_restart': 555 3'676 1'207 1'219
'quick_restart_no_lp': 3'527 1'837 1'187 1'219
'reduced_costs': 253 2'875 1'007 1'219
LRAT_status: NA
[Scaling] scaled_objective_bound: 1612.29 corrected_bound: 1612.29 delta: 1.48737e-06
CpSolverResponse summary:
status: OPTIMAL
objective: 1612.294803789032
best_bound: 1612.2948002196
integers: 727
booleans: 354
conflicts: 53
branches: 2079
propagations: 15929
integer_propagations: 42938
restarts: 1
lp_iterations: 0
walltime: 44.2059
usertime: 44.2059
deterministic_time: 402.053
gap_integral: 383.924
solution_fingerprint: 0x5b832712c354a6b2
[13]:
wfn
[13]: