{ "cells": [ { "cell_type": "markdown", "id": "b977ea38-7154-4788-b4bb-382e8aed7d54", "metadata": {}, "source": [ "# MILPRouter example" ] }, { "cell_type": "markdown", "id": "28f9c4f4", "metadata": {}, "source": [ "This notebook demonstrates how to use `OptiWindNet` to design collector system cable networks using the **MILPRouter with OR-Tools Solver**." ] }, { "cell_type": "markdown", "id": "7954bf38", "metadata": {}, "source": [ "## Load data" ] }, { "cell_type": "markdown", "id": "29423f3d", "metadata": {}, "source": [ "import required modules" ] }, { "cell_type": "code", "execution_count": 1, "id": "23c1c992-a563-4f2d-bbc8-cf0884e5b275", "metadata": {}, "outputs": [], "source": [ "from optiwindnet.api import WindFarmNetwork, EWRouter, MILPRouter" ] }, { "cell_type": "code", "execution_count": 2, "id": "2dfff35b", "metadata": {}, "outputs": [], "source": [ "# Display figures as SVG in Jupyter notebooks\n", "%config InlineBackend.figure_formats = ['svg']" ] }, { "cell_type": "markdown", "id": "5ba38347", "metadata": {}, "source": [ "create an instance of `wfn` using `.from_pbf()`\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "2dcc046a", "metadata": {}, "outputs": [], "source": [ "wfn = WindFarmNetwork.from_pbf(filepath='data/DTU_letters.osm.pbf', cables=[(7, 2000.0)])" ] }, { "cell_type": "code", "execution_count": 4, "id": "c333f144", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wfn" ] }, { "cell_type": "markdown", "id": "b2bb8f58-4c20-4fe0-9cad-912d06b5871c", "metadata": {}, "source": [ "## Optimize" ] }, { "cell_type": "markdown", "id": "4f9b49b1-a597-4053-a3d1-f3de7bb8d164", "metadata": {}, "source": [ "Warmstart with `EWRouter`:" ] }, { "cell_type": "markdown", "id": "1cac06fd", "metadata": {}, "source": [ ">Note: In OptiWindNet, `MILPRouter` automatically uses any existing feasible network and checks whether it is eligible as a **warm start** for the MILP solver. If eligible, the MILP model will be warm-started from the existing network. Therefore, to warm-start a newly created `WindFarmNetwork`, pre-run the optimization with a router (e.g., `EWRouter` or `HGSRouter`) to obtain an initial solution; subsequent runs with `MILPRouter` will pick it up automatically." ] }, { "cell_type": "code", "execution_count": 5, "id": "19eb273d-f662-4851-bf09-e0ec532d7b8b", "metadata": {}, "outputs": [], "source": [ "res_warmstart= wfn.optimize(router=EWRouter())" ] }, { "cell_type": "code", "execution_count": 6, "id": "743daf67", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1647.108905210097" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wfn.length()" ] }, { "cell_type": "markdown", "id": "0ace0e50", "metadata": {}, "source": [ "The syntax for defining a MILPRouter is:\n", "\n", "```python\n", "router = MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.005, verbose=True)\n", "```\n", "The solver name could be chosen from among the following solvers:\n", "```python\n", "solver_name = 'ortools.«backend»' # «backend» in (cp_sat, gscip, highs)\n", "solver_name = 'gurobi'\n", "solver_name = 'cbc'\n", "solver_name = 'cplex'\n", "solver_name = 'highs'\n", "solver_name = 'scip'\n", "```\n", "\n", "Rest of arguments (time_limit, mip_gap, verbose) are the same for all solvers.\n", "\n", "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)" ] }, { "cell_type": "code", "execution_count": 7, "id": "003714e7-bf75-4cda-ae19-58c74e126c75", "metadata": {}, "outputs": [], "source": [ "router = MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.005, verbose=True)" ] }, { "cell_type": "code", "execution_count": 8, "id": "6ee86e45", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "IntegerBoundsPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "BoundPropagationPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "ImpliedIntegerPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "IntegerBoundsPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "ReduceCostOverExclusiveOrConstraintPreprocessor 1093 rows, 708 columns, 3962 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "\n", "Scaling to pure integer problem.\n", "Num integers: 708/708 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP] \n", "Maximum constraint coefficient relative error: 0\n", "Maximum constraint worst-case activity error: 0\n", "Constraint scaling factor range: [1, 1]\n", "\n", "Starting CP-SAT solver v9.15.6755\n", "Parameters: max_time_in_seconds: 60 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.005\n", "Setting number of workers to 16\n", "\n", "Initial optimization model 'optiwindnet': (model_fingerprint: 0x5ec2d01861d9914d)\n", "#Variables: 708 (#bools: 314 in floating point objective) (628 primary variables)\n", " - 354 Booleans in [0,1]\n", " - 314 in [0,6]\n", " - 40 in [0,7]\n", "#kLinear2: 865\n", "#kLinear3: 1\n", "#kLinearN: 227 (#terms: 2'229)\n", "\n", "Starting presolve at 0.00s\n", "The solution hint is complete and is feasible.\n", "[Scaling] Floating point objective has 314 terms with magnitude in [0.140862, 190.901] average = 35.1267\n", "[Scaling] Objective coefficient relative error: 4.44741e-06\n", "[Scaling] Objective worst-case absolute error: 8.26922e-05\n", "[Scaling] Objective scaling factor: 524288\n", " 2.12e-04s 0.00e+00d [DetectDominanceRelations] \n", " 4.58e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1 \n", " 1.54e-05s 0.00e+00d [ExtractEncodingFromLinear] #potential_supersets=145 \n", " 9.19e-05s 0.00e+00d [DetectDuplicateColumns] \n", " 7.36e-05s 0.00e+00d [DetectDuplicateConstraints] \n", "[Symmetry] Graph for symmetry has 2'666 nodes and 4'984 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000306732 dtime: 0.00047967\n", "[SAT presolve] num removable Booleans: 0 / 354\n", "[SAT presolve] num trivial clauses: 0\n", "[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [1.0112e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [1.6475e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", " 2.48e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 1.14e-02s 3.89e-03d [Probe] #probed=1'416 #new_binary_clauses=354 \n", " 6.79e-04s 2.15e-04d [MaxClique] Merged 262 constraints with 776 literals into 142 constraints with 536 literals\n", " 2.57e-04s 0.00e+00d [DetectDominanceRelations] \n", " 3.12e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 8.21e-04s 0.00e+00d [ProcessAtMostOneAndLinear] #num_changes=354 \n", " 1.06e-04s 0.00e+00d [DetectDuplicateConstraints] \n", " 9.30e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 1.99e-04s 6.08e-06d [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=41 \n", " 1.29e-05s 0.00e+00d [DetectDifferentVariables] \n", " 8.69e-04s 7.01e-05d [ProcessSetPPC] #relevant_constraints=184 #num_inclusions=182 \n", " 1.10e-04s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=142 \n", " 2.93e-04s 0.00e+00d [DetectEncodedComplexDomains] \n", " 1.68e-05s 1.65e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3 \n", " 1.25e-04s 9.42e-05d [FindBigAtMostOneAndLinearOverlap] \n", " 9.81e-05s 1.07e-04d [FindBigVerticalLinearOverlap] \n", " 1.36e-05s 5.27e-06d [FindBigHorizontalLinearOverlap] #linears=80 \n", " 9.94e-06s 0.00e+00d [MergeClauses] \n", " 2.22e-04s 0.00e+00d [DetectDominanceRelations] \n", " 3.71e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1 \n", " 5.36e-04s 0.00e+00d [DetectDominanceRelations] \n", " 1.82e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 9.02e-05s 0.00e+00d [DetectDuplicateColumns] \n", " 1.28e-04s 0.00e+00d [DetectDuplicateConstraints] \n", "[Symmetry] Graph for symmetry has 2'412 nodes and 4'137 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000229899 dtime: 0.00043586\n", "[SAT presolve] num removable Booleans: 0 / 354\n", "[SAT presolve] num trivial clauses: 0\n", "[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [9.247e-06s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [2.0816e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", " 2.13e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 4.56e-03s 1.27e-03d [Probe] #probed=708 \n", " 4.84e-04s 1.45e-04d [MaxClique] \n", " 2.11e-04s 0.00e+00d [DetectDominanceRelations] \n", " 2.03e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 7.93e-05s 0.00e+00d [ProcessAtMostOneAndLinear] \n", " 7.49e-05s 0.00e+00d [DetectDuplicateConstraints] \n", " 5.99e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 1.16e-04s 4.59e-06d [DetectDominatedLinearConstraints] #relevant_constraints=82 #num_inclusions=40 \n", " 1.11e-05s 0.00e+00d [DetectDifferentVariables] \n", " 7.01e-05s 3.03e-06d [ProcessSetPPC] #relevant_constraints=183 \n", " 8.37e-05s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=142 \n", " 2.64e-04s 0.00e+00d [DetectEncodedComplexDomains] \n", " 1.60e-05s 1.10e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=2 \n", " 1.23e-04s 9.14e-05d [FindBigAtMostOneAndLinearOverlap] \n", " 8.96e-05s 1.07e-04d [FindBigVerticalLinearOverlap] \n", " 1.17e-05s 5.27e-06d [FindBigHorizontalLinearOverlap] #linears=80 \n", " 8.66e-06s 0.00e+00d [MergeClauses] \n", " 2.15e-04s 0.00e+00d [DetectDominanceRelations] \n", " 2.45e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 3.46e-06s 0.00e+00d [MergeNoOverlap] \n", " 3.57e-06s 0.00e+00d [MergeNoOverlap2D] \n", " 1.39e-04s 0.00e+00d [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40 \n", "\n", "Presolve summary:\n", " - 0 affine relations were detected.\n", " - rule 'TODO linear inclusion: superset is equality' was applied 81 times.\n", " - rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.\n", " - rule 'at_most_one: transformed into max clique' was applied 1 time.\n", " - rule 'bool_or: implications' was applied 157 times.\n", " - rule 'deductions: 708 stored' was applied 1 time.\n", " - rule 'linear + amo: extracted enforcement literal' was applied 354 times.\n", " - rule 'linear2: contains a boolean' was applied 354 times.\n", " - rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.\n", " - rule 'linear: positive at most one' was applied 105 times.\n", " - rule 'linear: positive equal one' was applied 40 times.\n", " - rule 'objective: shifted cost with exactly ones' was applied 40 times.\n", " - rule 'presolve: 0 unused variables removed.' was applied 1 time.\n", " - rule 'presolve: iteration' was applied 2 times.\n", " - rule 'setppc: exactly_one included in linear' was applied 40 times.\n", " - rule 'setppc: reduced linear coefficients' was applied 39 times.\n", " - rule 'setppc: removed trivial linear constraint' was applied 1 time.\n", " - rule 'variables: detect fully reified value encoding' was applied 354 times.\n", " - rule 'variables: detect half reified value encoding' was applied 708 times.\n", "\n", "Presolved optimization model 'optiwindnet': (model_fingerprint: 0xbceb3d0f5e9b4ebe)\n", "#Variables: 708 (#bools: 314 in objective) (628 primary variables)\n", " - 354 Booleans in [0,1]\n", " - 314 in [0,6]\n", " - 40 in [0,7]\n", "#kAtMostOne: 105 (#literals: 462)\n", "#kBoolAnd: 37 (#enforced: 37) (#literals: 74)\n", "#kExactlyOne: 40 (#literals: 354)\n", "#kLinear1: 708 (#enforced: 708)\n", "#kLinear3: 1\n", "#kLinearN: 81 (#terms: 1'059)\n", "[Symmetry] Graph for symmetry has 2'412 nodes and 4'137 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000251257 dtime: 0.00043646\n", "\n", "Preloading model.\n", "#Bound 0.04s best:inf next:[1364.00132,11449.6914] initial_domain\n", "#1 0.04s best:1645.69852 next:[1364.00132,1645.69852] complete_hint\n", "#Model 0.05s var:708/708 constraints:972/972\n", "\n", "Starting search at 0.05s with 16 workers.\n", "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]\n", "5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]\n", "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]\n", "3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]\n", "\n", "#2 0.06s best:1629.22229 next:[1364.00132,1629.22229] no_lp [hint] (fixed_bools=0/354)\n", "#Bound 0.06s best:1629.22229 next:[1377.09321,1629.22229] am1_presolve (num_literals=314 num_am1=11 increase=6863921 work_done=1181)\n", "#Bound 0.06s best:1629.22229 next:[1402.64487,1629.22229] objective_lb_search\n", "#Bound 0.06s best:1629.22229 next:[1409.52721,1629.22229] pseudo_costs\n", "#Bound 0.07s best:1629.22229 next:[1409.68956,1629.22229] probing\n", "#Bound 0.07s best:1629.22229 next:[1499.2973,1629.22229] lb_tree_search\n", "#3 0.08s best:1628.56605 next:[1499.2973,1628.56605] quick_restart_no_lp (fixed_bools=0/366)\n", "#4 0.09s best:1624.35452 next:[1499.2973,1624.35452] rnd_cst_lns (d=7.07e-01 s=22 t=0.10 p=1.00 stall=1 h=base)\n", "#5 0.09s best:1620.81203 next:[1499.2973,1620.81203] graph_var_lns (d=7.07e-01 s=23 t=0.10 p=1.00 stall=1 h=base)\n", "#6 0.10s best:1620.1558 next:[1499.2973,1620.1558] graph_var_lns (d=7.07e-01 s=23 t=0.10 p=1.00 stall=1 h=base) [combined with: quick_restart_no_lp...]\n", "#7 0.10s best:1608.69336 next:[1499.2973,1608.69336] quick_restart_no_lp (fixed_bools=0/372)\n", "#8 0.11s best:1608.24843 next:[1499.2973,1608.24843] quick_restart_no_lp (fixed_bools=0/375)\n", "#Bound 0.12s best:1608.24843 next:[1508.6868,1608.24843] lb_tree_search\n", "#Bound 0.13s best:1608.24843 next:[1510.86835,1608.24843] max_lp\n", "#Bound 0.14s best:1608.24843 next:[1511.62243,1608.24843] max_lp\n", "#Model 0.16s var:696/708 constraints:959/972\n", "#9 0.16s best:1594.62232 next:[1511.62243,1594.62232] graph_arc_lns (d=7.07e-01 s=25 t=0.10 p=1.00 stall=0 h=base)\n", "#10 0.17s best:1594.1774 next:[1511.62243,1594.17739] graph_arc_lns (d=7.07e-01 s=25 t=0.10 p=1.00 stall=0 h=base) [combined with: quick_restart_no_lp...]\n", "#11 0.19s best:1593.08762 next:[1511.62243,1593.08762] quick_restart_no_lp (fixed_bools=6/386)\n", "#Model 0.23s var:694/708 constraints:957/972\n", "#Bound 0.27s best:1593.08762 next:[1512.29863,1593.08762] max_lp\n", "#12 0.29s best:1588.29611 next:[1512.29863,1588.2961] quick_restart_no_lp (fixed_bools=7/388)\n", "#Bound 0.29s best:1588.29611 next:[1512.70322,1588.2961] objective_lb_search\n", "#Bound 0.33s best:1588.29611 next:[1523.53914,1588.2961] lb_tree_search\n", "#Bound 0.34s best:1588.29611 next:[1524.9632,1588.2961] max_lp\n", "#13 0.35s best:1582.27954 next:[1524.9632,1582.27954] quick_restart_no_lp (fixed_bools=19/390)\n", "#Model 0.37s var:672/708 constraints:933/972\n", "#Bound 0.38s best:1582.27954 next:[1525.07248,1582.27954] lb_tree_search (nodes=2/2 rc=0 decisions=9 @root=2 restarts=0 lp_iters=[0, 0, 116, 119]) \n", "#Bound 0.38s best:1582.27954 next:[1525.07852,1582.27954] lb_tree_search (nodes=2/2 rc=0 decisions=10 @root=2 restarts=0 lp_iters=[0, 0, 120, 119]) \n", "#Bound 0.40s best:1582.27954 next:[1526.46836,1582.27954] lb_tree_search (nodes=3/3 rc=0 decisions=15 @root=2 restarts=0 lp_iters=[0, 0, 173, 168]) \n", "#Bound 0.41s best:1582.27954 next:[1526.47914,1582.27954] lb_tree_search (nodes=3/3 rc=0 decisions=16 @root=2 restarts=0 lp_iters=[0, 0, 245, 168]) \n", "#Bound 0.42s best:1582.27954 next:[1526.62668,1582.27954] lb_tree_search (nodes=4/4 rc=0 decisions=21 @root=2 restarts=0 lp_iters=[0, 0, 298, 185]) \n", "#Bound 0.43s best:1582.27954 next:[1526.7599,1582.27954] lb_tree_search (nodes=5/5 rc=0 decisions=31 @root=2 restarts=0 lp_iters=[0, 0, 414, 192]) \n", "#Bound 0.45s best:1582.27954 next:[1526.81281,1582.27954] lb_tree_search (nodes=6/6 rc=0 decisions=34 @root=2 restarts=0 lp_iters=[0, 0, 516, 243]) \n", "#Bound 0.46s best:1582.27954 next:[1526.87021,1582.27954] lb_tree_search (nodes=6/6 rc=0 decisions=35 @root=2 restarts=0 lp_iters=[0, 0, 617, 243]) \n", "#14 0.48s best:1580.99387 next:[1526.88985,1580.99387] graph_var_lns (d=8.14e-01 s=33 t=0.10 p=1.00 stall=0 h=base) [combined with: quick_restart_no_lp...]\n", "#Model 0.70s var:670/708 constraints:931/972\n", "#Model 0.79s var:656/708 constraints:915/972\n", "#Bound 1.00s best:1580.99387 next:[1532.12612,1580.99387] max_lp [skipped_logs=13]\n", "#Model 1.06s var:624/708 constraints:881/972\n", "#15 1.06s best:1575.35544 next:[1532.12612,1575.35543] graph_var_lns (d=8.76e-01 s=46 t=0.10 p=1.00 stall=0 h=base)\n", "#Model 1.09s var:622/708 constraints:879/972\n", "#Model 1.21s var:620/708 constraints:877/972\n", "#Model 1.50s var:606/708 constraints:862/972\n", "#Model 1.65s var:604/708 constraints:860/972\n", "#Model 1.73s var:596/708 constraints:852/972\n", "#Model 1.81s var:586/708 constraints:842/972\n", "#Bound 1.99s best:1575.35544 next:[1538.67998,1575.35543] lb_tree_search (nodes=19/19 rc=7 decisions=150 @root=6 restarts=0 lp_iters=[0, 0, 4'560, 581]) [skipped_logs=22]\n", "#Model 2.56s var:582/708 constraints:838/972\n", "#Bound 3.00s best:1575.35544 next:[1541.86761,1575.35543] lb_tree_search (nodes=31/31 rc=11 decisions=312 @root=6 restarts=0 lp_iters=[0, 0, 10'105, 1'202]) [skipped_logs=21]\n", "#Model 3.12s var:576/708 constraints:831/972\n", "#Model 3.40s var:568/708 constraints:823/972\n", "#Model 3.51s var:564/708 constraints:819/972\n", "#Bound 3.85s best:1575.35544 next:[1543.37889,1575.35543] lb_tree_search (nodes=50/55 rc=25 decisions=512 @root=6 restarts=0 lp_iters=[0, 0, 15'906, 1'507]) [skipped_logs=23]\n", "#Model 4.13s var:560/708 constraints:814/972\n", "#Bound 5.02s best:1575.35544 next:[1545.15584,1575.35543] lb_tree_search (nodes=60/68 rc=28 decisions=730 @root=8 restarts=0 lp_iters=[0, 0, 22'669, 1'913]) [skipped_logs=25]\n", "#Bound 5.98s best:1575.35544 next:[1545.769,1575.35543] lb_tree_search (nodes=77/89 rc=37 decisions=972 @root=8 restarts=0 lp_iters=[0, 0, 30'797, 2'447]) [skipped_logs=26]\n", "#Model 6.67s var:556/708 constraints:810/972\n", "#Bound 6.15s best:1575.35544 next:[1545.78961,1575.35543] lb_tree_search (nodes=79/91 rc=38 decisions=1011 @root=8 restarts=0 lp_iters=[0, 0, 31'846, 2'497]) [skipped_logs=2]\n", "#Model 7.40s var:554/708 constraints:806/972\n", "#Model 8.08s var:548/708 constraints:799/972\n", "#Model 8.40s var:546/708 constraints:796/972\n", "#Model 8.71s var:534/708 constraints:783/972\n", "#Model 9.04s var:532/708 constraints:780/972\n", "#Bound 10.06s best:1575.35544 next:[1545.84997,1575.35543] lb_tree_search (nodes=45/45 rc=40 decisions=1156 @root=17 restarts=1 lp_iters=[0, 0, 36'678, 4'390]) \n", "#Bound 10.12s best:1575.35544 next:[1545.8705,1575.35543] lb_tree_search (nodes=46/46 rc=40 decisions=1165 @root=17 restarts=1 lp_iters=[0, 0, 36'985, 4'431]) \n", "#Bound 10.20s best:1575.35544 next:[1545.89946,1575.35543] lb_tree_search (nodes=47/47 rc=40 decisions=1172 @root=17 restarts=1 lp_iters=[0, 0, 37'405, 4'513]) \n", "#Model 11.00s var:530/708 constraints:778/972\n", "#Bound 11.01s best:1575.35544 next:[1546.46288,1575.35543] lb_tree_search (nodes=56/56 rc=43 decisions=1278 @root=17 restarts=1 lp_iters=[0, 0, 40'886, 4'887]) [skipped_logs=9]\n", "#Model 11.31s var:528/708 constraints:776/972\n", "#Model 11.35s var:526/708 constraints:774/972\n", "#Model 11.77s var:524/708 constraints:772/972\n", "#Model 11.86s var:522/708 constraints:770/972\n", "#Bound 11.94s best:1575.35544 next:[1547.23899,1575.35543] lb_tree_search (nodes=66/68 rc=43 decisions=1445 @root=17 restarts=1 lp_iters=[0, 0, 47'075, 5'464]) [skipped_logs=22]\n", "#Model 12.20s var:520/708 constraints:768/972\n", "#Bound 12.99s best:1575.35544 next:[1548.42222,1575.35543] lb_tree_search (nodes=86/88 rc=45 decisions=1714 @root=17 restarts=1 lp_iters=[0, 0, 54'166, 5'983]) [skipped_logs=23]\n", "#Model 13.69s var:518/708 constraints:766/972\n", "#Model 13.92s var:516/708 constraints:763/972\n", "#Bound 13.85s best:1575.35544 next:[1548.87363,1575.35543] lb_tree_search (nodes=95/97 rc=46 decisions=1829 @root=18 restarts=1 lp_iters=[0, 0, 58'624, 6'333]) [skipped_logs=12]\n", "#Model 14.54s var:514/708 constraints:761/972\n", "#Done 14.91s reduced_costs\n", "#Done 14.92s pseudo_costs\n", "#Bound 14.59s best:1575.35544 next:[1548.93973,1575.35543] lb_tree_search (nodes=95/97 rc=46 decisions=1842 @root=19 restarts=1 lp_iters=[0, 0, 59'056, 6'333]) [skipped_logs=0]\n", "\n", "Task timing n [ min, max] avg dev time n [ min, max] avg dev dtime\n", " 'core': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 1.31ms, 11.31s] 5.65s 5.65s 11.31s\n", " 'default_lp': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 22.49ms, 6.91s] 3.47s 3.44s 6.93s\n", " 'feasibility_pump': 69 [835.19us, 25.64ms] 1.59ms 2.93ms 110.02ms 68 [145.21us, 14.25ms] 365.92us 1.70ms 24.88ms\n", " 'fj': 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns\n", " 'fj': 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns\n", " 'fs_random': 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns\n", " '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\n", " '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\n", " 'graph_arc_lns': 39 [ 15.18ms, 443.40ms] 202.24ms 141.92ms 7.89s 39 [ 16.40us, 100.14ms] 49.63ms 40.39ms 1.94s\n", " 'graph_cst_lns': 40 [ 16.49ms, 416.40ms] 200.37ms 163.92ms 8.01s 40 [ 20.89us, 100.12ms] 50.30ms 46.32ms 2.01s\n", " 'graph_dec_lns': 39 [701.90us, 422.57ms] 178.95ms 156.21ms 6.98s 37 [ 10.00ns, 100.19ms] 50.72ms 46.80ms 1.88s\n", " 'graph_var_lns': 38 [887.02us, 426.35ms] 213.05ms 145.67ms 8.10s 37 [ 10.00ns, 100.14ms] 55.40ms 42.09ms 2.05s\n", " 'lb_relax_lns': 11 [ 86.60ms, 1.46s] 671.55ms 554.39ms 7.39s 11 [ 11.83ms, 514.23ms] 238.61ms 222.98ms 2.62s\n", " 'lb_tree_search': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 57.26ms, 7.54s] 3.80s 3.74s 7.60s\n", " 'ls': 32 [188.28ms, 252.29ms] 218.08ms 16.83ms 6.98s 32 [100.00ms, 100.01ms] 100.01ms 3.01us 3.20s\n", " 'ls_lin': 32 [183.79ms, 269.72ms] 219.36ms 22.44ms 7.02s 32 [100.00ms, 100.01ms] 100.01ms 3.28us 3.20s\n", " 'max_lp': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 65.57ms, 6.81s] 3.44s 3.37s 6.87s\n", " 'no_lp': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 1.49ms, 8.89s] 4.44s 4.44s 8.89s\n", " 'objective_lb_search': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 23.99ms, 8.08s] 4.05s 4.03s 8.10s\n", " 'probing': 1 [ 14.88s, 14.88s] 14.88s 0.00ns 14.88s 2 [ 29.18ms, 8.68s] 4.36s 4.33s 8.71s\n", " 'pseudo_costs': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 7.71ms, 6.20s] 3.10s 3.09s 6.20s\n", " 'quick_restart': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 20.93ms, 7.42s] 3.72s 3.70s 7.44s\n", " 'quick_restart_no_lp': 1 [ 14.90s, 14.90s] 14.90s 0.00ns 14.90s 2 [ 1.58ms, 10.76s] 5.38s 5.38s 10.76s\n", " 'reduced_costs': 1 [ 14.87s, 14.87s] 14.87s 0.00ns 14.87s 2 [ 8.27ms, 8.90s] 4.45s 4.45s 8.91s\n", " 'rins/rens': 33 [ 2.40ms, 448.36ms] 214.34ms 172.11ms 7.07s 30 [ 35.32us, 100.21ms] 60.30ms 46.11ms 1.81s\n", " 'rnd_cst_lns': 34 [ 5.54ms, 408.38ms] 208.63ms 154.99ms 7.09s 34 [ 10.00ns, 100.14ms] 54.41ms 46.30ms 1.85s\n", " 'rnd_var_lns': 39 [ 4.42ms, 393.11ms] 194.49ms 145.38ms 7.58s 39 [ 10.00ns, 100.22ms] 52.60ms 44.39ms 2.05s\n", "\n", "Search stats Bools Conflicts Branches Restarts BacktrackToRoot Backtrack BoolPropag IntegerPropag\n", " 'core': 365 229'645 434'490 292 11'005 240'893 3'736'456 9'473'429\n", " 'default_lp': 407 1'771 39'808 15 11'957 18'647 297'498 1'278'673\n", " 'fs_random': 0 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0\n", " 'lb_tree_search': 354 65 28'656 0 10'101 13'473 166'350 877'958\n", " 'max_lp': 354 2'041 31'226 10 10'276 15'391 218'978 1'126'089\n", " 'no_lp': 354 140'345 243'042 471 12'669 152'644 6'352'508 21'896'584\n", " 'objective_lb_search': 397 1'222 37'766 13 12'537 18'143 260'895 1'215'367\n", " 'probing': 394 25 1'007 0 863 881 9'589 30'750\n", " 'pseudo_costs': 354 1'838 45'956 21 14'776 21'124 308'497 1'579'250\n", " 'quick_restart': 385 479 59'228 27 20'195 28'085 357'059 1'724'273\n", " 'quick_restart_no_lp': 551 76'574 629'338 6'644 30'830 113'075 5'613'404 16'907'357\n", " 'reduced_costs': 360 1'894 29'212 11 8'932 13'394 160'968 851'477\n", "\n", "SAT formula Fixed Equiv Total VarLeft BinaryClauses PermanentClauses TemporaryClauses\n", " 'core': 97 0 365 268 618 1'411 11'920\n", " 'default_lp': 98 0 407 309 792 335 1'058\n", " 'fs_random': 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0\n", " 'lb_tree_search': 101 0 354 253 592 328 4\n", " 'max_lp': 96 0 354 258 596 295 1'210\n", " 'no_lp': 98 0 354 256 626 953 11'991\n", " 'objective_lb_search': 112 0 397 285 736 342 91\n", " 'probing': 29 0 394 365 4'568 40 14\n", " 'pseudo_costs': 97 0 354 257 612 327 1'071\n", " 'quick_restart': 98 0 385 287 746 345 217\n", " 'quick_restart_no_lp': 131 0 551 420 1'900 3'055 13'122\n", " 'reduced_costs': 113 0 360 247 654 283 1'277\n", "\n", "SAT stats ClassicMinim LitRemoved LitRemovedBinary LitLearned LitForgotten Subsumed\n", " 'core': 205'153 3'129'017 1'136'233 10'999'787 6'747'716 71'794\n", " 'default_lp': 1'390 21'880 28'707 57'282 0 434\n", " 'fs_random': 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0\n", " 'lb_tree_search': 11 32 508 571 0 29\n", " 'max_lp': 1'818 48'335 34'615 94'210 0 567\n", " 'no_lp': 107'724 1'193'262 392'462 4'483'129 2'628'188 37'997\n", " 'objective_lb_search': 1'052 32'021 10'582 20'183 0 503\n", " 'probing': 14 68 265 2'177 0 4\n", " 'pseudo_costs': 1'494 25'100 28'716 71'174 0 410\n", " 'quick_restart': 310 4'277 5'949 11'958 0 137\n", " 'quick_restart_no_lp': 61'069 506'057 812'591 2'450'901 1'398'834 14'341\n", " 'reduced_costs': 1'535 22'422 17'490 106'895 0 314\n", "\n", "Vivification Clauses Decisions LitTrue Subsumed LitRemoved DecisionReused Conflicts\n", " 'core': 9'991 89'717 0 1'316 17'263 10'134 119\n", " 'default_lp': 6'114 25'139 1 322 1'671 1'116 7\n", " 'fs_random': 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0\n", " 'lb_tree_search': 4'370 17'876 0 366 1'751 644 3\n", " 'max_lp': 4'890 18'472 1 377 1'889 813 7\n", " 'no_lp': 8'198 42'534 2 683 6'238 5'896 37\n", " 'objective_lb_search': 6'151 24'832 1 294 1'423 1'091 4\n", " 'probing': 0 0 0 0 0 0 0\n", " 'pseudo_costs': 7'541 30'196 1 403 2'036 1'238 14\n", " 'quick_restart': 9'090 38'683 1 328 1'573 1'471 10\n", " 'quick_restart_no_lp': 23'088 135'536 9 2'585 22'423 14'320 390\n", " 'reduced_costs': 3'209 14'530 0 164 910 496 1\n", "\n", "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\n", " 'core': 819 28 2 67'513 2'175 15 4'281 1'316 82 429 0 0 140'434 568'820 229'645\n", " 'default_lp': 125 9 4 402 1 7 32 322 183 121 0 0 0 3'837 1'771\n", " 'fs_random': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'lb_tree_search': 84 3 0 28 0 0 1 366 130 44 0 0 0 25 65\n", " 'max_lp': 89 0 3 530 6 11 37 377 90 173 0 0 0 5'207 2'041\n", " 'no_lp': 4'813 117 2 35'977 3'415 295 2'020 683 136 314 0 0 80'188 321'363 140'345\n", " 'objective_lb_search': 522 38 2 451 0 28 52 294 167 68 0 0 0 1'800 1'222\n", " 'probing': 0 0 0 4 0 0 0 0 0 0 0 0 0 34 25\n", " 'pseudo_costs': 218 11 3 382 3 5 28 403 152 111 0 0 0 4'029 1'838\n", " 'quick_restart': 97 0 3 127 0 8 10 328 157 65 0 0 0 727 479\n", " 'quick_restart_no_lp': 3'575 4 37 13'290 509 151 1'051 2'585 679 742 0 0 37'582 163'606 76'574\n", " 'reduced_costs': 185 13 3 300 1 24 14 164 91 104 0 0 0 7'310 1'894\n", "\n", "Lp stats Component Iterations AddedCuts OPTIMAL DUAL_F. DUAL_U.\n", " 'default_lp': 1 115'068 2'225 5'313 1 237\n", " 'lb_tree_search': 1 72'845 1'536 1'919 603 3\n", " 'max_lp': 1 105'539 2'194 4'252 928 229\n", " 'objective_lb_search': 1 114'892 2'206 3'842 1 187\n", " 'probing': 1 29'482 2'371 345 0 2\n", " 'pseudo_costs': 1 96'531 2'105 4'172 837 228\n", " 'quick_restart': 1 61'622 2'411 1'857 0 37\n", " 'reduced_costs': 1 128'375 1'969 3'198 1'184 269\n", "\n", "Lp dimension Final dimension of first component\n", " 'default_lp': 720 rows, 669 columns, 9388 entries\n", " 'lb_tree_search': 785 rows, 708 columns, 13000 entries\n", " 'max_lp': 618 rows, 708 columns, 6468 entries\n", " 'objective_lb_search': 823 rows, 669 columns, 11640 entries\n", " 'probing': 1809 rows, 669 columns, 59392 entries\n", " 'pseudo_costs': 721 rows, 708 columns, 10327 entries\n", " 'quick_restart': 953 rows, 669 columns, 18375 entries\n", " 'reduced_costs': 812 rows, 708 columns, 11093 entries\n", "\n", "Lp debug CutPropag CutEqPropag Adjust Overflow Bad BadScaling\n", " 'default_lp': 0 0 5'537 0 15'698 0\n", " 'lb_tree_search': 0 0 2'524 0 35'145 0\n", " 'max_lp': 0 0 5'406 0 20'582 0\n", " 'objective_lb_search': 0 0 4'020 0 21'126 0\n", " 'probing': 0 0 344 0 53'765 0\n", " 'pseudo_costs': 0 0 5'215 0 31'208 0\n", " 'quick_restart': 0 8 1'886 0 38'248 0\n", " 'reduced_costs': 0 10 4'637 0 17'514 0\n", "\n", "Lp pool Constraints Updates Simplif Merged Shortened Split Strengthened Cuts/Call\n", " 'default_lp': 3'397 235 8'743 0 4'258 135 166 2'225/4'670\n", " 'lb_tree_search': 2'862 728 10'600 0 5'571 284 144 1'536/2'608\n", " 'max_lp': 3'520 457 9'244 0 6'000 143 226 2'194/4'277\n", " 'objective_lb_search': 3'378 307 9'710 0 5'169 111 135 2'206/4'345\n", " 'probing': 3'543 556 4'986 0 2'046 812 44 2'371/4'036\n", " 'pseudo_costs': 3'431 583 10'482 0 4'617 355 190 2'105/4'154\n", " 'quick_restart': 3'583 490 14'982 0 7'571 372 131 2'411/4'288\n", " 'reduced_costs': 3'295 311 7'126 0 4'180 96 132 1'969/3'681\n", "\n", "Lp Cut reduced_costs default_lp max_lp quick_restart pseudo_costs lb_tree_search objective_lb_search probing\n", " CG_FF: 19 21 26 15 17 15 20 15\n", " CG_K: 13 16 21 16 7 14 15 13\n", " CG_KL: 1 3 3 3 3 6 1 2\n", " CG_R: 41 40 38 20 40 18 29 20\n", " CG_RB: 69 77 77 34 68 28 54 29\n", " CG_RBP: 30 45 28 20 27 14 20 20\n", " Clique: 3 - 7 - 7 4 - -\n", " IB: 654 778 565 496 712 200 562 430\n", " MIR_1_FF: 120 102 83 171 87 123 96 203\n", " MIR_1_K: 8 17 12 34 7 13 34 44\n", " MIR_1_KL: 10 13 14 30 9 20 17 40\n", " MIR_1_R: 1 7 5 5 4 3 3 9\n", " MIR_1_RB: 34 40 37 43 33 16 42 52\n", " MIR_1_RBP: 18 42 21 62 22 50 37 33\n", " MIR_2_FF: 91 85 86 117 92 104 84 143\n", " MIR_2_K: 27 31 20 47 14 26 54 54\n", " MIR_2_KL: 16 10 8 24 16 21 15 27\n", " MIR_2_R: 5 5 13 5 11 2 3 2\n", " MIR_2_RB: 75 54 84 60 66 37 69 46\n", " MIR_2_RBP: 26 45 21 57 28 26 54 57\n", " MIR_3_FF: 81 68 77 82 72 83 45 80\n", " MIR_3_K: 15 36 21 53 20 15 32 48\n", " MIR_3_KL: 9 12 11 16 11 5 7 8\n", " MIR_3_R: 3 6 14 11 7 2 5 5\n", " MIR_3_RB: 45 43 78 50 62 51 46 40\n", " MIR_3_RBP: 19 39 24 50 18 21 49 43\n", " MIR_4_FF: 66 45 78 52 67 54 38 57\n", " MIR_4_K: 23 26 24 26 28 18 35 47\n", " MIR_4_KL: 6 7 11 11 11 9 11 11\n", " MIR_4_R: 4 4 6 8 7 3 10 7\n", " MIR_4_RB: 32 37 64 37 39 30 36 26\n", " MIR_4_RBP: 19 24 30 28 23 17 40 29\n", " MIR_5_FF: 28 16 53 32 36 38 27 38\n", " MIR_5_K: 20 27 25 28 11 15 21 28\n", " MIR_5_KL: 4 13 12 14 4 5 9 5\n", " MIR_5_R: 3 3 6 6 2 2 2 3\n", " MIR_5_RB: 28 28 36 18 32 32 19 20\n", " MIR_5_RBP: 19 22 36 40 19 14 31 14\n", " MIR_6_FF: 29 12 35 22 21 31 19 16\n", " MIR_6_K: 27 20 28 35 20 28 24 21\n", " MIR_6_KL: 10 8 19 16 16 11 13 9\n", " MIR_6_R: 4 2 5 3 3 2 2 3\n", " MIR_6_RB: 23 18 27 13 19 17 19 8\n", " MIR_6_RBP: 21 29 20 48 25 31 44 26\n", " ZERO_HALF_FF: 9 16 18 7 15 5 24 15\n", " ZERO_HALF_K: - 5 9 1 1 1 13 10\n", " ZERO_HALF_KL: 1 4 3 2 9 - 5 1\n", " ZERO_HALF_R: 132 199 197 379 192 212 297 377\n", " ZERO_HALF_RB: 22 9 44 39 32 33 51 80\n", " ZERO_HALF_RBP: 6 16 14 25 13 11 23 57\n", "\n", "LNS stats Improv/Calls Closed Difficulty TimeLimit\n", " 'graph_arc_lns': 19/39 54% 8.60e-01 0.10\n", " 'graph_cst_lns': 19/40 60% 9.47e-01 0.10\n", " 'graph_dec_lns': 16/38 58% 9.36e-01 0.10\n", " 'graph_var_lns': 23/37 59% 9.38e-01 0.10\n", " 'lb_relax_lns': 7/11 64% 8.44e-01 0.50\n", " 'rins/rens': 29/33 48% 7.17e-01 0.10\n", " 'rnd_cst_lns': 8/34 50% 8.25e-01 0.10\n", " 'rnd_var_lns': 16/39 64% 9.67e-01 0.10\n", "\n", "LS stats Batches Restarts/Perturbs LinMoves GenMoves CompoundMoves Bactracks WeightUpdates ScoreComputed\n", " 'ls_lin_restart': 3 3 58'028 0 0 0 39'817 1'604'828\n", " 'ls_lin_restart_compound': 6 6 0 155'148 12'158 71'479 1'045 2'949'634\n", " 'ls_lin_restart_compound_perturb': 4 4 0 100'124 8'452 45'832 728 1'912'682\n", " 'ls_lin_restart_decay': 1 1 23'098 0 0 0 972 401'284\n", " 'ls_lin_restart_decay_compound': 1 1 0 25'738 3'317 11'206 33 495'895\n", " 'ls_lin_restart_decay_compound_perturb': 7 5 0 179'185 23'917 77'598 227 3'524'424\n", " 'ls_lin_restart_decay_perturb': 1 1 24'812 0 0 0 1'266 409'378\n", " 'ls_lin_restart_perturb': 9 7 167'364 0 0 0 86'318 4'964'661\n", " 'ls_restart': 3 3 58'039 0 0 0 21'493 1'692'377\n", " 'ls_restart_compound': 7 5 0 180'648 12'950 83'832 905 3'286'511\n", " 'ls_restart_compound_perturb': 2 2 0 51'625 3'826 23'891 254 980'260\n", " 'ls_restart_decay': 4 3 94'380 0 0 0 4'404 1'644'070\n", " 'ls_restart_decay_compound': 3 3 0 71'706 11'582 30'053 170 1'528'644\n", " 'ls_restart_decay_compound_perturb': 8 6 0 200'032 29'541 85'231 320 4'184'650\n", " 'ls_restart_decay_perturb': 4 4 97'481 0 0 0 4'696 1'610'826\n", " 'ls_restart_perturb': 1 1 19'677 0 0 0 6'865 618'175\n", "\n", "Solutions (15) Num Rank\n", " 'complete_hint': 2 [0,1]\n", " 'graph_arc_lns': 4 [8,10]\n", " 'graph_var_lns': 8 [4,15]\n", " 'no_lp': 2 [1,2]\n", " 'quick_restart_no_lp': 12 [2,13]\n", " 'rnd_cst_lns': 2 [3,4]\n", "\n", "Objective bounds Num\n", " 'am1_presolve': 1\n", " 'initial_domain': 1\n", " 'lb_tree_search': 223\n", " 'max_lp': 5\n", " 'objective_lb_search': 2\n", " 'probing': 1\n", " 'pseudo_costs': 1\n", "\n", "Solution repositories Added Queried Synchro\n", " 'alternative_path': 2 114 2\n", " 'best_solutions': 26 237 22\n", " 'fj solution hints': 0 0 0\n", " 'lp solutions': 140 33 109\n", " 'pump': 0 0\n", "\n", "Improving bounds shared Num Sym\n", " 'default_lp': 2 0\n", " 'lb_tree_search': 74 0\n", " 'max_lp': 76 0\n", " 'no_lp': 4 0\n", " 'probing': 4 0\n", " 'pseudo_costs': 4 0\n", " 'quick_restart': 9 0\n", " 'quick_restart_no_lp': 39 0\n", " 'reduced_costs': 45 0\n", "\n", "Clauses shared #Exported #Imported #BinaryRead #BinaryTotal\n", " 'core': 488 1'049 1'494 1'499\n", " 'default_lp': 149 1'074 1'498 1'499\n", " 'lb_tree_search': 27 1'136 1'499 1'499\n", " 'max_lp': 111 834 1'362 1'499\n", " 'no_lp': 824 656 1'499 1'499\n", " 'objective_lb_search': 79 1'076 1'493 1'499\n", " 'probing': 1'040 0 280 1'499\n", " 'pseudo_costs': 194 1'026 1'490 1'499\n", " 'quick_restart': 109 1'058 1'494 1'499\n", " 'quick_restart_no_lp': 1'017 764 1'493 1'499\n", " 'reduced_costs': 87 623 1'183 1'499\n", "\n", "LRAT_status: NA\n", "[Scaling] scaled_objective_bound: 1575.36 corrected_bound: 1575.36 delta: 1.00542e-06\n", "CpSolverResponse summary:\n", "status: OPTIMAL\n", "objective: 1575.355435923973\n", "best_bound: 1575.355435314589\n", "integers: 0\n", "booleans: 0\n", "conflicts: 0\n", "branches: 0\n", "propagations: 0\n", "integer_propagations: 0\n", "restarts: 0\n", "lp_iterations: 0\n", "walltime: 14.9516\n", "usertime: 14.9516\n", "deterministic_time: 114.369\n", "gap_integral: 108.307\n", "solution_fingerprint: 0x74f029e2c7dc518\n", "\n" ] } ], "source": [ "res = wfn.optimize(router=router)" ] }, { "cell_type": "code", "execution_count": 9, "id": "404d3bbc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'router': 'MILPRouter',\n", " 'capacity': 7,\n", " 'solver_name': 'ortools.cp_sat',\n", " 'mip_gap': 0.005,\n", " 'time_limit': 60,\n", " 'topology': ,\n", " 'feeder_route': ,\n", " 'feeder_limit': ,\n", " 'balanced': False,\n", " 'runtime': 14.954764,\n", " 'bound': 1575.3554353145887,\n", " 'objective': 1575.3554359239731,\n", " 'relgap': 3.868234621506872e-10,\n", " 'termination': 'OPTIMAL'}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wfn.solution_info()" ] }, { "cell_type": "code", "execution_count": 10, "id": "90ceb875", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1575.355435923973" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wfn.length()" ] }, { "cell_type": "code", "execution_count": 11, "id": "d67a91f7", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "3 150 711 €Σλ = 1 575.4 m(+0) [-1]: 6κ = 7, T = 40" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wfn" ] }, { "cell_type": "markdown", "id": "b23a36e0", "metadata": {}, "source": [ "`MILPRouter` has two optional arguments: `ModelOptions` (what kind of solution you want, e.g., `topology='branched'`, `'radial'`, or `'ringed'`) and `SolverOptions` (how long/how hard the solver searches). For more details about `ModelOptions` and `SolverOptions` see [ModelOptions vs SolverOptions](a08_ModelOptions.ipynb)." ] }, { "cell_type": "code", "execution_count": 12, "id": "40eb1315", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "IntegerBoundsPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "BoundPropagationPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "ImpliedIntegerPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "IntegerBoundsPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "ReduceCostOverExclusiveOrConstraintPreprocessor 1133 rows, 708 columns, 4276 entries with magnitude in [1.000000e+00, 7.000000e+00]\n", "\n", "Scaling to pure integer problem.\n", "Num integers: 708/708 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP] \n", "Maximum constraint coefficient relative error: 0\n", "Maximum constraint worst-case activity error: 0\n", "Constraint scaling factor range: [1, 1]\n", "\n", "Starting CP-SAT solver v9.15.6755\n", "Parameters: max_time_in_seconds: 60 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.01\n", "Setting number of workers to 16\n", "\n", "Initial optimization model 'optiwindnet': (model_fingerprint: 0xf49e5e1dfb1a5131)\n", "#Variables: 708 (#bools: 314 in floating point objective) (627 primary variables)\n", " - 354 Booleans in [0,1]\n", " - 314 in [0,6]\n", " - 40 in [0,7]\n", "#kLinear2: 865\n", "#kLinear3: 2\n", "#kLinearN: 266 (#terms: 2'540)\n", "\n", "Starting presolve at 0.00s\n", "The solution hint is complete, but it is infeasible! we will try to repair it.\n", "[Scaling] Floating point objective has 314 terms with magnitude in [0.140862, 190.901] average = 35.1267\n", "[Scaling] Objective coefficient relative error: 4.44741e-06\n", "[Scaling] Objective worst-case absolute error: 8.26922e-05\n", "[Scaling] Objective scaling factor: 524288\n", " 4.92e-04s 0.00e+00d [DetectDominanceRelations] \n", " 5.27e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1 \n", " 1.56e-05s 0.00e+00d [ExtractEncodingFromLinear] #potential_supersets=185 \n", " 2.00e-04s 0.00e+00d [DetectDuplicateColumns] \n", " 2.39e-04s 0.00e+00d [DetectDuplicateConstraints] \n", "[Symmetry] Graph for symmetry has 2'706 nodes and 5'298 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000256052 dtime: 0.00049148\n", "[SAT presolve] num removable Booleans: 0 / 354\n", "[SAT presolve] num trivial clauses: 0\n", "[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [1.0439e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [1.8061e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", " 3.33e-04s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 8.11e-03s 4.41e-03d [Probe] #probed=1'416 #new_binary_clauses=354 \n", " 3.25e-04s 4.55e-04d [MaxClique] Merged 302 constraints with 1'090 literals into 182 constraints with 850 literals\n", " 2.08e-04s 0.00e+00d [DetectDominanceRelations] \n", " 1.87e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 5.75e-04s 0.00e+00d [ProcessAtMostOneAndLinear] #num_changes=354 \n", " 7.16e-05s 0.00e+00d [DetectDuplicateConstraints] \n", " 5.71e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 1.04e-04s 5.73e-06d [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=41 #num_redundant=1 \n", " 9.73e-06s 0.00e+00d [DetectDifferentVariables] \n", " 1.02e-04s 6.42e-05d [ProcessSetPPC] #relevant_constraints=224 #num_inclusions=182 \n", " 8.38e-05s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=182 \n", " 2.50e-04s 0.00e+00d [DetectEncodedComplexDomains] \n", " 1.32e-05s 1.65e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3 \n", " 6.74e-04s 1.09e-03d [FindBigAtMostOneAndLinearOverlap] \n", " 1.77e-04s 6.03e-04d [FindBigVerticalLinearOverlap] \n", " 6.96e-05s 1.32e-04d [FindBigHorizontalLinearOverlap] #linears=81 \n", " 1.48e-05s 0.00e+00d [MergeClauses] \n", " 1.59e-04s 0.00e+00d [DetectDominanceRelations] \n", " 2.75e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1 \n", " 1.72e-04s 0.00e+00d [DetectDominanceRelations] \n", " 1.92e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 5.77e-05s 0.00e+00d [DetectDuplicateColumns] \n", " 7.45e-05s 0.00e+00d [DetectDuplicateConstraints] \n", "[Symmetry] Graph for symmetry has 2'453 nodes and 4'765 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000254105 dtime: 0.00045598\n", "[SAT presolve] num removable Booleans: 0 / 354\n", "[SAT presolve] num trivial clauses: 0\n", "[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [3.1561e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [8.6807e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", " 6.66e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 4.25e-03s 1.40e-03d [Probe] #probed=708 \n", " 2.08e-04s 3.09e-04d [MaxClique] \n", " 1.75e-04s 0.00e+00d [DetectDominanceRelations] \n", " 1.35e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 1.21e-04s 0.00e+00d [ProcessAtMostOneAndLinear] \n", " 7.07e-05s 0.00e+00d [DetectDuplicateConstraints] \n", " 5.96e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 1.07e-04s 5.53e-06d [DetectDominatedLinearConstraints] #relevant_constraints=83 #num_inclusions=40 \n", " 1.31e-05s 0.00e+00d [DetectDifferentVariables] \n", " 1.90e-04s 6.42e-05d [ProcessSetPPC] #relevant_constraints=224 #num_inclusions=182 \n", " 3.60e-04s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=182 \n", " 3.19e-04s 0.00e+00d [DetectEncodedComplexDomains] \n", " 2.54e-05s 0.00e+00d [FindAlmostIdenticalLinearConstraints] \n", " 5.16e-04s 1.09e-03d [FindBigAtMostOneAndLinearOverlap] \n", " 1.40e-04s 6.03e-04d [FindBigVerticalLinearOverlap] \n", " 5.29e-05s 1.32e-04d [FindBigHorizontalLinearOverlap] #linears=81 \n", " 1.12e-05s 0.00e+00d [MergeClauses] \n", " 1.67e-04s 0.00e+00d [DetectDominanceRelations] \n", " 1.39e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 2.62e-06s 0.00e+00d [MergeNoOverlap] \n", " 2.65e-06s 0.00e+00d [MergeNoOverlap2D] \n", " 1.18e-04s 0.00e+00d [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40 \n", "\n", "Presolve summary:\n", " - 0 affine relations were detected.\n", " - rule 'TODO linear inclusion: superset is equality' was applied 80 times.\n", " - rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.\n", " - rule 'at_most_one: transformed into max clique' was applied 1 time.\n", " - rule 'bool_or: implications' was applied 157 times.\n", " - rule 'deductions: 708 stored' was applied 1 time.\n", " - rule 'linear + amo: extracted enforcement literal' was applied 354 times.\n", " - rule 'linear inclusion: sparsify superset' was applied 1 time.\n", " - rule 'linear2: contains a boolean' was applied 354 times.\n", " - rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.\n", " - rule 'linear: positive at most one' was applied 145 times.\n", " - rule 'linear: positive equal one' was applied 40 times.\n", " - rule 'objective: shifted cost with exactly ones' was applied 40 times.\n", " - rule 'presolve: 0 unused variables removed.' was applied 1 time.\n", " - rule 'presolve: iteration' was applied 2 times.\n", " - rule 'variables: detect fully reified value encoding' was applied 354 times.\n", " - rule 'variables: detect half reified value encoding' was applied 708 times.\n", "\n", "Presolved optimization model 'optiwindnet': (model_fingerprint: 0x510fe2cea8f40f0f)\n", "#Variables: 708 (#bools: 314 in objective) (627 primary variables)\n", " - 354 Booleans in [0,1]\n", " - 314 in [0,6]\n", " - 40 in [0,7]\n", "#kAtMostOne: 145 (#literals: 776)\n", "#kBoolAnd: 37 (#enforced: 37) (#literals: 74)\n", "#kExactlyOne: 40 (#literals: 354)\n", "#kLinear1: 708 (#enforced: 708)\n", "#kLinear3: 1\n", "#kLinearN: 82 (#terms: 1'373)\n", "[Symmetry] Graph for symmetry has 2'453 nodes and 4'765 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.00019885 dtime: 0.00045642\n", "\n", "Preloading model.\n", "#Bound 0.04s best:inf next:[1364.00132,11449.6914] initial_domain\n", "The solution hint is complete, but it is infeasible! we will try to repair it.\n", "#Model 0.04s var:708/708 constraints:1013/1013\n", "\n", "Starting search at 0.04s with 16 workers.\n", "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]\n", "5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]\n", "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]\n", "3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]\n", "\n", "#Bound 0.05s best:inf next:[1396.24224,11449.6914] am1_presolve (num_literals=314 num_am1=12 increase=16903530 work_done=1733)\n", "#1 0.05s best:1631.93805 next:[1396.24224,1631.93805] no_lp [hint] (fixed_bools=0/354)\n", "#Bound 0.06s best:1631.93805 next:[1427.81903,1631.93805] probing\n", "#Bound 0.06s best:1631.93805 next:[1434.70137,1631.93805] reduced_costs\n", "#Bound 0.06s best:1631.93805 next:[1518.98019,1631.93805] max_lp\n", "#2 0.09s best:1629.24862 next:[1518.98019,1629.24862] reduced_costs [hint] (fixed_bools=0/354)\n", "#Bound 0.14s best:1629.24862 next:[1525.53027,1629.24862] max_lp\n", "#Bound 0.14s best:1629.24862 next:[1527.255,1629.24862] lb_tree_search\n", "#Model 0.15s var:702/708 constraints:1006/1013\n", "#3 0.18s best:1628.51262 next:[1527.255,1628.51262] quick_restart_no_lp (fixed_bools=3/354)\n", "#Bound 0.25s best:1628.51262 next:[1527.25504,1628.51262] objective_lb_search\n", "#Model 0.27s var:700/708 constraints:1004/1013\n", "#Bound 0.28s best:1628.51262 next:[1527.81306,1628.51262] lb_tree_search\n", "#4 0.31s best:1618.50518 next:[1527.81306,1618.50518] graph_arc_lns (d=7.07e-01 s=31 t=0.10 p=1.00 stall=1 h=base) (fixed_bools=0/354)\n", "#5 0.32s best:1614.73248 next:[1527.81306,1614.73248] lb_relax_lns_bool (d=5.00e-01 s=23 t=0.50 p=0.00 stall=0 h=base) (fixed_bools=0/354)\n", "#Bound 0.33s best:1614.73248 next:[1528.04658,1614.73248] probing\n", "#Model 0.34s var:698/708 constraints:1002/1013\n", "#Bound 0.34s best:1614.73248 next:[1530.15971,1614.73248] probing\n", "#Bound 0.38s best:1614.73248 next:[1538.01985,1614.73248] max_lp\n", "#6 0.39s best:1613.51861 next:[1538.01985,1613.51861] graph_arc_lns (d=8.14e-01 s=41 t=0.10 p=1.00 stall=0 h=base) (fixed_bools=0/354)\n", "#Model 0.39s var:690/708 constraints:994/1013\n", "#Bound 0.39s best:1613.51861 next:[1539.36691,1613.51861] lb_tree_search\n", "#Model 0.41s var:688/708 constraints:992/1013\n", "#Model 0.43s var:686/708 constraints:990/1013\n", "#Model 0.61s var:680/708 constraints:983/1013\n", "#Bound 0.61s best:1613.51861 next:[1543.53679,1613.51861] lb_tree_search\n", "#Bound 0.63s best:1613.51861 next:[1543.55217,1613.51861] lb_tree_search (nodes=2/2 rc=0 decisions=7 @root=3 restarts=0 lp_iters=[0, 0, 92, 25]) \n", "#Model 0.65s var:674/708 constraints:976/1013\n", "#Model 0.69s var:670/708 constraints:972/1013\n", "#7 0.72s best:1613.50867 next:[1543.55217,1613.50867] lb_relax_lns_bool_h (d=7.07e-01 s=45 t=0.50 p=1.00 stall=0 h=base) (fixed_bools=0/354)\n", "#8 0.72s best:1612.2948 next:[1543.55217,1612.2948] lb_relax_lns_bool_h (d=7.07e-01 s=45 t=0.50 p=1.00 stall=0 h=base) [combined with: graph_arc_lns (d=8.1...] (fixed_bools=0/354)\n", "#Bound 0.78s best:1612.2948 next:[1545.81028,1612.2948] probing\n", "#Bound 0.88s best:1612.2948 next:[1547.46896,1612.2948] probing\n", "#Model 0.93s var:668/708 constraints:970/1013\n", "#Bound 1.01s best:1612.2948 next:[1548.33436,1612.2948] lb_tree_search (nodes=8/8 rc=2 decisions=47 @root=6 restarts=0 lp_iters=[0, 0, 604, 135]) \n", "#Bound 1.04s best:1612.2948 next:[1548.33866,1612.2948] lb_tree_search (nodes=8/8 rc=2 decisions=53 @root=6 restarts=0 lp_iters=[0, 0, 804, 135]) \n", "#Model 1.05s var:666/708 constraints:968/1013\n", "#Bound 1.05s best:1612.2948 next:[1548.36613,1612.2948] lb_tree_search (nodes=9/9 rc=2 decisions=57 @root=6 restarts=0 lp_iters=[0, 0, 859, 140]) \n", "#Bound 1.07s best:1612.2948 next:[1548.41571,1612.2948] lb_tree_search (nodes=10/10 rc=2 decisions=62 @root=6 restarts=0 lp_iters=[0, 0, 992, 141]) \n", "#Bound 1.11s best:1612.2948 next:[1549.11379,1612.2948] lb_tree_search (nodes=13/13 rc=3 decisions=71 @root=6 restarts=0 lp_iters=[0, 0, 1'251, 157]) \n", "#Model 1.47s var:664/708 constraints:965/1013\n", "#Model 1.50s var:658/708 constraints:959/1013\n", "#Bound 2.00s best:1612.2948 next:[1558.02415,1612.2948] lb_tree_search (nodes=36/37 rc=18 decisions=287 @root=6 restarts=0 lp_iters=[0, 0, 6'293, 1'059]) [skipped_logs=27]\n", "#Model 2.59s var:656/708 constraints:957/1013\n", "#Bound 2.78s best:1612.2948 next:[1559.6799,1612.2948] lb_tree_search (nodes=38/40 rc=22 decisions=328 @root=8 restarts=0 lp_iters=[0, 0, 7'347, 1'108]) [skipped_logs=3]\n", "#Model 3.11s var:654/708 constraints:954/1013\n", "#Model 3.37s var:652/708 constraints:952/1013\n", "#Model 3.77s var:650/708 constraints:950/1013\n", "#Bound 3.98s best:1612.2948 next:[1564.48997,1612.2948] lb_tree_search (nodes=40/42 rc=24 decisions=449 @root=12 restarts=0 lp_iters=[0, 0, 11'331, 1'170]) [skipped_logs=19]\n", "#Model 4.27s var:648/708 constraints:948/1013\n", "#Model 4.68s var:646/708 constraints:945/1013\n", "#Model 4.84s var:644/708 constraints:943/1013\n", "#Bound 4.78s best:1612.2948 next:[1564.54676,1612.2948] lb_tree_search (nodes=40/42 rc=25 decisions=462 @root=13 restarts=0 lp_iters=[0, 0, 11'541, 1'170]) [skipped_logs=0]\n", "#Model 5.11s var:642/708 constraints:941/1013\n", "#Model 5.55s var:640/708 constraints:939/1013\n", "#Bound 6.03s best:1612.2948 next:[1566.04466,1612.2948] lb_tree_search (nodes=40/42 rc=26 decisions=552 @root=16 restarts=0 lp_iters=[0, 0, 14'150, 1'170]) [skipped_logs=9]\n", "#Bound 6.99s best:1612.2948 next:[1567.17222,1612.2948] lb_tree_search (nodes=40/42 rc=27 decisions=625 @root=19 restarts=0 lp_iters=[0, 0, 16'386, 1'389]) [skipped_logs=8]\n", "#Model 7.49s var:638/708 constraints:937/1013\n", "#Bound 7.99s best:1612.2948 next:[1570.2041,1612.2948] lb_tree_search (nodes=52/54 rc=35 decisions=784 @root=19 restarts=0 lp_iters=[0, 0, 21'447, 1'687]) [skipped_logs=17]\n", "#Bound 8.94s best:1612.2948 next:[1572.04738,1612.2948] lb_tree_search (nodes=67/70 rc=41 decisions=984 @root=19 restarts=0 lp_iters=[0, 0, 27'469, 2'613]) [skipped_logs=24]\n", "#Model 9.19s var:636/708 constraints:935/1013\n", "#Model 10.42s var:634/708 constraints:933/1013\n", "#Model 11.57s var:632/708 constraints:931/1013\n", "#Bound 13.22s best:1612.2948 next:[1572.04756,1612.2948] objective_lb_search\n", "#Bound 13.86s best:1612.2948 next:[1572.04757,1612.2948] objective_lb_search\n", "#Bound 14.55s best:1612.2948 next:[1572.0776,1612.2948] objective_lb_search\n", "#Model 14.67s var:630/708 constraints:929/1013\n", "#Model 15.17s var:628/708 constraints:927/1013\n", "#Bound 15.32s best:1612.2948 next:[1572.50608,1612.2948] objective_lb_search\n", "#Model 15.69s var:626/708 constraints:925/1013\n", "#Model 16.18s var:624/708 constraints:923/1013\n", "#Model 16.25s var:622/708 constraints:921/1013\n", "#Bound 16.38s best:1612.2948 next:[1572.51292,1612.2948] lb_tree_search (nodes=114/114 rc=51 decisions=1464 @root=32 restarts=1 lp_iters=[0, 0, 42'284, 7'287]) \n", "#Model 16.83s var:620/708 constraints:918/1013\n", "#Bound 16.87s best:1612.2948 next:[1572.59413,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1477 @root=33 restarts=1 lp_iters=[0, 0, 42'644, 7'287]) \n", "#Model 17.43s var:618/708 constraints:916/1013\n", "#Bound 17.68s best:1612.2948 next:[1572.60924,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1484 @root=34 restarts=1 lp_iters=[0, 0, 42'960, 7'287]) \n", "#Model 17.69s var:614/708 constraints:912/1013\n", "#Bound 17.71s best:1612.2948 next:[1572.65313,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1487 @root=35 restarts=1 lp_iters=[0, 0, 43'158, 7'287]) \n", "#Bound 17.77s best:1612.2948 next:[1572.71185,1612.2948] lb_tree_search (nodes=114/114 rc=52 decisions=1497 @root=35 restarts=1 lp_iters=[0, 0, 43'414, 7'287]) [skipped_logs=1]\n", "#Model 18.68s var:612/708 constraints:909/1013\n", "#Bound 18.87s best:1612.2948 next:[1572.93066,1612.2948] lb_tree_search (nodes=114/114 rc=53 decisions=1524 @root=37 restarts=1 lp_iters=[0, 0, 44'854, 7'287]) [skipped_logs=2]\n", "#Model 19.29s var:610/708 constraints:907/1013\n", "#Bound 19.41s best:1612.2948 next:[1572.93167,1612.2948] lb_tree_search (nodes=115/115 rc=53 decisions=1537 @root=38 restarts=1 lp_iters=[0, 0, 45'331, 7'310]) [skipped_logs=0]\n", "#Model 20.37s var:608/708 constraints:905/1013\n", "#Bound 20.88s best:1612.2948 next:[1573.09736,1612.2948] lb_tree_search (nodes=115/116 rc=55 decisions=1615 @root=40 restarts=1 lp_iters=[0, 0, 48'773, 7'513]) [skipped_logs=10]\n", "#Bound 21.89s best:1612.2948 next:[1573.16654,1612.2948] lb_tree_search (nodes=115/116 rc=55 decisions=1684 @root=42 restarts=1 lp_iters=[0, 0, 52'066, 7'513]) [skipped_logs=7]\n", "#Bound 22.97s best:1612.2948 next:[1573.47279,1612.2948] lb_tree_search (nodes=127/128 rc=56 decisions=1803 @root=42 restarts=1 lp_iters=[0, 0, 58'478, 7'838]) [skipped_logs=15]\n", "#Model 23.86s var:606/708 constraints:903/1013\n", "#Bound 23.97s best:1612.2948 next:[1573.87061,1612.2948] lb_tree_search (nodes=133/134 rc=60 decisions=1933 @root=42 restarts=1 lp_iters=[0, 0, 64'714, 8'171]) [skipped_logs=14]\n", "#Model 24.55s var:604/708 constraints:901/1013\n", "#Model 24.73s var:602/708 constraints:899/1013\n", "#Bound 24.42s best:1612.2948 next:[1573.92493,1612.2948] lb_tree_search (nodes=137/138 rc=60 decisions=2003 @root=42 restarts=1 lp_iters=[0, 0, 68'102, 8'233]) [skipped_logs=6]\n", "#Model 25.98s var:600/708 constraints:897/1013\n", "#Model 26.12s var:598/708 constraints:895/1013\n", "#Bound 26.91s best:1612.2948 next:[1574.07833,1612.2948] objective_lb_search\n", "#Model 27.21s var:596/708 constraints:893/1013\n", "#Model 28.03s var:594/708 constraints:891/1013\n", "#Model 28.16s var:592/708 constraints:889/1013\n", "#Bound 28.57s best:1612.2948 next:[1574.10337,1612.2948] objective_lb_search\n", "#Bound 29.67s best:1612.2948 next:[1574.11185,1612.2948] lb_tree_search (nodes=164/165 rc=69 decisions=2502 @root=45 restarts=2 lp_iters=[0, 0, 84'302, 16'856]) \n", "#Model 30.18s var:590/708 constraints:886/1013\n", "#Bound 30.67s best:1612.2948 next:[1574.1253,1612.2948] lb_tree_search (nodes=164/165 rc=70 decisions=2518 @root=46 restarts=2 lp_iters=[0, 0, 84'801, 16'856]) \n", "#Bound 31.89s best:1612.2948 next:[1574.16877,1612.2948] lb_tree_search (nodes=165/166 rc=71 decisions=2552 @root=48 restarts=2 lp_iters=[0, 0, 86'128, 16'895]) \n", "#Bound 32.46s best:1612.2948 next:[1574.17239,1612.2948] lb_tree_search (nodes=165/166 rc=71 decisions=2564 @root=49 restarts=2 lp_iters=[0, 0, 86'639, 16'895]) \n", "#Bound 32.51s best:1612.2948 next:[1574.19516,1612.2948] lb_tree_search (nodes=165/166 rc=71 decisions=2569 @root=50 restarts=2 lp_iters=[0, 0, 86'948, 16'895]) \n", "#Bound 32.58s best:1612.2948 next:[1574.20502,1612.2948] lb_tree_search (nodes=166/167 rc=71 decisions=2578 @root=50 restarts=2 lp_iters=[0, 0, 87'295, 16'935]) [skipped_logs=1]\n", "#Model 33.54s var:588/708 constraints:884/1013\n", "#Model 33.74s var:586/708 constraints:882/1013\n", "#Model 33.94s var:584/708 constraints:880/1013\n", "#Bound 33.62s best:1612.2948 next:[1574.25493,1612.2948] lb_tree_search (nodes=166/167 rc=71 decisions=2600 @root=52 restarts=2 lp_iters=[0, 0, 88'173, 16'935]) [skipped_logs=1]\n", "#Bound 34.20s best:1612.2948 next:[1574.27411,1612.2948] lb_tree_search (nodes=166/167 rc=71 decisions=2607 @root=53 restarts=2 lp_iters=[0, 0, 88'581, 16'935]) [skipped_logs=0]\n", "#Model 35.27s var:582/708 constraints:878/1013\n", "#Bound 36.00s best:1612.2948 next:[1574.33359,1612.2948] lb_tree_search (nodes=167/168 rc=72 decisions=2660 @root=57 restarts=2 lp_iters=[0, 0, 91'316, 16'966]) [skipped_logs=5]\n", "#Model 36.16s var:580/708 constraints:875/1013\n", "#Bound 36.97s best:1612.2948 next:[1574.73579,1612.2948] lb_tree_search (nodes=171/172 rc=73 decisions=2764 @root=57 restarts=2 lp_iters=[0, 0, 96'832, 17'180]) [skipped_logs=12]\n", "#Model 37.32s var:578/708 constraints:873/1013\n", "#Model 37.42s var:576/708 constraints:871/1013\n", "#Bound 37.63s best:1612.2948 next:[1574.9356,1612.2948] lb_tree_search (nodes=173/175 rc=73 decisions=2830 @root=57 restarts=2 lp_iters=[0, 0, 100'835, 17'343]) [skipped_logs=8]\n", "#Model 38.80s var:572/708 constraints:867/1013\n", "#Bound 38.08s best:1612.2948 next:[1574.9407,1612.2948] lb_tree_search (nodes=173/175 rc=73 decisions=2839 @root=58 restarts=2 lp_iters=[0, 0, 101'255, 17'343]) [skipped_logs=0]\n", "#Model 39.12s var:570/708 constraints:865/1013\n", "#Model 39.26s var:566/708 constraints:859/1013\n", "#Bound 39.07s best:1612.2948 next:[1574.94224,1612.2948] lb_tree_search (nodes=173/175 rc=73 decisions=2846 @root=59 restarts=2 lp_iters=[0, 0, 101'676, 17'343]) [skipped_logs=0]\n", "#Model 40.32s var:562/708 constraints:854/1013\n", "#Bound 40.80s best:1612.2948 next:[1575.14883,1612.2948] lb_tree_search (nodes=174/176 rc=75 decisions=2903 @root=61 restarts=2 lp_iters=[0, 0, 104'323, 17'386]) [skipped_logs=7]\n", "#Model 41.99s var:560/708 constraints:852/1013\n", "#Bound 41.75s best:1612.2948 next:[1575.177,1612.2948] lb_tree_search (nodes=174/176 rc=75 decisions=2906 @root=62 restarts=2 lp_iters=[0, 0, 104'554, 17'386]) [skipped_logs=0]\n", "#Model 42.22s var:558/708 constraints:850/1013\n", "#Bound 42.79s best:1612.2948 next:[1575.24057,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=2930 @root=65 restarts=2 lp_iters=[0, 0, 105'797, 17'386]) [skipped_logs=2]\n", "#Model 43.64s var:552/708 constraints:844/1013\n", "#Model 43.85s var:550/708 constraints:842/1013\n", "#Model 43.96s var:548/708 constraints:838/1013\n", "#Bound 44.06s best:1612.2948 next:[1575.27606,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=2972 @root=67 restarts=2 lp_iters=[0, 0, 108'380, 17'386]) [skipped_logs=5]\n", "#Model 44.83s var:546/708 constraints:835/1013\n", "#Bound 44.87s best:1612.2948 next:[1575.42196,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=3008 @root=68 restarts=2 lp_iters=[0, 0, 110'517, 17'386]) [skipped_logs=4]\n", "#Model 45.96s var:544/708 constraints:832/1013\n", "#Bound 45.79s best:1612.2948 next:[1575.43869,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=3016 @root=69 restarts=2 lp_iters=[0, 0, 110'879, 17'386]) [skipped_logs=0]\n", "#Model 46.66s var:542/708 constraints:829/1013\n", "#Bound 46.39s best:1612.2948 next:[1575.43952,1612.2948] lb_tree_search (nodes=153/176 rc=75 decisions=3027 @root=70 restarts=2 lp_iters=[0, 0, 111'432, 17'386]) [skipped_logs=0]\n", "#Model 47.51s var:540/708 constraints:827/1013\n", "#Model 47.73s var:538/708 constraints:825/1013\n", "#Bound 48.02s best:1612.2948 next:[1609.86694,1612.2948] reduced_costs [skipped_logs=1]\n", "Relative gap limit of 0.01 reached.\n", "#Model 48.00s var:488/708 constraints:769/1013 [skipped_logs=6]\n", "\n", "Task timing n [ min, max] avg dev time n [ min, max] avg dev dtime\n", " 'core': 1 [ 47.99s, 47.99s] 47.99s 0.00ns 47.99s 2 [ 1.47ms, 1.04m] 31.23s 31.23s 1.04m\n", " 'default_lp': 1 [ 47.99s, 47.99s] 47.99s 0.00ns 47.99s 2 [ 32.29ms, 26.03s] 13.03s 13.00s 26.06s\n", " 'feasibility_pump': 236 [962.95us, 96.24ms] 2.06ms 7.57ms 486.13ms 235 [162.57us, 48.62ms] 641.72us 4.41ms 150.80ms\n", " 'fj': 1 [ 94.93ms, 94.93ms] 94.93ms 0.00ns 94.93ms 1 [ 59.80ms, 59.80ms] 59.80ms 0.00ns 59.80ms\n", " 'fj': 1 [157.61ms, 157.61ms] 157.61ms 0.00ns 157.61ms 1 [100.02ms, 100.02ms] 100.02ms 0.00ns 100.02ms\n", " 'fs_random': 1 [ 14.37ms, 14.37ms] 14.37ms 0.00ns 14.37ms 1 [ 1.47ms, 1.47ms] 1.47ms 0.00ns 1.47ms\n", " 'fs_random_no_lp': 1 [ 13.37ms, 13.37ms] 13.37ms 0.00ns 13.37ms 1 [ 1.58ms, 1.58ms] 1.58ms 0.00ns 1.58ms\n", " 'fs_random_quick_restart_no_lp': 1 [ 13.25ms, 13.25ms] 13.25ms 0.00ns 13.25ms 1 [ 1.47ms, 1.47ms] 1.47ms 0.00ns 1.47ms\n", " 'graph_arc_lns': 108 [ 8.51ms, 481.69ms] 219.90ms 124.17ms 23.75s 108 [ 2.85us, 102.22ms] 63.68ms 40.47ms 6.88s\n", " 'graph_cst_lns': 108 [ 5.46ms, 493.57ms] 223.86ms 132.72ms 24.18s 108 [230.00ns, 100.31ms] 62.49ms 41.72ms 6.75s\n", " 'graph_dec_lns': 113 [ 2.56ms, 448.32ms] 219.27ms 136.70ms 24.78s 113 [ 10.00ns, 100.21ms] 59.13ms 42.71ms 6.68s\n", " 'graph_var_lns': 105 [ 2.52ms, 477.74ms] 225.50ms 140.67ms 23.68s 105 [ 10.00ns, 100.26ms] 59.37ms 41.81ms 6.23s\n", " 'lb_relax_lns': 30 [118.75ms, 1.54s] 784.01ms 509.64ms 23.52s 30 [ 16.89ms, 516.98ms] 293.15ms 220.48ms 8.79s\n", " 'lb_tree_search': 1 [ 47.98s, 47.98s] 47.98s 0.00ns 47.98s 2 [ 54.69ms, 23.06s] 11.56s 11.50s 23.11s\n", " 'ls': 135 [ 18.99ms, 304.61ms] 174.34ms 23.49ms 23.54s 135 [ 10.04ms, 100.03ms] 99.34ms 7.71ms 13.41s\n", " 'ls_lin': 131 [136.90ms, 269.33ms] 179.79ms 19.80ms 23.55s 131 [100.00ms, 100.03ms] 100.01ms 5.49us 13.10s\n", " 'max_lp': 1 [ 47.98s, 47.98s] 47.98s 0.00ns 47.98s 2 [ 53.12ms, 26.72s] 13.39s 13.33s 26.77s\n", " 'no_lp': 1 [ 47.98s, 47.98s] 47.98s 0.00ns 47.98s 2 [ 1.61ms, 28.51s] 14.26s 14.25s 28.51s\n", " 'objective_lb_search': 1 [ 47.98s, 47.98s] 47.98s 0.00ns 47.98s 2 [ 33.38ms, 26.07s] 13.05s 13.02s 26.10s\n", " 'probing': 1 [ 47.99s, 47.99s] 47.99s 0.00ns 47.99s 2 [ 32.29ms, 22.73s] 11.38s 11.35s 22.76s\n", " 'pseudo_costs': 1 [ 47.98s, 47.98s] 47.98s 0.00ns 47.98s 2 [ 12.12ms, 24.30s] 12.16s 12.15s 24.32s\n", " 'quick_restart': 1 [ 47.98s, 47.98s] 47.98s 0.00ns 47.98s 2 [ 41.60ms, 19.96s] 10.00s 9.96s 20.00s\n", " 'quick_restart_no_lp': 1 [ 48.00s, 48.00s] 48.00s 0.00ns 48.00s 2 [ 1.61ms, 40.00s] 20.00s 20.00s 40.00s\n", " 'reduced_costs': 1 [ 47.98s, 47.98s] 47.98s 0.00ns 47.98s 2 [ 9.59ms, 30.42s] 15.22s 15.21s 30.43s\n", " 'rins/rens': 120 [ 3.17ms, 497.04ms] 196.79ms 139.41ms 23.61s 116 [ 6.57us, 100.19ms] 56.92ms 42.88ms 6.60s\n", " 'rnd_cst_lns': 114 [ 5.37ms, 610.81ms] 211.50ms 128.34ms 24.11s 114 [145.00ns, 100.30ms] 57.85ms 40.64ms 6.59s\n", " 'rnd_var_lns': 105 [ 5.02ms, 452.70ms] 228.98ms 133.87ms 24.04s 105 [ 63.00ns, 100.23ms] 62.92ms 41.25ms 6.61s\n", "\n", "Search stats Bools Conflicts Branches Restarts BacktrackToRoot Backtrack BoolPropag IntegerPropag\n", " 'core': 1'092 315'871 940'477 1'436 12'127 339'499 37'724'420 17'930'479\n", " 'default_lp': 354 3'306 137'810 27 37'089 49'039 1'800'373 5'925'320\n", " 'fs_random': 354 0 708 0 708 708 6'758 17'253\n", " 'fs_random_no_lp': 354 6 812 0 708 714 7'067 18'290\n", " 'fs_random_quick_restart_no_lp': 354 0 708 0 708 708 6'758 17'254\n", " 'lb_tree_search': 354 327 167'024 0 50'019 63'629 2'213'052 7'327'464\n", " 'max_lp': 354 3'764 147'223 27 38'998 51'533 1'964'378 6'511'012\n", " 'no_lp': 354 431'285 754'080 788 24'507 458'336 22'000'802 69'509'625\n", " 'objective_lb_search': 394 1'688 150'919 18 44'638 57'384 2'003'684 6'643'546\n", " 'probing': 444 61 1'137 0 1'038 1'047 20'412 55'640\n", " 'pseudo_costs': 354 4'761 172'429 34 44'881 60'602 2'223'398 7'408'653\n", " 'quick_restart': 354 1'267 235'235 50 66'031 83'490 2'987'855 9'859'236\n", " 'quick_restart_no_lp': 615 210'234 1'507'905 18'342 66'285 285'240 20'375'201 47'001'975\n", " 'reduced_costs': 358 4'806 130'627 26 32'073 45'037 1'552'350 5'154'777\n", "\n", "SAT formula Fixed Equiv Total VarLeft BinaryClauses PermanentClauses TemporaryClauses\n", " 'core': 90 24 1'092 978 6'314 35'199 7'857\n", " 'default_lp': 225 5 354 124 482 52 652\n", " 'fs_random': 0 0 354 354 80 40 0\n", " 'fs_random_no_lp': 0 0 354 354 80 40 6\n", " 'fs_random_quick_restart_no_lp': 0 0 354 354 80 40 0\n", " 'lb_tree_search': 82 0 354 272 2'882 604 19\n", " 'max_lp': 84 0 354 270 2'808 699 1'936\n", " 'no_lp': 83 0 354 271 3'142 8'151 12'634\n", " 'objective_lb_search': 159 0 394 235 1'846 298 57\n", " 'probing': 104 0 444 340 12'468 1'863 7\n", " 'pseudo_costs': 83 0 354 271 2'736 662 2'879\n", " 'quick_restart': 85 0 354 269 2'666 686 319\n", " 'quick_restart_no_lp': 164 1 615 450 2'862 3'770 4'822\n", " 'reduced_costs': 226 0 358 132 2'156 -'217 1'714\n", "\n", "SAT stats ClassicMinim LitRemoved LitRemovedBinary LitLearned LitForgotten Subsumed\n", " 'core': 270'111 2'962'620 1'321'492 16'335'111 10'008'340 68'328\n", " 'default_lp': 2'688 47'593 66'130 152'092 0 859\n", " 'fs_random': 0 0 0 0 0 0\n", " 'fs_random_no_lp': 6 8 27 767 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0\n", " 'lb_tree_search': 72 161 2'516 2'478 0 197\n", " 'max_lp': 3'134 63'243 74'397 157'953 0 1'040\n", " 'no_lp': 391'045 4'529'650 4'116'157 15'109'221 10'743'026 96'974\n", " 'objective_lb_search': 1'236 49'176 15'353 20'784 0 789\n", " 'probing': 8 62 476 881 0 2\n", " 'pseudo_costs': 3'829 75'927 101'436 193'825 0 1'301\n", " 'quick_restart': 719 11'063 13'410 26'865 0 585\n", " 'quick_restart_no_lp': 179'214 2'018'970 3'193'147 6'836'841 5'112'090 33'432\n", " 'reduced_costs': 3'496 46'962 55'555 285'214 0 1'199\n", "\n", "Vivification Clauses Decisions LitTrue Subsumed LitRemoved DecisionReused Conflicts\n", " 'core': 12'948 439'753 0 2'413 103'131 32'483 514\n", " 'default_lp': 28'622 114'311 2 1'726 8'371 4'918 27\n", " 'fs_random': 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0\n", " 'lb_tree_search': 36'260 136'731 2 1'696 7'855 4'512 21\n", " 'max_lp': 30'958 123'427 1 1'899 9'107 5'284 36\n", " 'no_lp': 23'319 198'092 9 4'810 66'481 22'480 763\n", " 'objective_lb_search': 32'065 124'615 10 1'656 7'939 5'239 22\n", " 'probing': 1 2 0 1 3 0 0\n", " 'pseudo_costs': 34'486 142'453 3 1'768 8'655 6'059 39\n", " 'quick_restart': 48'873 197'361 2 1'865 8'999 7'655 44\n", " 'quick_restart_no_lp': 46'964 368'715 4 8'067 89'075 36'646 1'034\n", " 'reduced_costs': 22'890 99'593 45 1'833 9'511 5'086 78\n", "\n", "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\n", " 'core': 4'677 79 106 66'261 3'626 154 2'067 2'413 1'238 10'517 0 0 183'992 672'754 315'871\n", " 'default_lp': 1'540 706 43 829 9 9 30 1'726 746 250 0 0 0 7'593 3'306\n", " 'fs_random': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 11 6\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'lb_tree_search': 319 0 5 195 0 8 2 1'696 949 128 0 0 0 64 327\n", " 'max_lp': 426 1 7 1'002 3 19 38 1'899 972 510 0 0 0 7'768 3'764\n", " 'no_lp': 11'165 74 16 94'345 2'848 1'113 2'629 4'810 1'052 4'994 0 0 289'799 1'008'872 431'285\n", " 'objective_lb_search': 1'127 56 29 709 0 67 80 1'656 801 141 0 0 0 1'838 1'688\n", " 'probing': 0 0 0 2 0 0 0 1 0 0 0 0 0 15 61\n", " 'pseudo_costs': 414 0 16 1'247 16 9 54 1'768 739 279 0 0 0 10'153 4'761\n", " 'quick_restart': 359 0 10 569 3 15 16 1'865 938 127 0 0 0 1'493 1'267\n", " 'quick_restart_no_lp': 8'774 41 108 31'568 1'130 409 1'864 8'067 4'814 4'189 0 0 140'942 487'025 210'234\n", " 'reduced_costs': 748 37 20 1'148 10 98 51 1'833 1'085 835 0 0 0 38'877 4'806\n", "\n", "Lp stats Component Iterations AddedCuts OPTIMAL DUAL_F. DUAL_U.\n", " 'default_lp': 1 315'761 3'393 8'759 8 465\n", " 'fs_random': 1 0 0 0 0 0\n", " 'lb_tree_search': 1 164'729 1'660 2'772 1'266 4\n", " 'max_lp': 1 309'796 2'425 7'306 2'722 439\n", " 'objective_lb_search': 1 233'812 2'033 4'127 1 116\n", " 'probing': 1 89'904 2'540 655 9 15\n", " 'pseudo_costs': 1 327'730 3'353 8'966 2'974 635\n", " 'quick_restart': 1 148'704 2'297 3'400 3 100\n", " 'reduced_costs': 1 375'687 3'219 6'300 3'246 610\n", "\n", "Lp dimension Final dimension of first component\n", " 'default_lp': 791 rows, 708 columns, 11464 entries\n", " 'fs_random': 0 rows, 708 columns, 0 entries\n", " 'lb_tree_search': 875 rows, 708 columns, 20760 entries\n", " 'max_lp': 767 rows, 708 columns, 14517 entries\n", " 'objective_lb_search': 791 rows, 708 columns, 14899 entries\n", " 'probing': 1201 rows, 708 columns, 33251 entries\n", " 'pseudo_costs': 763 rows, 708 columns, 11020 entries\n", " 'quick_restart': 777 rows, 708 columns, 13372 entries\n", " 'reduced_costs': 921 rows, 708 columns, 18436 entries\n", "\n", "Lp debug CutPropag CutEqPropag Adjust Overflow Bad BadScaling\n", " 'default_lp': 0 37 9'208 0 73'602 0\n", " 'fs_random': 0 0 0 0 0 0\n", " 'lb_tree_search': 0 0 4'041 0 133'647 0\n", " 'max_lp': 0 10 10'458 0 65'015 0\n", " 'objective_lb_search': 0 9 4'238 0 105'919 0\n", " 'probing': 0 1 669 0 216'489 0\n", " 'pseudo_costs': 0 10 12'528 0 65'957 0\n", " 'quick_restart': 0 3 3'498 0 122'636 0\n", " 'reduced_costs': 0 0 10'126 0 52'973 0\n", "\n", "Lp pool Constraints Updates Simplif Merged Shortened Split Strengthened Cuts/Call\n", " 'default_lp': 4'723 760 16'744 0 10'233 316 335 3'393/7'720\n", " 'fs_random': 1'330 0 0 0 0 0 0 0/0\n", " 'lb_tree_search': 3'027 1'069 16'328 0 8'998 902 178 1'660/3'298\n", " 'max_lp': 3'792 519 16'347 0 10'157 407 286 2'425/5'665\n", " 'objective_lb_search': 3'363 729 16'071 0 9'270 684 308 2'033/3'641\n", " 'probing': 3'870 1'791 7'323 0 4'390 995 237 2'540/4'340\n", " 'pseudo_costs': 4'720 733 16'404 0 8'229 416 380 3'353/7'697\n", " 'quick_restart': 3'627 811 21'467 0 11'065 602 286 2'297/4'222\n", " 'reduced_costs': 4'586 748 13'218 0 7'382 481 389 3'219/6'776\n", "\n", "Lp Cut max_lp quick_restart reduced_costs pseudo_costs lb_tree_search objective_lb_search default_lp probing\n", " CG_FF: 22 10 32 34 7 16 45 16\n", " CG_K: 8 6 23 30 1 10 28 11\n", " CG_KL: 4 2 3 2 1 4 11 3\n", " CG_R: 44 21 44 74 8 33 72 23\n", " CG_RB: 51 54 64 108 26 40 98 37\n", " CG_RBP: 23 15 35 63 7 28 62 18\n", " Clique: 25 - 21 26 21 - - -\n", " IB: 913 768 1'126 1'444 254 708 1'302 592\n", " MIR_1_FF: 87 160 132 95 116 136 162 209\n", " MIR_1_K: 26 20 57 20 9 21 32 16\n", " MIR_1_KL: 7 26 18 22 7 25 28 19\n", " MIR_1_R: 15 17 9 8 6 2 2 16\n", " MIR_1_RB: 58 24 42 42 24 39 58 22\n", " MIR_1_RBP: 29 64 33 28 58 52 61 170\n", " MIR_2_FF: 96 89 97 94 89 57 123 95\n", " MIR_2_K: 25 18 36 31 19 24 23 22\n", " MIR_2_KL: 6 16 17 11 12 5 20 15\n", " MIR_2_R: 16 3 25 20 5 2 11 6\n", " MIR_2_RB: 95 61 95 79 52 49 102 55\n", " MIR_2_RBP: 25 22 31 38 20 17 44 27\n", " MIR_3_FF: 49 50 72 71 45 49 73 75\n", " MIR_3_K: 15 7 32 12 10 37 15 14\n", " MIR_3_KL: 3 8 6 7 4 10 8 10\n", " MIR_3_R: 20 6 9 13 3 7 9 5\n", " MIR_3_RB: 71 50 62 73 41 46 72 47\n", " MIR_3_RBP: 26 15 17 31 10 16 41 16\n", " MIR_4_FF: 38 49 67 47 41 45 47 74\n", " MIR_4_K: 15 10 27 12 8 27 10 9\n", " MIR_4_KL: 4 4 8 7 5 7 4 10\n", " MIR_4_R: 6 9 12 16 3 4 7 -\n", " MIR_4_RB: 42 35 41 58 28 39 53 28\n", " MIR_4_RBP: 19 13 27 30 8 17 25 11\n", " MIR_5_FF: 23 32 47 45 39 30 47 57\n", " MIR_5_K: 19 19 23 16 13 18 16 23\n", " MIR_5_KL: 3 4 14 12 2 9 10 10\n", " MIR_5_R: 8 7 9 13 1 4 7 4\n", " MIR_5_RB: 27 14 36 35 20 26 42 27\n", " MIR_5_RBP: 25 18 21 30 15 14 26 32\n", " MIR_6_FF: 25 10 29 27 30 26 27 52\n", " MIR_6_K: 24 18 20 18 19 26 17 16\n", " MIR_6_KL: 9 12 10 19 11 10 18 13\n", " MIR_6_R: 8 3 12 9 2 5 11 -\n", " MIR_6_RB: 21 10 38 28 10 19 32 21\n", " MIR_6_RBP: 23 32 26 38 32 30 45 38\n", " ZERO_HALF_FF: 30 17 55 26 1 17 23 30\n", " ZERO_HALF_K: 1 2 24 6 - 3 9 1\n", " ZERO_HALF_KL: - 5 11 6 - 7 5 10\n", " ZERO_HALF_R: 242 328 407 331 438 182 313 455\n", " ZERO_HALF_RB: 43 75 64 25 56 28 61 54\n", " ZERO_HALF_RBP: 11 39 53 23 23 7 36 26\n", "\n", "LNS stats Improv/Calls Closed Difficulty TimeLimit\n", " 'graph_arc_lns': 14/108 54% 9.39e-01 0.10\n", " 'graph_cst_lns': 6/108 51% 9.01e-01 0.10\n", " 'graph_dec_lns': 8/113 51% 9.11e-01 0.10\n", " 'graph_var_lns': 6/105 53% 9.54e-01 0.10\n", " 'lb_relax_lns': 4/30 53% 7.83e-01 0.50\n", " 'rins/rens': 118/120 56% 9.41e-01 0.10\n", " 'rnd_cst_lns': 12/114 52% 9.20e-01 0.10\n", " 'rnd_var_lns': 5/105 52% 9.34e-01 0.10\n", "\n", "LS stats Batches Restarts/Perturbs LinMoves GenMoves CompoundMoves Bactracks WeightUpdates ScoreComputed\n", " 'fj_restart': 1 1 8'791 0 0 0 8'797 255'737\n", " 'fj_restart_decay_compound_perturb_obj': 1 1 0 12'932 2'200 5'365 27 347'114\n", " 'ls_lin_restart': 12 7 170'890 0 0 0 147'479 5'120'584\n", " 'ls_lin_restart_compound': 21 7 0 318'765 19'426 149'633 1'718 7'664'363\n", " 'ls_lin_restart_compound_perturb': 14 8 0 224'982 14'301 105'321 1'743 5'439'661\n", " 'ls_lin_restart_decay': 8 6 133'891 0 0 0 5'650 2'400'398\n", " 'ls_lin_restart_decay_compound': 36 16 0 580'916 82'658 249'024 802 14'703'978\n", " 'ls_lin_restart_decay_compound_perturb': 8 7 0 125'423 21'112 52'147 295 3'258'541\n", " 'ls_lin_restart_decay_perturb': 17 10 282'910 0 0 0 12'002 5'176'761\n", " 'ls_lin_restart_perturb': 15 9 220'983 0 0 0 151'029 7'191'986\n", " 'ls_restart': 12 6 176'693 0 0 0 100'185 5'722'677\n", " 'ls_restart_compound': 31 13 0 506'537 27'750 239'342 3'936 12'050'971\n", " 'ls_restart_compound_perturb': 13 9 0 195'433 12'859 91'268 1'798 4'680'184\n", " 'ls_restart_decay': 24 10 400'180 0 0 0 16'491 7'450'889\n", " 'ls_restart_decay_compound': 9 6 0 142'058 23'215 59'409 251 3'459'408\n", " 'ls_restart_decay_compound_perturb': 8 4 0 112'287 16'280 47'987 186 2'919'361\n", " 'ls_restart_decay_perturb': 28 15 464'097 0 0 0 19'258 8'547'790\n", " 'ls_restart_perturb': 10 9 145'106 0 0 0 114'128 4'373'120\n", "\n", "Solutions (8) Num Rank\n", " 'graph_arc_lns': 4 [3,6]\n", " 'lb_relax_lns_bool': 2 [4,5]\n", " 'lb_relax_lns_bool_h': 4 [6,8]\n", " 'no_lp': 2 [0,1]\n", " 'quick_restart_no_lp': 2 [2,3]\n", " 'reduced_costs': 2 [1,2]\n", "\n", "Objective bounds Num\n", " 'am1_presolve': 1\n", " 'initial_domain': 1\n", " 'lb_tree_search': 257\n", " 'max_lp': 3\n", " 'objective_lb_search': 8\n", " 'probing': 5\n", " 'reduced_costs': 2\n", "\n", "Solution repositories Added Queried Synchro\n", " 'alternative_path': 53 459 53\n", " 'best_solutions': 164 567 113\n", " 'fj solution hints': 0 0 0\n", " 'lp solutions': 264 99 228\n", " 'pump': 83 21\n", "\n", "Improving bounds shared Num Sym\n", " 'default_lp': 12 0\n", " 'lb_tree_search': 17 0\n", " 'max_lp': 22 0\n", " 'no_lp': 10 0\n", " 'objective_lb_search': 34 0\n", " 'probing': 87 0\n", " 'pseudo_costs': 20 0\n", " 'quick_restart': 26 0\n", " 'quick_restart_no_lp': 81 0\n", " 'reduced_costs': 257 0\n", "\n", "Clauses shared #Exported #Imported #BinaryRead #BinaryTotal\n", " 'core': 1'483 4'236 3'783 4'143\n", " 'default_lp': 381 4'390 4'143 4'143\n", " 'fs_random': 0 0 0 4'143\n", " 'fs_random_no_lp': 0 0 0 4'143\n", " 'fs_random_quick_restart_no_lp': 0 0 0 4'143\n", " 'lb_tree_search': 223 4'305 3'724 4'143\n", " 'max_lp': 439 4'402 3'786 4'143\n", " 'no_lp': 2'663 2'976 3'785 4'143\n", " 'objective_lb_search': 394 4'371 4'101 4'143\n", " 'probing': 2'957 2'157 2'581 4'143\n", " 'pseudo_costs': 394 4'198 3'726 4'143\n", " 'quick_restart': 577 4'245 3'793 4'143\n", " 'quick_restart_no_lp': 4'522 2'469 3'964 4'143\n", " 'reduced_costs': 620 4'138 3'786 4'143\n", "\n", "LRAT_status: NA\n", "[Scaling] scaled_objective_bound: 1609.87 corrected_bound: 1609.87 delta: 1.46501e-06\n", "[Scaling] Warning: OPTIMAL was reported, yet the objective gap (2.42787) is greater than requested absolute limit (0.0001).\n", "CpSolverResponse summary:\n", "status: OPTIMAL\n", "objective: 1612.294803789032\n", "best_bound: 1609.866938074606\n", "integers: 727\n", "booleans: 354\n", "conflicts: 6\n", "branches: 812\n", "propagations: 7067\n", "integer_propagations: 18290\n", "restarts: 0\n", "lp_iterations: 0\n", "walltime: 48.0397\n", "usertime: 48.0397\n", "deterministic_time: 412.521\n", "gap_integral: 713.208\n", "solution_fingerprint: 0x5b832712c354a6b2\n", "\n" ] } ], "source": [ "from optiwindnet.api import ModelOptions\n", "model_options = ModelOptions(\n", " topology='radial',\n", " feeder_limit='minimum',\n", " feeder_route='segmented',\n", " )\n", "solver_options=dict(\n", " num_workers = 5,\n", ")\n", "router= MILPRouter(solver_name='ortools.cp_sat', time_limit=60, mip_gap=0.01, model_options=model_options, verbose=True)\n", "res = wfn.optimize(router=router)" ] }, { "cell_type": "code", "execution_count": 13, "id": "c14416cf", "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "3 224 590 €Σλ = 1 612.3 m(+0) [-1]: 6κ = 7, T = 40" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wfn" ] }, { "cell_type": "markdown", "id": "3ef58072", "metadata": {}, "source": [ "### Ringed Topology with MILPRouter\n", "We can also optimize for a **ringed topology** by setting `topology='ringed'` in `ModelOptions`:" ] }, { "cell_type": "code", "execution_count": 14, "id": "ce732483", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "IntegerBoundsPreprocessor 1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]\n", "BoundPropagationPreprocessor 1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]\n", "ImpliedIntegerPreprocessor 1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]\n", "IntegerBoundsPreprocessor 1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]\n", "ReduceCostOverExclusiveOrConstraintPreprocessor 1132 rows, 748 columns, 3962 entries with magnitude in [1.000000e+00, 1.400000e+01]\n", "\n", "Scaling to pure integer problem.\n", "Num integers: 748/748 (implied: 0 in_inequalities: 0 max_scaling: 0) [IP] \n", "Maximum constraint coefficient relative error: 0\n", "Maximum constraint worst-case activity error: 0\n", "Constraint scaling factor range: [1, 1]\n", "\n", "Starting CP-SAT solver v9.15.6755\n", "Parameters: max_time_in_seconds: 15 log_search_progress: true catch_sigint_signal: false relative_gap_limit: 0.01\n", "Setting number of workers to 16\n", "\n", "Initial optimization model 'optiwindnet': (model_fingerprint: 0x192a0d00893e613d)\n", "#Variables: 748 (#bools: 340 in floating point objective) (628 primary variables)\n", " - 394 Booleans in [0,1]\n", " - 314 in [0,13]\n", " - 40 in [0,14]\n", "#kLinear2: 865\n", "#kLinear3: 1\n", "#kLinearN: 266 (#terms: 2'229)\n", "\n", "Starting presolve at 0.00s\n", "The solution hint is complete and is feasible.\n", "[Scaling] Floating point objective has 340 terms with magnitude in [0.100627, 223.305] average = 45.1849\n", "[Scaling] Objective coefficient relative error: 6.6288e-06\n", "[Scaling] Objective worst-case absolute error: 8.89826e-05\n", "[Scaling] Objective scaling factor: 524288\n", " 2.09e-04s 0.00e+00d [DetectDominanceRelations] \n", " 3.79e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1 \n", " 1.18e-05s 0.00e+00d [ExtractEncodingFromLinear] #potential_supersets=185 \n", " 6.49e-05s 0.00e+00d [DetectDuplicateColumns] \n", " 6.69e-05s 0.00e+00d [DetectDuplicateConstraints] \n", "[Symmetry] Graph for symmetry has 2'745 nodes and 4'944 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000232293 dtime: 0.00048967\n", "[SAT presolve] num removable Booleans: 0 / 354\n", "[SAT presolve] num trivial clauses: 0\n", "[SAT presolve] [0s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [1.312e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [1.9334e-05s] clauses:157 literals:314 vars:314 one_side_vars:314 simple_definition:0 singleton_clauses:0\n", " 8.10e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 8.62e-03s 4.11e-03d [Probe] #probed=1'496 #new_binary_clauses=354 \n", " 2.90e-04s 4.55e-04d [MaxClique] Merged 302 constraints with 1'090 literals into 182 constraints with 850 literals\n", " 1.87e-04s 0.00e+00d [DetectDominanceRelations] \n", " 2.49e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 5.49e-04s 0.00e+00d [ProcessAtMostOneAndLinear] #num_changes=354 \n", " 7.41e-05s 0.00e+00d [DetectDuplicateConstraints] \n", " 5.87e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 1.04e-04s 4.59e-06d [DetectDominatedLinearConstraints] #relevant_constraints=82 #num_inclusions=40 \n", " 1.06e-05s 0.00e+00d [DetectDifferentVariables] \n", " 8.43e-05s 4.19e-06d [ProcessSetPPC] #relevant_constraints=223 \n", " 1.12e-04s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=182 \n", " 2.81e-04s 0.00e+00d [DetectEncodedComplexDomains] \n", " 1.42e-05s 1.65e-07d [FindAlmostIdenticalLinearConstraints] #num_tested_pairs=3 \n", " 1.21e-04s 1.02e-04d [FindBigAtMostOneAndLinearOverlap] \n", " 7.84e-05s 1.08e-04d [FindBigVerticalLinearOverlap] \n", " 1.44e-05s 5.27e-06d [FindBigHorizontalLinearOverlap] #linears=80 \n", " 9.89e-06s 0.00e+00d [MergeClauses] \n", " 1.83e-04s 0.00e+00d [DetectDominanceRelations] \n", " 2.74e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1 \n", " 1.53e-04s 0.00e+00d [DetectDominanceRelations] \n", " 1.24e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 4.13e-05s 0.00e+00d [DetectDuplicateColumns] \n", " 5.92e-05s 0.00e+00d [DetectDuplicateConstraints] \n", "[Symmetry] Graph for symmetry has 2'492 nodes and 4'451 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000399166 dtime: 0.0004571\n", "[SAT presolve] num removable Booleans: 0 / 354\n", "[SAT presolve] num trivial clauses: 0\n", "[SAT presolve] [0s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [7.392e-06s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", "[SAT presolve] [1.944e-05s] clauses:37 literals:74 vars:74 one_side_vars:74 simple_definition:0 singleton_clauses:0\n", " 7.82e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 4.06e-03s 1.27e-03d [Probe] #probed=788 \n", " 2.51e-04s 3.09e-04d [MaxClique] \n", " 5.11e-04s 0.00e+00d [DetectDominanceRelations] \n", " 2.90e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 3.18e-04s 0.00e+00d [ProcessAtMostOneAndLinear] \n", " 6.56e-05s 0.00e+00d [DetectDuplicateConstraints] \n", " 6.43e-05s 0.00e+00d [DetectDuplicateConstraintsWithDifferentEnforcements] \n", " 8.59e-05s 4.59e-06d [DetectDominatedLinearConstraints] #relevant_constraints=82 #num_inclusions=40 \n", " 9.47e-06s 0.00e+00d [DetectDifferentVariables] \n", " 7.61e-05s 4.19e-06d [ProcessSetPPC] #relevant_constraints=223 \n", " 8.94e-05s 0.00e+00d [TransformClausesToExactlyOne] #num_amos=182 \n", " 2.58e-04s 0.00e+00d [DetectEncodedComplexDomains] \n", " 1.55e-05s 0.00e+00d [FindAlmostIdenticalLinearConstraints] \n", " 1.43e-04s 1.01e-04d [FindBigAtMostOneAndLinearOverlap] \n", " 7.90e-05s 1.08e-04d [FindBigVerticalLinearOverlap] \n", " 1.28e-05s 5.27e-06d [FindBigHorizontalLinearOverlap] #linears=80 \n", " 9.75e-06s 0.00e+00d [MergeClauses] \n", " 5.96e-04s 0.00e+00d [DetectDominanceRelations] \n", " 1.98e-03s 0.00e+00d [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1 \n", " 2.79e-06s 0.00e+00d [MergeNoOverlap] \n", " 2.98e-06s 0.00e+00d [MergeNoOverlap2D] \n", " 1.29e-04s 0.00e+00d [ExpandObjective] #entries=2'948 #tight_variables=354 #tight_constraints=40 #expands=3 \n", "\n", "Presolve summary:\n", " - 0 affine relations were detected.\n", " - rule 'TODO linear inclusion: superset is equality' was applied 80 times.\n", " - rule 'TODO linear2: convert ax + by != cte to clauses for large domains' was applied 2'124 times.\n", " - rule 'at_most_one: transformed into max clique' was applied 1 time.\n", " - rule 'bool_or: implications' was applied 157 times.\n", " - rule 'deductions: 708 stored' was applied 1 time.\n", " - rule 'exactly_one: removed literals' was applied 37 times.\n", " - rule 'exactly_one: simplified objective' was applied 39 times.\n", " - rule 'exactly_one: singleton' was applied 37 times.\n", " - rule 'linear + amo: extracted enforcement literal' was applied 354 times.\n", " - rule 'linear2: contains a boolean' was applied 354 times.\n", " - rule 'linear2: convert ax + by != cte to clauses' was applied 157 times.\n", " - rule 'linear: positive at most one' was applied 108 times.\n", " - rule 'linear: positive equal one' was applied 77 times.\n", " - rule 'linear: singleton column' was applied 3 times.\n", " - rule 'objective: expanded via tight equality' was applied 3 times.\n", " - rule 'objective: shifted cost with exactly ones' was applied 37 times.\n", " - rule 'presolve: 0 unused variables removed.' was applied 1 time.\n", " - rule 'presolve: iteration' was applied 2 times.\n", " - rule 'variables: detect fully reified value encoding' was applied 354 times.\n", " - rule 'variables: detect half reified value encoding' was applied 708 times.\n", "\n", "Presolved optimization model 'optiwindnet': (model_fingerprint: 0x7ca70ffef2fe892e)\n", "#Variables: 708 (#bools: 310 in objective) (627 primary variables)\n", " - 354 Booleans in [0,1]\n", " - 314 in [0,13]\n", " - 40 in [0,14]\n", "#kAtMostOne: 145 (#literals: 776)\n", "#kBoolAnd: 37 (#enforced: 37) (#literals: 74)\n", "#kExactlyOne: 40 (#literals: 354)\n", "#kLinear1: 708 (#enforced: 708)\n", "#kLinear3: 1\n", "#kLinearN: 81 (#terms: 1'059)\n", "[Symmetry] Graph for symmetry has 2'452 nodes and 4'451 arcs.\n", "[Symmetry] Symmetry computation done. time: 0.000192819 dtime: 0.00045848\n", "\n", "Preloading model.\n", "#Bound 0.04s best:inf next:[613.705382,16769.934] initial_domain\n", "#1 0.04s best:1810.44465 next:[613.705382,1810.44464] complete_hint\n", "#Model 0.04s var:708/708 constraints:1012/1012\n", "\n", "Starting search at 0.04s with 16 workers.\n", "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]\n", "5 first solution subsolvers: [fj(2), fs_random, fs_random_no_lp, fs_random_quick_restart_no_lp]\n", "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]\n", "3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]\n", "\n", "#Bound 0.05s best:1810.44465 next:[724.544545,1810.44464] am1_presolve (num_literals=310 num_am1=12 increase=58111643 work_done=1571)\n", "#Bound 0.05s best:1810.44465 next:[873.433064,1810.44464] default_lp\n", "#Bound 0.05s best:1810.44465 next:[878.097617,1810.44464] reduced_costs\n", "#Bound 0.06s best:1810.44465 next:[911.501117,1810.44464] reduced_costs\n", "#Bound 0.06s best:1810.44465 next:[950.825274,1810.44464] pseudo_costs\n", "#Bound 0.07s best:1810.44465 next:[1044.06746,1810.44464] pseudo_costs\n", "#Bound 0.07s best:1810.44465 next:[1076.35594,1810.44464] pseudo_costs\n", "#Bound 0.07s best:1810.44465 next:[1079.20803,1810.44464] reduced_costs\n", "#Bound 0.07s best:1810.44465 next:[1087.40569,1810.44464] reduced_costs\n", "#Bound 0.07s best:1810.44465 next:[1649.7498,1810.44464] lb_tree_search\n", "#2 0.09s best:1806.84452 next:[1649.7498,1806.84451] graph_var_lns (d=7.07e-01 s=23 t=0.10 p=1.00 stall=1 h=base)\n", "#Bound 0.15s best:1806.84452 next:[1663.59864,1806.84451] max_lp\n", "#Bound 0.16s best:1806.84452 next:[1663.9932,1806.84451] max_lp\n", "#Bound 0.35s best:1806.84452 next:[1664.45162,1806.84451] max_lp\n", "#Bound 0.45s best:1806.84452 next:[1664.69409,1806.84451] max_lp\n", "#Bound 0.85s best:1806.84452 next:[1665.36123,1806.84451] max_lp\n", "#Bound 1.00s best:1806.84452 next:[1665.59072,1806.84451] max_lp\n", "#Bound 1.06s best:1806.84452 next:[1666.87721,1806.84451] lb_tree_search\n", "#Bound 1.36s best:1806.84452 next:[1668.95933,1806.84451] lb_tree_search\n", "#Bound 1.38s best:1806.84452 next:[1669.08086,1806.84451] lb_tree_search\n", "#Bound 1.42s best:1806.84452 next:[1669.21245,1806.84451] lb_tree_search (nodes=6/6 rc=0 decisions=27 @root=8 restarts=0 lp_iters=[0, 0, 333, 202]) \n", "#Bound 1.77s best:1806.84452 next:[1669.68257,1806.84451] lb_tree_search\n", "#Bound 1.97s best:1806.84452 next:[1670.68995,1806.84451] lb_tree_search (nodes=6/6 rc=0 decisions=44 @root=11 restarts=0 lp_iters=[0, 0, 1'110, 202]) [skipped_logs=7]\n", "#Bound 2.76s best:1806.84452 next:[1673.56404,1806.84451] lb_tree_search (nodes=16/16 rc=2 decisions=95 @root=11 restarts=0 lp_iters=[0, 0, 4'229, 790]) [skipped_logs=15]\n", "#Bound 3.95s best:1806.84452 next:[1674.2135,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=128 @root=15 restarts=0 lp_iters=[0, 0, 5'769, 790]) [skipped_logs=5]\n", "#Bound 5.00s best:1806.84452 next:[1675.14275,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=145 @root=18 restarts=0 lp_iters=[0, 0, 6'622, 790]) [skipped_logs=3]\n", "#Bound 5.87s best:1806.84452 next:[1676.64053,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=166 @root=20 restarts=0 lp_iters=[0, 0, 8'349, 790]) [skipped_logs=7]\n", "#Bound 6.93s best:1806.84452 next:[1676.72295,1806.84451] lb_tree_search (nodes=16/16 rc=3 decisions=174 @root=22 restarts=0 lp_iters=[0, 0, 8'768, 790]) [skipped_logs=1]\n", "#3 7.47s best:1806.84451 next:[1677.64512,1806.84451] lb_relax_lns_int (d=3.59e-01 s=207 t=0.50 p=0.33 stall=3 h=base)\n", "#Bound 7.20s best:1806.84452 next:[1677.64512,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=185 @root=24 restarts=0 lp_iters=[0, 0, 9'241, 1'008]) [skipped_logs=1]\n", "#Bound 8.79s best:1806.84451 next:[1678.60307,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=212 @root=27 restarts=0 lp_iters=[0, 0, 10'841, 1'206]) [skipped_logs=4]\n", "#Bound 9.98s best:1806.84451 next:[1679.62339,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=221 @root=30 restarts=0 lp_iters=[0, 0, 11'406, 1'206]) [skipped_logs=2]\n", "#Bound 10.51s best:1806.84451 next:[1679.90788,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=223 @root=31 restarts=0 lp_iters=[0, 0, 11'589, 1'206]) [skipped_logs=0]\n", "#Bound 11.66s best:1806.84451 next:[1680.03252,1806.84451] lb_tree_search (nodes=17/17 rc=3 decisions=239 @root=34 restarts=0 lp_iters=[0, 0, 12'793, 1'206]) [skipped_logs=4]\n", "#Bound 12.27s best:1806.84451 next:[1680.03352,1806.84451] lb_tree_search (nodes=29/29 rc=8 decisions=282 @root=34 restarts=0 lp_iters=[0, 0, 13'749, 2'019]) [skipped_logs=0]\n", "#Bound 13.85s best:1806.84451 next:[1680.12513,1806.84451] lb_tree_search (nodes=29/29 rc=8 decisions=291 @root=36 restarts=0 lp_iters=[0, 0, 14'295, 2'019]) [skipped_logs=1]\n", "#Bound 14.78s best:1806.84451 next:[1680.17679,1806.84451] lb_tree_search (nodes=29/29 rc=8 decisions=297 @root=37 restarts=0 lp_iters=[0, 0, 14'556, 2'019]) [skipped_logs=0]\n", "\n", "Task timing n [ min, max] avg dev time n [ min, max] avg dev dtime\n", " 'core': 1 [ 14.97s, 14.97s] 14.97s 0.00ns 14.97s 2 [ 1.33ms, 10.66s] 5.33s 5.33s 10.66s\n", " 'default_lp': 1 [ 14.96s, 14.96s] 14.96s 0.00ns 14.96s 2 [ 21.87ms, 5.69s] 2.86s 2.84s 5.72s\n", " 'feasibility_pump': 70 [ 41.01us, 19.07ms] 1.52ms 2.14ms 106.47ms 68 [146.90us, 8.53ms] 278.86us 1.01ms 18.96ms\n", " 'fj': 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns\n", " 'fj': 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns\n", " 'fs_random': 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns 0 [ 0.00ns, 0.00ns] 0.00ns 0.00ns 0.00ns\n", " '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\n", " '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\n", " 'graph_arc_lns': 42 [ 4.14ms, 414.85ms] 191.04ms 140.00ms 8.02s 42 [ 42.00ns, 100.31ms] 60.95ms 45.56ms 2.56s\n", " 'graph_cst_lns': 37 [ 9.87ms, 421.04ms] 216.09ms 139.88ms 8.00s 37 [ 64.21us, 100.50ms] 60.49ms 42.67ms 2.24s\n", " 'graph_dec_lns': 37 [ 2.69ms, 454.72ms] 210.36ms 149.69ms 7.78s 37 [ 10.00ns, 100.15ms] 58.00ms 45.47ms 2.15s\n", " 'graph_var_lns': 41 [ 3.69ms, 361.18ms] 181.40ms 133.39ms 7.44s 41 [ 10.00ns, 100.30ms] 58.27ms 45.80ms 2.39s\n", " 'lb_relax_lns': 9 [157.86ms, 1.72s] 786.50ms 683.67ms 7.08s 9 [ 29.98ms, 536.23ms] 254.79ms 244.99ms 2.29s\n", " 'lb_tree_search': 1 [ 14.96s, 14.96s] 14.96s 0.00ns 14.96s 2 [ 62.71ms, 8.50s] 4.28s 4.22s 8.56s\n", " 'ls': 33 [172.42ms, 249.69ms] 210.27ms 21.24ms 6.94s 33 [100.00ms, 100.02ms] 100.01ms 2.34us 3.30s\n", " 'ls_lin': 34 [177.75ms, 273.75ms] 206.32ms 19.56ms 7.01s 34 [100.00ms, 100.01ms] 100.01ms 2.38us 3.40s\n", " 'max_lp': 1 [ 14.97s, 14.97s] 14.97s 0.00ns 14.97s 2 [ 89.76ms, 7.27s] 3.68s 3.59s 7.36s\n", " 'no_lp': 1 [ 14.97s, 14.97s] 14.97s 0.00ns 14.97s 2 [ 1.58ms, 7.34s] 3.67s 3.67s 7.34s\n", " 'objective_lb_search': 1 [ 14.96s, 14.96s] 14.96s 0.00ns 14.96s 2 [ 21.75ms, 6.26s] 3.14s 3.12s 6.28s\n", " 'probing': 1 [ 14.97s, 14.97s] 14.97s 0.00ns 14.97s 2 [ 23.97ms, 9.68s] 4.85s 4.83s 9.70s\n", " 'pseudo_costs': 1 [ 14.96s, 14.96s] 14.96s 0.00ns 14.96s 2 [ 32.15ms, 7.05s] 3.54s 3.51s 7.09s\n", " 'quick_restart': 1 [ 14.97s, 14.97s] 14.97s 0.00ns 14.97s 2 [ 22.68ms, 7.73s] 3.88s 3.85s 7.75s\n", " 'quick_restart_no_lp': 1 [ 14.96s, 14.96s] 14.96s 0.00ns 14.96s 2 [ 1.58ms, 11.48s] 5.74s 5.74s 11.49s\n", " 'reduced_costs': 1 [ 14.97s, 14.97s] 14.97s 0.00ns 14.97s 2 [ 45.86ms, 9.63s] 4.84s 4.79s 9.67s\n", " 'rins/rens': 40 [ 1.79ms, 440.44ms] 203.93ms 171.05ms 8.16s 33 [ 74.16us, 100.11ms] 65.24ms 44.45ms 2.15s\n", " 'rnd_cst_lns': 39 [ 5.09ms, 424.11ms] 177.59ms 143.06ms 6.93s 39 [ 43.00ns, 100.21ms] 50.07ms 45.35ms 1.95s\n", " 'rnd_var_lns': 39 [ 3.81ms, 421.29ms] 186.36ms 146.25ms 7.27s 39 [ 10.00ns, 100.19ms] 51.78ms 45.00ms 2.02s\n", "\n", "Search stats Bools Conflicts Branches Restarts BacktrackToRoot Backtrack BoolPropag IntegerPropag\n", " 'core': 564 162'610 601'331 230 11'698 176'246 5'372'233 12'209'439\n", " 'default_lp': 406 1'189 51'634 15 14'565 18'091 320'652 1'082'525\n", " 'fs_random': 0 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0\n", " 'lb_tree_search': 354 119 54'507 0 16'640 18'442 310'661 1'116'169\n", " 'max_lp': 354 1'118 48'620 11 11'551 13'760 285'675 1'089'124\n", " 'no_lp': 354 123'614 241'227 382 15'156 139'667 5'157'122 16'329'950\n", " 'objective_lb_search': 464 2'111 48'310 11 11'812 16'329 378'099 1'181'127\n", " 'probing': 395 10 999 0 873 883 9'392 23'652\n", " 'pseudo_costs': 354 1'803 38'097 7 8'733 11'301 260'913 992'643\n", " 'quick_restart': 374 343 53'175 18 16'062 18'353 300'246 1'067'962\n", " 'quick_restart_no_lp': 580 66'049 726'766 5'759 33'119 103'526 6'079'709 14'021'377\n", " 'reduced_costs': 354 915 48'917 14 13'302 15'591 290'754 1'093'400\n", "\n", "SAT formula Fixed Equiv Total VarLeft BinaryClauses PermanentClauses TemporaryClauses\n", " 'core': 0 0 564 564 1'426 3'953 12'181\n", " 'default_lp': 0 0 406 406 204 315 856\n", " 'fs_random': 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0\n", " 'lb_tree_search': 0 0 354 354 94 356 3\n", " 'max_lp': 0 0 354 354 94 355 872\n", " 'no_lp': 0 0 354 354 94 537 11'316\n", " 'objective_lb_search': 9 0 464 455 296 312 200\n", " 'probing': 0 0 395 395 308 40 10\n", " 'pseudo_costs': 0 0 354 354 94 296 1'426\n", " 'quick_restart': 0 0 374 374 136 378 189\n", " 'quick_restart_no_lp': 6 0 580 574 694 2'466 8'591\n", " 'reduced_costs': 0 0 354 354 94 386 706\n", "\n", "SAT stats ClassicMinim LitRemoved LitRemovedBinary LitLearned LitForgotten Subsumed\n", " 'core': 137'833 1'945'202 848'695 13'057'769 7'832'799 49'764\n", " 'default_lp': 846 11'805 31'108 68'832 0 285\n", " 'fs_random': 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0\n", " 'lb_tree_search': 45 379 356 1'609 0 91\n", " 'max_lp': 737 11'085 21'868 93'722 0 211\n", " 'no_lp': 106'848 797'746 1'583'929 7'417'875 5'561'618 15'754\n", " 'objective_lb_search': 1'787 20'824 34'691 99'624 0 416\n", " 'probing': 6 22 526 683 0 0\n", " 'pseudo_costs': 1'406 16'576 33'001 109'637 0 351\n", " 'quick_restart': 187 1'737 7'189 10'043 0 105\n", " 'quick_restart_no_lp': 49'823 486'974 1'333'119 3'162'107 2'116'443 11'055\n", " 'reduced_costs': 724 8'084 24'517 35'505 0 164\n", "\n", "Vivification Clauses Decisions LitTrue Subsumed LitRemoved DecisionReused Conflicts\n", " 'core': 10'822 332'618 0 1'867 45'583 28'122 123\n", " 'default_lp': 4'781 36'004 0 307 2'375 1'271 11\n", " 'fs_random': 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0\n", " 'lb_tree_search': 5'635 41'340 0 373 2'937 1'506 7\n", " 'max_lp': 4'998 38'047 0 288 2'314 1'706 13\n", " 'no_lp': 6'544 59'666 0 1'027 9'313 3'061 26\n", " 'objective_lb_search': 4'505 34'149 0 352 2'686 1'286 6\n", " 'probing': 0 0 0 0 0 0 0\n", " 'pseudo_costs': 3'971 29'259 0 326 2'493 1'112 9\n", " 'quick_restart': 5'125 38'620 0 341 2'501 1'614 9\n", " 'quick_restart_no_lp': 23'165 168'906 3 2'117 21'843 12'862 189\n", " 'reduced_costs': 4'875 35'598 0 299 2'394 1'467 11\n", "\n", "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\n", " 'core': 0 0 0 48'310 1'904 34 1'454 1'867 35 168 0 0 93'398 390'940 162'610\n", " 'default_lp': 0 0 1 279 5 0 6 307 21 56 0 0 0 2'460 1'189\n", " 'fs_random': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'fs_random_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'fs_random_quick_restart_no_lp': 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 'lb_tree_search': 0 0 0 91 0 3 0 373 26 91 0 0 0 22 119\n", " 'max_lp': 0 0 1 204 4 3 7 288 13 133 0 0 0 2'061 1'118\n", " 'no_lp': 0 0 0 15'404 574 3 350 1'027 38 29 0 0 95'058 296'612 123'614\n", " 'objective_lb_search': 1'419 0 0 409 9 10 7 352 18 33 0 0 0 3'991 2'111\n", " 'probing': 0 0 0 0 0 0 0 0 0 0 0 0 0 17 10\n", " 'pseudo_costs': 0 0 1 344 2 3 7 326 13 62 0 0 0 3'615 1'803\n", " 'quick_restart': 0 0 0 104 0 3 1 341 11 68 0 0 0 381 343\n", " 'quick_restart_no_lp': 21 0 6 10'382 576 72 673 2'117 127 252 0 0 40'808 143'532 66'049\n", " 'reduced_costs': 0 0 1 158 0 3 6 299 10 126 0 0 0 1'720 915\n", "\n", "Lp stats Component Iterations AddedCuts OPTIMAL DUAL_F. DUAL_U.\n", " 'default_lp': 1 69'803 4'352 4'229 0 165\n", " 'lb_tree_search': 1 25'833 1'888 357 107 0\n", " 'max_lp': 1 102'611 2'214 3'009 789 122\n", " 'objective_lb_search': 1 122'699 3'390 6'838 0 95\n", " 'probing': 1 26'160 5'222 257 4 1\n", " 'pseudo_costs': 1 154'873 2'051 4'274 1'549 185\n", " 'quick_restart': 1 50'259 4'224 1'575 1 19\n", " 'reduced_costs': 1 106'902 2'028 1'677 783 85\n", "\n", "Lp dimension Final dimension of first component\n", " 'default_lp': 1028 rows, 664 columns, 16991 entries\n", " 'lb_tree_search': 1746 rows, 708 columns, 67518 entries\n", " 'max_lp': 821 rows, 708 columns, 13492 entries\n", " 'objective_lb_search': 913 rows, 664 columns, 11357 entries\n", " 'probing': 2464 rows, 664 columns, 91477 entries\n", " 'pseudo_costs': 729 rows, 708 columns, 8356 entries\n", " 'quick_restart': 1341 rows, 664 columns, 27739 entries\n", " 'reduced_costs': 1016 rows, 708 columns, 19966 entries\n", "\n", "Lp debug CutPropag CutEqPropag Adjust Overflow Bad BadScaling\n", " 'default_lp': 0 4 4'386 0 22'334 0\n", " 'lb_tree_search': 0 0 463 0 63'061 0\n", " 'max_lp': 0 0 3'917 0 25'197 0\n", " 'objective_lb_search': 0 0 6'927 0 13'974 0\n", " 'probing': 0 1 259 0 55'583 0\n", " 'pseudo_costs': 0 0 5'999 0 9'787 0\n", " 'quick_restart': 0 0 1'594 0 35'951 0\n", " 'reduced_costs': 0 0 2'544 0 31'958 0\n", "\n", "Lp pool Constraints Updates Simplif Merged Shortened Split Strengthened Cuts/Call\n", " 'default_lp': 5'548 227 22 0 0 156 164 4'352/9'356\n", " 'lb_tree_search': 3'254 616 12 0 0 790 29 1'888/3'737\n", " 'max_lp': 3'580 254 12 0 0 167 20 2'214/4'153\n", " 'objective_lb_search': 4'586 94 32 0 0 49 181 3'390/7'610\n", " 'probing': 6'418 461 2 0 0 0 231 5'222/9'924\n", " 'pseudo_costs': 3'417 83 21 0 0 17 22 2'051/3'864\n", " 'quick_restart': 5'420 349 21 0 0 234 145 4'224/8'717\n", " 'reduced_costs': 3'394 353 18 0 0 268 19 2'028/3'408\n", "\n", "Lp Cut lb_tree_search objective_lb_search default_lp pseudo_costs quick_restart reduced_costs probing max_lp\n", " CG_FF: 5 35 61 16 27 13 38 15\n", " CG_K: 2 29 52 6 27 6 32 8\n", " CG_KL: 3 9 3 - 6 - 4 5\n", " CG_R: 13 60 64 44 47 33 49 33\n", " CG_RB: 28 86 97 82 43 70 60 52\n", " CG_RBP: 14 67 64 11 36 16 36 35\n", " Clique: 1 - - - - 2 - -\n", " IB: 10 783 917 1'193 592 697 410 729\n", " MIR_1_FF: 172 337 426 42 567 113 792 108\n", " MIR_1_K: 7 99 114 13 104 10 125 18\n", " MIR_1_KL: 3 48 37 2 44 6 57 3\n", " MIR_1_R: 1 14 9 2 4 1 17 4\n", " MIR_1_RB: 13 25 31 12 29 24 32 18\n", " MIR_1_RBP: 47 57 86 1 54 8 118 18\n", " MIR_2_FF: 72 199 225 57 198 62 279 73\n", " MIR_2_K: 37 84 102 7 96 11 118 25\n", " MIR_2_KL: 7 32 38 - 38 2 30 1\n", " MIR_2_R: 6 14 17 8 12 1 23 2\n", " MIR_2_RB: 33 52 68 34 42 26 41 33\n", " MIR_2_RBP: 33 46 66 3 53 14 61 12\n", " MIR_3_FF: 65 115 151 50 148 70 155 68\n", " MIR_3_K: 56 63 101 15 126 48 145 37\n", " MIR_3_KL: 4 9 17 - 18 3 19 1\n", " MIR_3_R: 2 12 23 10 24 4 19 4\n", " MIR_3_RB: 30 30 48 35 52 29 46 35\n", " MIR_3_RBP: 43 40 69 7 61 27 87 21\n", " MIR_4_FF: 64 79 110 38 129 64 131 58\n", " MIR_4_K: 73 63 83 17 103 38 138 39\n", " MIR_4_KL: 2 10 9 2 9 - 8 1\n", " MIR_4_R: 9 16 15 6 24 4 16 13\n", " MIR_4_RB: 35 31 29 26 35 46 29 45\n", " MIR_4_RBP: 47 46 65 7 65 18 108 23\n", " MIR_5_FF: 60 45 66 25 88 41 83 46\n", " MIR_5_K: 97 45 80 12 103 52 113 56\n", " MIR_5_KL: 2 3 7 - 6 2 9 -\n", " MIR_5_R: 6 13 7 2 16 5 12 7\n", " MIR_5_RB: 47 36 19 25 21 30 24 38\n", " MIR_5_RBP: 48 34 58 9 67 31 112 42\n", " MIR_6_FF: 50 40 46 24 75 31 52 49\n", " MIR_6_K: 76 48 64 17 97 33 100 63\n", " MIR_6_KL: 2 3 2 2 8 - 9 3\n", " MIR_6_R: 8 10 5 4 17 7 5 2\n", " MIR_6_RB: 40 30 19 20 29 28 20 37\n", " MIR_6_RBP: 45 38 48 11 57 18 87 45\n", " ZERO_HALF_FF: 4 57 91 20 60 9 57 13\n", " ZERO_HALF_K: - 20 25 - 29 - 22 -\n", " ZERO_HALF_KL: - 7 16 - 10 - 9 1\n", " ZERO_HALF_R: 376 301 464 113 578 245 1'010 241\n", " ZERO_HALF_RB: 71 41 94 16 96 22 179 26\n", " ZERO_HALF_RBP: 19 29 44 5 54 8 96 8\n", "\n", "LNS stats Improv/Calls Closed Difficulty TimeLimit\n", " 'graph_arc_lns': 2/42 45% 2.93e-01 0.10\n", " 'graph_cst_lns': 1/37 51% 8.10e-01 0.10\n", " 'graph_dec_lns': 2/37 49% 7.84e-01 0.10\n", " 'graph_var_lns': 4/41 49% 6.63e-01 0.10\n", " 'lb_relax_lns': 1/9 56% 6.48e-01 0.50\n", " 'rins/rens': 33/40 48% 5.34e-01 0.10\n", " 'rnd_cst_lns': 2/39 56% 8.98e-01 0.10\n", " 'rnd_var_lns': 2/39 49% 7.69e-01 0.10\n", "\n", "LS stats Batches Restarts/Perturbs LinMoves GenMoves CompoundMoves Bactracks WeightUpdates ScoreComputed\n", " 'ls_lin_restart': 3 3 52'509 0 0 0 35'037 1'816'238\n", " 'ls_lin_restart_compound': 4 4 0 86'329 6'723 39'793 504 1'987'588\n", " 'ls_lin_restart_compound_perturb': 5 5 0 110'272 9'829 50'201 2'433 2'643'086\n", " 'ls_lin_restart_decay': 5 4 106'658 0 0 0 3'060 2'217'436\n", " 'ls_lin_restart_decay_compound': 2 2 0 38'453 5'645 16'402 77 956'380\n", " 'ls_lin_restart_decay_compound_perturb': 2 2 0 39'443 5'805 16'816 68 1'017'757\n", " 'ls_lin_restart_decay_perturb': 6 6 127'432 0 0 0 3'724 2'623'907\n", " 'ls_lin_restart_perturb': 7 7 118'887 0 0 0 71'520 4'138'484\n", " 'ls_restart': 4 4 68'775 0 0 0 37'324 2'471'789\n", " 'ls_restart_compound': 4 4 0 88'052 9'047 39'494 13'031 2'120'226\n", " 'ls_restart_compound_perturb': 4 4 0 87'074 7'238 39'911 640 2'054'686\n", " 'ls_restart_decay': 9 9 191'189 0 0 0 5'567 3'946'241\n", " 'ls_restart_decay_compound': 3 3 0 59'682 9'779 24'949 110 1'467'509\n", " 'ls_restart_decay_compound_perturb': 3 3 0 57'401 9'571 23'907 117 1'368'821\n", " 'ls_restart_decay_perturb': 1 1 21'337 0 0 0 626 440'149\n", " 'ls_restart_perturb': 5 5 84'941 0 0 0 24'199 2'900'130\n", "\n", "Solutions (3) Num Rank\n", " 'complete_hint': 2 [0,1]\n", " 'graph_var_lns': 2 [1,2]\n", " 'lb_relax_lns_int': 2 [2,3]\n", "\n", "Objective bounds Num\n", " 'am1_presolve': 1\n", " 'default_lp': 1\n", " 'initial_domain': 1\n", " 'lb_tree_search': 70\n", " 'max_lp': 6\n", " 'pseudo_costs': 3\n", " 'reduced_costs': 4\n", "\n", "Solution repositories Added Queried Synchro\n", " 'alternative_path': 17 76 17\n", " 'best_solutions': 39 301 37\n", " 'fj solution hints': 0 0 0\n", " 'lp solutions': 91 40 76\n", " 'pump': 0 0\n", "\n", "Improving bounds shared Num Sym\n", " 'quick_restart_no_lp': 6 0\n", "\n", "Clauses shared #Exported #Imported #BinaryRead #BinaryTotal\n", " 'core': 288 463 7 7\n", " 'default_lp': 19 619 7 7\n", " 'lb_tree_search': 1 784 7 7\n", " 'max_lp': 25 767 7 7\n", " 'no_lp': 79 693 7 7\n", " 'objective_lb_search': 18 618 7 7\n", " 'probing': 0 0 0 7\n", " 'pseudo_costs': 17 637 7 7\n", " 'quick_restart': 33 758 7 7\n", " 'quick_restart_no_lp': 624 213 7 7\n", " 'reduced_costs': 37 759 7 7\n", "\n", "LRAT_status: NA\n", "[Scaling] scaled_objective_bound: 1680.18 corrected_bound: 1680.18 delta: 4.23091e-07\n", "CpSolverResponse summary:\n", "status: FEASIBLE\n", "objective: 1806.844516916113\n", "best_bound: 1680.176790785937\n", "integers: 0\n", "booleans: 0\n", "conflicts: 0\n", "branches: 0\n", "propagations: 0\n", "integer_propagations: 0\n", "restarts: 0\n", "lp_iterations: 0\n", "walltime: 15.0165\n", "usertime: 15.0165\n", "deterministic_time: 116.09\n", "gap_integral: 563.723\n", "solution_fingerprint: 0x1c5bf311b8641372\n", "\n" ] }, { "data": { "image/svg+xml": [ "3 797 171 €Σλ = 1 898.6 m(+0) [-1]: 6κ = 7, T = 40" ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "router_ring = MILPRouter(\n", " solver_name='ortools.cp_sat',\n", " time_limit=15,\n", " mip_gap=0.01,\n", " model_options=ModelOptions(topology='ringed', feeder_limit='minimum'),\n", " verbose=True,\n", ")\n", "res_ring = wfn.optimize(router=router_ring)\n", "wfn" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }