A Party Scheduling Problem with FICO Xpress#

party1.ipynb Open In Colab Open In Deepnote Open In Kaggle Open In Gradient Open In SageMaker Studio Lab Powered by AMPL

Description: A scheduling problem for visitor-host assignments. Feasibility version (no objective function). Demonstrates high-level modeling in AMPL MP, AMPL Python API, and tuning in FICO Xpress

Tags: AMPLPY, MP, highlights, scheduling, assignment, feasibility problem, tuning, xpress

Notebook author: Gleb Belov <gleb@ampl.com>

Reference:

  1. AMPL Xpress documentation. https://dev.ampl.com/solvers/xpress/index.html.

  2. AMPL MP Library: modeling guide. https://mp.ampl.com/.

# Install dependencies
%pip install -q amplpy pandas
# Google Colab & Kaggle integration
from amplpy import AMPL, ampl_notebook

ampl = ampl_notebook(
    modules=["xpress"],  # modules to install
    license_uuid="default",  # license to use
)  # instantiate AMPL object and register magics

Use %%ampl_eval to evaluate AMPL commands and declarations#

%%ampl_eval

param B > 0, integer;
set BOATS := 1 .. B;
set HOSTS within BOATS;
set VISITORS := BOATS diff HOSTS;

param capacity {BOATS} integer >= 0;
param crew {BOATS} integer > 0;
param guest_cap {i in BOATS} := capacity[i] less crew[i];

param T > 0, integer;
set TIMES := 1..T;

set MEET := {j in VISITORS, jj in VISITORS: j < jj};

       # (j,jj) in MEET if j and jj can meet -- each pair only once

var H {VISITORS,TIMES} integer, >= 1, <= B;  # host (boat) visited by j at t


VisitHosts {j in VISITORS, jj in VISITORS, t in TIMES}:
   H[j,t] != jj;

       # a visitor may not serve as a host: H[j,t] in VISITORS

subj to VisitOnce {j in VISITORS}:
   alldiff {t in TIMES} H[j,t];

       # a crew may visit each host at most once

subj to Cap {i in HOSTS, t in TIMES}: 
   sum {j in VISITORS} (if H[j,t] = i then crew[j]) <= guest_cap[i];

       # boats may not have more visitors than they can handle

subj to MeetDefn {(j,jj) in MEET}:
   atmost 1 {t in TIMES} (H[j,t] = H[jj,t]);

       # two crews may meet at most once

Define instance data in Python#

import pandas as pd

# For each of 26 boats, crew size
crew_size = [
    2,
    2,
    2,
    2,
    4,
    4,
    4,
    1,
    2,
    2,
    2,
    3,
    4,
    2,
    3,
    6,
    2,
    2,
    4,
    2,
    4,
    5,
    4,
    4,
    2,
    2,
]
# Which boats are hosts
hosts = [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 16, 20]
# Boat capacity
capacity = [
    6,
    8,
    12,
    12,
    12,
    12,
    12,
    10,
    10,
    10,
    10,
    10,
    8,
    8,
    8,
    12,
    8,
    8,
    8,
    8,
    8,
    8,
    7,
    7,
    7,
    7,
]
# Time horizon
time_horizon = 6

Load data directly from Python data structures using amplpy#

ampl.param["B"] = len(crew_size)
ampl.set["HOSTS"] = hosts
ampl.param["capacity"] = capacity
ampl.param["crew"] = crew_size
ampl.param["T"] = time_horizon

Solve with FICO Xpress#

We solve the instance with default options.

ampl.option["solver"] = "xpress"
ampl.option["mp_options"] = "outlev=1"

ampl.snapshot(
    "party1_snapshot.run"
)  # Debug feature, saves AMPL state including the model

ampl.solve()
XPRESS 9.8.0 (46.01.01):   tech:outlev = 1

AMPL MP initial flat model has 78 variables (78 integer, 0 binary);
No objectives;
Constraints:  156 linear;
Algebraic expressions:  78 count; 1014 ifthen;
Logical expressions:  2028 conditional (in)equalitie(s); 13 alldiff;

AMPL MP final model has 4777 variables (2197 integer, 2574 binary);
No objectives;
Constraints:  1118 linear;
Logical expressions:  468 indge; 468 indle;


FICO Xpress v9.8.0, Hyper, solve started 17:17:25, Mar 3, 2026
Heap usage: 2180KB (peak 2180KB, 54KB system)
Minimizing MILP  using up to 8 threads and up to 16GB memory, with default controls
Original problem has:
      2054 rows         4777 cols         9672 elements      2574 entities
       936 inds
Presolved problem has:
      1884 rows         2490 cols         8790 elements      2490 entities
LP relaxation tightened
Presolve finished in 0 seconds
Heap usage: 4403KB (peak 6108KB, 54KB system)

Coefficient range                    original                 solved        
  Coefficients   [min,max] : [ 1.00e+00,  2.00e+01] / [ 6.25e-02,  1.25e+00]
  RHS and bounds [min,max] : [ 1.00e+00,  2.00e+01] / [ 1.00e+00,  2.00e+01]
  Objective      [min,max] : [      0.0,       0.0] / [      0.0,       0.0]
Autoscaling applied standard scaling

Symmetric problem: generators: 13, support set: 2490
 Number of orbits: 103, largest orbit: 150
 Row orbits: 92, row support: 1843
Will try to keep branch and bound tree memory usage below 15.1GB
Starting concurrent solve with dual (1 thread) and barrier (7 threads)

              Concurrent-Solve,   0s
            Dual                      Barrier      
    objective   sum inf                            
 P   .0000000   .0000000 |                         
                         |                         
------- optimal -------- | ----- interrupted ------
Concurrent statistics:
           Dual: 1500 simplex iterations, 0.03s
        Barrier: 6 barrier and 554 simplex iterations, 0.03s
            Barrier used 7 threads 7 cores
, crossover used 7 threads
Optimal solution found
 
   Its         Obj Value      S   Ninf  Nneg        Sum Inf  Time
  1500           .000000      P      0     0        .000000     0
Dual solved problem
  1500 simplex iterations in 0.03 seconds at time 0

Final objective                       : 0.000000000000000e+00
  Max primal violation      (abs/rel) : 2.220e-16 / 1.776e-16
  Max dual violation        (abs/rel) :       0.0 /       0.0
  Max complementarity viol. (abs/rel) :       0.0 /       0.0

Starting root cutting & heuristics
Deterministic mode with up to 2 additional threads
 
 Its Type    BestSoln    BestBound   Sols    Add    Del     Gap     GInf   Time
   1  K                    .000000      0    461      0              403      0
   2  K                    .000000      0    534    331              329      0
   3  K                    .000000      0    400    467              345      0
   4  K                    .000000      0    389    395              315      0
   5  K                    .000000      0    387    384              329      0
   6  K                    .000000      0    400    391              335      0
   7  K                    .000000      0    441    405              321      0
   8  K                    .000000      0    304    434              328      0
   9  K                    .000000      0    371    293              347      0
  10  K                    .000000      0    257    370              322      0
  11  K                    .000000      0    262    260              353      0
  12  K                    .000000      0    228    265              342      0
  13  K                    .000000      0    307    235              350      0
  14  K                    .000000      0    205    304              285      0
  15  K                    .000000      0    270    206              353      0
  16  K                    .000000      0    270    271              302      0
  17  K                    .000000      0    169    274              304      0
  18  K                    .000000      0    202    178              287      0
  19  K                    .000000      0    265    201              321      0
  20  K                    .000000      0    171    414              330      0
  21  G                    .000000      0    156     14              321      0
  22  G                    .000000      0     95    267              302      0
b             .000000      .000000      1               0.0e+00        0      0
 *** Search completed ***
Uncrunching matrix
Final MIP objective                   : 0.000000000000000e-01
Final MIP bound                       : 0.000000000000000e-01
  Solution time / primaldual integral :      0.50s/ 99.914552%
  Work / work units per second        :      1.30 /      2.61
  Number of solutions found / nodes   :         1 /         1
  Max primal violation      (abs/rel) :       0.0 /       0.0
  Max integer violation     (abs    ) :       0.0
XPRESS 9.8.0 (46.01.01): optimal solution
5379 simplex iterations
1 branching nodes
Objective = find a feasible point.

Check solution in AMPL#

The below AMPL code checks solution for correctness, in particular tolerance violations. Additional Python code can be used for independent checking.

%%ampl_eval
display solve_result, solve_result_num;

display min {i in 1.._nvars} _var[i].slack;
display min {i in 1.._ncons} _con[i].slack;
display min {i in 1.._nlogcons} _logcon[i].val;

display _varname, _var.slack;
display _conname, _con.slack;
display _logconname, _logcon.val;
solve_result = solved
solve_result_num = 0

min{i in 1 .. _nvars} _var[i].slack = 0

min{i in 1 .. _ncons} _con[i].slack = 0

min{i in 1 .. _nlogcons} _logcon[i].val = 1

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

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

:           _logconname      _logcon.val    :=
1      'VisitHosts[8,8,1]'         1
2      'VisitHosts[8,8,2]'         1
3      'VisitHosts[8,8,3]'         1
4      'VisitHosts[8,8,4]'         1
5      'VisitHosts[8,8,5]'         1
6      'VisitHosts[8,8,6]'         1
7      'VisitHosts[8,13,1]'        1
8      'VisitHosts[8,13,2]'        1
9      'VisitHosts[8,13,3]'        1
10     'VisitHosts[8,13,4]'        1
11     'VisitHosts[8,13,5]'        1
12     'VisitHosts[8,13,6]'        1
13     'VisitHosts[8,14,1]'        1
14     'VisitHosts[8,14,2]'        1
15     'VisitHosts[8,14,3]'        1
16     'VisitHosts[8,14,4]'        1
17     'VisitHosts[8,14,5]'        1
18     'VisitHosts[8,14,6]'        1
19     'VisitHosts[8,15,1]'        1
20     'VisitHosts[8,15,2]'        1
21     'VisitHosts[8,15,3]'        1
22     'VisitHosts[8,15,4]'        1
23     'VisitHosts[8,15,5]'        1
24     'VisitHosts[8,15,6]'        1
25     'VisitHosts[8,17,1]'        1
26     'VisitHosts[8,17,2]'        1
27     'VisitHosts[8,17,3]'        1
28     'VisitHosts[8,17,4]'        1
29     'VisitHosts[8,17,5]'        1
30     'VisitHosts[8,17,6]'        1
31     'VisitHosts[8,18,1]'        1
32     'VisitHosts[8,18,2]'        1
33     'VisitHosts[8,18,3]'        1
34     'VisitHosts[8,18,4]'        1
35     'VisitHosts[8,18,5]'        1
36     'VisitHosts[8,18,6]'        1
37     'VisitHosts[8,19,1]'        1
38     'VisitHosts[8,19,2]'        1
39     'VisitHosts[8,19,3]'        1
40     'VisitHosts[8,19,4]'        1
41     'VisitHosts[8,19,5]'        1
42     'VisitHosts[8,19,6]'        1
43     'VisitHosts[8,21,1]'        1
44     'VisitHosts[8,21,2]'        1
45     'VisitHosts[8,21,3]'        1
46     'VisitHosts[8,21,4]'        1
47     'VisitHosts[8,21,5]'        1
48     'VisitHosts[8,21,6]'        1
49     'VisitHosts[8,22,1]'        1
50     'VisitHosts[8,22,2]'        1
51     'VisitHosts[8,22,3]'        1
52     'VisitHosts[8,22,4]'        1
53     'VisitHosts[8,22,5]'        1
54     'VisitHosts[8,22,6]'        1
55     'VisitHosts[8,23,1]'        1
56     'VisitHosts[8,23,2]'        1
57     'VisitHosts[8,23,3]'        1
58     'VisitHosts[8,23,4]'        1
59     'VisitHosts[8,23,5]'        1
60     'VisitHosts[8,23,6]'        1
61     'VisitHosts[8,24,1]'        1
62     'VisitHosts[8,24,2]'        1
63     'VisitHosts[8,24,3]'        1
64     'VisitHosts[8,24,4]'        1
65     'VisitHosts[8,24,5]'        1
66     'VisitHosts[8,24,6]'        1
67     'VisitHosts[8,25,1]'        1
68     'VisitHosts[8,25,2]'        1
69     'VisitHosts[8,25,3]'        1
70     'VisitHosts[8,25,4]'        1
71     'VisitHosts[8,25,5]'        1
72     'VisitHosts[8,25,6]'        1
73     'VisitHosts[8,26,1]'        1
74     'VisitHosts[8,26,2]'        1
75     'VisitHosts[8,26,3]'        1
76     'VisitHosts[8,26,4]'        1
77     'VisitHosts[8,26,5]'        1
78     'VisitHosts[8,26,6]'        1
79     'VisitHosts[13,8,1]'        1
80     'VisitHosts[13,8,2]'        1
81     'VisitHosts[13,8,3]'        1
82     'VisitHosts[13,8,4]'        1
83     'VisitHosts[13,8,5]'        1
84     'VisitHosts[13,8,6]'        1
85     'VisitHosts[13,13,1]'       1
86     'VisitHosts[13,13,2]'       1
87     'VisitHosts[13,13,3]'       1
88     'VisitHosts[13,13,4]'       1
89     'VisitHosts[13,13,5]'       1
90     'VisitHosts[13,13,6]'       1
91     'VisitHosts[13,14,1]'       1
92     'VisitHosts[13,14,2]'       1
93     'VisitHosts[13,14,3]'       1
94     'VisitHosts[13,14,4]'       1
95     'VisitHosts[13,14,5]'       1
96     'VisitHosts[13,14,6]'       1
97     'VisitHosts[13,15,1]'       1
98     'VisitHosts[13,15,2]'       1
99     'VisitHosts[13,15,3]'       1
100    'VisitHosts[13,15,4]'       1
101    'VisitHosts[13,15,5]'       1
102    'VisitHosts[13,15,6]'       1
103    'VisitHosts[13,17,1]'       1
104    'VisitHosts[13,17,2]'       1
105    'VisitHosts[13,17,3]'       1
106    'VisitHosts[13,17,4]'       1
107    'VisitHosts[13,17,5]'       1
108    'VisitHosts[13,17,6]'       1
109    'VisitHosts[13,18,1]'       1
110    'VisitHosts[13,18,2]'       1
111    'VisitHosts[13,18,3]'       1
112    'VisitHosts[13,18,4]'       1
113    'VisitHosts[13,18,5]'       1
114    'VisitHosts[13,18,6]'       1
115    'VisitHosts[13,19,1]'       1
116    'VisitHosts[13,19,2]'       1
117    'VisitHosts[13,19,3]'       1
118    'VisitHosts[13,19,4]'       1
119    'VisitHosts[13,19,5]'       1
120    'VisitHosts[13,19,6]'       1
121    'VisitHosts[13,21,1]'       1
122    'VisitHosts[13,21,2]'       1
123    'VisitHosts[13,21,3]'       1
124    'VisitHosts[13,21,4]'       1
125    'VisitHosts[13,21,5]'       1
126    'VisitHosts[13,21,6]'       1
127    'VisitHosts[13,22,1]'       1
128    'VisitHosts[13,22,2]'       1
129    'VisitHosts[13,22,3]'       1
130    'VisitHosts[13,22,4]'       1
131    'VisitHosts[13,22,5]'       1
132    'VisitHosts[13,22,6]'       1
133    'VisitHosts[13,23,1]'       1
134    'VisitHosts[13,23,2]'       1
135    'VisitHosts[13,23,3]'       1
136    'VisitHosts[13,23,4]'       1
137    'VisitHosts[13,23,5]'       1
138    'VisitHosts[13,23,6]'       1
139    'VisitHosts[13,24,1]'       1
140    'VisitHosts[13,24,2]'       1
141    'VisitHosts[13,24,3]'       1
142    'VisitHosts[13,24,4]'       1
143    'VisitHosts[13,24,5]'       1
144    'VisitHosts[13,24,6]'       1
145    'VisitHosts[13,25,1]'       1
146    'VisitHosts[13,25,2]'       1
147    'VisitHosts[13,25,3]'       1
148    'VisitHosts[13,25,4]'       1
149    'VisitHosts[13,25,5]'       1
150    'VisitHosts[13,25,6]'       1
151    'VisitHosts[13,26,1]'       1
152    'VisitHosts[13,26,2]'       1
153    'VisitHosts[13,26,3]'       1
154    'VisitHosts[13,26,4]'       1
155    'VisitHosts[13,26,5]'       1
156    'VisitHosts[13,26,6]'       1
157    'VisitHosts[14,8,1]'        1
158    'VisitHosts[14,8,2]'        1
159    'VisitHosts[14,8,3]'        1
160    'VisitHosts[14,8,4]'        1
161    'VisitHosts[14,8,5]'        1
162    'VisitHosts[14,8,6]'        1
163    'VisitHosts[14,13,1]'       1
164    'VisitHosts[14,13,2]'       1
165    'VisitHosts[14,13,3]'       1
166    'VisitHosts[14,13,4]'       1
167    'VisitHosts[14,13,5]'       1
168    'VisitHosts[14,13,6]'       1
169    'VisitHosts[14,14,1]'       1
170    'VisitHosts[14,14,2]'       1
171    'VisitHosts[14,14,3]'       1
172    'VisitHosts[14,14,4]'       1
173    'VisitHosts[14,14,5]'       1
174    'VisitHosts[14,14,6]'       1
175    'VisitHosts[14,15,1]'       1
176    'VisitHosts[14,15,2]'       1
177    'VisitHosts[14,15,3]'       1
178    'VisitHosts[14,15,4]'       1
179    'VisitHosts[14,15,5]'       1
180    'VisitHosts[14,15,6]'       1
181    'VisitHosts[14,17,1]'       1
182    'VisitHosts[14,17,2]'       1
183    'VisitHosts[14,17,3]'       1
184    'VisitHosts[14,17,4]'       1
185    'VisitHosts[14,17,5]'       1
186    'VisitHosts[14,17,6]'       1
187    'VisitHosts[14,18,1]'       1
188    'VisitHosts[14,18,2]'       1
189    'VisitHosts[14,18,3]'       1
190    'VisitHosts[14,18,4]'       1
191    'VisitHosts[14,18,5]'       1
192    'VisitHosts[14,18,6]'       1
193    'VisitHosts[14,19,1]'       1
194    'VisitHosts[14,19,2]'       1
195    'VisitHosts[14,19,3]'       1
196    'VisitHosts[14,19,4]'       1
197    'VisitHosts[14,19,5]'       1
198    'VisitHosts[14,19,6]'       1
199    'VisitHosts[14,21,1]'       1
200    'VisitHosts[14,21,2]'       1
201    'VisitHosts[14,21,3]'       1
202    'VisitHosts[14,21,4]'       1
203    'VisitHosts[14,21,5]'       1
204    'VisitHosts[14,21,6]'       1
205    'VisitHosts[14,22,1]'       1
206    'VisitHosts[14,22,2]'       1
207    'VisitHosts[14,22,3]'       1
208    'VisitHosts[14,22,4]'       1
209    'VisitHosts[14,22,5]'       1
210    'VisitHosts[14,22,6]'       1
211    'VisitHosts[14,23,1]'       1
212    'VisitHosts[14,23,2]'       1
213    'VisitHosts[14,23,3]'       1
214    'VisitHosts[14,23,4]'       1
215    'VisitHosts[14,23,5]'       1
216    'VisitHosts[14,23,6]'       1
217    'VisitHosts[14,24,1]'       1
218    'VisitHosts[14,24,2]'       1
219    'VisitHosts[14,24,3]'       1
220    'VisitHosts[14,24,4]'       1
221    'VisitHosts[14,24,5]'       1
222    'VisitHosts[14,24,6]'       1
223    'VisitHosts[14,25,1]'       1
224    'VisitHosts[14,25,2]'       1
225    'VisitHosts[14,25,3]'       1
226    'VisitHosts[14,25,4]'       1
227    'VisitHosts[14,25,5]'       1
228    'VisitHosts[14,25,6]'       1
229    'VisitHosts[14,26,1]'       1
230    'VisitHosts[14,26,2]'       1
231    'VisitHosts[14,26,3]'       1
232    'VisitHosts[14,26,4]'       1
233    'VisitHosts[14,26,5]'       1
234    'VisitHosts[14,26,6]'       1
235    'VisitHosts[15,8,1]'        1
236    'VisitHosts[15,8,2]'        1
237    'VisitHosts[15,8,3]'        1
238    'VisitHosts[15,8,4]'        1
239    'VisitHosts[15,8,5]'        1
240    'VisitHosts[15,8,6]'        1
241    'VisitHosts[15,13,1]'       1
242    'VisitHosts[15,13,2]'       1
243    'VisitHosts[15,13,3]'       1
244    'VisitHosts[15,13,4]'       1
245    'VisitHosts[15,13,5]'       1
246    'VisitHosts[15,13,6]'       1
247    'VisitHosts[15,14,1]'       1
248    'VisitHosts[15,14,2]'       1
249    'VisitHosts[15,14,3]'       1
250    'VisitHosts[15,14,4]'       1
251    'VisitHosts[15,14,5]'       1
252    'VisitHosts[15,14,6]'       1
253    'VisitHosts[15,15,1]'       1
254    'VisitHosts[15,15,2]'       1
255    'VisitHosts[15,15,3]'       1
256    'VisitHosts[15,15,4]'       1
257    'VisitHosts[15,15,5]'       1
258    'VisitHosts[15,15,6]'       1
259    'VisitHosts[15,17,1]'       1
260    'VisitHosts[15,17,2]'       1
261    'VisitHosts[15,17,3]'       1
262    'VisitHosts[15,17,4]'       1
263    'VisitHosts[15,17,5]'       1
264    'VisitHosts[15,17,6]'       1
265    'VisitHosts[15,18,1]'       1
266    'VisitHosts[15,18,2]'       1
267    'VisitHosts[15,18,3]'       1
268    'VisitHosts[15,18,4]'       1
269    'VisitHosts[15,18,5]'       1
270    'VisitHosts[15,18,6]'       1
271    'VisitHosts[15,19,1]'       1
272    'VisitHosts[15,19,2]'       1
273    'VisitHosts[15,19,3]'       1
274    'VisitHosts[15,19,4]'       1
275    'VisitHosts[15,19,5]'       1
276    'VisitHosts[15,19,6]'       1
277    'VisitHosts[15,21,1]'       1
278    'VisitHosts[15,21,2]'       1
279    'VisitHosts[15,21,3]'       1
280    'VisitHosts[15,21,4]'       1
281    'VisitHosts[15,21,5]'       1
282    'VisitHosts[15,21,6]'       1
283    'VisitHosts[15,22,1]'       1
284    'VisitHosts[15,22,2]'       1
285    'VisitHosts[15,22,3]'       1
286    'VisitHosts[15,22,4]'       1
287    'VisitHosts[15,22,5]'       1
288    'VisitHosts[15,22,6]'       1
289    'VisitHosts[15,23,1]'       1
290    'VisitHosts[15,23,2]'       1
291    'VisitHosts[15,23,3]'       1
292    'VisitHosts[15,23,4]'       1
293    'VisitHosts[15,23,5]'       1
294    'VisitHosts[15,23,6]'       1
295    'VisitHosts[15,24,1]'       1
296    'VisitHosts[15,24,2]'       1
297    'VisitHosts[15,24,3]'       1
298    'VisitHosts[15,24,4]'       1
299    'VisitHosts[15,24,5]'       1
300    'VisitHosts[15,24,6]'       1
301    'VisitHosts[15,25,1]'       1
302    'VisitHosts[15,25,2]'       1
303    'VisitHosts[15,25,3]'       1
304    'VisitHosts[15,25,4]'       1
305    'VisitHosts[15,25,5]'       1
306    'VisitHosts[15,25,6]'       1
307    'VisitHosts[15,26,1]'       1
308    'VisitHosts[15,26,2]'       1
309    'VisitHosts[15,26,3]'       1
310    'VisitHosts[15,26,4]'       1
311    'VisitHosts[15,26,5]'       1
312    'VisitHosts[15,26,6]'       1
313    'VisitHosts[17,8,1]'        1
314    'VisitHosts[17,8,2]'        1
315    'VisitHosts[17,8,3]'        1
316    'VisitHosts[17,8,4]'        1
317    'VisitHosts[17,8,5]'        1
318    'VisitHosts[17,8,6]'        1
319    'VisitHosts[17,13,1]'       1
320    'VisitHosts[17,13,2]'       1
321    'VisitHosts[17,13,3]'       1
322    'VisitHosts[17,13,4]'       1
323    'VisitHosts[17,13,5]'       1
324    'VisitHosts[17,13,6]'       1
325    'VisitHosts[17,14,1]'       1
326    'VisitHosts[17,14,2]'       1
327    'VisitHosts[17,14,3]'       1
328    'VisitHosts[17,14,4]'       1
329    'VisitHosts[17,14,5]'       1
330    'VisitHosts[17,14,6]'       1
331    'VisitHosts[17,15,1]'       1
332    'VisitHosts[17,15,2]'       1
333    'VisitHosts[17,15,3]'       1
334    'VisitHosts[17,15,4]'       1
335    'VisitHosts[17,15,5]'       1
336    'VisitHosts[17,15,6]'       1
337    'VisitHosts[17,17,1]'       1
338    'VisitHosts[17,17,2]'       1
339    'VisitHosts[17,17,3]'       1
340    'VisitHosts[17,17,4]'       1
341    'VisitHosts[17,17,5]'       1
342    'VisitHosts[17,17,6]'       1
343    'VisitHosts[17,18,1]'       1
344    'VisitHosts[17,18,2]'       1
345    'VisitHosts[17,18,3]'       1
346    'VisitHosts[17,18,4]'       1
347    'VisitHosts[17,18,5]'       1
348    'VisitHosts[17,18,6]'       1
349    'VisitHosts[17,19,1]'       1
350    'VisitHosts[17,19,2]'       1
351    'VisitHosts[17,19,3]'       1
352    'VisitHosts[17,19,4]'       1
353    'VisitHosts[17,19,5]'       1
354    'VisitHosts[17,19,6]'       1
355    'VisitHosts[17,21,1]'       1
356    'VisitHosts[17,21,2]'       1
357    'VisitHosts[17,21,3]'       1
358    'VisitHosts[17,21,4]'       1
359    'VisitHosts[17,21,5]'       1
360    'VisitHosts[17,21,6]'       1
361    'VisitHosts[17,22,1]'       1
362    'VisitHosts[17,22,2]'       1
363    'VisitHosts[17,22,3]'       1
364    'VisitHosts[17,22,4]'       1
365    'VisitHosts[17,22,5]'       1
366    'VisitHosts[17,22,6]'       1
367    'VisitHosts[17,23,1]'       1
368    'VisitHosts[17,23,2]'       1
369    'VisitHosts[17,23,3]'       1
370    'VisitHosts[17,23,4]'       1
371    'VisitHosts[17,23,5]'       1
372    'VisitHosts[17,23,6]'       1
373    'VisitHosts[17,24,1]'       1
374    'VisitHosts[17,24,2]'       1
375    'VisitHosts[17,24,3]'       1
376    'VisitHosts[17,24,4]'       1
377    'VisitHosts[17,24,5]'       1
378    'VisitHosts[17,24,6]'       1
379    'VisitHosts[17,25,1]'       1
380    'VisitHosts[17,25,2]'       1
381    'VisitHosts[17,25,3]'       1
382    'VisitHosts[17,25,4]'       1
383    'VisitHosts[17,25,5]'       1
384    'VisitHosts[17,25,6]'       1
385    'VisitHosts[17,26,1]'       1
386    'VisitHosts[17,26,2]'       1
387    'VisitHosts[17,26,3]'       1
388    'VisitHosts[17,26,4]'       1
389    'VisitHosts[17,26,5]'       1
390    'VisitHosts[17,26,6]'       1
391    'VisitHosts[18,8,1]'        1
392    'VisitHosts[18,8,2]'        1
393    'VisitHosts[18,8,3]'        1
394    'VisitHosts[18,8,4]'        1
395    'VisitHosts[18,8,5]'        1
396    'VisitHosts[18,8,6]'        1
397    'VisitHosts[18,13,1]'       1
398    'VisitHosts[18,13,2]'       1
399    'VisitHosts[18,13,3]'       1
400    'VisitHosts[18,13,4]'       1
401    'VisitHosts[18,13,5]'       1
402    'VisitHosts[18,13,6]'       1
403    'VisitHosts[18,14,1]'       1
404    'VisitHosts[18,14,2]'       1
405    'VisitHosts[18,14,3]'       1
406    'VisitHosts[18,14,4]'       1
407    'VisitHosts[18,14,5]'       1
408    'VisitHosts[18,14,6]'       1
409    'VisitHosts[18,15,1]'       1
410    'VisitHosts[18,15,2]'       1
411    'VisitHosts[18,15,3]'       1
412    'VisitHosts[18,15,4]'       1
413    'VisitHosts[18,15,5]'       1
414    'VisitHosts[18,15,6]'       1
415    'VisitHosts[18,17,1]'       1
416    'VisitHosts[18,17,2]'       1
417    'VisitHosts[18,17,3]'       1
418    'VisitHosts[18,17,4]'       1
419    'VisitHosts[18,17,5]'       1
420    'VisitHosts[18,17,6]'       1
421    'VisitHosts[18,18,1]'       1
422    'VisitHosts[18,18,2]'       1
423    'VisitHosts[18,18,3]'       1
424    'VisitHosts[18,18,4]'       1
425    'VisitHosts[18,18,5]'       1
426    'VisitHosts[18,18,6]'       1
427    'VisitHosts[18,19,1]'       1
428    'VisitHosts[18,19,2]'       1
429    'VisitHosts[18,19,3]'       1
430    'VisitHosts[18,19,4]'       1
431    'VisitHosts[18,19,5]'       1
432    'VisitHosts[18,19,6]'       1
433    'VisitHosts[18,21,1]'       1
434    'VisitHosts[18,21,2]'       1
435    'VisitHosts[18,21,3]'       1
436    'VisitHosts[18,21,4]'       1
437    'VisitHosts[18,21,5]'       1
438    'VisitHosts[18,21,6]'       1
439    'VisitHosts[18,22,1]'       1
440    'VisitHosts[18,22,2]'       1
441    'VisitHosts[18,22,3]'       1
442    'VisitHosts[18,22,4]'       1
443    'VisitHosts[18,22,5]'       1
444    'VisitHosts[18,22,6]'       1
445    'VisitHosts[18,23,1]'       1
446    'VisitHosts[18,23,2]'       1
447    'VisitHosts[18,23,3]'       1
448    'VisitHosts[18,23,4]'       1
449    'VisitHosts[18,23,5]'       1
450    'VisitHosts[18,23,6]'       1
451    'VisitHosts[18,24,1]'       1
452    'VisitHosts[18,24,2]'       1
453    'VisitHosts[18,24,3]'       1
454    'VisitHosts[18,24,4]'       1
455    'VisitHosts[18,24,5]'       1
456    'VisitHosts[18,24,6]'       1
457    'VisitHosts[18,25,1]'       1
458    'VisitHosts[18,25,2]'       1
459    'VisitHosts[18,25,3]'       1
460    'VisitHosts[18,25,4]'       1
461    'VisitHosts[18,25,5]'       1
462    'VisitHosts[18,25,6]'       1
463    'VisitHosts[18,26,1]'       1
464    'VisitHosts[18,26,2]'       1
465    'VisitHosts[18,26,3]'       1
466    'VisitHosts[18,26,4]'       1
467    'VisitHosts[18,26,5]'       1
468    'VisitHosts[18,26,6]'       1
469    'VisitHosts[19,8,1]'        1
470    'VisitHosts[19,8,2]'        1
471    'VisitHosts[19,8,3]'        1
472    'VisitHosts[19,8,4]'        1
473    'VisitHosts[19,8,5]'        1
474    'VisitHosts[19,8,6]'        1
475    'VisitHosts[19,13,1]'       1
476    'VisitHosts[19,13,2]'       1
477    'VisitHosts[19,13,3]'       1
478    'VisitHosts[19,13,4]'       1
479    'VisitHosts[19,13,5]'       1
480    'VisitHosts[19,13,6]'       1
481    'VisitHosts[19,14,1]'       1
482    'VisitHosts[19,14,2]'       1
483    'VisitHosts[19,14,3]'       1
484    'VisitHosts[19,14,4]'       1
485    'VisitHosts[19,14,5]'       1
486    'VisitHosts[19,14,6]'       1
487    'VisitHosts[19,15,1]'       1
488    'VisitHosts[19,15,2]'       1
489    'VisitHosts[19,15,3]'       1
490    'VisitHosts[19,15,4]'       1
491    'VisitHosts[19,15,5]'       1
492    'VisitHosts[19,15,6]'       1
493    'VisitHosts[19,17,1]'       1
494    'VisitHosts[19,17,2]'       1
495    'VisitHosts[19,17,3]'       1
496    'VisitHosts[19,17,4]'       1
497    'VisitHosts[19,17,5]'       1
498    'VisitHosts[19,17,6]'       1
499    'VisitHosts[19,18,1]'       1
500    'VisitHosts[19,18,2]'       1
501    'VisitHosts[19,18,3]'       1
502    'VisitHosts[19,18,4]'       1
503    'VisitHosts[19,18,5]'       1
504    'VisitHosts[19,18,6]'       1
505    'VisitHosts[19,19,1]'       1
506    'VisitHosts[19,19,2]'       1
507    'VisitHosts[19,19,3]'       1
508    'VisitHosts[19,19,4]'       1
509    'VisitHosts[19,19,5]'       1
510    'VisitHosts[19,19,6]'       1
511    'VisitHosts[19,21,1]'       1
512    'VisitHosts[19,21,2]'       1
513    'VisitHosts[19,21,3]'       1
514    'VisitHosts[19,21,4]'       1
515    'VisitHosts[19,21,5]'       1
516    'VisitHosts[19,21,6]'       1
517    'VisitHosts[19,22,1]'       1
518    'VisitHosts[19,22,2]'       1
519    'VisitHosts[19,22,3]'       1
520    'VisitHosts[19,22,4]'       1
521    'VisitHosts[19,22,5]'       1
522    'VisitHosts[19,22,6]'       1
523    'VisitHosts[19,23,1]'       1
524    'VisitHosts[19,23,2]'       1
525    'VisitHosts[19,23,3]'       1
526    'VisitHosts[19,23,4]'       1
527    'VisitHosts[19,23,5]'       1
528    'VisitHosts[19,23,6]'       1
529    'VisitHosts[19,24,1]'       1
530    'VisitHosts[19,24,2]'       1
531    'VisitHosts[19,24,3]'       1
532    'VisitHosts[19,24,4]'       1
533    'VisitHosts[19,24,5]'       1
534    'VisitHosts[19,24,6]'       1
535    'VisitHosts[19,25,1]'       1
536    'VisitHosts[19,25,2]'       1
537    'VisitHosts[19,25,3]'       1
538    'VisitHosts[19,25,4]'       1
539    'VisitHosts[19,25,5]'       1
540    'VisitHosts[19,25,6]'       1
541    'VisitHosts[19,26,1]'       1
542    'VisitHosts[19,26,2]'       1
543    'VisitHosts[19,26,3]'       1
544    'VisitHosts[19,26,4]'       1
545    'VisitHosts[19,26,5]'       1
546    'VisitHosts[19,26,6]'       1
547    'VisitHosts[21,8,1]'        1
548    'VisitHosts[21,8,2]'        1
549    'VisitHosts[21,8,3]'        1
550    'VisitHosts[21,8,4]'        1
551    'VisitHosts[21,8,5]'        1
552    'VisitHosts[21,8,6]'        1
553    'VisitHosts[21,13,1]'       1
554    'VisitHosts[21,13,2]'       1
555    'VisitHosts[21,13,3]'       1
556    'VisitHosts[21,13,4]'       1
557    'VisitHosts[21,13,5]'       1
558    'VisitHosts[21,13,6]'       1
559    'VisitHosts[21,14,1]'       1
560    'VisitHosts[21,14,2]'       1
561    'VisitHosts[21,14,3]'       1
562    'VisitHosts[21,14,4]'       1
563    'VisitHosts[21,14,5]'       1
564    'VisitHosts[21,14,6]'       1
565    'VisitHosts[21,15,1]'       1
566    'VisitHosts[21,15,2]'       1
567    'VisitHosts[21,15,3]'       1
568    'VisitHosts[21,15,4]'       1
569    'VisitHosts[21,15,5]'       1
570    'VisitHosts[21,15,6]'       1
571    'VisitHosts[21,17,1]'       1
572    'VisitHosts[21,17,2]'       1
573    'VisitHosts[21,17,3]'       1
574    'VisitHosts[21,17,4]'       1
575    'VisitHosts[21,17,5]'       1
576    'VisitHosts[21,17,6]'       1
577    'VisitHosts[21,18,1]'       1
578    'VisitHosts[21,18,2]'       1
579    'VisitHosts[21,18,3]'       1
580    'VisitHosts[21,18,4]'       1
581    'VisitHosts[21,18,5]'       1
582    'VisitHosts[21,18,6]'       1
583    'VisitHosts[21,19,1]'       1
584    'VisitHosts[21,19,2]'       1
585    'VisitHosts[21,19,3]'       1
586    'VisitHosts[21,19,4]'       1
587    'VisitHosts[21,19,5]'       1
588    'VisitHosts[21,19,6]'       1
589    'VisitHosts[21,21,1]'       1
590    'VisitHosts[21,21,2]'       1
591    'VisitHosts[21,21,3]'       1
592    'VisitHosts[21,21,4]'       1
593    'VisitHosts[21,21,5]'       1
594    'VisitHosts[21,21,6]'       1
595    'VisitHosts[21,22,1]'       1
596    'VisitHosts[21,22,2]'       1
597    'VisitHosts[21,22,3]'       1
598    'VisitHosts[21,22,4]'       1
599    'VisitHosts[21,22,5]'       1
600    'VisitHosts[21,22,6]'       1
601    'VisitHosts[21,23,1]'       1
602    'VisitHosts[21,23,2]'       1
603    'VisitHosts[21,23,3]'       1
604    'VisitHosts[21,23,4]'       1
605    'VisitHosts[21,23,5]'       1
606    'VisitHosts[21,23,6]'       1
607    'VisitHosts[21,24,1]'       1
608    'VisitHosts[21,24,2]'       1
609    'VisitHosts[21,24,3]'       1
610    'VisitHosts[21,24,4]'       1
611    'VisitHosts[21,24,5]'       1
612    'VisitHosts[21,24,6]'       1
613    'VisitHosts[21,25,1]'       1
614    'VisitHosts[21,25,2]'       1
615    'VisitHosts[21,25,3]'       1
616    'VisitHosts[21,25,4]'       1
617    'VisitHosts[21,25,5]'       1
618    'VisitHosts[21,25,6]'       1
619    'VisitHosts[21,26,1]'       1
620    'VisitHosts[21,26,2]'       1
621    'VisitHosts[21,26,3]'       1
622    'VisitHosts[21,26,4]'       1
623    'VisitHosts[21,26,5]'       1
624    'VisitHosts[21,26,6]'       1
625    'VisitHosts[22,8,1]'        1
626    'VisitHosts[22,8,2]'        1
627    'VisitHosts[22,8,3]'        1
628    'VisitHosts[22,8,4]'        1
629    'VisitHosts[22,8,5]'        1
630    'VisitHosts[22,8,6]'        1
631    'VisitHosts[22,13,1]'       1
632    'VisitHosts[22,13,2]'       1
633    'VisitHosts[22,13,3]'       1
634    'VisitHosts[22,13,4]'       1
635    'VisitHosts[22,13,5]'       1
636    'VisitHosts[22,13,6]'       1
637    'VisitHosts[22,14,1]'       1
638    'VisitHosts[22,14,2]'       1
639    'VisitHosts[22,14,3]'       1
640    'VisitHosts[22,14,4]'       1
641    'VisitHosts[22,14,5]'       1
642    'VisitHosts[22,14,6]'       1
643    'VisitHosts[22,15,1]'       1
644    'VisitHosts[22,15,2]'       1
645    'VisitHosts[22,15,3]'       1
646    'VisitHosts[22,15,4]'       1
647    'VisitHosts[22,15,5]'       1
648    'VisitHosts[22,15,6]'       1
649    'VisitHosts[22,17,1]'       1
650    'VisitHosts[22,17,2]'       1
651    'VisitHosts[22,17,3]'       1
652    'VisitHosts[22,17,4]'       1
653    'VisitHosts[22,17,5]'       1
654    'VisitHosts[22,17,6]'       1
655    'VisitHosts[22,18,1]'       1
656    'VisitHosts[22,18,2]'       1
657    'VisitHosts[22,18,3]'       1
658    'VisitHosts[22,18,4]'       1
659    'VisitHosts[22,18,5]'       1
660    'VisitHosts[22,18,6]'       1
661    'VisitHosts[22,19,1]'       1
662    'VisitHosts[22,19,2]'       1
663    'VisitHosts[22,19,3]'       1
664    'VisitHosts[22,19,4]'       1
665    'VisitHosts[22,19,5]'       1
666    'VisitHosts[22,19,6]'       1
667    'VisitHosts[22,21,1]'       1
668    'VisitHosts[22,21,2]'       1
669    'VisitHosts[22,21,3]'       1
670    'VisitHosts[22,21,4]'       1
671    'VisitHosts[22,21,5]'       1
672    'VisitHosts[22,21,6]'       1
673    'VisitHosts[22,22,1]'       1
674    'VisitHosts[22,22,2]'       1
675    'VisitHosts[22,22,3]'       1
676    'VisitHosts[22,22,4]'       1
677    'VisitHosts[22,22,5]'       1
678    'VisitHosts[22,22,6]'       1
679    'VisitHosts[22,23,1]'       1
680    'VisitHosts[22,23,2]'       1
681    'VisitHosts[22,23,3]'       1
682    'VisitHosts[22,23,4]'       1
683    'VisitHosts[22,23,5]'       1
684    'VisitHosts[22,23,6]'       1
685    'VisitHosts[22,24,1]'       1
686    'VisitHosts[22,24,2]'       1
687    'VisitHosts[22,24,3]'       1
688    'VisitHosts[22,24,4]'       1
689    'VisitHosts[22,24,5]'       1
690    'VisitHosts[22,24,6]'       1
691    'VisitHosts[22,25,1]'       1
692    'VisitHosts[22,25,2]'       1
693    'VisitHosts[22,25,3]'       1
694    'VisitHosts[22,25,4]'       1
695    'VisitHosts[22,25,5]'       1
696    'VisitHosts[22,25,6]'       1
697    'VisitHosts[22,26,1]'       1
698    'VisitHosts[22,26,2]'       1
699    'VisitHosts[22,26,3]'       1
700    'VisitHosts[22,26,4]'       1
701    'VisitHosts[22,26,5]'       1
702    'VisitHosts[22,26,6]'       1
703    'VisitHosts[23,8,1]'        1
704    'VisitHosts[23,8,2]'        1
705    'VisitHosts[23,8,3]'        1
706    'VisitHosts[23,8,4]'        1
707    'VisitHosts[23,8,5]'        1
708    'VisitHosts[23,8,6]'        1
709    'VisitHosts[23,13,1]'       1
710    'VisitHosts[23,13,2]'       1
711    'VisitHosts[23,13,3]'       1
712    'VisitHosts[23,13,4]'       1
713    'VisitHosts[23,13,5]'       1
714    'VisitHosts[23,13,6]'       1
715    'VisitHosts[23,14,1]'       1
716    'VisitHosts[23,14,2]'       1
717    'VisitHosts[23,14,3]'       1
718    'VisitHosts[23,14,4]'       1
719    'VisitHosts[23,14,5]'       1
720    'VisitHosts[23,14,6]'       1
721    'VisitHosts[23,15,1]'       1
722    'VisitHosts[23,15,2]'       1
723    'VisitHosts[23,15,3]'       1
724    'VisitHosts[23,15,4]'       1
725    'VisitHosts[23,15,5]'       1
726    'VisitHosts[23,15,6]'       1
727    'VisitHosts[23,17,1]'       1
728    'VisitHosts[23,17,2]'       1
729    'VisitHosts[23,17,3]'       1
730    'VisitHosts[23,17,4]'       1
731    'VisitHosts[23,17,5]'       1
732    'VisitHosts[23,17,6]'       1
733    'VisitHosts[23,18,1]'       1
734    'VisitHosts[23,18,2]'       1
735    'VisitHosts[23,18,3]'       1
736    'VisitHosts[23,18,4]'       1
737    'VisitHosts[23,18,5]'       1
738    'VisitHosts[23,18,6]'       1
739    'VisitHosts[23,19,1]'       1
740    'VisitHosts[23,19,2]'       1
741    'VisitHosts[23,19,3]'       1
742    'VisitHosts[23,19,4]'       1
743    'VisitHosts[23,19,5]'       1
744    'VisitHosts[23,19,6]'       1
745    'VisitHosts[23,21,1]'       1
746    'VisitHosts[23,21,2]'       1
747    'VisitHosts[23,21,3]'       1
748    'VisitHosts[23,21,4]'       1
749    'VisitHosts[23,21,5]'       1
750    'VisitHosts[23,21,6]'       1
751    'VisitHosts[23,22,1]'       1
752    'VisitHosts[23,22,2]'       1
753    'VisitHosts[23,22,3]'       1
754    'VisitHosts[23,22,4]'       1
755    'VisitHosts[23,22,5]'       1
756    'VisitHosts[23,22,6]'       1
757    'VisitHosts[23,23,1]'       1
758    'VisitHosts[23,23,2]'       1
759    'VisitHosts[23,23,3]'       1
760    'VisitHosts[23,23,4]'       1
761    'VisitHosts[23,23,5]'       1
762    'VisitHosts[23,23,6]'       1
763    'VisitHosts[23,24,1]'       1
764    'VisitHosts[23,24,2]'       1
765    'VisitHosts[23,24,3]'       1
766    'VisitHosts[23,24,4]'       1
767    'VisitHosts[23,24,5]'       1
768    'VisitHosts[23,24,6]'       1
769    'VisitHosts[23,25,1]'       1
770    'VisitHosts[23,25,2]'       1
771    'VisitHosts[23,25,3]'       1
772    'VisitHosts[23,25,4]'       1
773    'VisitHosts[23,25,5]'       1
774    'VisitHosts[23,25,6]'       1
775    'VisitHosts[23,26,1]'       1
776    'VisitHosts[23,26,2]'       1
777    'VisitHosts[23,26,3]'       1
778    'VisitHosts[23,26,4]'       1
779    'VisitHosts[23,26,5]'       1
780    'VisitHosts[23,26,6]'       1
781    'VisitHosts[24,8,1]'        1
782    'VisitHosts[24,8,2]'        1
783    'VisitHosts[24,8,3]'        1
784    'VisitHosts[24,8,4]'        1
785    'VisitHosts[24,8,5]'        1
786    'VisitHosts[24,8,6]'        1
787    'VisitHosts[24,13,1]'       1
788    'VisitHosts[24,13,2]'       1
789    'VisitHosts[24,13,3]'       1
790    'VisitHosts[24,13,4]'       1
791    'VisitHosts[24,13,5]'       1
792    'VisitHosts[24,13,6]'       1
793    'VisitHosts[24,14,1]'       1
794    'VisitHosts[24,14,2]'       1
795    'VisitHosts[24,14,3]'       1
796    'VisitHosts[24,14,4]'       1
797    'VisitHosts[24,14,5]'       1
798    'VisitHosts[24,14,6]'       1
799    'VisitHosts[24,15,1]'       1
800    'VisitHosts[24,15,2]'       1
801    'VisitHosts[24,15,3]'       1
802    'VisitHosts[24,15,4]'       1
803    'VisitHosts[24,15,5]'       1
804    'VisitHosts[24,15,6]'       1
805    'VisitHosts[24,17,1]'       1
806    'VisitHosts[24,17,2]'       1
807    'VisitHosts[24,17,3]'       1
808    'VisitHosts[24,17,4]'       1
809    'VisitHosts[24,17,5]'       1
810    'VisitHosts[24,17,6]'       1
811    'VisitHosts[24,18,1]'       1
812    'VisitHosts[24,18,2]'       1
813    'VisitHosts[24,18,3]'       1
814    'VisitHosts[24,18,4]'       1
815    'VisitHosts[24,18,5]'       1
816    'VisitHosts[24,18,6]'       1
817    'VisitHosts[24,19,1]'       1
818    'VisitHosts[24,19,2]'       1
819    'VisitHosts[24,19,3]'       1
820    'VisitHosts[24,19,4]'       1
821    'VisitHosts[24,19,5]'       1
822    'VisitHosts[24,19,6]'       1
823    'VisitHosts[24,21,1]'       1
824    'VisitHosts[24,21,2]'       1
825    'VisitHosts[24,21,3]'       1
826    'VisitHosts[24,21,4]'       1
827    'VisitHosts[24,21,5]'       1
828    'VisitHosts[24,21,6]'       1
829    'VisitHosts[24,22,1]'       1
830    'VisitHosts[24,22,2]'       1
831    'VisitHosts[24,22,3]'       1
832    'VisitHosts[24,22,4]'       1
833    'VisitHosts[24,22,5]'       1
834    'VisitHosts[24,22,6]'       1
835    'VisitHosts[24,23,1]'       1
836    'VisitHosts[24,23,2]'       1
837    'VisitHosts[24,23,3]'       1
838    'VisitHosts[24,23,4]'       1
839    'VisitHosts[24,23,5]'       1
840    'VisitHosts[24,23,6]'       1
841    'VisitHosts[24,24,1]'       1
842    'VisitHosts[24,24,2]'       1
843    'VisitHosts[24,24,3]'       1
844    'VisitHosts[24,24,4]'       1
845    'VisitHosts[24,24,5]'       1
846    'VisitHosts[24,24,6]'       1
847    'VisitHosts[24,25,1]'       1
848    'VisitHosts[24,25,2]'       1
849    'VisitHosts[24,25,3]'       1
850    'VisitHosts[24,25,4]'       1
851    'VisitHosts[24,25,5]'       1
852    'VisitHosts[24,25,6]'       1
853    'VisitHosts[24,26,1]'       1
854    'VisitHosts[24,26,2]'       1
855    'VisitHosts[24,26,3]'       1
856    'VisitHosts[24,26,4]'       1
857    'VisitHosts[24,26,5]'       1
858    'VisitHosts[24,26,6]'       1
859    'VisitHosts[25,8,1]'        1
860    'VisitHosts[25,8,2]'        1
861    'VisitHosts[25,8,3]'        1
862    'VisitHosts[25,8,4]'        1
863    'VisitHosts[25,8,5]'        1
864    'VisitHosts[25,8,6]'        1
865    'VisitHosts[25,13,1]'       1
866    'VisitHosts[25,13,2]'       1
867    'VisitHosts[25,13,3]'       1
868    'VisitHosts[25,13,4]'       1
869    'VisitHosts[25,13,5]'       1
870    'VisitHosts[25,13,6]'       1
871    'VisitHosts[25,14,1]'       1
872    'VisitHosts[25,14,2]'       1
873    'VisitHosts[25,14,3]'       1
874    'VisitHosts[25,14,4]'       1
875    'VisitHosts[25,14,5]'       1
876    'VisitHosts[25,14,6]'       1
877    'VisitHosts[25,15,1]'       1
878    'VisitHosts[25,15,2]'       1
879    'VisitHosts[25,15,3]'       1
880    'VisitHosts[25,15,4]'       1
881    'VisitHosts[25,15,5]'       1
882    'VisitHosts[25,15,6]'       1
883    'VisitHosts[25,17,1]'       1
884    'VisitHosts[25,17,2]'       1
885    'VisitHosts[25,17,3]'       1
886    'VisitHosts[25,17,4]'       1
887    'VisitHosts[25,17,5]'       1
888    'VisitHosts[25,17,6]'       1
889    'VisitHosts[25,18,1]'       1
890    'VisitHosts[25,18,2]'       1
891    'VisitHosts[25,18,3]'       1
892    'VisitHosts[25,18,4]'       1
893    'VisitHosts[25,18,5]'       1
894    'VisitHosts[25,18,6]'       1
895    'VisitHosts[25,19,1]'       1
896    'VisitHosts[25,19,2]'       1
897    'VisitHosts[25,19,3]'       1
898    'VisitHosts[25,19,4]'       1
899    'VisitHosts[25,19,5]'       1
900    'VisitHosts[25,19,6]'       1
901    'VisitHosts[25,21,1]'       1
902    'VisitHosts[25,21,2]'       1
903    'VisitHosts[25,21,3]'       1
904    'VisitHosts[25,21,4]'       1
905    'VisitHosts[25,21,5]'       1
906    'VisitHosts[25,21,6]'       1
907    'VisitHosts[25,22,1]'       1
908    'VisitHosts[25,22,2]'       1
909    'VisitHosts[25,22,3]'       1
910    'VisitHosts[25,22,4]'       1
911    'VisitHosts[25,22,5]'       1
912    'VisitHosts[25,22,6]'       1
913    'VisitHosts[25,23,1]'       1
914    'VisitHosts[25,23,2]'       1
915    'VisitHosts[25,23,3]'       1
916    'VisitHosts[25,23,4]'       1
917    'VisitHosts[25,23,5]'       1
918    'VisitHosts[25,23,6]'       1
919    'VisitHosts[25,24,1]'       1
920    'VisitHosts[25,24,2]'       1
921    'VisitHosts[25,24,3]'       1
922    'VisitHosts[25,24,4]'       1
923    'VisitHosts[25,24,5]'       1
924    'VisitHosts[25,24,6]'       1
925    'VisitHosts[25,25,1]'       1
926    'VisitHosts[25,25,2]'       1
927    'VisitHosts[25,25,3]'       1
928    'VisitHosts[25,25,4]'       1
929    'VisitHosts[25,25,5]'       1
930    'VisitHosts[25,25,6]'       1
931    'VisitHosts[25,26,1]'       1
932    'VisitHosts[25,26,2]'       1
933    'VisitHosts[25,26,3]'       1
934    'VisitHosts[25,26,4]'       1
935    'VisitHosts[25,26,5]'       1
936    'VisitHosts[25,26,6]'       1
937    'VisitHosts[26,8,1]'        1
938    'VisitHosts[26,8,2]'        1
939    'VisitHosts[26,8,3]'        1
940    'VisitHosts[26,8,4]'        1
941    'VisitHosts[26,8,5]'        1
942    'VisitHosts[26,8,6]'        1
943    'VisitHosts[26,13,1]'       1
944    'VisitHosts[26,13,2]'       1
945    'VisitHosts[26,13,3]'       1
946    'VisitHosts[26,13,4]'       1
947    'VisitHosts[26,13,5]'       1
948    'VisitHosts[26,13,6]'       1
949    'VisitHosts[26,14,1]'       1
950    'VisitHosts[26,14,2]'       1
951    'VisitHosts[26,14,3]'       1
952    'VisitHosts[26,14,4]'       1
953    'VisitHosts[26,14,5]'       1
954    'VisitHosts[26,14,6]'       1
955    'VisitHosts[26,15,1]'       1
956    'VisitHosts[26,15,2]'       1
957    'VisitHosts[26,15,3]'       1
958    'VisitHosts[26,15,4]'       1
959    'VisitHosts[26,15,5]'       1
960    'VisitHosts[26,15,6]'       1
961    'VisitHosts[26,17,1]'       1
962    'VisitHosts[26,17,2]'       1
963    'VisitHosts[26,17,3]'       1
964    'VisitHosts[26,17,4]'       1
965    'VisitHosts[26,17,5]'       1
966    'VisitHosts[26,17,6]'       1
967    'VisitHosts[26,18,1]'       1
968    'VisitHosts[26,18,2]'       1
969    'VisitHosts[26,18,3]'       1
970    'VisitHosts[26,18,4]'       1
971    'VisitHosts[26,18,5]'       1
972    'VisitHosts[26,18,6]'       1
973    'VisitHosts[26,19,1]'       1
974    'VisitHosts[26,19,2]'       1
975    'VisitHosts[26,19,3]'       1
976    'VisitHosts[26,19,4]'       1
977    'VisitHosts[26,19,5]'       1
978    'VisitHosts[26,19,6]'       1
979    'VisitHosts[26,21,1]'       1
980    'VisitHosts[26,21,2]'       1
981    'VisitHosts[26,21,3]'       1
982    'VisitHosts[26,21,4]'       1
983    'VisitHosts[26,21,5]'       1
984    'VisitHosts[26,21,6]'       1
985    'VisitHosts[26,22,1]'       1
986    'VisitHosts[26,22,2]'       1
987    'VisitHosts[26,22,3]'       1
988    'VisitHosts[26,22,4]'       1
989    'VisitHosts[26,22,5]'       1
990    'VisitHosts[26,22,6]'       1
991    'VisitHosts[26,23,1]'       1
992    'VisitHosts[26,23,2]'       1
993    'VisitHosts[26,23,3]'       1
994    'VisitHosts[26,23,4]'       1
995    'VisitHosts[26,23,5]'       1
996    'VisitHosts[26,23,6]'       1
997    'VisitHosts[26,24,1]'       1
998    'VisitHosts[26,24,2]'       1
999    'VisitHosts[26,24,3]'       1
1000   'VisitHosts[26,24,4]'       1
1001   'VisitHosts[26,24,5]'       1
1002   'VisitHosts[26,24,6]'       1
1003   'VisitHosts[26,25,1]'       1
1004   'VisitHosts[26,25,2]'       1
1005   'VisitHosts[26,25,3]'       1
1006   'VisitHosts[26,25,4]'       1
1007   'VisitHosts[26,25,5]'       1
1008   'VisitHosts[26,25,6]'       1
1009   'VisitHosts[26,26,1]'       1
1010   'VisitHosts[26,26,2]'       1
1011   'VisitHosts[26,26,3]'       1
1012   'VisitHosts[26,26,4]'       1
1013   'VisitHosts[26,26,5]'       1
1014   'VisitHosts[26,26,6]'       1
1015   'VisitOnce[8]'              1
1016   'VisitOnce[13]'             1
1017   'VisitOnce[14]'             1
1018   'VisitOnce[15]'             1
1019   'VisitOnce[17]'             1
1020   'VisitOnce[18]'             1
1021   'VisitOnce[19]'             1
1022   'VisitOnce[21]'             1
1023   'VisitOnce[22]'             1
1024   'VisitOnce[23]'             1
1025   'VisitOnce[24]'             1
1026   'VisitOnce[25]'             1
1027   'VisitOnce[26]'             1
1028   'MeetDefn[8,13]'            1
1029   'MeetDefn[8,14]'            1
1030   'MeetDefn[8,15]'            1
1031   'MeetDefn[8,17]'            1
1032   'MeetDefn[8,18]'            1
1033   'MeetDefn[8,19]'            1
1034   'MeetDefn[8,21]'            1
1035   'MeetDefn[8,22]'            1
1036   'MeetDefn[8,23]'            1
1037   'MeetDefn[8,24]'            1
1038   'MeetDefn[8,25]'            1
1039   'MeetDefn[8,26]'            1
1040   'MeetDefn[13,14]'           1
1041   'MeetDefn[13,15]'           1
1042   'MeetDefn[13,17]'           1
1043   'MeetDefn[13,18]'           1
1044   'MeetDefn[13,19]'           1
1045   'MeetDefn[13,21]'           1
1046   'MeetDefn[13,22]'           1
1047   'MeetDefn[13,23]'           1
1048   'MeetDefn[13,24]'           1
1049   'MeetDefn[13,25]'           1
1050   'MeetDefn[13,26]'           1
1051   'MeetDefn[14,15]'           1
1052   'MeetDefn[14,17]'           1
1053   'MeetDefn[14,18]'           1
1054   'MeetDefn[14,19]'           1
1055   'MeetDefn[14,21]'           1
1056   'MeetDefn[14,22]'           1
1057   'MeetDefn[14,23]'           1
1058   'MeetDefn[14,24]'           1
1059   'MeetDefn[14,25]'           1
1060   'MeetDefn[14,26]'           1
1061   'MeetDefn[15,17]'           1
1062   'MeetDefn[15,18]'           1
1063   'MeetDefn[15,19]'           1
1064   'MeetDefn[15,21]'           1
1065   'MeetDefn[15,22]'           1
1066   'MeetDefn[15,23]'           1
1067   'MeetDefn[15,24]'           1
1068   'MeetDefn[15,25]'           1
1069   'MeetDefn[15,26]'           1
1070   'MeetDefn[17,18]'           1
1071   'MeetDefn[17,19]'           1
1072   'MeetDefn[17,21]'           1
1073   'MeetDefn[17,22]'           1
1074   'MeetDefn[17,23]'           1
1075   'MeetDefn[17,24]'           1
1076   'MeetDefn[17,25]'           1
1077   'MeetDefn[17,26]'           1
1078   'MeetDefn[18,19]'           1
1079   'MeetDefn[18,21]'           1
1080   'MeetDefn[18,22]'           1
1081   'MeetDefn[18,23]'           1
1082   'MeetDefn[18,24]'           1
1083   'MeetDefn[18,25]'           1
1084   'MeetDefn[18,26]'           1
1085   'MeetDefn[19,21]'           1
1086   'MeetDefn[19,22]'           1
1087   'MeetDefn[19,23]'           1
1088   'MeetDefn[19,24]'           1
1089   'MeetDefn[19,25]'           1
1090   'MeetDefn[19,26]'           1
1091   'MeetDefn[21,22]'           1
1092   'MeetDefn[21,23]'           1
1093   'MeetDefn[21,24]'           1
1094   'MeetDefn[21,25]'           1
1095   'MeetDefn[21,26]'           1
1096   'MeetDefn[22,23]'           1
1097   'MeetDefn[22,24]'           1
1098   'MeetDefn[22,25]'           1
1099   'MeetDefn[22,26]'           1
1100   'MeetDefn[23,24]'           1
1101   'MeetDefn[23,25]'           1
1102   'MeetDefn[23,26]'           1
1103   'MeetDefn[24,25]'           1
1104   'MeetDefn[24,26]'           1
1105   'MeetDefn[25,26]'           1
;

Retrieve solution as a Pandas dataframe#

ampl.var["H"].to_pandas().unstack().transpose()
index0 8 13 14 15 17 18 19 21 22 23 24 25 26
index1
H.val 1 12 5 4 6 7 2 2 20 4 1 9 5 6
2 7 16 12 20 2 3 10 11 6 4 12 4 1
3 20 20 5 16 16 12 3 12 10 9 11 7 4
4 11 3 9 4 12 20 1 3 2 6 4 9 11
5 4 6 2 11 10 10 7 9 3 11 10 3 9
6 16 1 10 3 4 16 12 7 9 5 6 20 2

Automatic tuning of solver parameters#

Let us apply tuner and compare runtimes before and after.

ampl.option["reset_initial_guesses"] = (
    1  # Don't send the known solution as the initial guess.
)
# By default, AMPL send previous solution
# to facilitate iterative solving approaches

ampl.option["mp_options"] = (
    "outlev=1 "
    + "tech:xprs_tunermode=1 "
    + "tech:xprs_tunermethod=1 "
    + "tech:xprs_tunerthreads=3 "
    + "tech:threads=3 "
    + "tech:xprs_tunermaxtime=180"
    + "tech:xprs_tunerhistory=0"
)

ampl.solve()
XPRESS 9.8.0 (46.01.01):   tech:outlev = 1
  tech:xprs_tunermode = 1
  tech:tunermethod = 1
  tech:tunerthreads = 3
  tech:threads = 3
  tech:tunetimelim = 180
  tech:tunerhistory = 0

AMPL MP initial flat model has 78 variables (78 integer, 0 binary);
No objectives;
Constraints:  156 linear;
Algebraic expressions:  78 count; 1014 ifthen;
Logical expressions:  2028 conditional (in)equalitie(s); 13 alldiff;

AMPL MP final model has 4777 variables (2197 integer, 2574 binary);
No objectives;
Constraints:  1118 linear;
Logical expressions:  468 indge; 468 indle;


Tuner: tuning MIP problem UnknownProblem
Tuner: testing up to 3 control settings in parallel
baseline setting:
  THREADS              = 3

Tuner: starting adaptive phase 1: trying each control
   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
*      2    S      .000000      .000000      .492490    0.00%    0.49       0 - BACKGROUNDMAXTHREADS=2
setting:
  BACKGROUNDMAXTHREADS = 2
logfile: UnknownProblem-20260303.171725-task0002.log

       1    S      .000000      .000000      .495050    0.00%    0.50       0 - BACKGROUNDMAXTHREADS=0
*      0    S      .000000      .000000      .499607    0.00%    0.50       0 - 
setting: (baseline)
logfile: UnknownProblem-20260303.171725-task0000.log

*      4    S      .000000      .000000      .343106    0.00%    0.34       0 - COVERCUTS=0
setting:
  COVERCUTS            = 0
logfile: UnknownProblem-20260303.171725-task0004.log

       5    S      .000000      .000000      .384752    0.00%    0.39       0 - COVERCUTS=2
       3    S      .000000      .000000      .492953    0.00%    0.49       0 - BRANCHDISJ=0
*      7    S      .000000      .000000      .335950    0.00%    0.34       1 - CUTFACTOR=0.5
setting:
  CUTFACTOR            = 0.5
logfile: UnknownProblem-20260303.171725-task0007.log

       6    S      .000000      .000000      .485804    0.00%    0.49       1 - COVERCUTS=20
       8    S      .000000      .000000      .351268    0.00%    0.35       1 - CUTFACTOR=1
       9    S      .000000      .000000      .495987    0.00%    0.50       1 - CUTFACTOR=5
      11    S      .000000      .000000      .403744    0.00%    0.40       1 - GOMCUTS=0
      10    S      .000000      .000000      .492086    0.00%    0.49       1 - CUTFREQ=2
      12    S      .000000      .000000      .376915    0.00%    0.38       2 - GOMCUTS=2
      13    S      .000000      .000000      .381945    0.00%    0.38       2 - GOMCUTS=10
      14    S      .000000      .000000      .496316    0.00%    0.50       2 - HEURSEARCHEFFORT=0.5
*     16    S      .000000      .000000      .311625    0.00%    0.31       2 - HEURSEARCHROOTCUTFREQ=2
setting:
  HEURSEARCHROOTCUTFREQ = 2
logfile: UnknownProblem-20260303.171725-task0016.log

      15    S      .000000      .000000      .484945    0.00%    0.49       2 - HEURSEARCHEFFORT=2
      17    S      .000000      .000000      .348852    0.00%    0.35       2 - HEURSEARCHROOTCUTFREQ=5
      18    S      .000000      .000000      .450668    0.00%    0.45       2 - HEURSEARCHROOTSELECT=0
      19    S      .000000      .000000      .480451    0.00%    0.48       3 - HEURSEARCHROOTSELECT=3

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
      20    S      .000000      .000000      .484860    0.00%    0.49       3 - HEURSEARCHROOTSELECT=5
      21    S      .000000      .000000      .483897    0.00%    0.48       3 - HEURSEARCHTREESELECT=0
      22    S      .000000      .000000      .484406    0.00%    0.49       3 - HEURSEARCHTREESELECT=3
      23    S      .000000      .000000      .478333    0.00%    0.48       3 - HEURSEARCHTREESELECT=5
*     25    S      .000000      .000000      .272613    0.00%    0.27       3 - HEUREMPHASIS=1
setting:
  HEUREMPHASIS         = 1
logfile: UnknownProblem-20260303.171725-task0025.log

      26    S      .000000      .000000      .483761    0.00%    0.48       4 - MIPRESTART=0
      24    S      .000000      .000000      .770040    0.00%    0.77       4 - HEUREMPHASIS=0
      27    S      .000000      .000000      .426324    0.00%    0.43       4 - NODEPROBINGEFFORT=0
      28    S      .000000      .000000      .488787    0.00%    0.49       4 - NODEPROBINGEFFORT=0.5
      29    S      .000000      .000000      .481997    0.00%    0.48       4 - NODEPROBINGEFFORT=2
      30    S      .000000      .000000      .479393    0.00%    0.48       4 - PREPROBING=3
      31    S      .000000      .000000      .278678    0.00%    0.28       4 - PRESOLVE=0
      32    S      .000000      .000000      .480117    0.00%    0.48       5 - ROOTPRESOLVE=1
      33    S      .000000      .000000      .484525    0.00%    0.49       5 - SBEFFORT=0.25
      34    S      .000000      .000000      .481580    0.00%    0.48       5 - SBEFFORT=4
      35    S      .000000      .000000      .483802    0.00%    0.48       5 - SBESTIMATE=1
      36    S      .000000      .000000      .480201    0.00%    0.48       5 - SBESTIMATE=2
      37    S      .000000      .000000      .479065    0.00%    0.48       5 - SBESTIMATE=3
      38    S      .000000      .000000      .481827    0.00%    0.48       6 - SBESTIMATE=4
      39    S      .000000      .000000      .483433    0.00%    0.48       6 - SBESTIMATE=5

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
*     41    S      .000000      .000000      .218418    0.00%    0.22       6 - SCALING=0
setting:
  SCALING              = 0
logfile: UnknownProblem-20260303.171725-task0041.log

      40    S      .000000      .000000      .488415    0.00%    0.49       6 - SBESTIMATE=6
      42    S      .000000      .000000      .245361    0.00%    0.25       6 - SCALING=16
      44    S      .000000      .000000      .404500    0.00%    0.41       6 - SYMMETRY=0
      43    S      .000000      .000000      .486779    0.00%    0.49       6 - SCALING=163
      45    S      .000000      .000000      .479796    0.00%    0.48       6 - SYMMETRY=1
      46    S      .000000      .000000      .485806    0.00%    0.49       7 - SYMMETRY=2
      47    S      .000000      .000000      .479383    0.00%    0.48       7 - TREECOVERCUTS=0
      48    S      .000000      .000000      .487192    0.00%    0.49       7 - TREEGOMCUTS=0
      49    S      .000000      .000000      .485913    0.00%    0.49       7 - VARSELECTION=2
      50    S      .000000      .000000      .484622    0.00%    0.49       7 - VARSELECTION=7
Tuner: adaptive phase 1 solved 51 settings - 16 better than baseline

Tuner: starting adaptive phase 2: combining controls
   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
      51    S      .000000      .000000      .243179    0.00%    0.24       8 - HEUREMPHASIS=1;SCALING=0
      53    S      .000000      .000000      .243070    0.00%    0.24       8 - HEURSEARCHROOTCUTFREQ=2;SCALING=0
      55    S      .000000      .000000      .881925    0.00%    0.88       8 - COVERCUTS=0;SCALING=0
      54    S      .000000      .000000      .902671    0.00%    0.90       8 - CUTFACTOR=0.5;SCALING=0
      56    S      .000000      .000000      .222004    0.00%    0.22       9 - HEURSEARCHROOTCUTFREQ=5;SCALING=0
      57    S      .000000      .000000      .222173    0.00%    0.22       9 - CUTFACTOR=1;SCALING=0
      52    S      .000000      .000000     1.543985    0.00%    1.55       9 - PRESOLVE=0;SCALING=0
      58    S      .000000      .000000      .221933    0.00%    0.22       9 - GOMCUTS=2;SCALING=0
      59    S      .000000      .000000      .219082    0.00%    0.22       9 - GOMCUTS=10;SCALING=0
      60    S      .000000      .000000      .226131    0.00%    0.23       9 - COVERCUTS=2;SCALING=0
      61    S      .000000      .000000      .728394    0.00%    0.73      10 - GOMCUTS=0;SCALING=0
      62    S      .000000      .000000      .745033    0.00%    0.75      10 - SYMMETRY=0;SCALING=0
      64    S      .000000      .000000      .216924    0.00%    0.22      10 - HEURSEARCHROOTSELECT=0;SCALING=0
      63    S      .000000      .000000      .758667    0.00%    0.76      10 - NODEPROBINGEFFORT=0;SCALING=0
      65    S      .000000      .000000      .228104    0.00%    0.23      10 - HEUREMPHASIS=1;SCALING=16
      67    S      .000000      .000000      .227124    0.00%    0.23      10 - HEURSEARCHROOTCUTFREQ=2;SCALING=16
      69    S      .000000      .000000      .218982    0.00%    0.22      10 - COVERCUTS=0;SCALING=16
      70    S      .000000      .000000      .208462    0.00%    0.21      10 - COVERCUTS=0;HEUREMPHASIS=1;SCALING=16
      68    S      .000000      .000000      .706863    0.00%    0.71      11 - CUTFACTOR=0.5;SCALING=16
      72    S      .000000      .000000      .211857    0.00%    0.21      11 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=2;SCALING=16

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
      73    S      .000000      .000000      .360400    0.00%    0.36      11 - COVERCUTS=0;CUTFACTOR=0.5;SCALING=16
      66    S      .000000      .000000     1.386432    0.00%    1.39      11 - PRESOLVE=0;SCALING=16
      74    S      .000000      .000000      .211074    0.00%    0.21      11 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=5;SCALING=16
      75    S      .000000      .000000      .227360    0.00%    0.23      11 - COVERCUTS=0;CUTFACTOR=1;SCALING=16
      71    S      .000000      .000000      .977201    0.00%    0.98      11 - COVERCUTS=0;PRESOLVE=0;SCALING=16
      78    S      .000000      .000000      .337563    0.00%    0.34      12 - COVERCUTS=0;GOMCUTS=0;SCALING=16
      77    S      .000000      .000000      .445452    0.00%    0.45      12 - COVERCUTS=0;GOMCUTS=10;SCALING=16
      79    S      .000000      .000000      .212278    0.00%    0.21      12 - COVERCUTS=0;SYMMETRY=0;SCALING=16
      76    S      .000000      .000000      .685130    0.00%    0.69      12 - COVERCUTS=0;GOMCUTS=2;SCALING=16
      80    S      .000000      .000000      .228514    0.00%    0.23      12 - COVERCUTS=0;NODEPROBINGEFFORT=0;SCALING=16
      81    S      .000000      .000000      .211283    0.00%    0.21      12 - COVERCUTS=0;HEURSEARCHROOTSELECT=0;SCALING=16
      82    S      .000000      .000000      .226273    0.00%    0.23      12 - HEURSEARCHROOTCUTFREQ=5;SCALING=16
      83    S      .000000      .000000      .262882    0.00%    0.26      12 - CUTFACTOR=1;SCALING=16
      85    S      .000000      .000000      .646272    0.00%    0.65      13 - GOMCUTS=10;SCALING=16
      86    S      .000000      .000000      .694904    0.00%    0.70      13 - COVERCUTS=2;SCALING=16
      84    S      .000000      .000000     1.103371    0.00%    1.10      13 - GOMCUTS=2;SCALING=16
      87    S      .000000      .000000      .915007    0.00%    0.92      14 - GOMCUTS=0;SCALING=16
      88    S      .000000      .000000      .789047    0.00%    0.79      14 - SYMMETRY=0;SCALING=16
*     91    S      .000000      .000000      .139108    0.00%    0.14      14 - HEUREMPHASIS=1;PRESOLVE=0
setting:
  HEUREMPHASIS         = 1
  PRESOLVE             = 0
logfile: UnknownProblem-20260303.171725-task0091.log

      90    S      .000000      .000000      .228104    0.00%    0.23      14 - HEURSEARCHROOTSELECT=0;SCALING=16

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
      89    S      .000000      .000000      .804902    0.00%    0.81      14 - NODEPROBINGEFFORT=0;SCALING=16
      93    S      .000000      .000000     1.129542    0.00%    1.13      15 - COVERCUTS=0;HEUREMPHASIS=1;PRESOLVE=0;SCALING=16
      95    S      .000000      .000000      .128139    0.00%    0.13      15 - CUTFACTOR=0.5;HEUREMPHASIS=1;PRESOLVE=0
      96    S      .000000      .000000     1.033549    0.00%    1.04      16 - COVERCUTS=0;HEUREMPHASIS=1;PRESOLVE=0
      97    S      .000000      .000000      .138571    0.00%    0.14      17 - CUTFACTOR=1;HEUREMPHASIS=1;PRESOLVE=0
      98    S      .000000      .000000      .297590    0.00%    0.30      17 - GOMCUTS=2;HEUREMPHASIS=1;PRESOLVE=0
      99    S      .000000      .000000      .300897    0.00%    0.30      17 - GOMCUTS=10;HEUREMPHASIS=1;PRESOLVE=0
     100    S      .000000      .000000      .653602    0.00%    0.65      18 - COVERCUTS=2;HEUREMPHASIS=1;PRESOLVE=0
      92    S      .000000      .000000     4.445932    0.00%    4.45      18 - HEUREMPHASIS=1;PRESOLVE=0;SCALING=0
     101    S      .000000      .000000     1.038149    0.00%    1.04      19 - GOMCUTS=0;HEUREMPHASIS=1;PRESOLVE=0
     103    S      .000000      .000000      .123735    0.00%    0.12      19 - HEUREMPHASIS=1;NODEPROBINGEFFORT=0;PRESOLVE=0
     104    S      .000000      .000000      .254801    0.00%    0.26      19 - CUTFACTOR=0.5;HEUREMPHASIS=1
     105    S      .000000      .000000      .293759    0.00%    0.29      19 - COVERCUTS=0;HEUREMPHASIS=1
     106    S      .000000      .000000      .267446    0.00%    0.27      20 - CUTFACTOR=1;HEUREMPHASIS=1
     107    S      .000000      .000000      .302580    0.00%    0.30      20 - GOMCUTS=2;HEUREMPHASIS=1
     102    S      .000000      .000000     1.651288    0.00%    1.65      20 - HEUREMPHASIS=1;PRESOLVE=0;SYMMETRY=0
     109    S      .000000      .000000      .250463    0.00%    0.25      20 - COVERCUTS=2;HEUREMPHASIS=1
     108    S      .000000      .000000      .325957    0.00%    0.33      20 - GOMCUTS=10;HEUREMPHASIS=1
     110    S      .000000      .000000      .282118    0.00%    0.28      21 - GOMCUTS=0;HEUREMPHASIS=1
     111    S      .000000      .000000      .251806    0.00%    0.25      21 - HEUREMPHASIS=1;SYMMETRY=0

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
*    113    S      .000000      .000000      .133698    0.00%    0.13      21 - HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
setting:
  HEURSEARCHROOTCUTFREQ = 2
  PRESOLVE             = 0
logfile: UnknownProblem-20260303.171725-task0113.log

     112    S      .000000      .000000      .263129    0.00%    0.26      21 - HEUREMPHASIS=1;NODEPROBINGEFFORT=0
      94    S      .000000      .000000     7.697361    0.00%    7.70      22 - HEUREMPHASIS=1;PRESOLVE=0;SCALING=16
     115    S      .000000      .000000      .946696    0.00%    0.95      22 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=16
     117    S      .000000      .000000      .121413    0.00%    0.12      22 - CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     114    S      .000000      .000000     1.562041    0.00%    1.56      22 - HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=0
     119    S      .000000      .000000      .135243    0.00%    0.14      22 - CUTFACTOR=1;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     118    S      .000000      .000000      .966392    0.00%    0.97      23 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     120    S      .000000      .000000      .488548    0.00%    0.49      23 - GOMCUTS=2;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     122    S      .000000      .000000      .298643    0.00%    0.30      23 - COVERCUTS=2;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     123    S      .000000      .000000      .354157    0.00%    0.35      24 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     121    S      .000000      .000000      .761517    0.00%    0.76      24 - GOMCUTS=10;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     125    S      .000000      .000000      .125745    0.00%    0.13      24 - HEURSEARCHROOTCUTFREQ=2;NODEPROBINGEFFORT=0;PRESOLVE=0
     124    S      .000000      .000000      .436803    0.00%    0.44      24 - HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SYMMETRY=0
     116    S      .000000      .000000     2.576685    0.00%    2.58      24 - HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=16
     126    S      .000000      .000000     1.297456    0.00%    1.30      25 - HEURSEARCHROOTCUTFREQ=2;HEURSEARCHROOTSELECT=0;PRESOLVE=0
     129    S      .000000      .000000      .167635    0.00%    0.17      25 - HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     127    S      .000000      .000000     1.360017    0.00%    1.36      25 - CUTFACTOR=0.5;PRESOLVE=0
     128    S      .000000      .000000     1.023242    0.00%    1.03      25 - COVERCUTS=0;PRESOLVE=0
     131    S      .000000      .000000      .937651    0.00%    0.94      26 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SCALING=16

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
     133    S      .000000      .000000      .287596    0.00%    0.29      27 - CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     130    S      .000000      .000000     1.748645    0.00%    1.75      27 - HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SCALING=0
     135    S      .000000      .000000      .174758    0.00%    0.18      27 - CUTFACTOR=1;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     132    S      .000000      .000000     1.855646    0.00%    1.86      27 - HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SCALING=16
     134    S      .000000      .000000      .985139    0.00%    0.99      28 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     136    S      .000000      .000000      .567617    0.00%    0.57      28 - GOMCUTS=2;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     137    S      .000000      .000000      .542774    0.00%    0.55      28 - GOMCUTS=10;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     138    S      .000000      .000000      .227667    0.00%    0.23      28 - COVERCUTS=2;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     139    S      .000000      .000000      .137335    0.00%    0.14      28 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     141    S      .000000      .000000      .692842    0.00%    0.69      29 - HEURSEARCHROOTCUTFREQ=5;NODEPROBINGEFFORT=0;PRESOLVE=0
     142    S      .000000      .000000      .793968    0.00%    0.80      29 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SCALING=0
     144    S      .000000      .000000      .265228    0.00%    0.27      29 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SCALING=16
     140    S      .000000      .000000     1.295722    0.00%    1.30      29 - HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SYMMETRY=0
     145    S      .000000      .000000      .165450    0.00%    0.17      29 - CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     147    S      .000000      .000000      .136613    0.00%    0.14      29 - CUTFACTOR=1;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     148    S      .000000      .000000      .136896    0.00%    0.14      29 - COVERCUTS=2;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     143    S      .000000      .000000      .958316    0.00%    0.96      30 - COVERCUTS=0;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SCALING=16
     146    S      .000000      .000000      .783954    0.00%    0.79      30 - COVERCUTS=0;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     151    S      .000000      .000000      .274212    0.00%    0.28      30 - CUTFACTOR=1;PRESOLVE=0
     149    S      .000000      .000000     1.005622    0.00%    1.01      30 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0;SYMMETRY=0

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
     152    S      .000000      .000000      .281617    0.00%    0.28      31 - GOMCUTS=2;PRESOLVE=0
     150    S      .000000      .000000     1.168743    0.00%    1.17      31 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;NODEPROBINGEFFORT=0;PRESOLVE=0
     153    S      .000000      .000000      .279628    0.00%    0.28      31 - GOMCUTS=10;PRESOLVE=0
     154    S      .000000      .000000      .278530    0.00%    0.28      31 - COVERCUTS=2;PRESOLVE=0
     155    S      .000000      .000000      .243105    0.00%    0.24      31 - GOMCUTS=0;PRESOLVE=0
     156    S      .000000      .000000      .214573    0.00%    0.22      31 - PRESOLVE=0;SYMMETRY=0
     157    S      .000000      .000000      .427646    0.00%    0.43      31 - NODEPROBINGEFFORT=0;PRESOLVE=0
     159    S      .000000      .000000      .896419    0.00%    0.90      32 - PRESOLVE=0;SYMMETRY=0;SCALING=0
     160    S      .000000      .000000     1.002356    0.00%    1.01      32 - COVERCUTS=0;PRESOLVE=0;SYMMETRY=0;SCALING=16
     158    S      .000000      .000000     1.438696    0.00%    1.44      32 - GOMCUTS=0;PRESOLVE=0;SCALING=0
     161    S      .000000      .000000      .658160    0.00%    0.66      33 - GOMCUTS=0;PRESOLVE=0;SYMMETRY=0
     163    S      .000000      .000000      .229389    0.00%    0.23      33 - CUTFACTOR=0.5;PRESOLVE=0;SYMMETRY=0
     162    S      .000000      .000000      .434524    0.00%    0.44      33 - PRESOLVE=0;SYMMETRY=0;SCALING=16
     165    S      .000000      .000000      .217944    0.00%    0.22      33 - CUTFACTOR=1;PRESOLVE=0;SYMMETRY=0
     166    S      .000000      .000000      .219414    0.00%    0.22      33 - GOMCUTS=2;PRESOLVE=0;SYMMETRY=0
     167    S      .000000      .000000      .218415    0.00%    0.22      33 - GOMCUTS=10;PRESOLVE=0;SYMMETRY=0
     168    S      .000000      .000000      .217250    0.00%    0.22      33 - COVERCUTS=2;PRESOLVE=0;SYMMETRY=0
*    170    S      .000000      .000000      .101157    0.00%    0.10      33 - GOMCUTS=0;PRESOLVE=0;SCALING=16
setting:
  GOMCUTS              = 0
  PRESOLVE             = 0
  SCALING              = 16
logfile: UnknownProblem-20260303.171725-task0170.log

     164    S      .000000      .000000      .733238    0.00%    0.74      33 - COVERCUTS=0;PRESOLVE=0;SYMMETRY=0
     171    S      .000000      .000000      .321313    0.00%    0.32      34 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=16

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
     169    S      .000000      .000000      .935324    0.00%    0.94      34 - COVERCUTS=0;GOMCUTS=0;PRESOLVE=0;SCALING=16
     174    S      .000000      .000000      .100954    0.00%    0.10      34 - CUTFACTOR=0.5;GOMCUTS=0;PRESOLVE=0;SCALING=16
     172    S      .000000      .000000      .917933    0.00%    0.92      34 - GOMCUTS=0;HEUREMPHASIS=1;PRESOLVE=0;SCALING=16
     175    S      .000000      .000000      .123420    0.00%    0.12      34 - CUTFACTOR=1;GOMCUTS=0;PRESOLVE=0;SCALING=16
     176    S      .000000      .000000      .124716    0.00%    0.13      34 - COVERCUTS=2;GOMCUTS=0;PRESOLVE=0;SCALING=16
     177    S      .000000      .000000      .245501    0.00%    0.25      34 - CUTFACTOR=0.5;GOMCUTS=0;PRESOLVE=0
     173    S      .000000      .000000     1.163378    0.00%    1.17      35 - GOMCUTS=0;PRESOLVE=0;SYMMETRY=0;SCALING=16
     179    S      .000000      .000000      .246329    0.00%    0.25      35 - CUTFACTOR=1;GOMCUTS=0;PRESOLVE=0
     180    S      .000000      .000000      .152021    0.00%    0.15      35 - COVERCUTS=2;GOMCUTS=0;PRESOLVE=0
     182    S      .000000      .000000      .126056    0.00%    0.13      35 - COVERCUTS=2;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     181    S      .000000      .000000      .279484    0.00%    0.28      35 - CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2
     183    S      .000000      .000000      .128903    0.00%    0.13      35 - COVERCUTS=2;GOMCUTS=0;HEUREMPHASIS=1;PRESOLVE=0
     178    S      .000000      .000000      .794658    0.00%    0.80      35 - COVERCUTS=0;GOMCUTS=0;PRESOLVE=0
     186    S      .000000      .000000      .158713    0.00%    0.16      35 - COVERCUTS=2;GOMCUTS=0;PRESOLVE=0;SCALING=0
     184    S      .000000      .000000      .319330    0.00%    0.32      35 - CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=16
     187    S      .000000      .000000      .126131    0.00%    0.13      35 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     188    S      .000000      .000000      .153567    0.00%    0.15      36 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;PRESOLVE=0
     189    S      .000000      .000000      .110796    0.00%    0.11      36 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=16
     191    S      .000000      .000000      .135682    0.00%    0.14      36 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=0
     185    S      .000000      .000000      .640431    0.00%    0.64      36 - COVERCUTS=2;GOMCUTS=0;PRESOLVE=0;SYMMETRY=0

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
     192    S      .000000      .000000      .136800    0.00%    0.14      36 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5;PRESOLVE=0
     193    S      .000000      .000000      .127846    0.00%    0.13      36 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;HEUREMPHASIS=1;PRESOLVE=0
     194    S      .000000      .000000      .152970    0.00%    0.15      36 - COVERCUTS=2;CUTFACTOR=1;GOMCUTS=0;PRESOLVE=0
     190    S      .000000      .000000      .555687    0.00%    0.56      36 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SYMMETRY=0
     196    S      .000000      .000000      .370350    0.00%    0.37      36 - CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2;SCALING=0
     198    S      .000000      .000000      .332808    0.00%    0.33      37 - COVERCUTS=0;CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2;SCALING=16
     195    S      .000000      .000000      .957551    0.00%    0.96      37 - CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SYMMETRY=0
     199    S      .000000      .000000      .364082    0.00%    0.36      37 - CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     197    S      .000000      .000000     1.025537    0.00%    1.03      37 - COVERCUTS=0;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0;SCALING=16
     200    S      .000000      .000000      .358815    0.00%    0.36      37 - CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2;SCALING=16
     201    S      .000000      .000000      .343416    0.00%    0.34      37 - COVERCUTS=0;CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2
     202    S      .000000      .000000      .324993    0.00%    0.33      37 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=2
     203    S      .000000      .000000      .314285    0.00%    0.32      38 - CUTFACTOR=1;HEURSEARCHROOTCUTFREQ=2
     204    S      .000000      .000000      .336113    0.00%    0.34      38 - COVERCUTS=0;CUTFACTOR=0.5
     205    S      .000000      .000000      .343244    0.00%    0.34      38 - CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=5
     207    S      .000000      .000000      .326532    0.00%    0.33      38 - COVERCUTS=0;HEURSEARCHROOTCUTFREQ=5
     208    S      .000000      .000000      .341041    0.00%    0.34      38 - COVERCUTS=0;CUTFACTOR=1
     210    S      .000000      .000000      .127370    0.00%    0.13      38 - COVERCUTS=2;CUTFACTOR=1;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     206    S      .000000      .000000      .857768    0.00%    0.86      38 - COVERCUTS=0;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     209    S      .000000      .000000      .349981    0.00%    0.35      38 - CUTFACTOR=1;HEURSEARCHROOTCUTFREQ=5
Tuner: adaptive phase 2 solved 160 settings

Tuner: starting adaptive phase 3: removing controls
   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
     211    S      .000000      .000000      .283540    0.00%    0.28      39 - COVERCUTS=2;CUTFACTOR=0.5;HEURSEARCHROOTCUTFREQ=2;PRESOLVE=0
     212    S      .000000      .000000      .300509    0.00%    0.30      39 - COVERCUTS=2;CUTFACTOR=0.5;GOMCUTS=0;HEURSEARCHROOTCUTFREQ=2
     213    S      .000000      .000000      .395282    0.00%    0.40      39 - GOMCUTS=0;HEURSEARCHROOTCUTFREQ=5
     214    S      .000000      .000000      .618471    0.00%    0.62      39 - COVERCUTS=2;GOMCUTS=0
Tuner: adaptive phase 3 solved 4 settings

   RunID Stat     Solution        Bound     Integral     Gap  RunTime TotTime
baseline    S      .000000      .000000      .499607    0.00%    0.50      39 - 
baseline setting:
  THREADS              = 3

    best    S      .000000      .000000      .101157    0.00%    0.10      39 - GOMCUTS=0;PRESOLVE=0;SCALING=16
setting:
  GOMCUTS              = 0
  PRESOLVE             = 0
  SCALING              = 16
logfile: UnknownProblem-20260303.171725-task0170.log

Tuner: removing each tunable control from the best setting
Removing Control                     Solution        Bound     Gap  RunTime
  (none)                              .000000      .000000    0.00%    0.10
  (all)                               .000000      .000000    0.00%    0.50
  GOMCUTS                             .000000      .000000    0.00%    1.39
  PRESOLVE                            .000000      .000000    0.00%    0.92
  SCALING                             .000000      .000000    0.00%    0.24

Tuner: baseline 0.00% 0.50s improved to 0.00% 0.10s in 39s and 215 runs - GOMCUTS=0;PRESOLVE=0;SCALING=16
Tuner: applying the best setting to problem
FICO Xpress v9.8.0, Hyper, solve started 17:18:05, Mar 3, 2026
Heap usage: 2455KB (peak 112MB, 1490KB system)
Minimizing MILP  using up to 3 threads and up to 16GB memory, with these control settings:
SCALING = 16
PRESOLVE = 0
GOMCUTS = 0
THREADS = 3
TUNERMODE = -1
TUNERMETHOD = 1
TUNERTHREADS = 3
TUNERHISTORY = 0
TUNERMAXTIME = 180
Original problem has:
      2054 rows         4777 cols         9672 elements      2574 entities
       936 inds

Coefficient range                    original                 solved        
  Coefficients   [min,max] : [ 1.00e+00,  2.00e+01] / [ 1.25e-01,  2.50e+00]
  RHS and bounds [min,max] : [ 1.00e+00,  2.00e+01] / [ 1.00e+00,  2.00e+01]
  Objective      [min,max] : [      0.0,       0.0] / [      0.0,       0.0]

Symmetric problem: generators: 5, support set: 2496
 Number of orbits: 572, largest orbit: 6
 Row orbits: 273, row support: 1638
Will try to keep branch and bound tree memory usage below 15.1GB
Starting concurrent solve with dual (1 thread) and barrier (2 threads)

              Concurrent-Solve,   0s
            Dual                      Barrier      
    objective   sum inf                            
 P   .0000000   .0000000 |                         
------- optimal -------- | ----- interrupted ------
Concurrent statistics:
           Dual: 2340 simplex iterations, 0.01s
        Barrier: 6 barrier and 173 simplex iterations, 0.01s
            Barrier used 2 threads 2 cores
, crossover used 2 threads
Optimal solution found
 
   Its         Obj Value      S   Ninf  Nneg        Sum Inf  Time
  2340           .000000      P      0     0        .000000     0
Dual solved problem
  2340 simplex iterations in 0.01 seconds at time 0

Final objective                       : 0.000000000000000e+00
  Max primal violation      (abs/rel) : 1.110e-16 / 8.882e-17
  Max dual violation        (abs/rel) :       0.0 /       0.0
  Max complementarity viol. (abs/rel) :       0.0 /       0.0

Starting root cutting & heuristics
Deterministic mode with up to 1 additional thread
 
 Its Type    BestSoln    BestBound   Sols    Add    Del     Gap     GInf   Time
R             .000000      .000000      1               0.0e+00        0      0
STOPPING - MIPRELSTOP target reached (MIPRELSTOP=0.0001  gap=0).
 *** Search completed ***
Uncrunching matrix
Final MIP objective                   : 0.000000000000000e-01
Final MIP bound                       : 0.000000000000000e-01
  Solution time / primaldual integral :      0.10s/ 99.500452%
  Work / work units per second        :      0.19 /      1.93
  Number of solutions found / nodes   :         1 /         1
  Max primal violation      (abs/rel) : 1.776e-15 / 4.441e-16
  Max integer violation     (abs    ) : 1.776e-15
XPRESS 9.8.0 (46.01.01): optimal solution
2878 simplex iterations
1 branching nodes
Objective = find a feasible point.

Conclusion#

Automatic tuning improved single-solve runtime using the new setting GOMCUTS=0;PRESOLVE=0;SCALING=16. See https://dev.ampl.com/solvers/xpress/index.html for a full list of AMPL Xpress options.